public override bool CanDeleteItem(__VSDELETEITEMOPERATION deleteOperation)
 {
     // this is reference to FSharp.Core that uses value of TargetFSharpCoreVersion property - prohibit deletion
     if (IsSpecialFSharpCoreReference)
     {
         return false;
     }
     return base.CanDeleteItem(deleteOperation);
 }
Пример #2
0
 protected override bool CanDeleteItem(__VSDELETEITEMOPERATION deleteOperation)
 {
     if (deleteOperation == __VSDELETEITEMOPERATION.DELITEMOP_RemoveFromProject)
     {
         return true;
     }
     return false;
 }
Пример #3
0
 protected internal override void ShowDeleteMessage(IList<HierarchyNode> nodes, __VSDELETEITEMOPERATION action, out bool cancel, out bool useStandardDialog) {
     if (nodes.All(n => n is InterpretersPackageNode) &&
         nodes.Cast<InterpretersPackageNode>().All(n => n.Parent == Parent)) {
         string message;
         if (nodes.Count == 1) {
             message = Strings.UninstallPackage.FormatUI(
                 Caption,
                 Parent._factory.Description,
                 Parent._factory.Configuration.PrefixPath
             );
         } else {
             message = Strings.UninstallPackages.FormatUI(
                 string.Join(Environment.NewLine, nodes.Select(n => n.Caption)),
                 Parent._factory.Description,
                 Parent._factory.Configuration.PrefixPath
             );
         }
         useStandardDialog = false;
         cancel = VsShellUtilities.ShowMessageBox(
             ProjectMgr.Site,
             string.Empty,
             message,
             OLEMSGICON.OLEMSGICON_WARNING,
             OLEMSGBUTTON.OLEMSGBUTTON_OKCANCEL,
             OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_FIRST
         ) != NativeMethods.IDOK;
     } else {
         useStandardDialog = false;
         cancel = true;
     }
 }
Пример #4
0
 protected internal override void ShowDeleteMessage(IList<HierarchyNode> nodes, __VSDELETEITEMOPERATION action, out bool cancel, out bool useStandardDialog) {
     // Don't prompt if all the nodes are references
     useStandardDialog = !nodes.All(n => n is ReferenceNode);
     cancel = false;
 }
Пример #5
0
 /// <summary>
 /// Common Folder Node can only be deleted from file system.
 /// </summary>        
 internal override bool CanDeleteItem(__VSDELETEITEMOPERATION deleteOperation) {
     return deleteOperation == __VSDELETEITEMOPERATION.DELITEMOP_DeleteFromStorage;
 }
Пример #6
0
 internal override bool CanDeleteItem(__VSDELETEITEMOPERATION deleteOperation) {
     return _canUninstall && deleteOperation == __VSDELETEITEMOPERATION.DELITEMOP_RemoveFromProject;
 }
Пример #7
0
 /// <summary>
 /// Common File Node can only be deleted from file system.
 /// </summary>        
 internal override bool CanDeleteItem(__VSDELETEITEMOPERATION deleteOperation) {
     if (IsLinkFile) {
         // we don't delete link items, we only remove them from the project.  If we were
         // to return true when queried for both delete from storage and remove from project
         // the user would be prompted about which they would like to do.
         return deleteOperation == __VSDELETEITEMOPERATION.DELITEMOP_RemoveFromProject;
     }
     return deleteOperation == __VSDELETEITEMOPERATION.DELITEMOP_DeleteFromStorage;
 }
Пример #8
0
 /// <summary>
 /// Interpreter container node cannot be deleted.
 /// </summary>
 internal override bool CanDeleteItem(__VSDELETEITEMOPERATION deleteOperation)
 {
     return(false);
 }
Пример #9
0
        protected override bool CanDeleteItem(__VSDELETEITEMOPERATION deleteOperation)
        {
            string linkPath = this.ItemNode.GetMetadata(ProjectFileConstants.Link);
            __VSDELETEITEMOPERATION supportedOp = String.IsNullOrEmpty(linkPath) ?
                __VSDELETEITEMOPERATION.DELITEMOP_DeleteFromStorage : __VSDELETEITEMOPERATION.DELITEMOP_RemoveFromProject;

            if (deleteOperation == supportedOp)
            {
                return this.ProjectManager.CanProjectDeleteItems;
            }

            return false;
        }
Пример #10
0
        protected override bool CanDeleteItem(__VSDELETEITEMOPERATION deleteOperation)
        {
            __VSDELETEITEMOPERATION supportedOp = !this.IsLink ?
                __VSDELETEITEMOPERATION.DELITEMOP_DeleteFromStorage : __VSDELETEITEMOPERATION.DELITEMOP_RemoveFromProject;

            if (deleteOperation == supportedOp)
            {
                return this.ProjectMgr.CanProjectDeleteItems;
            }

            return false;
        }
Пример #11
0
        private void PromptAndDelete(HierarchyItem item, IVsHierarchyDeleteHandler deleteHandler, __VSDELETEITEMOPERATION deleteType, string message) {
            Guid unused = Guid.Empty;
            int result;
            // show delete dialog...
            if (ErrorHandler.Succeeded(
                _mockVs.UIShell.ShowMessageBox(
                    0,
                    ref unused,
                    null,
                    message,
                    null,
                    0,
                    OLEMSGBUTTON.OLEMSGBUTTON_OKCANCEL,
                    OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_FIRST,
                    OLEMSGICON.OLEMSGICON_WARNING,
                    0,
                    out result
                )) && result == DialogResult.OK) {
                int hr = deleteHandler.DeleteItem(
                    (uint)deleteType,
                    item.ItemId
                );

                if (ErrorHandler.Failed(hr) && hr != VSConstants.OLE_E_PROMPTSAVECANCELLED) {
                    _mockVs.UIShell.ReportErrorInfo(hr);
                }
            }
        }
Пример #12
0
        /// <summary>
        /// This is overridden to prevent deletion of linked project items.
        /// Linked items can still be removed/excluded.
        /// </summary>
        /// <param name="deleteOperation">The delete operation to perform</param>
        /// <returns>True if the item can be deleted based on the requested
        /// operation or false if it cannot.</returns>
        protected override bool CanDeleteItem(__VSDELETEITEMOPERATION deleteOperation)
        {
            if(deleteOperation == __VSDELETEITEMOPERATION.DELITEMOP_DeleteFromStorage)
            {
                // !EFW - Cannot delete linked items
                if(!String.IsNullOrEmpty(this.ItemNode.GetMetadata(ProjectFileConstants.Link)))
                    return false;

                return this.ProjectMgr.CanProjectDeleteItems;
            }

            // Remove is allowed for linked items
            if(deleteOperation == __VSDELETEITEMOPERATION.DELITEMOP_RemoveFromProject)
                return !String.IsNullOrEmpty(this.ItemNode.GetMetadata(ProjectFileConstants.Link));

            return false;
        }
Пример #13
0
 protected internal override void ShowDeleteMessage(IList <HierarchyNode> nodes, __VSDELETEITEMOPERATION action, out bool cancel, out bool useStandardDialog)
 {
     // Don't prompt if all the nodes are search paths
     useStandardDialog = !nodes.All(n => n is BaseSearchPathNode);
     cancel            = false;
 }
 protected override bool CanDeleteItem(__VSDELETEITEMOPERATION deleteOperation)
 {
     if(deleteOperation == __VSDELETEITEMOPERATION.DELITEMOP_DeleteFromStorage)
     {
         return this.ProjectMgr.CanProjectDeleteItems;
     }
     return false;
 }
Пример #15
0
        internal override bool CanDeleteItem(__VSDELETEITEMOPERATION deleteOperation) {
            var service = _interpreterService as IInterpreterOptionsService2;
            if (service != null && service.IsInterpreterLocked(_factory, InstallPackageLockMoniker)) {
                // Prevent the environment from being deleted while installing.
                return false;
            }

            if (deleteOperation == __VSDELETEITEMOPERATION.DELITEMOP_RemoveFromProject) {
                // Interpreter and InterpreterReference can both be removed from
                // the project, but the default environment cannot
                return _canRemove;
            } else if (deleteOperation == __VSDELETEITEMOPERATION.DELITEMOP_DeleteFromStorage) {
                // Only Interpreter can be deleted.
                return _canDelete;
            }
            return false;
        }
Пример #16
0
 /// <summary>
 /// SearchPathContainer Node cannot be deleted.
 /// </summary>        
 protected override bool CanDeleteItem(__VSDELETEITEMOPERATION deleteOperation)
 {
     return false;
 }
Пример #17
0
 /// <summary>
 /// Common Folder Node can only be deleted from file system.
 /// </summary>
 internal override bool CanDeleteItem(__VSDELETEITEMOPERATION deleteOperation)
 {
     return(deleteOperation == __VSDELETEITEMOPERATION.DELITEMOP_DeleteFromStorage);
 }