Index: anches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/Agent.cs
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/Agent.cs	(revision 956)
+++ 	(revision )
@@ -1,103 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2008 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.Linq;
-using System.Text;
-using HeuristicLab.Core;
-using System.Xml;
-using HeuristicLab.CEDMA.DB.Interfaces;
-using HeuristicLab.Operators;
-
-namespace HeuristicLab.CEDMA.Core {
-  public class Agent : IAgent {
-    public IDatabase Database { get; set; }
-    public long Id { get; set; }
-    public string Name { get; set; }
-    public ProcessStatus Status { get; set; }
-    public bool Terminated { get; set; }
-    private OperatorGraph operatorGraph;
-
-    public IOperatorGraph OperatorGraph {
-      get { return operatorGraph; }
-    }
-
-    public Agent()
-      : base() {
-      operatorGraph = new OperatorGraph();
-    }
-
-    public Agent(IDatabase database, long id)
-      : this() {
-      Database = database;
-      Id = id;
-    }
-
-    public void Save() {
-      Database.UpdateAgent(Id, Name);
-      Database.UpdateAgent(Id, Status);
-      Database.UpdateAgent(Id, PersistenceManager.SaveToGZip(OperatorGraph));
-    }
-
-    public void Start() {
-      Status = ProcessStatus.Waiting;
-      Save();
-    }
-
-    public ICollection<IAgent> SubAgents {
-      get {
-        List<IAgent> agents = new List<IAgent>();
-        foreach(AgentEntry entry in Database.GetSubAgents(Id)) {
-          Agent newAgent = new Agent(Database, entry.Id);
-          newAgent.Name = entry.Name;
-          newAgent.Status = entry.Status;
-          agents.Add(newAgent);
-        }
-        return agents;
-      }
-    }
-
-    public ICollection<IResult> Results {
-      get {
-        List<IResult> results = new List<IResult>();
-        foreach(ResultEntry entry in Database.GetResults(Id)) {
-          Result result = new Result(Database, entry.Id);
-          result.Summary = entry.Summary;
-          result.Description = entry.Description;
-          results.Add(result);
-        }
-        return results;
-      }
-    }
-
-    public IView CreateView() {
-      if(OperatorGraph.Operators.Count == 0) {
-        byte[] rawData = Database.GetAgentRawData(Id);
-        IOperatorGraph opGraph = (IOperatorGraph)PersistenceManager.RestoreFromGZip(rawData);
-        foreach(IOperator op in opGraph.Operators) OperatorGraph.AddOperator(op);
-        OperatorGraph.InitialOperator = opGraph.InitialOperator;
-        OperatorLinkPatcher.LinkDatabase(OperatorGraph, Database);
-      }
-      return new AgentView(this);
-    }
-  }
-}
Index: anches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/AgentList.cs
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/AgentList.cs	(revision 956)
+++ 	(revision )
@@ -1,96 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2008 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.Linq;
-using System.Text;
-using HeuristicLab.Core;
-using System.Collections;
-using HeuristicLab.CEDMA.DB.Interfaces;
-using System.Xml;
-using System.Runtime.Serialization;
-using System.IO;
-using HeuristicLab.Operators;
-
-namespace HeuristicLab.CEDMA.Core {
-  public class AgentList : ItemBase, IAgentList {
-    private List<IAgent> agentList;
-    private IDatabase database;
-    public IDatabase Database {
-      get { return database; }
-      set {
-        database = value;
-        Action reload = ReloadList;
-        lock(agentList) {
-          agentList.Clear();
-        }
-        reload.BeginInvoke(null, null);
-      }
-    }
-
-    private void ReloadList() {
-      foreach(AgentEntry a in database.GetAgents()) {
-        Agent newAgent = new Agent(Database, a.Id);
-        newAgent.Name = a.Name;
-        newAgent.Status = a.Status;
-        lock(agentList) {
-          agentList.Add(newAgent);
-        }
-        FireChanged();
-      }
-    }
-
-    public AgentList()
-      : base() {
-      agentList = new List<IAgent>();
-    }
-
-    public void CreateAgent() {
-      Agent agent = new Agent();
-      agent.Name = DateTime.Now.ToString();
-      agent.Status = ProcessStatus.Unknown;
-      agent.Database = database;
-      long id = database.InsertAgent(null, agent.Name, PersistenceManager.SaveToGZip(agent.OperatorGraph));
-      agent.Id = id;
-      lock(agentList) {
-        agentList.Add(agent);
-      }
-      FireChanged();
-    }
-
-    public IEnumerator<IAgent> GetEnumerator() {
-      List<IAgent> agents = new List<IAgent>();
-      lock(agentList) {
-        agents.AddRange(agentList);
-      }
-      return agents.GetEnumerator();
-    }
-
-    IEnumerator IEnumerable.GetEnumerator() {
-      return GetEnumerator();
-    }
-
-    public override IView CreateView() {
-      return new AgentListView(this);
-    }
-  }
-}
Index: anches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/AgentListView.Designer.cs
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/AgentListView.Designer.cs	(revision 956)
+++ 	(revision )
@@ -1,181 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2008 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;
-
-namespace HeuristicLab.CEDMA.Core {
-  partial class AgentListView {
-    /// <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();
-      this.splitContainer1 = new System.Windows.Forms.SplitContainer();
-      this.agentsGroupBox = new System.Windows.Forms.GroupBox();
-      this.agentTreeView = new System.Windows.Forms.TreeView();
-      this.detailsGroupBox = new System.Windows.Forms.GroupBox();
-      this.addButton = new System.Windows.Forms.Button();
-      this.refreshButton = new System.Windows.Forms.Button();
-      this.entryContextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
-      this.exportAllResultsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
-      this.splitContainer1.Panel1.SuspendLayout();
-      this.splitContainer1.Panel2.SuspendLayout();
-      this.splitContainer1.SuspendLayout();
-      this.agentsGroupBox.SuspendLayout();
-      this.entryContextMenuStrip.SuspendLayout();
-      this.SuspendLayout();
-      // 
-      // 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.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.agentsGroupBox);
-      // 
-      // splitContainer1.Panel2
-      // 
-      this.splitContainer1.Panel2.Controls.Add(this.detailsGroupBox);
-      this.splitContainer1.Size = new System.Drawing.Size(276, 155);
-      this.splitContainer1.SplitterDistance = 135;
-      this.splitContainer1.TabIndex = 0;
-      // 
-      // agentsGroupBox
-      // 
-      this.agentsGroupBox.Controls.Add(this.agentTreeView);
-      this.agentsGroupBox.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.agentsGroupBox.Location = new System.Drawing.Point(0, 0);
-      this.agentsGroupBox.Name = "agentsGroupBox";
-      this.agentsGroupBox.Size = new System.Drawing.Size(135, 155);
-      this.agentsGroupBox.TabIndex = 0;
-      this.agentsGroupBox.TabStop = false;
-      this.agentsGroupBox.Text = "&Agents";
-      // 
-      // agentTreeView
-      // 
-      this.agentTreeView.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.agentTreeView.Location = new System.Drawing.Point(3, 16);
-      this.agentTreeView.Name = "agentTreeView";
-      this.agentTreeView.Size = new System.Drawing.Size(129, 136);
-      this.agentTreeView.TabIndex = 0;
-      this.agentTreeView.BeforeExpand += new System.Windows.Forms.TreeViewCancelEventHandler(this.agentTreeView_BeforeExpand);
-      this.agentTreeView.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.agentTreeView_AfterSelect);
-      // 
-      // detailsGroupBox
-      // 
-      this.detailsGroupBox.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.detailsGroupBox.Location = new System.Drawing.Point(0, 0);
-      this.detailsGroupBox.Name = "detailsGroupBox";
-      this.detailsGroupBox.Size = new System.Drawing.Size(137, 155);
-      this.detailsGroupBox.TabIndex = 0;
-      this.detailsGroupBox.TabStop = false;
-      this.detailsGroupBox.Text = "&Details";
-      // 
-      // addButton
-      // 
-      this.addButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-      this.addButton.Location = new System.Drawing.Point(0, 161);
-      this.addButton.Name = "addButton";
-      this.addButton.Size = new System.Drawing.Size(75, 23);
-      this.addButton.TabIndex = 1;
-      this.addButton.Text = "&Add...";
-      this.addButton.UseVisualStyleBackColor = true;
-      this.addButton.Click += new System.EventHandler(this.addButton_Click);
-      // 
-      // refreshButton
-      // 
-      this.refreshButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-      this.refreshButton.Location = new System.Drawing.Point(81, 161);
-      this.refreshButton.Name = "refreshButton";
-      this.refreshButton.Size = new System.Drawing.Size(75, 23);
-      this.refreshButton.TabIndex = 2;
-      this.refreshButton.Text = "&Refresh";
-      this.refreshButton.UseVisualStyleBackColor = true;
-      this.refreshButton.Click += new System.EventHandler(this.refreshButton_Click);
-      // 
-      // entryContextMenuStrip
-      // 
-      this.entryContextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
-            this.exportAllResultsToolStripMenuItem});
-      this.entryContextMenuStrip.Name = "entryContextMenuStrip";
-      this.entryContextMenuStrip.Size = new System.Drawing.Size(166, 26);
-      // 
-      // exportAllResultsToolStripMenuItem
-      // 
-      this.exportAllResultsToolStripMenuItem.Name = "exportAllResultsToolStripMenuItem";
-      this.exportAllResultsToolStripMenuItem.Size = new System.Drawing.Size(165, 22);
-      this.exportAllResultsToolStripMenuItem.Text = "Export all results";
-      this.exportAllResultsToolStripMenuItem.Click += new System.EventHandler(this.exportAllResultsToolStripMenuItem_Click);
-      // 
-      // AgentListView
-      // 
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.Controls.Add(this.refreshButton);
-      this.Controls.Add(this.addButton);
-      this.Controls.Add(this.splitContainer1);
-      this.Name = "AgentListView";
-      this.Size = new System.Drawing.Size(276, 184);
-      this.splitContainer1.Panel1.ResumeLayout(false);
-      this.splitContainer1.Panel2.ResumeLayout(false);
-      this.splitContainer1.ResumeLayout(false);
-      this.agentsGroupBox.ResumeLayout(false);
-      this.entryContextMenuStrip.ResumeLayout(false);
-      this.ResumeLayout(false);
-
-    }
-
-    #endregion
-
-    private System.Windows.Forms.SplitContainer splitContainer1;
-    private System.Windows.Forms.GroupBox agentsGroupBox;
-    private System.Windows.Forms.GroupBox detailsGroupBox;
-    private System.Windows.Forms.Button addButton;
-    private TreeView agentTreeView;
-    private Button refreshButton;
-    private ContextMenuStrip entryContextMenuStrip;
-    private ToolStripMenuItem exportAllResultsToolStripMenuItem;
-  }
-}
Index: anches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/AgentListView.cs
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/AgentListView.cs	(revision 956)
+++ 	(revision )
@@ -1,141 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2008 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
-using System.Drawing;
-using System.Text;
-using System.Windows.Forms;
-using HeuristicLab.Core;
-
-namespace HeuristicLab.CEDMA.Core {
-  public partial class AgentListView : ViewBase {
-    public IAgentList AgentList {
-      get { return (IAgentList)Item; }
-      set { base.Item = value; }
-    }
-
-    public AgentListView() {
-      InitializeComponent();
-      Caption = "Agent View";
-    }
-    public AgentListView(IAgentList agentList)
-      : this() {
-      AgentList = agentList;
-      agentList.Changed += new EventHandler(agentList_Changed);
-    }
-
-    void agentList_Changed(object sender, EventArgs e) {
-      UpdateControls();
-    }
-
-    protected override void UpdateControls() {
-      base.UpdateControls();
-      detailsGroupBox.Controls.Clear();
-      detailsGroupBox.Enabled = false;
-      if(AgentList == null) {
-        Caption = "Agents View";
-        agentTreeView.Enabled = false;
-      } else {
-        agentTreeView.Enabled = true;
-        agentTreeView.Nodes.Clear();
-        foreach(IAgent agent in AgentList) {
-          TreeNode node = new TreeNode();
-          node.Text = agent.Name;
-          node.Tag = agent;
-          node.Nodes.Add("dummy");
-          node.ContextMenuStrip = entryContextMenuStrip;
-          agentTreeView.Nodes.Add(node);
-        }
-      }
-    }
-
-    #region Button Events
-    private void addButton_Click(object sender, EventArgs e) {
-      AgentList.CreateAgent();
-    }
-    #endregion
-
-    private void agentTreeView_BeforeExpand(object sender, TreeViewCancelEventArgs e) {
-      e.Node.Nodes.Clear();
-      if(e.Node.Tag is IAgent) {
-        IAgent agent = (IAgent)e.Node.Tag;
-        foreach(IAgent subAgent in agent.SubAgents) {
-          TreeNode node = new TreeNode();
-          node.Text = subAgent.Name;
-          node.Tag = subAgent;
-          node.ContextMenuStrip = entryContextMenuStrip;
-          node.Nodes.Add("dummy");
-          e.Node.Nodes.Add(node);
-        }
-        foreach(IResult result in agent.Results) {
-          TreeNode node = new TreeNode();
-          node.Text = result.Summary;
-          node.Tag = result;
-          node.Nodes.Add("dummy");
-          e.Node.Nodes.Add(node);
-        }
-      } else if(e.Node.Tag is IResult) {
-        IResult result = (IResult)e.Node.Tag;
-        foreach(IResult subResult in result.SubResults) {
-          TreeNode node = new TreeNode();
-          node.Text = subResult.Summary;
-          node.Tag = subResult;
-          node.Nodes.Add("dummy");
-          e.Node.Nodes.Add(node);
-        }
-      }
-    }
-
-    private void agentTreeView_AfterSelect(object sender, TreeViewEventArgs e) {
-      if(detailsGroupBox.Controls.Count > 0)
-        detailsGroupBox.Controls[0].Dispose();
-      detailsGroupBox.Controls.Clear();
-      detailsGroupBox.Enabled = false;
-      if(agentTreeView.SelectedNode != null) {
-        IViewable viewable = (IViewable)agentTreeView.SelectedNode.Tag;
-        Control control = (Control)viewable.CreateView();
-        detailsGroupBox.Controls.Add(control);
-        control.Dock = DockStyle.Fill;
-        detailsGroupBox.Enabled = true;
-      }
-    }
-
-    private void refreshButton_Click(object sender, EventArgs e) {
-      UpdateControls();
-    }
-
-    private void exportAllResultsToolStripMenuItem_Click(object sender, EventArgs e) {
-      TreeNode node = agentTreeView.SelectedNode;
-      Agent agent = (Agent)node.Tag;
-      ResultExporter exporter = new ResultExporter();
-      ResultTable table = new ResultTable();
-      exporter.Export(agent, table);
-
-      using(System.IO.FileStream s = new System.IO.FileStream("exported-results.txt", System.IO.FileMode.Create)) {
-        table.Write(s);
-      }
-    }
-  }
-}
-
Index: anches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/AgentListView.resx
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/AgentListView.resx	(revision 956)
+++ 	(revision )
@@ -1,123 +1,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <metadata name="entryContextMenuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>17, 17</value>
-  </metadata>
-</root>
Index: anches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/AgentView.Designer.cs
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/AgentView.Designer.cs	(revision 956)
+++ 	(revision )
@@ -1,105 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2008 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.CEDMA.Core {
-  partial class AgentView {
-    /// <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.editorGroupBox = new System.Windows.Forms.GroupBox();
-      this.saveButton = new System.Windows.Forms.Button();
-      this.activateButton = new System.Windows.Forms.Button();
-      this.SuspendLayout();
-      // 
-      // editorGroupBox
-      // 
-      this.editorGroupBox.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.editorGroupBox.Location = new System.Drawing.Point(0, 3);
-      this.editorGroupBox.Name = "editorGroupBox";
-      this.editorGroupBox.Size = new System.Drawing.Size(274, 119);
-      this.editorGroupBox.TabIndex = 0;
-      this.editorGroupBox.TabStop = false;
-      this.editorGroupBox.Text = "&Editor:";
-      // 
-      // saveButton
-      // 
-      this.saveButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-      this.saveButton.Location = new System.Drawing.Point(4, 128);
-      this.saveButton.Name = "saveButton";
-      this.saveButton.Size = new System.Drawing.Size(75, 23);
-      this.saveButton.TabIndex = 1;
-      this.saveButton.Text = "&Save";
-      this.saveButton.UseVisualStyleBackColor = true;
-      this.saveButton.Click += new System.EventHandler(this.saveButton_Click);
-      // 
-      // activateButton
-      // 
-      this.activateButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-      this.activateButton.Location = new System.Drawing.Point(85, 128);
-      this.activateButton.Name = "activateButton";
-      this.activateButton.Size = new System.Drawing.Size(75, 23);
-      this.activateButton.TabIndex = 2;
-      this.activateButton.Text = "&Start";
-      this.activateButton.UseVisualStyleBackColor = true;
-      this.activateButton.Click += new System.EventHandler(this.activateButton_Click);
-      // 
-      // AgentView
-      // 
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-      this.Controls.Add(this.activateButton);
-      this.Controls.Add(this.saveButton);
-      this.Controls.Add(this.editorGroupBox);
-      this.Name = "AgentView";
-      this.Size = new System.Drawing.Size(274, 154);
-      this.ResumeLayout(false);
-
-    }
-
-    #endregion
-
-    private System.Windows.Forms.GroupBox editorGroupBox;
-    private System.Windows.Forms.Button saveButton;
-    private System.Windows.Forms.Button activateButton;
-  }
-}
Index: anches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/AgentView.cs
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/AgentView.cs	(revision 956)
+++ 	(revision )
@@ -1,76 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2008 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Text;
-using System.Windows.Forms;
-using HeuristicLab.Core;
-using HeuristicLab.CEDMA.DB.Interfaces;
-
-namespace HeuristicLab.CEDMA.Core {
-  public partial class AgentView : ViewBase {
-    private Agent agent;
-    public Agent Agent {
-      get { return agent; }
-      set { agent = value; }
-    }
-
-    public AgentView() {
-      InitializeComponent();
-      Caption = "Agent";
-    }
-    public AgentView(Agent agent)
-      : this() {
-      Agent = agent;
-      UpdateControls();
-    }
-
-    protected override void UpdateControls() {
-      base.UpdateControls();
-      editorGroupBox.Controls.Clear();
-      editorGroupBox.Enabled = false;
-      if(Agent != null && Agent.OperatorGraph != null) {
-        Control editor = (Control)Agent.OperatorGraph.CreateView();
-        if(editor != null) {
-          editorGroupBox.Controls.Add(editor);
-          editor.Dock = DockStyle.Fill;
-          editorGroupBox.Enabled = true;
-        }
-
-        if(Agent.Status == ProcessStatus.Unknown) activateButton.Enabled = true;
-        else activateButton.Enabled = false;
-      }
-    }
-
-    private void saveButton_Click(object sender, EventArgs e) {
-      Agent.Save();
-    }
-
-    private void activateButton_Click(object sender, EventArgs e) {
-      Agent.Start();
-      activateButton.Enabled = false;
-    }
-  }
-}
Index: anches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/AgentView.resx
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/AgentView.resx	(revision 956)
+++ 	(revision )
@@ -1,120 +1,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-</root>
Index: /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/Console.cs
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/Console.cs	(revision 956)
+++ /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/Console.cs	(revision 957)
@@ -33,9 +33,7 @@
 namespace HeuristicLab.CEDMA.Core {
   public class Console : ItemBase, IEditable {
-    private AgentList agentList;
-    private ResultList resultsList;
-    private DatabaseOperatorLibrary operatorLibary;
-    private ChannelFactory<IDatabase> factory;
-    private IDatabase database;
+    private DataSetList dataSetList;
+    private ChannelFactory<IStore> factory;
+    private IStore store;
     private string serverUri;
     public string ServerUri {
@@ -43,21 +41,11 @@
     }
 
-    public IAgentList AgentList {
-      get { return agentList; }
-    }
-
-    public ResultList ResultsList {
-      get { return resultsList; }
-    }
-
-    public IOperatorLibrary OperatorLibrary {
-      get { return operatorLibary; }
+    public DataSetList DataSetList {
+      get { return dataSetList; }
     }
 
     public Console()
       : base() {
-      agentList = new AgentList();
-      resultsList = new ResultList();
-      operatorLibary = new DatabaseOperatorLibrary();
+      dataSetList = new DataSetList();
     }
 
@@ -92,12 +80,7 @@
       binding.ReaderQuotas.MaxArrayLength = 100000000; // also 100M elements;
       binding.Security.Mode = SecurityMode.None;
-      factory = new ChannelFactory<IDatabase>(binding);
-      database = factory.CreateChannel(new EndpointAddress(serverUri));
-      agentList.Database = database;
-      operatorLibary.Database = database;
-
-      ChannelFactory<IStore> storeFactory = new ChannelFactory<IStore>(binding);
-      IStore store = storeFactory.CreateChannel(new EndpointAddress(serverUri + "/RdfStore"));
-      resultsList.Store = store;
+      factory = new ChannelFactory<IStore>(binding);
+      store = factory.CreateChannel(new EndpointAddress(serverUri));
+      dataSetList.Store = store;
     }
     #endregion
Index: /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/ConsoleEditor.cs
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/ConsoleEditor.cs	(revision 956)
+++ /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/ConsoleEditor.cs	(revision 957)
@@ -49,4 +49,5 @@
     }
 
+    #region autogenerated code
     private void InitializeComponent() {
       this.uriTextBox = new System.Windows.Forms.TextBox();
@@ -96,5 +97,4 @@
       this.openOpLibButton.Text = "&Open";
       this.openOpLibButton.UseVisualStyleBackColor = true;
-      this.openOpLibButton.Click += new System.EventHandler(this.opLibButton_Click);
       // 
       // label1
@@ -125,5 +125,4 @@
       this.openResultsButton.Text = "&Open";
       this.openResultsButton.UseVisualStyleBackColor = true;
-      this.openResultsButton.Click += new System.EventHandler(this.openChartButton_Click);
       // 
       // openAgentsButton
@@ -136,5 +135,4 @@
       this.openAgentsButton.Text = "&Open";
       this.openAgentsButton.UseVisualStyleBackColor = true;
-      this.openAgentsButton.Click += new System.EventHandler(this.openAgentsButton_Click);
       // 
       // agentsLabel
@@ -166,4 +164,6 @@
     }
 
+    #endregion
+
     private void connectButton_Click(object sender, EventArgs e) {
       try {
@@ -177,21 +177,4 @@
       }
     }
-
-    private void opLibButton_Click(object sender, EventArgs e) {
-      IOperatorLibrary opLib = console.OperatorLibrary;
-      if(opLib != null) {
-        IView view = opLib.CreateView();
-        if(view != null)
-          PluginManager.ControlManager.ShowControl(view);
-      }
-    }
-
-    private void openChartButton_Click(object sender, EventArgs e) {
-      PluginManager.ControlManager.ShowControl(console.ResultsList.CreateView());
-    }
-
-    private void openAgentsButton_Click(object sender, EventArgs e) {
-      PluginManager.ControlManager.ShowControl(console.AgentList.CreateView());
-    }
   }
 }
Index: /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/DataSet.cs
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/DataSet.cs	(revision 957)
+++ /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/DataSet.cs	(revision 957)
@@ -0,0 +1,69 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2008 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.Linq;
+using System.Text;
+using HeuristicLab.Core;
+using System.Xml;
+using HeuristicLab.CEDMA.DB.Interfaces;
+using HeuristicLab.Operators;
+
+namespace HeuristicLab.CEDMA.Core {
+  public class DataSet {
+    public IStore Store { get; set; }
+    public long Id { get; set; }
+    public string Name { get; set; }
+    private Problem problem;
+
+    public Problem Problem {
+      get { return problem; }
+    }
+
+    public DataSet()
+      : base() {
+      problem = new Problem();
+    }
+
+    public DataSet(IStore store, long id)
+      : this() {
+      Store = store;
+      Id = id;
+    }
+
+    public void Save() {
+      throw new NotImplementedException();
+    }
+
+    public void Activate() {
+      throw new NotImplementedException();
+    }
+
+    private void UpdateDataSet(long Id, byte[] p) {
+      throw new NotImplementedException();
+    }
+
+    public IView CreateView() {
+      return new DataSetView(this);
+    }
+  }
+}
Index: /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/DataSetList.cs
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/DataSetList.cs	(revision 957)
+++ /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/DataSetList.cs	(revision 957)
@@ -0,0 +1,88 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2008 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.Linq;
+using System.Text;
+using HeuristicLab.Core;
+using System.Collections;
+using HeuristicLab.CEDMA.DB.Interfaces;
+using System.Xml;
+using System.Runtime.Serialization;
+using System.IO;
+using HeuristicLab.Operators;
+
+namespace HeuristicLab.CEDMA.Core {
+  public class DataSetList : ItemBase, IEnumerable<DataSet> {
+    private List<DataSet> dataSetList;
+    private IStore store;
+    public IStore Store {
+      get { return store; }
+      set {
+        store = value;
+        Action reload = ReloadList;
+        lock(dataSetList) {
+          dataSetList.Clear();
+        }
+        reload.BeginInvoke(null, null);
+      }
+    }
+
+    public DataSetList()
+      : base() {
+      dataSetList = new List<DataSet>();
+    }
+
+    public override IView CreateView() {
+      return new DataSetListView(this);
+    }
+
+    private void ReloadList() {
+      throw new NotImplementedException();
+      //foreach( a in database.GetAgents()) {
+      //  Agent newAgent = new Agent(Database, a.Id);
+      //  newAgent.Name = a.Name;
+      //  newAgent.Status = a.Status;
+      //  lock(agentList) {
+      //    agentList.Add(newAgent);
+      //  }
+      //  FireChanged();
+      //}
+    }
+
+    internal static void CreateDataSet() {
+      throw new NotImplementedException();
+    }
+
+    public IEnumerator<DataSet> GetEnumerator() {
+      List<DataSet> dataSets = new List<DataSet>();
+      lock(dataSets) {
+        dataSets.AddRange(dataSetList);
+      }
+      return dataSets.GetEnumerator();
+    }
+
+    IEnumerator IEnumerable.GetEnumerator() {
+      return GetEnumerator();
+    }
+  }
+}
Index: /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/DataSetListView.Designer.cs
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/DataSetListView.Designer.cs	(revision 957)
+++ /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/DataSetListView.Designer.cs	(revision 957)
@@ -0,0 +1,181 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2008 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;
+
+namespace HeuristicLab.CEDMA.Core {
+  partial class DataSetListView {
+    /// <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();
+      this.splitContainer1 = new System.Windows.Forms.SplitContainer();
+      this.agentsGroupBox = new System.Windows.Forms.GroupBox();
+      this.agentTreeView = new System.Windows.Forms.TreeView();
+      this.detailsGroupBox = new System.Windows.Forms.GroupBox();
+      this.addButton = new System.Windows.Forms.Button();
+      this.refreshButton = new System.Windows.Forms.Button();
+      this.entryContextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
+      this.exportAllResultsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+      this.splitContainer1.Panel1.SuspendLayout();
+      this.splitContainer1.Panel2.SuspendLayout();
+      this.splitContainer1.SuspendLayout();
+      this.agentsGroupBox.SuspendLayout();
+      this.entryContextMenuStrip.SuspendLayout();
+      this.SuspendLayout();
+      // 
+      // 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.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.agentsGroupBox);
+      // 
+      // splitContainer1.Panel2
+      // 
+      this.splitContainer1.Panel2.Controls.Add(this.detailsGroupBox);
+      this.splitContainer1.Size = new System.Drawing.Size(276, 155);
+      this.splitContainer1.SplitterDistance = 135;
+      this.splitContainer1.TabIndex = 0;
+      // 
+      // agentsGroupBox
+      // 
+      this.agentsGroupBox.Controls.Add(this.agentTreeView);
+      this.agentsGroupBox.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.agentsGroupBox.Location = new System.Drawing.Point(0, 0);
+      this.agentsGroupBox.Name = "agentsGroupBox";
+      this.agentsGroupBox.Size = new System.Drawing.Size(135, 155);
+      this.agentsGroupBox.TabIndex = 0;
+      this.agentsGroupBox.TabStop = false;
+      this.agentsGroupBox.Text = "&Agents";
+      // 
+      // agentTreeView
+      // 
+      this.agentTreeView.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.agentTreeView.Location = new System.Drawing.Point(3, 16);
+      this.agentTreeView.Name = "agentTreeView";
+      this.agentTreeView.Size = new System.Drawing.Size(129, 136);
+      this.agentTreeView.TabIndex = 0;
+      this.agentTreeView.BeforeExpand += new System.Windows.Forms.TreeViewCancelEventHandler(this.agentTreeView_BeforeExpand);
+      this.agentTreeView.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.agentTreeView_AfterSelect);
+      // 
+      // detailsGroupBox
+      // 
+      this.detailsGroupBox.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.detailsGroupBox.Location = new System.Drawing.Point(0, 0);
+      this.detailsGroupBox.Name = "detailsGroupBox";
+      this.detailsGroupBox.Size = new System.Drawing.Size(137, 155);
+      this.detailsGroupBox.TabIndex = 0;
+      this.detailsGroupBox.TabStop = false;
+      this.detailsGroupBox.Text = "&Details";
+      // 
+      // addButton
+      // 
+      this.addButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+      this.addButton.Location = new System.Drawing.Point(0, 161);
+      this.addButton.Name = "addButton";
+      this.addButton.Size = new System.Drawing.Size(75, 23);
+      this.addButton.TabIndex = 1;
+      this.addButton.Text = "&Add...";
+      this.addButton.UseVisualStyleBackColor = true;
+      this.addButton.Click += new System.EventHandler(this.addButton_Click);
+      // 
+      // refreshButton
+      // 
+      this.refreshButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+      this.refreshButton.Location = new System.Drawing.Point(81, 161);
+      this.refreshButton.Name = "refreshButton";
+      this.refreshButton.Size = new System.Drawing.Size(75, 23);
+      this.refreshButton.TabIndex = 2;
+      this.refreshButton.Text = "&Refresh";
+      this.refreshButton.UseVisualStyleBackColor = true;
+      this.refreshButton.Click += new System.EventHandler(this.refreshButton_Click);
+      // 
+      // entryContextMenuStrip
+      // 
+      this.entryContextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.exportAllResultsToolStripMenuItem});
+      this.entryContextMenuStrip.Name = "entryContextMenuStrip";
+      this.entryContextMenuStrip.Size = new System.Drawing.Size(166, 26);
+      // 
+      // exportAllResultsToolStripMenuItem
+      // 
+      this.exportAllResultsToolStripMenuItem.Name = "exportAllResultsToolStripMenuItem";
+      this.exportAllResultsToolStripMenuItem.Size = new System.Drawing.Size(165, 22);
+      this.exportAllResultsToolStripMenuItem.Text = "Export all results";
+      this.exportAllResultsToolStripMenuItem.Click += new System.EventHandler(this.exportAllResultsToolStripMenuItem_Click);
+      // 
+      // AgentListView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.Controls.Add(this.refreshButton);
+      this.Controls.Add(this.addButton);
+      this.Controls.Add(this.splitContainer1);
+      this.Name = "AgentListView";
+      this.Size = new System.Drawing.Size(276, 184);
+      this.splitContainer1.Panel1.ResumeLayout(false);
+      this.splitContainer1.Panel2.ResumeLayout(false);
+      this.splitContainer1.ResumeLayout(false);
+      this.agentsGroupBox.ResumeLayout(false);
+      this.entryContextMenuStrip.ResumeLayout(false);
+      this.ResumeLayout(false);
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.SplitContainer splitContainer1;
+    private System.Windows.Forms.GroupBox agentsGroupBox;
+    private System.Windows.Forms.GroupBox detailsGroupBox;
+    private System.Windows.Forms.Button addButton;
+    private TreeView agentTreeView;
+    private Button refreshButton;
+    private ContextMenuStrip entryContextMenuStrip;
+    private ToolStripMenuItem exportAllResultsToolStripMenuItem;
+  }
+}
Index: /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/DataSetListView.cs
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/DataSetListView.cs	(revision 957)
+++ /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/DataSetListView.cs	(revision 957)
@@ -0,0 +1,98 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2008 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Text;
+using System.Windows.Forms;
+using HeuristicLab.Core;
+
+namespace HeuristicLab.CEDMA.Core {
+  public partial class DataSetListView : ViewBase {
+    public DataSetList DataSetList{
+      get { return (DataSetList)Item; }
+      set { base.Item = value; }
+    }
+
+    public DataSetListView() {
+      InitializeComponent();
+      Caption = "DataSet View";
+    }
+    public DataSetListView(DataSetList dataSetList)
+      : this() {
+      DataSetList = dataSetList;
+      dataSetList.Changed += new EventHandler(dataSetList_Changed);
+    }
+
+    void dataSetList_Changed(object sender, EventArgs e) {
+      UpdateControls();
+    }
+
+    protected override void UpdateControls() {
+      base.UpdateControls();
+      detailsGroupBox.Controls.Clear();
+      detailsGroupBox.Enabled = false;
+      if(DataSetList == null) {
+        Caption = "Data Sets View";
+        agentTreeView.Enabled = false;
+      } else {
+        agentTreeView.Enabled = true;
+        agentTreeView.Nodes.Clear();
+        foreach(DataSet dataSet in DataSetList) {
+          TreeNode node = new TreeNode();
+          node.Text = dataSet.Name;
+          node.Tag = dataSet;
+          node.Nodes.Add("dummy");
+          node.ContextMenuStrip = entryContextMenuStrip;
+          agentTreeView.Nodes.Add(node);
+        }
+      }
+    }
+
+    #region Button Events
+    private void addButton_Click(object sender, EventArgs e) {
+      DataSetList.CreateDataSet();
+    }
+    #endregion
+
+    private void agentTreeView_AfterSelect(object sender, TreeViewEventArgs e) {
+      if(detailsGroupBox.Controls.Count > 0)
+        detailsGroupBox.Controls[0].Dispose();
+      detailsGroupBox.Controls.Clear();
+      detailsGroupBox.Enabled = false;
+      if(agentTreeView.SelectedNode != null) {
+        IViewable viewable = (IViewable)agentTreeView.SelectedNode.Tag;
+        Control control = (Control)viewable.CreateView();
+        detailsGroupBox.Controls.Add(control);
+        control.Dock = DockStyle.Fill;
+        detailsGroupBox.Enabled = true;
+      }
+    }
+
+    private void refreshButton_Click(object sender, EventArgs e) {
+      UpdateControls();
+    }
+  }
+}
+
Index: /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/DataSetListView.resx
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/DataSetListView.resx	(revision 957)
+++ /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/DataSetListView.resx	(revision 957)
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <metadata name="entryContextMenuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
+</root>
Index: /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/DataSetView.Designer.cs
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/DataSetView.Designer.cs	(revision 957)
+++ /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/DataSetView.Designer.cs	(revision 957)
@@ -0,0 +1,105 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2008 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.CEDMA.Core {
+  partial class DataSetView {
+    /// <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.editorGroupBox = new System.Windows.Forms.GroupBox();
+      this.saveButton = new System.Windows.Forms.Button();
+      this.activateButton = new System.Windows.Forms.Button();
+      this.SuspendLayout();
+      // 
+      // editorGroupBox
+      // 
+      this.editorGroupBox.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.editorGroupBox.Location = new System.Drawing.Point(0, 3);
+      this.editorGroupBox.Name = "editorGroupBox";
+      this.editorGroupBox.Size = new System.Drawing.Size(274, 119);
+      this.editorGroupBox.TabIndex = 0;
+      this.editorGroupBox.TabStop = false;
+      this.editorGroupBox.Text = "&Editor:";
+      // 
+      // saveButton
+      // 
+      this.saveButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+      this.saveButton.Location = new System.Drawing.Point(4, 128);
+      this.saveButton.Name = "saveButton";
+      this.saveButton.Size = new System.Drawing.Size(75, 23);
+      this.saveButton.TabIndex = 1;
+      this.saveButton.Text = "&Save";
+      this.saveButton.UseVisualStyleBackColor = true;
+      this.saveButton.Click += new System.EventHandler(this.saveButton_Click);
+      // 
+      // activateButton
+      // 
+      this.activateButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+      this.activateButton.Location = new System.Drawing.Point(85, 128);
+      this.activateButton.Name = "activateButton";
+      this.activateButton.Size = new System.Drawing.Size(75, 23);
+      this.activateButton.TabIndex = 2;
+      this.activateButton.Text = "&Start";
+      this.activateButton.UseVisualStyleBackColor = true;
+      this.activateButton.Click += new System.EventHandler(this.activateButton_Click);
+      // 
+      // AgentView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.activateButton);
+      this.Controls.Add(this.saveButton);
+      this.Controls.Add(this.editorGroupBox);
+      this.Name = "AgentView";
+      this.Size = new System.Drawing.Size(274, 154);
+      this.ResumeLayout(false);
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.GroupBox editorGroupBox;
+    private System.Windows.Forms.Button saveButton;
+    private System.Windows.Forms.Button activateButton;
+  }
+}
Index: /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/DataSetView.cs
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/DataSetView.cs	(revision 957)
+++ /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/DataSetView.cs	(revision 957)
@@ -0,0 +1,65 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2008 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Text;
+using System.Windows.Forms;
+using HeuristicLab.Core;
+using HeuristicLab.CEDMA.DB.Interfaces;
+
+namespace HeuristicLab.CEDMA.Core {
+  public partial class DataSetView : ViewBase {
+    private DataSet dataSet;
+    public DataSet DataSet {
+      get { return dataSet; }
+      set { dataSet = value; }
+    }
+
+    public DataSetView() {
+      InitializeComponent();
+      Caption = "Data Set";
+    }
+    public DataSetView(DataSet dataSet)
+      : this() {
+      DataSet = dataSet;
+      UpdateControls();
+    }
+
+    protected override void UpdateControls() {
+      base.UpdateControls();
+      editorGroupBox.Controls.Clear();
+      editorGroupBox.Enabled = false;
+    }
+
+    private void saveButton_Click(object sender, EventArgs e) {
+      DataSet.Save();
+    }
+
+    private void activateButton_Click(object sender, EventArgs e) {
+      DataSet.Activate();
+      activateButton.Enabled = false;
+    }
+  }
+}
Index: /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/DataSetView.resx
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/DataSetView.resx	(revision 957)
+++ /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/DataSetView.resx	(revision 957)
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
Index: anches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/DatabaseOperatorLibrary.cs
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/DatabaseOperatorLibrary.cs	(revision 956)
+++ 	(revision )
@@ -1,119 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2008 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.Linq;
-using System.Text;
-using HeuristicLab.Core;
-using HeuristicLab.CEDMA.DB.Interfaces;
-using HeuristicLab.Operators;
-
-namespace HeuristicLab.CEDMA.Core {
-  public class DatabaseOperatorLibrary : ItemBase, IOperatorLibrary {
-
-    private OperatorGroup group;
-    public IOperatorGroup Group {
-      get { return group; }
-    }
-
-    private IDatabase database;
-    public IDatabase Database {
-      get { return database; }
-      set { this.database = value; }
-    }
-
-    private Dictionary<IOperator, long> knownOperators;
-
-    public DatabaseOperatorLibrary()
-      : base() {
-      group = new OperatorGroup();
-      knownOperators = new Dictionary<IOperator, long>();
-    }
-
-    public void Save() {
-      Dictionary<IOperator, long> newKnownOperators = new Dictionary<IOperator, long>();
-      foreach(IOperator op in group.Operators) {
-        if(knownOperators.ContainsKey(op)) {
-          // update
-          long id = knownOperators[op];
-          Database.UpdateOperator(id, op.Name, PersistenceManager.SaveToGZip(op));
-          knownOperators.Remove(op);
-          newKnownOperators.Add(op, id);
-        } else {
-          // create new
-          long id = Database.InsertOperator(op.Name, PersistenceManager.SaveToGZip(op));
-          newKnownOperators.Add(op, id);
-        }
-      }
-      // delete operators from the table that are not present in the group anymore (remaining entries)
-      foreach(long id in knownOperators.Values) {
-        Database.DeleteOperator(id);
-      }
-
-      knownOperators = newKnownOperators;
-    }
-
-    public void Restore() {
-      foreach(IOperator op in knownOperators.Keys) {
-        group.RemoveOperator(op);
-      }
-      knownOperators.Clear();
-      if(database == null) return;
-      foreach(OperatorEntry e in Database.GetOperators()) {
-        IOperator op = (IOperator)PersistenceManager.RestoreFromGZip(e.RawData);
-        knownOperators.Add(op, e.Id);
-        group.AddOperator(op);
-      }
-
-      // set the DB source for each operator
-      foreach(IOperator op in group.Operators) {
-        OperatorLinkPatcher.LinkDatabase(op, Database);
-      }
-    }
-
-    private IOperator FindOperator(long id) {
-      foreach(KeyValuePair<IOperator, long> p in knownOperators) if(p.Value == id) return p.Key;
-      return null;
-    }
-
-    public override System.Xml.XmlNode GetXmlNode(string name, System.Xml.XmlDocument document, IDictionary<Guid, IStorable> persistedObjects) {
-      throw new NotSupportedException();
-    }
-
-    public override void Populate(System.Xml.XmlNode node, IDictionary<Guid, IStorable> restoredObjects) {
-      throw new NotSupportedException();
-    }
-
-    public override object Clone(IDictionary<Guid, object> clonedObjects) {
-      throw new NotSupportedException();
-    }
-
-    public override IView CreateView() {
-      Restore();
-      return new DatabaseOperatorLibraryView(this);
-    }
-
-    internal long GetId(IOperator op) {
-      return knownOperators[op];
-    }
-  }
-}
Index: anches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/DatabaseOperatorLibraryView.Designer.cs
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/DatabaseOperatorLibraryView.Designer.cs	(revision 956)
+++ 	(revision )
@@ -1,161 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2008 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.CEDMA.Core {
-  partial class DatabaseOperatorLibraryView {
-    /// <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 (chooseOperatorDialog != null) chooseOperatorDialog.Dispose();
-      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.operatorsGroupBox = new System.Windows.Forms.GroupBox();
-      this.operatorsTreeView = new System.Windows.Forms.TreeView();
-      this.removeButton = new System.Windows.Forms.Button();
-      this.addOperatorButton = new System.Windows.Forms.Button();
-      this.saveButton = new System.Windows.Forms.Button();
-      this.refreshButton = new System.Windows.Forms.Button();
-      this.operatorsGroupBox.SuspendLayout();
-      this.SuspendLayout();
-      // 
-      // operatorsGroupBox
-      // 
-      this.operatorsGroupBox.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.operatorsGroupBox.Controls.Add(this.operatorsTreeView);
-      this.operatorsGroupBox.Enabled = false;
-      this.operatorsGroupBox.Location = new System.Drawing.Point(0, 32);
-      this.operatorsGroupBox.Name = "operatorsGroupBox";
-      this.operatorsGroupBox.Size = new System.Drawing.Size(522, 334);
-      this.operatorsGroupBox.TabIndex = 2;
-      this.operatorsGroupBox.TabStop = false;
-      this.operatorsGroupBox.Text = "&Operators";
-      // 
-      // operatorsTreeView
-      // 
-      this.operatorsTreeView.AllowDrop = true;
-      this.operatorsTreeView.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.operatorsTreeView.HideSelection = false;
-      this.operatorsTreeView.LabelEdit = true;
-      this.operatorsTreeView.Location = new System.Drawing.Point(3, 16);
-      this.operatorsTreeView.Name = "operatorsTreeView";
-      this.operatorsTreeView.ShowNodeToolTips = true;
-      this.operatorsTreeView.Size = new System.Drawing.Size(516, 315);
-      this.operatorsTreeView.TabIndex = 0;
-      this.operatorsTreeView.AfterLabelEdit += new System.Windows.Forms.NodeLabelEditEventHandler(this.operatorsTreeView_AfterLabelEdit);
-      this.operatorsTreeView.DoubleClick += new System.EventHandler(this.operatorsTreeView_DoubleClick);
-      this.operatorsTreeView.DragDrop += new System.Windows.Forms.DragEventHandler(this.operatorsTreeView_DragDrop);
-      this.operatorsTreeView.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.operatorsTreeView_AfterSelect);
-      this.operatorsTreeView.MouseDown += new System.Windows.Forms.MouseEventHandler(this.operatorsTreeView_MouseDown);
-      this.operatorsTreeView.DragEnter += new System.Windows.Forms.DragEventHandler(this.operatorsTreeView_DragEnter);
-      this.operatorsTreeView.KeyDown += new System.Windows.Forms.KeyEventHandler(this.operatorsTreeView_KeyDown);
-      this.operatorsTreeView.ItemDrag += new System.Windows.Forms.ItemDragEventHandler(this.operatorsTreeView_ItemDrag);
-      this.operatorsTreeView.DragOver += new System.Windows.Forms.DragEventHandler(this.operatorsTreeView_DragOver);
-      // 
-      // removeButton
-      // 
-      this.removeButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-      this.removeButton.Enabled = false;
-      this.removeButton.Location = new System.Drawing.Point(113, 372);
-      this.removeButton.Name = "removeButton";
-      this.removeButton.Size = new System.Drawing.Size(104, 23);
-      this.removeButton.TabIndex = 4;
-      this.removeButton.Text = "&Remove";
-      this.removeButton.UseVisualStyleBackColor = true;
-      this.removeButton.Click += new System.EventHandler(this.removeButton_Click);
-      // 
-      // addOperatorButton
-      // 
-      this.addOperatorButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-      this.addOperatorButton.Enabled = false;
-      this.addOperatorButton.Location = new System.Drawing.Point(3, 372);
-      this.addOperatorButton.Name = "addOperatorButton";
-      this.addOperatorButton.Size = new System.Drawing.Size(104, 23);
-      this.addOperatorButton.TabIndex = 3;
-      this.addOperatorButton.Text = "Add &Operator...";
-      this.addOperatorButton.UseVisualStyleBackColor = true;
-      this.addOperatorButton.Click += new System.EventHandler(this.addOperatorButton_Click);
-      // 
-      // saveButton
-      // 
-      this.saveButton.Location = new System.Drawing.Point(6, 3);
-      this.saveButton.Name = "saveButton";
-      this.saveButton.Size = new System.Drawing.Size(104, 23);
-      this.saveButton.TabIndex = 0;
-      this.saveButton.Text = "&Upload";
-      this.saveButton.UseVisualStyleBackColor = true;
-      this.saveButton.Click += new System.EventHandler(this.saveButton_Click);
-      // 
-      // refreshButton
-      // 
-      this.refreshButton.Location = new System.Drawing.Point(113, 3);
-      this.refreshButton.Name = "refreshButton";
-      this.refreshButton.Size = new System.Drawing.Size(104, 23);
-      this.refreshButton.TabIndex = 1;
-      this.refreshButton.Text = "R&efresh";
-      this.refreshButton.UseVisualStyleBackColor = true;
-      this.refreshButton.Click += new System.EventHandler(this.refreshButton_Click);
-      // 
-      // DatabaseOperatorLibraryView
-      // 
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-      this.Controls.Add(this.refreshButton);
-      this.Controls.Add(this.saveButton);
-      this.Controls.Add(this.operatorsGroupBox);
-      this.Controls.Add(this.addOperatorButton);
-      this.Controls.Add(this.removeButton);
-      this.Name = "DatabaseOperatorLibraryView";
-      this.Size = new System.Drawing.Size(522, 395);
-      this.operatorsGroupBox.ResumeLayout(false);
-      this.ResumeLayout(false);
-
-    }
-
-    #endregion
-
-    private System.Windows.Forms.GroupBox operatorsGroupBox;
-    private System.Windows.Forms.TreeView operatorsTreeView;
-    private System.Windows.Forms.Button removeButton;
-    private System.Windows.Forms.Button addOperatorButton;
-    private System.Windows.Forms.Button saveButton;
-    private System.Windows.Forms.Button refreshButton;
-  }
-}
Index: anches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/DatabaseOperatorLibraryView.cs
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/DatabaseOperatorLibraryView.cs	(revision 956)
+++ 	(revision )
@@ -1,257 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2008 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;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Text;
-using System.Windows.Forms;
-using HeuristicLab.PluginInfrastructure;
-using HeuristicLab.Core;
-
-namespace HeuristicLab.CEDMA.Core {
-  public partial class DatabaseOperatorLibraryView : ViewBase {
-    private ChooseOperatorDialog chooseOperatorDialog;
-
-    public IOperatorLibrary OperatorLibrary {
-      get { return (IOperatorLibrary)Item; }
-      set { base.Item = value; }
-    }
-
-    public DatabaseOperatorLibraryView() {
-      InitializeComponent();
-      operatorsTreeView.TreeViewNodeSorter = new NodeSorter();
-      Caption = "Operator Library";
-    }
-    public DatabaseOperatorLibraryView(DatabaseOperatorLibrary operatorLibrary)
-      : this() {
-      OperatorLibrary = operatorLibrary;
-    }
-
-    private class NodeSorter : IComparer {
-      public int Compare(object x, object y) {
-        TreeNode tx = x as TreeNode;
-        TreeNode ty = y as TreeNode;
-
-        int result = string.Compare(tx.Text, ty.Text);
-        if(result == 0)
-          result = tx.Index.CompareTo(ty.Index);
-        return result;
-      }
-    }
-
-    protected override void UpdateControls() {
-      base.UpdateControls();
-      operatorsTreeView.Nodes.Clear();
-      addOperatorButton.Enabled = false;
-      removeButton.Enabled = false;
-      if(OperatorLibrary == null) {
-        Caption = "Operator Library";
-        operatorsGroupBox.Enabled = false;
-      } else {
-        Caption = OperatorLibrary.Group.Name + " (" + OperatorLibrary.GetType().Name + ")";
-        operatorsGroupBox.Enabled = true;
-        operatorsTreeView.Nodes.Add(CreateTreeNode(OperatorLibrary.Group));
-        operatorsTreeView.Sort();
-      }
-    }
-
-    private TreeNode CreateTreeNode(IOperatorGroup group) {
-      TreeNode node = new TreeNode();
-      node.Text = group.Name;
-      node.ForeColor = Color.LightGray;
-      node.Tag = group;
-
-      foreach(IOperator op in group.Operators)
-        node.Nodes.Add(CreateTreeNode(op));
-      foreach(IOperatorGroup subGroup in group.SubGroups)
-        node.Nodes.Add(CreateTreeNode(subGroup));
-      return node;
-    }
-    private TreeNode CreateTreeNode(IOperator op) {
-      TreeNode node = new TreeNode();
-      node.Text = op.Name;
-      node.ToolTipText = op.GetType().Name;
-      node.Tag = op;
-      return node;
-    }
-    private void RemoveTreeNode(TreeNode node) {
-      if(node.Tag is IOperatorGroup) {
-        IOperatorGroup group = node.Tag as IOperatorGroup;
-        IOperatorGroup parent = node.Parent.Tag as IOperatorGroup;
-        parent.RemoveSubGroup(group);
-      } else if(node.Tag is IOperator) {
-        IOperator op = node.Tag as IOperator;
-        IOperatorGroup group = node.Parent.Tag as IOperatorGroup;
-        group.RemoveOperator(op);
-      }
-      node.Remove();
-      EnableDisableButtons();
-    }
-
-    private void EnableDisableButtons() {
-      addOperatorButton.Enabled = false;
-      removeButton.Enabled = false;
-      operatorsTreeView.Focus();
-
-      if(operatorsTreeView.SelectedNode != null) {
-        if(operatorsTreeView.SelectedNode.Parent != null)
-          removeButton.Enabled = true;
-        if(operatorsTreeView.SelectedNode.Tag is IOperatorGroup) {
-          addOperatorButton.Enabled = true;
-        }
-      }
-    }
-
-    #region TreeView Events
-    private void operatorsTreeView_AfterSelect(object sender, TreeViewEventArgs e) {
-      EnableDisableButtons();
-    }
-    private void operatorsTreeView_AfterLabelEdit(object sender, NodeLabelEditEventArgs e) {
-      e.CancelEdit = false;
-
-      string name = e.Label;
-      if(name != null) {
-        if(e.Node.Tag is IOperatorGroup)
-          ((IOperatorGroup)e.Node.Tag).Name = name;
-        else if(e.Node.Tag is IOperator)
-          ((IOperator)e.Node.Tag).Name = name;
-      }
-    }
-    private void operatorsTreeView_DoubleClick(object sender, EventArgs e) {
-      if(operatorsTreeView.SelectedNode != null) {
-        IOperator op = operatorsTreeView.SelectedNode.Tag as IOperator;
-        if(op != null) {
-          IView view = op.CreateView();
-          if(view != null)
-            PluginManager.ControlManager.ShowControl(view);
-        }
-      }
-    }
-    #endregion
-
-    #region Button Events
-    private void addOperatorButton_Click(object sender, EventArgs e) {
-      if(chooseOperatorDialog == null) chooseOperatorDialog = new ChooseOperatorDialog();
-      if(chooseOperatorDialog.ShowDialog(this) == DialogResult.OK) {
-        TreeNode node = operatorsTreeView.SelectedNode;
-        IOperatorGroup group = node.Tag as IOperatorGroup;
-        group.AddOperator(chooseOperatorDialog.Operator);
-        node.Nodes.Add(CreateTreeNode(chooseOperatorDialog.Operator));
-        operatorsTreeView.Sort();
-        EnableDisableButtons();
-      }
-    }
-    private void removeButton_Click(object sender, EventArgs e) {
-      TreeNode node = operatorsTreeView.SelectedNode;
-      RemoveTreeNode(node);
-    }
-    #endregion
-
-    #region Key Events
-    private void operatorsTreeView_KeyDown(object sender, KeyEventArgs e) {
-      TreeNode node = operatorsTreeView.SelectedNode;
-      if((e.KeyCode == Keys.Delete) && (node != null) && (node.Parent != null))
-        RemoveTreeNode(operatorsTreeView.SelectedNode);
-      if((e.KeyCode == Keys.F2) && (node != null))
-        node.BeginEdit();
-    }
-    #endregion
-
-
-    #region Mouse Events
-    private void operatorsTreeView_MouseDown(object sender, MouseEventArgs e) {
-      if(e.Button != MouseButtons.Right) return;
-      TreeNode clickedNode = operatorsTreeView.GetNodeAt(e.X, e.Y);
-      if(clickedNode != null) {
-        operatorsTreeView.SelectedNode = clickedNode;
-        operatorsTreeView.Refresh();
-      }
-    }
-    #endregion
-
-    #region Drag and Drop Events
-    private void operatorsTreeView_ItemDrag(object sender, ItemDragEventArgs e) {
-      TreeNode node = (TreeNode)e.Item;
-      IOperator op = node.Tag as IOperator;
-      if(op != null) {
-        long opId = ((DatabaseOperatorLibrary)OperatorLibrary).GetId(op);
-        OperatorLink link = new OperatorLink(opId, op);
-        DataObject data = new DataObject();
-        data.SetData("IOperator", link);
-        data.SetData("DragSource", operatorsTreeView);
-        DoDragDrop(data, DragDropEffects.Copy);
-      }
-    }
-    private void operatorsTreeView_DragEnter(object sender, DragEventArgs e) {
-      e.Effect = DragDropEffects.None;
-      if(e.Data.GetDataPresent("IOperator")) {
-        Point p = operatorsTreeView.PointToClient(new Point(e.X, e.Y));
-        TreeNode node = operatorsTreeView.GetNodeAt(p);
-        if((node != null) && (node.Tag is IOperatorGroup))
-          e.Effect = DragDropEffects.Copy;
-      }
-    }
-    private void operatorsTreeView_DragOver(object sender, DragEventArgs e) {
-      e.Effect = DragDropEffects.None;
-      if(e.Data.GetDataPresent("IOperator")) {
-        Point p = operatorsTreeView.PointToClient(new Point(e.X, e.Y));
-        TreeNode node = operatorsTreeView.GetNodeAt(p);
-        if((node != null) && (node.Tag is IOperatorGroup))
-          e.Effect = DragDropEffects.Copy;
-      }
-    }
-    private void operatorsTreeView_DragDrop(object sender, DragEventArgs e) {
-      if(e.Effect != DragDropEffects.None) {
-        if(e.Data.GetDataPresent("IOperator")) {
-          IOperator op = (IOperator)e.Data.GetData("IOperator");
-          Point p = operatorsTreeView.PointToClient(new Point(e.X, e.Y));
-          TreeNode node = operatorsTreeView.GetNodeAt(p);
-          if(node != null) {
-            op = (IOperator)op.Clone();
-
-            while(op.SubOperators.Count > 0)
-              op.RemoveSubOperator(0);
-
-            IOperatorGroup group = (IOperatorGroup)node.Tag;
-            group.AddOperator(op);
-            node.Nodes.Add(CreateTreeNode(op));
-            operatorsTreeView.Sort();
-            EnableDisableButtons();
-          }
-        }
-      }
-    }
-    #endregion
-
-    private void saveButton_Click(object sender, EventArgs e) {
-      ((DatabaseOperatorLibrary)OperatorLibrary).Save();
-    }
-
-    private void refreshButton_Click(object sender, EventArgs e) {
-      ((DatabaseOperatorLibrary)OperatorLibrary).Restore();
-      UpdateControls();
-    }
-  }
-}
Index: anches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/DatabaseOperatorLibraryView.resx
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/DatabaseOperatorLibraryView.resx	(revision 956)
+++ 	(revision )
@@ -1,120 +1,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-</root>
Index: /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/HeuristicLab.CEDMA.Core.csproj
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/HeuristicLab.CEDMA.Core.csproj	(revision 956)
+++ /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/HeuristicLab.CEDMA.Core.csproj	(revision 957)
@@ -72,40 +72,25 @@
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="Agent.cs" />
-    <Compile Include="AgentList.cs" />
     <Compile Include="Console.cs" />
     <Compile Include="ConsoleEditor.cs">
       <SubType>UserControl</SubType>
     </Compile>
-    <Compile Include="ResultTable.cs" />
-    <Compile Include="ResultExporter.cs" />
-    <Compile Include="DatabaseOperatorLibrary.cs" />
-    <Compile Include="DatabaseOperatorLibraryView.cs">
+    <Compile Include="Problem.cs" />
+    <Compile Include="DataSet.cs" />
+    <Compile Include="DataSetList.cs" />
+    <Compile Include="DataSetListView.cs">
       <SubType>UserControl</SubType>
     </Compile>
-    <Compile Include="DatabaseOperatorLibraryView.Designer.cs">
-      <DependentUpon>DatabaseOperatorLibraryView.cs</DependentUpon>
+    <Compile Include="DataSetListView.Designer.cs">
+      <DependentUpon>DataSetListView.cs</DependentUpon>
     </Compile>
-    <Compile Include="OperatorLink.cs" />
-    <Compile Include="OperatorLinkPatcher.cs" />
-    <Compile Include="Result.cs" />
-    <Compile Include="IResult.cs" />
-    <Compile Include="HeuristicLabCedmaCorePlugin.cs" />
-    <Compile Include="IAgent.cs" />
-    <Compile Include="IAgentList.cs" />
-    <Compile Include="IDatabaseItem.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="AgentListView.cs">
+    <Compile Include="DataSetView.cs">
       <SubType>UserControl</SubType>
     </Compile>
-    <Compile Include="AgentListView.Designer.cs">
-      <DependentUpon>AgentListView.cs</DependentUpon>
+    <Compile Include="DataSetView.Designer.cs">
+      <DependentUpon>DataSetView.cs</DependentUpon>
     </Compile>
-    <Compile Include="AgentView.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="AgentView.Designer.cs">
-      <DependentUpon>AgentView.cs</DependentUpon>
-    </Compile>
+    <Compile Include="HeuristicLabCedmaCorePlugin.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
   </ItemGroup>
   <ItemGroup>
@@ -135,19 +120,13 @@
   </ItemGroup>
   <ItemGroup>
-    <EmbeddedResource Include="AgentListView.resx">
-      <DependentUpon>AgentListView.cs</DependentUpon>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-    <EmbeddedResource Include="AgentView.resx">
-      <DependentUpon>AgentView.cs</DependentUpon>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
     <EmbeddedResource Include="ConsoleEditor.resx">
       <DependentUpon>ConsoleEditor.cs</DependentUpon>
       <SubType>Designer</SubType>
     </EmbeddedResource>
-    <EmbeddedResource Include="DatabaseOperatorLibraryView.resx">
-      <DependentUpon>DatabaseOperatorLibraryView.cs</DependentUpon>
-      <SubType>Designer</SubType>
+    <EmbeddedResource Include="DataSetListView.resx">
+      <DependentUpon>DataSetListView.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="DataSetView.resx">
+      <DependentUpon>DataSetView.cs</DependentUpon>
     </EmbeddedResource>
   </ItemGroup>
Index: anches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/IAgent.cs
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/IAgent.cs	(revision 956)
+++ 	(revision )
@@ -1,40 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2008 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.Linq;
-using System.Text;
-using HeuristicLab.Core;
-using HeuristicLab.CEDMA.DB.Interfaces;
-
-namespace HeuristicLab.CEDMA.Core {
-  public interface IAgent : IDatabaseItem, IViewable {
-    string Name { get; }
-    ProcessStatus Status { get; }
-    IOperatorGraph OperatorGraph { get; }
-    ICollection<IAgent> SubAgents { get; }
-    ICollection<IResult> Results { get; }
-    bool Terminated { get; }
-    void Save();
-    void Start();
-  }
-}
Index: anches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/IAgentList.cs
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/IAgentList.cs	(revision 956)
+++ 	(revision )
@@ -1,32 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2008 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.Linq;
-using System.Text;
-using HeuristicLab.Core;
-
-namespace HeuristicLab.CEDMA.Core {
-  public interface IAgentList : IItem, IEnumerable<IAgent> {
-    void CreateAgent();
-  }
-}
Index: anches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/IDatabaseItem.cs
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/IDatabaseItem.cs	(revision 956)
+++ 	(revision )
@@ -1,34 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2008 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.Linq;
-using System.Text;
-using HeuristicLab.Core;
-using HeuristicLab.CEDMA.DB.Interfaces;
-
-namespace HeuristicLab.CEDMA.Core {
-  public interface IDatabaseItem {
-    IDatabase Database { get; set; }
-    long Id { get; set; }
-  }
-}
Index: anches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/IResult.cs
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/IResult.cs	(revision 956)
+++ 	(revision )
@@ -1,36 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2008 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.Linq;
-using System.Text;
-using HeuristicLab.Core;
-using HeuristicLab.CEDMA.DB.Interfaces;
-
-namespace HeuristicLab.CEDMA.Core {
-  public interface IResult : IDatabaseItem, IViewable {
-    IItem Item { get; }
-    string Summary { get; }
-    string Description { get; }
-    ICollection<IResult> SubResults { get; }
-  }
-}
Index: anches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/OperatorLink.cs
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/OperatorLink.cs	(revision 956)
+++ 	(revision )
@@ -1,98 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2008 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.Linq;
-using System.Text;
-using HeuristicLab.Core;
-using System.Xml;
-using HeuristicLab.CEDMA.DB.Interfaces;
-using HeuristicLab.Operators;
-
-namespace HeuristicLab.CEDMA.Core {
-  public class OperatorLink : OperatorBase {
-    private long id;
-    public long Id {
-      get { return id; }
-    }
-
-    public IDatabase Database { get; set; }
-
-    private IOperator myOperator;
-    public IOperator Operator {
-      get { return myOperator; }
-      set { myOperator = value; }
-    }
-
-    public OperatorLink() : base() { } // for cloning and persistence
-
-    public OperatorLink(long id, IOperator op)
-      : base() {
-      this.id = id;
-      this.myOperator = op;
-      Name = myOperator.Name;
-    }
-
-    public override void Abort() {
-      throw new NotSupportedException();
-    }
-
-    public override IOperation Apply(IScope scope) {
-      throw new NotSupportedException();
-    }
-
-    public override object Clone(IDictionary<Guid, object> clonedObjects) {
-      OperatorLink clone = (OperatorLink)base.Clone(clonedObjects);
-      clone.id = id;
-      clone.myOperator = Operator;
-      return clone;
-    }
-
-    public override IView CreateView() {
-      if(Operator == null) {
-        if(Database == null) return null;
-        OperatorEntry targetEntry = Database.GetOperator(Id);
-        IOperator target = (IOperator)PersistenceManager.RestoreFromGZip(targetEntry.RawData);
-        OperatorLinkPatcher.LinkDatabase(target, Database);
-        Operator = target;
-      }
-      return myOperator.CreateView();
-    }
-
-    public override IOperation Execute(IScope scope) {
-      throw new NotSupportedException();
-    }
-
-    public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid, IStorable> persistedObjects) {
-      XmlNode node = base.GetXmlNode(name, document, persistedObjects);
-      XmlAttribute idAttr = document.CreateAttribute("OperatorId");
-      idAttr.Value = id.ToString();
-      node.Attributes.Append(idAttr);
-      return node;
-    }
-
-    public override void Populate(XmlNode node, IDictionary<Guid, IStorable> restoredObjects) {
-      id = long.Parse(node.Attributes["OperatorId"].Value);
-      base.Populate(node, restoredObjects);
-    }
-  }
-}
Index: anches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/OperatorLinkPatcher.cs
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/OperatorLinkPatcher.cs	(revision 956)
+++ 	(revision )
@@ -1,58 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2008 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.Text;
-using System.Xml;
-using System.IO;
-using System.IO.Compression;
-using HeuristicLab.Core;
-using HeuristicLab.Operators;
-using HeuristicLab.CEDMA.DB.Interfaces;
-
-namespace HeuristicLab.CEDMA.Core {
-  public static class OperatorLinkPatcher {
-    public static void LinkDatabase(IOperatorGraph opGraph, IDatabase database) {
-      foreach(IOperator op in opGraph.Operators) {
-        LinkDatabase(op, database);
-      }
-    }
-
-    public static void LinkDatabase(IOperator op, IDatabase database) {
-      if(op is OperatorLink) {
-        OperatorLink link = op as OperatorLink;
-        link.Database = database;
-      } else if(op is CombinedOperator) {
-        LinkDatabase(((CombinedOperator)op).OperatorGraph, database);
-      }
-      // also patch operator links contained (indirectly) in variables
-      foreach(VariableInfo varInfo in op.VariableInfos) {
-        IVariable var = op.GetVariable(varInfo.ActualName);
-        if(var != null && var.Value is IOperatorGraph) {
-          LinkDatabase((IOperatorGraph)var.Value, database);
-        } else if(var != null && var.Value is IOperator) {
-          LinkDatabase((IOperator)var.Value, database);
-        }
-      }
-    }
-  }
-}
Index: /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/Problem.cs
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/Problem.cs	(revision 957)
+++ /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/Problem.cs	(revision 957)
@@ -0,0 +1,43 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2008 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.Linq;
+using System.Text;
+using HeuristicLab.Core;
+using System.Xml;
+using HeuristicLab.CEDMA.DB.Interfaces;
+using HeuristicLab.Operators;
+
+namespace HeuristicLab.CEDMA.Core {
+  /// <summary>
+  /// Problem describes the data mining task.
+  /// Contains the actual data and meta-data:
+  ///  * which variables should be modelled 
+  ///  * regression, time-series or classification problem
+  /// </summary>
+  public class Problem {
+    public Problem()
+      : base() {
+    }
+  }
+}
Index: /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.DB.Interfaces/HeuristicLab.CEDMA.DB.Interfaces.csproj
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.DB.Interfaces/HeuristicLab.CEDMA.DB.Interfaces.csproj	(revision 956)
+++ /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.DB.Interfaces/HeuristicLab.CEDMA.DB.Interfaces.csproj	(revision 957)
@@ -70,5 +70,4 @@
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="AgentEntry.cs" />
     <Compile Include="SelectFilter.cs" />
     <Compile Include="SerializedLiteral.cs" />
@@ -79,8 +78,5 @@
     <Compile Include="IStore.cs" />
     <Compile Include="OperatorEntry.cs" />
-    <Compile Include="ProcessStatus.cs" />
-    <Compile Include="ResultEntry.cs" />
     <Compile Include="HeuristicLabCedmaDbInterfacesPlugin.cs" />
-    <Compile Include="IDatabase.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
   </ItemGroup>
Index: /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.DB/HeuristicLab.CEDMA.DB.csproj
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.DB/HeuristicLab.CEDMA.DB.csproj	(revision 956)
+++ /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.DB/HeuristicLab.CEDMA.DB.csproj	(revision 957)
@@ -60,8 +60,4 @@
       <RequiredTargetFramework>3.5</RequiredTargetFramework>
     </Reference>
-    <Reference Include="System.Data.SQLite, Version=1.0.56.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=x86">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\HeuristicLab.SQLite\System.Data.SQLite.DLL</HintPath>
-    </Reference>
     <Reference Include="System.ServiceModel">
       <RequiredTargetFramework>3.0</RequiredTargetFramework>
@@ -78,5 +74,4 @@
   <ItemGroup>
     <Compile Include="Store.cs" />
-    <Compile Include="Database.cs" />
     <Compile Include="HeuristicLabCedmaDbPlugin.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
Index: /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.DB/Store.cs
===================================================================
--- /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.DB/Store.cs	(revision 956)
+++ /branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.DB/Store.cs	(revision 957)
@@ -28,5 +28,4 @@
 using System.ServiceModel;
 using System.Data;
-using System.Data.SQLite;
 using System.Data.Common;
 using System.Threading;
