Changeset 5955 for branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/ExperimentManager/HiveExperimentView.cs
- Timestamp:
- 04/05/11 15:37:04 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Views/3.4/ExperimentManager/HiveExperimentView.cs
r5852 r5955 21 21 22 22 using System; 23 using System.ComponentModel; 23 24 using System.Threading; 24 25 using System.Windows.Forms; … … 34 35 /// </summary> 35 36 [View("Experiment View")] 36 [Content(typeof(HiveExperiment Client), true)]37 public sealed partial class HiveExperimentView : NamedItemView {37 [Content(typeof(HiveExperiment), true)] 38 public sealed partial class HiveExperimentView : ItemView { 38 39 private ProgressView progressView; 39 40 40 public new HiveExperiment ClientContent {41 get { return (HiveExperiment Client)base.Content; }41 public new HiveExperiment Content { 42 get { return (HiveExperiment)base.Content; } 42 43 set { base.Content = value; } 43 44 } … … 48 49 public HiveExperimentView() { 49 50 InitializeComponent(); 50 downloadExperimentPanel.Dock = DockStyle.Fill;51 51 } 52 52 53 53 protected override void DeregisterContentEvents() { 54 Content.ExceptionOccurred -= new EventHandler<EventArgs<Exception>>(Content_ExceptionOccurred);54 //Content.ExceptionOccurred -= new EventHandler<EventArgs<Exception>>(Content_ExceptionOccurred); 55 55 Content.ExecutionStateChanged -= new EventHandler(Content_ExecutionStateChanged); 56 56 Content.ExecutionTimeChanged -= new EventHandler(Content_ExecutionTimeChanged); 57 Content.Prepared -= new EventHandler(Content_Prepared);58 Content.Started -= new EventHandler(Content_Started);59 Content.Paused -= new EventHandler(Content_Paused);60 Content.Stopped -= new EventHandler(Content_Stopped);61 Content. IsResultsPollingChanged -= new EventHandler(Content_IsResultsPollingChanged);57 //Content.Prepared -= new EventHandler(Content_Prepared); 58 //Content.Started -= new EventHandler(Content_Started); 59 //Content.Paused -= new EventHandler(Content_Paused); 60 //Content.Stopped -= new EventHandler(Content_Stopped); 61 Content.RefreshAutomaticallyChanged -= new EventHandler(Content_RefreshAutomaticallyChanged); 62 62 Content.HiveJobChanged -= new EventHandler(Content_HiveJobChanged); 63 63 Content.IsProgressingChanged -= new EventHandler(Content_IsProgressingChanged); 64 Content.PropertyChanged -= new System.ComponentModel.PropertyChangedEventHandler(Content_PropertyChanged); 64 65 base.DeregisterContentEvents(); 65 66 } … … 67 68 protected override void RegisterContentEvents() { 68 69 base.RegisterContentEvents(); 69 Content.ExceptionOccurred += new EventHandler<EventArgs<Exception>>(Content_ExceptionOccurred);70 //Content.ExceptionOccurred += new EventHandler<EventArgs<Exception>>(Content_ExceptionOccurred); 70 71 Content.ExecutionStateChanged += new EventHandler(Content_ExecutionStateChanged); 71 72 Content.ExecutionTimeChanged += new EventHandler(Content_ExecutionTimeChanged); 72 Content.Prepared += new EventHandler(Content_Prepared);73 Content.Started += new EventHandler(Content_Started);74 Content.Paused += new EventHandler(Content_Paused);75 Content.Stopped += new EventHandler(Content_Stopped);76 Content. IsResultsPollingChanged += new EventHandler(Content_IsResultsPollingChanged);73 //Content.Prepared += new EventHandler(Content_Prepared); 74 //Content.Started += new EventHandler(Content_Started); 75 //Content.Paused += new EventHandler(Content_Paused); 76 //Content.Stopped += new EventHandler(Content_Stopped); 77 Content.RefreshAutomaticallyChanged += new EventHandler(Content_RefreshAutomaticallyChanged); 77 78 Content.HiveJobChanged += new EventHandler(Content_HiveJobChanged); 78 79 Content.IsProgressingChanged += new EventHandler(Content_IsProgressingChanged); 80 Content.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(Content_PropertyChanged); 79 81 } 80 82 … … 82 84 base.OnContentChanged(); 83 85 if (Content == null) { 86 nameTextBox.Text = string.Empty; 84 87 executionTimeTextBox.Text = string.Empty; 85 88 resourceNamesTextBox.Text = string.Empty; 86 89 useLocalPluginsCheckBox.Checked = false; 87 90 logView.Content = null; 91 //includeJobsCheckBox.Checked = false; 92 refreshAutomaticallyCheckBox.Checked = false; 93 jobsTextBox.Text = "0"; 94 calculatingTextBox.Text = "0"; 95 finishedTextBox.Text = "0"; 88 96 } else { 97 nameTextBox.Text = Content.Name; 89 98 executionTimeTextBox.Text = Content.ExecutionTime.ToString(); 90 99 resourceNamesTextBox.Text = Content.ResourceNames; 91 100 useLocalPluginsCheckBox.Checked = Content.UseLocalPlugins; 92 logView.Content = Content.Log; 101 //includeJobsCheckBox.Checked = Content.IncludeJobs; 102 refreshAutomaticallyCheckBox.Checked = Content.RefreshAutomatically; 103 jobsTextBox.Text = Content.JobCount.ToString(); 104 calculatingTextBox.Text = Content.CalculatingCount.ToString(); 105 finishedTextBox.Text = Content.FinishedCount.ToString(); 93 106 } 94 107 Content_HiveJobChanged(this, EventArgs.Empty); … … 101 114 executionTimeTextBox.Enabled = Content != null; 102 115 experimentNamedItemView.ReadOnly = true; 116 jobsTextBox.ReadOnly = true; 117 calculatingTextBox.ReadOnly = true; 118 finishedTextBox.ReadOnly = true; 119 103 120 if (Content != null) { 104 this.nameTextBox.ReadOnly = Content.ExecutionState != ExecutionState.Prepared; 105 this.resourceNamesTextBox.ReadOnly = Content.ExecutionState != ExecutionState.Prepared; 106 this.jobsTreeView.ReadOnly = Content.ExecutionState != ExecutionState.Prepared; 107 this.useLocalPluginsCheckBox.Enabled = Content.ExecutionState == ExecutionState.Prepared; 108 109 viewExperimentButton.Enabled = Content.GetExperiment() != null; 110 111 this.Locked = Content.ExecutionState == ExecutionState.Started && Content.IsPollingResults; 112 downloadExperimentPanel.Visible = Content.HiveExperimentId != Guid.Empty && Content.GetExperiment() == null; 121 bool alreadyUploaded = Content.RootJobId != null && Content.Id != Guid.Empty; 122 bool jobsLoaded = Content.HiveJob != null && Content.HiveJob.Job.Id != Guid.Empty; 123 124 this.nameTextBox.ReadOnly = Content.ExecutionState != ExecutionState.Prepared || alreadyUploaded; 125 this.resourceNamesTextBox.ReadOnly = Content.ExecutionState != ExecutionState.Prepared || alreadyUploaded; 126 this.jobsTreeView.ReadOnly = Content.ExecutionState != ExecutionState.Prepared || alreadyUploaded; 127 this.useLocalPluginsCheckBox.Enabled = !(Content.ExecutionState != ExecutionState.Prepared || alreadyUploaded); 128 this.refreshAutomaticallyCheckBox.Enabled = alreadyUploaded && jobsLoaded && Content.ExecutionState == ExecutionState.Started; 129 this.viewExperimentButton.Enabled = Content.GetExperiment() != null; 130 this.openExperimentButton.Enabled = !alreadyUploaded && Content.ExecutionState == ExecutionState.Prepared; 131 this.newExperimentButton.Enabled = !alreadyUploaded && Content.ExecutionState == ExecutionState.Prepared; 132 this.refreshButton.Enabled = alreadyUploaded; 133 134 this.Locked = Content.ExecutionState == ExecutionState.Started; 113 135 } 114 136 SetEnabledStateOfExecutableButtons(); … … 117 139 protected override void OnClosed(FormClosedEventArgs e) { 118 140 if (Content != null) { 119 if (Content. IsPollingResults)141 if (Content.RefreshAutomatically) 120 142 Content.StopResultPolling(); 121 143 } … … 176 198 ErrorHandling.ShowErrorDialog(this, e.Value); 177 199 } 178 private void Content_IsResultsPollingChanged(object sender, EventArgs e) { 179 if (InvokeRequired) 180 Invoke(new EventHandler(Content_IsResultsPollingChanged), sender, e); 181 else { 182 SetEnabledStateOfControls(); 183 } 184 } 185 void Content_HiveJobChanged(object sender, EventArgs e) { 200 private void Content_RefreshAutomaticallyChanged(object sender, EventArgs e) { 201 if (InvokeRequired) 202 Invoke(new EventHandler(Content_RefreshAutomaticallyChanged), sender, e); 203 else { 204 refreshAutomaticallyCheckBox.Checked = Content.RefreshAutomatically; 205 SetEnabledStateOfControls(); 206 } 207 } 208 private void Content_HiveJobChanged(object sender, EventArgs e) { 186 209 if (InvokeRequired) 187 210 Invoke(new EventHandler(Content_HiveJobChanged), sender, e); … … 197 220 } 198 221 } 222 private void Content_PropertyChanged(object sender, PropertyChangedEventArgs e) { 223 if (InvokeRequired) 224 Invoke(new PropertyChangedEventHandler(Content_PropertyChanged), sender, e); 225 else { 226 jobsTextBox.Text = Content.JobCount.ToString(); 227 calculatingTextBox.Text = Content.CalculatingCount.ToString(); 228 finishedTextBox.Text = Content.FinishedCount.ToString(); 229 } 230 } 199 231 #endregion 200 232 201 233 #region Control events 202 234 private void startButton_Click(object sender, EventArgs e) { 203 Content.Start();235 ExperimentManagerClient.StartExperiment(new Action<Exception>((Exception ex) => ErrorHandling.ShowErrorDialog(this, "Start failed.", ex)), Content); 204 236 } 205 237 private void pauseButton_Click(object sender, EventArgs e) { 206 Content.Pause();238 ExperimentManagerClient.PauseExperiment(Content); 207 239 } 208 240 private void stopButton_Click(object sender, EventArgs e) { 209 Content.Stop(); 210 } 211 private void resetButton_Click(object sender, EventArgs e) { 212 Content.Prepare(); 241 ExperimentManagerClient.StopExperiment(Content); 242 } 243 private void resetButton_Click(object sender, EventArgs e) { } 244 245 private void nameTextBox_Validated(object sender, EventArgs e) { 246 if (Content.Name != nameTextBox.Text) 247 Content.Name = nameTextBox.Text; 213 248 } 214 249 215 250 private void resourceNamesTextBox_Validated(object sender, EventArgs e) { 216 Content.ResourceNames = resourceNamesTextBox.Text; 251 if (Content.ResourceNames != resourceNamesTextBox.Text) 252 Content.ResourceNames = resourceNamesTextBox.Text; 217 253 } 218 254 … … 238 274 } 239 275 240 private void disconnectButton_Click(object sender, EventArgs e) { 276 private void viewExperimentButton_Click(object sender, EventArgs e) { 277 MainFormManager.MainForm.ShowContent(Content.GetExperiment()); 278 } 279 280 private void includeJobsCheckBox_CheckedChanged(object sender, EventArgs e) { 281 //if (Content != null) Content.IncludeJobs = includeJobsCheckBox.Checked; 282 } 283 284 private void refreshAutomaticallyCheckBox_CheckedChanged(object sender, EventArgs e) { 241 285 if (Content != null) { 242 Content.StopResultPolling(); 243 SetEnabledStateOfControls(); 244 } 245 } 246 247 private void reconnectButton_Click(object sender, EventArgs e) { 248 if (Content != null) { 249 Content.StartResultPolling(); 250 SetEnabledStateOfControls(); 286 Content.RefreshAutomatically = refreshAutomaticallyCheckBox.Checked; 251 287 } 252 288 } 253 289 254 290 private void useLocalPluginsCheckBox_CheckedChanged(object sender, EventArgs e) { 255 if (Content != null) { 256 Content.UseLocalPlugins = useLocalPluginsCheckBox.Checked; 257 } 258 } 259 #endregion 260 261 #region Helpers 262 private void SetEnabledStateOfExecutableButtons() { 263 if (Content == null) { 264 startButton.Enabled = pauseButton.Enabled = stopButton.Enabled = resetButton.Enabled = reconnectButton.Enabled = disconnectButton.Enabled = false; 265 } else { 266 startButton.Enabled = Content.GetExperiment() != null && Content.ExecutionState == ExecutionState.Prepared; 267 pauseButton.Enabled = false; 268 stopButton.Enabled = Content.ExecutionState == ExecutionState.Started && Content.IsPollingResults; 269 resetButton.Enabled = false; 270 reconnectButton.Enabled = (Content.ExecutionState == ExecutionState.Started) && !Content.IsPollingResults; 271 disconnectButton.Enabled = (Content.ExecutionState == ExecutionState.Started) && Content.IsPollingResults; 272 } 273 } 274 #endregion 275 276 private void downloadExperimentButton_Click(object sender, EventArgs e) { 277 var invoker = new MethodInvoker(Content.LoadHiveJob); 278 invoker.BeginInvoke((ar) => { 291 if (Content != null) Content.UseLocalPlugins = useLocalPluginsCheckBox.Checked; 292 } 293 294 private void refreshButton_Click(object sender, EventArgs e) { 295 var invoker = new Action<HiveExperiment>(ExperimentManagerClient.LoadExperiment); 296 invoker.BeginInvoke(Content, (ar) => { 279 297 try { 280 298 invoker.EndInvoke(ar); … … 285 303 }, null); 286 304 } 287 305 #endregion 306 307 #region Helpers 308 private void SetEnabledStateOfExecutableButtons() { 309 if (Content == null) { 310 startButton.Enabled = pauseButton.Enabled = stopButton.Enabled = resetButton.Enabled = false; 311 } else { 312 startButton.Enabled = Content.GetExperiment() != null && Content.ExecutionState == ExecutionState.Prepared; 313 pauseButton.Enabled = Content.ExecutionState == ExecutionState.Started; 314 stopButton.Enabled = Content.ExecutionState == ExecutionState.Started; 315 resetButton.Enabled = false; 316 } 317 } 318 #endregion 319 320 #region Progress reporting 288 321 private void Content_IsProgressingChanged(object sender, EventArgs e) { 289 322 if (this.InvokeRequired) { … … 312 345 } 313 346 } 347 #endregion 348 314 349 } 315 350 }
Note: See TracChangeset
for help on using the changeset viewer.