Index: trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/CloseAllMenuItem.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/CloseAllMenuItem.cs	(revision 2520)
+++ trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/CloseAllMenuItem.cs	(revision 2546)
@@ -10,15 +10,20 @@
 
 namespace HeuristicLab.Optimizer.MenuItems {
-  public class CloseAllMenuItem : HeuristicLab.MainForm.WindowsForms.MenuItemBase, IOptimizerUserInterfaceItemProvider {
+  internal class CloseAllMenuItem : HeuristicLab.MainForm.WindowsForms.MenuItemBase, IOptimizerUserInterfaceItemProvider {
     public override string Name {
       get { return "Clos&e All"; }
     }
-
     public override IEnumerable<string> Structure {
       get { return new string[] { "&File" }; }
     }
-
     public override int Position {
       get { return 1700; }
+    }
+
+    public override void MainFormInitialized(object sender, EventArgs e) {
+      ToolStripItem.Enabled = false;
+    }
+    public override void ActiveViewChanged(object sender, EventArgs e) {
+      ToolStripItem.Enabled = MainFormManager.MainForm.Views.FirstOrDefault() != null;
     }
 
Index: trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/CloseMenuItem.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/CloseMenuItem.cs	(revision 2520)
+++ trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/CloseMenuItem.cs	(revision 2546)
@@ -10,15 +10,20 @@
 
 namespace HeuristicLab.Optimizer.MenuItems {
-  public class CloseMenuItem : HeuristicLab.MainForm.WindowsForms.MenuItemBase, IOptimizerUserInterfaceItemProvider {
+  internal class CloseMenuItem : HeuristicLab.MainForm.WindowsForms.MenuItemBase, IOptimizerUserInterfaceItemProvider {
     public override string Name {
       get { return "&Close"; }
     }
-
     public override IEnumerable<string> Structure {
       get { return new string[] { "&File" }; }
     }
-
     public override int Position {
       get { return 1600; }
+    }
+
+    public override void MainFormInitialized(object sender, EventArgs e) {
+      ToolStripItem.Enabled = false;
+    }
+    public override void ActiveViewChanged(object sender, EventArgs e) {
+      ToolStripItem.Enabled = MainFormManager.MainForm.Views.FirstOrDefault() != null;
     }
 
Index: trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/ExitMenuItem.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/ExitMenuItem.cs	(revision 2520)
+++ trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/ExitMenuItem.cs	(revision 2546)
@@ -10,17 +10,14 @@
 
 namespace HeuristicLab.Optimizer.MenuItems {
-  public class ExitMenuItem : HeuristicLab.MainForm.WindowsForms.MenuItemBase, IOptimizerUserInterfaceItemProvider {
+  internal class ExitMenuItem : HeuristicLab.MainForm.WindowsForms.MenuItemBase, IOptimizerUserInterfaceItemProvider {
     public override IEnumerable<string> Structure {
       get { return new string[] { "&File" }; }
     }
-
     public override string Name {
       get { return "E&xit"; }
     }
-
     public override int Position {
       get { return 1999; }
     }
-
     public override Keys ShortCutKeys {
       get { return Keys.Control | Keys.X; }
Index: trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/NewMenuItem.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/NewMenuItem.cs	(revision 2520)
+++ trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/NewMenuItem.cs	(revision 2546)
@@ -9,25 +9,20 @@
 
 namespace HeuristicLab.Optimizer.MenuItems {
-  public class NewMenuItem : HeuristicLab.MainForm.WindowsForms.MenuItemBase, IOptimizerUserInterfaceItemProvider {
+  internal class NewMenuItem : HeuristicLab.MainForm.WindowsForms.MenuItemBase, IOptimizerUserInterfaceItemProvider {
     public override string Name {
       get { return "&New..."; }
     }
-
     public override IEnumerable<string> Structure {
       get { return new string[] { "&File" }; }
     }
-
     public override int Position {
       get { return 1100; }
     }
-
     public override ToolStripItemDisplayStyle ToolStripItemDisplayStyle {
       get { return ToolStripItemDisplayStyle.ImageAndText; }
     }
-
     public override Image Image {
       get { return Resources.NewIcon; }
     }
-
     public override Keys ShortCutKeys {
       get { return Keys.Control | Keys.N; }
@@ -35,5 +30,5 @@
 
     public override void Execute() {
-      Actions.NewAction.Execute();
+      FileManager.New();
     }
   }
Index: trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/OpenMenuItem.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/OpenMenuItem.cs	(revision 2520)
+++ trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/OpenMenuItem.cs	(revision 2546)
@@ -9,25 +9,20 @@
 
 namespace HeuristicLab.Optimizer.MenuItems {
-  public class OpenMenuItem : HeuristicLab.MainForm.WindowsForms.MenuItemBase, IOptimizerUserInterfaceItemProvider {
+  internal class OpenMenuItem : HeuristicLab.MainForm.WindowsForms.MenuItemBase, IOptimizerUserInterfaceItemProvider {
     public override string Name {
       get { return "&Open..."; }
     }
-
     public override IEnumerable<string> Structure {
       get { return new string[] { "&File" }; }
     }
-
     public override int Position {
       get { return 1200; }
     }
-
     public override ToolStripItemDisplayStyle ToolStripItemDisplayStyle {
       get { return ToolStripItemDisplayStyle.ImageAndText; }
     }
-
     public override Image Image {
       get { return Resources.OpenIcon; }
     }
-
     public override Keys ShortCutKeys {
       get { return Keys.Control | Keys.O; }
@@ -35,5 +30,5 @@
 
     public override void Execute() {
-      Actions.OpenAction.Execute();
+      FileManager.Open();
     }
   }
Index: trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/SaveAllMenuItem.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/SaveAllMenuItem.cs	(revision 2520)
+++ trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/SaveAllMenuItem.cs	(revision 2546)
@@ -5,31 +5,35 @@
 using System.Windows.Forms;
 using System.Drawing;
+using HeuristicLab.MainForm;
 using HeuristicLab.MainForm.WindowsForms;
 using HeuristicLab.Common.Resources;
 
 namespace HeuristicLab.Optimizer.MenuItems {
-  public class SaveAllMenuItem : HeuristicLab.MainForm.WindowsForms.MenuItemBase, IOptimizerUserInterfaceItemProvider {
+  internal class SaveAllMenuItem : HeuristicLab.MainForm.WindowsForms.MenuItemBase, IOptimizerUserInterfaceItemProvider {
     public override string Name {
       get { return "Save Al&l"; }
     }
-
     public override IEnumerable<string> Structure {
       get { return new string[] { "&File" }; }
     }
-
     public override int Position {
       get { return 1500; }
     }
-
     public override ToolStripItemDisplayStyle ToolStripItemDisplayStyle {
       get { return ToolStripItemDisplayStyle.ImageAndText; }
     }
-
     public override Image Image {
       get { return Resources.SaveAllIcon; }
     }
 
+    public override void MainFormInitialized(object sender, EventArgs e) {
+      ToolStripItem.Enabled = false;
+    }
+    public override void ActiveViewChanged(object sender, EventArgs e) {
+      ToolStripItem.Enabled = MainFormManager.MainForm.Views.FirstOrDefault() != null;
+    }
+
     public override void Execute() {
-      Actions.SaveAllAction.Execute();
+      FileManager.SaveAll();
     }
   }
Index: trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/SaveAsMenuItem.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/SaveAsMenuItem.cs	(revision 2520)
+++ trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/SaveAsMenuItem.cs	(revision 2546)
@@ -5,31 +5,38 @@
 using System.Windows.Forms;
 using System.Drawing;
+using HeuristicLab.MainForm;
 using HeuristicLab.MainForm.WindowsForms;
 using HeuristicLab.Common.Resources;
+using HeuristicLab.Core;
+using HeuristicLab.Core.Views;
 
 namespace HeuristicLab.Optimizer.MenuItems {
-  public class SaveAsMenuItem : HeuristicLab.MainForm.WindowsForms.MenuItemBase, IOptimizerUserInterfaceItemProvider {
+  internal class SaveAsMenuItem : HeuristicLab.MainForm.WindowsForms.MenuItemBase, IOptimizerUserInterfaceItemProvider {
     public override string Name {
       get { return "Save &As..."; }
     }
-
     public override IEnumerable<string> Structure {
       get { return new string[] { "&File" }; }
     }
-
     public override int Position {
       get { return 1400; }
     }
-
     public override ToolStripItemDisplayStyle ToolStripItemDisplayStyle {
       get { return ToolStripItemDisplayStyle.ImageAndText; }
     }
-
     public override Keys ShortCutKeys {
       get { return Keys.Control | Keys.Shift | Keys.S; }
     }
 
+    public override void MainFormInitialized(object sender, EventArgs e) {
+      ToolStripItem.Enabled = false;
+    }
+    public override void ActiveViewChanged(object sender, EventArgs e) {
+      IItemView activeView = MainFormManager.MainForm.ActiveView as IItemView;
+      ToolStripItem.Enabled = ((activeView != null) && (CreatableAttribute.IsCreatable(activeView.Item.GetType())));
+    }
+
     public override void Execute() {
-      Actions.SaveAsAction.Execute();
+      FileManager.SaveAs();
     }
   }
Index: trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/SaveMenuItem.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/SaveMenuItem.cs	(revision 2520)
+++ trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/SaveMenuItem.cs	(revision 2546)
@@ -5,35 +5,41 @@
 using System.Windows.Forms;
 using System.Drawing;
+using HeuristicLab.MainForm;
 using HeuristicLab.MainForm.WindowsForms;
 using HeuristicLab.Common.Resources;
+using HeuristicLab.Core;
+using HeuristicLab.Core.Views;
 
 namespace HeuristicLab.Optimizer.MenuItems {
-  public class SaveMenuItem : HeuristicLab.MainForm.WindowsForms.MenuItemBase, IOptimizerUserInterfaceItemProvider {
+  internal class SaveMenuItem : HeuristicLab.MainForm.WindowsForms.MenuItemBase, IOptimizerUserInterfaceItemProvider {
     public override string Name {
       get { return "&Save"; }
     }
-
     public override IEnumerable<string> Structure {
       get { return new string[] { "&File" }; }
     }
-
     public override int Position {
       get { return 1300; }
     }
-
     public override ToolStripItemDisplayStyle ToolStripItemDisplayStyle {
       get { return ToolStripItemDisplayStyle.ImageAndText; }
     }
-
     public override Image Image {
       get { return Resources.SaveIcon; }
     }
-
     public override Keys ShortCutKeys {
       get { return Keys.Control | Keys.S; }
     }
 
+    public override void MainFormInitialized(object sender, EventArgs e) {
+      ToolStripItem.Enabled = false;
+    }
+    public override void ActiveViewChanged(object sender, EventArgs e) {
+      IItemView activeView = MainFormManager.MainForm.ActiveView as IItemView;
+      ToolStripItem.Enabled = ((activeView != null) && (CreatableAttribute.IsCreatable(activeView.Item.GetType())));
+    }
+
     public override void Execute() {
-      Actions.SaveAction.Execute();
+      FileManager.Save();
     }
   }
Index: trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/Separators.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/Separators.cs	(revision 2520)
+++ trunk/sources/HeuristicLab.Optimizer/3.3/MenuItems/Separators.cs	(revision 2546)
@@ -10,5 +10,5 @@
 
 namespace HeuristicLab.Optimizer.MenuItems {
-  public class SeparatorMenuItem : MenuSeparatorItemBase, IOptimizerUserInterfaceItemProvider {
+  internal class SeparatorMenuItem : MenuSeparatorItemBase, IOptimizerUserInterfaceItemProvider {
     public override IEnumerable<string> Structure {
       get { return new string[] { "&File" }; }
