コード例 #1
0
        private void treeView_AfterLabelEdit(object sender, NodeLabelEditEventArgs e)
        {
            if (!e.CancelEdit)
            {
                ConfigurationTreeNode selectedNode = (ConfigurationTreeNode)e.Node;

                string label = e.Label;
                if (label != null)
                {
                    if (label.Trim().Length == 0)
                    {
                        e.CancelEdit = true;
                        uiService.ShowMessage(Resources.NodeLabelEditText, Resources.NodeLabelEditCaption);
                        selectedNode.BeginEdit();
                    }
                    else
                    {
                        try
                        {
                            selectedNode.ConfigurationNode.Name = label;
                            uiService.SetUIDirty(selectedNode.ConfigurationNode.Hierarchy);
                            selectedNode.EndEdit(false);
                            RefreshPropertyGrid();
                        }
                        catch (InvalidOperationException ex)
                        {
                            e.CancelEdit = true;
                            uiService.ShowMessage(Resources.NodeLabelEditFailedText + ex.Message, Resources.NodeLabelEditCaption);
                            selectedNode.BeginEdit();
                        }
                    }
                }
            }
        }
コード例 #2
0
        private void SetSelectedNode(ConfigurationTreeNode selectedNode)
        {
            treeView.SelectedNode = null;
            treeView.SelectedNode = selectedNode;

            RefreshPropertyGrid();
        }
コード例 #3
0
 private void treeView_MouseDown(object sender, MouseEventArgs e)
 {
     if (e.Button == MouseButtons.Right)
     {
         ConfigurationTreeNode selectedNode = treeView.GetNodeAt(e.X, e.Y) as ConfigurationTreeNode;
         SetSelectedNode(selectedNode);
     }
 }
コード例 #4
0
        /// <devdoc>
        /// Copies the tree node and the  entire subtree rooted at this tree node.
        /// </devdoc>
        public override object Clone()
        {
            ConfigurationTreeNode clone = (ConfigurationTreeNode)base.Clone();

            clone.configurationNode = configurationNode;
            clone.children          = children;
            return(clone);
        }
コード例 #5
0
        private void ResetNodeColor(ConfigurationNode node)
        {
            ConfigurationTreeNode treeNode = treeNodeFactory.GetTreeNode(node.Id);

            if (treeNode != null)
            {
                treeNode.ForeColor = treeView.ForeColor;
            }
        }
コード例 #6
0
        private void SetNodeColor(ConfigurationNode node, Color color)
        {
            ConfigurationTreeNode treeNode = treeNodeFactory.GetTreeNode(node.Id);

            if (treeNode != null)
            {
                treeNode.ForeColor = color;
            }
        }
コード例 #7
0
        public void ActivateNode(ConfigurationNode node)
        {
            ConfigurationTreeNode treeNode = treeNodeFactory.GetTreeNode(node.Id);

            if (treeNode != null)
            {
                treeView.SelectedNode = treeNode;
            }
            RefreshPropertyGrid();
        }
コード例 #8
0
        /// <summary>
        ///
        /// </summary>
        public void RefreshPropertyGrid()
        {
            ConfigurationTreeNode treeNode = treeView.SelectedNode as ConfigurationTreeNode;

            if (treeNode != null)
            {
                adapter.DoSelectionChanged(treeNode.ConfigurationNode);
            }
            else
            {
                adapter.DoSelectionChanged(null);
            }
        }
コード例 #9
0
        private void treeView_AfterSelect(object sender, TreeViewEventArgs e)
        {
            ConfigurationTreeNode selectedNode = treeView.SelectedNode as ConfigurationTreeNode;

            if (selectedNode != null)
            {
                ConfigurationNode selectedConfigurationNode = selectedNode.ConfigurationNode;

                IUICommandService commandService = ServiceHelper.GetUICommandService(serviceProvider);
                treeView.ContextMenu = CreateContextMenu(selectedConfigurationNode, commandService);
            }
            RefreshPropertyGrid();
        }
コード例 #10
0
        private void treeView_BeforeLabelEdit(object sender, NodeLabelEditEventArgs e)
        {
            ConfigurationTreeNode node = e.Node as ConfigurationTreeNode;

            if (node == null)
            {
                return;
            }
            bool readOnly = NodeReadOnly(node.ConfigurationNode);

            if (readOnly)
            {
                e.CancelEdit = true;
            }
        }
コード例 #11
0
        /// <devdoc>
        /// Creates a new intance of a ConfigurationTreeNode class and sets its ImageIndex and SelectedImageIndex property values.
        /// </devdoc>
        public ConfigurationTreeNode Create(ConfigurationNode node)
        {
            Type nodeType     = node.GetType();
            Type treeNodeType = GetTreeNodeType(nodeType);
            ConfigurationTreeNode treeNode = (ConfigurationTreeNode)Activator.CreateInstance(treeNodeType, new object[] { node, this });

            if (imageContainer != null)
            {
                treeNode.ImageIndex         = imageContainer.GetImageIndex(nodeType);
                treeNode.SelectedImageIndex = imageContainer.GetSelectedImageIndex(nodeType);
            }
            if (treeNodeContainer != null)
            {
                treeNodeContainer.AddTreeNode(treeNode);
            }
            return(treeNode);
        }
コード例 #12
0
        private void AddChildeNode(ConfigurationNodeChangedEventArgs e)
        {
            ConfigurationTreeNode newNode = CreateChildNode(e.Node);

            if (newNode.ConfigurationNode.Parent.SortChildren)
            {
                AddSorted(newNode);
            }
            else
            {
                this.Nodes.Add(newNode);
            }
            foreach (ConfigurationNode child in e.Node.Nodes)
            {
                newNode.OnChildAdded(newNode, new ConfigurationNodeChangedEventArgs(child, e.Node));
            }
        }
コード例 #13
0
        internal void SetMainHierarchy(ConfigurationUIHierarchy hierarchy)
        {
            treeView.Nodes.Clear();
            solutionNode     = new SolutionConfigurationNode();
            solutionTreeNode = treeNodeFactory.Create(solutionNode);

            treeView.Nodes.Add(solutionTreeNode);

            // the hierarchy of configuration nodes will not include the solution node
            // the app and solution nodes will be related by the tree nodes poiting to them,
            // and the hierarchy will be overriden to point to the app node.
            // The stand alone tool does something similar - see Microsoft.Practices.EnterpriseLibrary.Configuration.Console.OnHierarchyAdded
            mainConfigurationHierarchy = hierarchy;
            solutionTreeNode.Nodes.Add(treeNodeFactory.Create(hierarchy.RootNode));
            solutionTreeNode.Expand();

            ServiceHelper.GetUIHierarchyService(serviceProvider).SelectedHierarchy = hierarchy;
            IErrorLogService errorService = ServiceHelper.GetErrorService(serviceProvider);
            List <Task>      tasks        = GetTasksFromErrorService(errorService);

            adapter.DoTasksChanged(tasks);
        }
コード例 #14
0
        private int AddSorted(ConfigurationTreeNode node)
        {
            int    index           = 0;
            string nodeDisplayName = node.Text;
            int    childCount      = Nodes.Count;

            if (childCount > 0)
            {
                CompareInfo compare = CultureInfo.CurrentCulture.CompareInfo;
                if (compare.Compare(Nodes[childCount - 1].Text, nodeDisplayName) <= 0)
                {
                    index = childCount;
                }
                else
                {
                    int firstNode   = 0;
                    int lastNode    = 0;
                    int compareNode = 0;
                    for (firstNode = 0, lastNode = childCount; firstNode < lastNode;)
                    {
                        compareNode = (firstNode + lastNode) / 2;
                        if (compare.Compare(Nodes[compareNode].Text, nodeDisplayName) <= 0)
                        {
                            firstNode = compareNode + 1;
                        }
                        else
                        {
                            lastNode = compareNode;
                        }
                    }
                    index = firstNode;
                }
            }
            Nodes.Insert(index, node);
            return(index);
        }
コード例 #15
0
 /// <devdoc>
 /// Adds the specified ConfigurationTreeNode to the container.
 /// </devdoc>
 public void AddTreeNode(ConfigurationTreeNode treeNode)
 {
     treeNodes[treeNode.ConfigurationNode.Id] = treeNode;
 }
コード例 #16
0
        /// <devdoc>
        /// Creates a ConfigurationTreeNode using the TreeNodeFactory of the current ConfigurationTreeView.
        /// </devdoc>
        protected ConfigurationTreeNode CreateChildNode(ConfigurationNode node)
        {
            ConfigurationTreeNode treeNode = childNodeFactory.Create(node);

            return(treeNode);
        }