Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/18/11 12:50:28 (13 years ago)
Author:
gkronber
Message:

#1418 Implemented variable view that allows to add and remove variable strings (ported from external evaluation views). Implemented formatter and grammar for external evaluation plugin. Fixed bug in symbolic expression view. Fixed bug in run collection variable impact view. Removed unused plugin HeuristicLab.Problems.ExternalEvaluation.GP.Views. Renamed files.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/Symbols/VariableView.cs

    r5693 r5750  
    2121
    2222using System;
     23using System.Linq;
    2324using System.Windows.Forms;
    2425using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views;
    2526using HeuristicLab.MainForm;
    2627using HeuristicLab.MainForm.WindowsForms;
     28using HeuristicLab.Core;
     29using HeuristicLab.Data;
     30using HeuristicLab.Core.Views;
     31using HeuristicLab.Collections;
    2732
    2833
    2934namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Views {
     35
    3036  [View("Variable View")]
    3137  [Content(typeof(Variable), true)]
    3238  public partial class VariableView : SymbolView {
     39    private CheckedItemCollectionView<StringValue> variableNamesView;
     40
    3341    public new Variable Content {
    3442      get { return (Variable)base.Content; }
     
    3846    public VariableView() {
    3947      InitializeComponent();
     48      variableNamesView = new CheckedItemCollectionView<StringValue>();
     49      variableNamesView.Dock = DockStyle.Fill;
     50      variableNamesTabPage.Controls.Add(variableNamesView);
     51      variableNamesView.Content = new CheckedItemCollection<StringValue>();
     52
     53      RegisterVariableNamesViewContentEvents();
    4054    }
     55
     56    private void RegisterVariableNamesViewContentEvents() {
     57      variableNamesView.Content.ItemsAdded += new CollectionItemsChangedEventHandler<StringValue>(variableNames_Changed);
     58      variableNamesView.Content.ItemsRemoved += new CollectionItemsChangedEventHandler<StringValue>(variableNames_Changed);
     59      variableNamesView.Content.CheckedItemsChanged += new CollectionItemsChangedEventHandler<StringValue>(variableNames_Changed);
     60      variableNamesView.Content.CollectionReset += new CollectionItemsChangedEventHandler<StringValue>(variableNames_Changed);
     61    }
     62
     63    private void DeregisterVariableNamesViewContentEvents() {
     64      variableNamesView.Content.ItemsAdded -= new CollectionItemsChangedEventHandler<StringValue>(variableNames_Changed);
     65      variableNamesView.Content.ItemsRemoved -= new CollectionItemsChangedEventHandler<StringValue>(variableNames_Changed);
     66      variableNamesView.Content.CheckedItemsChanged -= new CollectionItemsChangedEventHandler<StringValue>(variableNames_Changed);
     67      variableNamesView.Content.CollectionReset -= new CollectionItemsChangedEventHandler<StringValue>(variableNames_Changed);
     68    }
     69
    4170
    4271    protected override void RegisterContentEvents() {
     
    74103
    75104    #region control event handlers
     105    private void variableNames_Changed(object sender, CollectionItemsChangedEventArgs<StringValue> args) {
     106      if (Content != null) {
     107        Content.VariableNames = variableNamesView.Content.CheckedItems.Select(x => x.Value).ToList();
     108      }
     109    }
     110
    76111    private void weightMuTextBox_TextChanged(object sender, EventArgs e) {
    77112      double nu;
     
    121156        additiveWeightChangeSigmaTextBox.Text = string.Empty;
    122157        multiplicativeWeightChangeSigmaTextBox.Text = string.Empty;
     158        // temporarily deregister to prevent circular calling of events
     159        DeregisterVariableNamesViewContentEvents();
     160        variableNamesView.Content.Clear();
     161        RegisterVariableNamesViewContentEvents();
    123162      } else {
     163        var existingEntries = variableNamesView.Content.Select(x => x.Value);
     164       
     165        // temporarily deregister to prevent circular calling of events
     166        DeregisterVariableNamesViewContentEvents();
     167        // add additional entries
     168        foreach (var variableName in Content.VariableNames.Except(existingEntries)) {
     169          variableNamesView.Content.Add(new StringValue(variableName), true);
     170        }
     171        RegisterVariableNamesViewContentEvents();
     172
    124173        weightInitializationMuTextBox.Text = Content.WeightMu.ToString();
    125174        weightInitializationSigmaTextBox.Text = Content.WeightSigma.ToString();
Note: See TracChangeset for help on using the changeset viewer.