示例#1
0
        string GetReferenceLibraryPath(MonoDevelop.Projects.ProjectReference pref)
        {
            string path = null;

            if (pref.ReferenceType == ReferenceType.Project)
            {
                DotNetProject p = pref.ResolveProject(project.ParentSolution) as DotNetProject;
                if (p != null)
                {
                    path = p.GetOutputFileName(IdeApp.Workspace.ActiveConfiguration);
                }
            }
            else if (pref.ReferenceType == ReferenceType.Assembly)
            {
                path = pref.Reference;
            }
            else if (pref.ReferenceType == ReferenceType.Package)
            {
                path = pref.Reference;
            }
            if (path != null && GuiBuilderService.SteticApp.IsWidgetLibrary(path))
            {
                return(path);
            }
            else
            {
                return(null);
            }
        }
        static bool CanReference(Document doc, MonoDevelop.Projects.ProjectReference projectReference)
        {
            var project = doc.Project as DotNetProject;

            if (project == null || projectReference == null || project.ParentSolution == null)
            {
                return(true);
            }
            switch (projectReference.ReferenceType)
            {
            case ReferenceType.Project:
                var referenceProject = projectReference.ResolveProject(project.ParentSolution) as DotNetProject;
                if (referenceProject == null)
                {
                    return(true);
                }
                string reason;
                return(project.CanReferenceProject(referenceProject, out reason));
            }
            return(true);
        }
		DotNetProject GetDotNetProject (ProjectReference projectReference)
		{
			if (Loading || ParentSolution == null || projectReference.ReferenceType != ReferenceType.Project)
				return null;

			var project = projectReference.ResolveProject (ParentSolution) as DotNetProject;
			if (!(project is PackagingProject))
				return project;

			return null;
		}
        public void SignalRefChange (ProjectReference refInfo, bool newState)
        {
			if (!showAll && refInfo.ReferenceType != ReferenceType.Package)
				return;
			
            TreeIter iter;
			bool found = false;
			
            if (store.GetIterFirst (out iter)) {
                do {
					if (refInfo.ReferenceType == (ReferenceType) store.GetValue(iter, ColType)) {
						switch (refInfo.ReferenceType) {
						case ReferenceType.Package:
							SystemAssembly systemAssembly = store.GetValue(iter, ColAssembly) as SystemAssembly;
							if ((refInfo.Reference == systemAssembly.FullName) && (refInfo.Package == systemAssembly.Package) )
								found = true;
							break;
						case ReferenceType.Project:
							var path = (FilePath)(string) store.GetValue (iter, ColFullName);
							var project = refInfo.ResolveProject (configureProject.ParentSolution);
							if (project != null && path.CanonicalPath == project.FileName.CanonicalPath)
								found = true;
							break;
						case ReferenceType.Assembly:
							var file = (FilePath)(string) store.GetValue (iter, ColFullName);
							if (file.CanonicalPath == refInfo.HintPath.CanonicalPath)
								found = true;
							break;
						}
					}
                } while (!found && store.IterNext (ref iter));
            }
			if (found)
				store.SetValue(iter, ColSelected, newState);
			SetSelection (refInfo.ReferenceType, refInfo.Reference, refInfo.Package != null ? refInfo.Package.Name : "", newState);
        }
		TreeIter AddProjectReference (ProjectReference refInfo)
		{
			Solution c = configureProject.ParentSolution;
			if (c == null) return TreeIter.Zero;

			Project p = refInfo.ResolveProject (c);
			if (p == null) return TreeIter.Zero;
			
			string txt = GLib.Markup.EscapeText (System.IO.Path.GetFileName (refInfo.Reference)) + "\n";
			txt += "<span color='darkgrey'><small>" + GLib.Markup.EscapeText (p.BaseDirectory.ToString ()) + "</small></span>";
			return refTreeStore.AppendValues (txt, GetTypeText (refInfo), p.BaseDirectory.ToString (), refInfo, ImageService.GetIcon ("md-project", IconSize.Dnd));
		}