Changeset 11452
- Timestamp:
- 10/12/14 03:02:37 (10 years ago)
- Location:
- branches/OptimizationNetworks
- Files:
-
- 3 added
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/OptimizationNetworks/HeuristicLab.Optimization.Networks.Views/3.3/AlgorithmNodeView.cs
r11412 r11452 30 30 [Content(typeof(AlgorithmNode), true)] 31 31 [Content(typeof(IAlgorithmNode), false)] 32 public partial class AlgorithmNodeView : NodeView {32 public partial class AlgorithmNodeView : EntityView { 33 33 protected TypeSelectorDialog typeSelectorDialog; 34 34 -
branches/OptimizationNetworks/HeuristicLab.Optimization.Networks.Views/3.3/HeuristicLab.Optimization.Networks.Views-3.3.csproj
r11449 r11452 103 103 <DependentUpon>EntityView.cs</DependentUpon> 104 104 </Compile> 105 <Compile Include="InputOutputPortView.cs"> 106 <SubType>UserControl</SubType> 107 </Compile> 108 <Compile Include="InputOutputPortView.Designer.cs"> 109 <DependentUpon>InputOutputPortView.cs</DependentUpon> 110 </Compile> 105 111 <Compile Include="PortView.cs"> 106 112 <SubType>UserControl</SubType> -
branches/OptimizationNetworks/HeuristicLab.Optimization.Networks.Views/3.3/NodeView.Designer.cs
r11409 r11452 45 45 /// </summary> 46 46 private void InitializeComponent() { 47 this.portCollectionView = new HeuristicLab.Optimization.Networks.Views.PortCollectionView(); 47 48 ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit(); 48 49 this.SuspendLayout(); … … 52 53 this.errorProvider.SetIconAlignment(this.nameTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft); 53 54 this.errorProvider.SetIconPadding(this.nameTextBox, 2); 54 this.nameTextBox.Location = new System.Drawing.Point(69, 0);55 this.nameTextBox.Size = new System.Drawing.Size(551, 20);56 55 // 57 // infoLabel56 // portCollectionView 58 57 // 59 this.infoLabel.Location = new System.Drawing.Point(626, 3); 58 this.portCollectionView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 59 | System.Windows.Forms.AnchorStyles.Left) 60 | System.Windows.Forms.AnchorStyles.Right))); 61 this.portCollectionView.Caption = "PortCollection View"; 62 this.portCollectionView.Content = null; 63 this.portCollectionView.Location = new System.Drawing.Point(0, 26); 64 this.portCollectionView.Name = "portCollectionView"; 65 this.portCollectionView.ReadOnly = false; 66 this.portCollectionView.ShowDetails = true; 67 this.portCollectionView.Size = new System.Drawing.Size(645, 491); 68 this.portCollectionView.TabIndex = 3; 60 69 // 61 70 // NodeView 62 71 // 63 72 this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; 73 this.Controls.Add(this.portCollectionView); 64 74 this.Name = "NodeView"; 65 this.Size = new System.Drawing.Size(645, 517); 75 this.Controls.SetChildIndex(this.nameLabel, 0); 76 this.Controls.SetChildIndex(this.nameTextBox, 0); 77 this.Controls.SetChildIndex(this.infoLabel, 0); 78 this.Controls.SetChildIndex(this.portCollectionView, 0); 66 79 ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit(); 67 80 this.ResumeLayout(false); … … 72 85 #endregion 73 86 87 protected PortCollectionView portCollectionView; 88 89 74 90 75 91 -
branches/OptimizationNetworks/HeuristicLab.Optimization.Networks.Views/3.3/NodeView.cs
r11449 r11452 38 38 } 39 39 40 protected override void DeregisterContentEvents() {41 // remove events here42 base.DeregisterContentEvents();43 }44 45 protected override void RegisterContentEvents() {46 base.RegisterContentEvents();47 // add events here48 }49 50 40 protected override void OnContentChanged() { 51 41 base.OnContentChanged(); 52 //...42 portCollectionView.Content = Content == null ? null : Content.Ports; 53 43 } 54 44 55 45 protected override void SetEnabledStateOfControls() { 56 46 base.SetEnabledStateOfControls(); 57 //...47 portCollectionView.Enabled = Content != null && !ReadOnly; 58 48 } 59 49 } -
branches/OptimizationNetworks/HeuristicLab.Optimization.Networks.Views/3.3/VariablesNodeView.Designer.cs
r11412 r11452 45 45 /// </summary> 46 46 private void InitializeComponent() { 47 this.portCollectionView = new HeuristicLab.Optimization.Networks.Views.PortCollectionView();48 47 this.splitContainer = new System.Windows.Forms.SplitContainer(); 49 48 this.variableCollectionView = new HeuristicLab.Core.Views.VariableCollectionView(); 49 this.portCollectionView = new HeuristicLab.Optimization.Networks.Views.PortCollectionView(); 50 50 ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit(); 51 51 ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).BeginInit(); … … 59 59 this.errorProvider.SetIconAlignment(this.nameTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft); 60 60 this.errorProvider.SetIconPadding(this.nameTextBox, 2); 61 //62 // portCollectionView63 //64 this.portCollectionView.Caption = "PortCollection View";65 this.portCollectionView.Content = null;66 this.portCollectionView.Dock = System.Windows.Forms.DockStyle.Fill;67 this.portCollectionView.Location = new System.Drawing.Point(0, 0);68 this.portCollectionView.Name = "portCollectionView";69 this.portCollectionView.ReadOnly = false;70 this.portCollectionView.ShowDetails = true;71 this.portCollectionView.Size = new System.Drawing.Size(645, 238);72 this.portCollectionView.TabIndex = 0;73 61 // 74 62 // splitContainer … … 89 77 this.splitContainer.Panel2.Controls.Add(this.variableCollectionView); 90 78 this.splitContainer.Size = new System.Drawing.Size(645, 491); 91 this.splitContainer.SplitterDistance = 23 8;79 this.splitContainer.SplitterDistance = 237; 92 80 this.splitContainer.TabIndex = 3; 93 81 // … … 101 89 this.variableCollectionView.ReadOnly = false; 102 90 this.variableCollectionView.ShowDetails = true; 103 this.variableCollectionView.Size = new System.Drawing.Size(645, 2 49);91 this.variableCollectionView.Size = new System.Drawing.Size(645, 250); 104 92 this.variableCollectionView.TabIndex = 0; 93 // 94 // portCollectionView 95 // 96 this.portCollectionView.Caption = "PortCollection View"; 97 this.portCollectionView.Content = null; 98 this.portCollectionView.Dock = System.Windows.Forms.DockStyle.Fill; 99 this.portCollectionView.Location = new System.Drawing.Point(0, 0); 100 this.portCollectionView.Name = "portCollectionView"; 101 this.portCollectionView.ReadOnly = false; 102 this.portCollectionView.ShowDetails = true; 103 this.portCollectionView.Size = new System.Drawing.Size(645, 237); 104 this.portCollectionView.TabIndex = 0; 105 105 // 106 106 // VariablesNodeView … … 125 125 #endregion 126 126 127 protected PortCollectionView portCollectionView;128 127 protected System.Windows.Forms.SplitContainer splitContainer; 129 128 protected Core.Views.VariableCollectionView variableCollectionView; 129 private PortCollectionView portCollectionView; 130 130 131 131 -
branches/OptimizationNetworks/HeuristicLab.Optimization.Networks.Views/3.3/VariablesNodeView.cs
r11412 r11452 30 30 [Content(typeof(VariablesNode), true)] 31 31 [Content(typeof(IVariablesNode), false)] 32 public partial class VariablesNodeView : NodeView {32 public partial class VariablesNodeView : EntityView { 33 33 public new IVariablesNode Content { 34 34 get { return (IVariablesNode)base.Content; } -
branches/OptimizationNetworks/HeuristicLab.Optimization.Networks/3.3/HeuristicLab.Optimization.Networks-3.3.csproj
r11449 r11452 89 89 <Compile Include="Entity.cs" /> 90 90 <Compile Include="Port.cs" /> 91 <Compile Include="MultiplierNode.cs" /> 91 92 <Compile Include="VariablesNode.cs" /> 92 93 <Compile Include="EventArgs.cs" /> … … 134 135 <Name>HeuristicLab.Core-3.3</Name> 135 136 </ProjectReference> 137 <ProjectReference Include="..\..\HeuristicLab.Data\3.3\HeuristicLab.Data-3.3.csproj"> 138 <Project>{bbab9df5-5ef3-4ba8-ade9-b36e82114937}</Project> 139 <Name>HeuristicLab.Data-3.3</Name> 140 </ProjectReference> 136 141 <ProjectReference Include="..\..\HeuristicLab.Optimization\3.3\HeuristicLab.Optimization-3.3.csproj"> 137 142 <Project>{14ab8d24-25bc-400c-a846-4627aa945192}</Project> -
branches/OptimizationNetworks/HeuristicLab.Optimization.Networks/3.3/IInputOutputPort.cs
r11421 r11452 25 25 namespace HeuristicLab.Optimization.Networks { 26 26 public interface IInputOutputPort : IValuePort { 27 IOutputInputPort OutputInputPort { get; }27 IOutputInputPort OutputInputPort { get; set; } 28 28 29 29 event EventHandler OutputInputPortChanged; -
branches/OptimizationNetworks/HeuristicLab.Optimization.Networks/3.3/IValuePort.cs
r11421 r11452 25 25 namespace HeuristicLab.Optimization.Networks { 26 26 public interface IValuePort : IPort { 27 //DISCUSS: Should there be a reference to the node of this port?28 29 27 object Value { get; } 30 28 -
branches/OptimizationNetworks/HeuristicLab.Optimization.Networks/3.3/InputOutputPort.cs
r11431 r11452 46 46 IOutputInputPort IInputOutputPort.OutputInputPort { 47 47 get { return outputInputPort; } 48 set { 49 var val = value as IOutputInputPort<TIn, TOut>; 50 if ((value != null) && (val == null)) 51 throw new InvalidOperationException( 52 string.Format("Type mismatch. OutputInputPort is not a \"{0}\".", 53 typeof(IOutputInputPort<TIn, TOut>).GetPrettyName()) 54 ); 55 OutputInputPort = val; 56 } 48 57 } 49 58 -
branches/OptimizationNetworks/HeuristicLab.Optimization.Networks/3.3/InputPort.cs
r11438 r11452 44 44 RegisterOutputPortEvents(); 45 45 OnOutputPortChanged(); 46 UpdateValue(); 46 47 } 47 48 } … … 79 80 } 80 81 82 protected virtual void UpdateValue() { 83 if (OutputPort != null) { 84 var value = OutputPort.Value; 85 if (value != null) 86 value = (T)value.Clone(); 87 Value = value; 88 //DISCUSS: clone value? 89 //DISCUSS: switch threads to decouple value propagation and to make communication asynchronous -> should be done in Node? 90 } 91 } 92 81 93 public event EventHandler OutputPortChanged; 82 94 protected void OnOutputPortChanged() { … … 96 108 } 97 109 protected void OutputPort_ValueChanged(object sender, EventArgs e) { 98 var value = OutputPort.Value; 99 if (value != null) 100 value = (T)value.Clone(); 101 Value = value; 102 //DISCUSS: clone value? 103 //DISCUSS: switch threads to decouple value propagation and to make communication asynchronous -> should be done in Node? 110 UpdateValue(); 104 111 } 105 112 } -
branches/OptimizationNetworks/HeuristicLab.Optimization.Networks/3.3/Plugin.cs.frame
r11409 r11452 32 32 [PluginDependency("HeuristicLab.Common.Resources", "3.3")] 33 33 [PluginDependency("HeuristicLab.Core", "3.3")] 34 [PluginDependency("HeuristicLab.Data", "3.3")] 34 35 [PluginDependency("HeuristicLab.Optimization", "3.3")] 35 36 [PluginDependency("HeuristicLab.Persistence", "3.3")] -
branches/OptimizationNetworks/HeuristicLab.Optimization.Networks/3.3/VariablesNode.cs
r11423 r11452 77 77 78 78 private void UpdateVariable(IInputPort port) { 79 IVariable var = null; 80 if (variables.TryGetValue(port.Name, out var)) { 81 var.Value = (IItem)port.Value; 82 } 79 if (!variables.ContainsKey(port.Name)) 80 variables.Add(new Variable(port.Name)); 81 variables[port.Name].Value = (IItem)port.Value; 83 82 } 84 83 private void UpdateOutputPort(IVariable variable) { 85 84 IPort port = null; 86 85 if (Ports.TryGetValue(variable.Name, out port)) { 87 IOutputPort p = port as IOutputPort; 88 if (p != null) { 89 p.Value = variable.Value; 86 IOutputPort o = port as IOutputPort; 87 if (o != null) { 88 o.Value = variable.Value; 89 } 90 IOutputInputPort oi = port as IOutputInputPort; 91 if (oi != null) { 92 var result = (IItem)oi.SendValue(variable.Value); 93 if (!variables.ContainsKey(oi.Name + "Result")) 94 variables.Add(new Variable(oi.Name + "Result")); 95 variables[oi.Name + "Result"].Value = result; 90 96 } 91 97 } … … 98 104 port.Value = null; 99 105 } 106 } 107 private void UpdateOutputInputPort(IOutputInputPort port) { 108 IVariable var = null; 109 IItem result = null; 110 if (variables.TryGetValue(port.Name, out var)) { 111 result = (IItem)port.SendValue(var.Value); 112 } else { 113 result = (IItem)port.SendValue(null); 114 } 115 if (!variables.ContainsKey(port.Name + "Result")) 116 variables.Add(new Variable(port.Name + "Result")); 117 variables[port.Name + "Result"].Value = result; 100 118 } 101 119 … … 145 163 UpdateOutputPort(o); 146 164 } 165 IOutputInputPort oi = port as IOutputInputPort; 166 if (oi != null) { 167 oi.NameChanged += OutputInputPort_NameChanged; 168 UpdateOutputInputPort(oi); 169 } 147 170 } 148 171 private void DeregisterPortEvents(IPort port) { … … 156 179 o.NameChanged -= OutputPort_NameChanged; 157 180 } 181 IOutputInputPort oi = port as IOutputInputPort; 182 if (oi != null) { 183 oi.NameChanged -= OutputInputPort_NameChanged; 184 } 158 185 } 159 186 private void InputPort_NameChanged(object sender, EventArgs e) { … … 165 192 private void OutputPort_NameChanged(object sender, EventArgs e) { 166 193 UpdateOutputPort((IOutputPort)sender); 194 } 195 private void OutputInputPort_NameChanged(object sender, EventArgs e) { 196 UpdateOutputInputPort((IOutputInputPort)sender); 167 197 } 168 198 #endregion
Note: See TracChangeset
for help on using the changeset viewer.