Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2540)

Unified Diff: experimental/visual_studio_plugin/third_party/Microsoft.VisualStudio.Project/ReferenceContainerNode.cs

Issue 10928195: First round of dead file removal (Closed) Base URL: https://github.com/samclegg/nativeclient-sdk.git@master
Patch Set: Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: experimental/visual_studio_plugin/third_party/Microsoft.VisualStudio.Project/ReferenceContainerNode.cs
diff --git a/experimental/visual_studio_plugin/third_party/Microsoft.VisualStudio.Project/ReferenceContainerNode.cs b/experimental/visual_studio_plugin/third_party/Microsoft.VisualStudio.Project/ReferenceContainerNode.cs
deleted file mode 100644
index 6215cb5b165f5edfc35930f35b10b1bda1e65e92..0000000000000000000000000000000000000000
--- a/experimental/visual_studio_plugin/third_party/Microsoft.VisualStudio.Project/ReferenceContainerNode.cs
+++ /dev/null
@@ -1,521 +0,0 @@
-/// Copyright (c) Microsoft Corporation. All rights reserved.
-
-using System;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.Globalization;
-using System.IO;
-using System.Reflection;
-using System.Runtime.InteropServices;
-using System.Text;
-using Microsoft.VisualStudio;
-using Microsoft.VisualStudio.Shell.Interop;
-using MSBuild = Microsoft.Build.BuildEngine;
-using OleConstants = Microsoft.VisualStudio.OLE.Interop.Constants;
-using VsCommands = Microsoft.VisualStudio.VSConstants.VSStd97CmdID;
-using VsCommands2K = Microsoft.VisualStudio.VSConstants.VSStd2KCmdID;
-
-namespace Microsoft.VisualStudio.Project
-{
- [CLSCompliant(false), ComVisible(true)]
- public class ReferenceContainerNode : HierarchyNode, IReferenceContainer
- {
- #region fields
- internal const string ReferencesNodeVirtualName = "References";
- #endregion
-
- #region ctor
- public ReferenceContainerNode(ProjectNode root)
- : base(root)
- {
- this.VirtualNodeName = ReferencesNodeVirtualName;
- this.ExcludeNodeFromScc = true;
- }
- #endregion
-
- #region Properties
- private static string[] supportedReferenceTypes = new string[] {
- ProjectFileConstants.ProjectReference,
- ProjectFileConstants.Reference,
- ProjectFileConstants.COMReference
- };
- [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")]
- protected virtual string[] SupportedReferenceTypes
- {
- get { return supportedReferenceTypes; }
- }
- #endregion
-
- #region overridden properties
- public override int SortPriority
- {
- get
- {
- return DefaultSortOrderNode.ReferenceContainerNode;
- }
- }
-
- public override int MenuCommandId
- {
- get { return VsMenus.IDM_VS_CTXT_REFERENCEROOT; }
- }
-
-
- public override Guid ItemTypeGuid
- {
- get { return VSConstants.GUID_ItemType_VirtualFolder; }
- }
-
-
- public override string Url
- {
- get { return this.VirtualNodeName; }
- }
-
- public override string Caption
- {
- get
- {
- return SR.GetString(SR.ReferencesNodeName, CultureInfo.CurrentUICulture);
- }
- }
-
-
- private Automation.OAReferences references;
- internal override object Object
- {
- get
- {
- if(null == references)
- {
- references = new Automation.OAReferences(this);
- }
- return references;
- }
- }
-
- #endregion
-
- #region overridden methods
- /// <summary>
- /// Returns an instance of the automation object for ReferenceContainerNode
- /// </summary>
- /// <returns>An intance of the Automation.OAReferenceFolderItem type if succeeeded</returns>
- public override object GetAutomationObject()
- {
- if(this.ProjectMgr == null || this.ProjectMgr.IsClosed)
- {
- return null;
- }
-
- return new Automation.OAReferenceFolderItem(this.ProjectMgr.GetAutomationObject() as Automation.OAProject, this);
- }
-
- /// <summary>
- /// Disable inline editing of Caption of a ReferendeContainerNode
- /// </summary>
- /// <returns>null</returns>
- public override string GetEditLabel()
- {
- return null;
- }
-
-
- public override object GetIconHandle(bool open)
- {
- return this.ProjectMgr.ImageHandler.GetIconHandle(open ? (int)ProjectNode.ImageName.OpenReferenceFolder : (int)ProjectNode.ImageName.ReferenceFolder);
- }
-
-
- /// <summary>
- /// References node cannot be dragged.
- /// </summary>
- /// <returns>A stringbuilder.</returns>
- protected internal override StringBuilder PrepareSelectedNodesForClipBoard()
- {
- return null;
- }
-
- /// <summary>
- /// Not supported.
- /// </summary>
- protected override int ExcludeFromProject()
- {
- return (int)OleConstants.OLECMDERR_E_NOTSUPPORTED;
- }
-
- protected override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
- {
- if(cmdGroup == VsMenus.guidStandardCommandSet97)
- {
- switch((VsCommands)cmd)
- {
- case VsCommands.AddNewItem:
- case VsCommands.AddExistingItem:
- result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
- return VSConstants.S_OK;
- }
- }
- else if(cmdGroup == VsMenus.guidStandardCommandSet2K)
- {
- if((VsCommands2K)cmd == VsCommands2K.ADDREFERENCE)
- {
- result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
- return VSConstants.S_OK;
- }
- }
- else
- {
- return (int)OleConstants.OLECMDERR_E_UNKNOWNGROUP;
- }
- return base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result);
- }
-
- protected override int ExecCommandOnNode(Guid cmdGroup, uint cmd, uint nCmdexecopt, IntPtr pvaIn, IntPtr pvaOut)
- {
- if(cmdGroup == VsMenus.guidStandardCommandSet2K)
- {
- switch((VsCommands2K)cmd)
- {
- case VsCommands2K.ADDREFERENCE:
- return this.ProjectMgr.AddProjectReference();
- case VsCommands2K.ADDWEBREFERENCE:
- return this.ProjectMgr.AddWebReference();
- }
- }
-
- return base.ExecCommandOnNode(cmdGroup, cmd, nCmdexecopt, pvaIn, pvaOut);
- }
-
- protected override bool CanDeleteItem(__VSDELETEITEMOPERATION deleteOperation)
- {
- return false;
- }
-
- /// <summary>
- /// Defines whether this node is valid node for painting the refererences icon.
- /// </summary>
- /// <returns></returns>
- protected override bool CanShowDefaultIcon()
- {
- if(!String.IsNullOrEmpty(this.VirtualNodeName))
- {
- return true;
- }
- return false;
- }
-
- #endregion
-
- #region IReferenceContainer
- public IList<ReferenceNode> EnumReferences()
- {
- List<ReferenceNode> refs = new List<ReferenceNode>();
- for(HierarchyNode node = this.FirstChild; node != null; node = node.NextSibling)
- {
- ReferenceNode refNode = node as ReferenceNode;
- if(refNode != null)
- {
- refs.Add(refNode);
- }
- }
-
- return refs;
- }
- /// <summary>
- /// Adds references to this container from a MSBuild project.
- /// </summary>
- public void LoadReferencesFromBuildProject(MSBuild.Project buildProject)
- {
- foreach(string referenceType in SupportedReferenceTypes)
- {
- MSBuild.BuildItemGroup refererncesGroup = buildProject.GetEvaluatedItemsByName(referenceType);
-
- bool isAssemblyReference = referenceType == ProjectFileConstants.Reference;
- // If the project was loaded for browsing we should still create the nodes but as not resolved.
- if(this.ProjectMgr.HasPassedSecurityChecks && isAssemblyReference && this.ProjectMgr.Build(MsBuildTarget.ResolveAssemblyReferences) != MSBuildResult.Successful)
- {
- continue;
- }
-
- foreach(MSBuild.BuildItem item in refererncesGroup)
- {
- ProjectElement element = new ProjectElement(this.ProjectMgr, item, false);
-
- ReferenceNode node = CreateReferenceNode(referenceType, element);
-
- if(node != null)
- {
- // Make sure that we do not want to add the item twice to the ui hierarchy
- // We are using here the UI representation of the Node namely the Caption to find that out, in order to
- // avoid different representation problems.
- // Example :<Reference Include="EnvDTE80, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
- // <Reference Include="EnvDTE80" />
- bool found = false;
- for(HierarchyNode n = this.FirstChild; n != null && !found; n = n.NextSibling)
- {
- if(String.Compare(n.Caption, node.Caption, StringComparison.OrdinalIgnoreCase) == 0)
- {
- found = true;
- }
- }
-
- if(!found)
- {
- this.AddChild(node);
- }
- }
- }
- }
- }
-
- /// <summary>
- /// Adds a reference to this container using the selector data structure to identify it.
- /// </summary>
- /// <param name="selectorData">data describing selected component</param>
- /// <returns>Reference in case of a valid reference node has been created. Otherwise null</returns>
- public ReferenceNode AddReferenceFromSelectorData(VSCOMPONENTSELECTORDATA selectorData)
- {
- //Make sure we can edit the project file
- if(!this.ProjectMgr.QueryEditProjectFile(false))
- {
- throw Marshal.GetExceptionForHR(VSConstants.OLE_E_PROMPTSAVECANCELLED);
- }
-
- //Create the reference node
- ReferenceNode node = null;
- try
- {
- node = CreateReferenceNode(selectorData);
- }
- catch(ArgumentException)
- {
- // Some selector data was not valid.
- }
-
- //Add the reference node to the project if we have a valid reference node
- if(node != null)
- {
- // This call will find if the reference is in the project and, in this case
- // will not add it again, so the parent node will not be set.
- node.AddReference();
- if(null == node.Parent)
- {
- // The reference was not added, so we can not return this item because it
- // is not inside the project.
- return null;
- }
- }
-
- return node;
- }
- #endregion
-
- #region virtual methods
- protected virtual ReferenceNode CreateReferenceNode(string referenceType, ProjectElement element)
- {
- ReferenceNode node = null;
- if(referenceType == ProjectFileConstants.COMReference)
- {
- node = this.CreateComReferenceNode(element);
- }
- else if(referenceType == ProjectFileConstants.Reference)
- {
- node = this.CreateAssemblyReferenceNode(element);
- }
- else if(referenceType == ProjectFileConstants.ProjectReference)
- {
- node = this.CreateProjectReferenceNode(element);
- }
-
- return node;
- }
-
- protected virtual ReferenceNode CreateReferenceNode(VSCOMPONENTSELECTORDATA selectorData)
- {
- ReferenceNode node = null;
- switch(selectorData.type)
- {
- case VSCOMPONENTTYPE.VSCOMPONENTTYPE_Project:
- node = this.CreateProjectReferenceNode(selectorData);
- break;
- case VSCOMPONENTTYPE.VSCOMPONENTTYPE_File:
- // This is the case for managed assembly
- case VSCOMPONENTTYPE.VSCOMPONENTTYPE_ComPlus:
- node = this.CreateFileComponent(selectorData);
- break;
- case VSCOMPONENTTYPE.VSCOMPONENTTYPE_Com2:
- node = this.CreateComReferenceNode(selectorData);
- break;
- }
-
- return node;
- }
- #endregion
-
- #region Helper functions to add references
- /// <summary>
- /// Creates a project reference node given an existing project element.
- /// </summary>
- protected virtual ProjectReferenceNode CreateProjectReferenceNode(ProjectElement element)
- {
- return new ProjectReferenceNode(this.ProjectMgr, element);
- }
- /// <summary>
- /// Create a Project to Project reference given a VSCOMPONENTSELECTORDATA structure
- /// </summary>
- protected virtual ProjectReferenceNode CreateProjectReferenceNode(VSCOMPONENTSELECTORDATA selectorData)
- {
- return new ProjectReferenceNode(this.ProjectMgr, selectorData.bstrTitle, selectorData.bstrFile, selectorData.bstrProjRef);
- }
-
- /// <summary>
- /// Creates an assemby or com reference node given a selector data.
- /// </summary>
- protected virtual ReferenceNode CreateFileComponent(VSCOMPONENTSELECTORDATA selectorData)
- {
- if(null == selectorData.bstrFile)
- {
- throw new ArgumentNullException("selectorData");
- }
-
- // We have a path to a file, it could be anything
- // First see if it is a managed assembly
- bool tryToCreateAnAssemblyReference = true;
- if(File.Exists(selectorData.bstrFile))
- {
- try
- {
- // We should not load the assembly in the current appdomain.
- // If we do not do it like that and we load the assembly in the current appdomain then the assembly cannot be unloaded again.
- // The following problems might arose in that case.
- // 1. Assume that a user is extending the MPF and his project is creating a managed assembly dll.
- // 2. The user opens VS and creates a project and builds it.
- // 3. Then the user opens VS creates another project and adds a reference to the previously built assembly. This will load the assembly in the appdomain had we been using Assembly.ReflectionOnlyLoadFrom.
- // 4. Then he goes back to the first project modifies it an builds it. A build error is issued that the assembly is used.
-
- // GetAssemblyName is assured not to load the assembly.
- tryToCreateAnAssemblyReference = (AssemblyName.GetAssemblyName(selectorData.bstrFile) != null);
- }
- catch(BadImageFormatException)
- {
- // We have found the file and it is not a .NET assembly; no need to try to
- // load it again.
- tryToCreateAnAssemblyReference = false;
- }
- catch(FileLoadException)
- {
- // We must still try to load from here because this exception is thrown if we want
- // to add the same assembly refererence from different locations.
- tryToCreateAnAssemblyReference = true;
- }
- }
-
- ReferenceNode node = null;
-
- if(tryToCreateAnAssemblyReference)
- {
- // This might be a candidate for an assembly reference node. Try to load it.
- // CreateAssemblyReferenceNode will suppress BadImageFormatException if the node cannot be created.
- node = this.CreateAssemblyReferenceNode(selectorData.bstrFile);
- }
-
- // If no node has been created try to create a com reference node.
- if(node == null)
- {
- if(!File.Exists(selectorData.bstrFile))
- {
- return null;
- }
- node = this.CreateComReferenceNode(selectorData);
- }
-
- return node;
- }
-
- /// <summary>
- /// Creates an assembly refernce node from a project element.
- /// </summary>
- protected virtual AssemblyReferenceNode CreateAssemblyReferenceNode(ProjectElement element)
- {
- AssemblyReferenceNode node = null;
- try
- {
- node = new AssemblyReferenceNode(this.ProjectMgr, element);
- }
- catch(ArgumentNullException e)
- {
- Trace.WriteLine("Exception : " + e.Message);
- }
- catch(FileNotFoundException e)
- {
- Trace.WriteLine("Exception : " + e.Message);
- }
- catch(BadImageFormatException e)
- {
- Trace.WriteLine("Exception : " + e.Message);
- }
- catch(FileLoadException e)
- {
- Trace.WriteLine("Exception : " + e.Message);
- }
- catch(System.Security.SecurityException e)
- {
- Trace.WriteLine("Exception : " + e.Message);
- }
-
- return node;
- }
- /// <summary>
- /// Creates an assembly reference node from a file path.
- /// </summary>
- protected virtual AssemblyReferenceNode CreateAssemblyReferenceNode(string fileName)
- {
- AssemblyReferenceNode node = null;
- try
- {
- node = new AssemblyReferenceNode(this.ProjectMgr, fileName);
- }
- catch(ArgumentNullException e)
- {
- Trace.WriteLine("Exception : " + e.Message);
- }
- catch(FileNotFoundException e)
- {
- Trace.WriteLine("Exception : " + e.Message);
- }
- catch(BadImageFormatException e)
- {
- Trace.WriteLine("Exception : " + e.Message);
- }
- catch(FileLoadException e)
- {
- Trace.WriteLine("Exception : " + e.Message);
- }
- catch(System.Security.SecurityException e)
- {
- Trace.WriteLine("Exception : " + e.Message);
- }
-
- return node;
- }
-
- /// <summary>
- /// Creates a com reference node from the project element.
- /// </summary>
- protected virtual ComReferenceNode CreateComReferenceNode(ProjectElement reference)
- {
- return new ComReferenceNode(this.ProjectMgr, reference);
- }
- /// <summary>
- /// Creates a com reference node from a selector data.
- /// </summary>
- protected virtual ComReferenceNode CreateComReferenceNode(Microsoft.VisualStudio.Shell.Interop.VSCOMPONENTSELECTORDATA selectorData)
- {
- ComReferenceNode node = new ComReferenceNode(this.ProjectMgr, selectorData);
- return node;
- }
- #endregion
-
- }
-}

Powered by Google App Engine
This is Rietveld 408576698