Index: branches/TerminationCriteria/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/OffspringSelectionGeneticAlgorithm.cs
===================================================================
--- branches/TerminationCriteria/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/OffspringSelectionGeneticAlgorithm.cs	(revision 12410)
+++ branches/TerminationCriteria/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/OffspringSelectionGeneticAlgorithm.cs	(revision 12411)
@@ -21,4 +21,5 @@
 
 using System;
+using System.Collections.Generic;
 using System.Linq;
 using HeuristicLab.Analysis;
@@ -110,6 +111,6 @@
       get { return (ValueParameter<MultiAnalyzer>)Parameters["Analyzer"]; }
     }
-    private ValueParameter<IntValue> MaximumEvaluatedSolutionsParameter {
-      get { return (ValueParameter<IntValue>)Parameters["MaximumEvaluatedSolutions"]; }
+    private IFixedValueParameter<IntValue> MaximumEvaluatedSolutionsParameter {
+      get { return (IFixedValueParameter<IntValue>)Parameters["MaximumEvaluatedSolutions"]; }
     }
     private IFixedValueParameter<BoolValue> FillPopulationWithParentsParameter {
@@ -194,7 +195,7 @@
       set { AnalyzerParameter.Value = value; }
     }
-    public IntValue MaximumEvaluatedSolutions {
-      get { return MaximumEvaluatedSolutionsParameter.Value; }
-      set { MaximumEvaluatedSolutionsParameter.Value = value; }
+    public int MaximumEvaluatedSolutions {
+      get { return MaximumEvaluatedSolutionsParameter.Value.Value; }
+      set { MaximumEvaluatedSolutionsParameter.Value.Value = value; }
     }
     public bool FillPopulationWithParents {
@@ -221,7 +222,7 @@
     private SuccessfulOffspringAnalyzer successfulOffspringAnalyzer;
     [Storable]
-    private MaximumIterationsTerminator generationsTerminator;
-    [Storable]
-    private ComparisonTerminator<IntValue> evaluatedSolutionsTerminator;
+    private ComparisonTerminator<IntValue> generationsTerminator;
+    [Storable]
+    private ComparisonTerminator<IntValue> evaluationsTerminator;
     [Storable]
     private ComparisonTerminator<DoubleValue> selectionPressureTerminator;
@@ -255,5 +256,5 @@
       successfulOffspringAnalyzer = cloner.Clone(original.successfulOffspringAnalyzer);
       generationsTerminator = cloner.Clone(original.generationsTerminator);
-      evaluatedSolutionsTerminator = cloner.Clone(original.evaluatedSolutionsTerminator);
+      evaluationsTerminator = cloner.Clone(original.evaluationsTerminator);
       selectionPressureTerminator = cloner.Clone(original.selectionPressureTerminator);
       qualityTerminator = cloner.Clone(original.qualityTerminator);
@@ -284,5 +285,5 @@
       Parameters.Add(new ValueLookupParameter<IntValue>("SelectedParents", "How much parents should be selected each time the offspring selection step is performed until the population is filled. This parameter should be about the same or twice the size of PopulationSize for smaller problems, and less for large problems.", new IntValue(200)));
       Parameters.Add(new ValueParameter<MultiAnalyzer>("Analyzer", "The operator used to analyze each generation.", new MultiAnalyzer()));
-      Parameters.Add(new ValueParameter<IntValue>("MaximumEvaluatedSolutions", "The maximum number of evaluated solutions (approximately).", new IntValue(int.MaxValue)));
+      Parameters.Add(new FixedValueParameter<IntValue>("MaximumEvaluatedSolutions", "The maximum number of evaluated solutions (approximately).", new IntValue(int.MaxValue)));
       Parameters.Add(new FixedValueParameter<BoolValue>("FillPopulationWithParents", "True if the population should be filled with parent individual or false if worse children should be used when the maximum selection pressure is exceeded.", new BoolValue(false)) { Hidden = true });
       Parameters.Add(new ValueParameter<MultiTerminator>("Termination", "The termination criteria which sould be checked.", new MultiTerminator()));
@@ -344,12 +345,4 @@
       UpdateAnalyzers();
 
-      generationsTerminator = new MaximumIterationsTerminator();
-      evaluatedSolutionsTerminator = new ComparisonTerminator<IntValue>("EvaluatedSolutions", ComparisonType.Less, new IntValue(int.MaxValue)) { Name = "Evaluations" };
-      selectionPressureTerminator = new ComparisonTerminator<DoubleValue>("SelectionPressure", ComparisonType.Less, new DoubleValue(200)) { Name = "Selection Pressure" };
-      qualityTerminator = new SingleObjectiveQualityTerminator();
-      executionTimeTerminator = new ExecutionTimeTerminator(this, new TimeSpanValue(TimeSpan.FromMinutes(5))) { Name = "Execution Time" };
-      ParameterizeTerminators();
-      UpdateTerminators();
-
       foreach (IDiscreteDoubleValueModifier modifier in ApplicationManager.Manager.GetInstances<IDiscreteDoubleValueModifier>().OrderBy(x => x.Name))
         ComparisonFactorModifierParameter.ValidValues.Add(modifier);
@@ -357,4 +350,12 @@
       if (linearModifier != null) ComparisonFactorModifierParameter.Value = linearModifier;
       ParameterizeComparisonFactorModifiers();
+
+      generationsTerminator = new ComparisonTerminator<IntValue>("Generations", ComparisonType.Less, MaximumGenerationsParameter) { Name = "Generations" };
+      evaluationsTerminator = new ComparisonTerminator<IntValue>("EvaluatedSolutions", ComparisonType.Less, MaximumEvaluatedSolutionsParameter) { Name = "Evaluations" };
+      selectionPressureTerminator = new ComparisonTerminator<DoubleValue>("SelectionPressure", ComparisonType.Less, MaximumSelectionPressure) { Name = "Selection Pressure" };
+      qualityTerminator = new SingleObjectiveQualityTerminator() { Name = "Quality" };
+      executionTimeTerminator = new ExecutionTimeTerminator(this, new TimeSpanValue(TimeSpan.FromMinutes(5)));
+      ParameterizeTerminators();
+      UpdateTerminators();
 
       Initialize();
@@ -503,7 +504,4 @@
     }
     private void ParameterizeTerminators() {
-      generationsTerminator.IterationsParameter.ActualName = "Generations";
-      generationsTerminator.MaximumIterationsParameter = MaximumGenerationsParameter;
-
       qualityTerminator.Parameterize(qualityAnalyzer.CurrentBestQualityParameter, Problem);
     }
@@ -566,15 +564,19 @@
     }
     private void UpdateTerminators() {
-      // ToDo restore checked state
-      Terminators.Operators.Clear();
+      var newTerminators = new Dictionary<ITerminator, bool> {
+        {generationsTerminator, !Terminators.Operators.Contains(generationsTerminator) || Terminators.Operators.ItemChecked(generationsTerminator)},
+        {selectionPressureTerminator, !Terminators.Operators.Contains(selectionPressureTerminator) || Terminators.Operators.ItemChecked(selectionPressureTerminator) },
+        {evaluationsTerminator, Terminators.Operators.Contains(evaluationsTerminator) && Terminators.Operators.ItemChecked(evaluationsTerminator)},
+        {qualityTerminator, Terminators.Operators.Contains(qualityTerminator) && Terminators.Operators.ItemChecked(qualityTerminator) },
+        {executionTimeTerminator, Terminators.Operators.Contains(executionTimeTerminator) && Terminators.Operators.ItemChecked(executionTimeTerminator)}
+      };
       if (Problem != null) {
         foreach (var terminator in Problem.Operators.OfType<ITerminator>())
-          Terminators.Operators.Add(terminator);
-      }
-      Terminators.Operators.Add(generationsTerminator);
-      Terminators.Operators.Add(evaluatedSolutionsTerminator);
-      Terminators.Operators.Add(selectionPressureTerminator);
-      Terminators.Operators.Add(qualityTerminator, checkedState: false);
-      Terminators.Operators.Add(executionTimeTerminator, checkedState: false);
+          newTerminators.Add(terminator, !Terminators.Operators.Contains(terminator) || Terminators.Operators.ItemChecked(terminator));
+      }
+
+      Terminators.Operators.Clear();
+      foreach (var newTerminator in newTerminators)
+        Terminators.Operators.Add(newTerminator.Key, newTerminator.Value);
     }
     private OffspringSelectionGeneticAlgorithmMainLoop FindMainLoop(IOperator start) {
Index: branches/TerminationCriteria/HeuristicLab.Termination/3.3/ComparisonTerminator.cs
===================================================================
--- branches/TerminationCriteria/HeuristicLab.Termination/3.3/ComparisonTerminator.cs	(revision 12410)
+++ branches/TerminationCriteria/HeuristicLab.Termination/3.3/ComparisonTerminator.cs	(revision 12411)
@@ -71,4 +71,10 @@
       Comparison = comparison;
     }
+    public ComparisonTerminator(string comparisonValueActualName, ComparisonType comparison, IFixedValueParameter<T> thresholdParameter)
+      : this() {
+      ComparisonValueParameter.ActualName = comparisonValueActualName;
+      Comparison = comparison;
+      ThresholdParameter = thresholdParameter;
+    }
 
     private void Initialize() {
Index: branches/TerminationCriteria/HeuristicLab.Termination/3.3/HeuristicLab.Termination-3.3.csproj
===================================================================
--- branches/TerminationCriteria/HeuristicLab.Termination/3.3/HeuristicLab.Termination-3.3.csproj	(revision 12410)
+++ branches/TerminationCriteria/HeuristicLab.Termination/3.3/HeuristicLab.Termination-3.3.csproj	(revision 12411)
@@ -145,13 +145,12 @@
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="IThresholdTerminator.cs" />
-    <Compile Include="MaximumIterationsTerminator.cs" />
+    <Compile Include="ISingleValueTerminator.cs" />
     <Compile Include="SingleObjectiveQualityTerminator.cs" />
     <Compile Include="ThresholdTerminator.cs" />
-    <Compile Include="Views\ThresholdTerminatorView.cs">
+    <Compile Include="Views\SingleValueTerminatorView.cs">
       <SubType>UserControl</SubType>
     </Compile>
-    <Compile Include="Views\ThresholdTerminatorView.Designer.cs">
-      <DependentUpon>ThresholdTerminatorView.cs</DependentUpon>
+    <Compile Include="Views\SingleValueTerminatorView.Designer.cs">
+      <DependentUpon>SingleValueTerminatorView.cs</DependentUpon>
     </Compile>
     <Compile Include="ITerminator.cs" />
Index: branches/TerminationCriteria/HeuristicLab.Termination/3.3/ISingleValueTerminator.cs
===================================================================
--- branches/TerminationCriteria/HeuristicLab.Termination/3.3/ISingleValueTerminator.cs	(revision 12411)
+++ branches/TerminationCriteria/HeuristicLab.Termination/3.3/ISingleValueTerminator.cs	(revision 12411)
@@ -0,0 +1,28 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.Core;
+
+namespace HeuristicLab.Termination {
+  public interface ISingleValueTerminator : ITerminator {
+    IParameter ThresholdParameter { get; }
+  }
+}
Index: branches/TerminationCriteria/HeuristicLab.Termination/3.3/IThresholdTerminator.cs
===================================================================
--- branches/TerminationCriteria/HeuristicLab.Termination/3.3/IThresholdTerminator.cs	(revision 12410)
+++ 	(revision )
@@ -1,28 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using HeuristicLab.Core;
-
-namespace HeuristicLab.Termination {
-  public interface IThresholdTerminator : ITerminator {
-    IParameter ThresholdParameter { get; }
-  }
-}
Index: branches/TerminationCriteria/HeuristicLab.Termination/3.3/MaximumIterationsTerminator.cs
===================================================================
--- branches/TerminationCriteria/HeuristicLab.Termination/3.3/MaximumIterationsTerminator.cs	(revision 12410)
+++ 	(revision )
@@ -1,116 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System;
-using HeuristicLab.Common;
-using HeuristicLab.Core;
-using HeuristicLab.Data;
-using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-
-namespace HeuristicLab.Termination {
-  [Item("MaximumIterationsTerminator", "")]
-  [StorableClass]
-  public class MaximumIterationsTerminator : Terminator, IThresholdTerminator/*, IIterationBasedOperator*/ {
-    public ILookupParameter<IntValue> IterationsParameter {
-      get { return (ILookupParameter<IntValue>)Parameters["Iterations"]; }
-    }
-
-    [Storable]
-    private IFixedValueParameter<IntValue> maximumIterationsParameter;
-    public IFixedValueParameter<IntValue> MaximumIterationsParameter {
-      get { return maximumIterationsParameter; }
-      set {
-        if (value == null) throw new ArgumentNullException("MaximumIterations parameter must not be null.");
-        if (value.Value == null) throw new ArgumentNullException("MaximumIterations parameter value must not be null.");
-        if (maximumIterationsParameter == value) return;
-
-        if (maximumIterationsParameter != null) Parameters.Remove(maximumIterationsParameter);
-        maximumIterationsParameter = value;
-        Parameters.Add(maximumIterationsParameter);
-        OnMaximumIterationsParameterChanged();
-      }
-    }
-    IParameter IThresholdTerminator.ThresholdParameter {
-      get { return MaximumIterationsParameter; }
-    }
-
-    public int MaximumIterations {
-      get { return MaximumIterationsParameter.Value.Value; }
-      set { MaximumIterationsParameter.Value.Value = value; }
-    }
-
-
-    [StorableConstructor]
-    protected MaximumIterationsTerminator(bool deserializing) : base(deserializing) { }
-    [StorableHook(HookType.AfterDeserialization)]
-    private void AfterDeserialization() {
-      Initialize();
-    }
-    protected MaximumIterationsTerminator(MaximumIterationsTerminator original, Cloner cloner)
-      : base(original, cloner) {
-      Initialize();
-    }
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new MaximumIterationsTerminator(this, cloner);
-    }
-
-    public MaximumIterationsTerminator()
-      : base() {
-      Parameters.Add(new LookupParameter<IntValue>("Iterations", "The current iteration.") { Hidden = false });
-      Parameters.Add(new FixedValueParameter<IntValue>("MaximumIterations", "The maximum number of iterations the algorithm should perform."));
-      Initialize();
-    }
-
-    private void Initialize() {
-      IterationsParameter.ActualNameChanged += new EventHandler(IterationsParameter_ActualNameChanged);
-      RegisterMaximumIterationsParameterEvents();
-    }
-
-    private void MaximumIterations_ValueChanged(object sender, EventArgs e) {
-      OnMaximumIterationsChanged();
-    }
-    private void IterationsParameter_ActualNameChanged(object sender, EventArgs e) {
-      OnToStringChanged();
-    }
-
-    protected virtual void OnMaximumIterationsChanged() {
-      OnToStringChanged();
-    }
-    private void OnMaximumIterationsParameterChanged() {
-      RegisterMaximumIterationsParameterEvents();
-    }
-
-    private void RegisterMaximumIterationsParameterEvents() {
-      MaximumIterationsParameter.Value.ValueChanged += new EventHandler(MaximumIterations_ValueChanged);
-    }
-
-    protected override bool CheckContinueCriterion() {
-      int iterations = IterationsParameter.ActualValue.Value;
-
-      return iterations < MaximumIterations;
-    }
-
-    public override string ToString() {
-      return string.Format("{0} < {1}", IterationsParameter.ActualName, MaximumIterations);
-    }
-  }
-}
Index: branches/TerminationCriteria/HeuristicLab.Termination/3.3/SingleObjectiveQualityTerminator.cs
===================================================================
--- branches/TerminationCriteria/HeuristicLab.Termination/3.3/SingleObjectiveQualityTerminator.cs	(revision 12410)
+++ branches/TerminationCriteria/HeuristicLab.Termination/3.3/SingleObjectiveQualityTerminator.cs	(revision 12411)
@@ -27,7 +27,5 @@
   [Item("SingleObjectiveQualityTerminator", "")]
   public class SingleObjectiveQualityTerminator : ComparisonTerminator<DoubleValue> {
-    public SingleObjectiveQualityTerminator() {
-      Name = "Quality";
-    }
+    public SingleObjectiveQualityTerminator() { }
 
     public void Parameterize(IParameter qualityParameter, ISingleObjectiveHeuristicOptimizationProblem problem) {
Index: branches/TerminationCriteria/HeuristicLab.Termination/3.3/ThresholdTerminator.cs
===================================================================
--- branches/TerminationCriteria/HeuristicLab.Termination/3.3/ThresholdTerminator.cs	(revision 12410)
+++ branches/TerminationCriteria/HeuristicLab.Termination/3.3/ThresholdTerminator.cs	(revision 12411)
@@ -27,13 +27,24 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-
 namespace HeuristicLab.Termination {
   [Item("ThresholdTerminator", "Base class for all termination criteria which specifies some threshold.")]
   [StorableClass]
-  public abstract class ThresholdTerminator<T> : Terminator, IThresholdTerminator where T : class, IItem, IStringConvertibleValue, new() {
+  public abstract class ThresholdTerminator<T> : Terminator, ISingleValueTerminator where T : class, IItem, IStringConvertibleValue, new() {
+    [Storable]
+    private IFixedValueParameter<T> thresholdParameter;
     public IFixedValueParameter<T> ThresholdParameter {
-      get { return (IFixedValueParameter<T>)Parameters["Threshold"]; }
+      get { return thresholdParameter; }
+      set {
+        if (value == null) throw new ArgumentNullException("Threshold parameter must not be null.");
+        if (value.Value == null) throw new ArgumentNullException("Threshold parameter value must not be null.");
+        if (thresholdParameter == value) return;
+
+        if (thresholdParameter != null) Parameters.Remove(thresholdParameter);
+        thresholdParameter = value;
+        Parameters.Add(thresholdParameter);
+        OnThresholdParameterChanged();
+      }
     }
-    IParameter IThresholdTerminator.ThresholdParameter {
+    IParameter ISingleValueTerminator.ThresholdParameter {
       get { return ThresholdParameter; }
     }
@@ -51,4 +62,5 @@
     protected ThresholdTerminator(ThresholdTerminator<T> original, Cloner cloner)
       : base(original, cloner) {
+      thresholdParameter = cloner.Clone(original.thresholdParameter);
       Initialize();
     }
@@ -58,10 +70,11 @@
       : base() {
       if (threshold == null) throw new ArgumentNullException("threshold");
-      Parameters.Add(new FixedValueParameter<T>("Threshold", "The limit of the termiation criterion.", threshold));
+      thresholdParameter = new FixedValueParameter<T>("Threshold", "The limit of the termiation criterion.", threshold);
+      Parameters.Add(thresholdParameter);
       Initialize();
     }
 
     private void Initialize() {
-      Threshold.ValueChanged += new EventHandler(Threshold_ValueChanged);
+      RegisterThresholdParameterEvents();
     }
 
@@ -73,4 +86,12 @@
     }
 
+    private void OnThresholdParameterChanged() {
+      RegisterThresholdParameterEvents();
+    }
+
+    private void RegisterThresholdParameterEvents() {
+      Threshold.ValueChanged += new EventHandler(Threshold_ValueChanged);
+    }
+
     public override string ToString() {
       if (ThresholdParameter.Value == null) return Name;
Index: branches/TerminationCriteria/HeuristicLab.Termination/3.3/Views/SingleValueTerminatorView.Designer.cs
===================================================================
--- branches/TerminationCriteria/HeuristicLab.Termination/3.3/Views/SingleValueTerminatorView.Designer.cs	(revision 12411)
+++ branches/TerminationCriteria/HeuristicLab.Termination/3.3/Views/SingleValueTerminatorView.Designer.cs	(revision 12411)
@@ -0,0 +1,82 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+
+namespace HeuristicLab.Termination.Views {
+  partial class SingleValueTerminatorView {
+    /// <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.viewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
+      this.SuspendLayout();
+      // 
+      // viewHost
+      // 
+      this.viewHost.Caption = "View";
+      this.viewHost.Content = null;
+      this.viewHost.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.viewHost.Enabled = false;
+      this.viewHost.Location = new System.Drawing.Point(0, 0);
+      this.viewHost.Name = "viewHost";
+      this.viewHost.ReadOnly = false;
+      this.viewHost.Size = new System.Drawing.Size(150, 150);
+      this.viewHost.TabIndex = 0;
+      this.viewHost.ViewsLabelVisible = false;
+      this.viewHost.ViewType = null;
+      // 
+      // ThresholdTerminatorView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.viewHost);
+      this.Name = "ThresholdTerminatorView";
+      this.ResumeLayout(false);
+
+    }
+
+    #endregion
+
+    private HeuristicLab.MainForm.WindowsForms.ViewHost viewHost;
+  }
+}
Index: branches/TerminationCriteria/HeuristicLab.Termination/3.3/Views/SingleValueTerminatorView.cs
===================================================================
--- branches/TerminationCriteria/HeuristicLab.Termination/3.3/Views/SingleValueTerminatorView.cs	(revision 12411)
+++ branches/TerminationCriteria/HeuristicLab.Termination/3.3/Views/SingleValueTerminatorView.cs	(revision 12411)
@@ -0,0 +1,51 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.Core.Views;
+using HeuristicLab.MainForm;
+
+namespace HeuristicLab.Termination.Views {
+
+  [View("ThresholdTerminator View")]
+  [Content(typeof(ISingleValueTerminator), true)]
+  public partial class SingleValueTerminatorView : ItemView {
+
+    public new ISingleValueTerminator Content {
+      get { return (ISingleValueTerminator)base.Content; }
+      set { base.Content = value; }
+    }
+
+    public SingleValueTerminatorView() {
+      InitializeComponent();
+    }
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      viewHost.Content = null;
+      if (Content != null) {
+        if (Content.ThresholdParameter.ActualValue != null)
+          viewHost.Content = Content.ThresholdParameter.ActualValue;
+        else
+          viewHost.Content = Content.ThresholdParameter;
+      }
+    }
+  }
+}
Index: branches/TerminationCriteria/HeuristicLab.Termination/3.3/Views/ThresholdTerminatorView.Designer.cs
===================================================================
--- branches/TerminationCriteria/HeuristicLab.Termination/3.3/Views/ThresholdTerminatorView.Designer.cs	(revision 12410)
+++ 	(revision )
@@ -1,82 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System;
-using HeuristicLab.Core;
-using HeuristicLab.Data;
-
-namespace HeuristicLab.Termination.Views {
-  partial class ThresholdTerminatorView {
-    /// <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.viewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
-      this.SuspendLayout();
-      // 
-      // viewHost
-      // 
-      this.viewHost.Caption = "View";
-      this.viewHost.Content = null;
-      this.viewHost.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.viewHost.Enabled = false;
-      this.viewHost.Location = new System.Drawing.Point(0, 0);
-      this.viewHost.Name = "viewHost";
-      this.viewHost.ReadOnly = false;
-      this.viewHost.Size = new System.Drawing.Size(150, 150);
-      this.viewHost.TabIndex = 0;
-      this.viewHost.ViewsLabelVisible = false;
-      this.viewHost.ViewType = null;
-      // 
-      // ThresholdTerminatorView
-      // 
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-      this.Controls.Add(this.viewHost);
-      this.Name = "ThresholdTerminatorView";
-      this.ResumeLayout(false);
-
-    }
-
-    #endregion
-
-    private HeuristicLab.MainForm.WindowsForms.ViewHost viewHost;
-  }
-}
Index: branches/TerminationCriteria/HeuristicLab.Termination/3.3/Views/ThresholdTerminatorView.cs
===================================================================
--- branches/TerminationCriteria/HeuristicLab.Termination/3.3/Views/ThresholdTerminatorView.cs	(revision 12410)
+++ 	(revision )
@@ -1,51 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using HeuristicLab.Core.Views;
-using HeuristicLab.MainForm;
-
-namespace HeuristicLab.Termination.Views {
-
-  [View("ThresholdTerminator View")]
-  [Content(typeof(IThresholdTerminator), true)]
-  public partial class ThresholdTerminatorView : ItemView {
-
-    public new IThresholdTerminator Content {
-      get { return (IThresholdTerminator)base.Content; }
-      set { base.Content = value; }
-    }
-
-    public ThresholdTerminatorView() {
-      InitializeComponent();
-    }
-
-    protected override void OnContentChanged() {
-      base.OnContentChanged();
-      viewHost.Content = null;
-      if (Content != null) {
-        if (Content.ThresholdParameter.ActualValue != null)
-          viewHost.Content = Content.ThresholdParameter.ActualValue;
-        else
-          viewHost.Content = Content.ThresholdParameter;
-      }
-    }
-  }
-}
