Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
10/26/14 22:20:26 (10 years ago)
Author:
bburlacu
Message:

#1772: Added handling of double click event in the genealogy graph (opens a new view of the selected symbolic expression tree). Added highlighting of trace data. Very minor cosmetic changes to the TraceCalculator. Removed resx file from project.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.EvolutionTracking/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/Tracking/SymboldDataAnalysisGenealogyView.cs

    r11253 r11503  
    2020#endregion
    2121
     22using System;
    2223using System.Collections.Generic;
    2324using System.Drawing;
     
    6162    protected override void RegisterContentEvents() {
    6263      genealogyGraphChart.GenealogyGraphNodeClicked += graphChart_GenealogyGraphNodeClicked;
     64      genealogyGraphChart.GenealogyGraphNodeDoubleClicked += graphChart_GenealogyGraphNodeDoubleClicked;
    6365      symbolicExpressionTreeChart.SymbolicExpressionTreeNodeClicked += treeChart_SymbolicExpressionNodeClicked;
    6466      base.RegisterContentEvents();
     
    7880
    7981      if (graphNode.InArcs.Any()) {
    80         var fragment = (IFragment<ISymbolicExpressionTreeNode>)graphNode.InArcs.Last().Data;
     82        var fragment = graphNode.InArcs.Last().Data as IFragment<ISymbolicExpressionTreeNode>;
    8183        if (fragment != null) {
    8284          treeChart_HighlightSubtree(graphNode.Data.NodeAt(fragment.Index1));
     85        } else {
     86          var td = graphNode.InArcs.Last().Data as Tuple<int, int, int, int>;
     87          if (td != null) {
     88            var s = graphNode.Data.NodeAt(td.Item1);
     89            var f = graphNode.Data.NodeAt(td.Item2);
     90            treeChart_HighlightSubtree(s, Color.Orange);
     91            treeChart_HighlightSubtree(f, Color.RoyalBlue);
     92          }
    8393        }
    8494      }
     95    }
     96
     97    public void graphChart_GenealogyGraphNodeDoubleClicked(object sender, MouseEventArgs arcs) {
     98      var visualNode = (VisualGenealogyGraphNode)sender;
     99      var graphNode = (IGenealogyGraphNode<ISymbolicExpressionTree>)visualNode.Data;
     100      var tree = graphNode.Data;
     101      MainFormManager.MainForm.ShowContent(tree);
    85102    }
    86103
     
    109126        var matchingTrees = trees.Where(x => x.Root.ContainsSubtree(subtree, comparer));
    110127
    111         var matchingVertices = matchingTrees.Select(x => Content.GetByContent(x)).Cast<IGenealogyGraphNode<ISymbolicExpressionTree>>();
     128        var matchingVertices = matchingTrees.Select(x => Content.GetByContent(x));
    112129        graphChart_highlightMatchingVertices(matchingVertices);
    113130      }
     
    133150    }
    134151
    135     private void treeChart_HighlightSubtree(ISymbolicExpressionTreeNode subtree) {
     152    private void treeChart_HighlightSubtree(ISymbolicExpressionTreeNode subtree, Color? color = null) {
     153      Color myColor = color == null ? Color.RoyalBlue : (Color)color;
    136154      foreach (var s in subtree.IterateNodesPrefix()) {
    137155        var visualNode = symbolicExpressionTreeChart.GetVisualSymbolicExpressionTreeNode(s);
    138         visualNode.LineColor = Color.RoyalBlue;
    139         visualNode.FillColor = Color.LightBlue;
     156        visualNode.LineColor = myColor;
     157        //        visualNode.FillColor = myColor;
    140158
    141159        foreach (var c in s.Subtrees) {
    142160          var visualArc = symbolicExpressionTreeChart.GetVisualSymbolicExpressionTreeNodeConnection(s, c);
    143           visualArc.LineColor = Color.RoyalBlue;
     161          visualArc.LineColor = myColor;
    144162        }
    145163      }
Note: See TracChangeset for help on using the changeset viewer.