Changeset 13799 for branches/OptimizationNetworks/HeuristicLab.Networks.Views.NetworkVisualization.Views/3.3
- Timestamp:
- 04/26/16 15:05:28 (8 years ago)
- Location:
- branches/OptimizationNetworks/HeuristicLab.Networks.Views.NetworkVisualization.Views/3.3
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/OptimizationNetworks/HeuristicLab.Networks.Views.NetworkVisualization.Views/3.3/ChartModes/AddNodesChartMode.cs
r13135 r13799 79 79 var lowerLeft = center - new Offset(size); 80 80 var upperRight = center + new Offset(size); 81 node.VisualProperties = new NodeVisualProperties(new Point2D<double>(lowerLeft.X, lowerLeft.Y), 82 new Point2D<double>(upperRight.X, upperRight.Y)); 81 node.VisualProperties = new NodeVisualProperties { 82 LowerLeft = new Point2D<double>(lowerLeft.X, lowerLeft.Y), 83 UpperRight = new Point2D<double>(upperRight.X, upperRight.Y) 84 }; 83 85 network.Nodes.Add(node); 84 86 break; -
branches/OptimizationNetworks/HeuristicLab.Networks.Views.NetworkVisualization.Views/3.3/ChartModes/SelectChartMode.cs
r13135 r13799 49 49 } 50 50 51 public override void HandleOnKeyDown(object sender, KeyEventArgs e) {52 try {53 if (!(chartControl.Tag is IUserDefinedNetwork)) return;54 55 switch (e.KeyCode) {56 case Keys.Delete:57 chartControl.SuspendRendering();58 59 var connectionLines = chartControl.Chart.Group.Primitives.OfType<ConnectionLine>().ToList();60 var nodeRectangles = chartControl.Chart.Group.Primitives.OfType<NodeRectangle>().ToList();61 var portRectangles = nodeRectangles.SelectMany(x => x.NetworkItem.Ports.Select(x.GetPortPrimitive)).OfType<PortRectangle>().ToList();62 63 var deletedNodes = new HashSet<INode>();64 var deletedPorts = new HashSet<IMessagePort>();65 66 foreach (var nodeRectangle in nodeRectangles) {67 if (nodeRectangle.Selected) {68 var node = nodeRectangle.NetworkItem;69 if (node == null) continue;70 deletedNodes.Add(node);71 foreach (var port in node.Ports.OfType<IMessagePort>())72 deletedPorts.Add(port);73 }74 }75 76 foreach (var portRectangle in portRectangles) {77 if (portRectangle.Selected) {78 var port = portRectangle.NetworkItem as IMessagePort;79 if (port == null) continue;80 port.Parent.Ports.Remove(port);81 deletedPorts.Add(port);82 }83 }84 85 selectedPortRectangle = null;86 87 foreach (var connectionLine in connectionLines) {88 var startPortRectangle = connectionLine.StartPortRectangle;89 var endPortRectangle = connectionLine.EndPortRectangle;90 if (startPortRectangle == null || endPortRectangle == null) continue;91 92 var startPort = startPortRectangle.NetworkItem as IMessagePort;93 var endPort = endPortRectangle.NetworkItem as IMessagePort;94 if (startPort == null || endPort == null) continue;95 96 if (connectionLine.Selected || deletedPorts.Contains(startPort) || deletedPorts.Contains(endPort))97 startPort.ConnectedPort = null;98 }99 100 foreach (var node in deletedNodes)101 node.Parent.Nodes.Remove(node);102 break;103 }104 } finally {105 chartControl.ResumeRendering();106 }107 }108 109 51 public override void HandleOnMouseDown(object sender, MouseEventArgs e) { 110 52 try { … … 129 71 selectedPortRectangle = portRectangle; 130 72 constrainingNodeRectangle = nodeRectangle; 73 break; 131 74 } 132 75 } … … 134 77 135 78 if (selectedPortRectangle != null) 136 foreach (var sp in chartControl.Chart.Group.SelectedPrimitives) 79 foreach (var sp in chartControl.Chart.Group.SelectedPrimitives) { 137 80 sp.Selected = false; 138 else139 base.HandleOnMouseDown(sender, e);81 OnSelectedPrimitivesChanged(); 82 } else base.HandleOnMouseDown(sender, e); 140 83 break; 141 84 } … … 196 139 } 197 140 } 141 142 protected override void DeleteSelectedPrimitives() { 143 if (!(chartControl.Tag is IUserDefinedNetwork)) return; 144 145 try { 146 chartControl.SuspendRendering(); 147 148 var connectionLines = chartControl.Chart.Group.Primitives.OfType<ConnectionLine>().ToList(); 149 var nodeRectangles = chartControl.Chart.Group.Primitives.OfType<NodeRectangle>().ToList(); 150 var portRectangles = nodeRectangles.SelectMany(x => x.NetworkItem.Ports.Select(x.GetPortPrimitive)).OfType<PortRectangle>().ToList(); 151 152 var deletedNodes = new HashSet<INode>(); 153 var deletedPorts = new HashSet<IMessagePort>(); 154 155 foreach (var nodeRectangle in nodeRectangles) { 156 if (nodeRectangle.Selected) { 157 var node = nodeRectangle.NetworkItem; 158 if (node == null) continue; 159 deletedNodes.Add(node); 160 foreach (var port in node.Ports.OfType<IMessagePort>()) 161 deletedPorts.Add(port); 162 } 163 } 164 165 foreach (var portRectangle in portRectangles) { 166 if (portRectangle.Selected) { 167 var port = portRectangle.NetworkItem as IMessagePort; 168 if (port == null) continue; 169 port.Parent.Ports.Remove(port); 170 deletedPorts.Add(port); 171 } 172 } 173 174 selectedPortRectangle = null; 175 176 foreach (var connectionLine in connectionLines) { 177 var startPortRectangle = connectionLine.StartPortRectangle; 178 var endPortRectangle = connectionLine.EndPortRectangle; 179 if (startPortRectangle == null || endPortRectangle == null) continue; 180 181 var startPort = startPortRectangle.NetworkItem as IMessagePort; 182 var endPort = endPortRectangle.NetworkItem as IMessagePort; 183 if (startPort == null || endPort == null) continue; 184 185 if (connectionLine.Selected || deletedPorts.Contains(startPort) || deletedPorts.Contains(endPort)) 186 startPort.ConnectedPort = null; 187 } 188 189 foreach (var node in deletedNodes) 190 node.Parent.Nodes.Remove(node); 191 } finally { chartControl.ResumeRendering(); } 192 } 198 193 } 199 194 } -
branches/OptimizationNetworks/HeuristicLab.Networks.Views.NetworkVisualization.Views/3.3/NetworkVisualizationView.Designer.cs
r13077 r13799 25 25 private void InitializeComponent() { 26 26 this.chartControl = new HeuristicLab.Visualization.ChartControl(); 27 this.splitContainer = new System.Windows.Forms.SplitContainer(); 28 this.detailsToggleButton = new System.Windows.Forms.Button(); 29 this.detailsGroupBox = new System.Windows.Forms.GroupBox(); 30 this.viewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost(); 27 31 ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit(); 32 ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).BeginInit(); 33 this.splitContainer.Panel1.SuspendLayout(); 34 this.splitContainer.Panel2.SuspendLayout(); 35 this.splitContainer.SuspendLayout(); 36 this.detailsGroupBox.SuspendLayout(); 28 37 this.SuspendLayout(); 29 38 // … … 39 48 | System.Windows.Forms.AnchorStyles.Right))); 40 49 this.chartControl.BackColor = System.Drawing.SystemColors.Control; 41 this.chartControl.Location = new System.Drawing.Point(3, 26); 50 this.chartControl.Location = new System.Drawing.Point(3, 3); 51 this.chartControl.Mode = null; 42 52 this.chartControl.Name = "chartControl"; 43 53 this.chartControl.ScaleOnResize = true; 44 this.chartControl.Size = new System.Drawing.Size(639, 488); 54 this.chartControl.ShowToolBar = true; 55 this.chartControl.Size = new System.Drawing.Size(408, 482); 56 this.chartControl.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; 45 57 this.chartControl.TabIndex = 3; 58 // 59 // splitContainer 60 // 61 this.splitContainer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 62 | System.Windows.Forms.AnchorStyles.Left) 63 | System.Windows.Forms.AnchorStyles.Right))); 64 this.splitContainer.Location = new System.Drawing.Point(3, 26); 65 this.splitContainer.Name = "splitContainer"; 66 // 67 // splitContainer.Panel1 68 // 69 this.splitContainer.Panel1.Controls.Add(this.detailsToggleButton); 70 this.splitContainer.Panel1.Controls.Add(this.chartControl); 71 // 72 // splitContainer.Panel2 73 // 74 this.splitContainer.Panel2.Controls.Add(this.detailsGroupBox); 75 this.splitContainer.Size = new System.Drawing.Size(639, 488); 76 this.splitContainer.SplitterDistance = 439; 77 this.splitContainer.TabIndex = 4; 78 // 79 // detailsToggleButton 80 // 81 this.detailsToggleButton.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 82 | System.Windows.Forms.AnchorStyles.Right))); 83 this.detailsToggleButton.Location = new System.Drawing.Point(417, 3); 84 this.detailsToggleButton.Name = "detailsToggleButton"; 85 this.detailsToggleButton.Size = new System.Drawing.Size(19, 482); 86 this.detailsToggleButton.TabIndex = 4; 87 this.detailsToggleButton.Text = ">"; 88 this.detailsToggleButton.UseVisualStyleBackColor = true; 89 this.detailsToggleButton.Click += new System.EventHandler(this.detailsToggleButton_Click); 90 // 91 // detailsGroupBox 92 // 93 this.detailsGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 94 | System.Windows.Forms.AnchorStyles.Left) 95 | System.Windows.Forms.AnchorStyles.Right))); 96 this.detailsGroupBox.Controls.Add(this.viewHost); 97 this.detailsGroupBox.Location = new System.Drawing.Point(3, 3); 98 this.detailsGroupBox.Name = "detailsGroupBox"; 99 this.detailsGroupBox.Size = new System.Drawing.Size(190, 482); 100 this.detailsGroupBox.TabIndex = 1; 101 this.detailsGroupBox.TabStop = false; 102 this.detailsGroupBox.Text = "Details"; 103 // 104 // viewHost 105 // 106 this.viewHost.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 107 | System.Windows.Forms.AnchorStyles.Left) 108 | System.Windows.Forms.AnchorStyles.Right))); 109 this.viewHost.Caption = "View"; 110 this.viewHost.Content = null; 111 this.viewHost.Enabled = false; 112 this.viewHost.Location = new System.Drawing.Point(6, 19); 113 this.viewHost.Name = "viewHost"; 114 this.viewHost.ReadOnly = false; 115 this.viewHost.Size = new System.Drawing.Size(178, 457); 116 this.viewHost.TabIndex = 0; 117 this.viewHost.ViewsLabelVisible = true; 118 this.viewHost.ViewType = null; 46 119 // 47 120 // NetworkVisualizationView … … 49 122 this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 50 123 this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 51 this.Controls.Add(this. chartControl);124 this.Controls.Add(this.splitContainer); 52 125 this.Name = "NetworkVisualizationView"; 53 126 this.Controls.SetChildIndex(this.nameLabel, 0); 54 127 this.Controls.SetChildIndex(this.nameTextBox, 0); 55 128 this.Controls.SetChildIndex(this.infoLabel, 0); 56 this.Controls.SetChildIndex(this. chartControl, 0);129 this.Controls.SetChildIndex(this.splitContainer, 0); 57 130 ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit(); 131 this.splitContainer.Panel1.ResumeLayout(false); 132 this.splitContainer.Panel2.ResumeLayout(false); 133 ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).EndInit(); 134 this.splitContainer.ResumeLayout(false); 135 this.detailsGroupBox.ResumeLayout(false); 58 136 this.ResumeLayout(false); 59 137 this.PerformLayout(); … … 64 142 65 143 private Visualization.ChartControl chartControl; 144 private System.Windows.Forms.SplitContainer splitContainer; 145 private System.Windows.Forms.Button detailsToggleButton; 146 private System.Windows.Forms.GroupBox detailsGroupBox; 147 private MainForm.WindowsForms.ViewHost viewHost; 66 148 } 67 149 } -
branches/OptimizationNetworks/HeuristicLab.Networks.Views.NetworkVisualization.Views/3.3/NetworkVisualizationView.cs
r13135 r13799 20 20 #endregion 21 21 22 using System; 22 23 using System.Collections.Generic; 23 24 using System.Linq; … … 46 47 InitializeComponent(); 47 48 48 var initialMode = new SelectChartMode(chartControl); 49 var selectMode = new SelectChartMode(chartControl); 50 selectMode.SelectedPrimitivesChanged += SelectMode_SelectedPrimitivesChanged; 49 51 chartControl.AddChartModes( 50 initialMode,52 selectMode, 51 53 new PanChartMode(chartControl), 52 54 new RulerChartMode(chartControl), … … 57 59 new ConnectPortsChartMode(chartControl) 58 60 ); 59 chartControl.Mode = initialMode;61 chartControl.Mode = selectMode; 60 62 } 61 63 … … 87 89 88 90 #region Event Handlers 91 private void SelectMode_SelectedPrimitivesChanged(object sender, EventArgs e) { 92 var selectedPrimitives = chartControl.Chart.Group.SelectedPrimitives; 93 var nodePrimitive = selectedPrimitives.OfType<NodeRectangle>().SingleOrDefault(); 94 viewHost.Content = nodePrimitive != null ? nodePrimitive.NetworkItem : null; 95 } 96 89 97 #region Nodes Event Handlers 90 98 private void Nodes_ItemsAdded(object sender, CollectionItemsChangedEventArgs<INode> e) { … … 111 119 private void Ports_ItemsReplaced(object sender, CollectionItemsChangedEventArgs<IPort> e) { } 112 120 #endregion 121 122 private void detailsToggleButton_Click(object sender, EventArgs e) { 123 splitContainer.Panel2Collapsed = !splitContainer.Panel2Collapsed; 124 detailsToggleButton.Text = splitContainer.Panel2Collapsed ? "<" : ">"; 125 } 113 126 #endregion 114 127
Note: See TracChangeset
for help on using the changeset viewer.