Free cookie consent management tool by TermsFeed Policy Generator

source: branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Experiment.Views/3.3/JobItemView.cs @ 4120

Last change on this file since 4120 was 4120, checked in by cneumuel, 14 years ago

further improvement and stabilisation of HiveExperiment (#1115)

File size: 3.3 KB
Line 
1using System;
2using System.Collections.Generic;
3using System.ComponentModel;
4using System.Drawing;
5using System.Data;
6using System.Linq;
7using System.Text;
8using System.Windows.Forms;
9using HeuristicLab.Core.Views;
10using HeuristicLab.MainForm;
11using HeuristicLab.Hive.JobBase;
12using HeuristicLab.Persistence.Default.Xml;
13using System.IO;
14
15namespace HeuristicLab.Hive.Experiment.Views {
16  [View("JobItem View")]
17  [Content(typeof(JobItem), true)]
18  public partial class JobItemView : ItemView {
19    public new JobItem Content {
20      get { return (JobItem)base.Content; }
21      set {
22        if (base.Content != value) {
23          base.Content = value;
24        }
25      }
26    }
27
28    public JobItemView() {
29      InitializeComponent();
30      this.ReadOnly = true;
31    }
32
33    protected override void OnContentChanged() {
34      base.OnContentChanged();
35      if (Content != null) {
36        this.stateTextBox.Text = Content.JobDto.State.ToString();
37        this.userIdTextBox.Text = Content.JobDto.UserId.ToString();
38        this.percentageTextBox.Text = Content.JobDto.Percentage.ToString();
39        this.dateCreatedTextBox.Text = Content.JobDto.DateCreated.ToString();
40        this.dateCalculatedText.Text = Content.JobDto.DateCalculated.ToString();
41        this.dateFinishedTextBox.Text = Content.JobDto.DateFinished.ToString();
42        this.priorityTextBox.Text = Content.JobDto.Priority.ToString();
43        this.coresNeededTextBox.Text = Content.JobDto.CoresNeeded.ToString();
44        this.memoryNeededTextBox.Text = Content.JobDto.MemoryNeeded.ToString();
45        this.pluginsNeededTextBox.Text = string.Join(", ", Content.JobDto.PluginsNeeded.Select(x => x.Name + "-" + x.Version).ToArray());
46        this.projectTextBox.Text = Content.JobDto.Project != null ? Content.JobDto.Project.Name : "-";
47        if (Content.LatestSnapshot != null) {
48          snapshotStatusText.Text = Content.LatestSnapshot.StatusMessage;
49          snapshotTimeText.Text = Content.LatestSnapshotTime.ToString();
50        }
51      }
52    }
53
54    protected override void RegisterContentEvents() {
55      base.RegisterContentEvents();
56      Content.LatestSnapshotChanged += new EventHandler(Content_LatestSnapshotChanged);
57    }
58
59    protected override void DeregisterContentEvents() {
60      Content.LatestSnapshotChanged -= new EventHandler(Content_LatestSnapshotChanged);
61      base.DeregisterContentEvents();
62    }
63
64    void Content_LatestSnapshotChanged(object sender, EventArgs e) {
65      if (Content.LatestSnapshot != null) {
66        snapshotStatusText.Text = Content.LatestSnapshot.StatusMessage;
67        snapshotTimeText.Text = Content.LatestSnapshotTime.ToString();
68      } else {
69        snapshotStatusText.Text = "";
70        snapshotTimeText.Text = "";
71      }
72      SetEnabledStateOfControls();
73    }
74
75    protected override void SetEnabledStateOfControls() {
76      base.SetEnabledStateOfControls();
77      openSnapshotButton.Enabled = Content != null && Content.LatestSnapshot != null;
78    }
79
80    private void openSnapshotButton_Click(object sender, EventArgs e) {
81      OptimizerJob job = XmlParser.Deserialize<OptimizerJob>(new MemoryStream(Content.LatestSnapshot.Obj.SerializedJobData));
82      MainFormManager.MainForm.ShowContent(job.Optimizer);
83    }
84  }
85}
Note: See TracBrowser for help on using the repository browser.