void GenerateMenuItemContent(VsDevExpressMenuItem menu, NavigateItem item, string relativePath, Action <VsDevExpressMenuItem, NavigateItem> addClickHandler) { int startIndex = 0; relativePath = ReduceRelativePath(relativePath); while (startIndex > -1) { int index = GetDirectorySeparatorIndex(relativePath, startIndex + 1); if (index < 0) { break; } string name = relativePath.Substring(startIndex, Math.Max(0, index - startIndex)); name = name.Replace(Path.DirectorySeparatorChar.ToString(), string.Empty); name = name.Replace(Path.AltDirectorySeparatorChar.ToString(), string.Empty); if (string.IsNullOrEmpty(name)) { continue; } startIndex = index; if (string.IsNullOrEmpty(name)) { continue; } menu = menu.CreateOrGetItem(name, true); } var menuItem = menu.CreateOrGetItem(item.Name); addClickHandler(menuItem, item); }
private void NavigateBack() { NavigateItem thisItem = _history.Pop(); NavigateItem lastItem = _history.Pop(); switch (lastItem.ViewMode) { case ViewMode.ViewSource: ListLoad(); break; case ViewMode.ViewType: ListLoad(lastItem.Argument as ResourceType); break; case ViewMode.ViewName: ListLoad(lastItem.Argument as ResourceName); break; case ViewMode.ViewLangData: DataLoad(lastItem.Argument as ResourceLang); break; } NavigateUpdateUI(); }
/// <summary>Pushes the current view to the top of the history stack and updates the Navigation UI</summary> private void NavigateAdd() { var item = new NavigateItem(); item.ViewMode = _currentViewMode; switch (item.ViewMode) { case ViewMode.ViewSource: // don't reference the current source, we don't want to lose memory from the GC // item.Argument = CurrentSource; break; case ViewMode.ViewType: item.Argument = _viewList.CurrentObject as ResourceType; break; case ViewMode.ViewName: item.Argument = _viewList.CurrentObject as ResourceName; break; case ViewMode.ViewLangData: item.Argument = _viewData.CurrentData.Lang; break; } _history.Push(item); NavigateUpdateUI(); }
void RootMenuItemClick(object sender, EventArgs e) { VsDevExpressMenuItem menuItem = (VsDevExpressMenuItem)sender; NavigateItem item = (NavigateItem)menuItem.Tag; package.ToolWindowViewModel.NavigateToSolution(item.Path); }
bool ProjectTypeMatch(NavigateItem item) { DteWrapper wrapper = new DteWrapper(dte); ProjectType type = wrapper.GetProjectType(); return(!type.Conflicts(item.ProjectType)); }
bool ProjectTypeMatch(NavigateItem item) { DteWrapper wrapper = new DteWrapper(dte); ProjectType type = wrapper.GetProjectType(); return((type != ProjectType.NoPlatform || type != ProjectType.Unknown) && wrapper.GetProjectType() == item.ProjectType); }
public string GetRelativePath(NavigateItem item) { string path = item.Path; string rootPath = FindRootPath(item.Path); string replace = "$" + Path.GetFileName(rootPath); return(path.Replace(rootPath, replace)); }
void AddProjectReferenceMenuItemClick(object sender, EventArgs e) { VsDevExpressMenuItem menuItem = (VsDevExpressMenuItem)sender; NavigateItem item = (NavigateItem)menuItem.Tag; AddReferenceHelper helper = new AddReferenceHelper(); helper.AddProjectReferences(new DteWrapper(dte), item); }
NavigateTreeItem GetUniqueItem(string parentKey, string key, NavigateItem item) { var root = new NavigateTreeItem(parentKey, key, item); if (nodesCache.ContainsKey(root)) { return(null); } nodesCache.Add(root, root); return(root); }
public List <NavigateItem> GetLeftMenuItems() { List <NavigateItem> items = new List <NavigateItem>(); NavigateItem item = new NavigateItem { Title = "详细信息", Tooltip = "详细信息" }; return(items); }
public List<NavigateItem> GetLeftMenuItems() { List<NavigateItem> items = new List<NavigateItem>(); NavigateItem item = new NavigateItem { Title = Utility.GetResourceStr("InfoDetail"), Tooltip = Utility.GetResourceStr("InfoDetail") }; items.Add(item); return items; }
public List <NavigateItem> GetLeftMenuItems() { List <NavigateItem> items = new List <NavigateItem>(); NavigateItem item = new NavigateItem { Title = "角色权限", Tooltip = "角色权限信息" }; items.Add(item); return(items); }
public List <NavigateItem> GetLeftMenuItems() { List <NavigateItem> items = new List <NavigateItem>(); NavigateItem item = new NavigateItem { Title = Utility.GetResourceStr("DETAILINFO"), Tooltip = Utility.GetResourceStr("DETAILINFO") }; items.Add(item); return(items); }
public void AddReferences(IDteWrapper dte, NavigateItem item) { try { BusyIndicator.Show(); dte.ClearReferences(); SolutionParser parser = new SolutionParser(item.Path); foreach (var assembly in parser.GetReferencedAssemblies(true)) { dte.AddReference(assembly); } } finally { BusyIndicator.Close(); } }
public List <NavigateItem> GetLeftMenuItems() { List <NavigateItem> items = new List <NavigateItem>(); NavigateItem item = new NavigateItem { Title = "详细信息A", Tooltip = "详细信息A" }; items.Add(item); //item = new NavigateItem //{ // Title = "详细信息B", // Tooltip = "详细信息B" //}; //items.Add(item); return(items); }
public List <NavigateItem> GetLeftMenuItems() { List <NavigateItem> items = new List <NavigateItem>(); NavigateItem item = new NavigateItem { Title = "详细信息", Tooltip = "详细信息" }; items.Add(item); //item = new NavigateItem //{ // Title = "员工资料", // Tooltip = "员工详细", // Url = "/Personnel/Employee" //}; //items.Add(item); return(items); }
public List <NavigateItem> GetLeftMenuItems() { List <NavigateItem> items = new List <NavigateItem>(); NavigateItem item = new NavigateItem { Title = "详细信息", Tooltip = "详细信息" }; items.Add(item); //item = new NavigateItem //{ // Title = "薪资标准", // Tooltip = "薪资标准", // Url = "/Salary/SalaryStandard.xaml" //}; //items.Add(item); return(items); }
public List <NavigateItem> GetLeftMenuItems() { List <NavigateItem> items = new List <NavigateItem>(); NavigateItem item = new NavigateItem { Title = "角色", Tooltip = "员工角色" }; items.Add(item); item = new NavigateItem { Title = "员工信息", Tooltip = "详细信息", Url = "/SysUserInfoPage.xaml?userid=" + tmpUser.SYSUSERID }; items.Add(item); return(items); }
public List <NavigateItem> GetLeftMenuItems() { List <NavigateItem> items = new List <NavigateItem>(); NavigateItem item = new NavigateItem { Title = Utility.GetResourceStr("BASEINFO"), Tooltip = Utility.GetResourceStr("BASEINFO") }; items.Add(item); //item = new NavigateItem //{ // Title = Utility.GetResourceStr("SALARYARCHIVE"), // Tooltip = Utility.GetResourceStr("SALARYARCHIVE"), // Url = "/Salary/SalaryArchive" //}; //items.Add(item); return(items); }
IEnumerable <NavigateTreeItem> GetHierarchy(NavigateItem item) { string rootPath = FindRootPath(item.Path); if (string.IsNullOrEmpty(rootPath) || !item.Path.StartsWith(rootPath)) { yield break; } yield return(GetUniqueItem(null, rootPath, null)); string path = Path.GetDirectoryName(item.Path); yield return(GetUniqueItem(path, item.Path, item)); while (path != rootPath) { string next = Path.GetDirectoryName(path); yield return(GetUniqueItem(next, path, null)); path = next; } }
void GenerateAddReferenceMenuItem(NavigateItem item, Func <NavigateItem, string> getRelativePath) { string relativePath = getRelativePath(item); if (string.IsNullOrEmpty(relativePath) || !relativePath.StartsWith("$")) { return; } int index = GetDirectorySeparatorIndex(relativePath); if (index < 0) { return; } string menuName = GetRootMenuName(relativePath); var rootMenu = GetRootAddReferenceMenu(string.Format(addReferenceFormat, menuName)); relativePath = relativePath.Substring(index, relativePath.Length - index); GenerateMenuItemContent(rootMenu, item, relativePath, (menuItem, navItem) => { menuItem.Tag = navItem; menuItem.Click += AddReferenceMenuItemClick; }); }
bool ShouldGenerateMenuItem(NavigateItem item) { return(item.UsedForAddReference && ProjectTypeMatch(item)); }
public void AddReferences(IDteWrapper dte, NavigateItem item) { AddReferencesImpl(dte, item, false); }
public void AddProjectReferences(IDteWrapper dte, NavigateItem item) { AddReferencesImpl(dte, item, true); }
public void AddReferencesImpl(IDteWrapper dte, NavigateItem item, bool addAsProjectReference) { dte.LockCurrentProject(); try { BusyIndicator.Show(); string path = item.Path; SolutionParser parser = new SolutionParser(path); var projectType = parser.GetProjectType(); var newAssemblies = parser.GetReferencedAssemblies(!addAsProjectReference).Select(x => new MultiReference(x)); var newVersion = newAssemblies.Select(x => x.AssemblySource).FirstOrDefault(DXControlsVersionHelper.HasDXVersionInfo).With(DXControlsVersionHelper.GetDXVersionString); BusyIndicator.UpdateText("Search for references..."); var cache = SerializeHelper.DeserializeAddReferenceHelperCache(); var updatedReferenceCachedItem = cache.GetItem(path); IEnumerable <MultiReference> updatedReferences = null; if (updatedReferenceCachedItem != null) { updatedReferences = updatedReferenceCachedItem.References.Select(x => new MultiReference(x)).ToList(); } else { updatedReferences = ChangeVersion(dte, projectType, newVersion).ToList(); cache.AddItem(new AddReferenceHelperItem() { Solution = path, References = updatedReferences.Where(x => x.ReferenceSource != null).Select(x => x.ReferenceSource).ToList() }); SerializeHelper.SerializeAddReferenceHelperCache(cache); } BusyIndicator.UpdateText("Preparing project..."); dte.ClearReferences(); dte.ClearProjectReferences(); var actualReferences = Concat(newAssemblies, updatedReferences); if (addAsProjectReference) { actualReferences = Concat(actualReferences, parser.GetProjectPathes().Select(x => new MultiReference(x, MultiReferenceType.Project))); } foreach (var reference in actualReferences) { try { if (reference.Type == MultiReferenceType.Assembly) { var assembly = projectType == ProjectType.SL ? reference.FullAssemblySource : reference.AssemblySource; BusyIndicator.UpdateText("Add reference: " + assembly); dte.AddReference(assembly); } else { var project = reference.ProjectSource; BusyIndicator.UpdateText("Add project: " + project); dte.AddProjectReference(reference.ProjectSource); } } catch { } } } finally { BusyIndicator.Close(); dte.UnlockCurrentProject(); dte.ActivateConfiguration("DebugTest"); } }