Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
09/07/10 10:22:27 (14 years ago)
Author:
cneumuel
Message:
  • created HiveClient which shows an overview over all submitted HiveExperiments
  • its possible to download all submitted HiveExperiments including results
  • Experiments are now sent as a whole to the Hive and the Hive-Slaves take care of creating child-jobs (if necessary). The parent job is then paused and will be reactivated when all child-jobs are finished
  • WcfService-Clients are now consistently managed by WcfServicePool which allows to use IDisposable-Pattern and always keeps exactly one proxy-object until all callers disposed them.
  • created ProgressView which is able to lock a View and display progress of an action. It also allows to simulate progress if no progress-information is available so that users don't get too nervous while waiting.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/3.3-Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Experiment.Views/3.3/JobItemView.cs

    r4263 r4368  
    1212using HeuristicLab.Persistence.Default.Xml;
    1313using System.IO;
     14using HeuristicLab.Hive.Experiment.Jobs;
    1415
    1516namespace HeuristicLab.Hive.Experiment.Views {
     
    2829    public JobItemView() {
    2930      InitializeComponent();
    30       this.ReadOnly = true;
    3131    }
    3232
     
    3434      base.OnContentChanged();
    3535      if (Content != null) {
    36         logView.Content = Content.Log;
     36        Content_JobChanged(this, EventArgs.Empty);
     37        Content_ChildJobAdded(this, EventArgs.Empty);
     38      }
     39    }
     40
     41    void Content_JobChanged(object sender, EventArgs e) {
     42      if (Content.Job != null) {
     43        logView.Content = Content.Job.Log;
    3744        Content_JobDtoChanged(this, EventArgs.Empty);
    3845        Content_JobStateChanged(this, EventArgs.Empty);
    39         if (Content.LatestSnapshot != null) {
    40           snapshotStatusText.InvokeIfRequired(c => c.Text = Content.LatestSnapshot.StatusMessage.ToString());
    41           snapshotTimeText.InvokeIfRequired(c => { c.Text = Content.LatestSnapshotTime.ToString(); });
    42         }
    4346      }
    4447    }
     
    4649    protected override void RegisterContentEvents() {
    4750      base.RegisterContentEvents();
    48       Content.LatestSnapshotChanged += new EventHandler(Content_LatestSnapshotChanged);
     51      Content.JobChanged += new EventHandler(Content_JobChanged);
    4952      Content.JobDtoChanged += new EventHandler(Content_JobDtoChanged);
    5053      Content.JobStateChanged += new EventHandler(Content_JobStateChanged);
    51       Content.SnapshotRequestedStateChanged += new EventHandler(Content_SnapshotRequestedStateChanged);
     54      Content.ChildJobAdded += new EventHandler(Content_ChildJobAdded);
    5255    }
    5356
    5457    protected override void DeregisterContentEvents() {
    55       Content.LatestSnapshotChanged -= new EventHandler(Content_LatestSnapshotChanged);
     58      Content.JobChanged -= new EventHandler(Content_JobChanged);
    5659      Content.JobDtoChanged -= new EventHandler(Content_JobDtoChanged);
    5760      Content.JobStateChanged -= new EventHandler(Content_JobStateChanged);
    58       Content.SnapshotRequestedStateChanged -= new EventHandler(Content_SnapshotRequestedStateChanged);
     61      Content.ChildJobAdded -= new EventHandler(Content_ChildJobAdded);
    5962      base.DeregisterContentEvents();
    6063    }
     
    7780        Invoke(new EventHandler(Content_JobStateChanged), sender, e);
    7881      } else {
    79         this.stateTextBox.Text = Content.State.ToString();
    80         this.percentageTextBox.Text = (Content.Percentage * 100).ToString() + "%";
    81         this.percentageProgressBar.Value = Convert.ToInt32(Content.Percentage * percentageProgressBar.Maximum);
    82         this.dateCalculatedText.Text = Content.DateCalculated.ToString();
    83         this.dateFinishedTextBox.Text = Content.DateFinished.ToString();
    84         this.exceptionTextBox.Text = Content.Exception;
     82        this.stateTextBox.Text = Content.JobDto.State.ToString();
     83        this.percentageTextBox.Text = (Content.JobDto.Percentage * 100).ToString() + "%";
     84        this.percentageProgressBar.Value = Convert.ToInt32(Content.JobDto.Percentage * percentageProgressBar.Maximum);
     85        this.dateCalculatedText.Text = Content.JobDto.DateCalculated.ToString();
     86        this.dateFinishedTextBox.Text = Content.JobDto.DateFinished.ToString();
     87        this.exceptionTextBox.Text = Content.JobDto.Exception;
    8588      }
    8689    }
    8790
    88     void Content_LatestSnapshotChanged(object sender, EventArgs e) {
     91    void Content_ChildJobAdded(object sender, EventArgs e) {
    8992      if (InvokeRequired) {
    90         Invoke(new EventHandler(Content_LatestSnapshotChanged), sender, e);
     93        Invoke(new EventHandler(Content_ChildJobAdded), sender, e);
    9194      } else {
    92         if (Content.LatestSnapshot != null) {
    93           snapshotStatusText.Text = Content.LatestSnapshot.StatusMessage.ToString();
    94           snapshotTimeText.Text = Content.LatestSnapshotTime.ToString();
    95         } else {
    96           snapshotStatusText.Text = "";
    97           snapshotTimeText.Text = "";
    98         }
    99         SetEnabledStateOfControls();
     95        childJobItemListView.Content = new JobItemList(Content.ChildJobItems);
    10096      }
    10197    }
     
    106102      } else {
    107103        base.SetEnabledStateOfControls();
    108         if (Content != null) {
    109           openSnapshotButton.Enabled = Content.LatestSnapshot != null && Content.SnapshotRequestedState == SnapshotRequestedState.Idle;
    110           requestSnapshotButton.Enabled = Content.SnapshotRequestedState == SnapshotRequestedState.Idle;
    111         }
    112104        this.jobIdTextBox.ReadOnly = this.ReadOnly;
    113105        this.stateTextBox.ReadOnly = this.ReadOnly;
     
    122114        this.exceptionTextBox.ReadOnly = this.ReadOnly;
    123115        this.projectTextBox.ReadOnly = this.ReadOnly;
    124         this.snapshotStatusText.ReadOnly = this.ReadOnly;
    125         this.snapshotTimeText.ReadOnly = this.ReadOnly;
    126116      }
    127     }
    128 
    129     private void openSnapshotButton_Click(object sender, EventArgs e) {
    130       OptimizerJob job = XmlParser.Deserialize<OptimizerJob>(new MemoryStream(Content.LatestSnapshot.Obj.SerializedJobData));
    131       MainFormManager.MainForm.ShowContent(job.Optimizer);
    132     }
    133 
    134     private void requestSnapshotButton_Click(object sender, EventArgs e) {
    135       this.Content.RequestSnapshot();
    136     }
    137 
    138     private void Content_SnapshotRequestedStateChanged(object sender, EventArgs e) {
    139       SetEnabledStateOfControls();
    140117    }
    141118  }
Note: See TracChangeset for help on using the changeset viewer.