Пример #1
0
 // Add existing Item: addType == AddExistingItem
 // This runs before the dialog
 protected override int AddItemToHierarchy(HierarchyAddType addType)
 {
     return base.AddItemToHierarchy(addType);
 }
Пример #2
0
        /// <include file='doc\Hierarchy.uex' path='docs/doc[@for="HierarchyNode.AddItemToHierarchy"]/*' />
        /// <summary>
        /// handles the add item and add new item cmdIds. Does so by invoking the system VS dialog, which calls back on the 
        /// project's AddItem method
        /// </summary>
        /// <param name="addType"></param>
        /// <returns></returns>
        public virtual int AddItemToHierarchy(HierarchyAddType addType){
            IVsAddProjectItemDlg addItemDialog;

            string strFilter = "";
            int iDontShowAgain;
            uint uiFlags;
            IVsProject3 project = (IVsProject3)this.projectMgr;

            string strBrowseLocations = Path.GetDirectoryName(new Uri(this.projectMgr.projFile.BaseURI).LocalPath);

            System.Guid projectGuid = this.projectMgr.GetProjectGuid();

            addItemDialog = this.GetService(typeof(IVsAddProjectItemDlg)) as IVsAddProjectItemDlg;

            if (addType == HierarchyAddType.addNewItem)
                uiFlags = (uint)(__VSADDITEMFLAGS.VSADDITEM_AddNewItems | __VSADDITEMFLAGS.VSADDITEM_SuggestTemplateName); /* | VSADDITEM_ShowLocationField */
            else
                uiFlags = (uint)(__VSADDITEMFLAGS.VSADDITEM_AddExistingItems | __VSADDITEMFLAGS.VSADDITEM_AllowMultiSelect | __VSADDITEMFLAGS.VSADDITEM_AllowStickyFilter);

            addItemDialog.AddProjectItemDlg(this.hierarchyId, ref projectGuid, project, uiFlags, null, null, ref strBrowseLocations, ref strFilter, out iDontShowAgain); /*&fDontShowAgain*/

            return 0;
        }