Opened 10 years ago
Last modified 6 years ago
#2205 assigned feature request
Implement basic infrastructure for optimization networks — at Version 37
Reported by: | swagner | Owned by: | architects |
---|---|---|---|
Priority: | highest | Milestone: | HeuristicLab 4.0 |
Component: | Networks | Version: | branch |
Keywords: | Cc: |
Description (last modified by swagner)
To Do:
- check handling of locked and read-only state of controls
Topics for Discussion:
- design in general
- how much logic should be included in a port?
- problem of generic view types
- exception handling
- how to bridge the gap between internal and external ports of networks?
- declarative definition of results
- port-to-port communication
- clone value?
- how to switch threads?
- should ports propagate their values immediately when they are connected?
- data types
- POCOs vs. IItems
- generic vs. non-generic types (e.g. ports)
- AlgorithmNode
- port updates due to result changes (speed, events)
Change History (37)
comment:1 Changed 10 years ago by swagner
comment:2 Changed 10 years ago by swagner
Added new empty plugins (HeuristicLab.Modeler, HeuristicLab.Optimization.Networks) in r11063.
comment:3 Changed 10 years ago by swagner
Added new empty plugin HeuristicLab.Optimization.Networks.Views in r11069.
comment:4 Changed 10 years ago by swagner
Worked on optimization networks in r11177.
comment:5 Changed 10 years ago by swagner
Worked on optimization networks in r11401.
comment:6 Changed 10 years ago by swagner
Worked on optimization networks in r11406.
comment:7 Changed 10 years ago by swagner
Worked on optimization networks in r11409.
comment:8 Changed 10 years ago by swagner
- Component changed from ### Undefined ### to Optimization.Networks
- Priority changed from high to highest
- Status changed from new to accepted
comment:9 Changed 10 years ago by swagner
- Description modified (diff)
Worked on optimization networks in r11412.
comment:10 Changed 10 years ago by mkommend
- Owner changed from swagner to architects
- Status changed from accepted to assigned
comment:11 Changed 10 years ago by swagner
- Description modified (diff)
Worked on optimization networks in r11421.
comment:12 Changed 10 years ago by swagner
Worked on optimization networks in r11423.
comment:13 Changed 10 years ago by swagner
Worked on optimization networks in r11431.
comment:14 Changed 10 years ago by swagner
Worked on optimization networks in r11438.
comment:15 Changed 10 years ago by swagner
Worked on optimization networks in r11449.
comment:16 Changed 10 years ago by swagner
Worked on optimization networks in r11451.
comment:17 Changed 10 years ago by swagner
Worked on optimization networks in r11452.
comment:18 Changed 10 years ago by swagner
- Description modified (diff)
comment:19 Changed 10 years ago by swagner
Worked on optimization networks in r11454.
comment:20 Changed 10 years ago by swagner
Worked on optimization networks in r11463.
comment:21 Changed 10 years ago by swagner
Worked on optimization networks in r11465.
comment:22 Changed 10 years ago by swagner
Worked on optimization networks in r11468.
comment:23 Changed 10 years ago by swagner
Worked on optimization networks in r11481.
comment:24 Changed 10 years ago by swagner
- Description modified (diff)
comment:25 Changed 10 years ago by swagner
Worked on optimization networks in r11489.
comment:26 Changed 10 years ago by swagner
Worked on optimization networks in r11490.
comment:27 Changed 10 years ago by swagner
Worked on optimization networks in r11500.
comment:28 Changed 10 years ago by swagner
Worked on optimization networks in r11501.
comment:29 Changed 10 years ago by swagner
- Description modified (diff)
comment:30 Changed 10 years ago by swagner
Worked on optimization networks in r11519.
comment:31 Changed 10 years ago by swagner
Worked on optimization networks in r11520.
comment:32 Changed 10 years ago by swagner
Worked on optimization networks in r11526.
comment:33 Changed 10 years ago by swagner
Worked on optimization networks in r11527.
comment:34 Changed 10 years ago by swagner
Results of code review with abeham, mkommend, ascheibe:
- check item descriptions and item images (done)
- check access modifiers (public, protected, private)
- change formatting of multi-line LINQ queries (indentation, points should be at the beginning and not at the end of a line) (done)
- IEntity, Entity
- rename to INetworkItem and NetworkItem (done)
- remove the Path property and the PathChanged event (done)
- add a generic way for error handling to propagate errors through multiple network items (e.g. if a node contains a port with an invalid port connection, the node itself should also show an error)
- Node
- should be abstract (done)
- add additional checks in the setter of the Parent property to reduce the danger of invalid values when the setter is accidentally called directly
- IGenericNode, GenericNode (done)
- rename to IUserDefinedNode and UserDefinedNode or find an even better name (done)
- should be sealed (done)
- Network (done)
- should be abstract (done)
- Nodes should not be changeable by default (similar to Ports in Node) (done)
- derive sealed IUserDefinedNetwork and UserDefinedNetwork (find an even better name?) (done)
- Port
- add additional checks in the setter of the Parent property to reduce the danger of invalid values when the setter is accidentally called directly
- ParameterizedPort (done)
- Parameters should not be changeable by default (similar to Ports in Node) (done)
- IGenericPort, GenericPort (done)
- rename to IMessagePort and MessagePort (done)
- only store the last message and not all messages (done)
- refactor CanConnectToPort as there might occur a NullReferenceException and to avoid code duplication (done)
- refactor PrepareMessage to avoid code duplication (done)
- remove IConnectedPort (done)
- add IConnectablePort to enable generic port connection handling in the GUI (done)
- IMessagePort should implement IParameterizedPort and IConnectablePort (done)
- PortParameter
- add additional checks in the setter of the Parent property to reduce the danger of invalid values when the setter is accidentally called directly
- PortParameterType (done)
- remove None (done)
- AlgorithmNode (done)
- replace algorithm.Runs.Clear() and algorithm.Prepare() by algorithm.Prepare(true) (done)
- HookOperator (done)
- check if there is an operator parameter for each port parameter (done)
- clone Port by default and prevent cloning when necessary by registering the port as its own clone (e.g. in AlgorithmNode when cloning the algorithm before its execution) (done)
- EntityView
- increase the gap between the name label and the name textbox so that there is enough space to show the error icon if the name is not valid
comment:35 Changed 10 years ago by swagner
r11528: Implemented review comments
- adapted formatting of multi-line LINQ queries
- renamed Entity to NetworkItem
comment:36 Changed 10 years ago by swagner
r11529: Implemented review comments
- made Node and Network abstract
- renamed GenericNode to UserDefinedNode and sealed it
- added sealed UserDefinedNetwork
- made Nodes in Network not changeable by default
- made Parameters in ParameterizedPort not changeable by default
- removed value None in PortParameterType
- refactored call algorithm.PrepareMessage() in AlgorithmNode
comment:37 Changed 10 years ago by swagner
- Description modified (diff)
Created branch OptimizationNetworks in r11062.