Changeset 9420 for branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.EvolutionaryTracking.Views/3.4/GenealogyGraphView.cs
- Timestamp:
- 05/02/13 13:21:35 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.EvolutionaryTracking.Views/3.4/GenealogyGraphView.cs
r9250 r9420 52 52 this.zoomModeButton.Image = Common.Resources.VSImageLibrary.Zoom; 53 53 this.selectModeButton.Image = Common.Resources.VSImageLibrary.Object; 54 this.highlightAllButton.Image = Common.Resources.VSImageLibrary.Gradient; 55 this.simpleLineagesCheckBox.Image = Common.Resources.VSImageLibrary.ArrowDown; 56 this.lockGenealogyCheckBox.Image = Common.Resources.VSImageLibrary.ProtectForm; 57 54 58 comparer = new SymbolicExpressionTreeNodeSimilarityComparer { 55 59 MatchConstantValues = true, … … 63 67 genealogyGraphChart.GenealogyGraphNodeClicked -= graphChart_GenealogyGraphNodeClicked; 64 68 symbolicExpressionTreeChart.SymbolicExpressionTreeNodeClicked -= treeChart_SymbolicExpressionTreeNodeClicked; 69 symbolicExpressionTreeChart.SymbolicExpressionTreeNodeDoubleClicked -= treeChart_SymbolicExpressionTreeNodeDoubleClicked; 70 Content.GraphUpdated -= genealogyGraphUpdated; 65 71 base.DeregisterContentEvents(); 66 72 } … … 72 78 symbolicExpressionTreeChart.SymbolicExpressionTreeNodeClicked += treeChart_SymbolicExpressionTreeNodeClicked; 73 79 symbolicExpressionTreeChart.SymbolicExpressionTreeNodeDoubleClicked += treeChart_SymbolicExpressionTreeNodeDoubleClicked; 80 Content.GraphUpdated += genealogyGraphUpdated; 74 81 } 75 82 … … 82 89 else { 83 90 genealogyGraphChart.Graph = Content; 84 var best = Content.Nodes.OrderByDescending(x => x.Quality).First();85 symbolicExpressionTreeChart.Tree = best.SymbolicExpressionTree;91 // var best = Content.Nodes.OrderByDescending(x => x.Quality).First(); 92 // symbolicExpressionTreeChart.Tree = best.SymbolicExpressionTree; 86 93 } 87 94 } … … 105 112 symbolicExpressionTreeChart.Tree = genealogyGraphNode.SymbolicExpressionTree; 106 113 if (genealogyGraphNode.InEdges == null) return; 107 var arc = genealogyGraphNode.InEdges. First(x => x.Source != x.Target);114 var arc = genealogyGraphNode.InEdges.Last(x => x.Source != x.Target); 108 115 if (arc == null || arc.Data == null) return; 109 116 var fragment = (IFragment)arc.Data; … … 113 120 visualSymbExprTreeNode.LineColor = Color.OrangeRed; 114 121 } 115 symbolicExpressionTreeChart.Repaint(); // pain orange nodes122 symbolicExpressionTreeChart.Repaint(); 116 123 } 117 124 … … 129 136 var btn = (RadioButton)sender; 130 137 if (btn.Checked) { genealogyGraphChart.Chart.Mode = ChartMode.Select; } 138 } 139 140 private void genealogyGraphUpdated(object sender, EventArgs args) { 141 genealogyGraphChart.Graph = Content; 131 142 } 132 143 … … 159 170 var selectedClone = clonedNodes[selectedNode]; 160 171 var parent = selectedClone.Parent; 172 if (parent == null) break; 173 int index = parent.IndexOfSubtree(selectedClone); 174 if (index == -1) break; 161 175 parent.RemoveSubtree(parent.IndexOfSubtree(selectedClone)); 162 176 foreach (var node in selectedNode.IterateNodesPrefix()) { … … 179 193 var fragment = new Fragment(clonedNodes[selectedVisualSymbExprTreeNode.SymbolicExpressionTreeNode]); 180 194 var fragmentLength = fragment.Length; 195 // highlight nodes 181 196 genealogyGraphChart.HighlightNodes(from node in genealogyGraphChart.Graph.Nodes 182 197 let tree = node.SymbolicExpressionTree 183 198 where tree.Length >= fragmentLength 184 199 where tree.Root.ContainsFragment(fragment, comparer) 185 select tree, Color.DodgerBlue); 200 select tree); 201 // highlight edges that contain a matching fragment 202 var fragmentSimilarityComparer = new SymbolicExpressionTreeFragmentSimilarityComparer { 203 SimilarityComparer = comparer 204 }; 205 var matchingEdges = genealogyGraphChart.Graph.Nodes.Where(n => n.InEdges != null) 206 .SelectMany(n => n.InEdges).Where(edge => edge.Data != null && ((IFragment)edge.Data).Root != null) 207 .Where(edge => fragmentSimilarityComparer.Equals(fragment, (IFragment)edge.Data)); 208 genealogyGraphChart.HighlightArcs(matchingEdges, Color.DodgerBlue); 209 210 186 211 genealogyGraphChart.Chart.UpdateEnabled = true; 187 212 genealogyGraphChart.Chart.EnforceUpdate(); … … 191 216 } 192 217 #endregion 218 193 219 private void matchConstantsCheckBox_CheckedChanged(object sender, EventArgs e) { 194 220 comparer.MatchConstantValues = matchConstantsCheckBox.Checked; … … 208 234 MatchNodesAndRepaint(); 209 235 } 236 237 private void simpleLineagesCheckBox_CheckedChanged(object sender, EventArgs e) { 238 genealogyGraphChart.SimpleLineages = simpleLineagesCheckBox.Checked; 239 } 240 241 private void highlightAllButton_Click(object sender, EventArgs e) { 242 symbolicExpressionTreeChart.Repaint(); 243 genealogyGraphChart.HighlightAll(); 244 } 245 246 private void lockGenealogyCheckBox_CheckedChanged(object sender, EventArgs e) { 247 genealogyGraphChart.LockGenealogy = lockGenealogyCheckBox.Checked; 248 } 210 249 } 211 250 }
Note: See TracChangeset
for help on using the changeset viewer.