Index: experimental/visual_studio_plugin/third_party/Microsoft.VisualStudio.Project/Automation/OAProjectItem.cs |
diff --git a/experimental/visual_studio_plugin/third_party/Microsoft.VisualStudio.Project/Automation/OAProjectItem.cs b/experimental/visual_studio_plugin/third_party/Microsoft.VisualStudio.Project/Automation/OAProjectItem.cs |
deleted file mode 100644 |
index 71b36b36fd79aff57e17c5ea8e9460e799b524ee..0000000000000000000000000000000000000000 |
--- a/experimental/visual_studio_plugin/third_party/Microsoft.VisualStudio.Project/Automation/OAProjectItem.cs |
+++ /dev/null |
@@ -1,417 +0,0 @@ |
-/// Copyright (c) Microsoft Corporation. All rights reserved. |
- |
-using System; |
-using System.Diagnostics; |
-using System.Runtime.InteropServices; |
-using Microsoft.VisualStudio; |
-using Microsoft.VisualStudio.Shell.Interop; |
- |
-namespace Microsoft.VisualStudio.Project.Automation |
-{ |
- [ComVisible(true), CLSCompliant(false)] |
- public class OAProjectItem<T> : EnvDTE.ProjectItem |
- where T : HierarchyNode |
- { |
- |
- #region fields |
- private T node; |
- private OAProject project; |
- #endregion |
- |
- #region properties |
- protected T Node |
- { |
- get |
- { |
- return this.node; |
- } |
- } |
- |
- /// <summary> |
- /// Returns the automation project |
- /// </summary> |
- protected OAProject Project |
- { |
- get |
- { |
- return this.project; |
- } |
- } |
- #endregion |
- |
- #region ctors |
- public OAProjectItem(OAProject project, T node) |
- { |
- this.node = node; |
- this.project = project; |
- } |
- #endregion |
- |
- #region EnvDTE.ProjectItem |
- |
- /// <summary> |
- /// Gets the requested Extender if it is available for this object |
- /// </summary> |
- /// <param name="extenderName">The name of the extender.</param> |
- /// <returns>The extender object.</returns> |
- public virtual object get_Extender(string extenderName) |
- { |
- return null; |
- } |
- |
- /// <summary> |
- /// Gets an object that can be accessed by name at run time. |
- /// </summary> |
- public virtual object Object |
- { |
- get |
- { |
- return this.node.Object; |
- } |
- } |
- |
- /// <summary> |
- /// Gets the Document associated with the item, if one exists. |
- /// </summary> |
- public virtual EnvDTE.Document Document |
- { |
- get |
- { |
- return null; |
- } |
- } |
- |
- /// <summary> |
- /// Gets the number of files associated with a ProjectItem. |
- /// </summary> |
- public virtual short FileCount |
- { |
- get |
- { |
- return (short)1; |
- } |
- } |
- |
- /// <summary> |
- /// Gets a collection of all properties that pertain to the object. |
- /// </summary> |
- public virtual EnvDTE.Properties Properties |
- { |
- get |
- { |
- if(this.node.NodeProperties == null) |
- { |
- return null; |
- } |
- return new OAProperties(this.node.NodeProperties); |
- } |
- } |
- |
- |
- /// <summary> |
- /// Gets the FileCodeModel object for the project item. |
- /// </summary> |
- public virtual EnvDTE.FileCodeModel FileCodeModel |
- { |
- get |
- { |
- return null; |
- } |
- } |
- |
- /// <summary> |
- /// Gets a ProjectItems for the object. |
- /// </summary> |
- public virtual EnvDTE.ProjectItems ProjectItems |
- { |
- get |
- { |
- return null; |
- } |
- } |
- |
- /// <summary> |
- /// Gets a GUID string indicating the kind or type of the object. |
- /// </summary> |
- public virtual string Kind |
- { |
- get |
- { |
- Guid guid; |
- ErrorHandler.ThrowOnFailure(this.node.GetGuidProperty((int)__VSHPROPID.VSHPROPID_TypeGuid, out guid)); |
- return guid.ToString("B"); |
- } |
- } |
- |
- /// <summary> |
- /// Saves the project item. |
- /// </summary> |
- /// <param name="fileName">The name with which to save the project or project item.</param> |
- /// <remarks>Implemented by subclasses.</remarks> |
- public virtual void Save(string fileName) |
- { |
- throw new NotImplementedException(); |
- } |
- |
- /// <summary> |
- /// Gets the top-level extensibility object. |
- /// </summary> |
- public virtual EnvDTE.DTE DTE |
- { |
- get |
- { |
- return (EnvDTE.DTE)this.project.DTE; |
- } |
- } |
- |
- /// <summary> |
- /// Gets the ProjectItems collection containing the ProjectItem object supporting this property. |
- /// </summary> |
- public virtual EnvDTE.ProjectItems Collection |
- { |
- get |
- { |
- // Get the parent node |
- HierarchyNode parentNode = this.node.Parent; |
- Debug.Assert(parentNode != null, "Failed to get the parent node"); |
- |
- // Get the ProjectItems object for the parent node |
- if(parentNode is ProjectNode) |
- { |
- // The root node for the project |
- return ((OAProject)parentNode.GetAutomationObject()).ProjectItems; |
- } |
- else if(parentNode is FileNode && parentNode.FirstChild != null) |
- { |
- // The item has children |
- return ((OAProjectItem<FileNode>)parentNode.GetAutomationObject()).ProjectItems; |
- } |
- else if(parentNode is FolderNode) |
- { |
- return ((OAProjectItem<FolderNode>)parentNode.GetAutomationObject()).ProjectItems; |
- } |
- else |
- { |
- // Not supported. Override this method in derived classes to return appropriate collection object |
- throw new NotImplementedException(); |
- } |
- } |
- } |
- /// <summary> |
- /// Gets a list of available Extenders for the object. |
- /// </summary> |
- public virtual object ExtenderNames |
- { |
- get |
- { |
- return null; |
- } |
- } |
- |
- /// <summary> |
- /// Gets the ConfigurationManager object for this ProjectItem. |
- /// </summary> |
- /// <remarks>We do not support config management based per item.</remarks> |
- public virtual EnvDTE.ConfigurationManager ConfigurationManager |
- { |
- get |
- { |
- return null; |
- } |
- } |
- |
- /// <summary> |
- /// Gets the project hosting the ProjectItem. |
- /// </summary> |
- public virtual EnvDTE.Project ContainingProject |
- { |
- get |
- { |
- return this.project; |
- } |
- } |
- |
- /// <summary> |
- /// Gets or sets a value indicating whether or not the object has been modified since last being saved or opened. |
- /// </summary> |
- public virtual bool Saved |
- { |
- get |
- { |
- return !this.IsDirty; |
- |
- } |
- set |
- { |
- throw new NotImplementedException(); |
- } |
- } |
- |
- /// <summary> |
- /// Gets the Extender category ID (CATID) for the object. |
- /// </summary> |
- public virtual string ExtenderCATID |
- { |
- get |
- { |
- return null; |
- } |
- } |
- |
- /// <summary> |
- /// If the project item is the root of a subproject, then the SubProject property returns the Project object for the subproject. |
- /// </summary> |
- public virtual EnvDTE.Project SubProject |
- { |
- get |
- { |
- return null; |
- } |
- } |
- |
- /// <summary> |
- /// Microsoft Internal Use Only. Checks if the document associated to this item is dirty. |
- /// </summary> |
- public virtual bool IsDirty |
- { |
- get |
- { |
- throw new NotImplementedException(); |
- } |
- set |
- { |
- throw new NotImplementedException(); |
- } |
- } |
- |
- /// <summary> |
- /// Gets or sets the name of the object. |
- /// </summary> |
- public virtual string Name |
- { |
- get |
- { |
- return this.node.Caption; |
- } |
- set |
- { |
- if(this.node == null || this.node.ProjectMgr == null || this.node.ProjectMgr.IsClosed || this.node.ProjectMgr.Site == null) |
- { |
- throw new InvalidOperationException(); |
- } |
- |
- using(AutomationScope scope = new AutomationScope(this.Node.ProjectMgr.Site)) |
- { |
- this.node.SetEditLabel(value); |
- } |
- } |
- } |
- /// <summary> |
- /// Removes the project item from hierarchy. |
- /// </summary> |
- public virtual void Remove() |
- { |
- if(this.node == null || this.node.ProjectMgr == null || this.node.ProjectMgr.IsClosed || this.node.ProjectMgr.Site == null) |
- { |
- throw new InvalidOperationException(); |
- } |
- |
- using(AutomationScope scope = new AutomationScope(this.Node.ProjectMgr.Site)) |
- { |
- this.node.Remove(false); |
- } |
- } |
- |
- /// <summary> |
- /// Removes the item from its project and its storage. |
- /// </summary> |
- public virtual void Delete() |
- { |
- if(this.node == null || this.node.ProjectMgr == null || this.node.ProjectMgr.IsClosed || this.node.ProjectMgr.Site == null) |
- { |
- throw new InvalidOperationException(); |
- } |
- |
- using(AutomationScope scope = new AutomationScope(this.Node.ProjectMgr.Site)) |
- { |
- this.node.Remove(true); |
- } |
- } |
- |
- /// <summary> |
- /// Saves the project item. |
- /// </summary> |
- /// <param name="newFileName">The file name with which to save the solution, project, or project item. If the file exists, it is overwritten.</param> |
- /// <returns>true if save was successful</returns> |
- /// <remarks>This method is implemented on subclasses.</remarks> |
- public virtual bool SaveAs(string newFileName) |
- { |
- throw new NotImplementedException(); |
- } |
- |
- /// <summary> |
- /// Gets a value indicating whether the project item is open in a particular view type. |
- /// </summary> |
- /// <param name="viewKind">A Constants.vsViewKind* indicating the type of view to check./param> |
- /// <returns>A Boolean value indicating true if the project is open in the given view type; false if not. </returns> |
- public virtual bool get_IsOpen(string viewKind) |
- { |
- throw new NotImplementedException(); |
- } |
- |
- /// <summary> |
- /// Gets the full path and names of the files associated with a project item. |
- /// </summary> |
- /// <param name="index"> The index of the item</param> |
- /// <returns>The full path of the associated item</returns> |
- /// <exception cref="ArgumentOutOfRangeException">Is thrown if index is not one</exception> |
- public virtual string get_FileNames(short index) |
- { |
- // This method should really only be called with 1 as the parameter, but |
- // there used to be a bug in VB/C# that would work with 0. To avoid breaking |
- // existing automation they are still accepting 0. To be compatible with them |
- // we accept it as well. |
- Debug.Assert(index > 0, "Index is 1 based."); |
- if(index < 0) |
- { |
- throw new ArgumentOutOfRangeException("index"); |
- } |
- return this.node.Url; |
- } |
- |
- /// <summary> |
- /// Expands the view of Solution Explorer to show project items. |
- /// </summary> |
- public virtual void ExpandView() |
- { |
- if(this.node == null || this.node.ProjectMgr == null || this.node.ProjectMgr.IsClosed || this.node.ProjectMgr.Site == null) |
- { |
- throw new InvalidOperationException(); |
- } |
- |
- using(AutomationScope scope = new AutomationScope(this.Node.ProjectMgr.Site)) |
- { |
- IVsUIHierarchyWindow uiHierarchy = UIHierarchyUtilities.GetUIHierarchyWindow(this.node.ProjectMgr.Site, HierarchyNode.SolutionExplorer); |
- if(uiHierarchy == null) |
- { |
- throw new InvalidOperationException(); |
- } |
- |
- ErrorHandler.ThrowOnFailure(uiHierarchy.ExpandItem(this.node.ProjectMgr, this.node.ID, EXPANDFLAGS.EXPF_ExpandFolder)); |
- |
- } |
- } |
- |
- /// <summary> |
- /// Opens the project item in the specified view. Not implemented because this abstract class dont know what to open |
- /// </summary> |
- /// <param name="ViewKind">Specifies the view kind in which to open the item</param> |
- /// <returns>Window object</returns> |
- public virtual EnvDTE.Window Open(string ViewKind) |
- { |
- throw new NotImplementedException(); |
- } |
- |
- #endregion |
- } |
-} |