Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/19/16 22:35:39 (8 years ago)
Author:
abeham
Message:

#2457: worked on expert-system

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/PerformanceComparison/HeuristicLab.OptimizationExpertSystem/3.3/OptimizationExpertSystem.cs

    r13667 r13720  
    2020#endregion
    2121
     22using HeuristicLab.Common;
     23using HeuristicLab.MainForm;
    2224using HeuristicLab.MainForm.WindowsForms;
    2325using HeuristicLab.OptimizationExpertSystem.Common;
    2426using System;
     27using System.Windows.Forms;
    2528
    2629namespace HeuristicLab.OptimizationExpertSystem {
    2730  public partial class OptimizationExpertSystem : DockingMainForm {
     31    private ToolStripProgressBar progressBar;
     32    private ToolStripLabel progressLabel;
    2833
    2934    public ExpertSystem ExpertSystem { get; private set; }
    30 
     35   
    3136    public OptimizationExpertSystem(Type userInterfaceType) : base(userInterfaceType) {
    3237      InitializeComponent();
    3338      ExpertSystem = new ExpertSystem();
     39      ExpertSystem.DownloadStarted += ExpertSystemOnDownloadStarted;
     40      ShowContentInViewHost = false;
     41    }
     42
     43    private void ExpertSystemOnDownloadStarted(object sender, EventArgs<IProgress> e) {
     44      e.Value.ProgressStateChanged += OnProgressStateChanged;
     45      e.Value.ProgressValueChanged += OnProgressValueChanged;
     46      e.Value.StatusChanged += OnProgressStatusChanged;
     47      progressBar.Value = progressBar.Minimum;
     48      progressLabel.Text = string.Empty;
     49      progressBar.Visible = true;
     50      progressLabel.Visible = true;
     51    }
     52
     53    private void OnProgressStateChanged(object sender, EventArgs e) {
     54      var progress = (IProgress)sender;
     55      if (progress.ProgressState == ProgressState.Canceled
     56          || progress.ProgressState == ProgressState.Finished) {
     57        progress.ProgressStateChanged -= OnProgressStateChanged;
     58        progress.ProgressValueChanged -= OnProgressValueChanged;
     59        progress.StatusChanged -= OnProgressStatusChanged;
     60        progressBar.Visible = false;
     61        progressLabel.Visible = false;
     62      }
     63    }
     64
     65    private void OnProgressValueChanged(object sender, EventArgs e) {
     66      var progress = (IProgress)sender;
     67      progressBar.Value = Math.Max(progressBar.Minimum, Math.Min(progressBar.Maximum, (int)(progress.ProgressValue * 100)));
     68    }
     69
     70    private void OnProgressStatusChanged(object sender, EventArgs e) {
     71      var progress = (IProgress)sender;
     72      progressLabel.Text = progress.Status.Replace(Environment.NewLine, "   ");
     73    }
     74
     75    protected override void AdditionalCreationOfGuiElements() {
     76      base.AdditionalCreationOfGuiElements();
     77      progressBar = new ToolStripProgressBar();
     78      statusStrip.Items.Add(progressBar);
     79      progressLabel = new ToolStripLabel();
     80      statusStrip.Items.Add(progressLabel);
    3481    }
    3582
    3683    private void OptimizationExpertSystem_Load(object sender, EventArgs e) {
    37       ShowContent(ExpertSystem);
     84      ShowContent(ExpertSystem.Problem);
    3885    }
    3986  }
Note: See TracChangeset for help on using the changeset viewer.