Changeset 2861 for trunk/sources/HeuristicLab.Operators.Views.GraphVisualization/3.3/Model/OperatorShape.cs
- Timestamp:
- 02/24/10 17:58:03 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Operators.Views.GraphVisualization/3.3/Model/OperatorShape.cs
r2853 r2861 30 30 public class OperatorShape : ClassShape { 31 31 32 private BidirectionalLookup<string, IConnector> additionalConnectors;33 32 public OperatorShape() 34 33 : base() { 35 this.additionalConnectors = new BidirectionalLookup<string,IConnector>();34 this.additionalConnectors = new List<IConnector>(); 36 35 } 37 36 38 private Connector predecessor; 39 public Connector Predecessor { 37 private List<IConnector> additionalConnectors; 38 public IEnumerable<string> AdditionalConnectorNames { 39 get { return this.additionalConnectors.Select(c => c.Name); } 40 } 41 42 private IConnector predecessor; 43 public IConnector Predecessor { 40 44 get { return this.predecessor; } 41 45 } 42 46 43 private Connector successor;44 public Connector Successor {47 private IConnector successor; 48 public IConnector Successor { 45 49 get { return this.successor; } 46 50 } 47 51 52 private IConnector CreateConnector(string connectorName, Point location) { 53 Connector connector = new Connector(location); 54 connector.ConnectorStyle = ConnectorStyle.Square; 55 connector.Parent = this; 56 connector.Name = connectorName; 57 return connector; 58 } 59 60 48 61 49 62 public void AddConnector(string connectorName) { 50 Connector connector = new Connector(new Point(Rectangle.Right, Rectangle.Bottom));51 connector.ConnectorStyle = ConnectorStyle.Square; 52 connector.Parent = this;53 this. additionalConnectors.Add(connectorName,connector);54 Connectors.Add(connector);63 IConnector connector = this.CreateConnector(connectorName, this.BottomRightCorner); 64 65 this.additionalConnectors.Add(connector); 66 this.Connectors.Add(connector); 67 this.UpdateConnectorLocation(); 55 68 } 56 69 57 70 public void RemoveConnector(string connectorName) { 58 this.additionalConnectors.RemoveByFirst(connectorName); 59 this.UpdateConnectorLocation(); 71 IConnector connector = this.additionalConnectors.Where(c => c.Name ==connectorName).FirstOrDefault(); 72 if (connector != null) { 73 this.additionalConnectors.Remove(connector); 74 this.Connectors.Remove(connector); 75 this.UpdateConnectorLocation(); 76 } 60 77 } 61 78 62 private void UpdateConnectorLocation() { 63 //TODO set x position of connectors 79 private void UpdateConnectorLocation() { 80 int spacing = this.Rectangle.Width / this.additionalConnectors.Count + 1; 81 int margin = spacing / 2; 82 int posX = margin + this.Rectangle.X; 83 int posY = this.additionalConnectors[0].Point.Y; 84 for (int i = 0; i < this.additionalConnectors.Count; i++) { 85 this.additionalConnectors[i].Point = new Point(posX, posY); 86 posX += spacing; 87 } 64 88 } 65 89 … … 71 95 this.Connectors.Clear(); 72 96 73 predecessor = new Connector(new Point(Rectangle.Right, (int)(Rectangle.Top + Rectangle.Height / 2))); 74 predecessor.ConnectorStyle = ConnectorStyle.Square; 75 predecessor.Name = "Predecessor"; 76 predecessor.Parent = this; 97 predecessor = this.CreateConnector("Predecessor", new Point(Rectangle.Left, Center.Y)); 77 98 Connectors.Add(predecessor); 78 99 79 successor = new Connector(new Point(Rectangle.Left, (int)(Rectangle.Top + Rectangle.Height / 2))); 80 predecessor.ConnectorStyle = ConnectorStyle.Square; 81 successor.Name = "Successor"; 82 successor.Parent = this; 100 successor = this.CreateConnector("Successor",(new Point(Rectangle.Right, Center.Y))); 83 101 Connectors.Add(successor); 84 102 #endregion
Note: See TracChangeset
for help on using the changeset viewer.