Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
07/19/17 14:32:57 (7 years ago)
Author:
pfleck
Message:

#2809:

  • Removed FilterLogic.
  • Made Contents storable and implemented proper cloning.
Location:
branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing/3.4
Files:
1 added
1 deleted
18 edited

Legend:

Unmodified
Added
Removed
  • branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing/3.4/Content/CorrelationMatrixContent.cs

    r15270 r15274  
    2323using HeuristicLab.Common;
    2424using HeuristicLab.Core;
     25using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2526using HeuristicLab.Problems.DataAnalysis;
    2627
    2728namespace HeuristicLab.DataPreprocessing {
    2829  [Item("Feature Correlation Matrix", "Represents the feature correlation matrix.")]
    29   public class CorrelationMatrixContent : Item, IViewShortcut {
     30  [StorableClass]
     31  public class CorrelationMatrixContent : PreprocessingContent, IViewShortcut {
    3032    public static new Image StaticItemImage {
    3133      get { return HeuristicLab.Common.Resources.VSImageLibrary.Gradient; }
    3234    }
    3335
     36    [Storable]
    3437    public PreprocessingContext Context { get; private set; }
    35     public IPreprocessingData PreprocessingData {
    36       get { return Context.Data; }
    37     }
     38
    3839
    3940    public DataAnalysisProblemData ProblemData {
     
    4748    }
    4849
    49     public CorrelationMatrixContent(PreprocessingContext context) {
     50    #region Constructor, Cloning & Persistence
     51    public CorrelationMatrixContent(PreprocessingContext context)
     52      : base(context.Data) {
    5053      Context = context;
    5154    }
     
    5558      Context = original.Context;
    5659    }
    57 
    5860    public override IDeepCloneable Clone(Cloner cloner) {
    5961      return new CorrelationMatrixContent(this, cloner);
    6062    }
     63
     64    [StorableConstructor]
     65    protected CorrelationMatrixContent(bool deserializing)
     66      : base(deserializing) { }
     67    #endregion
    6168
    6269    public event DataPreprocessingChangedEventHandler Changed {
  • branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing/3.4/Content/DataCompletenessChartContent.cs

    r15270 r15274  
    2323using HeuristicLab.Common;
    2424using HeuristicLab.Core;
     25using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2526
    2627namespace HeuristicLab.DataPreprocessing {
    2728  [Item("Data Completeness Chart", "Represents a datacompleteness chart.")]
    28 
    29   public class DataCompletenessChartContent : Item, IViewShortcut {
     29  [StorableClass]
     30  public class DataCompletenessChartContent : PreprocessingContent, IViewShortcut {
    3031    public static new Image StaticItemImage {
    3132      get { return HeuristicLab.Common.Resources.VSImageLibrary.EditBrightnessContrast; }
    3233    }
    3334
    34     public IPreprocessingData PreprocessingData { get; private set; }
    35 
    36     public DataCompletenessChartContent(IPreprocessingData preprocessingData) {
    37       PreprocessingData = preprocessingData;
     35    #region Constructor, Cloning & Persistence
     36    public DataCompletenessChartContent(IFilteredPreprocessingData preprocessingData)
     37      : base(preprocessingData) {
    3838    }
    3939
    4040    public DataCompletenessChartContent(DataCompletenessChartContent content, Cloner cloner)
    4141      : base(content, cloner) {
    42       PreprocessingData = content.PreprocessingData;
    4342    }
    44 
    4543    public override IDeepCloneable Clone(Cloner cloner) {
    4644      return new DataCompletenessChartContent(this, cloner);
    4745    }
     46
     47    [StorableConstructor]
     48    protected DataCompletenessChartContent(bool deserializing)
     49      : base(deserializing) { }
     50    #endregion
    4851  }
    4952}
  • branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing/3.4/Content/DataGridContent.cs

    r15270 r15274  
    2727using HeuristicLab.Core;
    2828using HeuristicLab.Data;
     29using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2930
    3031namespace HeuristicLab.DataPreprocessing {
    31 
    3232  [Item("Data Grid", "Represents a data grid.")]
    33   public class DataGridContent : Item, IStringConvertibleMatrix, IViewShortcut {
     33  [StorableClass]
     34  public class DataGridContent : PreprocessingContent, IStringConvertibleMatrix, IViewShortcut {
    3435    public static new Image StaticItemImage {
    3536      get { return HeuristicLab.Common.Resources.VSImageLibrary.Table; }
    3637    }
    3738
    38     public IPreprocessingData PreprocessingData { get; private set; }
    39 
     39    [Storable]
    4040    public ManipulationLogic ManipulationLogic { get; private set; }
    41     public FilterLogic FilterLogic { get; private set; }
    4241
    4342    public int Rows {
     
    7574    }
    7675
    77     public DataGridContent(IPreprocessingData preprocessingData, ManipulationLogic theManipulationLogic, FilterLogic theFilterLogic) {
    78       ManipulationLogic = theManipulationLogic;
    79       FilterLogic = theFilterLogic;
    80       PreprocessingData = preprocessingData;
     76    #region Constructor, Cloning & Persistence
     77    public DataGridContent(IFilteredPreprocessingData preprocessingData, ManipulationLogic manipulationLogic)
     78      : base(preprocessingData) {
     79      ManipulationLogic = manipulationLogic;
    8180    }
    8281
    83     public DataGridContent(DataGridContent dataGridContent, Cloner cloner)
    84       : base(dataGridContent, cloner) {
    85 
     82    public DataGridContent(DataGridContent original, Cloner cloner)
     83      : base(original, cloner) {
     84      ManipulationLogic = cloner.Clone(original.ManipulationLogic);
    8685    }
    8786    public override IDeepCloneable Clone(Cloner cloner) {
    8887      return new DataGridContent(this, cloner);
    8988    }
     89
     90    [StorableConstructor]
     91    protected DataGridContent(bool deserializing)
     92      : base(deserializing) { }
     93    #endregion
    9094
    9195    public void DeleteRows(IEnumerable<int> rows) {
  • branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing/3.4/Content/FilterContent.cs

    r15110 r15274  
    2424using HeuristicLab.Core;
    2525using HeuristicLab.DataPreprocessing.Filter;
     26using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2627
    2728namespace HeuristicLab.DataPreprocessing {
    2829  [Item("Filter", "Represents the filter grid.")]
    29   public class FilterContent : Item, IViewShortcut {
     30  [StorableClass]
     31  public class FilterContent : PreprocessingContent, IViewShortcut {
    3032    public static new Image StaticItemImage {
    3133      get { return HeuristicLab.Common.Resources.VSImageLibrary.Filter; }
    3234    }
    33 
    34     public FilterLogic FilterLogic { get; private set; }
    35 
     35    [Storable]
    3636    public ICheckedItemCollection<IFilter> Filters { get; private set; }
    3737
     38    [Storable]
    3839    public bool IsAndCombination { get; set; }
    3940
    40     public FilterContent(FilterLogic filterLogic) {
     41    #region Constructor, Cloning & Persistence
     42    public FilterContent(IFilteredPreprocessingData preprocessingData)
     43      : base(preprocessingData) {
    4144      Filters = new CheckedItemCollection<IFilter>();
    4245      IsAndCombination = true;
    43       FilterLogic = filterLogic;
    4446    }
    4547
    46     protected FilterContent(FilterContent content, Cloner cloner)
    47       : base(content, cloner) {
     48    protected FilterContent(FilterContent original, Cloner cloner)
     49      : base(original, cloner) {
     50      Filters = cloner.Clone(original.Filters);
     51      IsAndCombination = original.IsAndCombination;
    4852    }
    49 
    5053    public override IDeepCloneable Clone(Cloner cloner) {
    5154      return new FilterContent(this, cloner);
    5255    }
     56
     57    [StorableConstructor]
     58    protected FilterContent(bool deserializing)
     59      : base(deserializing) { }
     60    #endregion
    5361  }
    5462}
  • branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing/3.4/Content/HistogramContent.cs

    r15210 r15274  
    2626using HeuristicLab.Common;
    2727using HeuristicLab.Core;
     28using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2829
    2930namespace HeuristicLab.DataPreprocessing {
    3031  [Item("Histogram", "Represents the histogram grid.")]
     32  [StorableClass]
    3133  public class HistogramContent : PreprocessingChartContent {
    3234    public static new Image StaticItemImage {
     
    3436    }
    3537
     38    [Storable]
    3639    public string GroupingVariableName { get; set; }
    3740
     41    [Storable]
    3842    public int Bins { get; set; }
     43    [Storable]
    3944    public bool ExactBins { get; set; }
    4045
     46    [Storable]
    4147    public LegendOrder Order { get; set; }
    4248
     49    #region Constructor, Cloning & Persistence
    4350    public HistogramContent(IFilteredPreprocessingData preprocessingData)
    4451      : base(preprocessingData) {
     
    4754    }
    4855
    49     public HistogramContent(HistogramContent content, Cloner cloner)
    50       : base(content, cloner) {
     56    public HistogramContent(HistogramContent original, Cloner cloner)
     57      : base(original, cloner) {
     58      GroupingVariableName = original.GroupingVariableName;
     59      Bins = original.Bins;
     60      ExactBins = original.ExactBins;
     61      Order = original.Order;
    5162    }
    5263    public override IDeepCloneable Clone(Cloner cloner) {
    5364      return new HistogramContent(this, cloner);
    5465    }
     66
     67    [StorableConstructor]
     68    protected HistogramContent(bool deserializing)
     69      : base(deserializing) { }
     70    #endregion
    5571
    5672    public static DataTable CreateHistogram(IFilteredPreprocessingData preprocessingData, string variableName, string groupingVariableName, DataTableVisualProperties.DataTableHistogramAggregation aggregation, LegendOrder legendOrder = LegendOrder.Alphabetically) {
  • branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing/3.4/Content/LineChartContent.cs

    r15110 r15274  
    2323using HeuristicLab.Common;
    2424using HeuristicLab.Core;
     25using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2526
    2627namespace HeuristicLab.DataPreprocessing {
    27 
    2828  [Item("Line Chart", "Represents the line chart grid.")]
     29  [StorableClass]
    2930  public class LineChartContent : PreprocessingChartContent {
    30     public bool AllInOneMode { get; set; }
    31 
    3231    public static new Image StaticItemImage {
    3332      get { return HeuristicLab.Common.Resources.VSImageLibrary.Performance; }
    3433    }
    3534
     35    [Storable]
     36    public bool AllInOneMode { get; set; }
     37
     38
     39    #region Constructor, Cloning & Persistence
    3640    public LineChartContent(IFilteredPreprocessingData preprocessingData)
    3741      : base(preprocessingData) {
     
    3943    }
    4044
    41     public LineChartContent(LineChartContent content, Cloner cloner)
    42       : base(content, cloner) {
    43       this.AllInOneMode = content.AllInOneMode;
     45    public LineChartContent(LineChartContent original, Cloner cloner)
     46      : base(original, cloner) {
     47      AllInOneMode = original.AllInOneMode;
    4448    }
    4549    public override IDeepCloneable Clone(Cloner cloner) {
    4650      return new LineChartContent(this, cloner);
    4751    }
     52
     53    [StorableConstructor]
     54    protected LineChartContent(bool deserializing)
     55      : base(deserializing) { }
     56    #endregion
    4857  }
    4958}
  • branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing/3.4/Content/ManipulationContent.cs

    r15269 r15274  
    2323using HeuristicLab.Common;
    2424using HeuristicLab.Core;
     25using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2526
    2627namespace HeuristicLab.DataPreprocessing {
    27 
    2828  [Item("Manipulation", "Represents the available manipulations on a data set.")]
    29   public class ManipulationContent : Item, IViewShortcut {
     29  [StorableClass]
     30  public class ManipulationContent : PreprocessingContent, IViewShortcut {
    3031    public static new Image StaticItemImage {
    3132      get { return HeuristicLab.Common.Resources.VSImageLibrary.Method; }
    3233    }
    3334
     35    [Storable]
    3436    public ManipulationLogic ManipulationLogic { get; private set; }
    35     public FilterLogic FilterLogic { get; private set; }
    3637
    37     public ManipulationContent(ManipulationLogic manipulationLogic, FilterLogic filterLogic) {
     38    #region Constructor, Cloning & Persistence
     39    public ManipulationContent(IFilteredPreprocessingData preprocessingData, ManipulationLogic manipulationLogic)
     40      : base(preprocessingData) {
    3841      ManipulationLogic = manipulationLogic;
    39       FilterLogic = filterLogic;
    4042    }
    4143
    42     public ManipulationContent(ManipulationContent content, Cloner cloner) : base(content, cloner) { }
    43 
     44    public ManipulationContent(ManipulationContent original, Cloner cloner) :
     45      base(original, cloner) {
     46      ManipulationLogic = cloner.Clone(original.ManipulationLogic);
     47    }
    4448    public override IDeepCloneable Clone(Cloner cloner) {
    4549      return new ManipulationContent(this, cloner);
    4650    }
     51
     52    [StorableConstructor]
     53    protected ManipulationContent(bool deserializing)
     54      : base(deserializing) { }
     55    #endregion
    4756  }
    4857}
  • branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing/3.4/Content/MultiScatterPlotContent.cs

    r15110 r15274  
    2323using HeuristicLab.Common;
    2424using HeuristicLab.Core;
     25using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2526
    2627namespace HeuristicLab.DataPreprocessing {
    27 
    2828  [Item("Multi Scatter Plot", "Represents a multi scatter plot.")]
     29  [StorableClass]
    2930  public class MultiScatterPlotContent : ScatterPlotContent {
    3031    public static new Image StaticItemImage {
     
    3233    }
    3334
     35    #region Constructor, Cloning & Persistence
    3436    public MultiScatterPlotContent(IFilteredPreprocessingData preprocessingData)
    3537      : base(preprocessingData) {
    3638    }
    3739
    38     public MultiScatterPlotContent(MultiScatterPlotContent content, Cloner cloner)
    39       : base(content, cloner) {
     40    public MultiScatterPlotContent(MultiScatterPlotContent original, Cloner cloner)
     41      : base(original, cloner) {
    4042    }
    41 
    4243    public override IDeepCloneable Clone(Cloner cloner) {
    4344      return new MultiScatterPlotContent(this, cloner);
    4445    }
     46
     47    [StorableConstructor]
     48    protected MultiScatterPlotContent(bool deserializing)
     49      : base(deserializing) { }
     50    #endregion
    4551  }
    4652}
  • branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing/3.4/Content/PreprocessingChartContent.cs

    r15210 r15274  
    2929using HeuristicLab.Core;
    3030using HeuristicLab.Data;
     31using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    3132
    3233namespace HeuristicLab.DataPreprocessing {
    3334  [Item("PreprocessingChart", "Represents a preprocessing chart.")]
    34   public class PreprocessingChartContent : Item, IViewShortcut {
     35  [StorableClass]
     36  public class PreprocessingChartContent : PreprocessingContent, IViewShortcut {
    3537    public enum LegendOrder {
    3638      Alphabetically,
     
    4244    }
    4345
    44     private ICheckedItemList<StringValue> variableItemList = null;
     46    [Storable]
     47    private ICheckedItemList<StringValue> variableItemList;
    4548    public ICheckedItemList<StringValue> VariableItemList {
    4649      get {
    4750        if (variableItemList == null)
    4851          variableItemList = CreateVariableItemList(PreprocessingData);
    49         return this.variableItemList;
     52        return variableItemList;
    5053      }
    5154    }
    5255
    53     public IFilteredPreprocessingData PreprocessingData { get; private set; }
    5456    public event DataPreprocessingChangedEventHandler Changed {
    5557      add { PreprocessingData.Changed += value; }
     
    5759    }
    5860
    59     public PreprocessingChartContent(IFilteredPreprocessingData preprocessingData) {
    60       PreprocessingData = preprocessingData;
     61    #region Constructor, Cloning & Persistence
     62    public PreprocessingChartContent(IFilteredPreprocessingData preprocessingData)
     63       : base(preprocessingData) {
    6164    }
    6265
    63     public PreprocessingChartContent(PreprocessingChartContent content, Cloner cloner)
    64       : base(content, cloner) {
    65       this.PreprocessingData = content.PreprocessingData;
    66       this.variableItemList = cloner.Clone<ICheckedItemList<StringValue>>(variableItemList);
     66    public PreprocessingChartContent(PreprocessingChartContent original, Cloner cloner)
     67      : base(original, cloner) {
     68      variableItemList = cloner.Clone(original.variableItemList);
    6769    }
    6870    public override IDeepCloneable Clone(Cloner cloner) {
    6971      return new PreprocessingChartContent(this, cloner);
    7072    }
     73
     74    [StorableConstructor]
     75    protected PreprocessingChartContent(bool deserializing)
     76      : base(deserializing) { }
     77    #endregion
    7178
    7279    public DataRow CreateDataRow(string variableName, DataRowVisualProperties.DataRowChartType chartType) {
  • branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing/3.4/Content/ScatterPlotContent.cs

    r15210 r15274  
    2525using HeuristicLab.Analysis;
    2626using HeuristicLab.Common;
     27using HeuristicLab.Core;
     28using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2729using HeuristicLab.Visualization.ChartControlsExtensions;
    2830
    2931namespace HeuristicLab.DataPreprocessing {
    30 
     32  [Item("ScatterPlotContent", "")]
     33  [StorableClass]
    3134  public abstract class ScatterPlotContent : PreprocessingChartContent {
     35    [Storable]
    3236    public string GroupingVariable { get; set; }
    3337
     38    #region Constructor, Cloning & Persistence
    3439    protected ScatterPlotContent(IFilteredPreprocessingData preprocessingData)
    3540      : base(preprocessingData) {
    3641    }
    3742
    38     protected ScatterPlotContent(ScatterPlotContent content, Cloner cloner)
    39       : base(content, cloner) {
     43    protected ScatterPlotContent(ScatterPlotContent original, Cloner cloner)
     44      : base(original, cloner) {
     45      GroupingVariable = original.GroupingVariable;
    4046    }
     47
     48    [StorableConstructor]
     49    protected ScatterPlotContent(bool deserializing)
     50      : base(deserializing) { }
     51    #endregion
    4152
    4253    public static ScatterPlot CreateScatterPlot(IFilteredPreprocessingData preprocessingData, string variableNameX, string variableNameY, string variableNameGroup = "-", LegendOrder legendOrder = LegendOrder.Alphabetically) {
  • branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing/3.4/Content/SingleScatterPlotContent.cs

    r15110 r15274  
    2323using HeuristicLab.Common;
    2424using HeuristicLab.Core;
     25using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2526
    2627namespace HeuristicLab.DataPreprocessing {
    27 
    2828  [Item("Scatter Plot", "Represents a scatter plot.")]
     29  [StorableClass]
    2930  public class SingleScatterPlotContent : ScatterPlotContent {
    3031    public static new Image StaticItemImage {
     
    3233    }
    3334
     35    [Storable]
    3436    public string SelectedXVariable { get; set; }
     37    [Storable]
    3538    public string SelectedYVariable { get; set; }
    3639
     40    #region Constructor, Cloning & Persistence
    3741    public SingleScatterPlotContent(IFilteredPreprocessingData preprocessingData)
    3842      : base(preprocessingData) {
    3943    }
    4044
    41     public SingleScatterPlotContent(SingleScatterPlotContent content, Cloner cloner)
    42       : base(content, cloner) {
    43       this.SelectedXVariable = content.SelectedXVariable;
    44       this.SelectedYVariable = content.SelectedYVariable;
    45       this.GroupingVariable = content.GroupingVariable;
     45    public SingleScatterPlotContent(SingleScatterPlotContent original, Cloner cloner)
     46      : base(original, cloner) {
     47      SelectedXVariable = original.SelectedXVariable;
     48      SelectedYVariable = original.SelectedYVariable;
    4649    }
    47 
    4850    public override IDeepCloneable Clone(Cloner cloner) {
    4951      return new SingleScatterPlotContent(this, cloner);
    5052    }
     53
     54    [StorableConstructor]
     55    protected SingleScatterPlotContent(bool deserializing)
     56      : base(deserializing) { }
     57    #endregion
    5158  }
    5259}
  • branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing/3.4/Content/StatisticsContent.cs

    r15270 r15274  
    2323using HeuristicLab.Common;
    2424using HeuristicLab.Core;
     25using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2526
    2627namespace HeuristicLab.DataPreprocessing {
    2728  [Item("Statistics", "Represents the statistics grid.")]
    28   public class StatisticsContent : Item, IViewShortcut {
     29  [StorableClass]
     30  public class StatisticsContent : PreprocessingContent, IViewShortcut {
    2931    public static new Image StaticItemImage {
    3032      get { return HeuristicLab.Common.Resources.VSImageLibrary.Object; }
    3133    }
    3234
    33     public IPreprocessingData PreprocessingData { get; private set; }
     35    [Storable]
    3436    public StatisticsLogic StatisticsLogic { get; private set; }
    3537
    36     public StatisticsContent(IPreprocessingData preProcessingData, StatisticsLogic statisticsLogic) {
    37       PreprocessingData = preProcessingData;
     38    #region Constructor, Cloning & Persistence
     39    public StatisticsContent(IFilteredPreprocessingData preprocessingData, StatisticsLogic statisticsLogic)
     40      : base(preprocessingData) {
    3841      StatisticsLogic = statisticsLogic;
    3942    }
    4043
    41     public StatisticsContent(StatisticsContent content, Cloner cloner)
    42       : base(content, cloner) {
     44    public StatisticsContent(StatisticsContent original, Cloner cloner)
     45      : base(original, cloner) {
     46      StatisticsLogic = cloner.Clone(original.StatisticsLogic);
    4347    }
    44 
    4548    public override IDeepCloneable Clone(Cloner cloner) {
    4649      return new StatisticsContent(this, cloner);
    4750    }
     51
     52    [StorableConstructor]
     53    protected StatisticsContent(bool deserializing)
     54      : base(deserializing) { }
     55    #endregion
    4856
    4957    public event DataPreprocessingChangedEventHandler Changed {
  • branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing/3.4/Content/TransformationContent.cs

    r15110 r15274  
    2323using HeuristicLab.Common;
    2424using HeuristicLab.Core;
     25using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2526using HeuristicLab.Problems.DataAnalysis;
    2627
    2728namespace HeuristicLab.DataPreprocessing {
    2829  [Item("Transformation", "Represents the transformation grid.")]
    29   public class TransformationContent : Item, IViewShortcut {
     30  [StorableClass]
     31  public class TransformationContent : PreprocessingContent, IViewShortcut {
    3032    public static new Image StaticItemImage {
    3133      get { return HeuristicLab.Common.Resources.VSImageLibrary.Method; }
    3234    }
    3335
    34     public IPreprocessingData Data { get; private set; }
    35     public FilterLogic FilterLogic { get; private set; }
    36 
     36    [Storable]
    3737    public ICheckedItemList<ITransformation> CheckedTransformationList { get; private set; }
    3838
    39     public TransformationContent(IPreprocessingData data, FilterLogic filterLogic) {
    40       Data = data;
     39    #region Constructor, Cloning & Persistence
     40    public TransformationContent(IFilteredPreprocessingData preprocessingData)
     41      : base(preprocessingData) {
    4142      CheckedTransformationList = new CheckedItemList<ITransformation>();
    42       FilterLogic = filterLogic;
    4343    }
    4444
    4545    public TransformationContent(TransformationContent original, Cloner cloner)
    4646      : base(original, cloner) {
    47       Data = original.Data;
    48       CheckedTransformationList = new CheckedItemList<ITransformation>(original.CheckedTransformationList);
     47      CheckedTransformationList = cloner.Clone(original.CheckedTransformationList);
    4948    }
    50 
    5149    public override IDeepCloneable Clone(Cloner cloner) {
    5250      return new TransformationContent(this, cloner);
    5351    }
     52
     53    [StorableConstructor]
     54    protected TransformationContent(bool deserializing)
     55      : base(deserializing) { }
     56    #endregion
    5457  }
    5558}
  • branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing/3.4/Data/FilteredPreprocessingData.cs

    r15270 r15274  
    4242    }
    4343
    44     #region Constructor, Cloning & Persistance
     44    #region Constructor, Cloning & Persistence
    4545    public FilteredPreprocessingData(IPreprocessingData preporcessingData)
    4646      : base() {
  • branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing/3.4/Data/PreprocessingData.cs

    r15270 r15274  
    4242    protected IList<string> variableNames;
    4343
    44     #region Constructor, Cloning & Persistance
     44    #region Constructor, Cloning & Persistence
    4545    public PreprocessingData(IDataAnalysisProblemData problemData)
    4646      : base() {
  • branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing/3.4/HeuristicLab.DataPreprocessing-3.4.csproj

    r15270 r15274  
    119119  <ItemGroup>
    120120    <Compile Include="Content\MultiScatterPlotContent.cs" />
     121    <Compile Include="Content\PreprocessingContent.cs" />
    121122    <Compile Include="Content\SingleScatterPlotContent.cs" />
    122123    <Compile Include="Content\ScatterPlotContent.cs" />
     
    135136    <Compile Include="Data\IPreprocessingData.cs" />
    136137    <Compile Include="Content\FilterContent.cs" />
    137     <Compile Include="Logic\FilterLogic.cs" />
    138138    <Compile Include="Content\HistogramContent.cs" />
    139139    <Compile Include="Content\LineChartContent.cs" />
  • branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing/3.4/Logic/ManipulationLogic.cs

    r15270 r15274  
    2323using System.Collections.Generic;
    2424using System.Linq;
     25using HeuristicLab.Common;
     26using HeuristicLab.Core;
    2527using HeuristicLab.Data;
     28using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2629using HeuristicLab.Random;
    2730
    2831namespace HeuristicLab.DataPreprocessing {
    29   public class ManipulationLogic {
    30     private readonly IPreprocessingData preprocessingData;
     32  [Item("ManipulationLogic", "")]
     33  [StorableClass]
     34  public class ManipulationLogic : Item {
     35
     36    [Storable]
     37    private readonly IFilteredPreprocessingData preprocessingData;
     38
     39    [Storable]
    3140    private readonly StatisticsLogic statisticsLogic;
    3241
     
    3544    }
    3645
    37     public IPreprocessingData PreProcessingData {
     46    public IFilteredPreprocessingData PreProcessingData {
    3847      get { return preprocessingData; }
    3948    }
    4049
    41     public ManipulationLogic(IPreprocessingData preprocessingData, StatisticsLogic theStatisticsLogic) {
     50    #region Constructor, Cloning & Persistence
     51    public ManipulationLogic(IFilteredPreprocessingData preprocessingData, StatisticsLogic theStatisticsLogic) {
    4252      this.preprocessingData = preprocessingData;
    4353      statisticsLogic = theStatisticsLogic;
    4454    }
     55    public ManipulationLogic(ManipulationLogic original, Cloner cloner)
     56      : base(original, cloner) {
     57      preprocessingData = cloner.Clone(original.preprocessingData);
     58      statisticsLogic = cloner.Clone(original.statisticsLogic);
     59    }
     60    public override IDeepCloneable Clone(Cloner cloner) {
     61      return new ManipulationLogic(this, cloner);
     62    }
     63
     64    [StorableConstructor]
     65    protected ManipulationLogic(bool deserializing)
     66      : base(deserializing) { }
     67    #endregion
    4568
    4669    public void ReplaceIndicesByValue<T>(int columnIndex, IEnumerable<int> rowIndices, T value) {
     
    123146      for (int i = 0; i < count; ++i) {
    124147        if (start == int.MinValue) {
    125           start = indexOfPrevPresentValue(column.Key, rowIndices[i]);
     148          start = IndexOfPrevPresentValue(column.Key, rowIndices[i]);
    126149        }
    127150        if (i + 1 == count || (i + 1 < count && rowIndices[i + 1] - rowIndices[i] > 1)) {
    128           int next = indexOfNextPresentValue(column.Key, rowIndices[i]);
     151          int next = IndexOfNextPresentValue(column.Key, rowIndices[i]);
    129152          if (start > 0 && next < preprocessingData.Rows) {
    130153            startEndings.Add(new Tuple<int, int>(start, next));
     
    144167            // dont replace first or last values
    145168            if (index > 0 && index < countValues) {
    146               int prevIndex = indexOfPrevPresentValue(column.Key, index);
    147               int nextIndex = indexOfNextPresentValue(column.Key, index);
     169              int prevIndex = IndexOfPrevPresentValue(column.Key, index);
     170              int nextIndex = IndexOfNextPresentValue(column.Key, index);
    148171
    149172              // no neighbours found
     
    183206    }
    184207
    185     private int indexOfPrevPresentValue(int columnIndex, int start) {
     208    private int IndexOfPrevPresentValue(int columnIndex, int start) {
    186209      int offset = start - 1;
    187210      while (offset >= 0 && preprocessingData.IsCellEmpty(columnIndex, offset)) {
     
    192215    }
    193216
    194     private int indexOfNextPresentValue(int columnIndex, int start) {
     217    private int IndexOfNextPresentValue(int columnIndex, int start) {
    195218      int offset = start + 1;
    196219      while (offset < preprocessingData.Rows && preprocessingData.IsCellEmpty(columnIndex, offset)) {
  • branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing/3.4/Logic/StatisticsLogic.cs

    r15270 r15274  
    2424using System.Linq;
    2525using HeuristicLab.Common;
     26using HeuristicLab.Core;
     27using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2628
    2729namespace HeuristicLab.DataPreprocessing {
    28   public class StatisticsLogic {
     30  [Item("StatisticsLogic", "")]
     31  [StorableClass]
     32  public class StatisticsLogic : Item {
     33    [Storable]
    2934    private readonly IPreprocessingData preprocessingData;
    3035
     36    #region Constructor, Cloning & Persistence
    3137    public StatisticsLogic(IPreprocessingData preprocessingData) {
    3238      this.preprocessingData = preprocessingData;
    3339    }
    34 
    35     public int GetColumnCount() {
    36       return preprocessingData.Columns;
    37     }
    38 
    39     public int GetRowCount() {
    40       return preprocessingData.Rows;
    41     }
    42 
    43     public int GetNumericColumnCount() {
    44       int count = 0;
    45 
    46       for (int i = 0; i < preprocessingData.Columns; ++i) {
    47         if (preprocessingData.VariableHasType<double>(i)) {
    48           ++count;
    49         }
    50       }
    51       return count;
    52     }
    53 
    54     public int GetNominalColumnCount() {
    55       return preprocessingData.Columns - GetNumericColumnCount();
    56     }
     40    public StatisticsLogic(StatisticsLogic original, Cloner cloner)
     41      : base(original, cloner) {
     42      preprocessingData = cloner.Clone(original.preprocessingData);
     43    }
     44    public override IDeepCloneable Clone(Cloner cloner) {
     45      return new StatisticsLogic(this, cloner);
     46    }
     47
     48    [StorableConstructor]
     49    protected StatisticsLogic(bool deserializing)
     50      : base(deserializing) { }
     51    #endregion
    5752
    5853    public int GetMissingValueCount() {
Note: See TracChangeset for help on using the changeset viewer.