Changeset 11318 for branches/HeuristicLab.EvolutionTracking/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/Tracking/FragmentGraphView.cs
- Timestamp:
- 08/31/14 18:28:25 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.EvolutionTracking/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/Tracking/FragmentGraphView.cs
r11253 r11318 27 27 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; 28 28 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views; 29 using HeuristicLab.EvolutionTracking;30 29 using HeuristicLab.MainForm; 31 30 using HeuristicLab.Visualization; … … 38 37 private const int PreferredVerticalSpacing = 25; 39 38 40 private ReingoldTilfordLayoutEngine<TileLayoutNode> layoutEngine;41 private ReingoldTilfordLayoutEngine<ISymbolicExpressionTreeNode> symbolicExpressionEngine;42 43 private Dictionary<FragmentNode, TileLayoutNode> tileDictionary;39 private readonly ReingoldTilfordLayoutEngine<TileLayoutNode> layoutEngine; 40 private readonly ReingoldTilfordLayoutEngine<ISymbolicExpressionTreeNode> symbolicExpressionEngine; 41 42 private readonly Dictionary<FragmentNode, TileLayoutNode> nodeToTileMap; 44 43 45 44 private SymbolicExpressionTreeTile Root { get; set; } … … 63 62 NodeHeight = 40 64 63 }; 65 tileDictionary= new Dictionary<FragmentNode, TileLayoutNode>();64 nodeToTileMap = new Dictionary<FragmentNode, TileLayoutNode>(); 66 65 } 67 66 68 67 private void MakeTiles() { 69 68 var chart = symbolicExpressionChartControl.Chart; 70 tileDictionary.Clear();69 nodeToTileMap.Clear(); 71 70 foreach (var node in Content.Vertices) { 72 var graphNode = (IGenealogyGraphNode<ISymbolicExpressionTree>)node.Data;73 71 var tile = new SymbolicExpressionTreeTile(chart); 74 72 tile.LayoutEngine = symbolicExpressionEngine; 75 73 tile.Label = "Generation " + node.Data.Rank + Environment.NewLine + 76 74 "Quality " + String.Format("{0:0.000}", node.Data.Quality); 77 tile.Root = graphNode.Data.Root;75 tile.Root = node.Data.Data.Root; 78 76 var tileNode = new TileLayoutNode { Tile = tile }; 79 tileDictionary.Add(node, tileNode);77 nodeToTileMap.Add(node, tileNode); 80 78 } 81 79 foreach (var node in Content.Vertices.Where(n => n.OutArcs.Any())) { 82 var layoutNode = tileDictionary[node];83 layoutNode.Children = new List<TileLayoutNode>(node.OutArcs.Select(a => tileDictionary[(FragmentNode)a.Target]));80 var layoutNode = nodeToTileMap[node]; 81 layoutNode.Children = new List<TileLayoutNode>(node.OutArcs.Select(a => nodeToTileMap[(FragmentNode)a.Target])); 84 82 } 85 83 } … … 89 87 var nodes = Content.Vertices.ToList(); 90 88 var root = nodes[0]; 91 var fragmentRoot = tileDictionary[root];89 var fragmentRoot = nodeToTileMap[root]; 92 90 int maxTileWidth = 0, maxTileHeight = 0; 93 var tiles = nodes.Select(x => tileDictionary[x].Tile).ToList();91 var tiles = nodes.Select(x => nodeToTileMap[x].Tile).ToList(); 94 92 95 93 foreach (var tile in tiles) { … … 114 112 // add connections between the tiles 115 113 foreach (var node in nodes) { 116 var aTile = tileDictionary[node].Tile;114 var aTile = nodeToTileMap[node].Tile; 117 115 var aSize = aTile.Size; 118 116 var aPos = aTile.Position; … … 158 156 159 157 foreach (var child in node.OutArcs.Select(x => (FragmentNode)x.Target)) { 160 var bTile = tileDictionary[child].Tile;158 var bTile = nodeToTileMap[child].Tile; 161 159 var bSize = bTile.Size; 162 160 var bPos = bTile.Position; … … 169 167 } 170 168 // center display on the root of the fragment graph 171 symbolicExpressionChartControl.Chart.Move( tileDictionary[root].Tile.Position.X, tileDictionary[root].Tile.Position.Y);169 symbolicExpressionChartControl.Chart.Move(nodeToTileMap[root].Tile.Position.X, nodeToTileMap[root].Tile.Position.Y); 172 170 symbolicExpressionChartControl.UpdateEnabled = true; 173 171 symbolicExpressionChartControl.EnforceUpdate();
Note: See TracChangeset
for help on using the changeset viewer.