Index: /stable/HeuristicLab.Core.Views/3.3/BreadcrumbViewHost.Designer.cs
===================================================================
--- /stable/HeuristicLab.Core.Views/3.3/BreadcrumbViewHost.Designer.cs	(revision 13258)
+++ /stable/HeuristicLab.Core.Views/3.3/BreadcrumbViewHost.Designer.cs	(revision 13258)
@@ -0,0 +1,53 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+namespace HeuristicLab.Core.Views {
+  partial class BreadcrumbViewHost {
+    /// <summary> 
+    /// Required designer variable.
+    /// </summary>
+    private System.ComponentModel.IContainer components = null;
+
+    /// <summary> 
+    /// Clean up any resources being used.
+    /// </summary>
+    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    protected override void Dispose(bool disposing) {
+      if (disposing && (components != null)) {
+        components.Dispose();
+      }
+      base.Dispose(disposing);
+    }
+
+    #region Component Designer generated code
+
+    /// <summary> 
+    /// Required method for Designer support - do not modify 
+    /// the contents of this method with the code editor.
+    /// </summary>
+    private void InitializeComponent() {
+      components = new System.ComponentModel.Container();
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
+    }
+
+    #endregion
+  }
+}
Index: /stable/HeuristicLab.Core.Views/3.3/BreadcrumbViewHost.cs
===================================================================
--- /stable/HeuristicLab.Core.Views/3.3/BreadcrumbViewHost.cs	(revision 13258)
+++ /stable/HeuristicLab.Core.Views/3.3/BreadcrumbViewHost.cs	(revision 13258)
@@ -0,0 +1,234 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Linq;
+using System.Windows.Forms;
+using HeuristicLab.Common;
+using HeuristicLab.MainForm.WindowsForms;
+using View = HeuristicLab.MainForm.WindowsForms.View;
+
+namespace HeuristicLab.Core.Views {
+  public partial class BreadcrumbViewHost : ViewHost {
+    private const string Separator = ">>";
+    private const string Ellipsis = "...";
+
+    private readonly Font font = new Font("Microsoft Sans Serif", 7f);
+    private readonly List<Label> labels = new List<Label>();
+    private readonly LinkedList<Tuple<string, IContent>> breadcrumbs = new LinkedList<Tuple<string, IContent>>();
+
+    private Size requiredSize;
+    private Point requiredLocation;
+    private bool enableBreadcrumbs;
+    private bool showSingle;
+
+    [DefaultValue(false)]
+    public bool EnableBreadcrumbs {
+      get { return enableBreadcrumbs; }
+      set {
+        if (enableBreadcrumbs == value) return;
+        enableBreadcrumbs = value;
+        ConfigureViewLayout(ActiveView as ContentView);
+      }
+    }
+
+    [DefaultValue(false)]
+    public bool ShowSingle {
+      get { return showSingle; }
+      set {
+        if (showSingle == value) return;
+        showSingle = value;
+
+        if (enableBreadcrumbs && !breadcrumbs.Any())
+          AddBreadcrumbs(Content);
+
+        ConfigureViewLayout(ActiveView as ContentView);
+      }
+    }
+
+    public IEnumerable<IContent> Breadcrumbs { get { return breadcrumbs.Select(x => x.Item2); } }
+
+    public BreadcrumbViewHost() {
+      InitializeComponent();
+    }
+
+    #region Overrides
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      if (Content == null) {
+        breadcrumbs.Clear();
+      } else {
+        if (enableBreadcrumbs && showSingle)
+          if (!breadcrumbs.Any())
+            AddBreadcrumbs(Content);
+          else if (breadcrumbs.Count == 1) {
+            breadcrumbs.Clear();
+            AddBreadcrumbs(Content);
+          }
+      }
+
+      UpdateBreadcrumbTrail();
+      ConfigureViewLayout(ActiveView as ContentView);
+    }
+
+    protected override void OnSizeChanged(EventArgs e) {
+      UpdateBreadcrumbTrail();
+      base.OnSizeChanged(e);
+    }
+
+    protected override void ConfigureViewLayout(View view) {
+      if (view == null) return;
+
+      base.ConfigureViewLayout(view);
+
+      requiredSize = view.Size;
+      requiredLocation = Point.Empty;
+
+      if (enableBreadcrumbs && (breadcrumbs.Count > 1 || breadcrumbs.Count == 1 && showSingle)) {
+        requiredSize.Height -= font.Height + 6;
+        requiredLocation.Y += font.Height + 8;
+
+        if (view.Dock == DockStyle.Fill)
+          view.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right;
+      }
+
+      view.Size = requiredSize;
+      view.Location = requiredLocation;
+    }
+    #endregion
+
+    public void AddBreadcrumbs(params IContent[] crumbs) {
+      foreach (var c in crumbs) {
+        var item = c as INamedItem;
+        string text = item != null ? item.Name : c != null ? c.ToString() : "null";
+        AddBreadcrumb(text, c);
+      }
+    }
+
+    public void AddBreadcrumb(string text, IContent content) {
+      if (breadcrumbs.Any(x => x.Item2 == content)) return;
+      breadcrumbs.AddLast(Tuple.Create(text, content));
+    }
+
+    #region Event Handlers
+    private void label_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) {
+      var label = (LinkLabel)sender;
+      var tuple = (Tuple<string, IContent>)label.Tag;
+
+      while (breadcrumbs.Any() && breadcrumbs.Last.Value != tuple)
+        breadcrumbs.RemoveLast();
+      if (breadcrumbs.Count == 1 && !showSingle)
+        breadcrumbs.RemoveLast();
+
+      Content = tuple.Item2;
+    }
+    #endregion
+
+    #region Helpers
+    private void UpdateBreadcrumbTrail() {
+      foreach (var l in labels)
+        Controls.Remove(l);
+      labels.Clear();
+
+      ConfigureViewLayout(ActiveView as ContentView);
+
+      if (!enableBreadcrumbs || !breadcrumbs.Any() || breadcrumbs.Count == 1 && !showSingle) return;
+
+      if (!AddLabelsLeftToRight())
+        AddLabelsRightToLeft();
+    }
+
+    private bool AddLabelsLeftToRight() {
+      var curLoc = new Point(3, 0);
+      int idx = 0;
+
+      foreach (var bc in breadcrumbs) {
+        Label label;
+
+        if (bc == breadcrumbs.Last.Value) {
+          label = new Label { Location = curLoc, AutoSize = true, Font = font, Text = bc.Item1 };
+        } else {
+          label = new LinkLabel { Location = curLoc, AutoSize = true, Font = font, Text = bc.Item1, Tag = bc };
+          ((LinkLabel)label).LinkClicked += label_LinkClicked;
+        }
+
+        labels.Add(label);
+        label.Size = label.GetPreferredSize(Size.Empty);
+        curLoc.X += label.Size.Width;
+
+        if (++idx < breadcrumbs.Count) {
+          var separator = new Label { Location = curLoc, AutoSize = true, Font = font, Text = Separator };
+          labels.Add(separator);
+          separator.Size = separator.GetPreferredSize(Size.Empty);
+          curLoc.X += separator.Size.Width;
+        }
+      }
+
+      double width = Width;
+      if (ViewsLabelVisible)
+        width -= viewsLabel.Width + viewsLabel.Margin.Left + viewsLabel.Margin.Right;
+      bool success = curLoc.X <= width;
+
+      if (success)
+        Controls.AddRange(labels.ToArray());
+
+      return success;
+    }
+
+    private void AddLabelsRightToLeft() {
+      if (!labels.Any()) return;
+
+      var curLoc = new Point(3, 0);
+
+      var ellipsis = new LinkLabel { Location = curLoc, AutoSize = true, Font = font, Text = Ellipsis };
+      labels.Insert(0, ellipsis);
+      Controls.Add(ellipsis);
+      curLoc.X += ellipsis.Size.Width;
+
+      double x = Width;
+      if (ViewsLabelVisible)
+        x -= viewsLabel.Width + viewsLabel.Margin.Left + viewsLabel.Margin.Right;
+
+      int i = labels.Count - 1;
+
+      while (i >= 1) {
+        x -= labels[i].Size.Width;
+        x -= labels[i - 1].Size.Width;
+        if (x < curLoc.X) break;
+        i -= 2;
+      }
+
+      ellipsis.Tag = breadcrumbs.ElementAt(i / 2);
+      ellipsis.LinkClicked += label_LinkClicked;
+
+      while (++i < labels.Count) {
+        var l = labels[i];
+        l.Location = curLoc;
+        Controls.Add(l);
+        curLoc.X += l.Size.Width;
+      }
+    }
+    #endregion
+  }
+}
Index: /stable/HeuristicLab.Core.Views/3.3/HeuristicLab.Core.Views-3.3.csproj
===================================================================
--- /stable/HeuristicLab.Core.Views/3.3/HeuristicLab.Core.Views-3.3.csproj	(revision 13257)
+++ /stable/HeuristicLab.Core.Views/3.3/HeuristicLab.Core.Views-3.3.csproj	(revision 13258)
@@ -123,4 +123,10 @@
   <ItemGroup>
     <None Include="Plugin.cs.frame" />
+    <Compile Include="BreadcrumbViewHost.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="BreadcrumbViewHost.Designer.cs">
+      <DependentUpon>BreadcrumbViewHost.cs</DependentUpon>
+    </Compile>
     <Compile Include="CheckedItemCollectionView.cs">
       <SubType>UserControl</SubType>
Index: /stable/HeuristicLab.MainForm.WindowsForms/3.3/Controls/ViewHost.Designer.cs
===================================================================
--- /stable/HeuristicLab.MainForm.WindowsForms/3.3/Controls/ViewHost.Designer.cs	(revision 13257)
+++ /stable/HeuristicLab.MainForm.WindowsForms/3.3/Controls/ViewHost.Designer.cs	(revision 13258)
@@ -129,5 +129,5 @@
     #endregion
 
-    private System.Windows.Forms.Label viewsLabel;
+    protected System.Windows.Forms.Label viewsLabel;
     private System.Windows.Forms.Label messageLabel;
     private System.Windows.Forms.ToolTip toolTip;
Index: /stable/HeuristicLab.MainForm.WindowsForms/3.3/Controls/ViewHost.cs
===================================================================
--- /stable/HeuristicLab.MainForm.WindowsForms/3.3/Controls/ViewHost.cs	(revision 13257)
+++ /stable/HeuristicLab.MainForm.WindowsForms/3.3/Controls/ViewHost.cs	(revision 13258)
@@ -29,5 +29,5 @@
 namespace HeuristicLab.MainForm.WindowsForms {
   [Content(typeof(IContent))]
-  public sealed partial class ViewHost : AsynchronousContentView {
+  public partial class ViewHost : AsynchronousContentView {
     public ViewHost() {
       InitializeComponent();
@@ -93,8 +93,5 @@
             if (view != null) {
               view.Visible = true;
-              if (ViewsLabelVisible) {
-                view.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right;
-                view.Size = new Size(Width - this.viewsLabel.Width - this.viewsLabel.Margin.Left - this.viewsLabel.Margin.Right, this.Height);
-              } else view.Dock = DockStyle.Fill;
+              ConfigureViewLayout(view);
               if (!Controls.Contains((view))) Controls.Add(view);
               view.OnShown(new ViewShownEventArgs(view, false));
@@ -108,4 +105,11 @@
         }
       }
+    }
+
+    protected virtual void ConfigureViewLayout(View view) {
+      if (ViewsLabelVisible) {
+        view.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right;
+        view.Size = new Size(Width - viewsLabel.Width - viewsLabel.Margin.Left - viewsLabel.Margin.Right, Height);
+      } else view.Dock = DockStyle.Fill;
     }
 
Index: /stable/HeuristicLab.Operators.Views.GraphVisualization.Views/3.3/OperatorGraphView.Designer.cs
===================================================================
--- /stable/HeuristicLab.Operators.Views.GraphVisualization.Views/3.3/OperatorGraphView.Designer.cs	(revision 13257)
+++ /stable/HeuristicLab.Operators.Views.GraphVisualization.Views/3.3/OperatorGraphView.Designer.cs	(revision 13258)
@@ -61,5 +61,5 @@
       this.selectButton = new System.Windows.Forms.Button();
       this.detailsGroupBox = new System.Windows.Forms.GroupBox();
-      this.detailsViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
+      this.detailsViewHost = new HeuristicLab.Core.Views.BreadcrumbViewHost();
       this.buttonToolTip = new System.Windows.Forms.ToolTip(this.components);
       this.shapeContextMenu.SuspendLayout();
@@ -235,4 +235,5 @@
                   | System.Windows.Forms.AnchorStyles.Right)));
       this.detailsViewHost.Content = null;
+      this.detailsViewHost.EnableBreadcrumbs = true;
       this.detailsViewHost.Location = new System.Drawing.Point(3, 16);
       this.detailsViewHost.Name = "detailsViewHost";
@@ -270,5 +271,5 @@
     private System.Windows.Forms.SplitContainer splitContainer;
     private System.Windows.Forms.GroupBox detailsGroupBox;
-    private HeuristicLab.MainForm.WindowsForms.ViewHost detailsViewHost;
+    private HeuristicLab.Core.Views.BreadcrumbViewHost detailsViewHost;
     private System.Windows.Forms.Button selectButton;
     private System.Windows.Forms.Button zoomOutButton;
Index: /stable/HeuristicLab.Operators.Views.GraphVisualization.Views/3.3/OperatorGraphView.cs
===================================================================
--- /stable/HeuristicLab.Operators.Views.GraphVisualization.Views/3.3/OperatorGraphView.cs	(revision 13257)
+++ /stable/HeuristicLab.Operators.Views.GraphVisualization.Views/3.3/OperatorGraphView.cs	(revision 13258)
@@ -25,4 +25,5 @@
 using System.Windows.Forms;
 using HeuristicLab.Core;
+using HeuristicLab.Core.Views;
 using HeuristicLab.MainForm;
 using HeuristicLab.MainForm.WindowsForms;
@@ -140,9 +141,28 @@
           if (shapeInfo != null) {
             IOperator op = this.VisualizationInfo.GetOperatorForShapeInfo(shapeInfo);
-            IContentView view = MainFormManager.MainForm.ShowContent(op);
-            if (view != null) {
-              view.ReadOnly = this.ReadOnly;
-              view.Locked = this.Locked;
+            IOperatorGraphOperator graphOp = op as IOperatorGraphOperator;
+
+            Control c = this;
+            BreadcrumbViewHost vh;
+
+            do {
+              c = c.Parent;
+              vh = c as BreadcrumbViewHost;
+            } while ((vh == null || !vh.EnableBreadcrumbs) && c != null);
+
+            if (graphOp != null && vh != null) {
+              vh.AddBreadcrumbs(vh.Content);
+              vh.AddBreadcrumb(graphOp.Name, graphOp.OperatorGraph);
+              vh.Content = graphOp.OperatorGraph;
+              vh.ReadOnly = ReadOnly;
+              vh.Locked = Locked;
+            } else {
+              IContentView view = MainFormManager.MainForm.ShowContent(op);
+              if (view != null) {
+                view.ReadOnly = ReadOnly;
+                view.Locked = Locked;
+              }
             }
+
             HandledMouseEventArgs eventArgs = e as HandledMouseEventArgs;
             if (eventArgs != null)
Index: /stable/HeuristicLab.Operators.Views.GraphVisualization.Views/3.3/Plugin.cs.frame
===================================================================
--- /stable/HeuristicLab.Operators.Views.GraphVisualization.Views/3.3/Plugin.cs.frame	(revision 13257)
+++ /stable/HeuristicLab.Operators.Views.GraphVisualization.Views/3.3/Plugin.cs.frame	(revision 13258)
@@ -29,4 +29,5 @@
   [PluginDependency("HeuristicLab.Common.Resources", "3.3")]
   [PluginDependency("HeuristicLab.Core", "3.3")]
+  [PluginDependency("HeuristicLab.Core.Views", "3.3")]
   [PluginDependency("HeuristicLab.MainForm", "3.3")]
   [PluginDependency("HeuristicLab.MainForm.WindowsForms", "3.3")]
Index: /stable/HeuristicLab.Optimization.Views/3.3/EngineAlgorithmView.Designer.cs
===================================================================
--- /stable/HeuristicLab.Optimization.Views/3.3/EngineAlgorithmView.Designer.cs	(revision 13257)
+++ /stable/HeuristicLab.Optimization.Views/3.3/EngineAlgorithmView.Designer.cs	(revision 13258)
@@ -50,7 +50,5 @@
       this.engineViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
       this.operatorGraphTabPage = new System.Windows.Forms.TabPage();
-      this.openOperatorGraphButton = new System.Windows.Forms.Button();
-      this.newOperatorGraphButton = new System.Windows.Forms.Button();
-      this.operatorGraphViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
+      this.operatorGraphViewHost = new HeuristicLab.Core.Views.BreadcrumbViewHost();
       this.tabControl.SuspendLayout();
       this.parametersTabPage.SuspendLayout();
@@ -219,6 +217,4 @@
       // operatorGraphTabPage
       // 
-      this.operatorGraphTabPage.Controls.Add(this.openOperatorGraphButton);
-      this.operatorGraphTabPage.Controls.Add(this.newOperatorGraphButton);
       this.operatorGraphTabPage.Controls.Add(this.operatorGraphViewHost);
       this.operatorGraphTabPage.Location = new System.Drawing.Point(4, 22);
@@ -229,26 +225,4 @@
       this.operatorGraphTabPage.UseVisualStyleBackColor = true;
       // 
-      // openOperatorGraphButton
-      // 
-      this.openOperatorGraphButton.Enabled = false;
-      this.openOperatorGraphButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.Open;
-      this.openOperatorGraphButton.Location = new System.Drawing.Point(33, 3);
-      this.openOperatorGraphButton.Name = "openOperatorGraphButton";
-      this.openOperatorGraphButton.Size = new System.Drawing.Size(24, 24);
-      this.openOperatorGraphButton.TabIndex = 1;
-      this.toolTip.SetToolTip(this.openOperatorGraphButton, "Open Operator Graph");
-      this.openOperatorGraphButton.UseVisualStyleBackColor = true;
-      // 
-      // newOperatorGraphButton
-      // 
-      this.newOperatorGraphButton.Enabled = false;
-      this.newOperatorGraphButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.NewDocument;
-      this.newOperatorGraphButton.Location = new System.Drawing.Point(3, 3);
-      this.newOperatorGraphButton.Name = "newOperatorGraphButton";
-      this.newOperatorGraphButton.Size = new System.Drawing.Size(24, 24);
-      this.newOperatorGraphButton.TabIndex = 1;
-      this.toolTip.SetToolTip(this.newOperatorGraphButton, "New Operator Graph");
-      this.newOperatorGraphButton.UseVisualStyleBackColor = true;
-      // 
       // operatorGraphViewHost
       // 
@@ -258,9 +232,11 @@
       this.operatorGraphViewHost.Caption = "View";
       this.operatorGraphViewHost.Content = null;
+      this.operatorGraphViewHost.EnableBreadcrumbs = true;
       this.operatorGraphViewHost.Enabled = false;
-      this.operatorGraphViewHost.Location = new System.Drawing.Point(3, 33);
+      this.operatorGraphViewHost.Location = new System.Drawing.Point(6, 6);
       this.operatorGraphViewHost.Name = "operatorGraphViewHost";
       this.operatorGraphViewHost.ReadOnly = true;
-      this.operatorGraphViewHost.Size = new System.Drawing.Size(699, 431);
+      this.operatorGraphViewHost.ShowSingle = true;
+      this.operatorGraphViewHost.Size = new System.Drawing.Size(693, 455);
       this.operatorGraphViewHost.TabIndex = 0;
       this.operatorGraphViewHost.ViewsLabelVisible = true;
@@ -295,7 +271,5 @@
     protected HeuristicLab.MainForm.WindowsForms.ViewHost engineViewHost;
     protected System.Windows.Forms.TabPage operatorGraphTabPage;
-    protected HeuristicLab.MainForm.WindowsForms.ViewHost operatorGraphViewHost;
-    protected System.Windows.Forms.Button openOperatorGraphButton;
-    protected System.Windows.Forms.Button newOperatorGraphButton;
+    protected HeuristicLab.Core.Views.BreadcrumbViewHost operatorGraphViewHost;
 
   }
Index: /stable/HeuristicLab.Optimization.Views/3.3/EngineAlgorithmView.cs
===================================================================
--- /stable/HeuristicLab.Optimization.Views/3.3/EngineAlgorithmView.cs	(revision 13257)
+++ /stable/HeuristicLab.Optimization.Views/3.3/EngineAlgorithmView.cs	(revision 13258)
@@ -95,6 +95,4 @@
       base.SetEnabledStateOfControls();
       engineViewHost.Enabled = Content != null;
-      newOperatorGraphButton.Enabled = false;
-      openOperatorGraphButton.Enabled = false;
       operatorGraphViewHost.Enabled = Content != null;
       operatorGraphViewHost.ReadOnly = true;
Index: /stable/HeuristicLab.Optimization.Views/3.3/UserDefinedAlgorithmView.Designer.cs
===================================================================
--- /stable/HeuristicLab.Optimization.Views/3.3/UserDefinedAlgorithmView.Designer.cs	(revision 13257)
+++ /stable/HeuristicLab.Optimization.Views/3.3/UserDefinedAlgorithmView.Designer.cs	(revision 13258)
@@ -65,14 +65,4 @@
       // 
       this.engineViewHost.Size = new System.Drawing.Size(693, 402);
-      // 
-      // openOperatorGraphButton
-      // 
-      this.toolTip.SetToolTip(this.openOperatorGraphButton, "Open Operator Graph");
-      this.openOperatorGraphButton.Click += new System.EventHandler(openOperatorGraphButton_Click);
-      // 
-      // newOperatorGraphButton
-      // 
-      this.toolTip.SetToolTip(this.newOperatorGraphButton, "New Operator Graph");
-      this.newOperatorGraphButton.Click += new System.EventHandler(newOperatorGraphButton_Click);
       // 
       // tabControl
Index: /stable/HeuristicLab.Optimization.Views/3.3/UserDefinedAlgorithmView.cs
===================================================================
--- /stable/HeuristicLab.Optimization.Views/3.3/UserDefinedAlgorithmView.cs	(revision 13257)
+++ /stable/HeuristicLab.Optimization.Views/3.3/UserDefinedAlgorithmView.cs	(revision 13258)
@@ -57,38 +57,5 @@
       base.SetEnabledStateOfControls();
       globalScopeView.Enabled = Content != null;
-      newOperatorGraphButton.Enabled = Content != null && !ReadOnly;
-      openOperatorGraphButton.Enabled = Content != null && !ReadOnly;
       operatorGraphViewHost.ReadOnly = Content == null || ReadOnly;
-    }
-
-    private void newOperatorGraphButton_Click(object sender, EventArgs e) {
-      Content.OperatorGraph = new OperatorGraph();
-    }
-    private void openOperatorGraphButton_Click(object sender, EventArgs e) {
-      openFileDialog.Title = "Open Operator Graph";
-      if (openFileDialog.ShowDialog(this) == DialogResult.OK) {
-        newOperatorGraphButton.Enabled = openOperatorGraphButton.Enabled = false;
-        operatorGraphViewHost.Enabled = false;
-
-        ContentManager.LoadAsync(openFileDialog.FileName, delegate(IStorableContent content, Exception error) {
-          try {
-            if (error != null) throw error;
-            OperatorGraph operatorGraph = content as OperatorGraph;
-            if (operatorGraph == null)
-              MessageBox.Show(this, "The selected file does not contain an operator graph.", "Invalid File", MessageBoxButtons.OK, MessageBoxIcon.Error);
-            else
-              Content.OperatorGraph = operatorGraph;
-          }
-          catch (Exception ex) {
-            ErrorHandling.ShowErrorDialog(this, ex);
-          }
-          finally {
-            Invoke(new Action(delegate() {
-              operatorGraphViewHost.Enabled = true;
-              newOperatorGraphButton.Enabled = openOperatorGraphButton.Enabled = true;
-            }));
-          }
-        });
-      }
     }
   }
