Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
06/12/17 14:11:43 (7 years ago)
Author:
pkimmesw
Message:

#2665 Fixed bias 0 issue, PushExpressionFrequencyAnalyzer, Fixed probability for ERC settings, Fixed enable/disable instructions, Added expression descriptions

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problems.ProgramSynthesis/Push/Views/ExpressionSelectionView.cs

    r15017 r15032  
    55
    66namespace HeuristicLab.Problems.ProgramSynthesis.Push.Views {
    7   using System;
    87  using System.Collections.Generic;
    98  using System.Linq;
     
    1110
    1211  using HeuristicLab.Problems.ProgramSynthesis.Push.Configuration;
     12  using HeuristicLab.Problems.ProgramSynthesis.Push.Extensions;
    1313
    1414  using Stack;
     
    5252
    5353      if (e.Node.Parent == null) {
    54         Content.SetStack(stackType, e.Node.Checked, true, false);
     54        Content.SetStack(stackType, e.Node.Checked);
    5555        SetStackNodeText(e.Node);
    5656        foreach (var subNode in e.Node.Nodes.OfType<TreeNode>().Where(n => n.Checked != e.Node.Checked))
     
    6262        // enable/disable stack if no or at least one expression is enabled
    6363        if ((e.Node.Checked && !e.Node.Parent.Checked) ||
    64             (!e.Node.Checked && !e.Node.Parent.Nodes.OfType<TreeNode>().Any(n => n.Checked))) {
    65           Content.SetStack(stackType, e.Node.Checked, false, false);
     64            (!e.Node.Checked && e.Node.Parent.Nodes.OfType<TreeNode>().All(n => !n.Checked))) {
    6665          e.Node.Parent.Checked = e.Node.Checked;
    6766        }
     
    9089      expressionsTreeView.Nodes.Clear();
    9190
    92       var treeNodes = GetTreeNodes(Content.EnabledExpressions).ToArray();
     91      var treeNodes = GetTreeNodes(Content.EnabledExpressions)
     92        .OrderBy(x => x.Text)
     93        .ToArray();
     94
    9395      expressionsTreeView.Nodes.AddRange(treeNodes);
    9496    }
    9597
    96     private IEnumerable<TreeNode> GetTreeNodes(IList<string> enabledExpressions) {
     98    private IEnumerable<TreeNode> GetTreeNodes(IReadOnlyList<string> enabledExpressions) {
    9799      foreach (var stackType in ExpressionTable.StackTypeToNamesTable.Keys) {
    98100        var stackTreeNode = new TreeNode {
     
    107109
    108110        var expressionNodes = stackExpressions
     111          .Where(name => {
     112            var type = ExpressionTable.NameToTypeTable[name];
     113            var attribute = ExpressionTable.TypeToAttributeTable[type];
     114
     115            return !attribute.IsHidden;
     116          })
    109117          .OrderBy(name => name)
    110118          .Select(name => new TreeNode {
     
    113121            Checked = enabledStackExpressions.Contains(name),
    114122          }).ToArray();
     123
     124        foreach (var node in expressionNodes) {
     125          var type = ExpressionTable.NameToTypeTable[node.Text];
     126          var attribute = ExpressionTable.TypeToAttributeTable[type];
     127
     128          node.ToolTipText = attribute.Description;
     129        }
    115130
    116131        stackTreeNode.Nodes.AddRange(expressionNodes);
     
    121136
    122137    private void SetStackNodeText(TreeNode node) {
    123       var stackType = (StackTypes)node.Tag;
    124       var stackExpressions = ExpressionTable.StackTypeToNamesTable[stackType];
     138      var stackTypes = (StackTypes)node.Tag;
     139      var stackExpressions = ExpressionTable.StackTypeToNamesTable[stackTypes];
    125140      var enabledStackExpressions = Content.EnabledExpressions.Intersect(stackExpressions).ToList();
     141      var stackNames = string.Join(", ", stackTypes.ToValues().Select(type => type.ToString()).OrderBy(x => x));
    126142
    127143      node.Text = string.Format(
    128144                "{0} ({1}/{2})",
    129                 Enum.GetName(typeof(StackTypes), stackType),
     145                stackNames,
    130146                enabledStackExpressions.Count,
    131                 ExpressionTable.StackTypeToNamesTable[stackType].Count);
     147                stackExpressions.Count);
    132148    }
    133149  }
Note: See TracChangeset for help on using the changeset viewer.