Changeset 4722 for trunk/sources/HeuristicLab.Operators.Views.GraphVisualization/3.3/OperatorGraphVisualization/OperatorGraphVisualizationInfo.cs
- Timestamp:
- 11/06/10 01:56:04 (14 years ago)
- Location:
- trunk/sources
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources
- Property svn:mergeinfo changed
/branches/CloningRefactoring (added) merged: 4656-4693,4696-4697,4711-4714,4718-4719
- Property svn:mergeinfo changed
-
trunk/sources/HeuristicLab.Operators.Views.GraphVisualization/3.3/OperatorGraphVisualization/OperatorGraphVisualizationInfo.cs
r4068 r4722 46 46 [StorableConstructor] 47 47 private OperatorGraphVisualizationInfo(bool deserializing) 48 : base( ) {48 : base(deserializing) { 49 49 this.operatorParameterCollectionMapping = new BidirectionalLookup<IOperator, IKeyedItemCollection<string, IParameter>>(); 50 50 this.parameterOperatorMapping = new Dictionary<IParameter, IOperator>(); 51 } 52 private OperatorGraphVisualizationInfo(OperatorGraphVisualizationInfo original, Cloner cloner) 53 : base(original, cloner) { 54 operatorShapeInfoMapping = new BidirectionalLookup<IOperator, IOperatorShapeInfo>(); 55 operatorParameterCollectionMapping = new BidirectionalLookup<IOperator, IKeyedItemCollection<string, IParameter>>(); 56 parameterOperatorMapping = new Dictionary<IParameter, IOperator>(); 57 58 operatorGraph = cloner.Clone(original.operatorGraph); 59 RegisterOperatorGraphEvents(); 60 oldInitialShape = cloner.Clone(original.oldInitialShape); 61 oldInitialShapeColor = original.oldInitialShapeColor; 62 63 foreach (KeyValuePair<IOperator, IOperatorShapeInfo> pair in original.operatorShapeInfoMapping.FirstEnumerable) { 64 IOperator op = cloner.Clone(pair.Key); 65 IOperatorShapeInfo shapeInfo = cloner.Clone(pair.Value); 66 RegisterOperatorEvents(op); 67 operatorParameterCollectionMapping.Add(op, pair.Key.Parameters); 68 operatorShapeInfoMapping.Add(op, shapeInfo); 69 } 70 71 foreach (IOperator oper in operatorShapeInfoMapping.FirstValues) { 72 foreach (IParameter param in oper.Parameters) { 73 parameterOperatorMapping.Add(param, oper); 74 IValueParameter opParam = param as IValueParameter; 75 if (opParam != null && typeof(IOperator).IsAssignableFrom(param.DataType)) 76 RegisterOperatorParameterEvents(opParam); 77 else 78 RegisterParameterEvents(param); 79 } 80 } 81 if (original.operatorGraph.InitialOperator != null) { 82 IOperatorShapeInfo newInitialShapeInfo = original.operatorShapeInfoMapping.GetByFirst(original.operatorGraph.InitialOperator); 83 if (newInitialShapeInfo != null) { 84 oldInitialShapeColor = newInitialShapeInfo.Color; 85 newInitialShapeInfo.Color = Color.LightGreen; 86 } 87 oldInitialShape = InitialShape; 88 OnInitialShapeChanged(); 89 } 90 } 91 public override IDeepCloneable Clone(Cloner cloner) { 92 return new OperatorGraphVisualizationInfo(this, cloner); 51 93 } 52 94 … … 64 106 65 107 [StorableHook(HookType.AfterDeserialization)] 66 private void DeserializationHook() {108 private void AfterDeserialization() { 67 109 this.operatorGraph.DeserializationFinished += new EventHandler(operatorGraph_DeserializationFinished); 68 110 … … 101 143 } 102 144 this.operatorGraph.DeserializationFinished -= new EventHandler(operatorGraph_DeserializationFinished); 103 }104 105 public override IDeepCloneable Clone(Cloner cloner) {106 OperatorGraphVisualizationInfo clone = (OperatorGraphVisualizationInfo)base.Clone(cloner);107 clone.operatorGraph = (OperatorGraph)cloner.Clone(this.operatorGraph);108 clone.RegisterOperatorGraphEvents();109 clone.oldInitialShape = (IOperatorShapeInfo)cloner.Clone(this.oldInitialShape);110 clone.oldInitialShapeColor = this.oldInitialShapeColor;111 112 IOperator op;113 IOperatorShapeInfo shapeInfo;114 foreach (KeyValuePair<IOperator, IOperatorShapeInfo> pair in this.operatorShapeInfoMapping.FirstEnumerable) {115 op = (IOperator)cloner.Clone(pair.Key);116 shapeInfo = (IOperatorShapeInfo)cloner.Clone(pair.Value);117 clone.RegisterOperatorEvents(op);118 clone.operatorParameterCollectionMapping.Add(op, pair.Key.Parameters);119 clone.operatorShapeInfoMapping.Add(op, shapeInfo);120 }121 122 foreach (IOperator oper in clone.operatorShapeInfoMapping.FirstValues) {123 foreach (IParameter param in oper.Parameters) {124 clone.parameterOperatorMapping.Add(param, oper);125 IValueParameter opParam = param as IValueParameter;126 if (opParam != null && typeof(IOperator).IsAssignableFrom(param.DataType))127 clone.RegisterOperatorParameterEvents(opParam);128 else129 clone.RegisterParameterEvents(param);130 }131 }132 if (this.operatorGraph.InitialOperator != null) {133 IOperatorShapeInfo newInitialShapeInfo = this.operatorShapeInfoMapping.GetByFirst(this.operatorGraph.InitialOperator);134 if (newInitialShapeInfo != null) {135 oldInitialShapeColor = newInitialShapeInfo.Color;136 newInitialShapeInfo.Color = Color.LightGreen;137 }138 oldInitialShape = this.InitialShape;139 this.OnInitialShapeChanged();140 }141 return clone;142 145 } 143 146
Note: See TracChangeset
for help on using the changeset viewer.