Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/30/12 23:15:47 (11 years ago)
Author:
bburlacu
Message:

#1763: Refactored the tree simplifier. Improved tree/node edit operations.

Location:
trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/SymbolicExpressionTreeChart.cs

    r8942 r8980  
    127127    }
    128128
     129    public void RepaintNodes() {
     130      if (!suspendRepaint) {
     131        var graphics = Graphics.FromImage(image);
     132        graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
     133        graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
     134        foreach (var visualNode in visualTreeNodes.Values) {
     135          DrawTreeNode(graphics, visualNode);
     136        }
     137        this.Refresh();
     138      }
     139    }
     140
     141    public void RepaintNode(VisualSymbolicExpressionTreeNode visualNode) {
     142      if (!suspendRepaint) {
     143        var graphics = Graphics.FromImage(image);
     144        graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
     145        graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
     146        DrawTreeNode(graphics, visualNode);
     147        this.Refresh();
     148      }
     149    }
     150
    129151    private void GenerateImage() {
    130152      using (Graphics graphics = Graphics.FromImage(image)) {
     
    311333      }
    312334    }
     335
     336    protected void DrawTreeNode(VisualSymbolicExpressionTreeNode visualTreeNode) {
     337      using (var graphics = Graphics.FromImage(image)) {
     338        graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
     339        graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
     340        DrawTreeNode(graphics, visualTreeNode);
     341      }
     342    }
     343
     344    protected void DrawTreeNode(Graphics graphics, VisualSymbolicExpressionTreeNode visualTreeNode) {
     345      graphics.Clip = new Region(new Rectangle(visualTreeNode.X, visualTreeNode.Y, visualTreeNode.Width + 1, visualTreeNode.Height + 1));
     346      graphics.Clear(backgroundColor);
     347      var node = visualTreeNode.SymbolicExpressionTreeNode;
     348      var textBrush = new SolidBrush(visualTreeNode.TextColor);
     349      var nodeLinePen = new Pen(visualTreeNode.LineColor);
     350      var nodeFillBrush = new SolidBrush(visualTreeNode.FillColor);
     351      //draw terminal node
     352      if (node.SubtreeCount == 0) {
     353        graphics.FillRectangle(nodeFillBrush, visualTreeNode.X, visualTreeNode.Y, visualTreeNode.Width, visualTreeNode.Height);
     354        graphics.DrawRectangle(nodeLinePen, visualTreeNode.X, visualTreeNode.Y, visualTreeNode.Width, visualTreeNode.Height);
     355      } else {
     356        graphics.FillEllipse(nodeFillBrush, visualTreeNode.X, visualTreeNode.Y, visualTreeNode.Width, visualTreeNode.Height);
     357        graphics.DrawEllipse(nodeLinePen, visualTreeNode.X, visualTreeNode.Y, visualTreeNode.Width, visualTreeNode.Height);
     358      }
     359      //draw name of symbol
     360      var text = node.ToString();
     361      graphics.DrawString(text, textFont, textBrush, new RectangleF(visualTreeNode.X, visualTreeNode.Y, visualTreeNode.Width, visualTreeNode.Height), stringFormat);
     362    }
    313363    #endregion
    314364
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/VisualSymbolicExpressionTreeNode.cs

    r7259 r8980  
    8585    public ISymbolicExpressionTreeNode SymbolicExpressionTreeNode {
    8686      get { return this.symbolicExpressionTreeNode; }
     87      set {
     88        symbolicExpressionTreeNode = value;
     89        ToolTip = SymbolicExpressionTreeNode.ToString();
     90      }
    8791    }
    8892
Note: See TracChangeset for help on using the changeset viewer.