public void BuildBranch(ContainerTreeNode root, bool addFakeNode)
        {
            TreeNode current;

            Library.Common.Composite.IComponent currentComponent;

            for (int i = 0; i < root.Container.GetChildrenCount(); i++)
            {
                currentComponent = root.Container.GetChildAt(i);

                if (currentComponent is ILeaf)
                {
                    current = new LeafTreeNode((ILeaf)currentComponent);
                    RefreshImagesIndexes(current, false);
                    current.ContextMenuStrip = leafMenuStrip;
                }
                else
                {
                    current = CreateContainerNode((IComposite)currentComponent, addFakeNode);
                    RefreshImagesIndexes(current, false);
                    current.ContextMenuStrip = containerMenuStrip;
                }

                root.Nodes.Add(current);
            }
        }
Example #2
0
    protected virtual void RecurseUpdateNodes(TreeNodeCollection parrNodes)
    {
        if (parrNodes == null || parrNodes.Count == 0)
        {
            return;
        }


        foreach (TreeNode pNode in parrNodes)
        {
            ContainerTreeNode pContainerNode = pNode as ContainerTreeNode;
            if (pContainerNode != null)
            {
                // update node pre / post rendering control IDs id
                if (pContainerNode.PreRenderContainer != null)
                {
                    pContainerNode.PreRenderContainer.ID = pContainerNode.PreRenderContainer.ID.Insert(0, pNode.ValuePath + s_strNodeValueSeparator);
                    Controls.Add(pContainerNode.PreRenderContainer);
                }
                if (pContainerNode.PostRenderContainer != null)
                {
                    pContainerNode.PostRenderContainer.ID = pContainerNode.PostRenderContainer.ID.Insert(0, pNode.ValuePath + s_strNodeValueSeparator);
                    Controls.Add(pContainerNode.PostRenderContainer);
                }
            }


            // update children
            RecurseUpdateNodes(pNode.ChildNodes);
        }
    }
        public void SetTree(IComposite root)
        {
            this.root = root;
            ContainerTreeNode node = CreateContainerNode(root, true);

            RefreshImagesIndexes(node, false);
            treeView1.Nodes.Add(node);
            node.ContextMenuStrip = rootMenuStrip;
            BuildBranch(new ContainerTreeNode(root), true);
        }
Example #4
0
        public TypeMemberChooserUI(Type type, IUIService uiService)
        {
            InitializeComponent();

            typeTreeNode = new TypeTreeNode(type);
            ContainerTreeNode propertiesTreeNode = new ContainerTreeNode(MemberChooserResources.PropertiesNode);

            //add properties to the treeview
            foreach (PropertyInfo propertyInfo in type.GetProperties())
            {
                if (propertyInfo.CanRead && propertyInfo.GetIndexParameters().Length == 0)
                {
                    if (!propertiesTreeNode.Nodes.ContainsKey(propertyInfo.Name))
                    {
                        propertiesTreeNode.Nodes.Add(new PropertyTreeNode(propertyInfo));
                    }
                }
            }

            //add methods to the treeview
            ContainerTreeNode methodsTreeNode = new ContainerTreeNode(MemberChooserResources.MethodsNode);

            foreach (MethodInfo methodInfo in type.GetMethods())
            {
                if (!methodInfo.IsSpecialName &&
                    methodInfo.GetParameters().Length == 0 &&
                    methodInfo.ReturnType != typeof(void))
                {
                    if (!methodsTreeNode.Nodes.ContainsKey(methodInfo.Name))
                    {
                        methodsTreeNode.Nodes.Add(new MethodTreeNode(methodInfo));
                    }
                }
            }

            //add methods to the treeview
            ContainerTreeNode fieldsTreeNode = new ContainerTreeNode(MemberChooserResources.FieldsNode);

            foreach (FieldInfo fieldInfo in type.GetFields())
            {
                if (!fieldsTreeNode.Nodes.ContainsKey(fieldInfo.Name))
                {
                    fieldsTreeNode.Nodes.Add(new FieldTreeNode(fieldInfo));
                }
            }

            typeTreeNode.Nodes.AddRange(new TreeNode[] {
                propertiesTreeNode,
                methodsTreeNode,
                fieldsTreeNode
            });

            typeTreeNode.ExpandAll();
            memberTreeView.Nodes.Add(typeTreeNode);
        }
        public TypeMemberChooserUI(Type type, IUIService uiService)
		{
			InitializeComponent();

			typeTreeNode = new TypeTreeNode(type);
			ContainerTreeNode propertiesTreeNode = new ContainerTreeNode(MemberChooserResources.PropertiesNode);

			//add properties to the treeview
			foreach (PropertyInfo propertyInfo in type.GetProperties())
			{
                if (propertyInfo.CanRead && propertyInfo.GetIndexParameters().Length == 0)
                {
                    if (!propertiesTreeNode.Nodes.ContainsKey(propertyInfo.Name))
                    {
                        propertiesTreeNode.Nodes.Add(new PropertyTreeNode(propertyInfo));
                    }
                }
			}

			//add methods to the treeview
			ContainerTreeNode methodsTreeNode = new ContainerTreeNode(MemberChooserResources.MethodsNode);
			foreach (MethodInfo methodInfo in type.GetMethods())
			{
				if (!methodInfo.IsSpecialName &&
					methodInfo.GetParameters().Length == 0 &&
					methodInfo.ReturnType != typeof(void))
				{
					if (!methodsTreeNode.Nodes.ContainsKey(methodInfo.Name))
					{
						methodsTreeNode.Nodes.Add(new MethodTreeNode(methodInfo));
					}
				}
			}

			//add methods to the treeview
			ContainerTreeNode fieldsTreeNode = new ContainerTreeNode(MemberChooserResources.FieldsNode);
			foreach (FieldInfo fieldInfo in type.GetFields())
			{
				if (!fieldsTreeNode.Nodes.ContainsKey(fieldInfo.Name))
				{
					fieldsTreeNode.Nodes.Add(new FieldTreeNode(fieldInfo));
				}
			}

			typeTreeNode.Nodes.AddRange(new TreeNode[] { 
                propertiesTreeNode, 
                methodsTreeNode, 
                fieldsTreeNode });

			typeTreeNode.ExpandAll();
			memberTreeView.Nodes.Add(typeTreeNode);
		}
        private void containerToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ContainerTreeNode node = new ContainerTreeNode(ContainerName);

            SelectedNode.Expand();
            node.Tag = false;
            RefreshImagesIndexes(node, false);
            SelectedNode.Nodes.Insert(0, node);
            node.ContextMenuStrip = containerMenuStrip;
            SelectedNode          = node;
            newNode = node;
            node.BeginEdit();
        }
        private ContainerTreeNode CreateContainerNode(IComposite currentComponent, bool addFake)
        {
            ContainerTreeNode current = new ContainerTreeNode(currentComponent);

            current.Tag = true;

            if (addFake)
            {
                current.Nodes.Add("fake");
            }

            return(current);
        }
        private void SortBranch(ContainerTreeNode root)
        {
            Sorter    comparer = new Sorter();
            ArrayList list     = new ArrayList();

            foreach (TreeNode child in root.Nodes)
            {
                list.Add(child);
            }

            list.Sort(comparer);
            root.Nodes.Clear();

            foreach (TreeNode node in list)
            {
                root.Nodes.Add(node);
            }
        }
 public ContainerCreatedEventArgs(ContainerTreeNode composite, IComposite parent)
     : base(parent)
 {
     newComposite = composite;
 }