Example #1
0
        public void MoveFromNode(DesignerNode source, DropLinePosition position)
        {
            switch (position)
            {
            case DropLinePosition.OnNode:
                int newIndex = Node.Children.Count;
                if (Node.Children.Contains(source.Node))
                {
                    newIndex--;
                }
                InternalMoveNode(source.Node, Node, newIndex);
                // Remove and recreate the designer 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();
                AddBaseNode(newNode);
                TreeView.SelectedNode = newNode;
                if (Parent != null)
                {
                    Parent.ExpandAll();
                }
                break;

            case DropLinePosition.AboveNode:
                MoveIntoSibling(source, Node.Parent.Children.IndexOf(Node));
                break;

            case DropLinePosition.BelowNode:
                MoveIntoSibling(source, Node.Parent.Children.IndexOf(Node) + 1);
                break;
            }
            DesignerTree.Modified();
        }
Example #2
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 #3
0
 public bool Delete()
 {
     if (ReadOnly)
     {
         return(false);
     }
     else
     {
         InternalDelete();
         DesignerTree.Modified();
         DesignerTree.FormDesigner.ActivateNode(null);
         return(true);
     }
 }
Example #4
0
        public void AddNew(PaletteItem item, DropLinePosition position)
        {
            INode node = (INode)DesignerTree.FormDesigner.FrontendSession.NodeTypeTable.CreateInstance(item.ClassName);

            try
            {
                Node.HostNode.GetUniqueName(node);
                PlaceNewNode(node, position).Rename();
            }
            catch
            {
                node.Dispose();
                throw;
            }
            DesignerTree.Modified();
        }
Example #5
0
        public void CopyFromNode(DesignerNode source, DropLinePosition position)
        {
            INode node;

            using (MemoryStream stream = new MemoryStream())
            {
                BOP.Serializer serializer = DesignerTree.FormDesigner.FrontendSession.CreateSerializer();
                serializer.Serialize(stream, source);
                DesignerTree.FormDesigner.Dataphoria.Warnings.AppendErrors(DesignerTree.FormDesigner, serializer.Errors, true);
                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);
            }
            RecursiveGetUniqueName(node);

            PlaceNewNode(node, position);
            DesignerTree.Modified();
        }