Index: /trunk/sources/HeuristicLab 3.3.sln
===================================================================
--- /trunk/sources/HeuristicLab 3.3.sln	(revision 7965)
+++ /trunk/sources/HeuristicLab 3.3.sln	(revision 7966)
@@ -105,4 +105,5 @@
 		{3083C7AA-5AF4-4C75-BA19-B69B86E2F66A} = {3083C7AA-5AF4-4C75-BA19-B69B86E2F66A}
 		{5211F1AD-BBA2-4C62-8749-DCA0A25CF5D8} = {5211F1AD-BBA2-4C62-8749-DCA0A25CF5D8}
+		{847A8DAE-DB95-4CEE-B48B-EFEE4531D611} = {847A8DAE-DB95-4CEE-B48B-EFEE4531D611}
 		{A2330DB0-413D-4424-B4E6-591118E2B9F8} = {A2330DB0-413D-4424-B4E6-591118E2B9F8}
 		{DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA} = {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}
@@ -315,4 +316,6 @@
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Clients.Hive.JobManager-3.3", "HeuristicLab.Clients.Hive.JobManager\3.3\HeuristicLab.Clients.Hive.JobManager-3.3.csproj", "{DBFD7205-61AF-40EF-8776-3052DEF91CF3}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.DebugEngine.Views-3.3", "HeuristicLab.DebugEngine.Views\3.3\HeuristicLab.DebugEngine.Views-3.3.csproj", "{847A8DAE-DB95-4CEE-B48B-EFEE4531D611}"
 EndProject
 Global
@@ -1538,4 +1541,16 @@
 		{DBFD7205-61AF-40EF-8776-3052DEF91CF3}.Release|x86.ActiveCfg = Release|x86
 		{DBFD7205-61AF-40EF-8776-3052DEF91CF3}.Release|x86.Build.0 = Release|x86
+		{847A8DAE-DB95-4CEE-B48B-EFEE4531D611}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{847A8DAE-DB95-4CEE-B48B-EFEE4531D611}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{847A8DAE-DB95-4CEE-B48B-EFEE4531D611}.Debug|x64.ActiveCfg = Debug|x64
+		{847A8DAE-DB95-4CEE-B48B-EFEE4531D611}.Debug|x64.Build.0 = Debug|x64
+		{847A8DAE-DB95-4CEE-B48B-EFEE4531D611}.Debug|x86.ActiveCfg = Debug|x86
+		{847A8DAE-DB95-4CEE-B48B-EFEE4531D611}.Debug|x86.Build.0 = Debug|x86
+		{847A8DAE-DB95-4CEE-B48B-EFEE4531D611}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{847A8DAE-DB95-4CEE-B48B-EFEE4531D611}.Release|Any CPU.Build.0 = Release|Any CPU
+		{847A8DAE-DB95-4CEE-B48B-EFEE4531D611}.Release|x64.ActiveCfg = Release|x64
+		{847A8DAE-DB95-4CEE-B48B-EFEE4531D611}.Release|x64.Build.0 = Release|x64
+		{847A8DAE-DB95-4CEE-B48B-EFEE4531D611}.Release|x86.ActiveCfg = Release|x86
+		{847A8DAE-DB95-4CEE-B48B-EFEE4531D611}.Release|x86.Build.0 = Release|x86
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
Index: /trunk/sources/HeuristicLab.DebugEngine.Views/3.3/DebugEngineView.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.DebugEngine.Views/3.3/DebugEngineView.Designer.cs	(revision 7966)
+++ /trunk/sources/HeuristicLab.DebugEngine.Views/3.3/DebugEngineView.Designer.cs	(revision 7966)
@@ -0,0 +1,208 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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.DebugEngine {
+  partial class DebugEngineView {
+    /// <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 Windows Form 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() {
+      this.components = new System.ComponentModel.Container();
+      System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DebugEngineView));
+      this.operationContentView = new HeuristicLab.DebugEngine.OperationContentView();
+      this.executionStackView = new HeuristicLab.DebugEngine.ExecutionStackView();
+      this.splitContainer2 = new System.Windows.Forms.SplitContainer();
+      this.refreshButton = new System.Windows.Forms.Button();
+      this.skipStackOpsCheckBox = new System.Windows.Forms.CheckBox();
+      this.stepButton = new System.Windows.Forms.Button();
+      this.toolTip = new System.Windows.Forms.ToolTip(this.components);
+      this.splitContainer3 = new System.Windows.Forms.SplitContainer();
+      this.operatorTraceView = new HeuristicLab.DebugEngine.OperatorTraceView();
+      this.splitContainer2.Panel1.SuspendLayout();
+      this.splitContainer2.Panel2.SuspendLayout();
+      this.splitContainer2.SuspendLayout();
+      this.splitContainer3.Panel1.SuspendLayout();
+      this.splitContainer3.Panel2.SuspendLayout();
+      this.splitContainer3.SuspendLayout();
+      this.SuspendLayout();
+      // 
+      // operationContentView
+      // 
+      this.operationContentView.Caption = "Operation Content View";
+      this.operationContentView.Content = null;
+      this.operationContentView.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.operationContentView.Location = new System.Drawing.Point(0, 0);
+      this.operationContentView.Name = "operationContentView";
+      this.operationContentView.ReadOnly = false;
+      this.operationContentView.Size = new System.Drawing.Size(484, 538);
+      this.operationContentView.TabIndex = 0;
+      // 
+      // executionStackView
+      // 
+      this.executionStackView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+            | System.Windows.Forms.AnchorStyles.Left)
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.executionStackView.Caption = "Execution Stack View";
+      this.executionStackView.Content = null;
+      this.executionStackView.Location = new System.Drawing.Point(0, 0);
+      this.executionStackView.Name = "executionStackView";
+      this.executionStackView.ReadOnly = false;
+      this.executionStackView.Size = new System.Drawing.Size(197, 505);
+      this.executionStackView.TabIndex = 0;
+      // 
+      // splitContainer2
+      // 
+      this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.splitContainer2.Location = new System.Drawing.Point(0, 0);
+      this.splitContainer2.Name = "splitContainer2";
+      // 
+      // splitContainer2.Panel1
+      // 
+      this.splitContainer2.Panel1.Controls.Add(this.executionStackView);
+      this.splitContainer2.Panel1.Controls.Add(this.refreshButton);
+      this.splitContainer2.Panel1.Controls.Add(this.skipStackOpsCheckBox);
+      this.splitContainer2.Panel1.Controls.Add(this.stepButton);
+      // 
+      // splitContainer2.Panel2
+      // 
+      this.splitContainer2.Panel2.Controls.Add(this.operationContentView);
+      this.splitContainer2.Size = new System.Drawing.Size(687, 538);
+      this.splitContainer2.SplitterDistance = 199;
+      this.splitContainer2.TabIndex = 0;
+      // 
+      // refreshButton
+      // 
+      this.refreshButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+      this.refreshButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.Refresh;
+      this.refreshButton.Location = new System.Drawing.Point(3, 511);
+      this.refreshButton.Name = "refreshButton";
+      this.refreshButton.Size = new System.Drawing.Size(24, 24);
+      this.refreshButton.TabIndex = 5;
+      this.toolTip.SetToolTip(this.refreshButton, "Refresh View");
+      this.refreshButton.UseVisualStyleBackColor = true;
+      this.refreshButton.Click += new System.EventHandler(this.refreshButton_Click);
+      // 
+      // skipStackOpsCheckBox
+      // 
+      this.skipStackOpsCheckBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+      this.skipStackOpsCheckBox.AutoSize = true;
+      this.skipStackOpsCheckBox.Checked = true;
+      this.skipStackOpsCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
+      this.skipStackOpsCheckBox.Location = new System.Drawing.Point(63, 516);
+      this.skipStackOpsCheckBox.Name = "skipStackOpsCheckBox";
+      this.skipStackOpsCheckBox.Size = new System.Drawing.Size(78, 17);
+      this.skipStackOpsCheckBox.TabIndex = 6;
+      this.skipStackOpsCheckBox.Text = "Skip Stack";
+      this.toolTip.SetToolTip(this.skipStackOpsCheckBox, "Automatically step over steps that manipulate only the execution stack");
+      this.skipStackOpsCheckBox.UseVisualStyleBackColor = true;
+      // 
+      // stepButton
+      // 
+      this.stepButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+      this.stepButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.MoveNext;
+      this.stepButton.Location = new System.Drawing.Point(33, 511);
+      this.stepButton.Name = "stepButton";
+      this.stepButton.Size = new System.Drawing.Size(24, 24);
+      this.stepButton.TabIndex = 4;
+      this.toolTip.SetToolTip(this.stepButton, "Step");
+      this.stepButton.UseVisualStyleBackColor = true;
+      this.stepButton.Click += new System.EventHandler(this.stepButton_Click);
+      // 
+      // splitContainer3
+      // 
+      this.splitContainer3.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+            | System.Windows.Forms.AnchorStyles.Left)
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.splitContainer3.Location = new System.Drawing.Point(0, 0);
+      this.splitContainer3.Name = "splitContainer3";
+      // 
+      // splitContainer3.Panel1
+      // 
+      this.splitContainer3.Panel1.Controls.Add(this.splitContainer2);
+      // 
+      // splitContainer3.Panel2
+      // 
+      this.splitContainer3.Panel2.Controls.Add(this.operatorTraceView);
+      this.splitContainer3.Size = new System.Drawing.Size(872, 538);
+      this.splitContainer3.SplitterDistance = 687;
+      this.splitContainer3.TabIndex = 7;
+      // 
+      // operatorTraceView
+      // 
+      this.operatorTraceView.Caption = "Operator Trace View";
+      this.operatorTraceView.Content = null;
+      this.operatorTraceView.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.operatorTraceView.Location = new System.Drawing.Point(0, 0);
+      this.operatorTraceView.Name = "operatorTraceView";
+      this.operatorTraceView.ReadOnly = false;
+      this.operatorTraceView.Size = new System.Drawing.Size(181, 538);
+      this.operatorTraceView.TabIndex = 0;
+      // 
+      // DebugEngineView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.Controls.Add(this.splitContainer3);
+      this.Name = "DebugEngineView";
+      this.Size = new System.Drawing.Size(872, 538);
+      this.splitContainer2.Panel1.ResumeLayout(false);
+      this.splitContainer2.Panel1.PerformLayout();
+      this.splitContainer2.Panel2.ResumeLayout(false);
+      this.splitContainer2.ResumeLayout(false);
+      this.splitContainer3.Panel1.ResumeLayout(false);
+      this.splitContainer3.Panel2.ResumeLayout(false);
+      this.splitContainer3.ResumeLayout(false);
+      this.ResumeLayout(false);
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.SplitContainer splitContainer2;
+    private System.Windows.Forms.Button stepButton;
+    private System.Windows.Forms.ToolTip toolTip;
+    private HeuristicLab.DebugEngine.ExecutionStackView executionStackView;
+    private HeuristicLab.DebugEngine.OperationContentView operationContentView;
+    private System.Windows.Forms.Button refreshButton;
+    private System.Windows.Forms.CheckBox skipStackOpsCheckBox;
+    private System.Windows.Forms.SplitContainer splitContainer3;
+    private OperatorTraceView operatorTraceView;
+
+  }
+}
Index: /trunk/sources/HeuristicLab.DebugEngine.Views/3.3/DebugEngineView.cs
===================================================================
--- /trunk/sources/HeuristicLab.DebugEngine.Views/3.3/DebugEngineView.cs	(revision 7966)
+++ /trunk/sources/HeuristicLab.DebugEngine.Views/3.3/DebugEngineView.cs	(revision 7966)
@@ -0,0 +1,148 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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.Windows.Forms;
+using HeuristicLab.Core;
+using HeuristicLab.Core.Views;
+using HeuristicLab.MainForm;
+using System.ComponentModel;
+namespace HeuristicLab.DebugEngine {
+
+  /// <summary>
+  /// Engine espcially for debugging
+  /// </summary>
+  [View("DebugEngine View")]
+  [Content(typeof(DebugEngine), true)]
+  public partial class DebugEngineView : ItemView {
+
+    #region Basics
+
+    /// <summary>
+    /// Gets or sets the current engine.
+    /// </summary>
+    /// <remarks>Uses property <see cref="ViewBase.Item"/> of base class <see cref="EditorBase"/>.</remarks>
+    public new DebugEngine Content {
+      get { return (DebugEngine)base.Content; }
+      set { base.Content = value; }
+    }
+
+    /// <summary>
+    /// Initializes a new instance of <see cref="DebugEngineView"/>.
+    /// </summary>
+    public DebugEngineView() {
+      InitializeComponent();
+    }
+
+    /// <summary>
+    /// Removes the event handlers from the underlying <see cref="IEngine"/>.
+    /// </summary>
+    /// <remarks>Calls <see cref="ViewBase.RemoveItemEvents"/> of base class <see cref="ViewBase"/>.</remarks>
+    protected override void DeregisterContentEvents() {
+      Content.ExecutionStateChanged -= new EventHandler(Content_ExecutionStateChanged);
+      base.DeregisterContentEvents();
+    }
+
+    /// <summary>
+    /// Adds event handlers to the underlying <see cref="IEngine"/>.
+    /// </summary>
+    /// <remarks>Calls <see cref="ViewBase.AddItemEvents"/> of base class <see cref="ViewBase"/>.</remarks>
+    protected override void RegisterContentEvents() {
+      base.RegisterContentEvents();
+      Content.ExecutionStateChanged += new EventHandler(Content_ExecutionStateChanged);
+    }
+
+    /// <summary>
+    /// Updates all controls with the latest data of the model.
+    /// </summary>
+    /// <remarks>Calls <see cref="EditorBase.UpdateControls"/> of base class <see cref="EditorBase"/>.</remarks>
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      if (Content == null) {
+        executionStackView.Content = null;
+        operatorTraceView.Content = null;
+        operationContentView.Content = null;
+      } else {
+        executionStackView.Content = Content.ExecutionStack;
+        operatorTraceView.Content = Content.OperatorTrace;
+        operationContentView.Content = new OperationContent(Content.CurrentOperation);
+      }
+    }
+
+    protected override void SetEnabledStateOfControls() {
+      base.SetEnabledStateOfControls();
+      if (Content == null) {
+        stepButton.Enabled = false;
+        refreshButton.Enabled = false;
+      } else {
+        stepButton.Enabled = Content.CanContinue && Content.ExecutionState != ExecutionState.Started;
+        refreshButton.Enabled = Content.CurrentAtomicOperation != null && Content.ExecutionState != ExecutionState.Started;
+      }
+    }
+
+    #endregion
+
+    void Content_ExecutionStateChanged(object sender, EventArgs e) {
+      if (InvokeRequired) {
+        Invoke(new EventHandler(Content_ExecutionStateChanged), sender, e);
+      } else {
+        SetEnabledStateOfControls();
+        switch (Content.ExecutionState) {
+          case ExecutionState.Started:
+            if (!stepping) {
+              executionStackView.Content = null;
+              operatorTraceView.Content = null;
+              operationContentView.Content = null;
+            }
+            break;
+          default:
+            executionStackView.Content = Content.ExecutionStack;
+            operatorTraceView.Content = Content.OperatorTrace;
+            operationContentView.Content = new OperationContent(Content.CurrentOperation);
+            break;
+        }
+      }
+    }
+
+    private bool stepping = false;
+    private void stepButton_Click(object sender, EventArgs e) {
+      BackgroundWorker worker = new BackgroundWorker();
+      bool skipStackops = skipStackOpsCheckBox.Checked;
+      worker.DoWork += (s, a) => {
+        Content.Step(skipStackops);
+      };
+      worker.RunWorkerCompleted += (s, a) => {
+        stepping = false;
+        SetEnabledStateOfControls();
+      };
+      stepping = true;
+      stepButton.Enabled = false;
+      worker.RunWorkerAsync();
+    }
+
+    private void refreshButton_Click(object sender, EventArgs e) {
+      var content = Content;
+      Content = null;
+      Content = content;
+    }
+
+  }
+}
Index: /trunk/sources/HeuristicLab.DebugEngine.Views/3.3/ExecutionStackView.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.DebugEngine.Views/3.3/ExecutionStackView.Designer.cs	(revision 7966)
+++ /trunk/sources/HeuristicLab.DebugEngine.Views/3.3/ExecutionStackView.Designer.cs	(revision 7966)
@@ -0,0 +1,105 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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.DebugEngine {
+  partial class ExecutionStackView {
+    /// <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() {
+      this.components = new System.ComponentModel.Container();
+      this.treeView = new System.Windows.Forms.TreeView();
+      this.imageList = new System.Windows.Forms.ImageList(this.components);
+      this.groupBox = new System.Windows.Forms.GroupBox();
+      this.groupBox.SuspendLayout();
+      this.SuspendLayout();
+      // 
+      // treeView
+      // 
+      this.treeView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
+            | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.treeView.ImageIndex = 0;
+      this.treeView.ImageList = this.imageList;
+      this.treeView.Location = new System.Drawing.Point(6, 19);
+      this.treeView.Name = "treeView";
+      this.treeView.SelectedImageIndex = 0;
+      this.treeView.ShowNodeToolTips = true;
+      this.treeView.Size = new System.Drawing.Size(297, 255);
+      this.treeView.TabIndex = 0;
+      this.treeView.NodeMouseDoubleClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.treeView_NodeMouseDoubleClick);
+      // 
+      // imageList
+      // 
+      this.imageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
+      this.imageList.ImageSize = new System.Drawing.Size(16, 16);
+      this.imageList.TransparentColor = System.Drawing.Color.Transparent;
+      // 
+      // groupBox
+      // 
+      this.groupBox.Controls.Add(this.treeView);
+      this.groupBox.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.groupBox.Location = new System.Drawing.Point(0, 0);
+      this.groupBox.Name = "groupBox";
+      this.groupBox.Size = new System.Drawing.Size(309, 280);
+      this.groupBox.TabIndex = 1;
+      this.groupBox.TabStop = false;
+      this.groupBox.Text = "Execution Stack";
+      // 
+      // ExecutionStackView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.groupBox);
+      this.Name = "ExecutionStackView";
+      this.Size = new System.Drawing.Size(309, 280);
+      this.groupBox.ResumeLayout(false);
+      this.ResumeLayout(false);
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.TreeView treeView;
+    private System.Windows.Forms.GroupBox groupBox;
+    private System.Windows.Forms.ImageList imageList;
+
+  }
+}
Index: /trunk/sources/HeuristicLab.DebugEngine.Views/3.3/ExecutionStackView.cs
===================================================================
--- /trunk/sources/HeuristicLab.DebugEngine.Views/3.3/ExecutionStackView.cs	(revision 7966)
+++ /trunk/sources/HeuristicLab.DebugEngine.Views/3.3/ExecutionStackView.cs	(revision 7966)
@@ -0,0 +1,151 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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.Drawing;
+using System.Linq;
+using System.Windows.Forms;
+using HeuristicLab.Collections;
+using HeuristicLab.Common.Resources;
+using HeuristicLab.Core;
+using HeuristicLab.MainForm;
+using HeuristicLab.MainForm.WindowsForms;
+
+namespace HeuristicLab.DebugEngine {
+
+  [View("Execution Stack View")]
+  [Content(typeof(ExecutionStack), IsDefaultView = true)]
+  public partial class ExecutionStackView : AsynchronousContentView {
+    public new ExecutionStack Content {
+      get { return (ExecutionStack)base.Content; }
+      set { base.Content = value; }
+    }
+
+    public ExecutionStackView() {
+      InitializeComponent();
+    }
+
+    protected override void DeregisterContentEvents() {
+      Content.CollectionReset -= Content_Changed;
+      Content.ItemsAdded -= Content_Changed;
+      Content.ItemsRemoved -= Content_Changed;
+      Content.ItemsMoved -= Content_Changed;
+      Content.ItemsReplaced -= Content_Changed;
+      base.DeregisterContentEvents();
+    }
+
+    protected override void RegisterContentEvents() {
+      base.RegisterContentEvents();
+      Content.CollectionReset += Content_Changed;
+      Content.ItemsAdded += Content_Changed;
+      Content.ItemsRemoved += Content_Changed;
+      Content.ItemsMoved += Content_Changed;
+      Content.ItemsReplaced += Content_Changed;
+    }
+
+    #region Event Handlers (Content)
+    void Content_Changed(object sender, CollectionItemsChangedEventArgs<IndexedItem<IOperation>> e) {
+      if (InvokeRequired)
+        Invoke(new EventHandler<CollectionItemsChangedEventArgs<IndexedItem<IOperation>>>(Content_Changed), sender, e);
+      else
+        UpdateExecutionStack();
+    }
+
+
+    private void UpdateExecutionStack() {
+      treeView.BeginUpdate();
+      treeView.Nodes.Clear();
+      treeView.ImageList.Images.Clear();
+      treeView.ImageList.Images.Add(VSImageLibrary.Method);
+      treeView.ImageList.Images.Add(VSImageLibrary.Module);
+      treeView.ImageList.Images.Add(VSImageLibrary.BreakpointActive);
+      int totalNodes = AddStackOperations(treeView.Nodes, ((IEnumerable<IOperation>)Content).Reverse());
+      if (treeView.Nodes.Count > 0)
+        treeView.TopNode = treeView.Nodes[0];
+      treeView.ExpandAll();
+      treeView.EndUpdate();
+      groupBox.Text = string.Format("Execution Stack ({0})", totalNodes);
+    }
+
+    private int AddStackOperations(TreeNodeCollection nodes, IEnumerable<IOperation> operations) {
+      int count = 0;
+      foreach (IOperation op in operations) {
+        if (op is IAtomicOperation) {
+          IAtomicOperation atom = op as IAtomicOperation;
+          TreeNode node = nodes.Add(atom.Operator.Name ?? atom.Operator.ItemName);
+          node.Tag = atom;
+          node.ToolTipText = string.Format("{0}{1}{1}{2}",
+            Utils.TypeName(atom.Operator), Environment.NewLine,
+            Utils.Wrap(atom.Operator.Description ?? atom.Operator.ItemDescription, 60));
+          if (atom.Operator.Breakpoint) {
+            node.ForeColor = Color.Red;
+            node.ImageIndex = 2;
+            node.SelectedImageIndex = 2;
+          } else {
+            node.ImageIndex = 0;
+            node.SelectedImageIndex = 0;
+          }
+          count++;
+        } else if (op is OperationCollection) {
+          OperationCollection ops = op as OperationCollection;
+          TreeNode node = nodes.Add(
+            string.Format("{0} {2}Operation{1}",
+            ops.Count,
+            ops.Count == 1 ? string.Empty : "s",
+            ops.Parallel ? "Parallel " : string.Empty
+            ));
+          node.Tag = op;
+          node.ToolTipText = Utils.TypeName(ops);
+          node.ImageIndex = 1;
+          node.SelectedImageIndex = 1;
+          count += AddStackOperations(node.Nodes, ops);
+        }
+      }
+      return count;
+    }
+    #endregion
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      if (Content == null) {
+        treeView.Nodes.Clear();
+      } else {
+        UpdateExecutionStack();
+      }
+    }
+
+
+    protected override void SetEnabledStateOfControls() {
+      base.SetEnabledStateOfControls();
+    }
+
+    #region Event Handlers (child controls)
+    private void treeView_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) {
+      if (e.Node != null) {
+        IAtomicOperation op = e.Node.Tag as IAtomicOperation;
+        if (op != null)
+          MainFormManager.MainForm.ShowContent(op.Operator);
+      }
+    }
+    #endregion
+  }
+}
Index: /trunk/sources/HeuristicLab.DebugEngine.Views/3.3/HeuristicLab.DebugEngine.Views-3.3.csproj
===================================================================
--- /trunk/sources/HeuristicLab.DebugEngine.Views/3.3/HeuristicLab.DebugEngine.Views-3.3.csproj	(revision 7966)
+++ /trunk/sources/HeuristicLab.DebugEngine.Views/3.3/HeuristicLab.DebugEngine.Views-3.3.csproj	(revision 7966)
@@ -0,0 +1,213 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>8.0.30703</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{847A8DAE-DB95-4CEE-B48B-EFEE4531D611}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>HeuristicLab.DebugEngine.Views</RootNamespace>
+    <AssemblyName>HeuristicLab.DebugEngine.Views-3.3</AssemblyName>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>..\..\bin\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>..\..\bin\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>..\..\bin\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DebugType>full</DebugType>
+    <PlatformTarget>x86</PlatformTarget>
+    <CodeAnalysisLogFile>bin\Debug\HeuristicLab.DebugEngine.Views.dll.CodeAnalysisLog.xml</CodeAnalysisLogFile>
+    <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
+    <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+    <CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
+    <CodeAnalysisIgnoreBuiltInRuleSets>false</CodeAnalysisIgnoreBuiltInRuleSets>
+    <CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
+    <CodeAnalysisIgnoreBuiltInRules>false</CodeAnalysisIgnoreBuiltInRules>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
+    <OutputPath>..\..\bin\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <Optimize>true</Optimize>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x86</PlatformTarget>
+    <CodeAnalysisLogFile>bin\Release\HeuristicLab.DebugEngine.Views-3.3.dll.CodeAnalysisLog.xml</CodeAnalysisLogFile>
+    <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
+    <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+    <CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
+    <CodeAnalysisIgnoreBuiltInRuleSets>true</CodeAnalysisIgnoreBuiltInRuleSets>
+    <CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
+    <CodeAnalysisIgnoreBuiltInRules>true</CodeAnalysisIgnoreBuiltInRules>
+    <CodeAnalysisFailOnMissingRules>false</CodeAnalysisFailOnMissingRules>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>..\..\bin\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DebugType>full</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <CodeAnalysisLogFile>bin\Debug\HeuristicLab.DebugEngine.Views.dll.CodeAnalysisLog.xml</CodeAnalysisLogFile>
+    <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
+    <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+    <CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
+    <CodeAnalysisIgnoreBuiltInRuleSets>false</CodeAnalysisIgnoreBuiltInRuleSets>
+    <CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
+    <CodeAnalysisIgnoreBuiltInRules>false</CodeAnalysisIgnoreBuiltInRules>
+    <CodeAnalysisFailOnMissingRules>false</CodeAnalysisFailOnMissingRules>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
+    <OutputPath>..\..\bin\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <Optimize>true</Optimize>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <CodeAnalysisLogFile>bin\Release\HeuristicLab.DebugEngine.Views-3.3.dll.CodeAnalysisLog.xml</CodeAnalysisLogFile>
+    <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
+    <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+    <CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
+    <CodeAnalysisIgnoreBuiltInRuleSets>true</CodeAnalysisIgnoreBuiltInRuleSets>
+    <CodeAnalysisRuleDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
+    <CodeAnalysisIgnoreBuiltInRules>true</CodeAnalysisIgnoreBuiltInRules>
+  </PropertyGroup>
+  <PropertyGroup>
+    <SignAssembly>true</SignAssembly>
+  </PropertyGroup>
+  <PropertyGroup>
+    <AssemblyOriginatorKeyFile>HeuristicLab.snk</AssemblyOriginatorKeyFile>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Windows.Forms" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Plugin.cs.frame" />
+    <Compile Include="DebugEngineView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="DebugEngineView.Designer.cs">
+      <DependentUpon>DebugEngineView.cs</DependentUpon>
+    </Compile>
+    <Compile Include="ExecutionStackView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="ExecutionStackView.Designer.cs">
+      <DependentUpon>ExecutionStackView.cs</DependentUpon>
+    </Compile>
+    <Compile Include="OperationContentView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="OperationContentView.Designer.cs">
+      <DependentUpon>OperationContentView.cs</DependentUpon>
+    </Compile>
+    <Compile Include="OperatorTraceView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="OperatorTraceView.Designer.cs">
+      <DependentUpon>OperatorTraceView.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Plugin.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <None Include="Properties\AssemblyInfo.cs.frame" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="HeuristicLab.snk" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\HeuristicLab.Collections\3.3\HeuristicLab.Collections-3.3.csproj">
+      <Project>{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}</Project>
+      <Name>HeuristicLab.Collections-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Common.Resources\3.3\HeuristicLab.Common.Resources-3.3.csproj">
+      <Project>{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}</Project>
+      <Name>HeuristicLab.Common.Resources-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Common\3.3\HeuristicLab.Common-3.3.csproj">
+      <Project>{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}</Project>
+      <Name>HeuristicLab.Common-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Core.Views\3.3\HeuristicLab.Core.Views-3.3.csproj">
+      <Project>{E226881D-315F-423D-B419-A766FE0D8685}</Project>
+      <Name>HeuristicLab.Core.Views-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Core\3.3\HeuristicLab.Core-3.3.csproj">
+      <Project>{C36BD924-A541-4A00-AFA8-41701378DDC5}</Project>
+      <Name>HeuristicLab.Core-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.DebugEngine\3.3\HeuristicLab.DebugEngine-3.3.csproj">
+      <Project>{49F28045-7B5F-411B-8D59-16C846FA26E0}</Project>
+      <Name>HeuristicLab.DebugEngine-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.MainForm.WindowsForms\3.3\HeuristicLab.MainForm.WindowsForms-3.3.csproj">
+      <Project>{AB687BBE-1BFE-476B-906D-44237135431D}</Project>
+      <Name>HeuristicLab.MainForm.WindowsForms-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.MainForm\3.3\HeuristicLab.MainForm-3.3.csproj">
+      <Project>{3BD61258-31DA-4B09-89C0-4F71FEF5F05A}</Project>
+      <Name>HeuristicLab.MainForm-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Operators\3.3\HeuristicLab.Operators-3.3.csproj">
+      <Project>{23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}</Project>
+      <Name>HeuristicLab.Operators-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.PluginInfrastructure\3.3\HeuristicLab.PluginInfrastructure-3.3.csproj">
+      <Project>{94186A6A-5176-4402-AE83-886557B53CCA}</Project>
+      <Name>HeuristicLab.PluginInfrastructure-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <PropertyGroup>
+    <PreBuildEvent>set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
+set ProjectDir=$(ProjectDir)
+set SolutionDir=$(SolutionDir)
+set Outdir=$(Outdir)
+
+call PreBuildEvent.cmd
+</PreBuildEvent>
+  </PropertyGroup>
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
Index: /trunk/sources/HeuristicLab.DebugEngine.Views/3.3/OperationContentView.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.DebugEngine.Views/3.3/OperationContentView.Designer.cs	(revision 7966)
+++ /trunk/sources/HeuristicLab.DebugEngine.Views/3.3/OperationContentView.Designer.cs	(revision 7966)
@@ -0,0 +1,249 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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.DebugEngine {
+  partial class OperationContentView {
+    /// <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() {
+      this.components = new System.ComponentModel.Container();
+      this.groupBox = new System.Windows.Forms.GroupBox();
+      this.splitContainer1 = new System.Windows.Forms.SplitContainer();
+      this.executionContextGroupBox = new System.Windows.Forms.GroupBox();
+      this.executionContextTreeView = new System.Windows.Forms.TreeView();
+      this.executionContextConextMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
+      this.showValueToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+      this.executionContextImageList = new System.Windows.Forms.ImageList(this.components);
+      this.scopeGroupBox = new System.Windows.Forms.GroupBox();
+      this.scopeTreeView = new System.Windows.Forms.TreeView();
+      this.scopeImageList = new System.Windows.Forms.ImageList(this.components);
+      this.nameTextBox = new System.Windows.Forms.TextBox();
+      this.parametersImageList = new System.Windows.Forms.ImageList(this.components);
+      this.iconBox = new System.Windows.Forms.PictureBox();
+      this.groupBox.SuspendLayout();
+      this.splitContainer1.Panel1.SuspendLayout();
+      this.splitContainer1.Panel2.SuspendLayout();
+      this.splitContainer1.SuspendLayout();
+      this.executionContextGroupBox.SuspendLayout();
+      this.executionContextConextMenu.SuspendLayout();
+      this.scopeGroupBox.SuspendLayout();
+      ((System.ComponentModel.ISupportInitialize)(this.iconBox)).BeginInit();
+      this.SuspendLayout();
+      // 
+      // groupBox
+      // 
+      this.groupBox.Controls.Add(this.iconBox);
+      this.groupBox.Controls.Add(this.splitContainer1);
+      this.groupBox.Controls.Add(this.nameTextBox);
+      this.groupBox.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.groupBox.Location = new System.Drawing.Point(0, 0);
+      this.groupBox.Name = "groupBox";
+      this.groupBox.Size = new System.Drawing.Size(563, 412);
+      this.groupBox.TabIndex = 0;
+      this.groupBox.TabStop = false;
+      this.groupBox.Text = "Operation";
+      // 
+      // splitContainer1
+      // 
+      this.splitContainer1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
+            | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.splitContainer1.Location = new System.Drawing.Point(6, 45);
+      this.splitContainer1.Name = "splitContainer1";
+      // 
+      // splitContainer1.Panel1
+      // 
+      this.splitContainer1.Panel1.Controls.Add(this.executionContextGroupBox);
+      // 
+      // splitContainer1.Panel2
+      // 
+      this.splitContainer1.Panel2.Controls.Add(this.scopeGroupBox);
+      this.splitContainer1.Size = new System.Drawing.Size(551, 361);
+      this.splitContainer1.SplitterDistance = 242;
+      this.splitContainer1.TabIndex = 4;
+      // 
+      // executionContextGroupBox
+      // 
+      this.executionContextGroupBox.Controls.Add(this.executionContextTreeView);
+      this.executionContextGroupBox.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.executionContextGroupBox.Location = new System.Drawing.Point(0, 0);
+      this.executionContextGroupBox.Name = "executionContextGroupBox";
+      this.executionContextGroupBox.Size = new System.Drawing.Size(242, 361);
+      this.executionContextGroupBox.TabIndex = 0;
+      this.executionContextGroupBox.TabStop = false;
+      this.executionContextGroupBox.Text = "Execution Context";
+      // 
+      // executionContextTreeView
+      // 
+      this.executionContextTreeView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
+            | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.executionContextTreeView.ContextMenuStrip = this.executionContextConextMenu;
+      this.executionContextTreeView.ImageIndex = 0;
+      this.executionContextTreeView.ImageList = this.executionContextImageList;
+      this.executionContextTreeView.Location = new System.Drawing.Point(6, 19);
+      this.executionContextTreeView.Name = "executionContextTreeView";
+      this.executionContextTreeView.SelectedImageIndex = 0;
+      this.executionContextTreeView.ShowNodeToolTips = true;
+      this.executionContextTreeView.Size = new System.Drawing.Size(230, 336);
+      this.executionContextTreeView.TabIndex = 0;
+      this.executionContextTreeView.NodeMouseClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.executionContextTreeView_NodeMouseClick);
+      this.executionContextTreeView.NodeMouseDoubleClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.executionContextTreeView_NodeMouseDoubleClick);
+      this.executionContextTreeView.MouseDown += new System.Windows.Forms.MouseEventHandler(this.executionContextTreeView_MouseDown);
+      // 
+      // executionContextConextMenu
+      // 
+      this.executionContextConextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.showValueToolStripMenuItem});
+      this.executionContextConextMenu.Name = "executionContextConextMenu";
+      this.executionContextConextMenu.Size = new System.Drawing.Size(173, 26);
+      this.executionContextConextMenu.Opening += new System.ComponentModel.CancelEventHandler(this.executionContextConextMenu_Opening);
+      // 
+      // showValueToolStripMenuItem
+      // 
+      this.showValueToolStripMenuItem.Name = "showValueToolStripMenuItem";
+      this.showValueToolStripMenuItem.Size = new System.Drawing.Size(172, 22);
+      this.showValueToolStripMenuItem.Text = "Show Actual Value";
+      this.showValueToolStripMenuItem.ToolTipText = "Try to obtain the parameter\'s actual value in the current execution context and o" +
+    "pen it in a new view.";
+      this.showValueToolStripMenuItem.Click += new System.EventHandler(this.ShowValue_Click);
+      // 
+      // executionContextImageList
+      // 
+      this.executionContextImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
+      this.executionContextImageList.ImageSize = new System.Drawing.Size(16, 16);
+      this.executionContextImageList.TransparentColor = System.Drawing.Color.Transparent;
+      // 
+      // scopeGroupBox
+      // 
+      this.scopeGroupBox.Controls.Add(this.scopeTreeView);
+      this.scopeGroupBox.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.scopeGroupBox.Location = new System.Drawing.Point(0, 0);
+      this.scopeGroupBox.Name = "scopeGroupBox";
+      this.scopeGroupBox.Size = new System.Drawing.Size(305, 361);
+      this.scopeGroupBox.TabIndex = 1;
+      this.scopeGroupBox.TabStop = false;
+      this.scopeGroupBox.Text = "Scope";
+      // 
+      // scopeTreeView
+      // 
+      this.scopeTreeView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
+            | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.scopeTreeView.ImageIndex = 0;
+      this.scopeTreeView.ImageList = this.scopeImageList;
+      this.scopeTreeView.Location = new System.Drawing.Point(6, 19);
+      this.scopeTreeView.Name = "scopeTreeView";
+      this.scopeTreeView.SelectedImageIndex = 0;
+      this.scopeTreeView.ShowNodeToolTips = true;
+      this.scopeTreeView.Size = new System.Drawing.Size(293, 336);
+      this.scopeTreeView.TabIndex = 0;
+      this.scopeTreeView.NodeMouseDoubleClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.scopeTreeView_NodeMouseDoubleClick);
+      // 
+      // scopeImageList
+      // 
+      this.scopeImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
+      this.scopeImageList.ImageSize = new System.Drawing.Size(16, 16);
+      this.scopeImageList.TransparentColor = System.Drawing.Color.Transparent;
+      // 
+      // nameTextBox
+      // 
+      this.nameTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.nameTextBox.Cursor = System.Windows.Forms.Cursors.Default;
+      this.nameTextBox.Location = new System.Drawing.Point(32, 19);
+      this.nameTextBox.Name = "nameTextBox";
+      this.nameTextBox.ReadOnly = true;
+      this.nameTextBox.Size = new System.Drawing.Size(525, 20);
+      this.nameTextBox.TabIndex = 3;
+      this.nameTextBox.DoubleClick += new System.EventHandler(this.nameTextBox_DoubleClick);
+      // 
+      // parametersImageList
+      // 
+      this.parametersImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
+      this.parametersImageList.ImageSize = new System.Drawing.Size(16, 16);
+      this.parametersImageList.TransparentColor = System.Drawing.Color.Transparent;
+      // 
+      // iconBox
+      // 
+      this.iconBox.Location = new System.Drawing.Point(6, 19);
+      this.iconBox.Name = "iconBox";
+      this.iconBox.Size = new System.Drawing.Size(20, 20);
+      this.iconBox.TabIndex = 5;
+      this.iconBox.TabStop = false;
+      // 
+      // OperationContentView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.groupBox);
+      this.Name = "OperationContentView";
+      this.Size = new System.Drawing.Size(563, 412);
+      this.groupBox.ResumeLayout(false);
+      this.groupBox.PerformLayout();
+      this.splitContainer1.Panel1.ResumeLayout(false);
+      this.splitContainer1.Panel2.ResumeLayout(false);
+      this.splitContainer1.ResumeLayout(false);
+      this.executionContextGroupBox.ResumeLayout(false);
+      this.executionContextConextMenu.ResumeLayout(false);
+      this.scopeGroupBox.ResumeLayout(false);
+      ((System.ComponentModel.ISupportInitialize)(this.iconBox)).EndInit();
+      this.ResumeLayout(false);
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.GroupBox groupBox;
+    private System.Windows.Forms.TextBox nameTextBox;
+    private System.Windows.Forms.SplitContainer splitContainer1;
+    private System.Windows.Forms.TreeView scopeTreeView;
+    private System.Windows.Forms.GroupBox scopeGroupBox;
+    private System.Windows.Forms.ImageList executionContextImageList;
+    private System.Windows.Forms.ImageList parametersImageList;
+    private System.Windows.Forms.ImageList scopeImageList;
+    private System.Windows.Forms.GroupBox executionContextGroupBox;
+    private System.Windows.Forms.TreeView executionContextTreeView;
+    private System.Windows.Forms.ContextMenuStrip executionContextConextMenu;
+    private System.Windows.Forms.ToolStripMenuItem showValueToolStripMenuItem;
+    private System.Windows.Forms.PictureBox iconBox;
+  }
+}
Index: /trunk/sources/HeuristicLab.DebugEngine.Views/3.3/OperationContentView.cs
===================================================================
--- /trunk/sources/HeuristicLab.DebugEngine.Views/3.3/OperationContentView.cs	(revision 7966)
+++ /trunk/sources/HeuristicLab.DebugEngine.Views/3.3/OperationContentView.cs	(revision 7966)
@@ -0,0 +1,270 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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.Drawing;
+using System.Text;
+using System.Windows.Forms;
+using HeuristicLab.Common;
+using HeuristicLab.Common.Resources;
+using HeuristicLab.Core;
+using HeuristicLab.MainForm;
+using HeuristicLab.MainForm.WindowsForms;
+
+namespace HeuristicLab.DebugEngine {
+
+  [View("Operation Content View")]
+  [Content(typeof(OperationContent), IsDefaultView = true)]
+  public partial class OperationContentView : AsynchronousContentView {
+    public new OperationContent Content {
+      get { return (OperationContent)base.Content; }
+      set { base.Content = value; }
+    }
+
+    public OperationContentView() {
+      InitializeComponent();
+    }
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      if (Content == null) {
+        nameTextBox.Text = "";
+        scopeTreeView.Nodes.Clear();
+        executionContextTreeView.Nodes.Clear();
+        iconBox.Image = null;
+      } else {
+        nameTextBox.Text = Content.Name;
+        UpdateScopeTree();
+        UpdateExecutionContext();
+        iconBox.Image = Content.Icon;
+      }
+    }
+
+    private object GetParameterValue(IParameter param, IExecutionContext context, out string actualName) {
+      param = (IParameter)param.Clone();
+      param.ExecutionContext = context;
+      object value = null;
+      try {
+        value = param.ActualValue;
+      } catch (Exception x) {
+        value = x.Message;
+      }
+      ILookupParameter lookupParam = param as ILookupParameter;
+      if (lookupParam != null)
+        actualName = lookupParam.ActualName;
+      else
+        actualName = null;
+      return value;
+    }
+
+    private void UpdateScopeTree() {
+      scopeTreeView.BeginUpdate();
+      scopeTreeView.Nodes.Clear();
+      scopeTreeView.ImageList.Images.Clear();
+      scopeTreeView.ImageList.Images.Add(VSImageLibrary.Namespace);
+      scopeTreeView.ImageList.Images.Add(VSImageLibrary.Field);
+      if (Content.IsContext) {
+        var scope = Content.ExecutionContext.Scope;
+        while (scope != null && scope.Parent != null)
+          scope = scope.Parent;
+        if (scope != null)
+          AddScope(scopeTreeView.Nodes, scope);
+      }
+      scopeTreeView.EndUpdate();
+    }
+
+    private void AddScope(TreeNodeCollection nodes, IScope scope) {
+      TreeNode node = nodes.Add(string.Format("{0} ({1}+{2})",
+        scope.Name, scope.Variables.Count, scope.SubScopes.Count));
+      node.Tag = scope;
+      node.ImageIndex = 0;
+      node.SelectedImageIndex = 0;
+      foreach (var var in scope.Variables) {
+        TreeNode varNode = node.Nodes.Add(string.Format("{0} = {1}", var.Name, var.Value));
+        varNode.Tag = var.Value;
+        varNode.ToolTipText = string.Format("{0}{1}{1}{2}",
+          Utils.TypeName(var.Value), Environment.NewLine,
+          Utils.Wrap(var.Description ?? var.ItemDescription, 60));
+        varNode.ImageIndex = 1;
+        varNode.SelectedImageIndex = 1;
+      }
+      foreach (var subScope in scope.SubScopes)
+        AddScope(node.Nodes, subScope);
+      if (Content.IsAtomic && Content.AtomicOperation.Scope == scope) {
+        node.NodeFont = new Font(DefaultFont, FontStyle.Bold);
+        node.ForeColor = Color.White;
+        node.BackColor = Color.Crimson;
+        node.Expand();
+        scopeTreeView.TopNode = node;
+        node.ToolTipText = "Current scope of active operation";
+      }
+    }
+
+
+    private void UpdateExecutionContext() {
+      executionContextTreeView.BeginUpdate();
+      executionContextTreeView.Nodes.Clear();
+      executionContextTreeView.ImageList.Images.Clear();
+      executionContextTreeView.ImageList.Images.Add(VSImageLibrary.Namespace);
+      if (Content.IsContext) {
+        AddExecutionContext(Content.ExecutionContext, executionContextTreeView.Nodes);
+      }
+      executionContextTreeView.ExpandAll();
+      if (executionContextTreeView.Nodes.Count > 0)
+        executionContextTreeView.TopNode = executionContextTreeView.Nodes[0];
+      executionContextTreeView.EndUpdate();
+    }
+
+    private void AddExecutionContext(IExecutionContext executionContext, TreeNodeCollection nodes) {
+      ExecutionContext context = executionContext as ExecutionContext;
+      StringBuilder name = new StringBuilder();
+      if (context != null && context.Operator != null)
+        name.Append(context.Operator.Name);
+      else
+        name.Append("<Context>");
+      name.Append("@").Append(executionContext.Scope.Name);
+      TreeNode node = nodes.Add(name.ToString());
+      node.Tag = executionContext;
+      node.ImageIndex = 0;
+      node.SelectedImageIndex = 0;
+      foreach (var param in executionContext.Parameters) {
+        string actualName = null;
+        object value = GetParameterValue(param, executionContext, out actualName);
+        if (value == null)
+          value = "null";
+        string label = actualName != null && actualName != param.Name ?
+          string.Format("{0} ({1}) = {2}", param.Name, actualName, value) :
+          string.Format("{0} = {1}", param.Name, value);
+        TreeNode paramNode = node.Nodes.Add(label);
+        paramNode.Tag = param;
+        executionContextTreeView.ImageList.Images.Add(param.ItemImage ?? VSImageLibrary.Nothing);
+        paramNode.ImageIndex = executionContextTreeView.ImageList.Images.Count - 1;
+        paramNode.SelectedImageIndex = paramNode.ImageIndex;
+        paramNode.ToolTipText = string.Format("{0}{1}{1}{2}",
+          Utils.TypeName(param), Environment.NewLine,
+          Utils.Wrap(param.Description ?? param.ItemDescription, 60));
+      }
+      if (executionContext.Parent != null)
+        AddExecutionContext(executionContext.Parent, node.Nodes);
+    }
+
+    #region Event Handlers (child controls)
+
+    private void executionContextTreeView_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) {
+      if (e.Node != null) {
+        IParameter param = e.Node.Tag as IParameter;
+        if (param != null)
+          MainFormManager.MainForm.ShowContent(param);
+      }
+    }
+
+    private void scopeTreeView_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) {
+      if (e.Node != null) {
+        IItem item = e.Node.Tag as IItem;
+        if (item != null)
+          MainFormManager.MainForm.ShowContent(item);
+      }
+    }
+
+    private TreeNode selectedScopeNode = null;
+    private void executionContextTreeView_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) {
+      scopeTreeView.BeginUpdate();
+      if (selectedScopeNode != null) {
+        if (Content.IsAtomic && Content.AtomicOperation.Scope == selectedScopeNode.Tag) {
+          selectedScopeNode.BackColor = Color.Crimson;
+          selectedScopeNode.ForeColor = Color.White;
+          selectedScopeNode.NodeFont = new Font(DefaultFont, FontStyle.Bold);
+        } else {
+          selectedScopeNode.BackColor = Color.White;
+          selectedScopeNode.ForeColor = Color.Black;
+          selectedScopeNode.NodeFont = DefaultFont;
+        }
+      }
+      if (e.Node != null) {
+        IExecutionContext context = e.Node.Tag as IExecutionContext;
+        if (context != null && context.Scope != null) {
+          TreeNode scopeNode = FindScopeNode(context.Scope, scopeTreeView.Nodes);
+          if (scopeNode != null) {
+            if (Content.IsAtomic && Content.AtomicOperation.Scope == scopeNode.Tag) {
+              scopeNode.BackColor = Color.DarkViolet;
+              scopeNode.ForeColor = Color.White;
+              scopeNode.NodeFont = new Font(DefaultFont, FontStyle.Bold);
+            } else {
+              scopeNode.BackColor = Color.Blue;
+              scopeNode.ForeColor = Color.White;
+              scopeNode.NodeFont = new Font(DefaultFont, FontStyle.Bold);
+            }
+            selectedScopeNode = scopeNode;
+            scopeTreeView.TopNode = scopeNode;
+          }
+        }
+      }
+      scopeTreeView.EndUpdate();
+    }
+
+    private TreeNode FindScopeNode(IScope scope, TreeNodeCollection nodes) {
+      foreach (TreeNode node in nodes) {
+        if (node.Tag == scope) {
+          return node;
+        } else {
+          TreeNode childNode = FindScopeNode(scope, node.Nodes);
+          if (childNode != null)
+            return childNode;
+        }
+      }
+      return null;
+    }
+
+    private void nameTextBox_DoubleClick(object sender, EventArgs e) {
+      if (Content != null && Content.IsAtomic && Content.AtomicOperation.Operator != null)
+        MainFormManager.MainForm.ShowContent(Content.AtomicOperation.Operator);
+    }
+
+    private void ShowValue_Click(object sender, EventArgs e) {
+      if (executionContextTreeView.SelectedNode == null)
+        return;
+      IParameter param = executionContextTreeView.SelectedNode.Tag as IParameter;
+      if (param != null) {
+        string actualName = null;
+        IExecutionContext context = executionContextTreeView.SelectedNode.Parent.Tag as IExecutionContext ?? Content.ExecutionContext;
+        MainFormManager.MainForm.ShowContent(GetParameterValue(param, context, out actualName) as IContent);
+      }
+    }
+
+    private void executionContextConextMenu_Opening(object sender, System.ComponentModel.CancelEventArgs e) {
+      IParameter param = executionContextTreeView.SelectedNode.Tag as IParameter;
+      if (param != null) {
+        string actualName = null;
+        IExecutionContext context = executionContextTreeView.SelectedNode.Parent.Tag as IExecutionContext ?? Content.ExecutionContext;
+        showValueToolStripMenuItem.Enabled = GetParameterValue(param, context, out actualName) is IContent;
+      } else
+        e.Cancel = true;
+    }
+
+    private void executionContextTreeView_MouseDown(object sender, MouseEventArgs e) {
+      if (e.Button == System.Windows.Forms.MouseButtons.Right)
+        executionContextTreeView.SelectedNode = executionContextTreeView.GetNodeAt(e.Location);
+    }
+
+    #endregion
+
+  }
+}
Index: /trunk/sources/HeuristicLab.DebugEngine.Views/3.3/OperatorTraceView.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.DebugEngine.Views/3.3/OperatorTraceView.Designer.cs	(revision 7966)
+++ /trunk/sources/HeuristicLab.DebugEngine.Views/3.3/OperatorTraceView.Designer.cs	(revision 7966)
@@ -0,0 +1,125 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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.DebugEngine {
+  partial class OperatorTraceView {
+    /// <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() {
+      this.components = new System.ComponentModel.Container();
+      this.operatorTraceGroupBox = new System.Windows.Forms.GroupBox();
+      this.listView = new System.Windows.Forms.ListView();
+      this.listViewColumnHeader = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+      this.imageList = new System.Windows.Forms.ImageList(this.components);
+      this.isEnabledCheckbox = new System.Windows.Forms.CheckBox();
+      this.operatorTraceGroupBox.SuspendLayout();
+      this.SuspendLayout();
+      // 
+      // operatorTraceGroupBox
+      // 
+      this.operatorTraceGroupBox.Controls.Add(this.isEnabledCheckbox);
+      this.operatorTraceGroupBox.Controls.Add(this.listView);
+      this.operatorTraceGroupBox.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.operatorTraceGroupBox.Location = new System.Drawing.Point(0, 0);
+      this.operatorTraceGroupBox.Name = "operatorTraceGroupBox";
+      this.operatorTraceGroupBox.Size = new System.Drawing.Size(152, 489);
+      this.operatorTraceGroupBox.TabIndex = 0;
+      this.operatorTraceGroupBox.TabStop = false;
+      this.operatorTraceGroupBox.Text = "Operator Trace";
+      // 
+      // listView
+      // 
+      this.listView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
+            | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.listView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+            this.listViewColumnHeader});
+      this.listView.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
+      this.listView.HideSelection = false;
+      this.listView.Location = new System.Drawing.Point(6, 43);
+      this.listView.Name = "listView";
+      this.listView.ShowItemToolTips = true;
+      this.listView.Size = new System.Drawing.Size(140, 440);
+      this.listView.SmallImageList = this.imageList;
+      this.listView.TabIndex = 0;
+      this.listView.UseCompatibleStateImageBehavior = false;
+      this.listView.View = System.Windows.Forms.View.Details;
+      this.listView.ItemActivate += new System.EventHandler(this.listView_ItemActivate);
+      // 
+      // imageList
+      // 
+      this.imageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
+      this.imageList.ImageSize = new System.Drawing.Size(16, 16);
+      this.imageList.TransparentColor = System.Drawing.Color.Transparent;
+      // 
+      // isEnabledCheckbox
+      // 
+      this.isEnabledCheckbox.AutoSize = true;
+      this.isEnabledCheckbox.Location = new System.Drawing.Point(7, 20);
+      this.isEnabledCheckbox.Name = "isEnabledCheckbox";
+      this.isEnabledCheckbox.Size = new System.Drawing.Size(65, 17);
+      this.isEnabledCheckbox.TabIndex = 1;
+      this.isEnabledCheckbox.Text = "Enabled";
+      this.isEnabledCheckbox.UseVisualStyleBackColor = true;
+      this.isEnabledCheckbox.CheckedChanged += new System.EventHandler(this.isEnabledCheckbox_CheckedChanged);
+      // 
+      // OperatorTraceView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.operatorTraceGroupBox);
+      this.Name = "OperatorTraceView";
+      this.Size = new System.Drawing.Size(152, 489);
+      this.operatorTraceGroupBox.ResumeLayout(false);
+      this.operatorTraceGroupBox.PerformLayout();
+      this.ResumeLayout(false);
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.GroupBox operatorTraceGroupBox;
+    private System.Windows.Forms.ListView listView;
+    private System.Windows.Forms.ImageList imageList;
+    private System.Windows.Forms.ColumnHeader listViewColumnHeader;
+    private System.Windows.Forms.CheckBox isEnabledCheckbox;
+  }
+}
Index: /trunk/sources/HeuristicLab.DebugEngine.Views/3.3/OperatorTraceView.cs
===================================================================
--- /trunk/sources/HeuristicLab.DebugEngine.Views/3.3/OperatorTraceView.cs	(revision 7966)
+++ /trunk/sources/HeuristicLab.DebugEngine.Views/3.3/OperatorTraceView.cs	(revision 7966)
@@ -0,0 +1,145 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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.Drawing;
+using System.Windows.Forms;
+using HeuristicLab.Collections;
+using HeuristicLab.Common.Resources;
+using HeuristicLab.Core;
+using HeuristicLab.MainForm;
+using HeuristicLab.MainForm.WindowsForms;
+using HeuristicLab.Operators;
+
+namespace HeuristicLab.DebugEngine {
+
+  [View("Operator Trace View")]
+  [Content(typeof(OperatorTrace), IsDefaultView = true)]
+  public partial class OperatorTraceView : AsynchronousContentView {
+
+    public new OperatorTrace Content {
+      get { return (OperatorTrace)base.Content; }
+      set { base.Content = value; }
+    }
+
+    public OperatorTraceView() {
+      InitializeComponent();
+    }
+
+    protected override void DeregisterContentEvents() {
+      Content.CollectionReset -= Content_CollectionChanged;
+      Content.ItemsAdded -= Content_CollectionChanged;
+      Content.ItemsMoved -= Content_CollectionChanged;
+      Content.ItemsRemoved -= Content_CollectionChanged;
+      Content.ItemsReplaced -= Content_CollectionChanged;
+      Content.IsEnabledChanged -= Content_IsEnabledChanged;
+      base.DeregisterContentEvents();
+    }
+
+    protected override void RegisterContentEvents() {
+      base.RegisterContentEvents();
+      Content.CollectionReset += Content_CollectionChanged;
+      Content.ItemsAdded += Content_CollectionChanged;
+      Content.ItemsMoved += Content_CollectionChanged;
+      Content.ItemsRemoved += Content_CollectionChanged;
+      Content.ItemsReplaced += Content_CollectionChanged;
+      Content.IsEnabledChanged += Content_IsEnabledChanged;
+    }
+
+    #region Event Handlers (Content)
+    void Content_CollectionChanged(object sender, CollectionItemsChangedEventArgs<Collections.IndexedItem<IOperator>> e) {
+      if (InvokeRequired)
+        Invoke(new EventHandler<CollectionItemsChangedEventArgs<IndexedItem<IOperator>>>(Content_CollectionChanged), sender, e);
+      else
+        UpdateOperatorTrace();
+    }
+    void Content_IsEnabledChanged(object sender, EventArgs e) {
+      if (InvokeRequired)
+        Invoke(new EventHandler(Content_IsEnabledChanged), sender, e);
+      else
+        isEnabledCheckbox.Checked = Content.IsEnabled;
+    }
+    #endregion
+
+    private void UpdateOperatorTrace() {
+      listView.BeginUpdate();
+      listView.Items.Clear();
+      listView.SmallImageList.Images.Clear();
+      listView.SmallImageList.Images.Add(VSImageLibrary.Method);
+      listView.SmallImageList.Images.Add(VSImageLibrary.Module);
+      listView.SmallImageList.Images.Add(VSImageLibrary.BreakpointActive);
+      foreach (var item in Content) {
+        var viewItem = listView.Items.Add(item.Name ?? item.ItemName);
+        viewItem.ToolTipText = string.Format("{0}{1}{1}{2}",
+          Utils.TypeName(item), Environment.NewLine,
+          Utils.Wrap(item.Description, 60));
+        viewItem.Tag = item;
+        if (item.Breakpoint) {
+          viewItem.ForeColor = Color.Red;
+          viewItem.ImageIndex = 2;
+        } else {
+          viewItem.ImageIndex = item is CombinedOperator ? 1 : 0;
+        }
+      }
+      if (listView.Items.Count > 0) {
+        for (int i = 0; i < listView.Columns.Count; i++)
+          listView.Columns[i].AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
+      }
+      listView.EndUpdate();
+    }
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      if (Content == null) {
+        listView.Items.Clear();
+        isEnabledCheckbox.Checked = false;
+      } else {
+        UpdateOperatorTrace();
+        isEnabledCheckbox.Checked = Content.IsEnabled;
+      }
+    }
+
+    protected override void SetEnabledStateOfControls() {
+      base.SetEnabledStateOfControls();
+      isEnabledCheckbox.Enabled = Content != null;
+      listView.Enabled = Content != null && Content.IsEnabled;
+    }
+
+    #region Event Handlers (child controls)
+    private void listView_ItemActivate(object sender, EventArgs e) {
+      if (listView.SelectedItems.Count > 0) {
+        IOperator op = listView.SelectedItems[0].Tag as IOperator;
+        if (op != null) {
+          MainFormManager.MainForm.ShowContent(op);
+        }
+      }
+    }
+    private void isEnabledCheckbox_CheckedChanged(object sender, EventArgs e) {
+      if (Content != null)
+        Content.IsEnabled = isEnabledCheckbox.Checked;
+      SetEnabledStateOfControls();
+    }
+    #endregion
+
+
+  }
+
+}
Index: /trunk/sources/HeuristicLab.DebugEngine.Views/3.3/Plugin.cs.frame
===================================================================
--- /trunk/sources/HeuristicLab.DebugEngine.Views/3.3/Plugin.cs.frame	(revision 7966)
+++ /trunk/sources/HeuristicLab.DebugEngine.Views/3.3/Plugin.cs.frame	(revision 7966)
@@ -0,0 +1,37 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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 HeuristicLab.PluginInfrastructure;
+
+namespace HeuristicLab.DebugEngine.Views {
+
+  [Plugin("HeuristicLab.DebugEngine.Views", "3.3.6.7259")]
+  [PluginFile("HeuristicLab.DebugEngine.Views-3.3.dll", PluginFileType.Assembly)]
+  [PluginDependency("HeuristicLab.Common", "3.3")]
+  [PluginDependency("HeuristicLab.Common.Resources", "3.3")]
+  [PluginDependency("HeuristicLab.Core", "3.3")]
+  [PluginDependency("HeuristicLab.Core.Views", "3.3")]
+  [PluginDependency("HeuristicLab.DebugEngine", "3.3")]
+  [PluginDependency("HeuristicLab.MainForm", "3.3")]
+  [PluginDependency("HeuristicLab.MainForm.WindowsForms", "3.3")]
+  [PluginDependency("HeuristicLab.Operators", "3.3")]
+  public class HeuristicLabDebugEngineViewsPlugin : PluginBase { }
+}
Index: /trunk/sources/HeuristicLab.DebugEngine.Views/3.3/Properties/AssemblyInfo.cs.frame
===================================================================
--- /trunk/sources/HeuristicLab.DebugEngine.Views/3.3/Properties/AssemblyInfo.cs.frame	(revision 7966)
+++ /trunk/sources/HeuristicLab.DebugEngine.Views/3.3/Properties/AssemblyInfo.cs.frame	(revision 7966)
@@ -0,0 +1,36 @@
+﻿using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("HeuristicLab.DebugEngine.Views")]
+[assembly: AssemblyDescription("Views for HeuristicLab.DebugEngine")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("HeuristicLab")]
+[assembly: AssemblyCopyright("(c) 2002-2012 HEAL")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("24dd6c96-0e21-4050-b529-3914b19070e8")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("3.3.0.0")]
+[assembly: AssemblyFileVersion("3.3.6.$WCREV$")]
Index: unk/sources/HeuristicLab.DebugEngine/3.3/DebugEngineView.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.DebugEngine/3.3/DebugEngineView.Designer.cs	(revision 7965)
+++ 	(revision )
@@ -1,208 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2012 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.DebugEngine {
-  partial class DebugEngineView {
-    /// <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 Windows Form 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() {
-      this.components = new System.ComponentModel.Container();
-      System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DebugEngineView));
-      this.operationContentView = new HeuristicLab.DebugEngine.OperationContentView();
-      this.executionStackView = new HeuristicLab.DebugEngine.ExecutionStackView();
-      this.splitContainer2 = new System.Windows.Forms.SplitContainer();
-      this.refreshButton = new System.Windows.Forms.Button();
-      this.skipStackOpsCheckBox = new System.Windows.Forms.CheckBox();
-      this.stepButton = new System.Windows.Forms.Button();
-      this.toolTip = new System.Windows.Forms.ToolTip(this.components);
-      this.splitContainer3 = new System.Windows.Forms.SplitContainer();
-      this.operatorTraceView = new HeuristicLab.DebugEngine.OperatorTraceView();
-      this.splitContainer2.Panel1.SuspendLayout();
-      this.splitContainer2.Panel2.SuspendLayout();
-      this.splitContainer2.SuspendLayout();
-      this.splitContainer3.Panel1.SuspendLayout();
-      this.splitContainer3.Panel2.SuspendLayout();
-      this.splitContainer3.SuspendLayout();
-      this.SuspendLayout();
-      // 
-      // operationContentView
-      // 
-      this.operationContentView.Caption = "Operation Content View";
-      this.operationContentView.Content = null;
-      this.operationContentView.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.operationContentView.Location = new System.Drawing.Point(0, 0);
-      this.operationContentView.Name = "operationContentView";
-      this.operationContentView.ReadOnly = false;
-      this.operationContentView.Size = new System.Drawing.Size(484, 538);
-      this.operationContentView.TabIndex = 0;
-      // 
-      // executionStackView
-      // 
-      this.executionStackView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-            | System.Windows.Forms.AnchorStyles.Left)
-            | System.Windows.Forms.AnchorStyles.Right)));
-      this.executionStackView.Caption = "Execution Stack View";
-      this.executionStackView.Content = null;
-      this.executionStackView.Location = new System.Drawing.Point(0, 0);
-      this.executionStackView.Name = "executionStackView";
-      this.executionStackView.ReadOnly = false;
-      this.executionStackView.Size = new System.Drawing.Size(197, 505);
-      this.executionStackView.TabIndex = 0;
-      // 
-      // splitContainer2
-      // 
-      this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.splitContainer2.Location = new System.Drawing.Point(0, 0);
-      this.splitContainer2.Name = "splitContainer2";
-      // 
-      // splitContainer2.Panel1
-      // 
-      this.splitContainer2.Panel1.Controls.Add(this.executionStackView);
-      this.splitContainer2.Panel1.Controls.Add(this.refreshButton);
-      this.splitContainer2.Panel1.Controls.Add(this.skipStackOpsCheckBox);
-      this.splitContainer2.Panel1.Controls.Add(this.stepButton);
-      // 
-      // splitContainer2.Panel2
-      // 
-      this.splitContainer2.Panel2.Controls.Add(this.operationContentView);
-      this.splitContainer2.Size = new System.Drawing.Size(687, 538);
-      this.splitContainer2.SplitterDistance = 199;
-      this.splitContainer2.TabIndex = 0;
-      // 
-      // refreshButton
-      // 
-      this.refreshButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-      this.refreshButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.Refresh;
-      this.refreshButton.Location = new System.Drawing.Point(3, 511);
-      this.refreshButton.Name = "refreshButton";
-      this.refreshButton.Size = new System.Drawing.Size(24, 24);
-      this.refreshButton.TabIndex = 5;
-      this.toolTip.SetToolTip(this.refreshButton, "Refresh View");
-      this.refreshButton.UseVisualStyleBackColor = true;
-      this.refreshButton.Click += new System.EventHandler(this.refreshButton_Click);
-      // 
-      // skipStackOpsCheckBox
-      // 
-      this.skipStackOpsCheckBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-      this.skipStackOpsCheckBox.AutoSize = true;
-      this.skipStackOpsCheckBox.Checked = true;
-      this.skipStackOpsCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
-      this.skipStackOpsCheckBox.Location = new System.Drawing.Point(63, 516);
-      this.skipStackOpsCheckBox.Name = "skipStackOpsCheckBox";
-      this.skipStackOpsCheckBox.Size = new System.Drawing.Size(78, 17);
-      this.skipStackOpsCheckBox.TabIndex = 6;
-      this.skipStackOpsCheckBox.Text = "Skip Stack";
-      this.toolTip.SetToolTip(this.skipStackOpsCheckBox, "Automatically step over steps that manipulate only the execution stack");
-      this.skipStackOpsCheckBox.UseVisualStyleBackColor = true;
-      // 
-      // stepButton
-      // 
-      this.stepButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-      this.stepButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.MoveNext;
-      this.stepButton.Location = new System.Drawing.Point(33, 511);
-      this.stepButton.Name = "stepButton";
-      this.stepButton.Size = new System.Drawing.Size(24, 24);
-      this.stepButton.TabIndex = 4;
-      this.toolTip.SetToolTip(this.stepButton, "Step");
-      this.stepButton.UseVisualStyleBackColor = true;
-      this.stepButton.Click += new System.EventHandler(this.stepButton_Click);
-      // 
-      // splitContainer3
-      // 
-      this.splitContainer3.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-            | System.Windows.Forms.AnchorStyles.Left)
-            | System.Windows.Forms.AnchorStyles.Right)));
-      this.splitContainer3.Location = new System.Drawing.Point(0, 0);
-      this.splitContainer3.Name = "splitContainer3";
-      // 
-      // splitContainer3.Panel1
-      // 
-      this.splitContainer3.Panel1.Controls.Add(this.splitContainer2);
-      // 
-      // splitContainer3.Panel2
-      // 
-      this.splitContainer3.Panel2.Controls.Add(this.operatorTraceView);
-      this.splitContainer3.Size = new System.Drawing.Size(872, 538);
-      this.splitContainer3.SplitterDistance = 687;
-      this.splitContainer3.TabIndex = 7;
-      // 
-      // operatorTraceView
-      // 
-      this.operatorTraceView.Caption = "Operator Trace View";
-      this.operatorTraceView.Content = null;
-      this.operatorTraceView.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.operatorTraceView.Location = new System.Drawing.Point(0, 0);
-      this.operatorTraceView.Name = "operatorTraceView";
-      this.operatorTraceView.ReadOnly = false;
-      this.operatorTraceView.Size = new System.Drawing.Size(181, 538);
-      this.operatorTraceView.TabIndex = 0;
-      // 
-      // DebugEngineView
-      // 
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.Controls.Add(this.splitContainer3);
-      this.Name = "DebugEngineView";
-      this.Size = new System.Drawing.Size(872, 538);
-      this.splitContainer2.Panel1.ResumeLayout(false);
-      this.splitContainer2.Panel1.PerformLayout();
-      this.splitContainer2.Panel2.ResumeLayout(false);
-      this.splitContainer2.ResumeLayout(false);
-      this.splitContainer3.Panel1.ResumeLayout(false);
-      this.splitContainer3.Panel2.ResumeLayout(false);
-      this.splitContainer3.ResumeLayout(false);
-      this.ResumeLayout(false);
-
-    }
-
-    #endregion
-
-    private System.Windows.Forms.SplitContainer splitContainer2;
-    private System.Windows.Forms.Button stepButton;
-    private System.Windows.Forms.ToolTip toolTip;
-    private HeuristicLab.DebugEngine.ExecutionStackView executionStackView;
-    private HeuristicLab.DebugEngine.OperationContentView operationContentView;
-    private System.Windows.Forms.Button refreshButton;
-    private System.Windows.Forms.CheckBox skipStackOpsCheckBox;
-    private System.Windows.Forms.SplitContainer splitContainer3;
-    private OperatorTraceView operatorTraceView;
-
-  }
-}
Index: unk/sources/HeuristicLab.DebugEngine/3.3/DebugEngineView.cs
===================================================================
--- /trunk/sources/HeuristicLab.DebugEngine/3.3/DebugEngineView.cs	(revision 7965)
+++ 	(revision )
@@ -1,148 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2012 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.Windows.Forms;
-using HeuristicLab.Core;
-using HeuristicLab.Core.Views;
-using HeuristicLab.MainForm;
-using System.ComponentModel;
-namespace HeuristicLab.DebugEngine {
-
-  /// <summary>
-  /// Engine espcially for debugging
-  /// </summary>
-  [View("DebugEngine View")]
-  [Content(typeof(DebugEngine), true)]
-  public partial class DebugEngineView : ItemView {
-
-    #region Basics
-
-    /// <summary>
-    /// Gets or sets the current engine.
-    /// </summary>
-    /// <remarks>Uses property <see cref="ViewBase.Item"/> of base class <see cref="EditorBase"/>.</remarks>
-    public new DebugEngine Content {
-      get { return (DebugEngine)base.Content; }
-      set { base.Content = value; }
-    }
-
-    /// <summary>
-    /// Initializes a new instance of <see cref="DebugEngineView"/>.
-    /// </summary>
-    public DebugEngineView() {
-      InitializeComponent();
-    }
-
-    /// <summary>
-    /// Removes the event handlers from the underlying <see cref="IEngine"/>.
-    /// </summary>
-    /// <remarks>Calls <see cref="ViewBase.RemoveItemEvents"/> of base class <see cref="ViewBase"/>.</remarks>
-    protected override void DeregisterContentEvents() {
-      Content.ExecutionStateChanged -= new EventHandler(Content_ExecutionStateChanged);
-      base.DeregisterContentEvents();
-    }
-
-    /// <summary>
-    /// Adds event handlers to the underlying <see cref="IEngine"/>.
-    /// </summary>
-    /// <remarks>Calls <see cref="ViewBase.AddItemEvents"/> of base class <see cref="ViewBase"/>.</remarks>
-    protected override void RegisterContentEvents() {
-      base.RegisterContentEvents();
-      Content.ExecutionStateChanged += new EventHandler(Content_ExecutionStateChanged);
-    }
-
-    /// <summary>
-    /// Updates all controls with the latest data of the model.
-    /// </summary>
-    /// <remarks>Calls <see cref="EditorBase.UpdateControls"/> of base class <see cref="EditorBase"/>.</remarks>
-    protected override void OnContentChanged() {
-      base.OnContentChanged();
-      if (Content == null) {
-        executionStackView.Content = null;
-        operatorTraceView.Content = null;
-        operationContentView.Content = null;
-      } else {
-        executionStackView.Content = Content.ExecutionStack;
-        operatorTraceView.Content = Content.OperatorTrace;
-        operationContentView.Content = new OperationContent(Content.CurrentOperation);
-      }
-    }
-
-    protected override void SetEnabledStateOfControls() {
-      base.SetEnabledStateOfControls();
-      if (Content == null) {
-        stepButton.Enabled = false;
-        refreshButton.Enabled = false;
-      } else {
-        stepButton.Enabled = Content.CanContinue && Content.ExecutionState != ExecutionState.Started;
-        refreshButton.Enabled = Content.CurrentAtomicOperation != null && Content.ExecutionState != ExecutionState.Started;
-      }
-    }
-
-    #endregion
-
-    void Content_ExecutionStateChanged(object sender, EventArgs e) {
-      if (InvokeRequired) {
-        Invoke(new EventHandler(Content_ExecutionStateChanged), sender, e);
-      } else {
-        SetEnabledStateOfControls();
-        switch (Content.ExecutionState) {
-          case ExecutionState.Started:
-            if (!stepping) {
-              executionStackView.Content = null;
-              operatorTraceView.Content = null;
-              operationContentView.Content = null;
-            }
-            break;
-          default:
-            executionStackView.Content = Content.ExecutionStack;
-            operatorTraceView.Content = Content.OperatorTrace;
-            operationContentView.Content = new OperationContent(Content.CurrentOperation);
-            break;
-        }
-      }
-    }
-
-    private bool stepping = false;
-    private void stepButton_Click(object sender, EventArgs e) {
-      BackgroundWorker worker = new BackgroundWorker();
-      bool skipStackops = skipStackOpsCheckBox.Checked;
-      worker.DoWork += (s, a) => {
-        Content.Step(skipStackops);
-      };
-      worker.RunWorkerCompleted += (s, a) => {
-        stepping = false;
-        SetEnabledStateOfControls();
-      };
-      stepping = true;
-      stepButton.Enabled = false;
-      worker.RunWorkerAsync();
-    }
-
-    private void refreshButton_Click(object sender, EventArgs e) {
-      var content = Content;
-      Content = null;
-      Content = content;
-    }
-
-  }
-}
Index: unk/sources/HeuristicLab.DebugEngine/3.3/ExecutionStackView.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.DebugEngine/3.3/ExecutionStackView.Designer.cs	(revision 7965)
+++ 	(revision )
@@ -1,105 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2012 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.DebugEngine {
-  partial class ExecutionStackView {
-    /// <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() {
-      this.components = new System.ComponentModel.Container();
-      this.treeView = new System.Windows.Forms.TreeView();
-      this.imageList = new System.Windows.Forms.ImageList(this.components);
-      this.groupBox = new System.Windows.Forms.GroupBox();
-      this.groupBox.SuspendLayout();
-      this.SuspendLayout();
-      // 
-      // treeView
-      // 
-      this.treeView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
-            | System.Windows.Forms.AnchorStyles.Left) 
-            | System.Windows.Forms.AnchorStyles.Right)));
-      this.treeView.ImageIndex = 0;
-      this.treeView.ImageList = this.imageList;
-      this.treeView.Location = new System.Drawing.Point(6, 19);
-      this.treeView.Name = "treeView";
-      this.treeView.SelectedImageIndex = 0;
-      this.treeView.ShowNodeToolTips = true;
-      this.treeView.Size = new System.Drawing.Size(297, 255);
-      this.treeView.TabIndex = 0;
-      this.treeView.NodeMouseDoubleClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.treeView_NodeMouseDoubleClick);
-      // 
-      // imageList
-      // 
-      this.imageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
-      this.imageList.ImageSize = new System.Drawing.Size(16, 16);
-      this.imageList.TransparentColor = System.Drawing.Color.Transparent;
-      // 
-      // groupBox
-      // 
-      this.groupBox.Controls.Add(this.treeView);
-      this.groupBox.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.groupBox.Location = new System.Drawing.Point(0, 0);
-      this.groupBox.Name = "groupBox";
-      this.groupBox.Size = new System.Drawing.Size(309, 280);
-      this.groupBox.TabIndex = 1;
-      this.groupBox.TabStop = false;
-      this.groupBox.Text = "Execution Stack";
-      // 
-      // ExecutionStackView
-      // 
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-      this.Controls.Add(this.groupBox);
-      this.Name = "ExecutionStackView";
-      this.Size = new System.Drawing.Size(309, 280);
-      this.groupBox.ResumeLayout(false);
-      this.ResumeLayout(false);
-
-    }
-
-    #endregion
-
-    private System.Windows.Forms.TreeView treeView;
-    private System.Windows.Forms.GroupBox groupBox;
-    private System.Windows.Forms.ImageList imageList;
-
-  }
-}
Index: unk/sources/HeuristicLab.DebugEngine/3.3/ExecutionStackView.cs
===================================================================
--- /trunk/sources/HeuristicLab.DebugEngine/3.3/ExecutionStackView.cs	(revision 7965)
+++ 	(revision )
@@ -1,151 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2012 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.Drawing;
-using System.Linq;
-using System.Windows.Forms;
-using HeuristicLab.Collections;
-using HeuristicLab.Common.Resources;
-using HeuristicLab.Core;
-using HeuristicLab.MainForm;
-using HeuristicLab.MainForm.WindowsForms;
-
-namespace HeuristicLab.DebugEngine {
-
-  [View("Execution Stack View")]
-  [Content(typeof(ExecutionStack), IsDefaultView = true)]
-  public partial class ExecutionStackView : AsynchronousContentView {
-    public new ExecutionStack Content {
-      get { return (ExecutionStack)base.Content; }
-      set { base.Content = value; }
-    }
-
-    public ExecutionStackView() {
-      InitializeComponent();
-    }
-
-    protected override void DeregisterContentEvents() {
-      Content.CollectionReset -= Content_Changed;
-      Content.ItemsAdded -= Content_Changed;
-      Content.ItemsRemoved -= Content_Changed;
-      Content.ItemsMoved -= Content_Changed;
-      Content.ItemsReplaced -= Content_Changed;
-      base.DeregisterContentEvents();
-    }
-
-    protected override void RegisterContentEvents() {
-      base.RegisterContentEvents();
-      Content.CollectionReset += Content_Changed;
-      Content.ItemsAdded += Content_Changed;
-      Content.ItemsRemoved += Content_Changed;
-      Content.ItemsMoved += Content_Changed;
-      Content.ItemsReplaced += Content_Changed;
-    }
-
-    #region Event Handlers (Content)
-    void Content_Changed(object sender, CollectionItemsChangedEventArgs<IndexedItem<IOperation>> e) {
-      if (InvokeRequired)
-        Invoke(new EventHandler<CollectionItemsChangedEventArgs<IndexedItem<IOperation>>>(Content_Changed), sender, e);
-      else
-        UpdateExecutionStack();
-    }
-
-
-    private void UpdateExecutionStack() {
-      treeView.BeginUpdate();
-      treeView.Nodes.Clear();
-      treeView.ImageList.Images.Clear();
-      treeView.ImageList.Images.Add(VSImageLibrary.Method);
-      treeView.ImageList.Images.Add(VSImageLibrary.Module);
-      treeView.ImageList.Images.Add(VSImageLibrary.BreakpointActive);
-      int totalNodes = AddStackOperations(treeView.Nodes, ((IEnumerable<IOperation>)Content).Reverse());
-      if (treeView.Nodes.Count > 0)
-        treeView.TopNode = treeView.Nodes[0];
-      treeView.ExpandAll();
-      treeView.EndUpdate();
-      groupBox.Text = string.Format("Execution Stack ({0})", totalNodes);
-    }
-
-    private int AddStackOperations(TreeNodeCollection nodes, IEnumerable<IOperation> operations) {
-      int count = 0;
-      foreach (IOperation op in operations) {
-        if (op is IAtomicOperation) {
-          IAtomicOperation atom = op as IAtomicOperation;
-          TreeNode node = nodes.Add(atom.Operator.Name ?? atom.Operator.ItemName);
-          node.Tag = atom;
-          node.ToolTipText = string.Format("{0}{1}{1}{2}",
-            Utils.TypeName(atom.Operator), Environment.NewLine,
-            Utils.Wrap(atom.Operator.Description ?? atom.Operator.ItemDescription, 60));
-          if (atom.Operator.Breakpoint) {
-            node.ForeColor = Color.Red;
-            node.ImageIndex = 2;
-            node.SelectedImageIndex = 2;
-          } else {
-            node.ImageIndex = 0;
-            node.SelectedImageIndex = 0;
-          }
-          count++;
-        } else if (op is OperationCollection) {
-          OperationCollection ops = op as OperationCollection;
-          TreeNode node = nodes.Add(
-            string.Format("{0} {2}Operation{1}",
-            ops.Count,
-            ops.Count == 1 ? string.Empty : "s",
-            ops.Parallel ? "Parallel " : string.Empty
-            ));
-          node.Tag = op;
-          node.ToolTipText = Utils.TypeName(ops);
-          node.ImageIndex = 1;
-          node.SelectedImageIndex = 1;
-          count += AddStackOperations(node.Nodes, ops);
-        }
-      }
-      return count;
-    }
-    #endregion
-
-    protected override void OnContentChanged() {
-      base.OnContentChanged();
-      if (Content == null) {
-        treeView.Nodes.Clear();
-      } else {
-        UpdateExecutionStack();
-      }
-    }
-
-
-    protected override void SetEnabledStateOfControls() {
-      base.SetEnabledStateOfControls();
-    }
-
-    #region Event Handlers (child controls)
-    private void treeView_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) {
-      if (e.Node != null) {
-        IAtomicOperation op = e.Node.Tag as IAtomicOperation;
-        if (op != null)
-          MainFormManager.MainForm.ShowContent(op.Operator);
-      }
-    }
-    #endregion
-  }
-}
Index: /trunk/sources/HeuristicLab.DebugEngine/3.3/HeuristicLab.DebugEngine-3.3.csproj
===================================================================
--- /trunk/sources/HeuristicLab.DebugEngine/3.3/HeuristicLab.DebugEngine-3.3.csproj	(revision 7965)
+++ /trunk/sources/HeuristicLab.DebugEngine/3.3/HeuristicLab.DebugEngine-3.3.csproj	(revision 7966)
@@ -86,40 +86,11 @@
     <Reference Include="System.Core" />
     <Reference Include="System.Drawing" />
-    <Reference Include="System.Windows.Forms" />
-    <Reference Include="System.Xml.Linq" />
-    <Reference Include="System.Data.DataSetExtensions" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Xml" />
   </ItemGroup>
   <ItemGroup>
     <Compile Include="OperatorTrace.cs" />
     <Compile Include="DebugEngine.cs" />
-    <Compile Include="DebugEngineView.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="DebugEngineView.Designer.cs">
-      <DependentUpon>DebugEngineView.cs</DependentUpon>
-    </Compile>
     <Compile Include="ExecutionStack.cs" />
-    <Compile Include="ExecutionStackView.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="ExecutionStackView.Designer.cs">
-      <DependentUpon>ExecutionStackView.cs</DependentUpon>
-    </Compile>
     <Compile Include="OperationChangedEventArgs.cs" />
     <Compile Include="OperationContent.cs" />
-    <Compile Include="OperationContentView.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="OperationContentView.Designer.cs">
-      <DependentUpon>OperationContentView.cs</DependentUpon>
-    </Compile>
-    <Compile Include="OperatorTraceView.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="OperatorTraceView.Designer.cs">
-      <DependentUpon>OperatorTraceView.cs</DependentUpon>
-    </Compile>
     <Compile Include="Plugin.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
@@ -147,27 +118,7 @@
       <Private>False</Private>
     </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.Core.Views\3.3\HeuristicLab.Core.Views-3.3.csproj">
-      <Project>{E226881D-315F-423D-B419-A766FE0D8685}</Project>
-      <Name>HeuristicLab.Core.Views-3.3</Name>
-      <Private>False</Private>
-    </ProjectReference>
     <ProjectReference Include="..\..\HeuristicLab.Core\3.3\HeuristicLab.Core-3.3.csproj">
       <Project>{C36BD924-A541-4A00-AFA8-41701378DDC5}</Project>
       <Name>HeuristicLab.Core-3.3</Name>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.MainForm.WindowsForms\3.3\HeuristicLab.MainForm.WindowsForms-3.3.csproj">
-      <Project>{AB687BBE-1BFE-476B-906D-44237135431D}</Project>
-      <Name>HeuristicLab.MainForm.WindowsForms-3.3</Name>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.MainForm\3.3\HeuristicLab.MainForm-3.3.csproj">
-      <Project>{3BD61258-31DA-4B09-89C0-4F71FEF5F05A}</Project>
-      <Name>HeuristicLab.MainForm-3.3</Name>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.Operators\3.3\HeuristicLab.Operators-3.3.csproj">
-      <Project>{23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}</Project>
-      <Name>HeuristicLab.Operators-3.3</Name>
       <Private>False</Private>
     </ProjectReference>
Index: unk/sources/HeuristicLab.DebugEngine/3.3/OperationContentView.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.DebugEngine/3.3/OperationContentView.Designer.cs	(revision 7965)
+++ 	(revision )
@@ -1,249 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2012 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.DebugEngine {
-  partial class OperationContentView {
-    /// <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() {
-      this.components = new System.ComponentModel.Container();
-      this.groupBox = new System.Windows.Forms.GroupBox();
-      this.splitContainer1 = new System.Windows.Forms.SplitContainer();
-      this.executionContextGroupBox = new System.Windows.Forms.GroupBox();
-      this.executionContextTreeView = new System.Windows.Forms.TreeView();
-      this.executionContextConextMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
-      this.showValueToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
-      this.executionContextImageList = new System.Windows.Forms.ImageList(this.components);
-      this.scopeGroupBox = new System.Windows.Forms.GroupBox();
-      this.scopeTreeView = new System.Windows.Forms.TreeView();
-      this.scopeImageList = new System.Windows.Forms.ImageList(this.components);
-      this.nameTextBox = new System.Windows.Forms.TextBox();
-      this.parametersImageList = new System.Windows.Forms.ImageList(this.components);
-      this.iconBox = new System.Windows.Forms.PictureBox();
-      this.groupBox.SuspendLayout();
-      this.splitContainer1.Panel1.SuspendLayout();
-      this.splitContainer1.Panel2.SuspendLayout();
-      this.splitContainer1.SuspendLayout();
-      this.executionContextGroupBox.SuspendLayout();
-      this.executionContextConextMenu.SuspendLayout();
-      this.scopeGroupBox.SuspendLayout();
-      ((System.ComponentModel.ISupportInitialize)(this.iconBox)).BeginInit();
-      this.SuspendLayout();
-      // 
-      // groupBox
-      // 
-      this.groupBox.Controls.Add(this.iconBox);
-      this.groupBox.Controls.Add(this.splitContainer1);
-      this.groupBox.Controls.Add(this.nameTextBox);
-      this.groupBox.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.groupBox.Location = new System.Drawing.Point(0, 0);
-      this.groupBox.Name = "groupBox";
-      this.groupBox.Size = new System.Drawing.Size(563, 412);
-      this.groupBox.TabIndex = 0;
-      this.groupBox.TabStop = false;
-      this.groupBox.Text = "Operation";
-      // 
-      // splitContainer1
-      // 
-      this.splitContainer1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
-            | System.Windows.Forms.AnchorStyles.Left) 
-            | System.Windows.Forms.AnchorStyles.Right)));
-      this.splitContainer1.Location = new System.Drawing.Point(6, 45);
-      this.splitContainer1.Name = "splitContainer1";
-      // 
-      // splitContainer1.Panel1
-      // 
-      this.splitContainer1.Panel1.Controls.Add(this.executionContextGroupBox);
-      // 
-      // splitContainer1.Panel2
-      // 
-      this.splitContainer1.Panel2.Controls.Add(this.scopeGroupBox);
-      this.splitContainer1.Size = new System.Drawing.Size(551, 361);
-      this.splitContainer1.SplitterDistance = 242;
-      this.splitContainer1.TabIndex = 4;
-      // 
-      // executionContextGroupBox
-      // 
-      this.executionContextGroupBox.Controls.Add(this.executionContextTreeView);
-      this.executionContextGroupBox.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.executionContextGroupBox.Location = new System.Drawing.Point(0, 0);
-      this.executionContextGroupBox.Name = "executionContextGroupBox";
-      this.executionContextGroupBox.Size = new System.Drawing.Size(242, 361);
-      this.executionContextGroupBox.TabIndex = 0;
-      this.executionContextGroupBox.TabStop = false;
-      this.executionContextGroupBox.Text = "Execution Context";
-      // 
-      // executionContextTreeView
-      // 
-      this.executionContextTreeView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
-            | System.Windows.Forms.AnchorStyles.Left) 
-            | System.Windows.Forms.AnchorStyles.Right)));
-      this.executionContextTreeView.ContextMenuStrip = this.executionContextConextMenu;
-      this.executionContextTreeView.ImageIndex = 0;
-      this.executionContextTreeView.ImageList = this.executionContextImageList;
-      this.executionContextTreeView.Location = new System.Drawing.Point(6, 19);
-      this.executionContextTreeView.Name = "executionContextTreeView";
-      this.executionContextTreeView.SelectedImageIndex = 0;
-      this.executionContextTreeView.ShowNodeToolTips = true;
-      this.executionContextTreeView.Size = new System.Drawing.Size(230, 336);
-      this.executionContextTreeView.TabIndex = 0;
-      this.executionContextTreeView.NodeMouseClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.executionContextTreeView_NodeMouseClick);
-      this.executionContextTreeView.NodeMouseDoubleClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.executionContextTreeView_NodeMouseDoubleClick);
-      this.executionContextTreeView.MouseDown += new System.Windows.Forms.MouseEventHandler(this.executionContextTreeView_MouseDown);
-      // 
-      // executionContextConextMenu
-      // 
-      this.executionContextConextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
-            this.showValueToolStripMenuItem});
-      this.executionContextConextMenu.Name = "executionContextConextMenu";
-      this.executionContextConextMenu.Size = new System.Drawing.Size(173, 26);
-      this.executionContextConextMenu.Opening += new System.ComponentModel.CancelEventHandler(this.executionContextConextMenu_Opening);
-      // 
-      // showValueToolStripMenuItem
-      // 
-      this.showValueToolStripMenuItem.Name = "showValueToolStripMenuItem";
-      this.showValueToolStripMenuItem.Size = new System.Drawing.Size(172, 22);
-      this.showValueToolStripMenuItem.Text = "Show Actual Value";
-      this.showValueToolStripMenuItem.ToolTipText = "Try to obtain the parameter\'s actual value in the current execution context and o" +
-    "pen it in a new view.";
-      this.showValueToolStripMenuItem.Click += new System.EventHandler(this.ShowValue_Click);
-      // 
-      // executionContextImageList
-      // 
-      this.executionContextImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
-      this.executionContextImageList.ImageSize = new System.Drawing.Size(16, 16);
-      this.executionContextImageList.TransparentColor = System.Drawing.Color.Transparent;
-      // 
-      // scopeGroupBox
-      // 
-      this.scopeGroupBox.Controls.Add(this.scopeTreeView);
-      this.scopeGroupBox.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.scopeGroupBox.Location = new System.Drawing.Point(0, 0);
-      this.scopeGroupBox.Name = "scopeGroupBox";
-      this.scopeGroupBox.Size = new System.Drawing.Size(305, 361);
-      this.scopeGroupBox.TabIndex = 1;
-      this.scopeGroupBox.TabStop = false;
-      this.scopeGroupBox.Text = "Scope";
-      // 
-      // scopeTreeView
-      // 
-      this.scopeTreeView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
-            | System.Windows.Forms.AnchorStyles.Left) 
-            | System.Windows.Forms.AnchorStyles.Right)));
-      this.scopeTreeView.ImageIndex = 0;
-      this.scopeTreeView.ImageList = this.scopeImageList;
-      this.scopeTreeView.Location = new System.Drawing.Point(6, 19);
-      this.scopeTreeView.Name = "scopeTreeView";
-      this.scopeTreeView.SelectedImageIndex = 0;
-      this.scopeTreeView.ShowNodeToolTips = true;
-      this.scopeTreeView.Size = new System.Drawing.Size(293, 336);
-      this.scopeTreeView.TabIndex = 0;
-      this.scopeTreeView.NodeMouseDoubleClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.scopeTreeView_NodeMouseDoubleClick);
-      // 
-      // scopeImageList
-      // 
-      this.scopeImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
-      this.scopeImageList.ImageSize = new System.Drawing.Size(16, 16);
-      this.scopeImageList.TransparentColor = System.Drawing.Color.Transparent;
-      // 
-      // nameTextBox
-      // 
-      this.nameTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
-            | System.Windows.Forms.AnchorStyles.Right)));
-      this.nameTextBox.Cursor = System.Windows.Forms.Cursors.Default;
-      this.nameTextBox.Location = new System.Drawing.Point(32, 19);
-      this.nameTextBox.Name = "nameTextBox";
-      this.nameTextBox.ReadOnly = true;
-      this.nameTextBox.Size = new System.Drawing.Size(525, 20);
-      this.nameTextBox.TabIndex = 3;
-      this.nameTextBox.DoubleClick += new System.EventHandler(this.nameTextBox_DoubleClick);
-      // 
-      // parametersImageList
-      // 
-      this.parametersImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
-      this.parametersImageList.ImageSize = new System.Drawing.Size(16, 16);
-      this.parametersImageList.TransparentColor = System.Drawing.Color.Transparent;
-      // 
-      // iconBox
-      // 
-      this.iconBox.Location = new System.Drawing.Point(6, 19);
-      this.iconBox.Name = "iconBox";
-      this.iconBox.Size = new System.Drawing.Size(20, 20);
-      this.iconBox.TabIndex = 5;
-      this.iconBox.TabStop = false;
-      // 
-      // OperationContentView
-      // 
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-      this.Controls.Add(this.groupBox);
-      this.Name = "OperationContentView";
-      this.Size = new System.Drawing.Size(563, 412);
-      this.groupBox.ResumeLayout(false);
-      this.groupBox.PerformLayout();
-      this.splitContainer1.Panel1.ResumeLayout(false);
-      this.splitContainer1.Panel2.ResumeLayout(false);
-      this.splitContainer1.ResumeLayout(false);
-      this.executionContextGroupBox.ResumeLayout(false);
-      this.executionContextConextMenu.ResumeLayout(false);
-      this.scopeGroupBox.ResumeLayout(false);
-      ((System.ComponentModel.ISupportInitialize)(this.iconBox)).EndInit();
-      this.ResumeLayout(false);
-
-    }
-
-    #endregion
-
-    private System.Windows.Forms.GroupBox groupBox;
-    private System.Windows.Forms.TextBox nameTextBox;
-    private System.Windows.Forms.SplitContainer splitContainer1;
-    private System.Windows.Forms.TreeView scopeTreeView;
-    private System.Windows.Forms.GroupBox scopeGroupBox;
-    private System.Windows.Forms.ImageList executionContextImageList;
-    private System.Windows.Forms.ImageList parametersImageList;
-    private System.Windows.Forms.ImageList scopeImageList;
-    private System.Windows.Forms.GroupBox executionContextGroupBox;
-    private System.Windows.Forms.TreeView executionContextTreeView;
-    private System.Windows.Forms.ContextMenuStrip executionContextConextMenu;
-    private System.Windows.Forms.ToolStripMenuItem showValueToolStripMenuItem;
-    private System.Windows.Forms.PictureBox iconBox;
-  }
-}
Index: unk/sources/HeuristicLab.DebugEngine/3.3/OperationContentView.cs
===================================================================
--- /trunk/sources/HeuristicLab.DebugEngine/3.3/OperationContentView.cs	(revision 7965)
+++ 	(revision )
@@ -1,270 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2012 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.Drawing;
-using System.Text;
-using System.Windows.Forms;
-using HeuristicLab.Common;
-using HeuristicLab.Common.Resources;
-using HeuristicLab.Core;
-using HeuristicLab.MainForm;
-using HeuristicLab.MainForm.WindowsForms;
-
-namespace HeuristicLab.DebugEngine {
-
-  [View("Operation Content View")]
-  [Content(typeof(OperationContent), IsDefaultView = true)]
-  public partial class OperationContentView : AsynchronousContentView {
-    public new OperationContent Content {
-      get { return (OperationContent)base.Content; }
-      set { base.Content = value; }
-    }
-
-    public OperationContentView() {
-      InitializeComponent();
-    }
-
-    protected override void OnContentChanged() {
-      base.OnContentChanged();
-      if (Content == null) {
-        nameTextBox.Text = "";
-        scopeTreeView.Nodes.Clear();
-        executionContextTreeView.Nodes.Clear();
-        iconBox.Image = null;
-      } else {
-        nameTextBox.Text = Content.Name;
-        UpdateScopeTree();
-        UpdateExecutionContext();
-        iconBox.Image = Content.Icon;
-      }
-    }
-
-    private object GetParameterValue(IParameter param, IExecutionContext context, out string actualName) {
-      param = (IParameter)param.Clone();
-      param.ExecutionContext = context;
-      object value = null;
-      try {
-        value = param.ActualValue;
-      } catch (Exception x) {
-        value = x.Message;
-      }
-      ILookupParameter lookupParam = param as ILookupParameter;
-      if (lookupParam != null)
-        actualName = lookupParam.ActualName;
-      else
-        actualName = null;
-      return value;
-    }
-
-    private void UpdateScopeTree() {
-      scopeTreeView.BeginUpdate();
-      scopeTreeView.Nodes.Clear();
-      scopeTreeView.ImageList.Images.Clear();
-      scopeTreeView.ImageList.Images.Add(VSImageLibrary.Namespace);
-      scopeTreeView.ImageList.Images.Add(VSImageLibrary.Field);
-      if (Content.IsContext) {
-        var scope = Content.ExecutionContext.Scope;
-        while (scope != null && scope.Parent != null)
-          scope = scope.Parent;
-        if (scope != null)
-          AddScope(scopeTreeView.Nodes, scope);
-      }
-      scopeTreeView.EndUpdate();
-    }
-
-    private void AddScope(TreeNodeCollection nodes, IScope scope) {
-      TreeNode node = nodes.Add(string.Format("{0} ({1}+{2})",
-        scope.Name, scope.Variables.Count, scope.SubScopes.Count));
-      node.Tag = scope;
-      node.ImageIndex = 0;
-      node.SelectedImageIndex = 0;
-      foreach (var var in scope.Variables) {
-        TreeNode varNode = node.Nodes.Add(string.Format("{0} = {1}", var.Name, var.Value));
-        varNode.Tag = var.Value;
-        varNode.ToolTipText = string.Format("{0}{1}{1}{2}",
-          Utils.TypeName(var.Value), Environment.NewLine,
-          Utils.Wrap(var.Description ?? var.ItemDescription, 60));
-        varNode.ImageIndex = 1;
-        varNode.SelectedImageIndex = 1;
-      }
-      foreach (var subScope in scope.SubScopes)
-        AddScope(node.Nodes, subScope);
-      if (Content.IsAtomic && Content.AtomicOperation.Scope == scope) {
-        node.NodeFont = new Font(DefaultFont, FontStyle.Bold);
-        node.ForeColor = Color.White;
-        node.BackColor = Color.Crimson;
-        node.Expand();
-        scopeTreeView.TopNode = node;
-        node.ToolTipText = "Current scope of active operation";
-      }
-    }
-
-
-    private void UpdateExecutionContext() {
-      executionContextTreeView.BeginUpdate();
-      executionContextTreeView.Nodes.Clear();
-      executionContextTreeView.ImageList.Images.Clear();
-      executionContextTreeView.ImageList.Images.Add(VSImageLibrary.Namespace);
-      if (Content.IsContext) {
-        AddExecutionContext(Content.ExecutionContext, executionContextTreeView.Nodes);
-      }
-      executionContextTreeView.ExpandAll();
-      if (executionContextTreeView.Nodes.Count > 0)
-        executionContextTreeView.TopNode = executionContextTreeView.Nodes[0];
-      executionContextTreeView.EndUpdate();
-    }
-
-    private void AddExecutionContext(IExecutionContext executionContext, TreeNodeCollection nodes) {
-      ExecutionContext context = executionContext as ExecutionContext;
-      StringBuilder name = new StringBuilder();
-      if (context != null && context.Operator != null)
-        name.Append(context.Operator.Name);
-      else
-        name.Append("<Context>");
-      name.Append("@").Append(executionContext.Scope.Name);
-      TreeNode node = nodes.Add(name.ToString());
-      node.Tag = executionContext;
-      node.ImageIndex = 0;
-      node.SelectedImageIndex = 0;
-      foreach (var param in executionContext.Parameters) {
-        string actualName = null;
-        object value = GetParameterValue(param, executionContext, out actualName);
-        if (value == null)
-          value = "null";
-        string label = actualName != null && actualName != param.Name ?
-          string.Format("{0} ({1}) = {2}", param.Name, actualName, value) :
-          string.Format("{0} = {1}", param.Name, value);
-        TreeNode paramNode = node.Nodes.Add(label);
-        paramNode.Tag = param;
-        executionContextTreeView.ImageList.Images.Add(param.ItemImage ?? VSImageLibrary.Nothing);
-        paramNode.ImageIndex = executionContextTreeView.ImageList.Images.Count - 1;
-        paramNode.SelectedImageIndex = paramNode.ImageIndex;
-        paramNode.ToolTipText = string.Format("{0}{1}{1}{2}",
-          Utils.TypeName(param), Environment.NewLine,
-          Utils.Wrap(param.Description ?? param.ItemDescription, 60));
-      }
-      if (executionContext.Parent != null)
-        AddExecutionContext(executionContext.Parent, node.Nodes);
-    }
-
-    #region Event Handlers (child controls)
-
-    private void executionContextTreeView_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) {
-      if (e.Node != null) {
-        IParameter param = e.Node.Tag as IParameter;
-        if (param != null)
-          MainFormManager.MainForm.ShowContent(param);
-      }
-    }
-
-    private void scopeTreeView_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) {
-      if (e.Node != null) {
-        IItem item = e.Node.Tag as IItem;
-        if (item != null)
-          MainFormManager.MainForm.ShowContent(item);
-      }
-    }
-
-    private TreeNode selectedScopeNode = null;
-    private void executionContextTreeView_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) {
-      scopeTreeView.BeginUpdate();
-      if (selectedScopeNode != null) {
-        if (Content.IsAtomic && Content.AtomicOperation.Scope == selectedScopeNode.Tag) {
-          selectedScopeNode.BackColor = Color.Crimson;
-          selectedScopeNode.ForeColor = Color.White;
-          selectedScopeNode.NodeFont = new Font(DefaultFont, FontStyle.Bold);
-        } else {
-          selectedScopeNode.BackColor = Color.White;
-          selectedScopeNode.ForeColor = Color.Black;
-          selectedScopeNode.NodeFont = DefaultFont;
-        }
-      }
-      if (e.Node != null) {
-        IExecutionContext context = e.Node.Tag as IExecutionContext;
-        if (context != null && context.Scope != null) {
-          TreeNode scopeNode = FindScopeNode(context.Scope, scopeTreeView.Nodes);
-          if (scopeNode != null) {
-            if (Content.IsAtomic && Content.AtomicOperation.Scope == scopeNode.Tag) {
-              scopeNode.BackColor = Color.DarkViolet;
-              scopeNode.ForeColor = Color.White;
-              scopeNode.NodeFont = new Font(DefaultFont, FontStyle.Bold);
-            } else {
-              scopeNode.BackColor = Color.Blue;
-              scopeNode.ForeColor = Color.White;
-              scopeNode.NodeFont = new Font(DefaultFont, FontStyle.Bold);
-            }
-            selectedScopeNode = scopeNode;
-            scopeTreeView.TopNode = scopeNode;
-          }
-        }
-      }
-      scopeTreeView.EndUpdate();
-    }
-
-    private TreeNode FindScopeNode(IScope scope, TreeNodeCollection nodes) {
-      foreach (TreeNode node in nodes) {
-        if (node.Tag == scope) {
-          return node;
-        } else {
-          TreeNode childNode = FindScopeNode(scope, node.Nodes);
-          if (childNode != null)
-            return childNode;
-        }
-      }
-      return null;
-    }
-
-    private void nameTextBox_DoubleClick(object sender, EventArgs e) {
-      if (Content != null && Content.IsAtomic && Content.AtomicOperation.Operator != null)
-        MainFormManager.MainForm.ShowContent(Content.AtomicOperation.Operator);
-    }
-
-    private void ShowValue_Click(object sender, EventArgs e) {
-      if (executionContextTreeView.SelectedNode == null)
-        return;
-      IParameter param = executionContextTreeView.SelectedNode.Tag as IParameter;
-      if (param != null) {
-        string actualName = null;
-        IExecutionContext context = executionContextTreeView.SelectedNode.Parent.Tag as IExecutionContext ?? Content.ExecutionContext;
-        MainFormManager.MainForm.ShowContent(GetParameterValue(param, context, out actualName) as IContent);
-      }
-    }
-
-    private void executionContextConextMenu_Opening(object sender, System.ComponentModel.CancelEventArgs e) {
-      IParameter param = executionContextTreeView.SelectedNode.Tag as IParameter;
-      if (param != null) {
-        string actualName = null;
-        IExecutionContext context = executionContextTreeView.SelectedNode.Parent.Tag as IExecutionContext ?? Content.ExecutionContext;
-        showValueToolStripMenuItem.Enabled = GetParameterValue(param, context, out actualName) is IContent;
-      } else
-        e.Cancel = true;
-    }
-
-    private void executionContextTreeView_MouseDown(object sender, MouseEventArgs e) {
-      if (e.Button == System.Windows.Forms.MouseButtons.Right)
-        executionContextTreeView.SelectedNode = executionContextTreeView.GetNodeAt(e.Location);
-    }
-
-    #endregion
-
-  }
-}
Index: unk/sources/HeuristicLab.DebugEngine/3.3/OperatorTraceView.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.DebugEngine/3.3/OperatorTraceView.Designer.cs	(revision 7965)
+++ 	(revision )
@@ -1,125 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2012 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.DebugEngine {
-  partial class OperatorTraceView {
-    /// <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() {
-      this.components = new System.ComponentModel.Container();
-      this.operatorTraceGroupBox = new System.Windows.Forms.GroupBox();
-      this.listView = new System.Windows.Forms.ListView();
-      this.listViewColumnHeader = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
-      this.imageList = new System.Windows.Forms.ImageList(this.components);
-      this.isEnabledCheckbox = new System.Windows.Forms.CheckBox();
-      this.operatorTraceGroupBox.SuspendLayout();
-      this.SuspendLayout();
-      // 
-      // operatorTraceGroupBox
-      // 
-      this.operatorTraceGroupBox.Controls.Add(this.isEnabledCheckbox);
-      this.operatorTraceGroupBox.Controls.Add(this.listView);
-      this.operatorTraceGroupBox.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.operatorTraceGroupBox.Location = new System.Drawing.Point(0, 0);
-      this.operatorTraceGroupBox.Name = "operatorTraceGroupBox";
-      this.operatorTraceGroupBox.Size = new System.Drawing.Size(152, 489);
-      this.operatorTraceGroupBox.TabIndex = 0;
-      this.operatorTraceGroupBox.TabStop = false;
-      this.operatorTraceGroupBox.Text = "Operator Trace";
-      // 
-      // listView
-      // 
-      this.listView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
-            | System.Windows.Forms.AnchorStyles.Left) 
-            | System.Windows.Forms.AnchorStyles.Right)));
-      this.listView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
-            this.listViewColumnHeader});
-      this.listView.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
-      this.listView.HideSelection = false;
-      this.listView.Location = new System.Drawing.Point(6, 43);
-      this.listView.Name = "listView";
-      this.listView.ShowItemToolTips = true;
-      this.listView.Size = new System.Drawing.Size(140, 440);
-      this.listView.SmallImageList = this.imageList;
-      this.listView.TabIndex = 0;
-      this.listView.UseCompatibleStateImageBehavior = false;
-      this.listView.View = System.Windows.Forms.View.Details;
-      this.listView.ItemActivate += new System.EventHandler(this.listView_ItemActivate);
-      // 
-      // imageList
-      // 
-      this.imageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
-      this.imageList.ImageSize = new System.Drawing.Size(16, 16);
-      this.imageList.TransparentColor = System.Drawing.Color.Transparent;
-      // 
-      // isEnabledCheckbox
-      // 
-      this.isEnabledCheckbox.AutoSize = true;
-      this.isEnabledCheckbox.Location = new System.Drawing.Point(7, 20);
-      this.isEnabledCheckbox.Name = "isEnabledCheckbox";
-      this.isEnabledCheckbox.Size = new System.Drawing.Size(65, 17);
-      this.isEnabledCheckbox.TabIndex = 1;
-      this.isEnabledCheckbox.Text = "Enabled";
-      this.isEnabledCheckbox.UseVisualStyleBackColor = true;
-      this.isEnabledCheckbox.CheckedChanged += new System.EventHandler(this.isEnabledCheckbox_CheckedChanged);
-      // 
-      // OperatorTraceView
-      // 
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-      this.Controls.Add(this.operatorTraceGroupBox);
-      this.Name = "OperatorTraceView";
-      this.Size = new System.Drawing.Size(152, 489);
-      this.operatorTraceGroupBox.ResumeLayout(false);
-      this.operatorTraceGroupBox.PerformLayout();
-      this.ResumeLayout(false);
-
-    }
-
-    #endregion
-
-    private System.Windows.Forms.GroupBox operatorTraceGroupBox;
-    private System.Windows.Forms.ListView listView;
-    private System.Windows.Forms.ImageList imageList;
-    private System.Windows.Forms.ColumnHeader listViewColumnHeader;
-    private System.Windows.Forms.CheckBox isEnabledCheckbox;
-  }
-}
Index: unk/sources/HeuristicLab.DebugEngine/3.3/OperatorTraceView.cs
===================================================================
--- /trunk/sources/HeuristicLab.DebugEngine/3.3/OperatorTraceView.cs	(revision 7965)
+++ 	(revision )
@@ -1,145 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2012 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.Drawing;
-using System.Windows.Forms;
-using HeuristicLab.Collections;
-using HeuristicLab.Common.Resources;
-using HeuristicLab.Core;
-using HeuristicLab.MainForm;
-using HeuristicLab.MainForm.WindowsForms;
-using HeuristicLab.Operators;
-
-namespace HeuristicLab.DebugEngine {
-
-  [View("Operator Trace View")]
-  [Content(typeof(OperatorTrace), IsDefaultView = true)]
-  public partial class OperatorTraceView : AsynchronousContentView {
-
-    public new OperatorTrace Content {
-      get { return (OperatorTrace)base.Content; }
-      set { base.Content = value; }
-    }
-
-    public OperatorTraceView() {
-      InitializeComponent();
-    }
-
-    protected override void DeregisterContentEvents() {
-      Content.CollectionReset -= Content_CollectionChanged;
-      Content.ItemsAdded -= Content_CollectionChanged;
-      Content.ItemsMoved -= Content_CollectionChanged;
-      Content.ItemsRemoved -= Content_CollectionChanged;
-      Content.ItemsReplaced -= Content_CollectionChanged;
-      Content.IsEnabledChanged -= Content_IsEnabledChanged;
-      base.DeregisterContentEvents();
-    }
-
-    protected override void RegisterContentEvents() {
-      base.RegisterContentEvents();
-      Content.CollectionReset += Content_CollectionChanged;
-      Content.ItemsAdded += Content_CollectionChanged;
-      Content.ItemsMoved += Content_CollectionChanged;
-      Content.ItemsRemoved += Content_CollectionChanged;
-      Content.ItemsReplaced += Content_CollectionChanged;
-      Content.IsEnabledChanged += Content_IsEnabledChanged;
-    }
-
-    #region Event Handlers (Content)
-    void Content_CollectionChanged(object sender, CollectionItemsChangedEventArgs<Collections.IndexedItem<IOperator>> e) {
-      if (InvokeRequired)
-        Invoke(new EventHandler<CollectionItemsChangedEventArgs<IndexedItem<IOperator>>>(Content_CollectionChanged), sender, e);
-      else
-        UpdateOperatorTrace();
-    }
-    void Content_IsEnabledChanged(object sender, EventArgs e) {
-      if (InvokeRequired)
-        Invoke(new EventHandler(Content_IsEnabledChanged), sender, e);
-      else
-        isEnabledCheckbox.Checked = Content.IsEnabled;
-    }
-    #endregion
-
-    private void UpdateOperatorTrace() {
-      listView.BeginUpdate();
-      listView.Items.Clear();
-      listView.SmallImageList.Images.Clear();
-      listView.SmallImageList.Images.Add(VSImageLibrary.Method);
-      listView.SmallImageList.Images.Add(VSImageLibrary.Module);
-      listView.SmallImageList.Images.Add(VSImageLibrary.BreakpointActive);
-      foreach (var item in Content) {
-        var viewItem = listView.Items.Add(item.Name ?? item.ItemName);
-        viewItem.ToolTipText = string.Format("{0}{1}{1}{2}",
-          Utils.TypeName(item), Environment.NewLine,
-          Utils.Wrap(item.Description, 60));
-        viewItem.Tag = item;
-        if (item.Breakpoint) {
-          viewItem.ForeColor = Color.Red;
-          viewItem.ImageIndex = 2;
-        } else {
-          viewItem.ImageIndex = item is CombinedOperator ? 1 : 0;
-        }
-      }
-      if (listView.Items.Count > 0) {
-        for (int i = 0; i < listView.Columns.Count; i++)
-          listView.Columns[i].AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
-      }
-      listView.EndUpdate();
-    }
-
-    protected override void OnContentChanged() {
-      base.OnContentChanged();
-      if (Content == null) {
-        listView.Items.Clear();
-        isEnabledCheckbox.Checked = false;
-      } else {
-        UpdateOperatorTrace();
-        isEnabledCheckbox.Checked = Content.IsEnabled;
-      }
-    }
-
-    protected override void SetEnabledStateOfControls() {
-      base.SetEnabledStateOfControls();
-      isEnabledCheckbox.Enabled = Content != null;
-      listView.Enabled = Content != null && Content.IsEnabled;
-    }
-
-    #region Event Handlers (child controls)
-    private void listView_ItemActivate(object sender, EventArgs e) {
-      if (listView.SelectedItems.Count > 0) {
-        IOperator op = listView.SelectedItems[0].Tag as IOperator;
-        if (op != null) {
-          MainFormManager.MainForm.ShowContent(op);
-        }
-      }
-    }
-    private void isEnabledCheckbox_CheckedChanged(object sender, EventArgs e) {
-      if (Content != null)
-        Content.IsEnabled = isEnabledCheckbox.Checked;
-      SetEnabledStateOfControls();
-    }
-    #endregion
-
-
-  }
-
-}
Index: /trunk/sources/HeuristicLab.DebugEngine/3.3/Plugin.cs.frame
===================================================================
--- /trunk/sources/HeuristicLab.DebugEngine/3.3/Plugin.cs.frame	(revision 7965)
+++ /trunk/sources/HeuristicLab.DebugEngine/3.3/Plugin.cs.frame	(revision 7966)
@@ -30,8 +30,4 @@
   [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")]
-  [PluginDependency("HeuristicLab.Operators", "3.3")]
   [PluginDependency("HeuristicLab.Persistence", "3.3")]  
   public class HeuristicLabDebugEnginePlugin : PluginBase { }
