Index: trunk/sources/HeuristicLab.Core.Views/3.3/ItemArrayView.cs
===================================================================
--- trunk/sources/HeuristicLab.Core.Views/3.3/ItemArrayView.cs	(revision 3434)
+++ trunk/sources/HeuristicLab.Core.Views/3.3/ItemArrayView.cs	(revision 3435)
@@ -48,12 +48,4 @@
     }
 
-    public override bool ReadOnly {
-      get {
-        if ((Content != null) && Content.IsReadOnly) return true;
-        else return base.ReadOnly;
-      }
-      set { base.ReadOnly = value; }
-    }
-
     public ListView ItemsListView {
       get { return itemsListView; }
@@ -122,13 +114,13 @@
       } else {
         addButton.Enabled = itemsListView.SelectedItems.Count > 0 &&
-                            !ReadOnly;
+                            !Content.IsReadOnly && !ReadOnly;
         moveUpButton.Enabled = itemsListView.SelectedItems.Count == 1 &&
                                itemsListView.SelectedIndices[0] != 0 &&
-                               !ReadOnly;
+                               !Content.IsReadOnly && !ReadOnly;
         moveDownButton.Enabled = itemsListView.SelectedItems.Count == 1 &&
                                  itemsListView.SelectedIndices[0] != itemsListView.Items.Count - 1 &&
-                                 !ReadOnly;
+                                 !Content.IsReadOnly && !ReadOnly;
         removeButton.Enabled = itemsListView.SelectedItems.Count > 0 &&
-                               !ReadOnly;
+                               !Content.IsReadOnly && !ReadOnly;
         itemsListView.Enabled = true;
         detailsGroupBox.Enabled = true;
@@ -205,12 +197,12 @@
     #region ListView Events
     protected virtual void itemsListView_SelectedIndexChanged(object sender, EventArgs e) {
-      addButton.Enabled = itemsListView.SelectedItems.Count > 0 && !ReadOnly;
+      addButton.Enabled = itemsListView.SelectedItems.Count > 0 && !Content.IsReadOnly && !ReadOnly;
       moveUpButton.Enabled = itemsListView.SelectedItems.Count == 1 &&
                              itemsListView.SelectedIndices[0] != 0 &&
-                             !ReadOnly;
+                             !Content.IsReadOnly && !ReadOnly;
       moveDownButton.Enabled = itemsListView.SelectedItems.Count == 1 &&
                                itemsListView.SelectedIndices[0] != itemsListView.Items.Count - 1 &&
-                               !ReadOnly;
-      removeButton.Enabled = itemsListView.SelectedItems.Count > 0 && !ReadOnly;
+                               !Content.IsReadOnly && !ReadOnly;
+      removeButton.Enabled = itemsListView.SelectedItems.Count > 0 && !Content.IsReadOnly && !ReadOnly;
 
       if (itemsListView.SelectedItems.Count == 1) {
@@ -227,5 +219,5 @@
     protected virtual void itemsListView_KeyDown(object sender, KeyEventArgs e) {
       if (e.KeyCode == Keys.Delete) {
-        if ((itemsListView.SelectedItems.Count > 0) && !ReadOnly) {
+        if ((itemsListView.SelectedItems.Count > 0) && !Content.IsReadOnly && !ReadOnly) {
           foreach (ListViewItem item in itemsListView.SelectedItems)
             Content[item.Index] = null;
@@ -256,5 +248,5 @@
           data.SetData("Type", item.GetType());
           data.SetData("Value", item);
-          if (ReadOnly) {
+          if (Content.IsReadOnly || ReadOnly) {
             DoDragDrop(data, DragDropEffects.Copy | DragDropEffects.Link);
           } else {
@@ -269,5 +261,5 @@
       e.Effect = DragDropEffects.None;
       Type type = e.Data.GetData("Type") as Type;
-      if (!ReadOnly && (type != null) && (typeof(T).IsAssignableFrom(type))) {
+      if (!Content.IsReadOnly && !ReadOnly && (type != null) && (typeof(T).IsAssignableFrom(type))) {
         Point p = itemsListView.PointToClient(new Point(e.X, e.Y));
         ListViewItem listViewItem = itemsListView.GetItemAt(p.X, p.Y);
Index: trunk/sources/HeuristicLab.Core.Views/3.3/ItemCollectionView.cs
===================================================================
--- trunk/sources/HeuristicLab.Core.Views/3.3/ItemCollectionView.cs	(revision 3434)
+++ trunk/sources/HeuristicLab.Core.Views/3.3/ItemCollectionView.cs	(revision 3435)
@@ -40,12 +40,4 @@
     }
 
-    public override bool ReadOnly {
-      get {
-        if ((Content != null) && Content.IsReadOnly) return true;
-        else return base.ReadOnly;
-      }
-      set { base.ReadOnly = value; }
-    }
-
     public ListView ItemsListView {
       get { return itemsListView; }
@@ -102,8 +94,8 @@
         detailsGroupBox.Enabled = false;
       } else {
-        addButton.Enabled = !ReadOnly;
+        addButton.Enabled = !Content.IsReadOnly && !ReadOnly;
         sortAscendingButton.Enabled = itemsListView.Items.Count > 1;
         sortDescendingButton.Enabled = itemsListView.Items.Count > 1;
-        removeButton.Enabled = !ReadOnly && itemsListView.SelectedItems.Count > 0;
+        removeButton.Enabled = !Content.IsReadOnly && !ReadOnly && itemsListView.SelectedItems.Count > 0;
         itemsListView.Enabled = true;
         detailsGroupBox.Enabled = true;
@@ -176,5 +168,5 @@
     #region ListView Events
     protected virtual void itemsListView_SelectedIndexChanged(object sender, EventArgs e) {
-      removeButton.Enabled = !ReadOnly && itemsListView.SelectedItems.Count > 0;
+      removeButton.Enabled = !Content.IsReadOnly && !ReadOnly && itemsListView.SelectedItems.Count > 0;
       if (itemsListView.SelectedItems.Count == 1) {
         T item = (T)itemsListView.SelectedItems[0].Tag;
@@ -189,5 +181,5 @@
     protected virtual void itemsListView_KeyDown(object sender, KeyEventArgs e) {
       if (e.KeyCode == Keys.Delete) {
-        if ((itemsListView.SelectedItems.Count > 0) && !ReadOnly) {
+        if ((itemsListView.SelectedItems.Count > 0) && !Content.IsReadOnly && !ReadOnly) {
           foreach (ListViewItem item in itemsListView.SelectedItems)
             Content.Remove((T)item.Tag);
@@ -213,5 +205,5 @@
         data.SetData("Type", item.GetType());
         data.SetData("Value", item);
-        if (ReadOnly) {
+        if (Content.IsReadOnly || ReadOnly) {
           DoDragDrop(data, DragDropEffects.Copy | DragDropEffects.Link);
         } else {
@@ -225,5 +217,5 @@
       e.Effect = DragDropEffects.None;
       Type type = e.Data.GetData("Type") as Type;
-      if (!ReadOnly && (type != null) && (typeof(T).IsAssignableFrom(type))) {
+      if (!Content.IsReadOnly && !ReadOnly && (type != null) && (typeof(T).IsAssignableFrom(type))) {
         if ((e.KeyState & 8) == 8) e.Effect = DragDropEffects.Copy;  // CTRL key
         else if ((e.KeyState & 4) == 4) e.Effect = DragDropEffects.Move;  // SHIFT key
Index: trunk/sources/HeuristicLab.Core.Views/3.3/ItemListView.cs
===================================================================
--- trunk/sources/HeuristicLab.Core.Views/3.3/ItemListView.cs	(revision 3434)
+++ trunk/sources/HeuristicLab.Core.Views/3.3/ItemListView.cs	(revision 3435)
@@ -48,12 +48,4 @@
     }
 
-    public override bool ReadOnly {
-      get {
-        if ((Content != null) && Content.IsReadOnly) return true;
-        else return base.ReadOnly;
-      }
-      set { base.ReadOnly = value; }
-    }
-
     public ListView ItemsListView {
       get { return itemsListView; }
@@ -125,13 +117,13 @@
         detailsGroupBox.Enabled = false;
       } else {
-        addButton.Enabled = !ReadOnly;
+        addButton.Enabled = !Content.IsReadOnly && !ReadOnly;
         moveUpButton.Enabled = itemsListView.SelectedItems.Count == 1 &&
                                itemsListView.SelectedIndices[0] != 0 &&
-                               !ReadOnly;
+                               !Content.IsReadOnly && !ReadOnly;
         moveDownButton.Enabled = itemsListView.SelectedItems.Count == 1 &&
                                  itemsListView.SelectedIndices[0] != itemsListView.Items.Count - 1 &&
-                                 !ReadOnly;
+                                 !Content.IsReadOnly && !ReadOnly;
         removeButton.Enabled = itemsListView.SelectedItems.Count > 0 &&
-                               !ReadOnly;
+                               !Content.IsReadOnly && !ReadOnly;
         itemsListView.Enabled = true;
         detailsGroupBox.Enabled = true;
@@ -202,10 +194,10 @@
       moveUpButton.Enabled = itemsListView.SelectedItems.Count == 1 &&
                              itemsListView.SelectedIndices[0] != 0 &&
-                             !ReadOnly;
+                             !Content.IsReadOnly && !ReadOnly;
       moveDownButton.Enabled = itemsListView.SelectedItems.Count == 1 &&
                                itemsListView.SelectedIndices[0] != itemsListView.Items.Count - 1 &&
-                               !ReadOnly;
+                               !Content.IsReadOnly && !ReadOnly;
       removeButton.Enabled = itemsListView.SelectedItems.Count > 0 &&
-                             !ReadOnly;
+                             !Content.IsReadOnly && !ReadOnly;
 
       if (itemsListView.SelectedItems.Count == 1) {
@@ -222,5 +214,5 @@
     protected virtual void itemsListView_KeyDown(object sender, KeyEventArgs e) {
       if (e.KeyCode == Keys.Delete) {
-        if ((itemsListView.SelectedItems.Count > 0) && !ReadOnly) {
+        if ((itemsListView.SelectedItems.Count > 0) && !Content.IsReadOnly && !ReadOnly) {
           foreach (ListViewItem item in itemsListView.SelectedItems)
             Content.RemoveAt(item.Index);
@@ -248,5 +240,5 @@
         data.SetData("Type", item.GetType());
         data.SetData("Value", item);
-        if (ReadOnly) {
+        if (Content.IsReadOnly || ReadOnly) {
           DoDragDrop(data, DragDropEffects.Copy | DragDropEffects.Link);
         } else {
@@ -260,5 +252,5 @@
       e.Effect = DragDropEffects.None;
       Type type = e.Data.GetData("Type") as Type;
-      if (!ReadOnly && (type != null) && (typeof(T).IsAssignableFrom(type))) {
+      if (!Content.IsReadOnly && !ReadOnly && (type != null) && (typeof(T).IsAssignableFrom(type))) {
         if ((e.KeyState & 8) == 8) e.Effect = DragDropEffects.Copy;  // CTRL key
         else if ((e.KeyState & 4) == 4) e.Effect = DragDropEffects.Move;  // SHIFT key
Index: trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionView.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionView.cs	(revision 3434)
+++ trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionView.cs	(revision 3435)
@@ -37,12 +37,4 @@
       get { return (IItemCollection<IRun>)base.Content; }
       set { base.Content = value; }
-    }
-
-    public override bool ReadOnly {
-      get {
-        if ((Content != null) && Content.IsReadOnly) return true;
-        else return base.ReadOnly;
-      }
-      set { base.ReadOnly = value; }
     }
 
@@ -101,5 +93,5 @@
         itemsListView.Enabled = true;
         detailsGroupBox.Enabled = true;
-        removeButton.Enabled = !ReadOnly;
+        removeButton.Enabled = itemsListView.SelectedItems.Count > 0 && !Content.IsReadOnly && !ReadOnly;
         viewHost.Enabled = true;
         viewHost.ReadOnly = ReadOnly;
@@ -148,5 +140,5 @@
     #region ListView Events
     protected virtual void itemsListView_SelectedIndexChanged(object sender, EventArgs e) {
-      removeButton.Enabled = itemsListView.SelectedItems.Count > 0 && !ReadOnly;
+      removeButton.Enabled = itemsListView.SelectedItems.Count > 0 && !Content.IsReadOnly && !ReadOnly;
       if (itemsListView.SelectedItems.Count == 1) {
         IRun item = (IRun)itemsListView.SelectedItems[0].Tag;
@@ -165,5 +157,5 @@
     protected virtual void itemsListView_KeyDown(object sender, KeyEventArgs e) {
       if (e.KeyCode == Keys.Delete) {
-        if ((itemsListView.SelectedItems.Count > 0) && !ReadOnly) {
+        if ((itemsListView.SelectedItems.Count > 0) && !Content.IsReadOnly && !ReadOnly) {
           foreach (ListViewItem item in itemsListView.SelectedItems)
             Content.Remove((IRun)item.Tag);
@@ -189,5 +181,5 @@
         data.SetData("Type", item.GetType());
         data.SetData("Value", item);
-        if (ReadOnly) {
+        if (Content.IsReadOnly || ReadOnly) {
           DoDragDrop(data, DragDropEffects.Copy | DragDropEffects.Link);
         } else {
@@ -200,7 +192,6 @@
     protected virtual void itemsListView_DragEnterOver(object sender, DragEventArgs e) {
       e.Effect = DragDropEffects.None;
-      if (ReadOnly) return;
       Type type = e.Data.GetData("Type") as Type;
-      if ((!ReadOnly) && (type != null) && (typeof(IRun).IsAssignableFrom(type))) {
+      if (!Content.IsReadOnly && !ReadOnly && (type != null) && (typeof(IRun).IsAssignableFrom(type))) {
         if ((e.KeyState & 8) == 8) e.Effect = DragDropEffects.Copy;  // CTRL key
         else if ((e.KeyState & 4) == 4) e.Effect = DragDropEffects.Move;  // SHIFT key
