public ProjectTreeView() { Instance = this; MultiSelect = true; nodeMap = new Dictionary<string, GenericNode>(); ShowNodeToolTips = true; }
public ProjectTreeView() { Instance = this; MultiSelect = true; nodeMap = new Dictionary <string, GenericNode>(); ShowNodeToolTips = true; }
protected override void OnActivating(DockPanelControl panel) { ProjectManager.PluginUI projectPanel = panel as ProjectManager.PluginUI; _projectTree = projectPanel.Tree; BuildItems(); HookEvents(); }
bool IsFileExcluded(string path) { if (path == Project.ProjectPath) { return(true); } return((Project.IsPathHidden(path) || path.IndexOf("\\.") >= 0 || ProjectTreeView.IsFileTypeHidden(path)) && !Project.ShowHiddenPaths); }
public ProjectTreeView() { Instance = this; MultiSelect = true; nodeMap = new Dictionary<string, GenericNode>(); ShowNodeToolTips = true; EventManager.AddEventHandler(this, EventType.ApplyTheme); }
public ProjectTreeView() { Instance = this; MultiSelect = true; nodeMap = new Dictionary <string, GenericNode>(); ShowNodeToolTips = true; EventManager.AddEventHandler(this, EventType.ApplyTheme); }
static internal void SetMenu(ProjectTreeView tree, ProjectSelectionState state) { if (tree == null || state.Manager == null) return; IVCMenuItems menuItems = state.Manager.MenuItems; menuItems.CurrentNodes = (TreeNode[])tree.SelectedNodes.ToArray(typeof(TreeNode)); menuItems.CurrentManager = state.Manager; AddSCMainItem(tree); scItem.DropDownItems.Clear(); // let a VC provide a completely custom items list foreach (KeyValuePair<ToolStripItem, VCMenuItemProperties> item in menuItems.Items) { if (item.Value.Show.Invoke(state)) { scItem.DropDownItems.Add(item.Key); if (item.Value.Enable != null) item.Key.Enabled = item.Value.Enable.Invoke(state); } } // classical VC menu items if (menuItems != null) { List<ToolStripItem> items = new List<ToolStripItem>(); // generic items.Add(menuItems.Update); items.Add(menuItems.Commit); items.Add(menuItems.Push); items.Add(menuItems.ShowLog); int minLen = items.Count; // specific if (state.Files == 2 && state.Total == 2) items.Add(menuItems.Diff); if (state.Conflict == 1 && state.Total == 1) items.Add(menuItems.EditConflict); if (state.Unknown + state.Ignored > 0 || state.Dirs > 0) items.Add(menuItems.Add); if (state.Unknown + state.Ignored == state.Total) items.Add(menuItems.Ignore); if (state.Unknown + state.Ignored < state.Total) { if (state.Added > 0) items.Add(menuItems.UndoAdd); else if (state.Revert > 0) { if (state.Diff > 0) items.Add(menuItems.DiffChange); items.Add(menuItems.Revert); } else if (state.Total == 1) items.Add(menuItems.DiffChange); } if (items.Count > minLen) items.Insert(minLen, menuItems.MidSeparator); items.RemoveAll(item => item == null); scItem.DropDownItems.AddRange(items.ToArray()); } }
private static void AddSCMainItem(ProjectTreeView tree) { if (scItem == null) { scItem = new ToolStripMenuItem(); scItem.Text = TextHelper.GetString("Label.SourceControl"); scItem.Image = PluginBase.MainForm.FindImage("480"); } // add in same group as Open/Execute/Shell menu... Boolean isProjectNode = tree.SelectedNodes.Count > 0 && tree.SelectedNodes[0].GetType().ToString().EndsWith("ProjectNode"); Int32 index = GetNthSeparatorIndex(tree.ContextMenuStrip, isProjectNode ? 2 : 1); if (index >= 0) tree.ContextMenuStrip.Items.Insert(index, scItem); else tree.ContextMenuStrip.Items.Add(scItem); }
protected override void OnDeactivating() { UnhookEvents(); ClearItems(); _projectTree = null; }
public PluginUI(PluginMain plugin, FDMenus menus, FileActions fileActions, ProjectActions projectActions) { this.menus = menus; this.plugin = plugin; this.Text = TextHelper.GetString("Title.PluginPanel"); #region Build TreeView and Toolbar menu = new ProjectContextMenu(); menu.Rename.Click += RenameNode; treeBar = new TreeBar(menus, menu); tree = new ProjectTreeView(); tree.BorderStyle = BorderStyle.None; tree.Dock = DockStyle.Fill; tree.ImageIndex = 0; tree.ImageList = Icons.ImageList; tree.LabelEdit = true; tree.SelectedImageIndex = 0; tree.ShowRootLines = false; tree.HideSelection = false; tree.ContextMenuStrip = menu; tree.AfterLabelEdit += tree_AfterLabelEdit; tree.BeforeLabelEdit += tree_BeforeLabelEdit; tree.BeforeSelect += tree_BeforeSelect; tree.AfterSelect += tree_AfterSelect; Panel panel = new Panel(); panel.Dock = DockStyle.Fill; panel.Controls.Add(tree); panel.Controls.Add(treeBar); menu.ProjectTree = tree; #endregion #region Instructions help = new LinkLabel(); string[] helpParts = String.Format(TextHelper.GetString("Info.NoProjectsOpenLink"), "\n").Split('|'); string[] helpActions = { "create", "open", "import" }; string helpText = ""; int[] linkStart = { 0, 0, 0 }; int[] linkLength = { 0, 0, 0 }; for (int i = 0; i < 3; i++) { if (helpParts.Length > i * 2) { helpText += helpParts[i * 2]; linkStart[i] = helpText.Length; helpText += helpParts[i * 2 + 1]; linkLength[i] = helpParts[i * 2 + 1].Length; } } help.Text = helpText + helpParts[helpParts.Length - 1]; for (int i = 0; i < 3; i++) { help.Links.Add(linkStart[i], linkLength[i], helpActions[i]); } help.LinkClicked += link_LinkClicked; help.Dock = DockStyle.Fill; help.TextAlign = ContentAlignment.MiddleCenter; help.ContextMenu = new ContextMenu(); #endregion this.Controls.Add(help); this.Controls.Add(panel); #region Events fileActions.FileCreated += NewFileCreated; fileActions.ProjectModified += ProjectModified; projectActions.ProjectModified += ProjectModified; #endregion }
bool IsFileExcluded(string path) { if (project == null) { return(false); } if (path == project.ProjectPath) { return(true); } return(!project.ShowHiddenPaths && (project.IsPathHidden(path) || path.IndexOf("\\.") >= 0 || ProjectTreeView.IsFileTypeHidden(path))); }
/// <summary> /// Handles the incoming events /// </summary> public void HandleEvent(Object sender, NotifyEvent e, HandlingPriority prority) { switch (e.Type) { case EventType.Command: string cmd = (e as DataEvent).Action; if (cmd == "ProjectManager.TreeSelectionChanged") { __ptv = (ProjectTreeView)sender; BuildContextMenu(sender); } break; } }