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
        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 #3
0
 /// <summary> Constructs a node and builds its children. </summary>
 public DesignerNode(INode node, DesignerTree tree)
 {
     InitializeNode(node, tree, false);
     foreach (INode child in _node.Children)
     {
         AddNode(child);
     }
 }
Example #4
0
        private void InitializeNode(INode node, DesignerTree tree, bool readOnly)
        {
            _node      = node;
            _node.Site = this;

            _designerTree = tree;
            _readOnly     = readOnly;

            UpdateText(false);

            ImageIndex         = tree.FormDesigner.GetDesignerImage(node.GetType());
            SelectedImageIndex = ImageIndex;
        }
Example #5
0
 public bool Delete()
 {
     if (ReadOnly)
     {
         return(false);
     }
     else
     {
         InternalDelete();
         DesignerTree.Modified();
         DesignerTree.FormDesigner.ActivateNode(null);
         return(true);
     }
 }
Example #6
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 #7
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();
        }
Example #8
0
        private void InitializeDocking()
        {
            //
            // FPaletteGroupBar
            //

            /*FPaletteGroupBar = new GroupBar();
             * FPaletteGroupBar.AllowDrop = true;
             * FPaletteGroupBar.BackColor = SystemColors.Control;
             * FPaletteGroupBar.BorderStyle = BorderStyle.FixedSingle;
             * FPaletteGroupBar.Dock = DockStyle.Fill;
             * FPaletteGroupBar.Location = new Point(0, 24);
             * FPaletteGroupBar.Name = "FPaletteGroupBar";
             * FPaletteGroupBar.SelectedItem = 0;
             * FPaletteGroupBar.Size = new Size(163, 163);
             * FPaletteGroupBar.TabIndex = 1;*/
            //
            // FPointerGroupView
            //

            /*FPointerGroupView = new GroupView
             *                                              {
             *                                                      BorderStyle = BorderStyle.None,
             *                                                      ButtonView = true,
             *                                                      Dock = DockStyle.Top
             *                                              };
             * FPointerGroupView.GroupViewItems.AddRange(new[]
             *                                                                                        {
             *                                                                                                new GroupViewItem("Pointer", 0)
             *                                                                                        });
             * FPointerGroupView.IntegratedScrolling = true;
             * FPointerGroupView.ItemYSpacing = 2;
             * FPointerGroupView.LargeImageList = null;
             * FPointerGroupView.Location = new Point(0, 0);
             * FPointerGroupView.Name = "FPointerGroupView";
             * FPointerGroupView.SelectedItem = 0;
             * FPointerGroupView.Size = new Size(163, 24);
             * FPointerGroupView.SmallImageList = FPointerImageList;
             * FPointerGroupView.SmallImageView = true;
             * FPointerGroupView.TabIndex = 0;
             * FPointerGroupView.Text = "groupView2";
             * FPointerGroupView.GroupViewItemSelected += FPointerGroupView_GroupViewItemSelected;
             */

            //
            // FNodesTree
            //
            FNodesTree                  = new DesignerTree.DesignerTree();
            FNodesTree.AllowDrop        = true;
            FNodesTree.BorderStyle      = BorderStyle.None;
            FNodesTree.CausesValidation = false;
            FNodesTree.Dock             = DockStyle.Fill;
            FNodesTree.HideSelection    = false;
            FNodesTree.ImageList        = FNodesImageList;
            FNodesTree.Location         = new Point(0, 0);
            FNodesTree.Name             = "FNodesTree";
            FNodesTree.ShowRootLines    = false;
            FNodesTree.Size             = new Size(283, 209);
            FNodesTree.TabIndex         = 0;
            FNodesTree.AfterSelect     += FNodesTree_AfterSelect;
            FNodesTree.Dock             = DockStyle.Fill;

            _dockContentNodesTree             = new DockContent();
            _dockContentNodesTree.HideOnClose = true;
            _dockContentNodesTree.Controls.Add(FNodesTree);
            _dockContentNodesTree.TabText  = "Nodes Tree";
            _dockContentNodesTree.Text     = "Nodes Tree - Dataphoria";
            _dockContentNodesTree.ShowHint = DockState.Document;
            _dockContentNodesTree.Show(FDockPanel);

            //
            // FPalettePanel
            //
            _palettePanel                = new ToolBox.ToolBox();
            _palettePanel.NodesTree      = this.FNodesTree;
            _palettePanel.Location       = new Point(1, 21);
            _palettePanel.Name           = "FPalettePanel";
            _palettePanel.Size           = new Size(163, 187);
            _palettePanel.TabIndex       = 1;
            _palettePanel.Dock           = DockStyle.Fill;
            _palettePanel.StatusChanged += FPalettePanel_StatusChanged;

            _dockContentPalettePanel             = new DockContent();
            _dockContentPalettePanel.HideOnClose = true;
            _dockContentPalettePanel.Controls.Add(_palettePanel);
            _dockContentPalettePanel.TabText  = "Node Palette";
            _dockContentPalettePanel.Text     = "Node Palette - Dataphoria";
            _dockContentPalettePanel.ShowHint = DockState.DockLeft;
            _dockContentPalettePanel.Show(FDockPanel);

            //
            // FFormPanel
            //
            FFormPanel           = new FormPanel();
            FFormPanel.BackColor = SystemColors.ControlDark;
            FFormPanel.Location  = new Point(1, 21);
            FFormPanel.Name      = "FFormPanel";
            FFormPanel.Size      = new Size(685, 283);
            FFormPanel.TabIndex  = 3;
            FFormPanel.Dock      = DockStyle.Fill;

            _dockContentFormPanel             = new DockContent();
            _dockContentFormPanel.HideOnClose = true;
            _dockContentFormPanel.Controls.Add(FFormPanel);
            _dockContentFormPanel.TabText  = "Form - Dataphoria";
            _dockContentFormPanel.Text     = "Form";
            _dockContentFormPanel.ShowHint = DockState.DockBottom;
            _dockContentFormPanel.Show(FDockPanel);

            //
            // FPropertyGrid
            //
            FPropertyGrid                            = new PropertyGrid();
            FPropertyGrid.BackColor                  = SystemColors.Control;
            FPropertyGrid.CausesValidation           = false;
            FPropertyGrid.CommandsVisibleIfAvailable = true;
            FPropertyGrid.Cursor                     = Cursors.HSplit;
            FPropertyGrid.LargeButtons               = false;
            FPropertyGrid.LineColor                  = SystemColors.ScrollBar;
            FPropertyGrid.Location                   = new Point(1, 21);
            FPropertyGrid.Name                       = "FPropertyGrid";
            FPropertyGrid.PropertySort               = PropertySort.Alphabetical;
            FPropertyGrid.TabIndex                   = 2;
            FPropertyGrid.Text                       = "Properties of the Currently Selected Node";
            FPropertyGrid.ToolbarVisible             = false;
            FPropertyGrid.ViewBackColor              = SystemColors.Window;
            FPropertyGrid.ViewForeColor              = SystemColors.WindowText;
            FPropertyGrid.PropertyValueChanged      += NodePropertyGrid_PropertyValueChanged;
            FPropertyGrid.Dock                       = DockStyle.Fill;

            _dockContentPropertyGrid             = new DockContent();
            _dockContentPropertyGrid.HideOnClose = true;
            _dockContentPropertyGrid.Controls.Add(FPropertyGrid);
            _dockContentPropertyGrid.TabText  = "Properties";
            _dockContentPropertyGrid.Text     = "Properties - Dataphoria";
            _dockContentPropertyGrid.ShowHint = DockState.DockRight;
            _dockContentPropertyGrid.Show(FDockPanel);
        }
Example #9
0
 /// <summary> Constructs a node, but does not build its children. </summary>
 public DesignerNode(INode node, DesignerTree tree, bool readOnly)
 {
     InitializeNode(node, tree, readOnly);
 }