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(); }
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(); }
/// <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); } }
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; }
public bool Delete() { if (ReadOnly) { return(false); } else { InternalDelete(); DesignerTree.Modified(); DesignerTree.FormDesigner.ActivateNode(null); return(true); } }
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(); }
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(); }
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); }
/// <summary> Constructs a node, but does not build its children. </summary> public DesignerNode(INode node, DesignerTree tree, bool readOnly) { InitializeNode(node, tree, readOnly); }