Example #1
0
        public void PasteFromClipboard()
        {
            INode node;

            using (MemoryStream stream = new MemoryStream())
            {
                StreamWriter writer = new StreamWriter(stream);
                writer.Write((string)Clipboard.GetDataObject().GetData(DataFormats.UnicodeText, true));
                writer.Flush();
                stream.Position = 0;
                BOP.Deserializer deserializer = DesignerTree.FormDesigner.FrontendSession.CreateDeserializer();
                deserializer.FindReference += new BOP.FindReferenceHandler(DeserializeFindReference);
                node = (INode)deserializer.Deserialize(stream, null);
                DesignerTree.FormDesigner.Dataphoria.Warnings.AppendErrors(DesignerTree.FormDesigner, deserializer.Errors, true);
            }

            Node.Children.Add(node);

            RecursiveGetUniqueName(node);       // make names unique after adding the node in order to properly account for all nodes

            DesignerNode designerNode = AddNode(node);

            TreeView.SelectedNode = designerNode;
            designerNode.ExpandAll();
            DesignerTree.Modified();
        }
Example #2
0
        private void MoveIntoSibling(DesignerNode source, int index)
        {
            int siblingIndex = Parent.Nodes.IndexOf(source);

            if ((siblingIndex >= 0) && (siblingIndex < index))
            {
                index--;
            }
            InternalMoveNode(source.Node, Node.Parent, index);
            // Remove and recreate the node -- the tree draws the lines improperly if we just move the node, and ASource.Reposition raises a null reference exception
            source.Remove();
            DesignerNode newNode = source.Copy();

            Parent.InsertBaseNode(index, newNode);
            TreeView.SelectedNode = newNode;
            Parent.ExpandAll();
        }