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();
        }
Beispiel #4
0
        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;
 }
Beispiel #10
0
        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
        }
Beispiel #11
0
        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;
     }
 }