Free cookie consent management tool by TermsFeed Policy Generator

source: trunk/sources/HeuristicLab.Optimization.Views/3.3/OptimizerListView.cs @ 12056

Last change on this file since 12056 was 12012, checked in by ascheibe, 10 years ago

#2212 merged r12008, r12009, r12010 back into trunk

File size: 3.8 KB
RevLine 
[3274]1#region License Information
2/* HeuristicLab
[12012]3 * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
[3274]4 *
5 * This file is part of HeuristicLab.
6 *
7 * HeuristicLab is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * HeuristicLab is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
19 */
20#endregion
21
[3407]22using System;
[3274]23using System.Windows.Forms;
[3393]24using HeuristicLab.Core;
[3274]25using HeuristicLab.Core.Views;
26using HeuristicLab.MainForm;
[3758]27using HeuristicLab.PluginInfrastructure;
[3274]28
29namespace HeuristicLab.Optimization.Views {
30  [View("OptimizerList View")]
31  [Content(typeof(OptimizerList), true)]
[3393]32  [Content(typeof(IItemList<IOptimizer>), false)]
[3274]33  public partial class OptimizerListView : ItemListView<IOptimizer> {
34    /// <summary>
35    /// Initializes a new instance of <see cref="VariablesScopeView"/> with caption "Variables Scope View".
36    /// </summary>
37    public OptimizerListView() {
38      InitializeComponent();
39      itemsGroupBox.Text = "Optimizers";
40    }
41
42    protected override IOptimizer CreateItem() {
43      if (typeSelectorDialog == null) {
44        typeSelectorDialog = new TypeSelectorDialog();
[3407]45        typeSelectorDialog.Caption = "Select Optimizer";
[3274]46        typeSelectorDialog.TypeSelector.Caption = "Available Optimizers";
[3588]47        typeSelectorDialog.TypeSelector.Configure(typeof(IOptimizer), false, true);
[3274]48      }
49
[3407]50      if (typeSelectorDialog.ShowDialog(this) == DialogResult.OK) {
51        try {
52          return (IOptimizer)typeSelectorDialog.TypeSelector.CreateInstanceOfSelectedType();
[8872]53        } catch (Exception ex) {
[3758]54          ErrorHandling.ShowErrorDialog(this, ex);
[3407]55        }
56      }
57      return null;
[3274]58    }
[8872]59
60    protected override void DeregisterItemEvents(IOptimizer item) {
61      var batchRun = item as BatchRun;
62      if (batchRun != null) {
63        batchRun.RepetitionsChanged -= BatchRun_UpdateText;
64        batchRun.RepetetionsCounterChanged -= BatchRun_UpdateText;
65      }
66      base.DeregisterItemEvents(item);
67    }
68
69    protected override void RegisterItemEvents(IOptimizer item) {
70      base.RegisterItemEvents(item);
71      var batchRun = item as BatchRun;
72      if (batchRun != null) {
73        batchRun.RepetitionsChanged += BatchRun_UpdateText;
74        batchRun.RepetetionsCounterChanged += BatchRun_UpdateText;
75      }
76    }
77
78    protected override ListViewItem CreateListViewItem(IOptimizer item) {
79      var listViewItem = base.CreateListViewItem(item);
80      var batchRun = item as BatchRun;
81      if (batchRun != null) {
82        listViewItem.Text += string.Format(" {0}/{1}", batchRun.RepetitionsCounter, batchRun.Repetitions);
83      }
84      return listViewItem;
85    }
86
87    protected override void UpdateListViewItemText(ListViewItem listViewItem) {
88      base.UpdateListViewItemText(listViewItem);
89      var batchRun = listViewItem.Tag as BatchRun;
90      if (batchRun != null) {
91        listViewItem.Text = batchRun.ToString() + string.Format(" {0}/{1}", batchRun.RepetitionsCounter, batchRun.Repetitions);
92      }
93    }
94
95    protected virtual void BatchRun_UpdateText(object sender, EventArgs eventArgs) {
96      if (sender is BatchRun) {
97        foreach (var item in GetListViewItemsForItem(sender as BatchRun))
98          UpdateListViewItemText(item);
99      }
100    }
[3274]101  }
102}
Note: See TracBrowser for help on using the repository browser.