Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/05/10 03:17:25 (14 years ago)
Author:
swagner
Message:

Continued work on algorithm batch processing (#947).

Location:
trunk/sources/HeuristicLab.Optimization.Views/3.3
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Optimization.Views/3.3/AlgorithmView.cs

    r3262 r3265  
    138138        Invoke(new EventHandler(Content_ExecutionStateChanged), sender, e);
    139139      else {
     140        nameTextBox.Enabled = Content.ExecutionState != ExecutionState.Started;
     141        descriptionTextBox.Enabled = Content.ExecutionState != ExecutionState.Started;
    140142        SaveEnabled = Content.ExecutionState != ExecutionState.Started;
    141143        parameterCollectionView.Enabled = Content.ExecutionState != ExecutionState.Started;
  • trunk/sources/HeuristicLab.Optimization.Views/3.3/BatchRunView.Designer.cs

    r3261 r3265  
    5353      this.algorithmViewHost = new HeuristicLab.Core.Views.ViewHost();
    5454      this.runsTabPage = new System.Windows.Forms.TabPage();
     55      this.runsView = new HeuristicLab.Optimization.Views.RunCollectionView();
    5556      this.startButton = new System.Windows.Forms.Button();
    5657      this.stopButton = new System.Windows.Forms.Button();
     
    6263      this.repetitionsLabel = new System.Windows.Forms.Label();
    6364      this.repetitionsNumericUpDown = new System.Windows.Forms.NumericUpDown();
    64       this.runsView = new HeuristicLab.Optimization.Views.RunCollectionView();
     65      this.pauseButton = new System.Windows.Forms.Button();
    6566      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
    6667      this.tabControl.SuspendLayout();
     
    163164      this.runsTabPage.UseVisualStyleBackColor = true;
    164165      //
     166      // runsView
     167      //
     168      this.runsView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
     169                  | System.Windows.Forms.AnchorStyles.Left)
     170                  | System.Windows.Forms.AnchorStyles.Right)));
     171      this.runsView.Caption = "RunCollection";
     172      this.runsView.Content = null;
     173      this.runsView.Location = new System.Drawing.Point(6, 6);
     174      this.runsView.Name = "runsView";
     175      this.runsView.Size = new System.Drawing.Size(659, 336);
     176      this.runsView.TabIndex = 0;
     177      //
    165178      // startButton
    166179      //
     
    178191      //
    179192      this.stopButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
    180       this.stopButton.Image = HeuristicLab.Common.Resources.VS2008ImageLibrary.Pause;
    181       this.stopButton.Location = new System.Drawing.Point(30, 458);
     193      this.stopButton.Image = HeuristicLab.Common.Resources.VS2008ImageLibrary.Stop;
     194      this.stopButton.Location = new System.Drawing.Point(60, 458);
    182195      this.stopButton.Name = "stopButton";
    183196      this.stopButton.Size = new System.Drawing.Size(24, 24);
    184       this.stopButton.TabIndex = 8;
    185       this.toolTip.SetToolTip(this.stopButton, "Pause Batch Run");
     197      this.stopButton.TabIndex = 9;
     198      this.toolTip.SetToolTip(this.stopButton, "Stop Batch Run");
    186199      this.stopButton.UseVisualStyleBackColor = true;
    187200      this.stopButton.Click += new System.EventHandler(this.stopButton_Click);
     
    191204      this.resetButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
    192205      this.resetButton.Image = HeuristicLab.Common.Resources.VS2008ImageLibrary.Restart;
    193       this.resetButton.Location = new System.Drawing.Point(60, 458);
     206      this.resetButton.Location = new System.Drawing.Point(90, 458);
    194207      this.resetButton.Name = "resetButton";
    195208      this.resetButton.Size = new System.Drawing.Size(24, 24);
    196       this.resetButton.TabIndex = 9;
     209      this.resetButton.TabIndex = 10;
    197210      this.toolTip.SetToolTip(this.resetButton, "Reset Batch Run");
    198211      this.resetButton.UseVisualStyleBackColor = true;
     
    206219      this.executionTimeLabel.Name = "executionTimeLabel";
    207220      this.executionTimeLabel.Size = new System.Drawing.Size(83, 13);
    208       this.executionTimeLabel.TabIndex = 10;
     221      this.executionTimeLabel.TabIndex = 11;
    209222      this.executionTimeLabel.Text = "&Execution Time:";
    210223      //
     
    216229      this.executionTimeTextBox.ReadOnly = true;
    217230      this.executionTimeTextBox.Size = new System.Drawing.Size(137, 20);
    218       this.executionTimeTextBox.TabIndex = 11;
     231      this.executionTimeTextBox.TabIndex = 12;
    219232      //
    220233      // openFileDialog
     
    266279            0,
    267280            0});
     281      this.repetitionsNumericUpDown.Validated += new System.EventHandler(repetitionsNumericUpDown_Validated);
    268282      this.repetitionsNumericUpDown.ValueChanged += new System.EventHandler(this.repetitionsNumericUpDown_ValueChanged);
    269283      //
    270       // runsView
    271       //
    272       this.runsView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
    273                   | System.Windows.Forms.AnchorStyles.Left)
    274                   | System.Windows.Forms.AnchorStyles.Right)));
    275       this.runsView.Caption = "RunCollection";
    276       this.runsView.Content = null;
    277       this.runsView.Location = new System.Drawing.Point(6, 6);
    278       this.runsView.Name = "runsView";
    279       this.runsView.Size = new System.Drawing.Size(659, 336);
    280       this.runsView.TabIndex = 0;
     284      // pauseButton
     285      //
     286      this.pauseButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
     287      this.pauseButton.Image = HeuristicLab.Common.Resources.VS2008ImageLibrary.Pause;
     288      this.pauseButton.Location = new System.Drawing.Point(30, 458);
     289      this.pauseButton.Name = "pauseButton";
     290      this.pauseButton.Size = new System.Drawing.Size(24, 24);
     291      this.pauseButton.TabIndex = 8;
     292      this.toolTip.SetToolTip(this.pauseButton, "Pause Batch Run");
     293      this.pauseButton.UseVisualStyleBackColor = true;
     294      this.pauseButton.Click += new System.EventHandler(this.pauseButton_Click);
    281295      //
    282296      // BatchRunView
     
    286300      this.Controls.Add(this.tabControl);
    287301      this.Controls.Add(this.startButton);
    288       this.Controls.Add(this.stopButton);
    289302      this.Controls.Add(this.executionTimeTextBox);
    290303      this.Controls.Add(this.executionTimeLabel);
    291       this.Controls.Add(this.resetButton);
    292304      this.Controls.Add(this.repetitionsNumericUpDown);
    293305      this.Controls.Add(this.repetitionsLabel);
     306      this.Controls.Add(this.pauseButton);
     307      this.Controls.Add(this.stopButton);
     308      this.Controls.Add(this.resetButton);
    294309      this.Name = "BatchRunView";
    295310      this.Size = new System.Drawing.Size(679, 482);
     311      this.Controls.SetChildIndex(this.resetButton, 0);
     312      this.Controls.SetChildIndex(this.stopButton, 0);
     313      this.Controls.SetChildIndex(this.pauseButton, 0);
    296314      this.Controls.SetChildIndex(this.repetitionsLabel, 0);
    297315      this.Controls.SetChildIndex(this.repetitionsNumericUpDown, 0);
    298       this.Controls.SetChildIndex(this.resetButton, 0);
    299316      this.Controls.SetChildIndex(this.executionTimeLabel, 0);
    300317      this.Controls.SetChildIndex(this.executionTimeTextBox, 0);
    301       this.Controls.SetChildIndex(this.stopButton, 0);
    302318      this.Controls.SetChildIndex(this.startButton, 0);
    303319      this.Controls.SetChildIndex(this.tabControl, 0);
     
    315331
    316332    }
    317 
    318333    #endregion
    319334
     
    335350    private System.Windows.Forms.NumericUpDown repetitionsNumericUpDown;
    336351    private RunCollectionView runsView;
     352    private System.Windows.Forms.Button pauseButton;
    337353
    338354  }
  • trunk/sources/HeuristicLab.Optimization.Views/3.3/BatchRunView.cs

    r3261 r3265  
    2121
    2222using System;
    23 using System.Collections.Generic;
    2423using System.Windows.Forms;
    2524using HeuristicLab.Common;
     25using HeuristicLab.Core;
    2626using HeuristicLab.Core.Views;
    2727using HeuristicLab.MainForm;
     
    5858
    5959    protected override void DeregisterContentEvents() {
     60      Content.AlgorithmChanged -= new EventHandler(Content_AlgorithmChanged);
    6061      Content.ExceptionOccurred -= new EventHandler<EventArgs<Exception>>(Content_ExceptionOccurred);
     62      Content.ExecutionStateChanged -= new EventHandler(Content_ExecutionStateChanged);
    6163      Content.ExecutionTimeChanged -= new EventHandler(Content_ExecutionTimeChanged);
    62       Content.Prepared -= new EventHandler(Content_Prepared);
    63       Content.AlgorithmChanged -= new EventHandler(Content_AlgorithmChanged);
    6464      Content.RepetitionsChanged -= new EventHandler(Content_RepetitionsChanged);
    65       Content.RunningChanged -= new EventHandler(Content_RunningChanged);
    6665      base.DeregisterContentEvents();
    6766    }
    6867    protected override void RegisterContentEvents() {
    6968      base.RegisterContentEvents();
     69      Content.AlgorithmChanged += new EventHandler(Content_AlgorithmChanged);
    7070      Content.ExceptionOccurred += new EventHandler<EventArgs<Exception>>(Content_ExceptionOccurred);
     71      Content.ExecutionStateChanged += new EventHandler(Content_ExecutionStateChanged);
    7172      Content.ExecutionTimeChanged += new EventHandler(Content_ExecutionTimeChanged);
    72       Content.Prepared += new EventHandler(Content_Prepared);
    73       Content.AlgorithmChanged += new EventHandler(Content_AlgorithmChanged);
    7473      Content.RepetitionsChanged += new EventHandler(Content_RepetitionsChanged);
    75       Content.RunningChanged += new EventHandler(Content_RunningChanged);
    7674    }
    7775
    7876    protected override void OnContentChanged() {
    7977      base.OnContentChanged();
    80       stopButton.Enabled = false;
    8178      if (Content == null) {
    8279        repetitionsNumericUpDown.Value = 1;
     
    8582        runsView.Content = null;
    8683        tabControl.Enabled = false;
    87         startButton.Enabled = resetButton.Enabled = false;
     84        startButton.Enabled = pauseButton.Enabled = stopButton.Enabled = resetButton.Enabled = false;
    8885        executionTimeTextBox.Text = "-";
    8986        executionTimeTextBox.Enabled = false;
     
    9693        runsView.Content = Content.Runs;
    9794        tabControl.Enabled = true;
    98         startButton.Enabled = !Content.Finished;
    99         resetButton.Enabled = true;
    100         UpdateExecutionTimeTextBox();
     95        EnableDisableButtons();
     96        executionTimeTextBox.Text = Content.ExecutionTime.ToString();
    10197        executionTimeTextBox.Enabled = true;
    10298      }
     
    104100
    105101    protected override void OnClosed(FormClosedEventArgs e) {
    106       if (Content != null) Content.Stop();
     102      if ((Content != null) && (Content.ExecutionState == ExecutionState.Started)) Content.Stop();
    107103      base.OnClosed(e);
    108104    }
    109105
    110106    #region Content Events
     107    private void Content_ExecutionStateChanged(object sender, EventArgs e) {
     108      if (InvokeRequired)
     109        Invoke(new EventHandler(Content_ExecutionStateChanged), sender, e);
     110      else {
     111        nameTextBox.Enabled = Content.ExecutionState != ExecutionState.Started;
     112        descriptionTextBox.Enabled = Content.ExecutionState != ExecutionState.Started;
     113        SaveEnabled = Content.ExecutionState != ExecutionState.Started;
     114        repetitionsNumericUpDown.Enabled = Content.ExecutionState != ExecutionState.Started;
     115        newAlgorithmButton.Enabled = openAlgorithmButton.Enabled = saveAlgorithmButton.Enabled = Content.ExecutionState != ExecutionState.Started;
     116        EnableDisableButtons();
     117      }
     118    }
     119    private void Content_ExecutionTimeChanged(object sender, EventArgs e) {
     120      if (InvokeRequired)
     121        Invoke(new EventHandler(Content_ExecutionTimeChanged), sender, e);
     122      else
     123        executionTimeTextBox.Text = Content.ExecutionTime.ToString();
     124    }
     125    private void Content_ExceptionOccurred(object sender, EventArgs<Exception> e) {
     126      if (InvokeRequired)
     127        Invoke(new EventHandler<EventArgs<Exception>>(Content_ExceptionOccurred), sender, e);
     128      else
     129        Auxiliary.ShowErrorMessageBox(e.Value);
     130    }
    111131    private void Content_AlgorithmChanged(object sender, EventArgs e) {
    112132      if (InvokeRequired)
     
    118138      }
    119139    }
    120     private void Content_Prepared(object sender, EventArgs e) {
    121       if (InvokeRequired)
    122         Invoke(new EventHandler(Content_Prepared), sender, e);
    123       else {
    124         startButton.Enabled = !Content.Finished;
    125         UpdateExecutionTimeTextBox();
    126       }
    127     }
    128     private void Content_RunningChanged(object sender, EventArgs e) {
    129       if (InvokeRequired)
    130         Invoke(new EventHandler(Content_RunningChanged), sender, e);
    131       else {
    132         SaveEnabled = !Content.Running;
    133         repetitionsNumericUpDown.Enabled = !Content.Running;
    134         newAlgorithmButton.Enabled = openAlgorithmButton.Enabled = saveAlgorithmButton.Enabled = !Content.Running;
    135         startButton.Enabled = !Content.Running && !Content.Finished;
    136         stopButton.Enabled = Content.Running;
    137         resetButton.Enabled = !Content.Running;
    138         UpdateExecutionTimeTextBox();
    139       }
    140     }
    141     private void Content_ExecutionTimeChanged(object sender, EventArgs e) {
    142       UpdateExecutionTimeTextBox();
    143     }
    144     private void Content_ExceptionOccurred(object sender, EventArgs<Exception> e) {
    145       if (InvokeRequired)
    146         Invoke(new EventHandler<EventArgs<Exception>>(Content_ExceptionOccurred), sender, e);
     140    private void Content_RepetitionsChanged(object sender, EventArgs e) {
     141      if (InvokeRequired)
     142        Invoke(new EventHandler(Content_RepetitionsChanged), sender, e);
    147143      else
    148         Auxiliary.ShowErrorMessageBox(e.Value);
    149     }
    150     private void Content_RepetitionsChanged(object sender, EventArgs e) {
    151       if (InvokeRequired)
    152         Invoke(new EventHandler(Content_RepetitionsChanged), sender, e);
    153       else {
    154144        repetitionsNumericUpDown.Value = Content.Repetitions;
    155         startButton.Enabled = !Content.Finished;
    156       }
    157145    }
    158146    #endregion
    159147
    160148    #region Control events
     149    private void repetitionsNumericUpDown_Validated(object sender, System.EventArgs e) {
     150      if (repetitionsNumericUpDown.Text == string.Empty)
     151        repetitionsNumericUpDown.Text = repetitionsNumericUpDown.Value.ToString();
     152    }
    161153    private void repetitionsNumericUpDown_ValueChanged(object sender, EventArgs e) {
    162154      Content.Repetitions = (int)repetitionsNumericUpDown.Value;
     
    227219      Content.Start();
    228220    }
     221    private void pauseButton_Click(object sender, EventArgs e) {
     222      Content.Pause();
     223    }
    229224    private void stopButton_Click(object sender, EventArgs e) {
    230225      Content.Stop();
    231226    }
    232227    private void resetButton_Click(object sender, EventArgs e) {
    233       Content.Prepare();
     228      if (Content.Runs.Count > 0) {
     229        if (MessageBox.Show(this, "Clear all runs executed so far?", "Clear All Runs?", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
     230          Content.Prepare(true);
     231        else
     232          Content.Prepare(false);
     233      } else {
     234        Content.Prepare();
     235      }
    234236    }
    235237    #endregion
    236238
    237239    #region Helpers
    238     private void UpdateExecutionTimeTextBox() {
    239       if (InvokeRequired)
    240         Invoke(new Action(UpdateExecutionTimeTextBox));
    241       else
    242         executionTimeTextBox.Text = Content.ExecutionTime.ToString();
     240    private void EnableDisableButtons() {
     241      startButton.Enabled = (Content.ExecutionState == ExecutionState.Prepared) || (Content.ExecutionState == ExecutionState.Paused);
     242      pauseButton.Enabled = Content.ExecutionState == ExecutionState.Started;
     243      stopButton.Enabled = (Content.ExecutionState == ExecutionState.Started) || (Content.ExecutionState == ExecutionState.Paused);
     244      resetButton.Enabled = Content.ExecutionState != ExecutionState.Started;
    243245    }
    244246    #endregion
  • trunk/sources/HeuristicLab.Optimization.Views/3.3/HeuristicLab.Optimization.Views-3.3.csproj

    r3262 r3265  
    9292      <DependentUpon>AlgorithmView.cs</DependentUpon>
    9393    </Compile>
     94    <Compile Include="BatchRunView.cs">
     95      <SubType>UserControl</SubType>
     96    </Compile>
     97    <Compile Include="BatchRunView.Designer.cs">
     98      <DependentUpon>BatchRunView.cs</DependentUpon>
     99    </Compile>
    94100    <Compile Include="RunCollectionView.cs">
    95101      <SubType>UserControl</SubType>
Note: See TracChangeset for help on using the changeset viewer.