Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis.Regression/3.3/HeuristicLab.Problems.DataAnalysis.Regression-3.3.csproj
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis.Regression/3.3/HeuristicLab.Problems.DataAnalysis.Regression-3.3.csproj	(revision 3852)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis.Regression/3.3/HeuristicLab.Problems.DataAnalysis.Regression-3.3.csproj	(revision 3853)
@@ -141,4 +141,8 @@
       <Name>HeuristicLab.Data-3.3</Name>
     </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Encodings.RealVectorEncoding\3.3\HeuristicLab.Encodings.RealVectorEncoding-3.3.csproj">
+      <Project>{BB6D334A-4BB6-4674-9883-31A6EBB32CAB}</Project>
+      <Name>HeuristicLab.Encodings.RealVectorEncoding-3.3</Name>
+    </ProjectReference>
     <ProjectReference Include="..\..\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding\3.3\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.3.csproj">
       <Project>{125D3006-67F5-48CB-913E-73C0548F17FA}</Project>
@@ -188,4 +192,8 @@
       <Project>{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}</Project>
       <Name>HeuristicLab.Problems.DataAnalysis-3.3</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Problems.TestFunctions\3.3\HeuristicLab.Problems.TestFunctions-3.3.csproj">
+      <Project>{88B9B0E3-344E-4196-82A3-0F9732506FE8}</Project>
+      <Name>HeuristicLab.Problems.TestFunctions-3.3</Name>
     </ProjectReference>
     <ProjectReference Include="..\..\HeuristicLab.Random\3.3\HeuristicLab.Random-3.3.csproj">
Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/HeuristicLab.Problems.DataAnalysis.Views-3.3.csproj
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/HeuristicLab.Problems.DataAnalysis.Views-3.3.csproj	(revision 3852)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/HeuristicLab.Problems.DataAnalysis.Views-3.3.csproj	(revision 3853)
@@ -86,4 +86,16 @@
     <None Include="HeuristicLabProblemsDataAnalysisViewsPlugin.cs.frame" />
     <None Include="Properties\AssemblyInfo.frame" />
+    <Compile Include="SupportVectorRegressionSolutionView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="SupportVectorRegressionSolutionView.Designer.cs">
+      <DependentUpon>SupportVectorRegressionSolutionView.cs</DependentUpon>
+    </Compile>
+    <Compile Include="SupportVectorMachineModelView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="SupportVectorMachineModelView.Designer.cs">
+      <DependentUpon>SupportVectorMachineModelView.cs</DependentUpon>
+    </Compile>
     <Compile Include="EstimatedValuesView.cs">
       <SubType>UserControl</SubType>
Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/SupportVectorMachineModelView.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/SupportVectorMachineModelView.Designer.cs	(revision 3853)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/SupportVectorMachineModelView.Designer.cs	(revision 3853)
@@ -0,0 +1,78 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 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.Problems.DataAnalysis.Views {
+  partial class SupportVectorMachineModelView {
+    /// <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.textBox = new System.Windows.Forms.TextBox();
+      this.SuspendLayout();
+      // 
+      // textBox
+      // 
+      this.textBox.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.textBox.Location = new System.Drawing.Point(3, 3);
+      this.textBox.Multiline = true;
+      this.textBox.Name = "textBox";
+      this.textBox.Size = new System.Drawing.Size(247, 245);
+      this.textBox.TabIndex = 0;
+      // 
+      // SupportVectorMachineModelView
+      // 
+      this.AllowDrop = true;
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.textBox);
+      this.Name = "SupportVectorMachineModelView";
+      this.Size = new System.Drawing.Size(253, 251);
+      this.ResumeLayout(false);
+      this.PerformLayout();
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.TextBox textBox;
+
+  }
+}
Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/SupportVectorMachineModelView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/SupportVectorMachineModelView.cs	(revision 3853)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/SupportVectorMachineModelView.cs	(revision 3853)
@@ -0,0 +1,78 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 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.Collections.Specialized;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using HeuristicLab.Common;
+using HeuristicLab.MainForm;
+using HeuristicLab.Problems.DataAnalysis;
+using HeuristicLab.MainForm.WindowsForms;
+using System.Windows.Forms.DataVisualization.Charting;
+using HeuristicLab.Problems.DataAnalysis.SupportVectorMachine;
+using System.IO;
+
+namespace HeuristicLab.Problems.DataAnalysis.Views {
+  [View("Support Vector Machine Model View")]
+  [Content(typeof(SupportVectorMachineModel), true)]
+  public partial class SupportVectorMachineModelView : AsynchronousContentView {
+
+    public new SupportVectorMachineModel Content {
+      get { return (SupportVectorMachineModel)base.Content; }
+      set {
+        base.Content = value;
+      }
+    }
+
+    public SupportVectorMachineModelView()
+      : base() {
+      InitializeComponent();
+    }
+
+
+    #region events
+    protected override void RegisterContentEvents() {
+      base.RegisterContentEvents();
+      Content.Changed += new EventHandler(Content_Changed);
+    }
+
+    protected override void DeregisterContentEvents() {
+      base.DeregisterContentEvents();
+      Content.Changed -= new EventHandler(Content_Changed);
+    }
+
+    private void Content_Changed(object sender, EventArgs e) {
+      using (MemoryStream s = new MemoryStream()) {
+        SupportVectorMachineModel.Export(Content, s);
+        s.Seek(0, System.IO.SeekOrigin.Begin);
+        StreamReader reader = new StreamReader(s);
+        textBox.Text = reader.ReadToEnd();
+      }
+    }
+
+    #endregion
+  }
+}
Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/SupportVectorRegressionSolutionView.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/SupportVectorRegressionSolutionView.Designer.cs	(revision 3853)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/SupportVectorRegressionSolutionView.Designer.cs	(revision 3853)
@@ -0,0 +1,136 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 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.Problems.DataAnalysis.Views {
+  partial class SupportVectorRegressionSolutionView {
+    /// <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.modelTabControl = new System.Windows.Forms.TabControl();
+      this.modelTabPage = new System.Windows.Forms.TabPage();
+      this.dataTabPage = new System.Windows.Forms.TabPage();
+      this.modelPanel = new HeuristicLab.MainForm.WindowsForms.ViewHost();
+      this.dataPanel = new HeuristicLab.MainForm.WindowsForms.ViewHost();
+      this.modelTabControl.SuspendLayout();
+      this.modelTabPage.SuspendLayout();
+      this.dataTabPage.SuspendLayout();
+      this.SuspendLayout();
+      // 
+      // modelTabControl
+      // 
+      this.modelTabControl.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.modelTabControl.Controls.Add(this.modelTabPage);
+      this.modelTabControl.Controls.Add(this.dataTabPage);
+      this.modelTabControl.Location = new System.Drawing.Point(3, 3);
+      this.modelTabControl.Name = "modelTabControl";
+      this.modelTabControl.SelectedIndex = 0;
+      this.modelTabControl.Size = new System.Drawing.Size(247, 245);
+      this.modelTabControl.TabIndex = 0;
+      // 
+      // modelTabPage
+      // 
+      this.modelTabPage.Controls.Add(this.modelPanel);
+      this.modelTabPage.Location = new System.Drawing.Point(4, 22);
+      this.modelTabPage.Name = "modelTabPage";
+      this.modelTabPage.Padding = new System.Windows.Forms.Padding(3);
+      this.modelTabPage.Size = new System.Drawing.Size(239, 219);
+      this.modelTabPage.TabIndex = 0;
+      this.modelTabPage.Text = "Model";
+      this.modelTabPage.UseVisualStyleBackColor = true;
+      // 
+      // dataTabPage
+      // 
+      this.dataTabPage.Controls.Add(this.dataPanel);
+      this.dataTabPage.Location = new System.Drawing.Point(4, 22);
+      this.dataTabPage.Name = "dataTabPage";
+      this.dataTabPage.Padding = new System.Windows.Forms.Padding(3);
+      this.dataTabPage.Size = new System.Drawing.Size(239, 219);
+      this.dataTabPage.TabIndex = 1;
+      this.dataTabPage.Text = "Data";
+      this.dataTabPage.UseVisualStyleBackColor = true;
+      // 
+      // modelPanel
+      // 
+      this.modelPanel.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.modelPanel.Location = new System.Drawing.Point(6, 6);
+      this.modelPanel.Name = "modelPanel";
+      this.modelPanel.Size = new System.Drawing.Size(227, 207);
+      this.modelPanel.TabIndex = 0;
+      // 
+      // dataPanel
+      // 
+      this.dataPanel.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.dataPanel.Location = new System.Drawing.Point(6, 6);
+      this.dataPanel.Name = "dataPanel";
+      this.dataPanel.Size = new System.Drawing.Size(227, 207);
+      this.dataPanel.TabIndex = 0;
+      // 
+      // SupportVectorRegressionSolutionView
+      // 
+      this.AllowDrop = true;
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.modelTabControl);
+      this.Name = "SupportVectorRegressionSolutionView";
+      this.Size = new System.Drawing.Size(253, 251);
+      this.modelTabControl.ResumeLayout(false);
+      this.modelTabPage.ResumeLayout(false);
+      this.dataTabPage.ResumeLayout(false);
+      this.ResumeLayout(false);
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.TabControl modelTabControl;
+    private System.Windows.Forms.TabPage modelTabPage;
+    private HeuristicLab.MainForm.WindowsForms.ViewHost modelPanel;
+    private System.Windows.Forms.TabPage dataTabPage;
+    private HeuristicLab.MainForm.WindowsForms.ViewHost dataPanel;
+
+
+  }
+}
Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/SupportVectorRegressionSolutionView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/SupportVectorRegressionSolutionView.cs	(revision 3853)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/SupportVectorRegressionSolutionView.cs	(revision 3853)
@@ -0,0 +1,74 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 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.Collections.Specialized;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using HeuristicLab.Common;
+using HeuristicLab.MainForm;
+using HeuristicLab.Problems.DataAnalysis;
+using HeuristicLab.MainForm.WindowsForms;
+using System.Windows.Forms.DataVisualization.Charting;
+using HeuristicLab.Problems.DataAnalysis.SupportVectorMachine;
+using System.IO;
+using HeuristicLab.Problems.DataAnalysis.Regression.SupportVectorRegression;
+
+namespace HeuristicLab.Problems.DataAnalysis.Views {
+  [View("Support Vector Regression Solution View")]
+  [Content(typeof(SupportVectorRegressionSolution))]
+  public partial class SupportVectorRegressionSolutionView : AsynchronousContentView {
+
+    public new SupportVectorRegressionSolution Content {
+      get { return (SupportVectorRegressionSolution)base.Content; }
+      set {
+        base.Content = value;
+      }
+    }
+
+    public SupportVectorRegressionSolutionView()
+      : base() {
+      InitializeComponent();
+    }
+
+
+    #region events
+    protected override void RegisterContentEvents() {
+      base.RegisterContentEvents();
+      Content.ProblemDataChanged += new EventHandler(Content_Changed);
+    }
+
+    protected override void DeregisterContentEvents() {
+      base.DeregisterContentEvents();
+    }
+
+    private void Content_Changed(object sender, EventArgs e) {
+      modelPanel.Content = Content.Model;
+      dataPanel.Content = Content.ProblemData;
+    }
+
+    #endregion
+  }
+}
Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis/3.3/SupportVectorMachine/SupportVectorMachineModel.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis/3.3/SupportVectorMachine/SupportVectorMachineModel.cs	(revision 3852)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis/3.3/SupportVectorMachine/SupportVectorMachineModel.cs	(revision 3853)
@@ -43,5 +43,11 @@
     public SVM.Model Model {
       get { return model; }
-      set { model = value; }
+      set {
+        if (value != model) {
+          if (value == null) throw new ArgumentNullException();
+          model = value;
+          OnChanged(EventArgs.Empty);
+        }
+      }
     }
 
@@ -52,6 +58,25 @@
     public SVM.RangeTransform RangeTransform {
       get { return rangeTransform; }
-      set { rangeTransform = value; }
+      set {
+        if (value != rangeTransform) {
+          if (value == null) throw new ArgumentNullException();
+          rangeTransform = value;
+          OnChanged(EventArgs.Empty);
+        }
+      }
     }
+
+    public SupportVectorMachineModel()
+      : base() {
+    }
+
+    #region events
+    public event EventHandler Changed;
+    private void OnChanged(EventArgs e) {
+      var handlers = Changed;
+      if (handlers != null)
+        handlers(this, e);
+    }
+    #endregion
 
     #region persistence
@@ -99,12 +124,12 @@
 
     /// <summary>
-    ///  Exports the <paramref name="model"/> in string representation to output stream <paramref name="s"/>
+    ///  Exports the <paramref name="model"/> in string representation to stream <paramref name="s"/>
     /// </summary>
     /// <param name="model">The support vector regression model to export</param>
-    /// <param name="s">The output stream to export the model to</param>
+    /// <param name="s">The stream to export the model to</param>
     public static void Export(SupportVectorMachineModel model, Stream s) {
       StreamWriter writer = new StreamWriter(s);
       writer.WriteLine("RangeTransform:");
-      writer.Flush();
+      writer.Flush(); 
       using (MemoryStream memStream = new MemoryStream()) {
         SVM.RangeTransform.Write(memStream, model.RangeTransform);
