Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/27/14 11:23:37 (10 years ago)
Author:
jkarder
Message:

#2116: merged r10041-r11593 from trunk into branch

Location:
branches/Breadcrumbs
Files:
34 edited

Legend:

Unmodified
Added
Removed
  • branches/Breadcrumbs

  • branches/Breadcrumbs/HeuristicLab.Problems.DataAnalysis.Symbolic.Views

  • branches/Breadcrumbs/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/Exporters/SymbolicSolutionExcelExporter.cs

    r9994 r11594  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    3030namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Views {
    3131  public class SymbolicSolutionExcelExporter : IDataAnalysisSolutionExporter {
    32     private const string TRAININGSTART = "TrainingStart";
    33     private const string TRAININGEND = "TrainingEnd";
    34     private const string TESTSTART = "TestStart";
    35     private const string TESTEND = "TestEnd";
     32    protected const string TRAININGSTART = "TrainingStart";
     33    protected const string TRAININGEND = "TrainingEnd";
     34    protected const string TESTSTART = "TestStart";
     35    protected const string TESTEND = "TestEnd";
    3636
    3737
     
    4444    }
    4545
    46     public void Export(IDataAnalysisSolution solution, string fileName) {
     46    public virtual void Export(IDataAnalysisSolution solution, string fileName) {
    4747      var symbSolution = solution as ISymbolicDataAnalysisSolution;
    4848      if (symbSolution == null) throw new NotSupportedException("This solution cannot be exported to Excel");
     
    216216    }
    217217
    218     private string Indirect(string column, bool training) {
     218    protected string Indirect(string column, bool training) {
    219219      if (training) {
    220220        return string.Format("INDIRECT(\"'Estimated Values'!{0}\"&{1}+2&\":{0}\"&{2}+1)", column, TRAININGSTART, TRAININGEND);
     
    260260    }
    261261
    262     private void AddModelTreePicture(ExcelWorksheet modelWorksheet, ISymbolicDataAnalysisModel model) {
     262    protected void AddModelTreePicture(ExcelWorksheet modelWorksheet, ISymbolicDataAnalysisModel model) {
    263263      SymbolicExpressionTreeChart modelTreePicture = new SymbolicExpressionTreeChart();
    264264      modelTreePicture.Tree = model.SymbolicExpressionTree;
     
    289289      estimatedWorksheet.Cells[1, 1, 1, 10].AutoFitColumns();
    290290
     291      // fill in id, target variable and unbounded estimated values
    291292      int targetIndex = solution.ProblemData.Dataset.VariableNames.ToList().FindIndex(x => x.Equals(solution.ProblemData.TargetVariable)) + 1;
    292293      for (int i = 0; i < rows; i++) {
    293         estimatedWorksheet.Cells[i + 2, 1].Value = i;
    294         estimatedWorksheet.Cells[i + 2, 2].Formula = datasetWorksheet.Cells[i + 2, targetIndex].FullAddress;
    295         estimatedWorksheet.Cells[i + 2, 9].Formula = string.Format(preparedFormula, i + 2);
     294        estimatedWorksheet.Cells[i + 2, 1].Value = i; // id
     295        estimatedWorksheet.Cells[i + 2, 2].Formula = datasetWorksheet.Cells[i + 2, targetIndex].FullAddress; // target variable
     296        estimatedWorksheet.Cells[i + 2, 9].Formula = string.Format(preparedFormula, i + 2); // unbounded estimated values
    296297      }
    297298      estimatedWorksheet.Cells["B2:B" + (rows + 1)].Style.Numberformat.Format = "0.000";
     
    313314    }
    314315
    315     private string PrepareFormula(string[] formulaParts) {
     316    protected string PrepareFormula(string[] formulaParts) {
    316317      string preparedFormula = formulaParts[0];
    317318      foreach (var part in formulaParts.Skip(2)) {
     
    323324    }
    324325
    325     private void WriteInputSheet(ExcelWorksheet inputsWorksheet, ExcelWorksheet datasetWorksheet, IEnumerable<string> list, Dataset dataset) {
     326    protected void WriteInputSheet(ExcelWorksheet inputsWorksheet, ExcelWorksheet datasetWorksheet, IEnumerable<string> list, Dataset dataset) {
    326327      //remark the performance of EPPlus drops dramatically
    327328      //if the data is not written row wise (from left to right) due the internal indices used.
     
    337338    }
    338339
    339     private void WriteDatasetToExcel(ExcelWorksheet datasetWorksheet, IDataAnalysisProblemData problemData) {
     340    protected void WriteDatasetToExcel(ExcelWorksheet datasetWorksheet, IDataAnalysisProblemData problemData) {
    340341      //remark the performance of EPPlus drops dramatically
    341342      //if the data is not written row wise (from left to right) due the internal indices used.
  • branches/Breadcrumbs/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/GraphicalSymbolicDataAnalysisModelView.cs

    r9456 r11594  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/Breadcrumbs/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/GraphicalSymbolicDataAnalysisModelView.designer.cs

    r9456 r11594  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/Breadcrumbs/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic.Views-3.4.csproj

    r9975 r11594  
    207207      <Private>False</Private>
    208208    </ProjectReference>
     209    <ProjectReference Include="..\..\HeuristicLab.Common.Resources\3.3\HeuristicLab.Common.Resources-3.3.csproj">
     210      <Project>{0e27a536-1c4a-4624-a65e-dc4f4f23e3e1}</Project>
     211      <Name>HeuristicLab.Common.Resources-3.3</Name>
     212      <Private>False</Private>
     213    </ProjectReference>
    209214    <ProjectReference Include="..\..\HeuristicLab.Common\3.3\HeuristicLab.Common-3.3.csproj">
    210215      <Project>{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}</Project>
  • branches/Breadcrumbs/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/InteractiveSymbolicDataAnalysisSolutionSimplifierView.Designer.cs

    r9462 r11594  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    1919 */
    2020#endregion
     21
    2122
    2223namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Views {
     
    4647    private void InitializeComponent() {
    4748      this.components = new System.ComponentModel.Container();
     49      System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(InteractiveSymbolicDataAnalysisSolutionSimplifierView));
    4850      this.viewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
    4951      this.splitContainer = new System.Windows.Forms.SplitContainer();
     
    5153      this.treeStatusValue = new System.Windows.Forms.Label();
    5254      this.flowLayoutPanel = new System.Windows.Forms.FlowLayoutPanel();
     55      this.btnSimplify = new System.Windows.Forms.Button();
    5356      this.btnOptimizeConstants = new System.Windows.Forms.Button();
    54       this.btnSimplify = new System.Windows.Forms.Button();
    55       this.treeStatusLabel = new System.Windows.Forms.Label();
    56       this.treeChart = new HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views.SymbolicExpressionTreeChart();
    5757      this.grpViewHost = new System.Windows.Forms.GroupBox();
     58      this.treeChart = new HeuristicLab.Problems.DataAnalysis.Symbolic.Views.InteractiveSymbolicExpressionTreeChart();
    5859      ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).BeginInit();
    5960      this.splitContainer.Panel1.SuspendLayout();
     
    103104      this.grpSimplify.Controls.Add(this.treeStatusValue);
    104105      this.grpSimplify.Controls.Add(this.flowLayoutPanel);
    105       this.grpSimplify.Controls.Add(this.treeStatusLabel);
    106106      this.grpSimplify.Controls.Add(this.treeChart);
    107107      this.grpSimplify.Dock = System.Windows.Forms.DockStyle.Fill;
     
    115115      // treeStatusValue
    116116      //
     117      this.treeStatusValue.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
    117118      this.treeStatusValue.AutoSize = true;
    118       this.treeStatusValue.BackColor = System.Drawing.Color.Transparent;
    119       this.treeStatusValue.ForeColor = System.Drawing.Color.Green;
    120       this.treeStatusValue.Location = new System.Drawing.Point(72, 16);
     119      this.treeStatusValue.BackColor = System.Drawing.Color.White;
     120      this.treeStatusValue.ForeColor = System.Drawing.Color.Red;
     121      this.treeStatusValue.Location = new System.Drawing.Point(6, 351);
    121122      this.treeStatusValue.Name = "treeStatusValue";
    122       this.treeStatusValue.Size = new System.Drawing.Size(30, 13);
     123      this.treeStatusValue.Size = new System.Drawing.Size(63, 13);
    123124      this.treeStatusValue.TabIndex = 3;
    124       this.treeStatusValue.Text = "Valid";
     125      this.treeStatusValue.Text = "Invalid Tree";
     126      this.treeStatusValue.Visible = false;
    125127      //
    126128      // flowLayoutPanel
     
    136138      this.flowLayoutPanel.WrapContents = false;
    137139      //
     140      // btnSimplify
     141      //
     142      this.btnSimplify.AutoSize = true;
     143      this.btnSimplify.Image = HeuristicLab.Common.Resources.VSImageLibrary.FormulaEvaluator;
     144      this.btnSimplify.Location = new System.Drawing.Point(3, 3);
     145      this.btnSimplify.Name = "btnSimplify";
     146      this.btnSimplify.Size = new System.Drawing.Size(80, 24);
     147      this.btnSimplify.TabIndex = 1;
     148      this.btnSimplify.Text = "Simplify";
     149      this.btnSimplify.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
     150      this.btnSimplify.UseVisualStyleBackColor = true;
     151      this.btnSimplify.Click += new System.EventHandler(this.btnSimplify_Click);
     152      //
    138153      // btnOptimizeConstants
    139154      //
    140       this.btnOptimizeConstants.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
     155      this.btnOptimizeConstants.AutoSize = true;
    141156      this.btnOptimizeConstants.Enabled = false;
    142       this.btnOptimizeConstants.Location = new System.Drawing.Point(104, 3);
     157      this.btnOptimizeConstants.Image = HeuristicLab.Common.Resources.VSImageLibrary.Performance;
     158      this.btnOptimizeConstants.Location = new System.Drawing.Point(89, 3);
    143159      this.btnOptimizeConstants.Name = "btnOptimizeConstants";
    144       this.btnOptimizeConstants.Size = new System.Drawing.Size(97, 23);
     160      this.btnOptimizeConstants.Size = new System.Drawing.Size(80, 24);
    145161      this.btnOptimizeConstants.TabIndex = 2;
    146162      this.btnOptimizeConstants.Text = "Optimize";
     163      this.btnOptimizeConstants.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
    147164      this.btnOptimizeConstants.UseVisualStyleBackColor = true;
    148165      this.btnOptimizeConstants.Click += new System.EventHandler(this.btnOptimizeConstants_Click);
    149       //
    150       // btnSimplify
    151       //
    152       this.btnSimplify.Location = new System.Drawing.Point(3, 3);
    153       this.btnSimplify.Name = "btnSimplify";
    154       this.btnSimplify.Size = new System.Drawing.Size(95, 23);
    155       this.btnSimplify.TabIndex = 1;
    156       this.btnSimplify.Text = "Simplify";
    157       this.btnSimplify.UseVisualStyleBackColor = true;
    158       this.btnSimplify.Click += new System.EventHandler(this.btnSimplify_Click);
    159       //
    160       // treeStatusLabel
    161       //
    162       this.treeStatusLabel.AutoSize = true;
    163       this.treeStatusLabel.BackColor = System.Drawing.Color.Transparent;
    164       this.treeStatusLabel.Location = new System.Drawing.Point(6, 16);
    165       this.treeStatusLabel.Name = "treeStatusLabel";
    166       this.treeStatusLabel.Size = new System.Drawing.Size(68, 13);
    167       this.treeStatusLabel.TabIndex = 2;
    168       this.treeStatusLabel.Text = "Tree Status: ";
    169       //
    170       // treeChart
    171       //
    172       this.treeChart.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
    173             | System.Windows.Forms.AnchorStyles.Left)
    174             | System.Windows.Forms.AnchorStyles.Right)));
    175       this.treeChart.BackgroundColor = System.Drawing.Color.White;
    176       this.treeChart.LineColor = System.Drawing.Color.Black;
    177       this.treeChart.Location = new System.Drawing.Point(6, 32);
    178       this.treeChart.Name = "treeChart";
    179       this.treeChart.Size = new System.Drawing.Size(201, 332);
    180       this.treeChart.Spacing = 5;
    181       this.treeChart.SuspendRepaint = false;
    182       this.treeChart.TabIndex = 0;
    183       this.treeChart.TextFont = new System.Drawing.Font("Times New Roman", 8F);
    184       this.treeChart.Tree = null;
    185       this.treeChart.SymbolicExpressionTreeNodeDoubleClicked += new System.Windows.Forms.MouseEventHandler(this.treeChart_SymbolicExpressionTreeNodeDoubleClicked);
    186166      //
    187167      // grpViewHost
     
    195175      this.grpViewHost.TabStop = false;
    196176      this.grpViewHost.Text = "Details";
     177      //
     178      // treeChart
     179      //
     180      this.treeChart.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
     181            | System.Windows.Forms.AnchorStyles.Left)
     182            | System.Windows.Forms.AnchorStyles.Right)));
     183      this.treeChart.BackgroundColor = System.Drawing.Color.White;
     184      this.treeChart.LineColor = System.Drawing.Color.Black;
     185      this.treeChart.Location = new System.Drawing.Point(6, 16);
     186      this.treeChart.ModifyTree = null;
     187      this.treeChart.Name = "treeChart";
     188      this.treeChart.Size = new System.Drawing.Size(201, 348);
     189      this.treeChart.Spacing = 5;
     190      this.treeChart.SuspendRepaint = false;
     191      this.treeChart.TabIndex = 0;
     192      this.treeChart.TextFont = new System.Drawing.Font("Times New Roman", 8F);
     193      this.treeChart.Tree = null;
     194      this.treeChart.SymbolicExpressionTreeNodeDoubleClicked += new System.Windows.Forms.MouseEventHandler(this.treeChart_SymbolicExpressionTreeNodeDoubleClicked);
    197195      //
    198196      // InteractiveSymbolicDataAnalysisSolutionSimplifierView
     
    212210      this.grpSimplify.PerformLayout();
    213211      this.flowLayoutPanel.ResumeLayout(false);
     212      this.flowLayoutPanel.PerformLayout();
    214213      this.grpViewHost.ResumeLayout(false);
    215214      this.ResumeLayout(false);
     
    219218    #endregion
    220219
    221     private HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views.SymbolicExpressionTreeChart treeChart;
     220    private HeuristicLab.Problems.DataAnalysis.Symbolic.Views.InteractiveSymbolicExpressionTreeChart treeChart;
    222221    private System.Windows.Forms.SplitContainer splitContainer;
    223222    private HeuristicLab.MainForm.WindowsForms.ViewHost viewHost;
     
    228227    protected System.Windows.Forms.Button btnOptimizeConstants;
    229228    private System.Windows.Forms.Label treeStatusValue;
    230     private System.Windows.Forms.Label treeStatusLabel;
    231229  }
    232230}
  • branches/Breadcrumbs/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/InteractiveSymbolicDataAnalysisSolutionSimplifierView.cs

    r9478 r11594  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    3333  public abstract partial class InteractiveSymbolicDataAnalysisSolutionSimplifierView : AsynchronousContentView {
    3434    private Dictionary<ISymbolicExpressionTreeNode, ISymbolicExpressionTreeNode> foldedNodes;
     35    private Dictionary<ISymbolicExpressionTreeNode, ISymbolicExpressionTreeNode> changedNodes;
    3536    private Dictionary<ISymbolicExpressionTreeNode, double> nodeImpacts;
     37
    3638    private enum TreeState { Valid, Invalid }
    37 
    38     public InteractiveSymbolicDataAnalysisSolutionSimplifierView() {
     39    private TreeState treeState;
     40
     41    protected InteractiveSymbolicDataAnalysisSolutionSimplifierView() {
    3942      InitializeComponent();
    4043      foldedNodes = new Dictionary<ISymbolicExpressionTreeNode, ISymbolicExpressionTreeNode>();
     44      changedNodes = new Dictionary<ISymbolicExpressionTreeNode, ISymbolicExpressionTreeNode>();
    4145      nodeImpacts = new Dictionary<ISymbolicExpressionTreeNode, double>();
    4246      this.Caption = "Interactive Solution Simplifier";
     47
     48      // initialize the tree modifier that will be used to perform edit operations over the tree
     49      treeChart.ModifyTree = Modify;
     50    }
     51
     52    /// <summary>
     53    /// Remove, Replace or Insert subtrees
     54    /// </summary>
     55    /// <param name="tree">The symbolic expression tree</param>
     56    /// <param name="parent">The insertion point (ie, the parent node who will receive a new child)</param>
     57    /// <param name="oldChild">The subtree to be replaced</param>
     58    /// <param name="newChild">The replacement subtree</param>
     59    /// <param name="removeSubtree">Flag used to indicate if whole subtrees should be removed (default behavior), or just the subtree root</param>
     60    private void Modify(ISymbolicExpressionTree tree, ISymbolicExpressionTreeNode parent,
     61      ISymbolicExpressionTreeNode oldChild, ISymbolicExpressionTreeNode newChild, bool removeSubtree = true) {
     62      if (oldChild == null && newChild == null)
     63        throw new ArgumentNullException("Cannot deduce operation type from the arguments. Please provide non null operands.");
     64      if (oldChild == null) {
     65        // insertion operation
     66        parent.AddSubtree(newChild);
     67        newChild.Parent = parent;
     68      } else if (newChild == null) {
     69        // removal operation
     70        parent.RemoveSubtree(parent.IndexOfSubtree(oldChild));
     71        if (!removeSubtree) {
     72          for (int i = oldChild.SubtreeCount - 1; i >= 0; --i) {
     73            var subtree = oldChild.GetSubtree(i);
     74            oldChild.RemoveSubtree(i);
     75            parent.AddSubtree(subtree);
     76          }
     77        }
     78      } else {
     79        // replacement operation
     80        var replacementIndex = parent.IndexOfSubtree(oldChild);
     81        parent.RemoveSubtree(replacementIndex);
     82        parent.InsertSubtree(replacementIndex, newChild);
     83        newChild.Parent = parent;
     84        if (changedNodes.ContainsKey(oldChild)) {
     85          changedNodes.Add(newChild, changedNodes[oldChild]); // so that on double click the original node is restored
     86          changedNodes.Remove(oldChild);
     87        } else {
     88          changedNodes.Add(newChild, oldChild);
     89        }
     90      }
     91      treeState = IsValid(tree) ? TreeState.Valid : TreeState.Invalid;
     92      switch (treeState) {
     93        case TreeState.Valid:
     94          this.grpViewHost.Enabled = true;
     95          UpdateModel(Content.Model.SymbolicExpressionTree);
     96          break;
     97        case TreeState.Invalid:
     98          this.grpViewHost.Enabled = false;
     99          break;
     100      }
     101    }
     102
     103    // the optimizer always assumes 2 children for multiplication and addition nodes
     104    // thus, we enforce that the tree stays valid so that the constant optimization won't throw an exception
     105    // by returning 2 as the minimum allowed arity for addition and multiplication symbols
     106    private readonly Func<ISymbol, int> GetMinArity = symbol => {
     107      var min = symbol.MinimumArity;
     108      if (symbol is Multiplication || symbol is Division) return Math.Max(2, min);
     109      return min;
     110    };
     111    private bool IsValid(ISymbolicExpressionTree tree) {
     112      treeChart.Tree = tree;
     113      treeChart.Repaint();
     114      bool valid = !tree.IterateNodesPostfix().Any(node => node.SubtreeCount < GetMinArity(node.Symbol) || node.SubtreeCount > node.Symbol.MaximumArity);
     115      if (valid) {
     116        btnOptimizeConstants.Enabled = true;
     117        btnSimplify.Enabled = true;
     118        treeStatusValue.Visible = false;
     119      } else {
     120        btnOptimizeConstants.Enabled = false;
     121        btnSimplify.Enabled = false;
     122        treeStatusValue.Visible = true;
     123      }
     124      this.Refresh();
     125      return valid;
    43126    }
    44127
     
    52135      Content.ModelChanged += Content_Changed;
    53136      Content.ProblemDataChanged += Content_Changed;
     137      treeChart.Repainted += treeChart_Repainted;
    54138    }
    55139    protected override void DeregisterContentEvents() {
     
    57141      Content.ModelChanged -= Content_Changed;
    58142      Content.ProblemDataChanged -= Content_Changed;
     143      treeChart.Repainted -= treeChart_Repainted;
    59144    }
    60145
     
    70155    }
    71156
     157    private void treeChart_Repainted(object sender, EventArgs e) {
     158      if (nodeImpacts != null && nodeImpacts.Count > 0)
     159        PaintNodeImpacts();
     160    }
     161
    72162    private void UpdateView() {
    73163      if (Content == null || Content.Model == null || Content.ProblemData == null) return;
     
    75165      treeChart.Tree = tree.Root.SubtreeCount > 1 ? new SymbolicExpressionTree(tree.Root) : new SymbolicExpressionTree(tree.Root.GetSubtree(0).GetSubtree(0));
    76166
    77       var replacementValues = CalculateReplacementValues(tree);
     167      var impactAndReplacementValues = CalculateImpactAndReplacementValues(tree);
     168      var replacementValues = impactAndReplacementValues.ToDictionary(x => x.Key, x => x.Value.Item2);
    78169      foreach (var pair in replacementValues.Where(pair => !(pair.Key is ConstantTreeNode))) {
    79170        foldedNodes[pair.Key] = MakeConstantTreeNode(pair.Value);
    80171      }
    81 
    82       nodeImpacts = CalculateImpactValues(tree);
     172      nodeImpacts = impactAndReplacementValues.ToDictionary(x => x.Key, x => x.Value.Item1);
    83173      PaintNodeImpacts();
    84174    }
     
    86176    protected abstract Dictionary<ISymbolicExpressionTreeNode, double> CalculateReplacementValues(ISymbolicExpressionTree tree);
    87177    protected abstract Dictionary<ISymbolicExpressionTreeNode, double> CalculateImpactValues(ISymbolicExpressionTree tree);
     178    protected abstract Dictionary<ISymbolicExpressionTreeNode, Tuple<double, double>> CalculateImpactAndReplacementValues(ISymbolicExpressionTree tree);
    88179    protected abstract void UpdateModel(ISymbolicExpressionTree tree);
    89180
     
    96187
    97188    private void treeChart_SymbolicExpressionTreeNodeDoubleClicked(object sender, MouseEventArgs e) {
    98       var visualNode = (VisualSymbolicExpressionTreeNode)sender;
    99       var symbExprTreeNode = (SymbolicExpressionTreeNode)visualNode.SymbolicExpressionTreeNode;
    100       if (symbExprTreeNode == null) return;
     189      if (treeState == TreeState.Invalid) return;
     190      var visualNode = (VisualTreeNode<ISymbolicExpressionTreeNode>)sender;
     191      if (visualNode.Content == null) { throw new Exception("VisualNode content cannot be null."); }
     192      var symbExprTreeNode = (SymbolicExpressionTreeNode)visualNode.Content;
    101193      var tree = Content.Model.SymbolicExpressionTree;
    102194      var parent = symbExprTreeNode.Parent;
    103195      int indexOfSubtree = parent.IndexOfSubtree(symbExprTreeNode);
    104       if (foldedNodes.ContainsKey(symbExprTreeNode)) {
     196      if (changedNodes.ContainsKey(symbExprTreeNode)) {
     197        // undo node change
     198        parent.RemoveSubtree(indexOfSubtree);
     199        var originalNode = changedNodes[symbExprTreeNode];
     200        parent.InsertSubtree(indexOfSubtree, originalNode);
     201        changedNodes.Remove(symbExprTreeNode);
     202      } else if (foldedNodes.ContainsKey(symbExprTreeNode)) {
    105203        // undo node folding
    106204        SwitchNodeWithReplacementNode(parent, indexOfSubtree);
     
    111209    private void SwitchNodeWithReplacementNode(ISymbolicExpressionTreeNode parent, int subTreeIndex) {
    112210      ISymbolicExpressionTreeNode subTree = parent.GetSubtree(subTreeIndex);
    113       parent.RemoveSubtree(subTreeIndex);
    114211      if (foldedNodes.ContainsKey(subTree)) {
     212        parent.RemoveSubtree(subTreeIndex);
    115213        var replacementNode = foldedNodes[subTree];
    116214        parent.InsertSubtree(subTreeIndex, replacementNode);
     
    126224      double min = impacts.Min();
    127225      foreach (ISymbolicExpressionTreeNode treeNode in Content.Model.SymbolicExpressionTree.IterateNodesPostfix()) {
    128         VisualSymbolicExpressionTreeNode visualTree = treeChart.GetVisualSymbolicExpressionTreeNode(treeNode);
     226        VisualTreeNode<ISymbolicExpressionTreeNode> visualTree = treeChart.GetVisualSymbolicExpressionTreeNode(treeNode);
    129227
    130228        if (!(treeNode is ConstantTreeNode) && nodeImpacts.ContainsKey(treeNode)) {
     229          visualTree.ToolTip = visualTree.Content.ToString();
    131230          double impact = nodeImpacts[treeNode];
    132231
     
    150249        }
    151250        if (visualTree != null)
    152           if (treeNode is ConstantTreeNode && foldedNodes.ContainsKey(treeNode)) {
     251          if (changedNodes.ContainsKey(treeNode)) {
     252            visualTree.LineColor = Color.DodgerBlue;
     253          } else if (treeNode is ConstantTreeNode && foldedNodes.ContainsKey(treeNode)) {
    153254            visualTree.LineColor = Color.DarkOrange;
    154255          }
  • branches/Breadcrumbs/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/InteractiveSymbolicExpressionTreeChart.Designer.cs

    r9456 r11594  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    5656      this.toolStripSeparator = new System.Windows.Forms.ToolStripSeparator();
    5757      this.copyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
     58      this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
     59      this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
    5860      this.SuspendLayout();
    5961      //
     
    6163      //
    6264      this.insertNodeToolStripMenuItem.Name = "insertNodeToolStripMenuItem";
    63       this.insertNodeToolStripMenuItem.Size = new System.Drawing.Size(147, 22);
     65      this.insertNodeToolStripMenuItem.Size = new System.Drawing.Size(165, 22);
    6466      this.insertNodeToolStripMenuItem.Text = "Insert Node";
    6567      this.insertNodeToolStripMenuItem.Click += new System.EventHandler(this.insertNodeToolStripMenuItem_Click);
     
    6870      //
    6971      this.changeNodeToolStripMenuItem.Name = "changeNodeToolStripMenuItem";
    70       this.changeNodeToolStripMenuItem.Size = new System.Drawing.Size(147, 22);
     72      this.changeNodeToolStripMenuItem.Size = new System.Drawing.Size(165, 22);
    7173      this.changeNodeToolStripMenuItem.Text = "Change Node";
    7274      this.changeNodeToolStripMenuItem.Click += new System.EventHandler(this.changeNodeToolStripMenuItem_Click);
     
    7577      //
    7678      this.cutToolStripMenuItem.Name = "cutToolStripMenuItem";
    77       this.cutToolStripMenuItem.Size = new System.Drawing.Size(147, 22);
    78       this.cutToolStripMenuItem.Text = "Cut";
     79      this.cutToolStripMenuItem.Size = new System.Drawing.Size(165, 22);
     80      this.cutToolStripMenuItem.Text = "Cut Subtree";
    7981      this.cutToolStripMenuItem.Click += new System.EventHandler(this.cutToolStripMenuItem_Click);
    8082      //
     
    8587            this.removeSubtreeToolStripMenuItem});
    8688      this.removeToolStripMenuItem.Name = "removeToolStripMenuItem";
    87       this.removeToolStripMenuItem.Size = new System.Drawing.Size(147, 22);
     89      this.removeToolStripMenuItem.Size = new System.Drawing.Size(165, 22);
    8890      this.removeToolStripMenuItem.Text = "Remove";
    8991      this.removeToolStripMenuItem.Click += new System.EventHandler(this.removeSubtreeToolStripMenuItem_Click);
     
    106108      //
    107109      this.pasteToolStripMenuItem.Name = "pasteToolStripMenuItem";
    108       this.pasteToolStripMenuItem.Size = new System.Drawing.Size(147, 22);
    109       this.pasteToolStripMenuItem.Text = "Paste";
     110      this.pasteToolStripMenuItem.Size = new System.Drawing.Size(165, 22);
     111      this.pasteToolStripMenuItem.Text = "Paste Subtree";
    110112      this.pasteToolStripMenuItem.Click += new System.EventHandler(this.pasteToolStripMenuItem_Clicked);
    111113      //
     
    118120      //
    119121      this.copyToolStripMenuItem.Name = "copyToolStripMenuItem";
    120       this.copyToolStripMenuItem.Size = new System.Drawing.Size(147, 22);
    121       this.copyToolStripMenuItem.Text = "Copy";
     122      this.copyToolStripMenuItem.Size = new System.Drawing.Size(165, 22);
     123      this.copyToolStripMenuItem.Text = "Copy Subtree";
    122124      this.copyToolStripMenuItem.Click += new System.EventHandler(this.copyToolStripMenuItem_Click);
     125      //
     126      // toolStripSeparator1
     127      //
     128      this.toolStripSeparator1.Name = "toolStripSeparator1";
     129      this.toolStripSeparator1.Size = new System.Drawing.Size(162, 6);
     130      //
     131      // toolStripSeparator2
     132      //
     133      this.toolStripSeparator2.Name = "toolStripSeparator2";
     134      this.toolStripSeparator2.Size = new System.Drawing.Size(162, 6);
    123135      //
    124136      // contextMenuStrip
    125137      //
    126138      this.contextMenuStrip.Opened += this.contextMenuStrip_Opened;
    127       this.contextMenuStrip.Items.AddRange(new ToolStripItem[] { insertNodeToolStripMenuItem,
     139      this.contextMenuStrip.Items.AddRange(new ToolStripItem[] { toolStripSeparator1,
     140                                                                 insertNodeToolStripMenuItem,
     141                                                                 removeToolStripMenuItem,
    128142                                                                 changeNodeToolStripMenuItem,
     143                                                                 toolStripSeparator2,
    129144                                                                 copyToolStripMenuItem,
    130145                                                                 cutToolStripMenuItem,
    131                                                                  removeToolStripMenuItem,
    132146                                                                 pasteToolStripMenuItem });
    133147      //
     
    139153      this.Name = "InteractiveSymbolicExpressionTreeChart";
    140154      this.ResumeLayout(false);
    141 
    142155    }
    143156
     
    154167    private ToolStripSeparator toolStripSeparator;
    155168    private ToolStripMenuItem copyToolStripMenuItem;
     169    private ToolStripSeparator toolStripSeparator1;
     170    private ToolStripSeparator toolStripSeparator2;
    156171  }
    157172}
  • branches/Breadcrumbs/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/InteractiveSymbolicExpressionTreeChart.cs

    r9456 r11594  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    3333  internal sealed partial class InteractiveSymbolicExpressionTreeChart : SymbolicExpressionTreeChart {
    3434    private ISymbolicExpressionTreeNode tempNode; // node in clipboard (to be cut/copy/pasted etc)
    35     private VisualSymbolicExpressionTreeNode currSelected; // currently selected node
     35    private VisualTreeNode<ISymbolicExpressionTreeNode> currSelected; // currently selected node
    3636    private enum EditOp { NoOp, CopySubtree, CutSubtree }
    3737    private EditOp lastOp = EditOp.NoOp;
     
    6565        pasteToolStripMenuItem.Visible = false;
    6666      } else {
    67         var node = currSelected.SymbolicExpressionTreeNode;
     67        var node = currSelected.Content;
    6868        insertNodeToolStripMenuItem.Visible = true;
    6969        changeNodeToolStripMenuItem.Visible = true;
     
    7676        pasteToolStripMenuItem.Visible = true;
    7777        pasteToolStripMenuItem.Enabled = tempNode != null && insertNodeToolStripMenuItem.Enabled
    78                                                           && !(lastOp == EditOp.CutSubtree
    79                                                                && tempNode.IterateNodesBreadth().Contains(currSelected.SymbolicExpressionTreeNode));
     78                                                          && !(lastOp == EditOp.CutSubtree && tempNode.IterateNodesBreadth().Contains(node))
     79                                                          && node.SubtreeCount < node.Symbol.MaximumArity;
    8080      }
    8181    }
    8282
    8383    protected override void OnSymbolicExpressionTreeNodeClicked(object sender, MouseEventArgs e) {
    84       currSelected = (VisualSymbolicExpressionTreeNode)sender; ;
    85       if (currSelected != null) {
    86         currSelected.LineColor = Color.FromArgb(130, currSelected.LineColor);
    87         RepaintNode(currSelected);
    88       }
     84      currSelected = (VisualTreeNode<ISymbolicExpressionTreeNode>)sender; ;
    8985      base.OnSymbolicExpressionTreeNodeClicked(sender, e);
    9086    }
    9187
    92     protected override void SymbolicExpressionTreeChart_MouseClick(object sender, MouseEventArgs e) {
    93       if (currSelected != null) {
    94         currSelected.LineColor = Color.FromArgb(255, currSelected.LineColor);
    95         RepaintNode(currSelected);
    96       }
    97       base.SymbolicExpressionTreeChart_MouseClick(sender, e);
    98     }
    99 
    10088    protected override void OnSymbolicExpressionTreeNodeDoubleClicked(object sender, MouseEventArgs e) {
    10189      currSelected = null;
     
    10391    }
    10492
     93
     94    private static readonly ISymbolicExpressionGrammar grammar = new TypeCoherentExpressionGrammar();
    10595    private void insertNodeToolStripMenuItem_Click(object sender, EventArgs e) {
    106       if (currSelected == null || currSelected.SymbolicExpressionTreeNode is SymbolicExpressionTreeTerminalNode) return;
    107       var parent = currSelected.SymbolicExpressionTreeNode;
     96      if (currSelected == null || currSelected.Content is SymbolicExpressionTreeTerminalNode) return;
     97      var parent = currSelected.Content;
    10898
    10999      using (var dialog = new InsertNodeDialog()) {
    110         dialog.SetAllowedSymbols(parent.Grammar.AllowedSymbols.Where(s => s.Enabled && s.InitialFrequency > 0.0 && !(s is ProgramRootSymbol || s is StartSymbol || s is Defun)));
     100        dialog.SetAllowedSymbols(grammar.Symbols.Where(s => !(s is ProgramRootSymbol || s is StartSymbol || s is Defun || s is GroupSymbol))); // allow everything
    111101        dialog.ShowDialog(this);
    112102        if (dialog.DialogResult != DialogResult.OK) return;
     
    138128      if (currSelected == null) return;
    139129
    140       var node = (ISymbolicExpressionTreeNode)currSelected.SymbolicExpressionTreeNode.Clone();
    141       var originalNode = currSelected.SymbolicExpressionTreeNode;
     130      var node = (ISymbolicExpressionTreeNode)currSelected.Content.Clone();
     131      var originalNode = currSelected.Content;
    142132
    143133      ISymbolicExpressionTreeNode newNode = null;
     
    172162        foreach (var subtree in tempNode.IterateNodesPostfix()) {
    173163          var visualNode = GetVisualSymbolicExpressionTreeNode(subtree);
    174           visualNode.LineColor = Color.FromArgb(255, visualNode.LineColor); // reset the alpha value to 255
    175           visualNode.TextColor = Color.FromArgb(255, visualNode.TextColor);
     164          visualNode.LineColor = Color.Black;
     165          visualNode.TextColor = Color.Black;
    176166          if (subtree.Parent != null) {
    177167            var visualLine = GetVisualSymbolicExpressionTreeNodeConnection(subtree.Parent, subtree);
    178             visualLine.LineColor = Color.FromArgb(255, visualLine.LineColor);
    179           }
    180         }
    181       }
    182       tempNode = currSelected.SymbolicExpressionTreeNode;
     168            visualLine.LineColor = Color.Black;
     169          }
     170        }
     171      }
     172      tempNode = currSelected.Content;
    183173      foreach (var node in tempNode.IterateNodesPostfix()) {
    184174        var visualNode = GetVisualSymbolicExpressionTreeNode(node);
    185         visualNode.LineColor = Color.FromArgb(100, visualNode.LineColor);
    186         visualNode.TextColor = Color.FromArgb(100, visualNode.TextColor);
     175        visualNode.LineColor = Color.LightGray;
     176        visualNode.TextColor = Color.LightGray;
    187177        foreach (var subtree in node.Subtrees) {
    188178          var visualLine = GetVisualSymbolicExpressionTreeNodeConnection(node, subtree);
    189           visualLine.LineColor = Color.FromArgb(100, visualLine.LineColor);
    190         }
    191       }
    192       currSelected = null;
    193       Repaint();
     179          visualLine.LineColor = Color.LightGray;
     180        }
     181      }
     182      currSelected = null;
     183      RepaintNodes(); // no need to redo the layout and repaint everything since this operation does not change the tree
    194184    }
    195185    private void removeNodeToolStripMenuItem_Click(object sender, EventArgs e) {
    196       var node = currSelected.SymbolicExpressionTreeNode;
     186      var node = currSelected.Content;
    197187      if (node == tempNode) tempNode = null;
    198188      ModifyTree(Tree, node.Parent, node, null, removeSubtree: false);
     
    200190    }
    201191    private void removeSubtreeToolStripMenuItem_Click(object sender, EventArgs e) {
    202       var node = currSelected.SymbolicExpressionTreeNode;
     192      var node = currSelected.Content;
    203193      if (node.IterateNodesPostfix().Contains(tempNode)) tempNode = null;
    204194      ModifyTree(Tree, node.Parent, node, null, removeSubtree: true);
     
    209199      if (!(lastOp == EditOp.CopySubtree || lastOp == EditOp.CutSubtree)) return;
    210200      // check if the copied/cut node (stored in the tempNode) can be inserted as a child of the current selected node
    211       var node = currSelected.SymbolicExpressionTreeNode;
     201      var node = currSelected.Content;
    212202      if (node is ConstantTreeNode || node is VariableTreeNode) return;
    213203      // check if the currently selected node can accept the copied node as a child
     
    218208            if (tempNode.IterateNodesBreadth().Contains(node))
    219209              throw new ArgumentException();// cannot cut/paste a node into itself
    220             ModifyTree(Tree, tempNode.Parent, tempNode, null); //remove node from its original parent     
     210            ModifyTree(Tree, tempNode.Parent, tempNode, null); //remove node from its original parent
    221211            ModifyTree(Tree, node, null, tempNode); //insert it as a child to the new parent
    222212            break;
  • branches/Breadcrumbs/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/MathSymbolicDataAnalysisModelView.cs

    r9456 r11594  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/Breadcrumbs/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/MathSymbolicDataAnalysisModelView.designer.cs

    r9456 r11594  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/Breadcrumbs/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/Plugin.cs.frame

    r10037 r11594  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2626
    2727namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Views {
    28   [Plugin("HeuristicLab.Problems.DataAnalysis.Symbolic.Views","Provides views for symbolic data analysis problem classes.", "3.4.5.$WCREV$")]
     28  [Plugin("HeuristicLab.Problems.DataAnalysis.Symbolic.Views","Provides views for symbolic data analysis problem classes.", "3.4.6.$WCREV$")]
    2929  [PluginFile("HeuristicLab.Problems.DataAnalysis.Symbolic.Views-3.4.dll", PluginFileType.Assembly)]
    3030  [PluginFile("displayModelFrame.html", PluginFileType.Data)]
     
    3232  [PluginDependency("HeuristicLab.Collections", "3.3")]
    3333  [PluginDependency("HeuristicLab.Common", "3.3")]
     34  [PluginDependency("HeuristicLab.Common.Resources", "3.3")]
    3435  [PluginDependency("HeuristicLab.Core", "3.3")]
    3536  [PluginDependency("HeuristicLab.Core.Views", "3.3")]
  • branches/Breadcrumbs/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/Properties/AssemblyInfo.cs.frame

    r10037 r11594  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    3131[assembly: AssemblyCompany("")]
    3232[assembly: AssemblyProduct("HeuristicLab")]
    33 [assembly: AssemblyCopyright("(c) 2002-2013 HEAL")]
     33[assembly: AssemblyCopyright("(c) 2002-2014 HEAL")]
    3434[assembly: AssemblyTrademark("")]
    3535[assembly: AssemblyCulture("")]
     
    5353// by using the '*' as shown below:
    5454[assembly: AssemblyVersion("3.4.0.0")]
    55 [assembly: AssemblyFileVersion("3.4.5.$WCREV$")]
     55[assembly: AssemblyFileVersion("3.4.6.$WCREV$")]
  • branches/Breadcrumbs/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/RunCollectionVariableImpactView.Designer.cs

    r9456 r11594  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/Breadcrumbs/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/RunCollectionVariableImpactView.cs

    r9456 r11594  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2222using System;
    2323using System.Collections.Generic;
     24using System.ComponentModel;
    2425using System.Drawing;
    2526using System.Linq;
     
    6667    private void RegisterRunEvents(IEnumerable<IRun> runs) {
    6768      foreach (IRun run in runs)
    68         run.Changed += Run_Changed;
     69        run.PropertyChanged += Run_PropertyChanged;
    6970    }
    7071    private void DeregisterRunEvents(IEnumerable<IRun> runs) {
    7172      foreach (IRun run in runs)
    72         run.Changed -= Run_Changed;
     73        run.PropertyChanged -= Run_PropertyChanged;
    7374    }
    7475    private void Content_ItemsAdded(object sender, HeuristicLab.Collections.CollectionItemsChangedEventArgs<IRun> e) {
     
    8889      if (!Content.UpdateOfRunsInProgress) UpdateData();
    8990    }
    90     private void Run_Changed(object sender, EventArgs e) {
    91       if (!Content.UpdateOfRunsInProgress) UpdateData();
     91    private void Run_PropertyChanged(object sender, PropertyChangedEventArgs e) {
     92      if (!Content.UpdateOfRunsInProgress && e.PropertyName == "Visible")
     93        UpdateData();
    9294    }
    9395    #endregion
  • branches/Breadcrumbs/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/Symbols/ConstantView.Designer.cs

    r9456 r11594  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/Breadcrumbs/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/Symbols/ConstantView.cs

    r9456 r11594  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/Breadcrumbs/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/Symbols/LaggedVariableView.Designer.cs

    r9456 r11594  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/Breadcrumbs/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/Symbols/LaggedVariableView.cs

    r9456 r11594  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/Breadcrumbs/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/Symbols/TimeLagView.Designer.cs

    r9456 r11594  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/Breadcrumbs/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/Symbols/TimeLagView.cs

    r9456 r11594  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/Breadcrumbs/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/Symbols/VariableConditionView.Designer.cs

    r9456 r11594  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/Breadcrumbs/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/Symbols/VariableConditionView.cs

    r9456 r11594  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    5454    private void RegisterVariableNamesViewContentEvents() {
    5555      variableNamesView.Content.ItemsAdded += new CollectionItemsChangedEventHandler<StringValue>(VariableNames_Changed);
    56       variableNamesView.Content.ItemsRemoved += new CollectionItemsChangedEventHandler<StringValue>(VariableNames_Changed);
     56      variableNamesView.Content.ItemsRemoved += new CollectionItemsChangedEventHandler<StringValue>(VariableNames_Removed);
    5757      variableNamesView.Content.CheckedItemsChanged += new CollectionItemsChangedEventHandler<StringValue>(VariableNames_Changed);
    5858      variableNamesView.Content.CollectionReset += new CollectionItemsChangedEventHandler<StringValue>(VariableNames_Changed);
     
    6464    private void DeregisterVariableNamesViewContentEvents() {
    6565      variableNamesView.Content.ItemsAdded -= new CollectionItemsChangedEventHandler<StringValue>(VariableNames_Changed);
    66       variableNamesView.Content.ItemsRemoved -= new CollectionItemsChangedEventHandler<StringValue>(VariableNames_Changed);
     66      variableNamesView.Content.ItemsRemoved -= new CollectionItemsChangedEventHandler<StringValue>(VariableNames_Removed);
    6767      variableNamesView.Content.CheckedItemsChanged -= new CollectionItemsChangedEventHandler<StringValue>(VariableNames_Changed);
    6868      variableNamesView.Content.CollectionReset -= new CollectionItemsChangedEventHandler<StringValue>(VariableNames_Changed);
     
    153153    }
    154154
     155    private void VariableNames_Removed(object sender, CollectionItemsChangedEventArgs<StringValue> e) {
     156      foreach (var newVar in e.Items)
     157        newVar.ValueChanged -= new EventHandler(Variable_ValueChanged);
     158      UpdateContent();
     159    }
     160
    155161    private void Variable_ValueChanged(object sender, EventArgs e) {
    156162      UpdateContent();
  • branches/Breadcrumbs/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/Symbols/VariableView.Designer.cs

    r9456 r11594  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/Breadcrumbs/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/Symbols/VariableView.cs

    r9456 r11594  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    5555    private void RegisterVariableNamesViewContentEvents() {
    5656      variableNamesView.Content.ItemsAdded += new CollectionItemsChangedEventHandler<StringValue>(VariableNames_Changed);
    57       variableNamesView.Content.ItemsRemoved += new CollectionItemsChangedEventHandler<StringValue>(VariableNames_Changed);
     57      variableNamesView.Content.ItemsRemoved += new CollectionItemsChangedEventHandler<StringValue>(VariableNames_Removed);
    5858      variableNamesView.Content.CheckedItemsChanged += new CollectionItemsChangedEventHandler<StringValue>(VariableNames_Changed);
    5959      variableNamesView.Content.CollectionReset += new CollectionItemsChangedEventHandler<StringValue>(VariableNames_Changed);
     
    6666    private void DeregisterVariableNamesViewContentEvents() {
    6767      variableNamesView.Content.ItemsAdded -= new CollectionItemsChangedEventHandler<StringValue>(VariableNames_Changed);
    68       variableNamesView.Content.ItemsRemoved -= new CollectionItemsChangedEventHandler<StringValue>(VariableNames_Changed);
     68      variableNamesView.Content.ItemsRemoved -= new CollectionItemsChangedEventHandler<StringValue>(VariableNames_Removed);
    6969      variableNamesView.Content.CheckedItemsChanged -= new CollectionItemsChangedEventHandler<StringValue>(VariableNames_Changed);
    7070      variableNamesView.Content.CollectionReset -= new CollectionItemsChangedEventHandler<StringValue>(VariableNames_Changed);
     
    118118    }
    119119
     120    private void VariableNames_Removed(object sender, CollectionItemsChangedEventArgs<StringValue> e) {
     121      foreach (var newVar in e.Items)
     122        newVar.ValueChanged -= new EventHandler(Variable_ValueChanged);
     123      UpdateContent();
     124    }
     125
    120126    private void Variable_ValueChanged(object sender, EventArgs e) {
    121127      UpdateContent();
  • branches/Breadcrumbs/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/TextualSymbolicDataAnalysisModelView.cs

    r9456 r11594  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/Breadcrumbs/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/TextualSymbolicDataAnalysisModelView.designer.cs

    r9456 r11594  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    4848      this.SuspendLayout();
    4949      //
    50       // expressionTreeView
     50      // symbolicExpressionTreeView
    5151      //
    5252      this.symbolicExpressionTreeView.AllowDrop = true;
     
    5555      this.symbolicExpressionTreeView.Dock = System.Windows.Forms.DockStyle.Fill;
    5656      this.symbolicExpressionTreeView.Location = new System.Drawing.Point(0, 0);
    57       this.symbolicExpressionTreeView.Name = "expressionTreeView";
     57      this.symbolicExpressionTreeView.Name = "symbolicExpressionTreeView";
    5858      this.symbolicExpressionTreeView.ReadOnly = false;
    5959      this.symbolicExpressionTreeView.Size = new System.Drawing.Size(352, 413);
    6060      this.symbolicExpressionTreeView.TabIndex = 0;
    6161      //
    62       // SymbolicExpressionModelView
     62      // TextualSymbolicDataAnalysisModelView
    6363      //
    6464      this.AllowDrop = true;
    65       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    6665      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
    6766      this.Controls.Add(this.symbolicExpressionTreeView);
    68       this.Name = "SymbolicExpressionModelView";
     67      this.Name = "TextualSymbolicDataAnalysisModelView";
    6968      this.Size = new System.Drawing.Size(352, 413);
    7069      this.ResumeLayout(false);
  • branches/Breadcrumbs/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/TreeEditDialogs/SymbolicExpressionTreeConstantNodeEditDialog.Designer.cs

    r9456 r11594  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    6767      // oldValueTextBox
    6868      //
    69       this.oldValueTextBox.Location = new System.Drawing.Point(123, 6);
     69      this.oldValueTextBox.Location = new System.Drawing.Point(106, 6);
    7070      this.oldValueTextBox.Name = "oldValueTextBox";
    7171      this.oldValueTextBox.ReadOnly = true;
     
    7575      // newValueTextBox
    7676      //
    77       this.newValueTextBox.Location = new System.Drawing.Point(123, 42);
     77      this.newValueTextBox.Location = new System.Drawing.Point(106, 32);
    7878      this.newValueTextBox.Name = "newValueTextBox";
    7979      this.newValueTextBox.Size = new System.Drawing.Size(131, 20);
     
    8686      //
    8787      this.newValueLabel.AutoSize = true;
    88       this.newValueLabel.Location = new System.Drawing.Point(12, 45);
     88      this.newValueLabel.Location = new System.Drawing.Point(12, 35);
    8989      this.newValueLabel.Name = "newValueLabel";
    9090      this.newValueLabel.Size = new System.Drawing.Size(59, 13);
     
    101101      //
    102102      this.okButton.DialogResult = System.Windows.Forms.DialogResult.OK;
    103       this.okButton.Location = new System.Drawing.Point(15, 79);
     103      this.okButton.Location = new System.Drawing.Point(81, 66);
    104104      this.okButton.Name = "okButton";
    105105      this.okButton.Size = new System.Drawing.Size(75, 23);
     
    113113      this.cancelButton.CausesValidation = false;
    114114      this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
    115       this.cancelButton.Location = new System.Drawing.Point(179, 79);
     115      this.cancelButton.Location = new System.Drawing.Point(162, 66);
    116116      this.cancelButton.Name = "cancelButton";
    117117      this.cancelButton.Size = new System.Drawing.Size(75, 23);
     
    127127      this.AutoSize = true;
    128128      this.CancelButton = this.cancelButton;
    129       this.ClientSize = new System.Drawing.Size(269, 116);
     129      this.ClientSize = new System.Drawing.Size(248, 101);
    130130      this.ControlBox = false;
    131131      this.Controls.Add(this.cancelButton);
  • branches/Breadcrumbs/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/TreeEditDialogs/SymbolicExpressionTreeConstantNodeEditDialog.cs

    r9456 r11594  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/Breadcrumbs/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/TreeEditDialogs/SymbolicExpressionTreeNodeInsertDialog.Designer.cs

    r9456 r11594  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    6363      //
    6464      this.nodeSymbolLabel.AutoSize = true;
    65       this.nodeSymbolLabel.Location = new System.Drawing.Point(13, 13);
     65      this.nodeSymbolLabel.Location = new System.Drawing.Point(19, 13);
    6666      this.nodeSymbolLabel.Name = "nodeSymbolLabel";
    6767      this.nodeSymbolLabel.Size = new System.Drawing.Size(41, 13);
     
    7373      this.allowedSymbolsCombo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
    7474      this.allowedSymbolsCombo.FormattingEnabled = true;
    75       this.allowedSymbolsCombo.Location = new System.Drawing.Point(120, 10);
     75      this.allowedSymbolsCombo.Location = new System.Drawing.Point(101, 10);
    7676      this.allowedSymbolsCombo.Name = "allowedSymbolsCombo";
    77       this.allowedSymbolsCombo.Size = new System.Drawing.Size(108, 21);
     77      this.allowedSymbolsCombo.Size = new System.Drawing.Size(127, 21);
    7878      this.allowedSymbolsCombo.TabIndex = 1;
    7979      this.allowedSymbolsCombo.SelectedIndexChanged += new System.EventHandler(this.allowedSymbolsCombo_SelectedIndexChanged);
     
    8383      //
    8484      this.variableWeightLabel.AutoSize = true;
    85       this.variableWeightLabel.Location = new System.Drawing.Point(13, 44);
     85      this.variableWeightLabel.Location = new System.Drawing.Point(19, 40);
    8686      this.variableWeightLabel.Name = "variableWeightLabel";
    8787      this.variableWeightLabel.Size = new System.Drawing.Size(41, 13);
     
    9393      //
    9494      this.variableNameLabel.AutoSize = true;
    95       this.variableNameLabel.Location = new System.Drawing.Point(13, 74);
     95      this.variableNameLabel.Location = new System.Drawing.Point(19, 66);
    9696      this.variableNameLabel.Name = "variableNameLabel";
    9797      this.variableNameLabel.Size = new System.Drawing.Size(35, 13);
     
    104104      this.variableNamesCombo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
    105105      this.variableNamesCombo.FormattingEnabled = true;
    106       this.variableNamesCombo.Location = new System.Drawing.Point(120, 71);
     106      this.variableNamesCombo.Location = new System.Drawing.Point(101, 63);
    107107      this.variableNamesCombo.Name = "variableNamesCombo";
    108       this.variableNamesCombo.Size = new System.Drawing.Size(108, 21);
     108      this.variableNamesCombo.Size = new System.Drawing.Size(127, 21);
    109109      this.variableNamesCombo.TabIndex = 5;
    110110      this.variableNamesCombo.Visible = false;
     
    112112      // variableWeightTextBox
    113113      //
    114       this.variableWeightTextBox.Location = new System.Drawing.Point(120, 41);
     114      this.variableWeightTextBox.Location = new System.Drawing.Point(101, 37);
    115115      this.variableWeightTextBox.Name = "variableWeightTextBox";
    116       this.variableWeightTextBox.Size = new System.Drawing.Size(108, 20);
     116      this.variableWeightTextBox.Size = new System.Drawing.Size(127, 20);
    117117      this.variableWeightTextBox.TabIndex = 6;
    118118      this.variableWeightTextBox.Text = "0.0";
     
    122122      // constantValueTextBox
    123123      //
    124       this.constantValueTextBox.Location = new System.Drawing.Point(120, 41);
     124      this.constantValueTextBox.Location = new System.Drawing.Point(101, 37);
    125125      this.constantValueTextBox.Name = "constantValueTextBox";
    126       this.constantValueTextBox.Size = new System.Drawing.Size(108, 20);
     126      this.constantValueTextBox.Size = new System.Drawing.Size(127, 20);
    127127      this.constantValueTextBox.TabIndex = 7;
    128128      this.constantValueTextBox.Text = "0.0";
     
    133133      //
    134134      this.constantValueLabel.AutoSize = true;
    135       this.constantValueLabel.Location = new System.Drawing.Point(13, 44);
     135      this.constantValueLabel.Location = new System.Drawing.Point(19, 40);
    136136      this.constantValueLabel.Name = "constantValueLabel";
    137137      this.constantValueLabel.Size = new System.Drawing.Size(34, 13);
     
    149149      //
    150150      this.okButton.DialogResult = System.Windows.Forms.DialogResult.OK;
    151       this.okButton.Location = new System.Drawing.Point(12, 112);
     151      this.okButton.Location = new System.Drawing.Point(72, 98);
    152152      this.okButton.Name = "okButton";
    153153      this.okButton.Size = new System.Drawing.Size(75, 23);
     
    160160      //
    161161      this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
    162       this.cancelButton.Location = new System.Drawing.Point(153, 112);
     162      this.cancelButton.Location = new System.Drawing.Point(153, 98);
    163163      this.cancelButton.Name = "cancelButton";
    164164      this.cancelButton.Size = new System.Drawing.Size(75, 23);
     
    173173      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    174174      this.CancelButton = this.cancelButton;
    175       this.ClientSize = new System.Drawing.Size(240, 147);
     175      this.ClientSize = new System.Drawing.Size(241, 133);
    176176      this.ControlBox = false;
    177177      this.Controls.Add(this.cancelButton);
  • branches/Breadcrumbs/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/TreeEditDialogs/SymbolicExpressionTreeNodeInsertDialog.cs

    r9456 r11594  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/Breadcrumbs/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/TreeEditDialogs/SymbolicExpressionTreeVariableNodeEditDialog.Designer.cs

    r9456 r11594  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    6161      //
    6262      this.originalValueLabel.AutoSize = true;
    63       this.originalValueLabel.Location = new System.Drawing.Point(12, 48);
     63      this.originalValueLabel.Location = new System.Drawing.Point(6, 42);
    6464      this.originalValueLabel.Name = "originalValueLabel";
    6565      this.originalValueLabel.Size = new System.Drawing.Size(72, 13);
     
    6969      // oldValueTextBox
    7070      //
    71       this.oldValueTextBox.Location = new System.Drawing.Point(123, 45);
     71      this.oldValueTextBox.Location = new System.Drawing.Point(101, 39);
    7272      this.oldValueTextBox.Name = "oldValueTextBox";
    7373      this.oldValueTextBox.ReadOnly = true;
     
    7777      // newValueTextBox
    7878      //
    79       this.newValueTextBox.Location = new System.Drawing.Point(123, 82);
     79      this.newValueTextBox.Location = new System.Drawing.Point(101, 65);
    8080      this.newValueTextBox.Name = "newValueTextBox";
    8181      this.newValueTextBox.Size = new System.Drawing.Size(131, 20);
     
    8888      //
    8989      this.newValueLabel.AutoSize = true;
    90       this.newValueLabel.Location = new System.Drawing.Point(12, 85);
     90      this.newValueLabel.Location = new System.Drawing.Point(6, 68);
    9191      this.newValueLabel.Name = "newValueLabel";
    9292      this.newValueLabel.Size = new System.Drawing.Size(59, 13);
     
    103103      //
    104104      this.variableNameLabel.AutoSize = true;
    105       this.variableNameLabel.Location = new System.Drawing.Point(12, 12);
     105      this.variableNameLabel.Location = new System.Drawing.Point(6, 15);
    106106      this.variableNameLabel.Name = "variableNameLabel";
    107107      this.variableNameLabel.Size = new System.Drawing.Size(76, 13);
     
    114114      this.variableNamesCombo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
    115115      this.variableNamesCombo.FormattingEnabled = true;
    116       this.variableNamesCombo.Location = new System.Drawing.Point(123, 9);
     116      this.variableNamesCombo.Location = new System.Drawing.Point(101, 12);
    117117      this.variableNamesCombo.Name = "variableNamesCombo";
    118118      this.variableNamesCombo.Size = new System.Drawing.Size(131, 21);
     
    126126      //
    127127      this.okButton.DialogResult = System.Windows.Forms.DialogResult.OK;
    128       this.okButton.Location = new System.Drawing.Point(15, 119);
     128      this.okButton.Location = new System.Drawing.Point(75, 98);
    129129      this.okButton.Name = "okButton";
    130130      this.okButton.Size = new System.Drawing.Size(75, 23);
     
    138138      this.cancelButton.CausesValidation = false;
    139139      this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
    140       this.cancelButton.Location = new System.Drawing.Point(179, 119);
     140      this.cancelButton.Location = new System.Drawing.Point(156, 98);
    141141      this.cancelButton.Name = "cancelButton";
    142142      this.cancelButton.Size = new System.Drawing.Size(75, 23);
     
    152152      this.AutoSize = true;
    153153      this.CancelButton = this.cancelButton;
    154       this.ClientSize = new System.Drawing.Size(269, 154);
     154      this.ClientSize = new System.Drawing.Size(244, 134);
    155155      this.ControlBox = false;
    156156      this.Controls.Add(this.cancelButton);
  • branches/Breadcrumbs/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/TreeEditDialogs/SymbolicExpressionTreeVariableNodeEditDialog.cs

    r9456 r11594  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
Note: See TracChangeset for help on using the changeset viewer.