public void Edit(object sender, System.EventArgs e)
        {
            if (Nodes.Count > 0 && SelectedNode != null && parent.LabelEdit)
            {
                editingNode = (XmlTreeNode)SelectedNode;

                if (editingNode.ConnectedXmlElement != null)
                {
                    if (!closingHandlerAssigned)
                    {
                        Form parentForm = FindForm();
                        parentForm.Closing    += new CancelEventHandler(parent.form_Closing);
                        closingHandlerAssigned = true;
                    }

                    int height = editingNode.Bounds.Height;
                    int width  = editingNode.Bounds.Width;
                    int left   = editingNode.Bounds.Left;
                    int top    = editingNode.Bounds.Top;

                    editingNode.ExpandAll();

                    if (editingNode.ConnectedXmlElement.HasChildNodes && editingNode.ConnectedXmlElement.FirstChild.NodeType != XmlNodeType.Text)
                    {
                        height = editingNode.NextNode.Bounds.Bottom - editingNode.Bounds.Top;
                        width  = Width - left;
                    }

                    editBox             = new TextBox();
                    editBox.Multiline   = true;
                    editBox.BorderStyle = BorderStyle.FixedSingle;
                    editBox.Leave      += new EventHandler(editBox_Leave);
                    editBox.KeyUp      += new KeyEventHandler(editBox_KeyUp);
                    editBox.SetBounds(left, top, width, height);
                    editingNode.RecurseSubNodes(editingNode.Parent);
                    editBox.Text = editingNode.SelfAndChildren;
                    Controls.Add(editBox);
                    editBox.Focus();
                }
            }
        }
Esempio n. 2
0
        private void RecurseAndAssignNodes( XmlNode elem )
        {
            string attrs = string.Empty;
            XmlTreeNode addedNode = null;

            if ( elem.NodeType == XmlNodeType.Element )
            {
                foreach ( XmlAttribute attr in elem.Attributes )
                {
                    attrs += " " + attr.Name + "=\"" + attr.Value + "\"";
                }
            }

            if ( elem.Equals( document.DocumentElement ) )
            {
                addedNode = new XmlTreeNode( "<" + elem.Name + attrs + ">", elem );
                Nodes.Add( addedNode );
                InnerXmlTreeView.CurrentNode = addedNode;
                Nodes.Add( new XmlTreeNode( "</" + elem.Name + ">", null ) );
            }
            else if ( elem.HasChildNodes && elem.ChildNodes[0].NodeType == XmlNodeType.Text )
            {
                addedNode = new XmlTreeNode( "<" + elem.Name + attrs + ">" + elem.InnerText + "</" + elem.Name + ">", elem );
                InnerXmlTreeView.CurrentNode.Nodes.Add( addedNode );
                InnerXmlTreeView.CurrentNode = addedNode;
            }
            else if ( elem is XmlElement && ( (XmlElement) elem ).IsEmpty )
            {
                addedNode = new XmlTreeNode( "<" + elem.Name + attrs + "/>", elem );
                InnerXmlTreeView.CurrentNode.Nodes.Add( addedNode );
                InnerXmlTreeView.CurrentNode = addedNode;
            }
            else
            {
                addedNode = new XmlTreeNode( "<" + elem.Name + attrs + ">", elem );
                InnerXmlTreeView.CurrentNode.Nodes.Add( addedNode );
                InnerXmlTreeView.CurrentNode = addedNode;
                InnerXmlTreeView.CurrentNode.Parent.Nodes.Add( new XmlTreeNode( "</" + elem.Name + ">", null ) );
            }

            foreach ( XmlNode child in elem.ChildNodes )
            {
                if ( child.NodeType == XmlNodeType.Element )
                {
                    RecurseAndAssignNodes( child );
                }
                else if ( child.NodeType == XmlNodeType.Comment )
                {
                    InnerXmlTreeView.CurrentNode.Nodes.Add( new XmlTreeNode( child.OuterXml, child ) );
                }
            }

            if ( InnerXmlTreeView.CurrentNode.Parent != null )
            {
                InnerXmlTreeView.CurrentNode = InnerXmlTreeView.CurrentNode.Parent;
            }
        }
Esempio n. 3
0
        public void Edit(object sender, System.EventArgs e)
        {
            if ( Nodes.Count > 0 && SelectedNode != null && parent.LabelEdit )
            {
                editingNode = (XmlTreeNode) SelectedNode;

                if ( editingNode.ConnectedXmlElement != null )
                {
                    if ( !closingHandlerAssigned )
                    {
                        Form parentForm = FindForm();
                        parentForm.Closing += new CancelEventHandler( parent.form_Closing );
                        closingHandlerAssigned = true;
                    }

                    int height = editingNode.Bounds.Height;
                    int width =  editingNode.Bounds.Width;
                    int left = editingNode.Bounds.Left;
                    int top = editingNode.Bounds.Top;

                    editingNode.ExpandAll();

                    if ( editingNode.ConnectedXmlElement.HasChildNodes && editingNode.ConnectedXmlElement.FirstChild.NodeType != XmlNodeType.Text )
                    {
                        height = editingNode.NextNode.Bounds.Bottom - editingNode.Bounds.Top;
                        width = Width - left;
                    }

                    editBox = new TextBox();
                    editBox.Multiline = true;
                    editBox.BorderStyle = BorderStyle.FixedSingle;
                    editBox.Leave += new EventHandler( editBox_Leave );
                    editBox.KeyUp += new KeyEventHandler( editBox_KeyUp );
                    editBox.SetBounds( left, top, width, height );
                    editingNode.RecurseSubNodes( editingNode.Parent );
                    editBox.Text = editingNode.SelfAndChildren;
                    Controls.Add( editBox );
                    editBox.Focus();
                }
            }
        }