Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/04/14 18:35:25 (9 years ago)
Author:
abeham
Message:

#2120: merged to stable

Location:
stable
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • stable

  • stable/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionBoxPlotView.cs

    r11170 r11522  
    2222using System;
    2323using System.Collections.Generic;
     24using System.ComponentModel;
    2425using System.Linq;
    2526using System.Windows.Forms;
     
    9293    protected virtual void RegisterRunEvents(IEnumerable<IRun> runs) {
    9394      foreach (IRun run in runs)
    94         run.Changed += new EventHandler(run_Changed);
     95        run.PropertyChanged += run_PropertyChanged;
    9596    }
    9697    protected virtual void DeregisterRunEvents(IEnumerable<IRun> runs) {
    9798      foreach (IRun run in runs)
    98         run.Changed -= new EventHandler(run_Changed);
     99        run.PropertyChanged -= run_PropertyChanged;
    99100    }
    100101
     
    133134      }
    134135    }
    135     private void run_Changed(object sender, EventArgs e) {
     136    private void run_PropertyChanged(object sender, PropertyChangedEventArgs e) {
    136137      if (InvokeRequired)
    137         this.Invoke(new EventHandler(run_Changed), sender, e);
     138        this.Invoke((Action<object, PropertyChangedEventArgs>)run_PropertyChanged, sender, e);
    138139      else if (!suppressUpdates) {
    139         UpdateDataPoints();
     140        if (e.PropertyName == "Visible")
     141          UpdateDataPoints();
    140142      }
    141143    }
  • stable/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionBubbleChartView.cs

    r11170 r11522  
    2222using System;
    2323using System.Collections.Generic;
     24using System.ComponentModel;
    2425using System.Drawing;
    2526using System.Linq;
     
    116117    protected virtual void RegisterRunEvents(IEnumerable<IRun> runs) {
    117118      foreach (IRun run in runs)
    118         run.Changed += new EventHandler(run_Changed);
     119        run.PropertyChanged += run_PropertyChanged;
    119120    }
    120121    protected virtual void DeregisterRunEvents(IEnumerable<IRun> runs) {
    121122      foreach (IRun run in runs)
    122         run.Changed -= new EventHandler(run_Changed);
     123        run.PropertyChanged -= run_PropertyChanged;
    123124    }
    124125
     
    133134      RegisterRunEvents(e.Items);
    134135    }
    135     private void run_Changed(object sender, EventArgs e) {
     136    private void run_PropertyChanged(object sender, PropertyChangedEventArgs e) {
    136137      if (suppressUpdates) return;
    137138      if (InvokeRequired)
    138         this.Invoke(new EventHandler(run_Changed), sender, e);
     139        this.Invoke((Action<object, PropertyChangedEventArgs>)run_PropertyChanged, sender, e);
    139140      else {
    140         IRun run = (IRun)sender;
    141         UpdateRun(run);
    142         UpdateCursorInterval();
    143         chart.ChartAreas[0].RecalculateAxesScale();
    144         UpdateAxisLabels();
     141        if (e.PropertyName == "Color" || e.PropertyName == "Visible") {
     142          IRun run = (IRun)sender;
     143          UpdateRun(run);
     144          UpdateCursorInterval();
     145          chart.ChartAreas[0].RecalculateAxesScale();
     146          UpdateAxisLabels();
     147        }
    145148      }
    146149    }
     
    670673      if (xAxisValue != null)
    671674        xAxis.Title = xAxisValue;
    672       if(yAxisValue != null)
    673       yAxis.Title = yAxisValue;
     675      if (yAxisValue != null)
     676        yAxis.Title = yAxisValue;
    674677    }
    675678
  • stable/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionChartAggregationView.cs

    r11170 r11522  
    2222using System;
    2323using System.Collections.Generic;
     24using System.ComponentModel;
    2425using System.Linq;
    2526using System.Windows.Forms;
     
    111112
    112113    private void RegisterRunEvents(IRun run) {
    113       run.Changed += new System.EventHandler(run_Changed);
     114      run.PropertyChanged += run_PropertyChanged;
    114115    }
    115116    private void DeregisterRunEvents(IRun run) {
    116       run.Changed -= new System.EventHandler(run_Changed);
    117     }
    118     private void run_Changed(object sender, EventArgs e) {
     117      run.PropertyChanged -= run_PropertyChanged;
     118    }
     119    private void run_PropertyChanged(object sender, PropertyChangedEventArgs e) {
    119120      if (suppressUpdates) return;
    120       var run = (IRun)sender;
    121       UpdateRuns(new IRun[] { run });
     121      if (InvokeRequired) {
     122        Invoke((Action<object, PropertyChangedEventArgs>)run_PropertyChanged, sender, e);
     123      } else {
     124        var run = (IRun)sender;
     125        if (e.PropertyName == "Color" || e.PropertyName == "Visible")
     126          UpdateRuns(new IRun[] { run });
     127      }
    122128    }
    123129    #endregion
  • stable/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionTableView.cs

    r11170 r11522  
    2222using System;
    2323using System.Collections.Generic;
     24using System.ComponentModel;
    2425using System.Linq;
    2526using System.Windows.Forms;
     
    7071    private void RegisterRunEvents(IEnumerable<IRun> runs) {
    7172      foreach (IRun run in runs)
    72         run.Changed += new EventHandler(run_Changed);
     73        run.PropertyChanged += run_PropertyChanged;
    7374    }
    7475    protected override void DeregisterContentEvents() {
     
    8384    private void DeregisterRunEvents(IEnumerable<IRun> runs) {
    8485      foreach (IRun run in runs)
    85         run.Changed -= new EventHandler(run_Changed);
     86        run.PropertyChanged -= run_PropertyChanged;
    8687    }
    8788    private void Content_CollectionReset(object sender, HeuristicLab.Collections.CollectionItemsChangedEventArgs<IRun> e) {
     
    100101      else UpdateCaption();
    101102    }
    102     private void run_Changed(object sender, EventArgs e) {
     103    private void run_PropertyChanged(object sender, PropertyChangedEventArgs e) {
    103104      if (suppressUpdates) return;
    104105      if (InvokeRequired)
    105         this.Invoke(new EventHandler(run_Changed), sender, e);
     106        this.Invoke((Action<object, PropertyChangedEventArgs>)run_PropertyChanged, sender, e);
    106107      else {
    107108        IRun run = (IRun)sender;
    108         UpdateRun(run);
     109        if (e.PropertyName == "Color" || e.PropertyName == "Visible")
     110          UpdateRun(run);
    109111      }
    110112    }
  • stable/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionView.cs

    r11170 r11522  
    2323using System.Collections;
    2424using System.Collections.Generic;
     25using System.ComponentModel;
    2526using System.Drawing;
    2627using System.Linq;
     
    7980      item.ItemImageChanged -= new EventHandler(Item_ItemImageChanged);
    8081      item.ToStringChanged -= new EventHandler(Item_ToStringChanged);
    81       item.Changed -= new EventHandler(Item_Changed);
     82      item.PropertyChanged -= Item_PropertyChanged;
    8283    }
    8384    private void RegisterItemEvents(IRun item) {
    8485      item.ItemImageChanged += new EventHandler(Item_ItemImageChanged);
    8586      item.ToStringChanged += new EventHandler(Item_ToStringChanged);
    86       item.Changed += new EventHandler(Item_Changed);
     87      item.PropertyChanged += Item_PropertyChanged;
    8788    }
    8889
     
    385386      try {
    386387        RunCollection.Modify();
    387       }
    388       finally {
     388      } finally {
    389389        ReadOnly = false;
    390390      }
     
    462462      }
    463463    }
    464     private void Item_Changed(object sender, EventArgs e) {
     464    private void Item_PropertyChanged(object sender, PropertyChangedEventArgs e) {
    465465      if (InvokeRequired)
    466         this.Invoke(new EventHandler(Item_Changed), sender, e);
     466        this.Invoke((Action<object, PropertyChangedEventArgs>)Item_PropertyChanged, sender, e);
    467467      else {
    468468        IRun run = (IRun)sender;
    469         UpdateRun(run);
     469        if (e.PropertyName == "Color" || e.PropertyName == "Visible")
     470          UpdateRun(run);
    470471      }
    471472    }
  • stable/HeuristicLab.Optimization.Views/3.3/RunView.cs

    r11170 r11522  
    2121
    2222using System;
     23using System.Collections.Generic;
     24using System.ComponentModel;
     25using System.Linq;
    2326using System.Windows.Forms;
     27using HeuristicLab.Collections;
    2428using HeuristicLab.Common;
    2529using HeuristicLab.Core;
     
    3438  [Content(typeof(IRun), true)]
    3539  public sealed partial class RunView : NamedItemView {
     40    private readonly Dictionary<string, ListViewItem> parametersItemToListViewItem;
     41    private readonly Dictionary<string, ListViewItem> resultsItemToListViewItem;
    3642    /// <summary>
    3743    /// Gets or sets the variable to represent visually.
     
    4955    public RunView() {
    5056      InitializeComponent();
     57      parametersItemToListViewItem = new Dictionary<string, ListViewItem>();
     58      resultsItemToListViewItem = new Dictionary<string, ListViewItem>();
    5159    }
    5260
    5361    protected override void RegisterContentEvents() {
    5462      base.RegisterContentEvents();
    55       Content.Changed += new EventHandler(Content_Changed);
     63      Content.PropertyChanged += Content_PropertyChanged;
     64      RegisterContentParametersEvents();
     65      RegisterContentResultsEents();
     66    }
     67    private void RegisterContentParametersEvents() {
     68      Content.Parameters.ItemsAdded += ParametersOnItemsChanged;
     69      Content.Parameters.ItemsRemoved += ParametersOnItemsRemoved;
     70      Content.Parameters.ItemsReplaced += ParametersOnItemsChanged;
     71      Content.Parameters.CollectionReset += ParametersOnItemsChanged;
     72    }
     73    private void RegisterContentResultsEents() {
     74      Content.Results.ItemsAdded += ResultsOnItemsChanged;
     75      Content.Results.ItemsRemoved += ResultsOnItemsRemoved;
     76      Content.Results.ItemsReplaced += ResultsOnItemsChanged;
     77      Content.Results.CollectionReset += ResultsOnItemsChanged;
    5678    }
    5779    protected override void DeregisterContentEvents() {
    5880      base.DeregisterContentEvents();
    59       Content.Changed -= new EventHandler(Content_Changed);
    60     }
    61     private void Content_Changed(object sender, EventArgs e) {
    62       if (InvokeRequired)
    63         this.Invoke(new EventHandler(Content_Changed), sender, e);
    64       else
    65         UpdateColor();
     81      Content.PropertyChanged -= Content_PropertyChanged;
     82      DeregisterContentParametersEvents();
     83      DeregisterContentResultsEvents();
     84    }
     85    private void DeregisterContentParametersEvents() {
     86      Content.Parameters.ItemsAdded -= ParametersOnItemsChanged;
     87      Content.Parameters.ItemsRemoved -= ParametersOnItemsRemoved;
     88      Content.Parameters.ItemsReplaced -= ParametersOnItemsChanged;
     89      Content.Parameters.CollectionReset -= ParametersOnItemsChanged;
     90    }
     91    private void DeregisterContentResultsEvents() {
     92      Content.Results.ItemsAdded -= ResultsOnItemsChanged;
     93      Content.Results.ItemsRemoved -= ResultsOnItemsRemoved;
     94      Content.Results.ItemsReplaced -= ResultsOnItemsChanged;
     95      Content.Results.CollectionReset -= ResultsOnItemsChanged;
     96    }
     97
     98    private void Content_PropertyChanged(object sender, PropertyChangedEventArgs e) {
     99      if (e.PropertyName == "Color") {
     100        if (InvokeRequired) this.Invoke((Action)UpdateColor, null);
     101        else UpdateColor();
     102      } else if (e.PropertyName == "Parameters") {
     103        if (InvokeRequired) this.Invoke((Action<bool>)FillParametersListView, true);
     104        else FillParametersListView();
     105        RegisterContentParametersEvents();
     106      } else if (e.PropertyName == "Results") {
     107        if (InvokeRequired) this.Invoke((Action<bool>)FillResultsListView, true);
     108        else FillResultsListView();
     109        RegisterContentResultsEents();
     110      }
     111    }
     112
     113    private void ParametersOnItemsChanged(object sender, CollectionItemsChangedEventArgs<KeyValuePair<string, IItem>> e) {
     114      foreach (var item in e.OldItems) {
     115        listView.Items.Remove(parametersItemToListViewItem[item.Key]);
     116        parametersItemToListViewItem.Remove(item.Key);
     117      }
     118      foreach (var item in e.Items) {
     119        var listViewItem = CreateListViewItem(item.Key, Content.Parameters[item.Key], listView.Groups["parametersGroup"]);
     120        listView.Items.Add(listViewItem);
     121        parametersItemToListViewItem[item.Key] = listViewItem;
     122      }
     123    }
     124
     125    private void ParametersOnItemsRemoved(object sender, CollectionItemsChangedEventArgs<KeyValuePair<string, IItem>> e) {
     126      foreach (var item in e.Items) {
     127        listView.Items.Remove(parametersItemToListViewItem[item.Key]);
     128        parametersItemToListViewItem.Remove(item.Key);
     129      }
     130    }
     131
     132    private void ResultsOnItemsChanged(object sender, CollectionItemsChangedEventArgs<KeyValuePair<string, IItem>> e) {
     133      foreach (var item in e.OldItems) {
     134        listView.Items.Remove(resultsItemToListViewItem[item.Key]);
     135        resultsItemToListViewItem.Remove(item.Key);
     136      }
     137      foreach (var item in e.Items) {
     138        var listViewItem = CreateListViewItem(item.Key, Content.Results[item.Key], listView.Groups["resultsGroup"]);
     139        listView.Items.Add(listViewItem);
     140        resultsItemToListViewItem[item.Key] = listViewItem;
     141      }
     142    }
     143
     144    private void ResultsOnItemsRemoved(object sender, CollectionItemsChangedEventArgs<KeyValuePair<string, IItem>> e) {
     145      foreach (var item in e.Items) {
     146        listView.Items.Remove(resultsItemToListViewItem[item.Key]);
     147        resultsItemToListViewItem.Remove(item.Key);
     148      }
    66149    }
    67150
     
    101184      if (listView.SelectedItems.Count == 1) selectedName = listView.SelectedItems[0].SubItems[0].Text;
    102185
    103       listView.Items.Clear();
    104       listView.SmallImageList.Images.Clear();
     186      FillParametersListView(false);
     187      FillResultsListView(false);
     188      if (listView.Items.Count > 0) {
     189        for (int i = 0; i < listView.Columns.Count; i++)
     190          listView.Columns[i].AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
     191        selectedName = null;
     192      }
     193    }
     194
     195    private void FillParametersListView(bool resize = true) {
     196      listView.BeginUpdate();
     197      foreach (var item in listView.Groups["parametersGroup"].Items.OfType<ListViewItem>().OrderByDescending(x => x.ImageIndex).ToList()) {
     198        listView.SmallImageList.Images.RemoveAt(item.ImageIndex);
     199        listView.Items.Remove(item);
     200      }
     201      parametersItemToListViewItem.Clear();
     202
     203      var counter = 0;
     204      foreach (var item in listView.Items.OfType<ListViewItem>().OrderBy(x => x.ImageIndex).ToList())
     205        item.ImageIndex = counter++;
     206      listView.EndUpdate();
     207
    105208      if (Content != null) {
    106         foreach (string key in Content.Parameters.Keys)
    107           CreateListViewItem(key, Content.Parameters[key], listView.Groups["parametersGroup"], selectedName);
    108         foreach (string key in Content.Results.Keys)
    109           CreateListViewItem(key, Content.Results[key], listView.Groups["resultsGroup"], selectedName);
    110         if (listView.Items.Count > 0) {
     209        foreach (string key in Content.Parameters.Keys) {
     210          var listViewItem = CreateListViewItem(key, Content.Parameters[key], listView.Groups["parametersGroup"]);
     211          listView.Items.Add(listViewItem);
     212          if ((selectedName != null) && key.Equals(selectedName)) listViewItem.Selected = true;
     213          parametersItemToListViewItem[key] = listViewItem;
     214        }
     215        if (resize && listView.Items.Count > 0) {
    111216          for (int i = 0; i < listView.Columns.Count; i++)
    112217            listView.Columns[i].AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
    113           selectedName = null;
    114         }
    115       }
    116     }
    117 
    118     private void CreateListViewItem(string name, IItem value, ListViewGroup group, string selectedName) {
    119       ListViewItem item = new ListViewItem(new string[] { name, value != null ? value.ToString() : "-" });
     218        }
     219      }
     220    }
     221
     222    private void FillResultsListView(bool resize = true) {
     223      listView.BeginUpdate();
     224      foreach (var item in listView.Groups["resultsGroup"].Items.OfType<ListViewItem>().OrderByDescending(x => x.ImageIndex).ToList()) {
     225        listView.SmallImageList.Images.RemoveAt(item.ImageIndex);
     226        listView.Items.Remove(item);
     227      }
     228      resultsItemToListViewItem.Clear();
     229
     230      var counter = 0;
     231      foreach (var item in listView.Items.OfType<ListViewItem>().OrderBy(x => x.ImageIndex).ToList())
     232        item.ImageIndex = counter++;
     233      listView.EndUpdate();
     234
     235      if (Content != null) {
     236        foreach (string key in Content.Results.Keys) {
     237          var listViewItem = CreateListViewItem(key, Content.Results[key], listView.Groups["resultsGroup"]);
     238          listView.Items.Add(listViewItem);
     239          if ((selectedName != null) && key.Equals(selectedName)) listViewItem.Selected = true;
     240          resultsItemToListViewItem[key] = listViewItem;
     241        }
     242        if (resize && listView.Items.Count > 0) {
     243          for (int i = 0; i < listView.Columns.Count; i++)
     244            listView.Columns[i].AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
     245        }
     246      }
     247    }
     248
     249    private ListViewItem CreateListViewItem(string name, IItem value, ListViewGroup group) {
     250      var item = new ListViewItem(new string[] { name, value != null ? value.ToString() : "-" });
    120251      item.Tag = value;
    121252      item.Group = group;
    122253      listView.SmallImageList.Images.Add(value == null ? HeuristicLab.Common.Resources.VSImageLibrary.Nothing : value.ItemImage);
    123254      item.ImageIndex = listView.SmallImageList.Images.Count - 1;
    124       listView.Items.Add(item);
    125       if ((selectedName != null) && name.Equals(selectedName)) item.Selected = true;
     255      return item;
    126256    }
    127257
Note: See TracChangeset for help on using the changeset viewer.