示例#1
0
 private void LoadStations()
 {
     TemporaryValues.stations = dbHelper.GetAllStationsInfoWithDeviceInfo();
     if (TemporaryValues.stations != null)
     {
         if (TemporaryValues.stations.Count > 0)
         {
             ProjectTreeView.BeginUpdate();
             // İlk Node seçilir
             TreeNode node = ProjectTreeView.Nodes[0];
             // 2 nolu node'un 'istasyonlar' node u oldugu kabul edilerek devam edilir.
             if (node.Nodes[1].Nodes != null)
             {
                 node.Nodes[1].Nodes.Clear();
                 node.Nodes[1].ContextMenuStrip = contextMenuStrip_Stations;
             }
             foreach (Station station in TemporaryValues.stations)
             {
                 TreeNode node_station = new TreeNode(station.Name);
                 node_station.ContextMenuStrip = contextMenuStrip_Devices;
                 ProjectTreeView.Nodes[0].Nodes[1].Nodes.Add(node_station);
                 AddStationDevicesToTreeView(station.Devices, node_station);
             }
             ProjectTreeView.EndUpdate();
         }
     }
 }
示例#2
0
        private void ProjectTreeView_DragDrop(object sender, DragEventArgs e)
        {
            TreeNode MyNode     = (TreeNode)e.Data.GetData(typeof(TreeNode));
            TreeView MyTreeView = (TreeView)sender;
            //得到当前鼠标进入的节点
            TreeNode MyTargetNode = MyTreeView.GetNodeAt(ProjectTreeView.PointToClient(new Point(e.X, e.Y)));

            if (MyTargetNode != null)
            {
                TreeNode MyTargetParent = MyTargetNode.Parent;
                //删除拖放的节点
                if (MyNode == MyTargetNode)
                {
                    return;
                }
                MyNode.Remove();
                //添加到目标节点

                MyTargetNode.Nodes.Add(MyNode);


                //MyTargetNode.BackColor = Color.White;
                MyTreeView.SelectedNode = MyTargetNode;
            }
        }
示例#3
0
        private ProjectTreeNode GetFirstVisibleParentNode(ProjectTreeNode projectNode)
        {
            if (!IsNodeVisible(projectNode))
            {
                return(projectNode);
            }

            var treeViewItem = ProjectTreeView.ModelToItem(projectNode);

            if (treeViewItem != null)
            {
                return(projectNode);
            }

            while (projectNode?.Parent != null)
            {
                treeViewItem = ProjectTreeView.ModelToItem(projectNode.Parent);
                if (treeViewItem != null)
                {
                    return(projectNode.Parent);
                }

                projectNode = projectNode.Parent;
            }

            return(projectNode);
        }
示例#4
0
 private void ProjectTreeView_DragEnter(object sender, DragEventArgs e)
 {
     try
     {
         object MyData = e.Data.GetData(typeof(TreeNode));
         //如果节点有数据,拖放目标允许移动
         if (MyData != null)
         {
             e.Effect = DragDropEffects.Move;
         }
         else
         {
             e.Effect = DragDropEffects.None;
         }
         TreeView MyTreeView = (TreeView)sender;
         TreeNode MyNode     = MyTreeView.GetNodeAt(ProjectTreeView.PointToClient(new Point(e.X, e.Y)));
         //if (MyNode != null)
         //{   //改变进入节点的背景色
         //    MyNode.BackColor = Color.Blue;
         //    //保存此节点,进入下一个时还原背景色
         //    MyOldNode = MyNode;
         //}
     }
     catch (SystemException ex)
     {
         return;
     }
 }
示例#5
0
 private void ContextMenu_Rename_Click(object sender, EventArgs e)
 {
     if (ProjectTreeView.SelectedObject != null)
     {
         //ProjectTreeView.EditSubItem(ProjectTreeView.SelectedItem, 0);
         ProjectTreeView.StartCellEdit(ProjectTreeView.SelectedItem, 0);
     }
 }
示例#6
0
 public void SetSelectedNodes(IEnumerable <ProjectTreeNode> nodes)
 {
     using (FlagManager.UseFlag("ManualSelect"))
     {
         FlagManager.Set("WaitForManualSelect", true);
         ProjectTreeView.SelectObjects(nodes.ToList());
     }
 }
示例#7
0
        private void RebuildNavigation(bool recreate)
        {
            using (FlagManager.UseFlag("BuildingNavTree"))
            {
                if (ProjectManager.IsProjectOpen)
                {
                    var selectedNodeIDs = ProjectTreeView.SelectedObjects
                                          .OfType <ProjectTreeNode>().Select(x => x.NodeID).ToList();
                    selectedNodeIDs.RemoveAll(x => string.IsNullOrEmpty(x));

                    var expandedNodeIDs = ProjectTreeView.ExpandedObjects
                                          .OfType <ProjectTreeNode>().Select(x => x.NodeID).ToList();
                    expandedNodeIDs.RemoveAll(x => string.IsNullOrEmpty(x));
                    ProjectTreeView.ExpandedObjects = Enumerable.Empty <ProjectTreeNode>();

                    if (recreate)
                    {
                        ProjectTreeView.ClearObjects();

                        ProjectManager.RebuildNavigationTree();

                        ProjectTreeView.AddObjects(ProjectManager.NavigationTreeNodes.ToList());


                        foreach (ProjectCollectionNode node in ProjectTreeView.Roots)
                        {
                            node.Manager = ProjectManager;
                            ProjectTreeView.Expand(node);
                        }
                    }
                    else
                    {
                        foreach (ProjectTreeNode node in ProjectTreeView.Roots)
                        {
                            ProjectTreeView.RemoveObjects(node.GetChildHierarchy().ToList());
                            node.InvalidateChildrens();
                            ProjectTreeView.UpdateObject(node);
                        }
                    }


                    //ProjectTreeView.TreeModel.
                    ExpandNodes(ProjectTreeView.Roots, expandedNodeIDs);

                    if (selectedNodeIDs.Any())
                    {
                        SetSelectedNodeIDs(selectedNodeIDs);
                    }
                }
                else
                {
                    ProjectTreeView.ClearObjects();
                }

                FilterNavigation();
            }
        }
 public ProjectTreeViewItem(ProjectTreeView _ptview)
 {
     InitializeComponent();
     DataContext    = this;
     ptview         = _ptview;
     RelativeObject = String.Empty;
     Flags          = ProjectTreeViewItem.TYPE_CONST;
     //PreviewMouseDown += ProjectTreeViewItem_PreviewMouseDown;
 }
示例#9
0
 public Interface()
 {
     InitializeComponent();
     #region ProjectTreeView
     ProjectTreeView.ExpandAll();
     ProjectTreeView.ContextMenu = ProjectTreeViewContext;
     VistaControls.VistaConstants.SetWindowTheme(ProjectTreeView.Handle, "explorer", null);
     #endregion
 }
示例#10
0
        void DirectoryNode_OnDirectoryNodeRefresh(DirectoryNode node)
        {
            if (node is ProjectNode)
            {
                currentTree = node.TreeView as ProjectTreeView;
            }

            UpdateNodeStatus(node);
        }
示例#11
0
 private void ProjectTreeView_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (FlagManager.IsSet("PreventSelection") &&
         !FlagManager.IsSet("ItemSelectionChanged"))
     {
         using (FlagManager.UseFlag("ItemSelectionChanged"))
             ProjectTreeView.SelectObjects(SelectedItemCache);
     }
 }
示例#12
0
        public PluginUI(PluginMain plugin, FDMenus menus,
                        FileActions fileActions, ProjectActions projectActions)
        {
            this.plugin = plugin;
            this.menus  = menus;
            this.Tag    = "Project";
            this.Text   = "Project Explorer";

            #region Build TreeView

            menu = new ProjectContextMenu(menus);
            menu.Rename.Click += new EventHandler(RenameNode);

            treeBar         = new TreeBar(menus, menu);
            treeBar.Dock    = DockStyle.Top;
            treeBar.Visible = false;

            tree                    = new ProjectTreeView();
            tree.Visible            = false;
            tree.Dock               = DockStyle.Fill;
            tree.ImageIndex         = 0;
            tree.ImageList          = Icons.ImageList;
            tree.LabelEdit          = true;
            tree.SelectedImageIndex = 0;
            tree.ShowRootLines      = false;
            tree.HideSelection      = false;
            tree.ContextMenu        = menu;
            tree.DoubleClick       += new EventHandler(tree_DoubleClick);
            tree.AfterLabelEdit    += new NodeLabelEditEventHandler(tree_AfterLabelEdit);
            tree.BeforeLabelEdit   += new NodeLabelEditEventHandler(tree_BeforeLabelEdit);
            tree.AfterSelect       += new TreeViewEventHandler(tree_AfterSelect);

            this.Controls.Add(tree);
            this.Controls.Add(treeBar);

            #endregion

            #region Instructions

            LinkLabel link = new LinkLabel();
            link.Text = "Create a new project\nor\nOpen an existing project";
            link.Links.Add(0, 20, "create");
            link.Links.Add(24, 24, "open");
            link.LinkClicked += new LinkLabelLinkClickedEventHandler(link_LinkClicked);
            link.TextAlign    = ContentAlignment.MiddleCenter;
            link.Dock         = DockStyle.Fill;
            link.ContextMenu  = new ContextMenu();
            this.Controls.Add(link);

            #endregion

            // we care about some of these events
            fileActions.FileCreated        += new FileNameHandler(NewFileCreated);
            fileActions.ProjectModified    += new ProjectModifiedHandler(ProjectModified);
            projectActions.ProjectModified += new ProjectModifiedHandler(ProjectModified);
        }
示例#13
0
        /// <summary>
        /// 写入工程树
        /// </summary>
        /// <param name="ptview">工程资源管理器</param>
        /// <param name="option">选项</param>
        static private void Write(ProjectTreeView ptview, int option)
        {
            XElement xele = new XElement("ProjectTreeView");

            ptview.Save(xele);
            string xtext = xele.ToString();

            edata.Add(0xfa);
            Write32(xtext);
        }
示例#14
0
        private void ProjectTreeView_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            TreeNode    SelectedNode = ProjectTreeView.GetNodeAt(e.Location);
            imsBaseNode tempNode     = ((imsBaseNode)(SelectedNode.Tag));

            if (tempNode != null)
            {
                NodePropertyGrid.SelectedObject = ((imsBaseNode)(SelectedNode.Tag));
            }
        }
示例#15
0
        public void ProcessStartNewSession()
        {
            var serviceLocator = ServiceLocator.GetActive();
            var view           = new ProjectTreeView();

            serviceLocator.SessionState.ProjectTreeView = view;
            serviceLocator.SessionState.TreePanel.Children.Add(view);

            serviceLocator.ProjectController.ProcessOpenProject();
        }
示例#16
0
        private void RefreshElementName(PartElement element)
        {
            var elemNode = FindElementNode(element);

            if (elemNode != null)
            {
                elemNode.Text = element.Name;
                ProjectTreeView.RefreshObject(elemNode);
            }
        }
示例#17
0
 public void RefreshAllNavigation()
 {
     IsRefreshingAll = true;
     ExecuteOnThread(() =>
     {
         //if (ProjectTreeView.)
         ProjectTreeView.Refresh();
         IsRefreshingAll = false;
     });
 }
示例#18
0
        private void ProjectTreeView_CellClick(object sender, CellClickEventArgs e)
        {
            if (e.Column == olvColumnVisible)
            {
                e.Handled = true;

                if (e.Model is ProjectElementNode elementNode)
                {
                    var modelExt = elementNode.Element.GetExtension <ModelElementExtension>();
                    if (modelExt != null)
                    {
                        //Debug.WriteLine($"ProjectTreeView_CellClick {elementNode.Element.Name} IsHidden {modelExt.IsHidden} -> {!modelExt.IsHidden}");
                        modelExt.IsHidden = !modelExt.IsHidden;

                        ProjectTreeView.RefreshObject(elementNode);
                        if (elementNode.Parent is ElementGroupNode)
                        {
                            ProjectTreeView.RefreshObject(elementNode.Parent);
                        }
                    }
                }
                else if (e.Model is ElementCollectionNode elementColNode)
                {
                    var femaleStudExt = elementColNode.Element.GetExtension <FemaleStudModelExtension>();

                    if (femaleStudExt != null)
                    {
                        femaleStudExt.ShowAlternateModels = !femaleStudExt.ShowAlternateModels;
                        ProjectTreeView.RefreshObject(elementColNode.Parent);
                    }
                }
                else if (e.Model is ProjectCollectionNode collectionNode)
                {
                    if (collectionNode.Collection == CurrentProject.Surfaces)
                    {
                        ProjectManager.ShowPartModels = !ProjectManager.ShowPartModels;
                    }
                    else if (collectionNode.Collection == CurrentProject.Collisions)
                    {
                        ProjectManager.ShowCollisions = !ProjectManager.ShowCollisions;
                    }
                    else if (collectionNode.Collection == CurrentProject.Connections)
                    {
                        ProjectManager.ShowConnections = !ProjectManager.ShowConnections;
                    }

                    ProjectTreeView.RefreshObject(collectionNode);
                }
                else if (e.Model is ElementGroupNode groupNode && groupNode.SupportsVisibility())
                {
                    //groupNode.ToggleVisibility();
                    //ProjectTreeView.RefreshObject(groupNode);
                }
            }
        }
示例#19
0
        public MainEditorWindow()
        {
            InitializeComponent();

            this.MouseClick += Window_MouseClick;

            _project         = new Project();
            _projectTreeView = new ProjectTreeView(ref this.treeView1);
            _osreWrapper     = new OSREWrapper(this.logWindow);
            _osreWrapper.InitCSharpModules();
        }
示例#20
0
 private void ExpandNodes(IEnumerable nodes, List <string> nodeIDs)
 {
     foreach (ProjectTreeNode node in nodes)
     {
         if (nodeIDs.Contains(node.NodeID))
         {
             ProjectTreeView.Expand(node);
             ExpandNodes(node.Nodes, nodeIDs);
         }
     }
 }
示例#21
0
 private void SelectElementNodeDelayed(PartElement element)
 {
     BeginInvoke((Action)(() =>
     {
         var elementNode = FindElementNode(element);
         if (elementNode.Parent != null)
         {
             ProjectTreeView.Expand(elementNode.Parent);
         }
         using (FlagManager.UseFlag("ManualSelect"))
             ProjectTreeView.SelectObject(elementNode);
     }));
 }
示例#22
0
 /// <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;
     }
 }
示例#23
0
        private void ProjectTreeView_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                var hit = ProjectTreeView.OlvHitTest(e.X, e.Y);

                if (hit.Column == olvColumnVisible)
                {
                    FlagManager.Set("PreventSelection");
                    SelectedItemCache = new List <ProjectTreeNode>();
                    SelectedItemCache.AddRange(ProjectTreeView.SelectedObjects.OfType <ProjectTreeNode>());
                }
            }
        }
示例#24
0
        /// <summary>
        /// The class constructor.
        /// </summary>
        public MainEditorWindow()
        {
            InitializeComponent();

            this.panel3d.MouseClick += Window_MouseClick;
            this.panel3d.MouseMove  += Window_MouseMove;

            this.MouseWheel += Window_MouseWheel;
            this.Resize     += OnResize;

            _project         = new Project();
            _projectTreeView = new ProjectTreeView(ref this.treeView1);
            _osreWrapper     = new OSREWrapper(this.logWindow);
            _osreWrapper.InitCSharpModules();
        }
示例#25
0
        public void RefreshNavigationNode(ProjectTreeNode node)
        {
            if (IsRefreshingAll)
            {
                return;
            }

            ExecuteOnThread(() =>
            {
                if (IsRefreshingAll)
                {
                    return;
                }
                ProjectTreeView.RefreshObject(node);
            });
        }
示例#26
0
        private void ProjectTreeView_CellClick(object sender, CellClickEventArgs e)
        {
            if (e.Column == olvColumnVisible)
            {
                e.Handled = true;

                if (e.Model is ProjectTreeNode treeNode)
                {
                    if (treeNode.CanToggleVisibility())
                    {
                        treeNode.ToggleVisibility();
                        ProjectTreeView.RefreshObject(treeNode);
                    }
                }
            }
        }
示例#27
0
        protected override void OnProjectChanged()
        {
            base.OnProjectChanged();

            InitializeViewComboBox();
            RebuildNavigation(true);

            if (CurrentProject != null)
            {
                if (CurrentProject.Surfaces.Count == 1)
                {
                    var surfaceNode = FindElementNode(CurrentProject.Surfaces[0]);
                    if (surfaceNode != null)
                    {
                        ProjectTreeView.Expand(surfaceNode);
                    }
                }
            }
        }
示例#28
0
        public void Constructor_Test()
        {
            ProjectTreeView projectTreeView = new ProjectTreeView();

            Assert.Count(2, projectTreeView.NodeControls);

            NodeIcon nodeIcon = (NodeIcon)projectTreeView.NodeControls[0];

            Assert.AreEqual("Image", nodeIcon.DataPropertyName);
            Assert.AreEqual(1, nodeIcon.LeftMargin);
            Assert.IsNull(nodeIcon.ParentColumn);

            NodeTextBox nodeTextBox = (NodeTextBox)projectTreeView.NodeControls[1];

            Assert.AreEqual("Text", nodeTextBox.DataPropertyName);
            Assert.IsTrue(nodeTextBox.IncrementalSearchEnabled);
            Assert.IsFalse(nodeTextBox.EditEnabled);
            Assert.AreEqual(3, nodeTextBox.LeftMargin);
            Assert.IsNull(nodeTextBox.ParentColumn);
        }
        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().EndsWithOrdinal("ProjectNode");
            Int32   index         = GetNthSeparatorIndex(tree.ContextMenuStrip, isProjectNode ? 2 : 1);

            if (index >= 0)
            {
                tree.ContextMenuStrip.Items.Insert(index, scItem);
            }
            else
            {
                tree.ContextMenuStrip.Items.Add(scItem);
            }
        }
示例#30
0
 private void ProjectTreeView_MouseDown(object sender, MouseEventArgs e)
 {
     if (e.Clicks == 2)
     {
         ProjectTreeViewDoubleClicked = true;
     }
     else
     {
         ProjectTreeViewDoubleClicked = false;
     }
     // 右クリックでもノードを選択させる
     if (e.Button == MouseButtons.Right)
     {
         var node = ProjectTreeView.GetNodeAt(e.X, e.Y);
         ProjectTreeView.SelectedNode = node;
         var mynode = node as MyTreeNode;
         if (mynode != null)
         {
             mynode.CheckPastable();
         }
     }
 }