Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/DataPreprocessingView.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/DataPreprocessingView.cs	(revision 10610)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/DataPreprocessingView.cs	(revision 10614)
@@ -23,5 +23,4 @@
 using System.Windows.Forms;
 using HeuristicLab.Common;
-using HeuristicLab.Core;
 using HeuristicLab.Core.Views;
 using HeuristicLab.MainForm;
@@ -29,73 +28,13 @@
 namespace HeuristicLab.DataPreprocessing.Views {
   [View("DataPreprocessing View")]
-  [Content(typeof(IPreprocessingContext), true)]
+  [Content(typeof(PreprocessingContext), true)]
+  [Content(typeof(IPreprocessingContext), false)]
   public partial class DataPreprocessingView : ItemView {
-
-    private DataGridContent dataGridContent;
-    private StatisticsContent statisticsContent;
-    private FilterContent filterContent;
-    private TransformationContent tranformationContent;
-    private LineChartContent lineChartContent;
-    private HistogramContent histogramContent;
-
     public DataPreprocessingView() {
       InitializeComponent();
     }
 
-    protected override void OnContentChanged() {
-      base.OnContentChanged();
-      InitializeContents();
-    }
-
-    //Create list view item for content list view
-    private ListViewItem CreateListViewItem(IItem item) {
-      ListViewItem listViewItem = new ListViewItem();
-
-      listViewItem.Text = item.ToString();
-      listViewItem.ToolTipText = item.ItemName + ": " + item.ItemDescription;
-      contentListView.SmallImageList.Images.Add(item.ItemImage);
-      listViewItem.ImageIndex = contentListView.SmallImageList.Images.Count - 1;
-      listViewItem.Tag = item;
-
-      return listViewItem;
-    }
-
-    private void InitializeContents() {
-
-      //create content items
-      ITransactionalPreprocessingData data = Content.Data;
-      ISearchLogic searchLogic = new SearchLogic(data);
-      var dataGridLogic = new DataGridLogic(data);
-      StatisticsLogic statisticsLogic = new StatisticsLogic(data, searchLogic);
-      dataGridContent = new DataGridContent(dataGridLogic, new ManipulationLogic(data, searchLogic, statisticsLogic));
-      statisticsContent = new StatisticsContent(statisticsLogic);
-      filterContent = new FilterContent(new FilterLogic());
-      tranformationContent = new TransformationContent(new TransformationLogic(data, searchLogic, statisticsLogic));
-      lineChartContent = new LineChartContent(new LineChartLogic(data));
-      histogramContent = new HistogramContent(new HistogramLogic(data));
-
-      //create view items
-      contentListView.SmallImageList = new ImageList();
-      ListViewItem contentListViewItem = CreateListViewItem(dataGridContent);
-      ListViewItem statisticsListViewItem = CreateListViewItem(statisticsContent);
-      ListViewItem filterListViewItem = CreateListViewItem(filterContent);
-      ListViewItem transformationListViewItem = CreateListViewItem(tranformationContent);
-      ListViewItem lineChartListViewItem = CreateListViewItem(lineChartContent);
-      ListViewItem histogramListViewItem = CreateListViewItem(histogramContent);
-
-      //add view items to content list view
-      contentListView.Items.Add(statisticsListViewItem);
-      contentListView.Items.Add(contentListViewItem);
-      contentListView.Items.Add(filterListViewItem);
-      contentListView.Items.Add(transformationListViewItem);
-      contentListView.Items.Add(lineChartListViewItem);
-      contentListView.Items.Add(histogramListViewItem);
-
-      //default view -> statistic view
-      contentListView.SelectedIndices.Add(0);
-    }
-
-    public new PreprocessingContext Content {
-      get { return (PreprocessingContext)base.Content; }
+    public new IPreprocessingContext Content {
+      get { return (IPreprocessingContext)base.Content; }
       set {
         base.Content = value;
@@ -103,17 +42,19 @@
     }
 
-    private void listView1_SelectedIndexChanged(object sender, EventArgs e) {
-
-      if (contentListView.SelectedItems.Count > 0) {
-        ListViewItem listViewItem = (ListViewItem)contentListView.SelectedItems[0];
-        this.viewHost.Content = (IItem)listViewItem.Tag;
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      if (Content != null) {
+        viewShortcutCollectionView.Content = Content.ViewShortcuts;
+      } else {
+        viewShortcutCollectionView.Content = null;
       }
     }
 
-    private void listView1_DoubleClick(object sender, EventArgs e) {
-      if (contentListView.SelectedItems.Count > 0) {
-        ListViewItem listViewItem = (ListViewItem)contentListView.SelectedItems[0];
-        MainFormManager.MainForm.ShowContent((IItem)listViewItem.Tag);
-      }
+    protected override void SetEnabledStateOfControls() {
+      base.SetEnabledStateOfControls();
+      viewShortcutCollectionView.Enabled = Content != null;
+      applyInNewTabButton.Enabled = Content != null;
+      exportProblemButton.Enabled = Content != null;
+      undoButton.Enabled = Content != null;
     }
 
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/DataPreprocessingView.designer.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/DataPreprocessingView.designer.cs	(revision 10610)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/DataPreprocessingView.designer.cs	(revision 10614)
@@ -47,42 +47,15 @@
       this.components = new System.ComponentModel.Container();
       System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DataPreprocessingView));
-      this.splitContainer1 = new System.Windows.Forms.SplitContainer();
       this.undoButton = new System.Windows.Forms.Button();
       this.applyInNewTabButton = new System.Windows.Forms.Button();
       this.exportProblemButton = new System.Windows.Forms.Button();
-      this.contentListView = new System.Windows.Forms.ListView();
-      this.viewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
       this.toolTip = new System.Windows.Forms.ToolTip(this.components);
-      ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
-      this.splitContainer1.Panel1.SuspendLayout();
-      this.splitContainer1.Panel2.SuspendLayout();
-      this.splitContainer1.SuspendLayout();
+      this.viewShortcutCollectionView = new HeuristicLab.DataPreprocessing.Views.ViewShortcutCollectionView();
       this.SuspendLayout();
-      // 
-      // splitContainer1
-      // 
-      this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
-      this.splitContainer1.Location = new System.Drawing.Point(0, 0);
-      this.splitContainer1.Name = "splitContainer1";
-      // 
-      // splitContainer1.Panel1
-      // 
-      this.splitContainer1.Panel1.Controls.Add(this.undoButton);
-      this.splitContainer1.Panel1.Controls.Add(this.applyInNewTabButton);
-      this.splitContainer1.Panel1.Controls.Add(this.exportProblemButton);
-      this.splitContainer1.Panel1.Controls.Add(this.contentListView);
-      // 
-      // splitContainer1.Panel2
-      // 
-      this.splitContainer1.Panel2.Controls.Add(this.viewHost);
-      this.splitContainer1.Size = new System.Drawing.Size(838, 449);
-      this.splitContainer1.SplitterDistance = 181;
-      this.splitContainer1.TabIndex = 0;
       // 
       // undoButton
       // 
       this.undoButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.Undo;
-      this.undoButton.Location = new System.Drawing.Point(72, 14);
+      this.undoButton.Location = new System.Drawing.Point(64, 3);
       this.undoButton.Name = "undoButton";
       this.undoButton.Size = new System.Drawing.Size(24, 24);
@@ -95,5 +68,5 @@
       // 
       this.applyInNewTabButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.Play;
-      this.applyInNewTabButton.Location = new System.Drawing.Point(42, 14);
+      this.applyInNewTabButton.Location = new System.Drawing.Point(34, 3);
       this.applyInNewTabButton.Name = "applyInNewTabButton";
       this.applyInNewTabButton.Size = new System.Drawing.Size(24, 24);
@@ -106,5 +79,5 @@
       // 
       this.exportProblemButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.Save;
-      this.exportProblemButton.Location = new System.Drawing.Point(12, 14);
+      this.exportProblemButton.Location = new System.Drawing.Point(4, 3);
       this.exportProblemButton.Name = "exportProblemButton";
       this.exportProblemButton.Size = new System.Drawing.Size(24, 24);
@@ -114,34 +87,17 @@
       this.exportProblemButton.Click += new System.EventHandler(this.exportProblemButton_Click);
       // 
-      // contentListView
+      // viewShortcutCollectionView
       // 
-      this.contentListView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+      this.viewShortcutCollectionView.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.contentListView.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-      this.contentListView.Location = new System.Drawing.Point(12, 44);
-      this.contentListView.Name = "contentListView";
-      this.contentListView.Size = new System.Drawing.Size(157, 391);
-      this.contentListView.TabIndex = 0;
-      this.contentListView.UseCompatibleStateImageBehavior = false;
-      this.contentListView.View = System.Windows.Forms.View.List;
-      this.contentListView.SelectedIndexChanged += new System.EventHandler(this.listView1_SelectedIndexChanged);
-      this.contentListView.DoubleClick += new System.EventHandler(this.listView1_DoubleClick);
-      // 
-      // viewHost
-      // 
-      this.viewHost.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.viewHost.Caption = "View";
-      this.viewHost.Content = null;
-      this.viewHost.Enabled = false;
-      this.viewHost.Location = new System.Drawing.Point(16, 44);
-      this.viewHost.Name = "viewHost";
-      this.viewHost.ReadOnly = false;
-      this.viewHost.Size = new System.Drawing.Size(621, 391);
-      this.viewHost.TabIndex = 4;
-      this.viewHost.ViewsLabelVisible = true;
-      this.viewHost.ViewType = null;
+      this.viewShortcutCollectionView.Caption = "ViewShortcutCollection View";
+      this.viewShortcutCollectionView.Content = null;
+      this.viewShortcutCollectionView.Location = new System.Drawing.Point(4, 33);
+      this.viewShortcutCollectionView.Name = "viewShortcutCollectionView";
+      this.viewShortcutCollectionView.ReadOnly = true;
+      this.viewShortcutCollectionView.ShowDetails = true;
+      this.viewShortcutCollectionView.Size = new System.Drawing.Size(831, 413);
+      this.viewShortcutCollectionView.TabIndex = 4;
       // 
       // DataPreprocessingView
@@ -149,11 +105,10 @@
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-      this.Controls.Add(this.splitContainer1);
+      this.Controls.Add(this.viewShortcutCollectionView);
+      this.Controls.Add(this.undoButton);
+      this.Controls.Add(this.applyInNewTabButton);
+      this.Controls.Add(this.exportProblemButton);
       this.Name = "DataPreprocessingView";
       this.Size = new System.Drawing.Size(838, 449);
-      this.splitContainer1.Panel1.ResumeLayout(false);
-      this.splitContainer1.Panel2.ResumeLayout(false);
-      ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
-      this.splitContainer1.ResumeLayout(false);
       this.ResumeLayout(false);
 
@@ -162,11 +117,9 @@
     #endregion
 
-    private System.Windows.Forms.ListView contentListView;
     private System.Windows.Forms.Button exportProblemButton;
     private System.Windows.Forms.Button applyInNewTabButton;
     private System.Windows.Forms.Button undoButton;
-    private MainForm.WindowsForms.ViewHost viewHost;
-    private System.Windows.Forms.SplitContainer splitContainer1;
     private System.Windows.Forms.ToolTip toolTip;
+    private ViewShortcutCollectionView viewShortcutCollectionView;
 
   }
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/HeuristicLab.DataPreprocessing.Views-3.3.csproj
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/HeuristicLab.DataPreprocessing.Views-3.3.csproj	(revision 10610)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/HeuristicLab.DataPreprocessing.Views-3.3.csproj	(revision 10614)
@@ -122,4 +122,10 @@
       <DependentUpon>TransformationView.cs</DependentUpon>
     </Compile>
+    <Compile Include="ViewShortcutCollectionView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="ViewShortcutCollectionView.Designer.cs">
+      <DependentUpon>ViewShortcutCollectionView.cs</DependentUpon>
+    </Compile>
   </ItemGroup>
   <ItemGroup>
@@ -136,4 +142,8 @@
       <Project>{887425B4-4348-49ED-A457-B7D2C26DDBF9}</Project>
       <Name>HeuristicLab.Analysis-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Collections\3.3\HeuristicLab.Collections-3.3.csproj">
+      <Project>{958b43bc-cc5c-4fa2-8628-2b3b01d890b6}</Project>
+      <Name>HeuristicLab.Collections-3.3</Name>
     </ProjectReference>
     <ProjectReference Include="..\..\HeuristicLab.Common.Resources\3.3\HeuristicLab.Common.Resources-3.3.csproj">
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/ViewShortcutCollectionView.Designer.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/ViewShortcutCollectionView.Designer.cs	(revision 10614)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/ViewShortcutCollectionView.Designer.cs	(revision 10614)
@@ -0,0 +1,60 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2013 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.DataPreprocessing.Views {
+  partial class ViewShortcutCollectionView {
+    /// <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.SuspendLayout();
+      // 
+      // ViewShortcutCollectionView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.Name = "ViewShortcutCollectionView";
+      this.Size = new System.Drawing.Size(532, 383);
+      this.ResumeLayout(false);
+    }
+
+    #endregion
+  }
+}
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/ViewShortcutCollectionView.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/ViewShortcutCollectionView.cs	(revision 10614)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/ViewShortcutCollectionView.cs	(revision 10614)
@@ -0,0 +1,36 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2013 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.Core.Views;
+using HeuristicLab.MainForm;
+
+namespace HeuristicLab.DataPreprocessing.Views {
+  [View("ViewShortcutCollection View")]
+  [Content(typeof(ViewShortcutCollection), true)]
+  public partial class ViewShortcutCollectionView : ItemCollectionView<IViewShortcut> {
+
+    public ViewShortcutCollectionView() {
+      InitializeComponent();
+      itemsGroupBox.Text = "View Shortcuts";
+    }
+  }
+}
