Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/16/13 13:13:41 (11 years ago)
Author:
spimming
Message:

#1888:

  • Merged revisions from trunk
Location:
branches/OaaS
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • branches/OaaS

  • branches/OaaS/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views

    • Property svn:mergeinfo set to (toggle deleted branches)
      /trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Viewsmergedeligible
      /branches/Algorithms.GradientDescent/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views5516-5520
      /branches/Benchmarking/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views6917-7005
      /branches/CloningRefactoring/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views4656-4721
      /branches/DataAnalysis Refactoring/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views5471-5808
      /branches/DataAnalysis SolutionEnsembles/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views5815-6180
      /branches/DataAnalysis/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views4458-4459,​4462,​4464
      /branches/GP.Grammar.Editor/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views6284-6795
      /branches/GP.Symbols (TimeLag, Diff, Integral)/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views5060
      /branches/HeuristicLab.TreeSimplifier/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views8388-8940
      /branches/NET40/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views5138-5162
      /branches/ParallelEngine/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views5175-5192
      /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views7568-7810
      /branches/QAPAlgorithms/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views6350-6627
      /branches/Restructure trunk solution/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views6828
      /branches/RuntimeOptimizer/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views8943-9078
      /branches/ScatterSearch (trunk integration)/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views7787-8333
      /branches/SlaveShutdown/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views8944-8956
      /branches/SuccessProgressAnalysis/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views5370-5682
      /branches/Trunk/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views6829-6865
      /branches/UnloadJobs/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views9168-9215
      /branches/VNS/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views5594-5752
      /branches/histogram/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views5959-6341
  • branches/OaaS/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4

    • Property svn:ignore
      •  

        old new  
        55HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views-3.4.csproj.user
        66Plugin.cs
         7*.user
  • branches/OaaS/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views-3.4.csproj

    r6866 r9363  
    276276  -->
    277277  <PropertyGroup>
    278     <PreBuildEvent>set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
     278   <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
    279279set ProjectDir=$(ProjectDir)
    280280set SolutionDir=$(SolutionDir)
     
    283283call PreBuildEvent.cmd
    284284</PreBuildEvent>
     285<PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
     286export ProjectDir=$(ProjectDir)
     287export SolutionDir=$(SolutionDir)
     288
     289$SolutionDir/PreBuildEvent.sh
     290</PreBuildEvent>
    285291  </PropertyGroup>
    286292</Project>
  • branches/OaaS/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/Plugin.cs.frame

    r7259 r9363  
    2626
    2727namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views {
    28   [Plugin("HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views","Provides views for the symbolic expression tree encoding.", "3.4.2.$WCREV$")]
     28  [Plugin("HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views","Provides views for the symbolic expression tree encoding.", "3.4.3.$WCREV$")]
    2929  [PluginFile("HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views-3.4.dll", PluginFileType.Assembly)]
    3030  [PluginDependency("HeuristicLab.Collections", "3.3")]
  • branches/OaaS/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/Properties

    • Property svn:ignore
      --- 
      +++ 
      
  • branches/OaaS/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/Properties/AssemblyInfo.cs.frame

    r7259 r9363  
    4545
    4646[assembly: AssemblyVersion("3.4.0.0")]
    47 [assembly: AssemblyFileVersion("3.4.2.$WCREV$")]
     47[assembly: AssemblyFileVersion("3.4.3.$WCREV$")]
  • branches/OaaS/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/SymbolView.Designer.cs

    r7967 r9363  
    175175    protected System.Windows.Forms.Label initialFrequencyLabel;
    176176    protected System.Windows.Forms.TextBox initialFrequencyTextBox;
    177     private System.Windows.Forms.CheckBox enabledCheckBox;
     177    protected System.Windows.Forms.CheckBox enabledCheckBox;
    178178    protected System.Windows.Forms.Label minimumArityLabel;
    179179    protected System.Windows.Forms.Label maximumArityLabel;
  • branches/OaaS/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/SymbolicExpressionGrammarEditorView.Designer.cs

    r7967 r9363  
    1 namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views {
     1#region License Information
     2/* HeuristicLab
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     4 *
     5 * This file is part of HeuristicLab.
     6 *
     7 * HeuristicLab is free software: you can redistribute it and/or modify
     8 * it under the terms of the GNU General Public License as published by
     9 * the Free Software Foundation, either version 3 of the License, or
     10 * (at your option) any later version.
     11 *
     12 * HeuristicLab is distributed in the hope that it will be useful,
     13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
     14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     15 * GNU General Public License for more details.
     16 *
     17 * You should have received a copy of the GNU General Public License
     18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
     19 */
     20#endregion
     21
     22namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views {
    223  partial class SymbolicExpressionGrammarEditorView {
    324    /// <summary>
  • branches/OaaS/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/SymbolicExpressionTreeChart.Designer.cs

    r7967 r9363  
    2121
    2222namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views {
    23   partial class SymbolicExpressionTreeChart {
     23  public partial class SymbolicExpressionTreeChart {
    2424    /// <summary>
    2525    /// Required designer variable.
     
    7070      //
    7171      this.saveFileDialog.Filter = "Bitmap (*.bmp)|*.bmp|EMF (*.emf)|*.emf";
    72       this.saveFileDialog.FilterIndex = 1;     
     72      this.saveFileDialog.FilterIndex = 1;
    7373      // SymbolicExpressionTreeChart
    7474      //
     
    8989    #endregion
    9090
    91     private System.Windows.Forms.ToolTip toolTip;
    92     private System.Windows.Forms.ContextMenuStrip contextMenuStrip;
    93     private System.Windows.Forms.ToolStripMenuItem saveImageToolStripMenuItem;
    94     private System.Windows.Forms.SaveFileDialog saveFileDialog;
     91    protected System.Windows.Forms.ToolTip toolTip;
     92    protected System.Windows.Forms.ContextMenuStrip contextMenuStrip;
     93    protected System.Windows.Forms.ToolStripMenuItem saveImageToolStripMenuItem;
     94    protected System.Windows.Forms.SaveFileDialog saveFileDialog;
    9595  }
    9696}
  • branches/OaaS/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/SymbolicExpressionTreeChart.cs

    r7259 r9363  
    2727
    2828namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views {
    29   public sealed partial class SymbolicExpressionTreeChart : UserControl {
     29  public partial class SymbolicExpressionTreeChart : UserControl {
    3030    private Image image;
    3131    private StringFormat stringFormat;
     
    3636      InitializeComponent();
    3737      this.image = new Bitmap(Width, Height);
    38       this.stringFormat = new StringFormat();
    39       this.stringFormat.Alignment = StringAlignment.Center;
    40       this.stringFormat.LineAlignment = StringAlignment.Center;
     38      this.stringFormat = new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center };
    4139      this.spacing = 5;
    4240      this.lineColor = Color.Black;
     
    129127    }
    130128
     129    public void RepaintNodes() {
     130      if (!suspendRepaint) {
     131        using (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        }
     138        this.Refresh();
     139      }
     140    }
     141
     142    public void RepaintNode(VisualSymbolicExpressionTreeNode visualNode) {
     143      if (!suspendRepaint) {
     144        using (var graphics = Graphics.FromImage(image)) {
     145          graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
     146          graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
     147          DrawTreeNode(graphics, visualNode);
     148        }
     149        this.Refresh();
     150      }
     151    }
     152
    131153    private void GenerateImage() {
    132154      using (Graphics graphics = Graphics.FromImage(image)) {
     
    157179    #region events
    158180    public event MouseEventHandler SymbolicExpressionTreeNodeClicked;
    159     private void OnSymbolicExpressionTreeNodeClicked(object sender, MouseEventArgs e) {
     181    protected virtual void OnSymbolicExpressionTreeNodeClicked(object sender, MouseEventArgs e) {
    160182      var clicked = SymbolicExpressionTreeNodeClicked;
    161183      if (clicked != null)
     
    163185    }
    164186
    165     private void SymbolicExpressionTreeChart_MouseClick(object sender, MouseEventArgs e) {
     187    protected virtual void SymbolicExpressionTreeChart_MouseClick(object sender, MouseEventArgs e) {
    166188      VisualSymbolicExpressionTreeNode visualTreeNode = FindVisualSymbolicExpressionTreeNodeAt(e.X, e.Y);
    167       if (visualTreeNode != null)
     189      if (visualTreeNode != null) {
    168190        OnSymbolicExpressionTreeNodeClicked(visualTreeNode, e);
     191      }
    169192    }
    170193
    171194    public event MouseEventHandler SymbolicExpressionTreeNodeDoubleClicked;
    172     private void OnSymbolicExpressionTreeNodeDoubleClicked(object sender, MouseEventArgs e) {
     195    protected virtual void OnSymbolicExpressionTreeNodeDoubleClicked(object sender, MouseEventArgs e) {
    173196      var doubleClicked = SymbolicExpressionTreeNodeDoubleClicked;
    174197      if (doubleClicked != null)
     
    176199    }
    177200
    178     private void SymbolicExpressionTreeChart_MouseDoubleClick(object sender, MouseEventArgs e) {
     201    protected virtual void SymbolicExpressionTreeChart_MouseDoubleClick(object sender, MouseEventArgs e) {
    179202      VisualSymbolicExpressionTreeNode visualTreeNode = FindVisualSymbolicExpressionTreeNodeAt(e.X, e.Y);
    180203      if (visualTreeNode != null)
     
    183206
    184207    public event ItemDragEventHandler SymbolicExpressionTreeNodeDrag;
    185     private void OnSymbolicExpressionTreeNodeDragDrag(object sender, ItemDragEventArgs e) {
     208    protected virtual void OnSymbolicExpressionTreeNodeDragDrag(object sender, ItemDragEventArgs e) {
    186209      var dragged = SymbolicExpressionTreeNodeDrag;
    187210      if (dragged != null)
     
    234257    ///
    235258    /// </summary>
    236     /// <param name="functionTree"> functiontree to draw</param>
     259    /// <param name="functionTree"> function tree to draw</param>
    237260    /// <param name="graphics">graphics object to draw on</param>
    238261    /// <param name="x">x coordinate of drawing area</param>
     
    247270      int actualHeight = height - spacing;
    248271
    249       SolidBrush textBrush = new SolidBrush(visualTreeNode.TextColor);
    250       Pen nodeLinePen = new Pen(visualTreeNode.LineColor);
    251       SolidBrush nodeFillBrush = new SolidBrush(visualTreeNode.FillColor);
    252 
    253       //calculate size of node
    254       if (actualWidth >= visualTreeNode.PreferredWidth && actualHeight >= visualTreeNode.PreferredHeight) {
    255         visualTreeNode.Width = visualTreeNode.PreferredWidth;
    256         visualTreeNode.Height = visualTreeNode.PreferredHeight;
    257         visualTreeNode.X = (int)center_x - visualTreeNode.Width / 2;
    258         visualTreeNode.Y = (int)center_y - visualTreeNode.Height / 2;
    259       }
    260         //width too small to draw in desired sized
    261       else if (actualWidth < visualTreeNode.PreferredWidth && actualHeight >= visualTreeNode.PreferredHeight) {
    262         visualTreeNode.Width = actualWidth;
    263         visualTreeNode.Height = visualTreeNode.PreferredHeight;
    264         visualTreeNode.X = x;
    265         visualTreeNode.Y = (int)center_y - visualTreeNode.Height / 2;
    266       }
    267         //height too small to draw in desired sized
    268       else if (actualWidth >= visualTreeNode.PreferredWidth && actualHeight < visualTreeNode.PreferredHeight) {
    269         visualTreeNode.Width = visualTreeNode.PreferredWidth;
    270         visualTreeNode.Height = actualHeight;
    271         visualTreeNode.X = (int)center_x - visualTreeNode.Width / 2;
    272         visualTreeNode.Y = y;
    273       }
    274         //width and height too small to draw in desired size
    275       else {
    276         visualTreeNode.Width = actualWidth;
    277         visualTreeNode.Height = actualHeight;
    278         visualTreeNode.X = x;
    279         visualTreeNode.Y = y;
    280       }
    281 
    282       //draw terminal node
    283       if (node.SubtreeCount == 0) {
    284         graphics.FillRectangle(nodeFillBrush, visualTreeNode.X, visualTreeNode.Y, visualTreeNode.Width, visualTreeNode.Height);
    285         graphics.DrawRectangle(nodeLinePen, visualTreeNode.X, visualTreeNode.Y, visualTreeNode.Width, visualTreeNode.Height);
    286       } else {
    287         graphics.FillEllipse(nodeFillBrush, visualTreeNode.X, visualTreeNode.Y, visualTreeNode.Width, visualTreeNode.Height);
    288         graphics.DrawEllipse(nodeLinePen, visualTreeNode.X, visualTreeNode.Y, visualTreeNode.Width, visualTreeNode.Height);
    289       }
    290 
    291       //draw name of symbol
    292       var text = node.ToString();
    293       graphics.DrawString(text, textFont, textBrush, new RectangleF(visualTreeNode.X, visualTreeNode.Y, visualTreeNode.Width, visualTreeNode.Height), stringFormat);
    294 
    295       //draw connection line to parent node
    296       if (!connectionPoint.IsEmpty && node.Parent != null) {
    297         var visualLine = GetVisualSymbolicExpressionTreeNodeConnection(node.Parent, node);
    298         using (Pen linePen = new Pen(visualLine.LineColor)) {
    299           linePen.DashStyle = visualLine.DashStyle;
    300           graphics.DrawLine(linePen, connectionPoint, new Point(visualTreeNode.X + visualTreeNode.Width / 2, visualTreeNode.Y));
    301         }
    302       }
    303 
    304       //calculate areas for the subtrees according to their tree size and call drawFunctionTree
    305       Point connectFrom = new Point(visualTreeNode.X + visualTreeNode.Width / 2, visualTreeNode.Y + visualTreeNode.Height);
    306       int[] xBoundaries = new int[node.SubtreeCount + 1];
    307       xBoundaries[0] = x;
    308       for (int i = 0; i < node.SubtreeCount; i++) {
    309         xBoundaries[i + 1] = (int)(xBoundaries[i] + (width * (double)node.GetSubtree(i).GetLength()) / (node.GetLength() - 1));
    310         DrawFunctionTree(node.GetSubtree(i), graphics, xBoundaries[i], y + height,
    311           xBoundaries[i + 1] - xBoundaries[i], height, connectFrom);
     272      using (var textBrush = new SolidBrush(visualTreeNode.TextColor))
     273      using (var nodeLinePen = new Pen(visualTreeNode.LineColor))
     274      using (var nodeFillBrush = new SolidBrush(visualTreeNode.FillColor)) {
     275
     276        //calculate size of node
     277        if (actualWidth >= visualTreeNode.PreferredWidth && actualHeight >= visualTreeNode.PreferredHeight) {
     278          visualTreeNode.Width = visualTreeNode.PreferredWidth;
     279          visualTreeNode.Height = visualTreeNode.PreferredHeight;
     280          visualTreeNode.X = (int)center_x - visualTreeNode.Width / 2;
     281          visualTreeNode.Y = (int)center_y - visualTreeNode.Height / 2;
     282        }
     283          //width too small to draw in desired sized
     284        else if (actualWidth < visualTreeNode.PreferredWidth && actualHeight >= visualTreeNode.PreferredHeight) {
     285          visualTreeNode.Width = actualWidth;
     286          visualTreeNode.Height = visualTreeNode.PreferredHeight;
     287          visualTreeNode.X = x;
     288          visualTreeNode.Y = (int)center_y - visualTreeNode.Height / 2;
     289        }
     290          //height too small to draw in desired sized
     291        else if (actualWidth >= visualTreeNode.PreferredWidth && actualHeight < visualTreeNode.PreferredHeight) {
     292          visualTreeNode.Width = visualTreeNode.PreferredWidth;
     293          visualTreeNode.Height = actualHeight;
     294          visualTreeNode.X = (int)center_x - visualTreeNode.Width / 2;
     295          visualTreeNode.Y = y;
     296        }
     297          //width and height too small to draw in desired size
     298        else {
     299          visualTreeNode.Width = actualWidth;
     300          visualTreeNode.Height = actualHeight;
     301          visualTreeNode.X = x;
     302          visualTreeNode.Y = y;
     303        }
     304
     305        //draw terminal node
     306        if (node.SubtreeCount == 0) {
     307          graphics.FillRectangle(nodeFillBrush, visualTreeNode.X, visualTreeNode.Y, visualTreeNode.Width, visualTreeNode.Height);
     308          graphics.DrawRectangle(nodeLinePen, visualTreeNode.X, visualTreeNode.Y, visualTreeNode.Width, visualTreeNode.Height);
     309        } else {
     310          graphics.FillEllipse(nodeFillBrush, visualTreeNode.X, visualTreeNode.Y, visualTreeNode.Width, visualTreeNode.Height);
     311          graphics.DrawEllipse(nodeLinePen, visualTreeNode.X, visualTreeNode.Y, visualTreeNode.Width, visualTreeNode.Height);
     312        }
     313
     314        //draw name of symbol
     315        var text = node.ToString();
     316        graphics.DrawString(text, textFont, textBrush, new RectangleF(visualTreeNode.X, visualTreeNode.Y, visualTreeNode.Width, visualTreeNode.Height), stringFormat);
     317
     318        //draw connection line to parent node
     319        if (!connectionPoint.IsEmpty && node.Parent != null) {
     320          var visualLine = GetVisualSymbolicExpressionTreeNodeConnection(node.Parent, node);
     321          using (Pen linePen = new Pen(visualLine.LineColor)) {
     322            linePen.DashStyle = visualLine.DashStyle;
     323            graphics.DrawLine(linePen, connectionPoint, new Point(visualTreeNode.X + visualTreeNode.Width / 2, visualTreeNode.Y));
     324          }
     325        }
     326
     327        //calculate areas for the subtrees according to their tree size and call drawFunctionTree
     328        Point connectFrom = new Point(visualTreeNode.X + visualTreeNode.Width / 2, visualTreeNode.Y + visualTreeNode.Height);
     329        int[] xBoundaries = new int[node.SubtreeCount + 1];
     330        xBoundaries[0] = x;
     331        for (int i = 0; i < node.SubtreeCount; i++) {
     332          xBoundaries[i + 1] = (int)(xBoundaries[i] + (width * (double)node.GetSubtree(i).GetLength()) / (node.GetLength() - 1));
     333          DrawFunctionTree(node.GetSubtree(i), graphics, xBoundaries[i], y + height, xBoundaries[i + 1] - xBoundaries[i], height, connectFrom);
     334        }
     335      }
     336    }
     337
     338    protected void DrawTreeNode(VisualSymbolicExpressionTreeNode visualTreeNode) {
     339      using (var graphics = Graphics.FromImage(image)) {
     340        graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
     341        graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
     342        DrawTreeNode(graphics, visualTreeNode);
     343      }
     344    }
     345
     346    protected void DrawTreeNode(Graphics graphics, VisualSymbolicExpressionTreeNode visualTreeNode) {
     347      graphics.Clip = new Region(new Rectangle(visualTreeNode.X, visualTreeNode.Y, visualTreeNode.Width + 1, visualTreeNode.Height + 1));
     348      graphics.Clear(backgroundColor);
     349      var node = visualTreeNode.SymbolicExpressionTreeNode;
     350      using (var textBrush = new SolidBrush(visualTreeNode.TextColor))
     351      using (var nodeLinePen = new Pen(visualTreeNode.LineColor))
     352      using (var nodeFillBrush = new SolidBrush(visualTreeNode.FillColor)) {
     353        //draw terminal node
     354        if (node.SubtreeCount == 0) {
     355          graphics.FillRectangle(nodeFillBrush, visualTreeNode.X, visualTreeNode.Y, visualTreeNode.Width, visualTreeNode.Height);
     356          graphics.DrawRectangle(nodeLinePen, visualTreeNode.X, visualTreeNode.Y, visualTreeNode.Width, visualTreeNode.Height);
     357        } else {
     358          graphics.FillEllipse(nodeFillBrush, visualTreeNode.X, visualTreeNode.Y, visualTreeNode.Width, visualTreeNode.Height);
     359          graphics.DrawEllipse(nodeLinePen, visualTreeNode.X, visualTreeNode.Y, visualTreeNode.Width, visualTreeNode.Height);
     360        }
     361        //draw name of symbol
     362        var text = node.ToString();
     363        graphics.DrawString(text, textFont, textBrush, new RectangleF(visualTreeNode.X, visualTreeNode.Y, visualTreeNode.Width, visualTreeNode.Height), stringFormat);
    312364      }
    313365    }
  • branches/OaaS/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/VisualSymbolicExpressionTreeNode.cs

    r7259 r9363  
    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.