Free cookie consent management tool by TermsFeed Policy Generator

source: trunk/sources/HeuristicLab.Problems.ExternalEvaluation.Views/3.3/EvaluationCacheView.cs @ 6169

Last change on this file since 6169 was 6169, checked in by epitzer, 13 years ago

Add maximum capacity parameter and a least recently used replacement strategy to the evaluation cache (#1516)

File size: 1.9 KB
Line 
1using System;
2using System.Windows.Forms;
3using HeuristicLab.Core.Views;
4using HeuristicLab.MainForm;
5
6namespace HeuristicLab.Problems.ExternalEvaluation.Views {
7
8  [View("EvaluationCacheView")]
9  [Content(typeof(EvaluationCache), IsDefaultView = true)]
10  public sealed partial class EvaluationCacheView : ParameterizedNamedItemView {
11
12    public new EvaluationCache Content {
13      get { return (EvaluationCache)base.Content; }
14      set { base.Content = value; }
15    }
16
17    public EvaluationCacheView() {
18      InitializeComponent();
19    }
20
21    protected override void DeregisterContentEvents() {
22      Content.SizeChanged -= new System.EventHandler(Content_StatusChanged);
23      Content.HitsChanged -= new System.EventHandler(Content_StatusChanged);
24      base.DeregisterContentEvents();
25    }
26
27    protected override void RegisterContentEvents() {
28      base.RegisterContentEvents();
29      Content.SizeChanged += new System.EventHandler(Content_StatusChanged);
30      Content.HitsChanged += new System.EventHandler(Content_StatusChanged);
31    }
32
33    #region Event Handlers (Content)
34    void Content_StatusChanged(object sender, EventArgs e) {
35      if (InvokeRequired)
36        Invoke(new EventHandler(Content_StatusChanged), sender, e);
37      else
38        hits_sizeTextBox.Text = string.Format("{0}/{1}", Content.Hits, Content.Size);
39    }
40
41    #endregion
42
43    protected override void OnContentChanged() {
44      base.OnContentChanged();
45      if (Content == null) {
46        hits_sizeTextBox.Text = "#/#";
47      } else {
48        Content_StatusChanged(this, EventArgs.Empty);
49      }
50    }
51
52    protected override void SetEnabledStateOfControls() {
53      base.SetEnabledStateOfControls();
54      clearButton.Enabled = !ReadOnly && Content != null;
55    }
56
57    #region Event Handlers (child controls)
58    private void clearButton_Click(object sender, EventArgs e) {
59      Content.Reset();
60    }
61    #endregion
62  }
63}
Note: See TracBrowser for help on using the repository browser.