453
453
void CheckReference (ComponentToolboxNode node)
455
if (node.Reference == null)
458
ProjectReference pref;
460
// If the class name includes an assembly name it means that the
461
// widget is implemented in another assembly, not in the one that
462
// has the objects.xml file.
463
int i = node.ClassName.IndexOf (',');
465
string asm = node.ClassName.Substring (i+1).Trim ();
466
asm = gproject.Project.AssemblyContext.GetAssemblyFullName (asm, gproject.Project.TargetFramework);
469
if (gproject.Project.AssemblyContext.GetPackagesFromFullName (asm).Length > 0) {
470
pref = new ProjectReference (ReferenceType.Gac, asm);
472
asm = gproject.Project.AssemblyContext.GetAssemblyLocation (asm, gproject.Project.TargetFramework);
473
pref = new ProjectReference (ReferenceType.Assembly, asm);
477
pref = new ProjectReference (node.ReferenceType, node.Reference);
479
foreach (ProjectReference pr in gproject.Project.References) {
480
if (pr.Reference == pref.Reference)
483
gproject.Project.References.Add (pref);
455
if (node.Reference == null)
458
ProjectReference pref;
460
// If the class name includes an assembly name it means that the
461
// widget is implemented in another assembly, not in the one that
462
// has the objects.xml file.
463
int i = node.ClassName.IndexOf (',');
465
string asm = node.ClassName.Substring (i+1).Trim ();
466
if (asm == "gtk-sharp")
467
// If we are adding a widget to a window, the project must already have a gtk# reference
470
asm = gproject.Project.AssemblyContext.GetAssemblyFullName (asm, gproject.Project.TargetFramework);
473
if (gproject.Project.AssemblyContext.GetPackagesFromFullName (asm).Length > 0) {
474
pref = new ProjectReference (ReferenceType.Gac, asm);
476
asm = gproject.Project.AssemblyContext.GetAssemblyLocation (asm, gproject.Project.TargetFramework);
477
pref = new ProjectReference (ReferenceType.Assembly, asm);
481
pref = new ProjectReference (node.ReferenceType, node.Reference);
483
foreach (ProjectReference pr in gproject.Project.References) {
484
if (pr.Reference == pref.Reference)
487
gproject.Project.References.Add (pref);
486
490
Widget MonoDevelop.DesignerSupport.IOutlinedDocument.GetOutlineWidget ()