Index: trunk/sources/HeuristicLab.GP.StructureIdentification.TimeSeries/3.3/StandardGP.cs
===================================================================
--- trunk/sources/HeuristicLab.GP.StructureIdentification.TimeSeries/3.3/StandardGP.cs	(revision 2319)
+++ trunk/sources/HeuristicLab.GP.StructureIdentification.TimeSeries/3.3/StandardGP.cs	(revision 2341)
@@ -25,112 +25,41 @@
 using HeuristicLab.Modeling;
 using HeuristicLab.Operators;
+using System;
 
 namespace HeuristicLab.GP.StructureIdentification.TimeSeries {
   public class StandardGP : HeuristicLab.GP.StructureIdentification.StandardGP, ITimeSeriesAlgorithm {
-    public override IOperator ProblemInjector {
-      get {
-        CombinedOperator algo = (CombinedOperator)Engine.OperatorGraph.InitialOperator;
-        return algo.OperatorGraph.InitialOperator.SubOperators[1];
-      }
-      set {
-        CombinedOperator algo = (CombinedOperator)Engine.OperatorGraph.InitialOperator;
-        algo.OperatorGraph.InitialOperator.RemoveSubOperator(1);
-        value.Name = "ProblemInjector";
-        algo.OperatorGraph.InitialOperator.AddSubOperator(value, 1);
-      }
+    public int MinTimeOffset {
+      get { return GetVariableInjector().GetVariable("MinTimeOffset").GetValue<IntData>().Data; }
+      set { GetVariableInjector().GetVariable("MinTimeOffset").GetValue<IntData>().Data = value; }
     }
-    
-    protected override IOperator CreateFunctionLibraryInjector() {
-      return new FunctionLibraryInjector();
+
+    public int MaxTimeOffset {
+      get { return GetVariableInjector().GetVariable("MaxTimeOffset").GetValue<IntData>().Data; }
+      set { GetVariableInjector().GetVariable("MaxTimeOffset").GetValue<IntData>().Data = value; }
+    }
+
+    public bool UseEstimatedTargetValue {
+      get { return GetVariableInjector().GetVariable("UseEstimatedTargetValue").GetValue<BoolData>().Data; }
+      set { GetVariableInjector().GetVariable("UseEstimatedTargetValue").GetValue<BoolData>().Data = value; }
     }
 
     protected override IOperator CreateProblemInjector() {
-      return new ProblemInjector();
+      return DefaultTimeSeriesOperators.CreateProblemInjector();
     }
 
-    protected override IOperator CreateBestSolutionProcessor() {
-      SequentialProcessor seq = new SequentialProcessor();
-      seq.AddSubOperator(base.CreateBestSolutionProcessor());
-      seq.AddSubOperator(BestSolutionProcessor);
-      return seq;
+    protected override IOperator CreateFunctionLibraryInjector() {
+      return DefaultTimeSeriesOperators.CreateFunctionLibraryInjector();
     }
 
-    public override IEditor CreateEditor() {
-      return new StandardGpEditor(this);
+    protected override IOperator CreatePostProcessingOperator() {
+      return DefaultTimeSeriesOperators.CreatePostProcessingOperator();
     }
 
-    public override IView CreateView() {
-      return new StandardGpEditor(this);
-    }
-
-    internal static IOperator BestSolutionProcessor {
-      get {
-        SequentialProcessor seq = new SequentialProcessor();
-        TheilInequalityCoefficientEvaluator trainingTheil = new TheilInequalityCoefficientEvaluator();
-        trainingTheil.GetVariableInfo("SamplesStart").ActualName = "ActualTrainingSamplesStart";
-        trainingTheil.GetVariableInfo("SamplesEnd").ActualName = "ActualTrainingSamplesEnd";
-        trainingTheil.GetVariableInfo("TheilInequalityCoefficient").ActualName = "TrainingTheilInequalityCoefficient";
-        trainingTheil.GetVariableInfo("TheilInequalityCoefficientBias").ActualName = "TrainingTheilInequalityCoefficientBias";
-        trainingTheil.GetVariableInfo("TheilInequalityCoefficientVariance").ActualName = "TrainingTheilInequalityCoefficientVariance";
-        trainingTheil.GetVariableInfo("TheilInequalityCoefficientCovariance").ActualName = "TrainingTheilInequalityCoefficientCovariance";
-
-        TheilInequalityCoefficientEvaluator validationTheil = new TheilInequalityCoefficientEvaluator();
-        validationTheil.GetVariableInfo("SamplesStart").ActualName = "ActualValidationSamplesStart";
-        validationTheil.GetVariableInfo("SamplesEnd").ActualName = "ActualValidationSamplesEnd";
-        validationTheil.GetVariableInfo("TheilInequalityCoefficient").ActualName = "ValidationTheilInequalityCoefficient";
-        validationTheil.GetVariableInfo("TheilInequalityCoefficientBias").ActualName = "ValidationTheilInequalityCoefficientBias";
-        validationTheil.GetVariableInfo("TheilInequalityCoefficientVariance").ActualName = "ValidationTheilInequalityCoefficientVariance";
-        validationTheil.GetVariableInfo("TheilInequalityCoefficientCovariance").ActualName = "ValidationTheilInequalityCoefficientCovariance";
-
-        TheilInequalityCoefficientEvaluator testTheil = new TheilInequalityCoefficientEvaluator();
-        testTheil.GetVariableInfo("SamplesStart").ActualName = "ActualTestSamplesStart";
-        testTheil.GetVariableInfo("SamplesEnd").ActualName = "ActualTestSamplesEnd";
-        testTheil.GetVariableInfo("TheilInequalityCoefficient").ActualName = "TestTheilInequalityCoefficient";
-        testTheil.GetVariableInfo("TheilInequalityCoefficientBias").ActualName = "TestTheilInequalityCoefficientBias";
-        testTheil.GetVariableInfo("TheilInequalityCoefficientVariance").ActualName = "TestTheilInequalityCoefficientVariance";
-        testTheil.GetVariableInfo("TheilInequalityCoefficientCovariance").ActualName = "TestTheilInequalityCoefficientCovariance";
-
-        SimpleEvaluator trainingEvaluator = new SimpleEvaluator();
-        trainingEvaluator.GetVariableInfo("SamplesStart").ActualName = "ActualTrainingSamplesStart";
-        trainingEvaluator.GetVariableInfo("SamplesEnd").ActualName = "ActualTrainingSamplesEnd";
-        trainingEvaluator.GetVariableInfo("Values").ActualName = "PredictedValuesTraining";
-
-        SimpleEvaluator validationEvaluator = new SimpleEvaluator();
-        validationEvaluator.GetVariableInfo("SamplesStart").ActualName = "ValidationSamplesStart";
-        validationEvaluator.GetVariableInfo("SamplesEnd").ActualName = "ValidationSamplesEnd";
-        validationEvaluator.GetVariableInfo("Values").ActualName = "PredictedValuesValidation";
-
-        SimpleEvaluator testEvaluator = new SimpleEvaluator();
-        testEvaluator.GetVariableInfo("SamplesStart").ActualName = "TestSamplesStart";
-        testEvaluator.GetVariableInfo("SamplesEnd").ActualName = "TestSamplesEnd";
-        testEvaluator.GetVariableInfo("Values").ActualName = "PredictedValuesTest";
-
-        LinechartInjector trainingChartInjector = new LinechartInjector();
-        trainingChartInjector.GetVariableValue<IntData>("NumberOfLines", null, false).Data = 2;
-        trainingChartInjector.GetVariableInfo("Values").ActualName = "PredictedValuesTraining";
-        trainingChartInjector.GetVariableInfo("Linechart").ActualName = "LinechartTrainingPredictedValues";
-
-        LinechartInjector validationChartInjector = new LinechartInjector();
-        validationChartInjector.GetVariableValue<IntData>("NumberOfLines", null, false).Data = 2;
-        validationChartInjector.GetVariableInfo("Values").ActualName = "PredictedValuesValidation";
-        validationChartInjector.GetVariableInfo("Linechart").ActualName = "LinechartValidationPredictedValues";
-
-        LinechartInjector testChartInjector = new LinechartInjector();
-        testChartInjector.GetVariableValue<IntData>("NumberOfLines", null, false).Data = 2;
-        testChartInjector.GetVariableInfo("Values").ActualName = "PredictedValuesTest";
-        testChartInjector.GetVariableInfo("Linechart").ActualName = "LinechartTestPredictedValues";
-
-        seq.AddSubOperator(trainingTheil);
-        seq.AddSubOperator(validationTheil);
-        seq.AddSubOperator(testTheil);
-        seq.AddSubOperator(trainingEvaluator);
-        seq.AddSubOperator(trainingChartInjector);
-        seq.AddSubOperator(validationEvaluator);
-        seq.AddSubOperator(validationChartInjector);
-        seq.AddSubOperator(testEvaluator);
-        seq.AddSubOperator(testChartInjector);
-
-        return seq;
-      }
+    protected override VariableInjector CreateGlobalInjector() {
+      VariableInjector injector = base.CreateGlobalInjector();
+      injector.AddVariable(new HeuristicLab.Core.Variable("MinTimeOffset", new IntData()));
+      injector.AddVariable(new HeuristicLab.Core.Variable("MaxTimeOffset", new IntData()));
+      injector.AddVariable(new HeuristicLab.Core.Variable("UseEstimatedTargetValue", new BoolData()));
+      return injector;
     }
   }
