Changeset 9223 for trunk/sources/HeuristicLab.Clients.Hive.JobManager/3.3/Views/RefreshableHiveJobListView.cs
- Timestamp:
- 02/18/13 15:08:46 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Clients.Hive.JobManager/3.3/Views/RefreshableHiveJobListView.cs
r9107 r9223 21 21 22 22 using System; 23 using System.Collections.Generic; 24 using System.Threading.Tasks; 23 25 using System.Windows.Forms; 24 26 using HeuristicLab.Collections; 25 27 using HeuristicLab.Core; 26 28 using HeuristicLab.MainForm; 29 using HeuristicLab.MainForm.WindowsForms; 27 30 28 31 namespace HeuristicLab.Clients.Hive.JobManager.Views { … … 30 33 [Content(typeof(ItemCollection<RefreshableJob>), false)] 31 34 public partial class RefreshableHiveJobListView : HeuristicLab.Core.Views.ItemCollectionView<RefreshableJob> { 35 private Progress progress; 36 private ProgressView progressView; 32 37 33 38 public RefreshableHiveJobListView() { 34 39 InitializeComponent(); 35 40 itemsGroupBox.Text = "Jobs"; 36 this.itemsListView.View = View.Details;41 this.itemsListView.View = System.Windows.Forms.View.Details; 37 42 this.itemsListView.Columns.Clear(); 38 43 this.itemsListView.Columns.Add(new ColumnHeader("Date") { Text = "Date" }); … … 47 52 this.itemsListView.Sorting = SortOrder.Ascending; 48 53 this.itemsListView.Sort(); 54 55 progress = new Progress() { 56 CanBeCanceled = false, 57 ProgressState = ProgressState.Finished 58 }; 59 progressView = new ProgressView(this, progress); 49 60 } 50 61 … … 53 64 refreshableJob.Job.Name = "New Hive Job"; 54 65 return refreshableJob; 66 } 67 68 protected override void OnLockedChanged() { 69 base.OnLockedChanged(); 70 71 itemsListView.Enabled = !Locked; 72 addButton.Enabled = !Locked; 73 sortAscendingButton.Enabled = !Locked; 74 sortDescendingButton.Enabled = !Locked; 75 removeButton.Enabled = !Locked; 76 } 77 78 protected override void SetEnabledStateOfControls() { 79 // if the view is locked, a job is currently beeing deleted and everything should be disabled 80 if (!Locked) 81 base.SetEnabledStateOfControls(); 55 82 } 56 83 … … 72 99 return; 73 100 } else { 74 base.removeButton_Click(sender, e); 75 } 76 } 101 DeleteHiveJobs(e); 102 } 103 } 104 } 105 106 private void DeleteHiveJobs(EventArgs e) { 107 if (itemsListView.SelectedItems.Count > 0) { 108 List<RefreshableJob> items = new List<RefreshableJob>(); 109 foreach (ListViewItem item in itemsListView.SelectedItems) 110 items.Add((RefreshableJob)item.Tag); 111 112 var task = System.Threading.Tasks.Task.Factory.StartNew(DeleteHiveJobsAsync, items); 113 114 task.ContinueWith((t) => { 115 progress.Finish(); 116 MessageBox.Show("An error occured while deleting the job: " + Environment.NewLine + t.Exception, "HeuristicLab Hive Job Manager", MessageBoxButtons.OK, MessageBoxIcon.Error); 117 }, TaskContinuationOptions.OnlyOnFaulted); 118 119 task.ContinueWith((t) => { 120 itemsListView.SelectedItems.Clear(); 121 }, TaskContinuationOptions.OnlyOnRanToCompletion); 122 } 123 } 124 125 private void DeleteHiveJobsAsync(object items) { 126 progress.Status = "Deleting job..."; 127 progress.ProgressState = ProgressState.Started; 128 progress.ProgressValue = 0.0; 129 foreach (RefreshableJob item in (List<RefreshableJob>)items) { 130 Content.Remove(item); 131 } 132 progress.Finish(); 77 133 } 78 134 … … 158 214 return newGroup; 159 215 } 216 217 /// <summary> 218 /// Clean up any resources being used. 219 /// </summary> 220 /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> 221 protected override void Dispose(bool disposing) { 222 if (disposing) { 223 if (components != null) components.Dispose(); 224 progressView.Content = null; 225 progressView.Dispose(); 226 } 227 base.Dispose(disposing); 228 } 160 229 } 161 230 }
Note: See TracChangeset
for help on using the changeset viewer.