Index: trunk/sources/HeuristicLab.Optimizer/3.3/FileManager.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimizer/3.3/FileManager.cs	(revision 2960)
+++ trunk/sources/HeuristicLab.Optimizer/3.3/FileManager.cs	(revision 2961)
@@ -26,5 +26,4 @@
 using System.Threading;
 using System.Windows.Forms;
-using HeuristicLab.Core;
 using HeuristicLab.Core.Views;
 using HeuristicLab.MainForm;
@@ -108,11 +107,13 @@
     }
     private static void Save(IContentView view) {
-      if ((!files.ContainsKey(view)) || (!File.Exists(files[view].Filename))) {
-        SaveAs(view);
-      } else {
-        if (files[view].Compressed)
-          SaveItemAsync(view, files[view].Filename, 9);
-        else
-          SaveItemAsync(view, files[view].Filename, 0);
+      if (view.SaveEnabled) {
+        if ((!files.ContainsKey(view)) || (!File.Exists(files[view].Filename))) {
+          SaveAs(view);
+        } else {
+          if (files[view].Compressed)
+            SaveItemAsync(view, files[view].Filename, 9);
+          else
+            SaveItemAsync(view, files[view].Filename, 0);
+        }
       }
     }
@@ -125,28 +126,30 @@
     }
     public static void SaveAs(IContentView view) {
-      if (saveFileDialog == null) {
-        saveFileDialog = new SaveFileDialog();
-        saveFileDialog.Title = "Save Item";
-        saveFileDialog.DefaultExt = "hl";
-        saveFileDialog.Filter = "Uncompressed HeuristicLab Files|*.hl|HeuristicLab Files|*.hl|All Files|*.*";
-        saveFileDialog.FilterIndex = 2;
-      }
-
-      if (!files.ContainsKey(view)) {
-        files.Add(view, new FileInfo());
-        saveFileDialog.FileName = view.Caption;
-      } else {
-        saveFileDialog.FileName = files[view].Filename;
-      }
-      if (! files[view].Compressed)
-        saveFileDialog.FilterIndex = 1;
-      else
-        saveFileDialog.FilterIndex = 2;
-
-      if (saveFileDialog.ShowDialog() == DialogResult.OK) {
-        if (saveFileDialog.FilterIndex == 1) {
-          SaveItemAsync(view, saveFileDialog.FileName, 0);
+      if (view.SaveEnabled) {
+        if (saveFileDialog == null) {
+          saveFileDialog = new SaveFileDialog();
+          saveFileDialog.Title = "Save Item";
+          saveFileDialog.DefaultExt = "hl";
+          saveFileDialog.Filter = "Uncompressed HeuristicLab Files|*.hl|HeuristicLab Files|*.hl|All Files|*.*";
+          saveFileDialog.FilterIndex = 2;
+        }
+
+        if (!files.ContainsKey(view)) {
+          files.Add(view, new FileInfo());
+          saveFileDialog.FileName = view.Caption;
         } else {
-          SaveItemAsync(view, saveFileDialog.FileName, 9);
+          saveFileDialog.FileName = files[view].Filename;
+        }
+        if (!files[view].Compressed)
+          saveFileDialog.FilterIndex = 1;
+        else
+          saveFileDialog.FilterIndex = 2;
+
+        if (saveFileDialog.ShowDialog() == DialogResult.OK) {
+          if (saveFileDialog.FilterIndex == 1) {
+            SaveItemAsync(view, saveFileDialog.FileName, 0);
+          } else {
+            SaveItemAsync(view, saveFileDialog.FileName, 9);
+          }
         }
       }
@@ -154,14 +157,6 @@
 
     public static void SaveAll() {
-      var views = from v in MainFormManager.MainForm.Views
-                  where v is IContentView
-                  select v as IContentView;
-
-      foreach (IContentView view in views) {
-        ItemView itemView = view as ItemView;
-        if ((itemView == null) || (itemView.EnableFileOperations)) {
-          Save(view);
-        }
-      }
+      foreach (IContentView view in MainFormManager.MainForm.Views.OfType<IContentView>())
+        Save(view);
     }
 
@@ -211,7 +206,7 @@
             try {
               SetWaitingCursor();
-              IItem item = (IItem)XmlParser.Deserialize(filename);
+              object content = XmlParser.Deserialize(filename);
               Invoke(delegate() {
-                IContentView view = MainFormManager.CreateDefaultView(item) as IContentView;
+                IContentView view = MainFormManager.CreateDefaultView(content) as IContentView;
                 if (view == null) {
                   MessageBox.Show("There is no view for the loaded item. It cannot be displayed. ", "No View Available", MessageBoxButtons.OK, MessageBoxIcon.Error);
Index: trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/SaveAllMenuItem.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/SaveAllMenuItem.cs	(revision 2960)
+++ trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/SaveAllMenuItem.cs	(revision 2961)
@@ -25,6 +25,4 @@
 using System.Linq;
 using System.Windows.Forms;
-using HeuristicLab.Core;
-using HeuristicLab.Core.Views;
 using HeuristicLab.MainForm;
 
@@ -48,7 +46,6 @@
     }
     protected override void OnActiveViewChanged(object sender, EventArgs e) {
-      var views = from v in MainFormManager.MainForm.Views
-                  where v is IContentView
-                  where ((v is ItemView) && ((ItemView)v).EnableFileOperations) || (!(v is ItemView))
+      var views = from v in MainFormManager.MainForm.Views.OfType<IContentView>()
+                  where v.SaveEnabled
                   select v;
       ToolStripItem.Enabled = views.FirstOrDefault() != null;
Index: trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/SaveAsMenuItem.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/SaveAsMenuItem.cs	(revision 2960)
+++ trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/SaveAsMenuItem.cs	(revision 2961)
@@ -23,6 +23,4 @@
 using System.Collections.Generic;
 using System.Windows.Forms;
-using HeuristicLab.Core;
-using HeuristicLab.Core.Views;
 using HeuristicLab.MainForm;
 
@@ -47,8 +45,5 @@
     protected override void OnActiveViewChanged(object sender, EventArgs e) {
       IContentView activeView = MainFormManager.MainForm.ActiveView as IContentView;
-      bool enable = activeView != null;
-      ItemView itemView = MainFormManager.MainForm.ActiveView as ItemView;
-      if ((enable) && (itemView != null)) enable = itemView.EnableFileOperations;
-      ToolStripItem.Enabled = enable;
+      ToolStripItem.Enabled = (activeView != null) && (activeView.SaveEnabled);
     }
 
Index: trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/SaveMenuItem.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/SaveMenuItem.cs	(revision 2960)
+++ trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/SaveMenuItem.cs	(revision 2961)
@@ -24,6 +24,4 @@
 using System.Drawing;
 using System.Windows.Forms;
-using HeuristicLab.Core;
-using HeuristicLab.Core.Views;
 using HeuristicLab.MainForm;
 
@@ -51,8 +49,5 @@
     protected override void OnActiveViewChanged(object sender, EventArgs e) {
       IContentView activeView = MainFormManager.MainForm.ActiveView as IContentView;
-      bool enable = activeView != null;
-      ItemView itemView = MainFormManager.MainForm.ActiveView as ItemView;
-      if ((enable) && (itemView != null)) enable = itemView.EnableFileOperations;
-      ToolStripItem.Enabled = enable;
+      ToolStripItem.Enabled = (activeView != null) && (activeView.SaveEnabled);
     }
 
Index: trunk/sources/HeuristicLab.Optimizer/3.3/ToolBarItems/SaveAllToolBarItem.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimizer/3.3/ToolBarItems/SaveAllToolBarItem.cs	(revision 2960)
+++ trunk/sources/HeuristicLab.Optimizer/3.3/ToolBarItems/SaveAllToolBarItem.cs	(revision 2961)
@@ -24,6 +24,4 @@
 using System.Linq;
 using System.Windows.Forms;
-using HeuristicLab.Core;
-using HeuristicLab.Core.Views;
 using HeuristicLab.MainForm;
 
@@ -47,7 +45,6 @@
     }
     protected override void OnActiveViewChanged(object sender, EventArgs e) {
-      var views = from v in MainFormManager.MainForm.Views
-                  where v is IContentView
-                  where ((v is ItemView) && ((ItemView)v).EnableFileOperations) || (!(v is ItemView))
+      var views = from v in MainFormManager.MainForm.Views.OfType<IContentView>()
+                  where v.SaveEnabled
                   select v;
       ToolStripItem.Enabled = views.FirstOrDefault() != null;
Index: trunk/sources/HeuristicLab.Optimizer/3.3/ToolBarItems/SaveToolBarItem.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimizer/3.3/ToolBarItems/SaveToolBarItem.cs	(revision 2960)
+++ trunk/sources/HeuristicLab.Optimizer/3.3/ToolBarItems/SaveToolBarItem.cs	(revision 2961)
@@ -23,6 +23,4 @@
 using System.Drawing;
 using System.Windows.Forms;
-using HeuristicLab.Core;
-using HeuristicLab.Core.Views;
 using HeuristicLab.MainForm;
 
@@ -47,8 +45,5 @@
     protected override void OnActiveViewChanged(object sender, EventArgs e) {
       IContentView activeView = MainFormManager.MainForm.ActiveView as IContentView;
-      bool enable = activeView != null;
-      ItemView itemView = MainFormManager.MainForm.ActiveView as ItemView;
-      if ((enable) && (itemView != null)) enable = itemView.EnableFileOperations;
-      ToolStripItem.Enabled = enable;
+      ToolStripItem.Enabled = (activeView != null) && (activeView.SaveEnabled);
     }
 
