Index: trunk/sources/HeuristicLab.Clients.Hive.JobManager/3.3/Views/HiveResourceSelector.cs
===================================================================
--- trunk/sources/HeuristicLab.Clients.Hive.JobManager/3.3/Views/HiveResourceSelector.cs	(revision 9710)
+++ trunk/sources/HeuristicLab.Clients.Hive.JobManager/3.3/Views/HiveResourceSelector.cs	(revision 9893)
@@ -64,13 +64,9 @@
       imageList.Images.Add(HeuristicLab.Common.Resources.VSImageLibrary.MonitorLarge);
       imageList.Images.Add(HeuristicLab.Common.Resources.VSImageLibrary.NetworkCenterLarge);
-      progress = new Progress() {
-        CanBeCanceled = false,
-        ProgressState = ProgressState.Finished
-      };
+      progress = new Progress();
     }
 
     protected override void DeregisterContentEvents() {
       if (progressView != null) {
-        progressView.Content = null;
         progressView.Dispose();
         progressView = null;
Index: trunk/sources/HeuristicLab.Clients.Hive.JobManager/3.3/Views/RefreshableHiveJobListView.cs
===================================================================
--- trunk/sources/HeuristicLab.Clients.Hive.JobManager/3.3/Views/RefreshableHiveJobListView.cs	(revision 9710)
+++ trunk/sources/HeuristicLab.Clients.Hive.JobManager/3.3/Views/RefreshableHiveJobListView.cs	(revision 9893)
@@ -50,8 +50,5 @@
       this.itemsListView.ListViewItemSorter = new ListViewItemDateComparer(0, SortOrder.Ascending);
 
-      progress = new Progress() {
-        CanBeCanceled = false,
-        ProgressState = ProgressState.Finished
-      };
+      progress = new Progress();
       progressView = new ProgressView(this, progress);
     }
@@ -129,7 +126,5 @@
 
     private void DeleteHiveJobsAsync(object items) {
-      progress.Status = "Deleting job...";
-      progress.ProgressState = ProgressState.Started;
-      progress.ProgressValue = 0.0;
+      progress.Start("Deleting job...");
       foreach (RefreshableJob item in (List<RefreshableJob>)items) {
         Content.Remove(item);
@@ -227,6 +222,6 @@
       if (disposing) {
         if (components != null) components.Dispose();
-        progressView.Content = null;
         progressView.Dispose();
+        progressView = null;
       }
       base.Dispose(disposing);
Index: trunk/sources/HeuristicLab.Clients.Hive.JobManager/3.3/Views/RefreshableHiveJobView.cs
===================================================================
--- trunk/sources/HeuristicLab.Clients.Hive.JobManager/3.3/Views/RefreshableHiveJobView.cs	(revision 9710)
+++ trunk/sources/HeuristicLab.Clients.Hive.JobManager/3.3/Views/RefreshableHiveJobView.cs	(revision 9893)
@@ -42,5 +42,4 @@
   [Content(typeof(RefreshableJob), true)]
   public partial class RefreshableHiveJobView : HeuristicLab.Core.Views.ItemView {
-    private Progress progress;
     private ProgressView progressView;
     private HiveResourceSelectorDialog hiveResourceSelectorDialog;
@@ -58,8 +57,4 @@
     public RefreshableHiveJobView() {
       InitializeComponent();
-      progress = new Progress() {
-        CanBeCanceled = false,
-        ProgressState = ProgressState.Finished
-      };
     }
 
@@ -72,5 +67,4 @@
       Content.ExceptionOccured += new EventHandler<EventArgs<Exception>>(Content_ExceptionOccured);
       Content.StateLogListChanged += new EventHandler(Content_StateLogListChanged);
-      Content.IsProgressingChanged += new EventHandler(Content_IsProgressingChanged);
       Content.HiveTasksChanged += new EventHandler(Content_HiveTasksChanged);
       Content.ExecutionStateChanged += new EventHandler(Content_ExecutionStateChanged);
@@ -78,5 +72,5 @@
       Content.Loaded += new EventHandler(Content_Loaded);
       Content.TaskReceived += new EventHandler(Content_TaskReceived);
-      progressView = new ProgressView(this, progress);
+      progressView = new ProgressView(this, Content.Progress);
     }
 
@@ -88,5 +82,4 @@
       Content.ExceptionOccured -= new EventHandler<EventArgs<Exception>>(Content_ExceptionOccured);
       Content.StateLogListChanged -= new EventHandler(Content_StateLogListChanged);
-      Content.IsProgressingChanged -= new EventHandler(Content_IsProgressingChanged);
       Content.HiveTasksChanged -= new EventHandler(Content_HiveTasksChanged);
       Content.ExecutionStateChanged -= new EventHandler(Content_ExecutionStateChanged);
@@ -95,5 +88,4 @@
       Content.TaskReceived -= new EventHandler(Content_TaskReceived);
       if (progressView != null) {
-        progressView.Content = null;
         progressView.Dispose();
         progressView = null;
@@ -159,5 +151,4 @@
       Content_HiveExperimentChanged(this, EventArgs.Empty);
       Content_HiveTasksChanged(this, EventArgs.Empty);
-      Content_IsProgressingChanged(this, EventArgs.Empty);
       Content_StateLogListChanged(this, EventArgs.Empty);
       HiveExperiment_PropertyChanged(this, new PropertyChangedEventArgs("Id"));
@@ -336,5 +327,4 @@
       if (Content != null && Content.Job != null) {
         RegisterHiveExperimentEvents();
-        Content_IsProgressingChanged(sender, e);
       }
     }
@@ -410,5 +400,5 @@
         var task = System.Threading.Tasks.Task.Factory.StartNew(ResumeJobAsync, Content);
         task.ContinueWith((t) => {
-          progress.Finish();
+          Content.Progress.Finish();
           MessageBox.Show("An error occured resuming the job. See the log for more information.", "HeuristicLab Hive Job Manager", MessageBoxButtons.OK, MessageBoxIcon.Error);
           Content.Log.LogException(t.Exception);
@@ -422,5 +412,5 @@
       var task = System.Threading.Tasks.Task.Factory.StartNew(PauseJobAsync, Content);
       task.ContinueWith((t) => {
-        progress.Finish();
+        Content.Progress.Finish();
         MessageBox.Show("An error occured pausing the job. See the log for more information.", "HeuristicLab Hive Job Manager", MessageBoxButtons.OK, MessageBoxIcon.Error);
         Content.Log.LogException(t.Exception);
@@ -431,5 +421,5 @@
       var task = System.Threading.Tasks.Task.Factory.StartNew(StopJobAsync, Content);
       task.ContinueWith((t) => {
-        progress.Finish();
+        Content.Progress.Finish();
         MessageBox.Show("An error occured stopping the job. See the log for more information.", "HeuristicLab Hive Job Manager", MessageBoxButtons.OK, MessageBoxIcon.Error);
         Content.Log.LogException(t.Exception);
@@ -439,22 +429,19 @@
 
     private void PauseJobAsync(object job) {
-      progress.Status = "Pausing job...";
-      progress.ProgressState = ProgressState.Started;
+      Content.Progress.Start("Pausing job...");
       HiveClient.PauseJob((RefreshableJob)job);
-      progress.Finish();
+      Content.Progress.Finish();
     }
 
     private void StopJobAsync(object job) {
-      progress.Status = "Stopping job...";
-      progress.ProgressState = ProgressState.Started;
+      Content.Progress.Start("Stopping job...");
       HiveClient.StopJob((RefreshableJob)job);
-      progress.Finish();
+      Content.Progress.Finish();
     }
 
     private void ResumeJobAsync(object job) {
-      progress.Status = "Resuming job...";
-      progress.ProgressState = ProgressState.Started;
+      Content.Progress.Start("Resuming job...");
       HiveClient.ResumeJob((RefreshableJob)job);
-      progress.Finish();
+      Content.Progress.Finish();
     }
 
@@ -507,18 +494,4 @@
         stopButton.Enabled = Content.IsControllable && Content.ExecutionState == ExecutionState.Started && !Content.IsProgressing;
         resetButton.Enabled = false;
-      }
-    }
-    #endregion
-
-    #region Progress reporting
-    private void Content_IsProgressingChanged(object sender, EventArgs e) {
-      if (this.InvokeRequired) {
-        Invoke(new EventHandler(Content_IsProgressingChanged), sender, e);
-      } else {
-        if (Content != null && Content.Progress != null && Content.IsProgressing) {
-          progressView.Content = Content.Progress;
-        } else if (Content != null) {
-          progressView.Content = progress;
-        }
       }
     }
