Changeset 13720 for branches/PerformanceComparison/HeuristicLab.OptimizationExpertSystem/3.3/OptimizationExpertSystem.cs
- Timestamp:
- 03/19/16 22:35:39 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/PerformanceComparison/HeuristicLab.OptimizationExpertSystem/3.3/OptimizationExpertSystem.cs
r13667 r13720 20 20 #endregion 21 21 22 using HeuristicLab.Common; 23 using HeuristicLab.MainForm; 22 24 using HeuristicLab.MainForm.WindowsForms; 23 25 using HeuristicLab.OptimizationExpertSystem.Common; 24 26 using System; 27 using System.Windows.Forms; 25 28 26 29 namespace HeuristicLab.OptimizationExpertSystem { 27 30 public partial class OptimizationExpertSystem : DockingMainForm { 31 private ToolStripProgressBar progressBar; 32 private ToolStripLabel progressLabel; 28 33 29 34 public ExpertSystem ExpertSystem { get; private set; } 30 35 31 36 public OptimizationExpertSystem(Type userInterfaceType) : base(userInterfaceType) { 32 37 InitializeComponent(); 33 38 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); 34 81 } 35 82 36 83 private void OptimizationExpertSystem_Load(object sender, EventArgs e) { 37 ShowContent(ExpertSystem );84 ShowContent(ExpertSystem.Problem); 38 85 } 39 86 }
Note: See TracChangeset
for help on using the changeset viewer.