Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
07/23/17 00:52:14 (7 years ago)
Author:
abeham
Message:

#2258: merged r13329:14000 from trunk into branch

Location:
branches/Async
Files:
38 edited
1 copied

Legend:

Unmodified
Added
Removed
  • branches/Async

  • branches/Async/HeuristicLab.DataPreprocessing.Views

  • branches/Async/HeuristicLab.DataPreprocessing.Views/3.4/CheckedFilterCollectionView.Designer.cs

    r10785 r15280  
    1 using HeuristicLab.Core.Views;
    2 using HeuristicLab.DataPreprocessing.Filter;
    3 namespace HeuristicLab.DataPreprocessing.Views
    4 {
    5   partial class CheckedFilterCollectionView
    6   {
     1#region License Information
     2/* HeuristicLab
     3 * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     4 *
     5 * This file is part of HeuristicLab.
     6 *
     7 * HeuristicLab is free software: you can redistribute it and/or modify
     8 * it under the terms of the GNU General Public License as published by
     9 * the Free Software Foundation, either version 3 of the License, or
     10 * (at your option) any later version.
     11 *
     12 * HeuristicLab is distributed in the hope that it will be useful,
     13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
     14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     15 * GNU General Public License for more details.
     16 *
     17 * You should have received a copy of the GNU General Public License
     18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
     19 */
     20#endregion
     21
     22namespace HeuristicLab.DataPreprocessing.Views {
     23  partial class CheckedFilterCollectionView {
    724    /// <summary>
    825    /// Required designer variable.
     
    1431    /// </summary>
    1532    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    16     protected override void Dispose(bool disposing)
    17     {
    18       if (disposing && (components != null))
    19       {
     33    protected override void Dispose(bool disposing) {
     34      if (disposing && (components != null)) {
    2035        components.Dispose();
    2136      }
     
    2944    /// the contents of this method with the code editor.
    3045    /// </summary>
    31     private void InitializeComponent()
    32     {
     46    private void InitializeComponent() {
    3347      components = new System.ComponentModel.Container();
    3448      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
  • branches/Async/HeuristicLab.DataPreprocessing.Views/3.4/CheckedFilterCollectionView.cs

    r11114 r15280  
    1 using System;
    2 using System.Collections.Generic;
    3 using System.ComponentModel;
    4 using System.Drawing;
    5 using System.Linq;
    6 using System.Text;
     1#region License Information
     2/* HeuristicLab
     3 * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     4 *
     5 * This file is part of HeuristicLab.
     6 *
     7 * HeuristicLab is free software: you can redistribute it and/or modify
     8 * it under the terms of the GNU General Public License as published by
     9 * the Free Software Foundation, either version 3 of the License, or
     10 * (at your option) any later version.
     11 *
     12 * HeuristicLab is distributed in the hope that it will be useful,
     13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
     14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     15 * GNU General Public License for more details.
     16 *
     17 * You should have received a copy of the GNU General Public License
     18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
     19 */
     20#endregion
     21
     22using System;
    723using System.Windows.Forms;
     24using HeuristicLab.Core;
    825using HeuristicLab.Core.Views;
    9 using HeuristicLab.Collections;
     26using HeuristicLab.DataPreprocessing.Filter;
    1027using HeuristicLab.MainForm;
    11 using HeuristicLab.Core;
    12 using HeuristicLab.DataPreprocessing.Filter;
    1328
    14 namespace HeuristicLab.DataPreprocessing.Views
    15 {
     29namespace HeuristicLab.DataPreprocessing.Views {
    1630  [View("CheckedFilterCollection View")]
    1731  [Content(typeof(ICheckedItemCollection<>), false)]
    1832  [Content(typeof(CheckedItemCollection<>), false)]
    19   public partial class CheckedFilterCollectionView : CheckedItemCollectionView<IFilter>
    20   {
    21     public CheckedFilterCollectionView()
    22     {
     33  public partial class CheckedFilterCollectionView : CheckedItemCollectionView<IFilter> {
     34    public CheckedFilterCollectionView() {
    2335      InitializeComponent();
    2436    }
    2537
    26     protected override void addButton_Click(object sender, EventArgs e)
    27     {
     38    protected override void addButton_Click(object sender, EventArgs e) {
    2839      IFilter filter = new ComparisonFilter();
    2940      Content.Add(filter);
  • branches/Async/HeuristicLab.DataPreprocessing.Views/3.4/DataCompletenessView.Designer.cs

    r10979 r15280  
    1 namespace HeuristicLab.DataPreprocessing.Views {
    2   partial class DataCompletenessView
    3   {
     1#region License Information
     2/* HeuristicLab
     3 * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     4 *
     5 * This file is part of HeuristicLab.
     6 *
     7 * HeuristicLab is free software: you can redistribute it and/or modify
     8 * it under the terms of the GNU General Public License as published by
     9 * the Free Software Foundation, either version 3 of the License, or
     10 * (at your option) any later version.
     11 *
     12 * HeuristicLab is distributed in the hope that it will be useful,
     13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
     14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     15 * GNU General Public License for more details.
     16 *
     17 * You should have received a copy of the GNU General Public License
     18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
     19 */
     20#endregion
     21
     22namespace HeuristicLab.DataPreprocessing.Views {
     23  partial class DataCompletenessView {
    424    /// <summary>
    525    /// Required designer variable.
     
    3454      // chart
    3555      //
    36       this.chart.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
    37             | System.Windows.Forms.AnchorStyles.Left) 
     56      this.chart.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
     57            | System.Windows.Forms.AnchorStyles.Left)
    3858            | System.Windows.Forms.AnchorStyles.Right)));
    3959      chartArea1.Name = "ChartArea1";
  • branches/Async/HeuristicLab.DataPreprocessing.Views/3.4/DataCompletenessView.cs

    r11002 r15280  
    1 using System;
     1#region License Information
     2/* HeuristicLab
     3 * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     4 *
     5 * This file is part of HeuristicLab.
     6 *
     7 * HeuristicLab is free software: you can redistribute it and/or modify
     8 * it under the terms of the GNU General Public License as published by
     9 * the Free Software Foundation, either version 3 of the License, or
     10 * (at your option) any later version.
     11 *
     12 * HeuristicLab is distributed in the hope that it will be useful,
     13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
     14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     15 * GNU General Public License for more details.
     16 *
     17 * You should have received a copy of the GNU General Public License
     18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
     19 */
     20#endregion
     21
     22using System;
     23using System.Collections.Generic;
     24using System.Drawing;
     25using System.Linq;
    226using System.Windows.Forms;
    3 using HeuristicLab.Analysis;
     27using System.Windows.Forms.DataVisualization.Charting;
     28using HeuristicLab.Core.Views;
    429using HeuristicLab.MainForm;
    5 using HeuristicLab.Core.Views;
    6 using System.Collections.Generic;
    7 using HeuristicLab.DataPreprocessing.Implementations;
    8 using System.Drawing;
    9 using System.Windows.Forms.DataVisualization.Charting;
    1030
    1131namespace HeuristicLab.DataPreprocessing.Views {
     
    1333  [View("Histogram View")]
    1434  [Content(typeof(DataCompletenessChartContent), true)]
    15   public partial class DataCompletenessView : ItemView
    16   {
     35  public partial class DataCompletenessView : ItemView {
     36    //series colors
     37    private static readonly Color colorNonMissingValue = Color.CornflowerBlue;
     38    private static readonly Color colorMissingValue = Color.Orange;
    1739
    18     //list of columns, bool indicates wether the cell is a missing value or not
    19     private List<List<bool>> matrix = new List<List<bool>>();
    20     //series colors
    21     private static Color colorNonMissingVal = Color.CornflowerBlue;
    22     private static Color colorMissingVal = Color.Orange;
    23 
    24     public new DataCompletenessChartContent Content
    25     {
     40    public new DataCompletenessChartContent Content {
    2641      get { return (DataCompletenessChartContent)base.Content; }
    2742      set { base.Content = value; }
    2843    }
    2944
    30 
    31     public DataCompletenessView()
    32     {
     45    public DataCompletenessView() {
    3346      InitializeComponent();
    3447    }
    3548
    36     protected override void OnContentChanged()
    37     {
     49    protected override void OnContentChanged() {
    3850      base.OnContentChanged();
    39       if (Content != null)
    40       {
    41         InitData();
    42       }
     51      if (Content == null) return;
     52      InitData();
    4353    }
    4454
    45     private void InitData()
    46     {
     55    private void InitData() {
    4756      IDictionary<int, IList<int>> missingValueIndices = Content.SearchLogic.GetMissingValueIndices();
    48       for (int i = 0; i < Content.SearchLogic.Columns; i++)
    49       {
    50         //append column
    51         List<bool> column = new List<bool>();
    52         for (int j = 0; j < Content.SearchLogic.Rows; j++) {
    53           column.Add(missingValueIndices[i].Contains(j));
    54         }
    55         matrix.Add(column);
     57
     58      bool[,] valueMissing = new bool[Content.SearchLogic.Rows, Content.SearchLogic.Columns];
     59      foreach (var columnMissingValues in missingValueIndices) {
     60        var column = columnMissingValues.Key;
     61        foreach (var missingValueIndex in columnMissingValues.Value)
     62          valueMissing[missingValueIndex, column] = true;
    5663      }
    57       List<List<int>> yValuesPerColumn = ProcessMatrixForCharting(matrix, missingValueIndices);
     64
     65      var yValuesPerColumn = ProcessMatrixForCharting(valueMissing);
    5866      PrepareChart();
    5967      CreateSeries(yValuesPerColumn);
    6068    }
    6169
    62     private void PrepareChart()
    63     {
     70    private void PrepareChart() {
    6471      chart.Titles.Add("DataCompletenessChart");
    6572      chart.EnableDoubleClickResetsZoom = true;
     
    7481      //custom x axis label
    7582      double from = 0.5;
    76       foreach (String columnName in Content.SearchLogic.VariableNames)
    77       {
     83      foreach (String columnName in Content.SearchLogic.VariableNames) {
    7884        double to = from + 1;
    7985        chart.ChartAreas[0].AxisX.CustomLabels.Add(from, to, columnName);
     
    8490    }
    8591
    86     private void CreateSeries(List<List<int>> yValuesPerColumn)
    87     {
     92    private void CreateSeries(List<List<int>> yValuesPerColumn) {
     93      chart.Series.SuspendUpdates();
    8894      //prepare series
    8995      int seriesCount = DetermineSeriesCount(yValuesPerColumn);
    90       for (int i = 0; i < seriesCount; i++)
    91       {
    92         chart.Series.Add(CreateSeriesName(i));
    93         Series series = chart.Series[CreateSeriesName(i)];
     96      for (int i = 0; i < seriesCount; i++) {
     97        Series series = new Series(CreateSeriesName(i));
    9498        series.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.StackedColumn;
    9599        series.IsVisibleInLegend = false;
    96100        series["PointWidth"] = "1.0";
    97         if (i % 2 == 0)
    98         {
    99           if (i == 0) //show legend for non missing values only once
    100             series.IsVisibleInLegend = true;
    101           series.Color = colorNonMissingVal;
    102         }
    103         else
    104         {
    105           if (i == 1) //show legend for missing values only once
    106             series.IsVisibleInLegend = true;
    107           series.Color = colorMissingVal;
    108         }
     101        series.IsVisibleInLegend = i < 2; //only first two series are visible, non-missing and missing values
     102        series.Color = i % 2 == 0 ? colorNonMissingValue : colorMissingValue;
     103
     104        var values = yValuesPerColumn.Select(y => i < y.Count ? y[i] : 0).ToArray();
     105        series.Points.DataBindY(values);
     106        chart.Series.Add(series);
    109107      }
    110       //fill series
    111       for (int i = 0; i < yValuesPerColumn.Count; i++)
    112       {
    113         List<int> column = yValuesPerColumn[i];
    114         for (int j = 0; j < seriesCount; j++) {
    115           if (column.Count - 1 < j) {
    116             chart.Series[CreateSeriesName(j)].Points.AddY(0);
    117           } else {
    118             chart.Series[CreateSeriesName(j)].Points.AddY(column[j]);
    119           }
    120         }
    121       }
     108      chart.Series.ResumeUpdates();
    122109    }
    123110
    124     private String CreateSeriesName(int index)
    125     {
     111    private String CreateSeriesName(int index) {
    126112      if (index == 0)
    127113        return "non-missing value";
     
    132118
    133119    #region data_preparation_for_chartseries
    134     private int DetermineSeriesCount(List<List<int>> yValuesPerColumn)
    135     {
    136       int highest = 0;
    137       foreach (List<int> values in yValuesPerColumn) {
    138         highest = Math.Max(values.Count, highest);
    139       }
    140       return highest;
     120    private int DetermineSeriesCount(List<List<int>> yValuesPerColumn) {
     121      return yValuesPerColumn.Max(values => values.Count);
    141122    }
    142123
    143     private List<List<int>> ProcessMatrixForCharting(List<List<bool>> matrix, IDictionary<int, IList<int>> missingValueIndices)
    144     {
    145       List<List<int>> columnsYValues = new List<List<int>>();
    146       for (int i=0; i < matrix.Count; i++) //column
    147       {
    148         List<int> yValues = new List<int>();
    149         List<bool> column = matrix[i];
     124    private List<List<int>> ProcessMatrixForCharting(bool[,] matrix) {
     125      var columnsYValues = new List<List<int>>();
     126      for (int column = 0; column < matrix.GetLength(1); column++) {
     127        var yValues = new List<int>();
    150128        bool missingState = false;
    151129        int valueCount = 0;
    152         for (int j = 0; j < column.Count; j++ ) {
    153           if (missingState == missingValueIndices[i].Contains(j))
    154           {
     130
     131        for (int row = 0; row < matrix.GetLength(0); row++) {
     132          if (missingState == matrix[row, column]) {
    155133            valueCount++;
    156           }
    157           else
    158           {
     134          } else {
    159135            yValues.Add(valueCount);
    160136            valueCount = 1;
     
    167143          yValues.Add(0);
    168144        }
    169         //yValues.Reverse();
    170145        columnsYValues.Add(yValues);
    171146      }
  • branches/Async/HeuristicLab.DataPreprocessing.Views/3.4/DataGridContentView.cs

    r13252 r15280  
    3131namespace HeuristicLab.DataPreprocessing.Views {
    3232  [View("Data Grid Content View")]
    33   [Content(typeof(IDataGridContent), true)]
     33  [Content(typeof(DataGridContent), true)]
    3434  public partial class DataGridContentView : StringConvertibleMatrixView {
    3535
     
    4242    private Tuple<int, int> currentCell;
    4343
    44     public new IDataGridContent Content {
    45       get { return (IDataGridContent)base.Content; }
     44    public new DataGridContent Content {
     45      get { return (DataGridContent)base.Content; }
    4646      set { base.Content = value; }
    4747    }
     
    145145    protected override void PasteValuesToDataGridView() {
    146146      string[,] values = SplitClipboardString(Clipboard.GetText());
     147      if (values.Length == 0) return;
    147148      int rowIndex = 0;
    148149      int columnIndex = 0;
     
    151152        columnIndex = dataGridView.CurrentCell.ColumnIndex;
    152153      }
    153       if (Content.Rows < values.GetLength(1) + rowIndex) Content.Rows = values.GetLength(1) + rowIndex;
    154       if (Content.Columns < values.GetLength(0) + columnIndex) Content.Columns = values.GetLength(0) + columnIndex;
     154
     155      bool containsHeader = false;
     156      var firstRow = Enumerable.Range(0, values.GetLength(0)).Select(col => values[col, 0]).ToList();
     157      if ((Content.Selection.Values.Sum(s => s.Count) == Content.Rows * Content.Columns)
     158          || (rowIndex == 0 && columnIndex == 0 && Content.Rows <= values.GetLength(1) && Content.Columns <= values.GetLength(0))) {
     159        // All is selected -or- top left selected and everything will be replaced
     160        double temp;
     161        containsHeader = !firstRow.All(string.IsNullOrEmpty) && firstRow.Any(r => !double.TryParse(r, out temp));
     162        if (containsHeader)
     163          rowIndex = columnIndex = 0;
     164      }
     165
     166      int newRows = values.GetLength(1) + rowIndex - (containsHeader ? 1 : 0);
     167      int newColumns = values.GetLength(0) + columnIndex;
     168      if (Content.Rows < newRows) Content.Rows = newRows;
     169      if (Content.Columns < newColumns) Content.Columns = newColumns;
    155170
    156171      ReplaceTransaction(() => {
    157172        Content.PreProcessingData.InTransaction(() => {
    158           for (int row = 0; row < values.GetLength(1); row++) {
     173          for (int row = containsHeader ? 1 : 0; row < values.GetLength(1); row++) {
    159174            for (int col = 0; col < values.GetLength(0); col++) {
    160               Content.SetValue(values[col, row], row + rowIndex, col + columnIndex);
     175              Content.SetValue(values[col, row], row + rowIndex - (containsHeader ? 1 : 0), col + columnIndex);
    161176            }
     177          }
     178          if (containsHeader) {
     179            for (int i = 0; i < firstRow.Count; i++)
     180              if (string.IsNullOrWhiteSpace(firstRow[i]))
     181                firstRow[i] = string.Format("<{0}>", i);
     182            Content.PreProcessingData.RenameColumns(firstRow);
    162183          }
    163184        });
  • branches/Async/HeuristicLab.DataPreprocessing.Views/3.4/DataPreprocessingView.cs

    r12676 r15280  
    2121
    2222using System;
     23using System.IO;
     24using System.Threading.Tasks;
    2325using System.Windows.Forms;
    2426using HeuristicLab.Common;
     
    2628using HeuristicLab.Core.Views;
    2729using HeuristicLab.MainForm;
     30using HeuristicLab.Problems.DataAnalysis;
     31using HeuristicLab.Problems.Instances.DataAnalysis;
     32using HeuristicLab.Problems.Instances.DataAnalysis.Views;
    2833
    2934namespace HeuristicLab.DataPreprocessing.Views {
    3035  [View("DataPreprocessing View")]
    3136  [Content(typeof(PreprocessingContext), true)]
    32   [Content(typeof(IPreprocessingContext), false)]
    33   public partial class DataPreprocessingView : ItemView {
     37  public partial class DataPreprocessingView : NamedItemView {
    3438
    3539    public DataPreprocessingView() {
     
    3741    }
    3842
    39     public new IPreprocessingContext Content {
    40       get { return (IPreprocessingContext)base.Content; }
     43    public new PreprocessingContext Content {
     44      get { return (PreprocessingContext)base.Content; }
    4145      set { base.Content = value; }
    4246    }
     
    6064          new CorrelationMatrixContent(Content),
    6165          new DataCompletenessChartContent(searchLogic),
    62          
     66
    6367          new FilterContent(filterLogic),
    6468          new ManipulationContent(manipulationLogic, searchLogic, filterLogic),
     
    6771
    6872        viewShortcutListView.Content = viewShortcuts.AsReadOnly();
    69 
    7073        viewShortcutListView.ItemsListView.Items[0].Selected = true;
    7174        viewShortcutListView.Select();
    7275
     76        applyTypeContextMenuStrip.Items.Clear();
     77        exportTypeContextMenuStrip.Items.Clear();
     78        foreach (var exportOption in Content.GetSourceExportOptions()) {
     79          var applyMenuItem = new ToolStripMenuItem(exportOption.Key) { Tag = exportOption.Value };
     80          applyMenuItem.Click += applyToolStripMenuItem_Click;
     81          applyTypeContextMenuStrip.Items.Add(applyMenuItem);
     82
     83          var exportMenuItem = new ToolStripMenuItem(exportOption.Key) { Tag = exportOption.Value };
     84          exportMenuItem.Click += exportToolStripMenuItem_Click;
     85          exportTypeContextMenuStrip.Items.Add(exportMenuItem);
     86        }
     87        var exportCsvMenuItem = new ToolStripMenuItem(".csv");
     88        exportCsvMenuItem.Click += exportCsvMenuItem_Click;
     89        exportTypeContextMenuStrip.Items.Add(exportCsvMenuItem);
    7390      } else {
    7491        viewShortcutListView.Content = null;
    7592      }
    7693    }
    77 
    7894    protected override void RegisterContentEvents() {
    7995      base.RegisterContentEvents();
     96      Content.Reset += Content_Reset;
    8097      Content.Data.FilterChanged += Data_FilterChanged;
    8198    }
     
    83100    protected override void DeregisterContentEvents() {
    84101      base.DeregisterContentEvents();
     102      Content.Reset -= Content_Reset;
    85103      Content.Data.FilterChanged -= Data_FilterChanged;
     104    }
     105
     106    void Content_Reset(object sender, EventArgs e) {
     107      OnContentChanged(); // Reset by setting new content
    86108    }
    87109
     
    94116      viewShortcutListView.Enabled = Content != null;
    95117      applyInNewTabButton.Enabled = Content != null;
    96       exportProblemButton.Enabled = Content != null && Content.Problem != null;
     118      exportProblemButton.Enabled = Content != null && Content.CanExport;
    97119      undoButton.Enabled = Content != null;
    98120    }
    99121
     122    #region New
     123    private void newButton_Click(object sender, EventArgs e) {
     124      newProblemDataTypeContextMenuStrip.Show(Cursor.Position);
     125    }
     126    private void newRegressionToolStripMenuItem_Click(object sender, EventArgs e) {
     127      Content.Import(new RegressionProblemData());
     128    }
     129    private void newClassificationToolStripMenuItem_Click(object sender, EventArgs e) {
     130      Content.Import(new ClassificationProblemData());
     131    }
     132    private void newTimeSeriesToolStripMenuItem_Click(object sender, EventArgs e) {
     133      Content.Import(new TimeSeriesPrognosisProblemData());
     134    }
     135    #endregion
     136
     137    #region Import
     138    private void importButton_Click(object sender, EventArgs e) {
     139      importProblemDataTypeContextMenuStrip.Show(Cursor.Position);
     140    }
     141    private void importRegressionToolStripMenuItem_Click(object sender, EventArgs e) {
     142      Import(new RegressionCSVInstanceProvider(), new RegressionImportTypeDialog(),
     143        (dialog => ((RegressionImportTypeDialog)dialog).ImportType));
     144    }
     145    private void importClassificationToolStripMenuItem_Click(object sender, EventArgs e) {
     146      Import(new ClassificationCSVInstanceProvider(), new ClassificationImportTypeDialog(),
     147        (dialog => ((ClassificationImportTypeDialog)dialog).ImportType));
     148    }
     149    private void importTimeSeriesToolStripMenuItem_Click(object sender, EventArgs e) {
     150      Import(new TimeSeriesPrognosisCSVInstanceProvider(), new TimeSeriesPrognosisImportTypeDialog(),
     151        (dialog => ((TimeSeriesPrognosisImportTypeDialog)dialog).ImportType));
     152    }
     153    private void Import<TProblemData, TImportType>(DataAnalysisInstanceProvider<TProblemData, TImportType> instanceProvider, DataAnalysisImportTypeDialog importTypeDialog,
     154      Func<DataAnalysisImportTypeDialog, TImportType> getImportType)
     155      where TProblemData : class, IDataAnalysisProblemData
     156      where TImportType : DataAnalysisImportType {
     157      if (importTypeDialog.ShowDialog() == DialogResult.OK) {
     158        Task.Run(() => {
     159          TProblemData instance;
     160          var mainForm = (MainForm.WindowsForms.MainForm)MainFormManager.MainForm;
     161          // lock active view and show progress bar
     162          var activeView = (IContentView)MainFormManager.MainForm.ActiveView;
     163
     164          try {
     165            var progress = mainForm.AddOperationProgressToContent(activeView.Content, "Loading problem instance.");
     166
     167            instanceProvider.ProgressChanged += (o, args) => { progress.ProgressValue = args.ProgressPercentage / 100.0; };
     168
     169            instance = instanceProvider.ImportData(importTypeDialog.Path, getImportType(importTypeDialog), importTypeDialog.CSVFormat);
     170          } catch (IOException ex) {
     171            MessageBox.Show(string.Format("There was an error parsing the file: {0}", Environment.NewLine + ex.Message), "Error while parsing", MessageBoxButtons.OK, MessageBoxIcon.Error);
     172            mainForm.RemoveOperationProgressFromContent(activeView.Content);
     173            return;
     174          }
     175          try {
     176            Content.Import(instance);
     177          } catch (IOException ex) {
     178            MessageBox.Show(string.Format("This problem does not support loading the instance {0}: {1}", Path.GetFileName(importTypeDialog.Path), Environment.NewLine + ex.Message), "Cannot load instance");
     179          } finally {
     180            mainForm.RemoveOperationProgressFromContent(activeView.Content);
     181          }
     182        });
     183      }
     184    }
     185    #endregion
     186
     187    #region Apply
     188    private void applyInNewTabButton_Click(object sender, EventArgs e) {
     189      applyTypeContextMenuStrip.Show(Cursor.Position);
     190    }
     191    private void applyToolStripMenuItem_Click(object sender, EventArgs e) {
     192      var menuItem = (ToolStripMenuItem)sender;
     193      var itemCreator = (Func<IItem>)menuItem.Tag;
     194      MainFormManager.MainForm.ShowContent(itemCreator());
     195    }
     196    #endregion
     197
     198    #region Export
    100199    private void exportProblemButton_Click(object sender, EventArgs e) {
    101       var problem = Content.ExportProblem();
    102 
     200      exportTypeContextMenuStrip.Show(Cursor.Position);
     201    }
     202    private void exportToolStripMenuItem_Click(object sender, EventArgs e) {
     203      var menuItem = (ToolStripMenuItem)sender;
     204      var itemCreator = (Func<IItem>)menuItem.Tag;
    103205      var saveFileDialog = new SaveFileDialog {
    104206        Title = "Save Item",
     
    108210      };
    109211
    110       var content = problem as IStorableContent;
    111212      if (saveFileDialog.ShowDialog() == DialogResult.OK) {
    112         bool compressed = saveFileDialog.FilterIndex != 1;
    113         ContentManager.Save(content, saveFileDialog.FileName, compressed);
    114       }
    115     }
    116 
    117     private void applyInNewTabButton_Click(object sender, EventArgs e) {
    118       var item = Content.Export();
    119 
    120       MainFormManager.MainForm.ShowContent(item);
    121     }
    122 
     213        Task.Run(() => {
     214          bool compressed = saveFileDialog.FilterIndex != 1;
     215          var storable = itemCreator() as IStorableContent;
     216          if (storable != null) {
     217            var mainForm = (MainForm.WindowsForms.MainForm)MainFormManager.MainForm;
     218            var activeView = (IContentView)MainFormManager.MainForm.ActiveView;
     219            try {
     220              mainForm.AddOperationProgressToContent(activeView.Content, "Exporting data.");
     221              ContentManager.Save(storable, saveFileDialog.FileName, compressed);
     222            } finally {
     223              mainForm.RemoveOperationProgressFromContent(activeView.Content);
     224            }
     225          }
     226        });
     227      }
     228    }
     229    private void exportCsvMenuItem_Click(object sender, EventArgs e) {
     230      var saveFileDialog = new SaveFileDialog {
     231        Title = "Save Data",
     232        DefaultExt = "csv",
     233        Filter = "CSV files|*.csv|All files|*.*",
     234        FilterIndex = 1
     235      };
     236
     237      if (saveFileDialog.ShowDialog() == DialogResult.OK) {
     238        Task.Run(() => {
     239          var mainForm = (MainForm.WindowsForms.MainForm)MainFormManager.MainForm;
     240          var activeView = (IContentView)MainFormManager.MainForm.ActiveView;
     241          try {
     242            var problemData = Content.CreateNewProblemData();
     243            mainForm.AddOperationProgressToContent(activeView.Content, "Exporting data.");
     244            if (problemData is TimeSeriesPrognosisProblemData)
     245              Export(new TimeSeriesPrognosisCSVInstanceProvider(), problemData, saveFileDialog.FileName);
     246            else if (problemData is RegressionProblemData)
     247              Export(new RegressionCSVInstanceProvider(), problemData, saveFileDialog.FileName);
     248            else if (problemData is ClassificationProblemData)
     249              Export(new ClassificationCSVInstanceProvider(), problemData, saveFileDialog.FileName);
     250          } finally {
     251            mainForm.RemoveOperationProgressFromContent(activeView.Content);
     252          }
     253        });
     254      }
     255    }
     256    private void Export<TProblemData, TImportType>(DataAnalysisInstanceProvider<TProblemData, TImportType> instanceProvider,
     257      IDataAnalysisProblemData problemData, string path)
     258      where TProblemData : class, IDataAnalysisProblemData where TImportType : DataAnalysisImportType {
     259      instanceProvider.ExportData((TProblemData)problemData, path);
     260    }
     261    #endregion
     262
     263    #region Undo / Redo
    123264    private void undoButton_Click(object sender, EventArgs e) {
    124265      Content.Data.Undo();
    125266    }
     267    #endregion
    126268  }
    127269}
  • branches/Async/HeuristicLab.DataPreprocessing.Views/3.4/DataPreprocessingView.designer.cs

    r12012 r15280  
    5050      this.applyInNewTabButton = new System.Windows.Forms.Button();
    5151      this.exportProblemButton = new System.Windows.Forms.Button();
    52       this.toolTip = new System.Windows.Forms.ToolTip(this.components);
    5352      this.lblFilterActive = new System.Windows.Forms.Label();
     53      this.redoButton = new System.Windows.Forms.Button();
     54      this.newButton = new System.Windows.Forms.Button();
     55      this.importButton = new System.Windows.Forms.Button();
     56      this.newProblemDataTypeContextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
     57      this.newRegressionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
     58      this.newClassificationToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
     59      this.newTimeSeriesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
     60      this.importProblemDataTypeContextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
     61      this.importRegressionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
     62      this.importClassificationToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
     63      this.importTimeSeriesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
    5464      this.viewShortcutListView = new HeuristicLab.DataPreprocessing.Views.ViewShortcutListView();
     65      this.applyTypeContextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
     66      this.exportTypeContextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
     67      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
     68      this.newProblemDataTypeContextMenuStrip.SuspendLayout();
     69      this.importProblemDataTypeContextMenuStrip.SuspendLayout();
    5570      this.SuspendLayout();
    5671      //
     72      // nameTextBox
     73      //
     74      this.errorProvider.SetIconAlignment(this.nameTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
     75      this.errorProvider.SetIconPadding(this.nameTextBox, 2);
     76      this.nameTextBox.Size = new System.Drawing.Size(755, 20);
     77      //
     78      // infoLabel
     79      //
     80      this.infoLabel.Location = new System.Drawing.Point(819, 3);
     81      //
    5782      // undoButton
    5883      //
    5984      this.undoButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.Undo;
    60       this.undoButton.Location = new System.Drawing.Point(64, 3);
     85      this.undoButton.Location = new System.Drawing.Point(131, 26);
    6186      this.undoButton.Name = "undoButton";
    6287      this.undoButton.Size = new System.Drawing.Size(24, 24);
    63       this.undoButton.TabIndex = 3;
     88      this.undoButton.TabIndex = 5;
    6489      this.toolTip.SetToolTip(this.undoButton, "Undo");
    6590      this.undoButton.UseVisualStyleBackColor = true;
     
    6994      //
    7095      this.applyInNewTabButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.Play;
    71       this.applyInNewTabButton.Location = new System.Drawing.Point(34, 3);
     96      this.applyInNewTabButton.Location = new System.Drawing.Point(69, 26);
    7297      this.applyInNewTabButton.Name = "applyInNewTabButton";
    7398      this.applyInNewTabButton.Size = new System.Drawing.Size(24, 24);
    7499      this.applyInNewTabButton.TabIndex = 2;
    75       this.toolTip.SetToolTip(this.applyInNewTabButton, "Apply in new tab");
     100      this.toolTip.SetToolTip(this.applyInNewTabButton, "Apply in new Tab");
    76101      this.applyInNewTabButton.UseVisualStyleBackColor = true;
    77102      this.applyInNewTabButton.Click += new System.EventHandler(this.applyInNewTabButton_Click);
     
    79104      // exportProblemButton
    80105      //
    81       this.exportProblemButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.Save;
    82       this.exportProblemButton.Location = new System.Drawing.Point(4, 3);
     106      this.exportProblemButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.SaveAs;
     107      this.exportProblemButton.Location = new System.Drawing.Point(99, 26);
    83108      this.exportProblemButton.Name = "exportProblemButton";
    84109      this.exportProblemButton.Size = new System.Drawing.Size(24, 24);
    85       this.exportProblemButton.TabIndex = 1;
    86       this.toolTip.SetToolTip(this.exportProblemButton, "Export problem");
     110      this.exportProblemButton.TabIndex = 3;
     111      this.toolTip.SetToolTip(this.exportProblemButton, "Export to File");
    87112      this.exportProblemButton.UseVisualStyleBackColor = true;
    88113      this.exportProblemButton.Click += new System.EventHandler(this.exportProblemButton_Click);
     
    91116      //
    92117      this.lblFilterActive.AutoSize = true;
    93       this.lblFilterActive.Location = new System.Drawing.Point(220, 12);
     118      this.lblFilterActive.Location = new System.Drawing.Point(203, 31);
    94119      this.lblFilterActive.Name = "lblFilterActive";
    95120      this.lblFilterActive.Size = new System.Drawing.Size(277, 13);
     
    98123      this.lblFilterActive.Visible = false;
    99124      //
     125      // redoButton
     126      //
     127      this.redoButton.Enabled = false;
     128      this.redoButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.Redo;
     129      this.redoButton.Location = new System.Drawing.Point(161, 26);
     130      this.redoButton.Name = "redoButton";
     131      this.redoButton.Size = new System.Drawing.Size(24, 24);
     132      this.redoButton.TabIndex = 6;
     133      this.toolTip.SetToolTip(this.redoButton, "Redo (not implemented yet)");
     134      this.redoButton.UseVisualStyleBackColor = true;
     135      //
     136      // newButton
     137      //
     138      this.newButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.NewDocument;
     139      this.newButton.Location = new System.Drawing.Point(6, 26);
     140      this.newButton.Name = "newButton";
     141      this.newButton.Size = new System.Drawing.Size(24, 24);
     142      this.newButton.TabIndex = 3;
     143      this.newButton.UseVisualStyleBackColor = true;
     144      this.newButton.Click += new System.EventHandler(this.newButton_Click);
     145      //
     146      // importButton
     147      //
     148      this.importButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.Open;
     149      this.importButton.Location = new System.Drawing.Point(36, 26);
     150      this.importButton.Name = "importButton";
     151      this.importButton.Size = new System.Drawing.Size(24, 24);
     152      this.importButton.TabIndex = 3;
     153      this.importButton.UseVisualStyleBackColor = true;
     154      this.importButton.Click += new System.EventHandler(this.importButton_Click);
     155      //
     156      // newProblemDataTypeContextMenuStrip
     157      //
     158      this.newProblemDataTypeContextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
     159            this.newRegressionToolStripMenuItem,
     160            this.newClassificationToolStripMenuItem,
     161            this.newTimeSeriesToolStripMenuItem});
     162      this.newProblemDataTypeContextMenuStrip.Name = "newProblemDataTypeContextMenuStrip";
     163      this.newProblemDataTypeContextMenuStrip.Size = new System.Drawing.Size(190, 70);
     164      //
     165      // newRegressionToolStripMenuItem
     166      //
     167      this.newRegressionToolStripMenuItem.Name = "newRegressionToolStripMenuItem";
     168      this.newRegressionToolStripMenuItem.Size = new System.Drawing.Size(189, 22);
     169      this.newRegressionToolStripMenuItem.Text = "Regression";
     170      this.newRegressionToolStripMenuItem.Click += new System.EventHandler(this.newRegressionToolStripMenuItem_Click);
     171      //
     172      // newClassificationToolStripMenuItem
     173      //
     174      this.newClassificationToolStripMenuItem.Name = "newClassificationToolStripMenuItem";
     175      this.newClassificationToolStripMenuItem.Size = new System.Drawing.Size(189, 22);
     176      this.newClassificationToolStripMenuItem.Text = "Classification";
     177      this.newClassificationToolStripMenuItem.Click += new System.EventHandler(this.newClassificationToolStripMenuItem_Click);
     178      //
     179      // newTimeSeriesToolStripMenuItem
     180      //
     181      this.newTimeSeriesToolStripMenuItem.Name = "newTimeSeriesToolStripMenuItem";
     182      this.newTimeSeriesToolStripMenuItem.Size = new System.Drawing.Size(189, 22);
     183      this.newTimeSeriesToolStripMenuItem.Text = "Time Series Prognosis";
     184      this.newTimeSeriesToolStripMenuItem.Click += new System.EventHandler(this.newTimeSeriesToolStripMenuItem_Click);
     185      //
     186      // importProblemDataTypeContextMenuStrip
     187      //
     188      this.importProblemDataTypeContextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
     189            this.importRegressionToolStripMenuItem,
     190            this.importClassificationToolStripMenuItem,
     191            this.importTimeSeriesToolStripMenuItem});
     192      this.importProblemDataTypeContextMenuStrip.Name = "newProblemDataTypeContextMenuStrip";
     193      this.importProblemDataTypeContextMenuStrip.Size = new System.Drawing.Size(190, 92);
     194      //
     195      // importRegressionToolStripMenuItem
     196      //
     197      this.importRegressionToolStripMenuItem.Name = "importRegressionToolStripMenuItem";
     198      this.importRegressionToolStripMenuItem.Size = new System.Drawing.Size(189, 22);
     199      this.importRegressionToolStripMenuItem.Text = "Regression";
     200      this.importRegressionToolStripMenuItem.Click += new System.EventHandler(this.importRegressionToolStripMenuItem_Click);
     201      //
     202      // importClassificationToolStripMenuItem
     203      //
     204      this.importClassificationToolStripMenuItem.Name = "importClassificationToolStripMenuItem";
     205      this.importClassificationToolStripMenuItem.Size = new System.Drawing.Size(189, 22);
     206      this.importClassificationToolStripMenuItem.Text = "Classification";
     207      this.importClassificationToolStripMenuItem.Click += new System.EventHandler(this.importClassificationToolStripMenuItem_Click);
     208      //
     209      // importTimeSeriesToolStripMenuItem
     210      //
     211      this.importTimeSeriesToolStripMenuItem.Name = "importTimeSeriesToolStripMenuItem";
     212      this.importTimeSeriesToolStripMenuItem.Size = new System.Drawing.Size(189, 22);
     213      this.importTimeSeriesToolStripMenuItem.Text = "Time Series Prognosis";
     214      this.importTimeSeriesToolStripMenuItem.Click += new System.EventHandler(this.importTimeSeriesToolStripMenuItem_Click);
     215      //
    100216      // viewShortcutListView
    101217      //
    102       this.viewShortcutListView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
    103             | System.Windows.Forms.AnchorStyles.Left) 
     218      this.viewShortcutListView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
     219            | System.Windows.Forms.AnchorStyles.Left)
    104220            | System.Windows.Forms.AnchorStyles.Right)));
    105221      this.viewShortcutListView.Caption = "ViewShortcutCollection View";
    106222      this.viewShortcutListView.Content = null;
    107       this.viewShortcutListView.Location = new System.Drawing.Point(4, 33);
     223      this.viewShortcutListView.Location = new System.Drawing.Point(4, 56);
    108224      this.viewShortcutListView.Name = "viewShortcutListView";
    109225      this.viewShortcutListView.ReadOnly = false;
    110       this.viewShortcutListView.Size = new System.Drawing.Size(831, 413);
    111       this.viewShortcutListView.TabIndex = 4;
     226      this.viewShortcutListView.Size = new System.Drawing.Size(831, 390);
     227      this.viewShortcutListView.TabIndex = 7;
     228      //
     229      // applyTypeContextMenuStrip
     230      //
     231      this.applyTypeContextMenuStrip.Name = "newProblemDataTypeContextMenuStrip";
     232      this.applyTypeContextMenuStrip.Size = new System.Drawing.Size(61, 4);
     233      //
     234      // exportTypeContextMenuStrip
     235      //
     236      this.exportTypeContextMenuStrip.Name = "newProblemDataTypeContextMenuStrip";
     237      this.exportTypeContextMenuStrip.Size = new System.Drawing.Size(61, 4);
    112238      //
    113239      // DataPreprocessingView
     
    115241      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    116242      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
     243      this.Controls.Add(this.newButton);
     244      this.Controls.Add(this.importButton);
     245      this.Controls.Add(this.applyInNewTabButton);
     246      this.Controls.Add(this.exportProblemButton);
     247      this.Controls.Add(this.undoButton);
     248      this.Controls.Add(this.redoButton);
    117249      this.Controls.Add(this.lblFilterActive);
    118250      this.Controls.Add(this.viewShortcutListView);
    119       this.Controls.Add(this.undoButton);
    120       this.Controls.Add(this.applyInNewTabButton);
    121       this.Controls.Add(this.exportProblemButton);
    122251      this.Name = "DataPreprocessingView";
    123252      this.Size = new System.Drawing.Size(838, 449);
     253      this.Controls.SetChildIndex(this.viewShortcutListView, 0);
     254      this.Controls.SetChildIndex(this.lblFilterActive, 0);
     255      this.Controls.SetChildIndex(this.redoButton, 0);
     256      this.Controls.SetChildIndex(this.undoButton, 0);
     257      this.Controls.SetChildIndex(this.exportProblemButton, 0);
     258      this.Controls.SetChildIndex(this.applyInNewTabButton, 0);
     259      this.Controls.SetChildIndex(this.importButton, 0);
     260      this.Controls.SetChildIndex(this.newButton, 0);
     261      this.Controls.SetChildIndex(this.infoLabel, 0);
     262      this.Controls.SetChildIndex(this.nameTextBox, 0);
     263      this.Controls.SetChildIndex(this.nameLabel, 0);
     264      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
     265      this.newProblemDataTypeContextMenuStrip.ResumeLayout(false);
     266      this.importProblemDataTypeContextMenuStrip.ResumeLayout(false);
    124267      this.ResumeLayout(false);
    125268      this.PerformLayout();
     
    132275    private System.Windows.Forms.Button applyInNewTabButton;
    133276    private System.Windows.Forms.Button undoButton;
    134     private System.Windows.Forms.ToolTip toolTip;
    135277    private ViewShortcutListView viewShortcutListView;
    136278    private System.Windows.Forms.Label lblFilterActive;
    137 
     279    private System.Windows.Forms.Button redoButton;
     280    private System.Windows.Forms.Button newButton;
     281    private System.Windows.Forms.Button importButton;
     282    private System.Windows.Forms.ContextMenuStrip newProblemDataTypeContextMenuStrip;
     283    private System.Windows.Forms.ToolStripMenuItem newRegressionToolStripMenuItem;
     284    private System.Windows.Forms.ToolStripMenuItem newClassificationToolStripMenuItem;
     285    private System.Windows.Forms.ToolStripMenuItem newTimeSeriesToolStripMenuItem;
     286    private System.Windows.Forms.ContextMenuStrip importProblemDataTypeContextMenuStrip;
     287    private System.Windows.Forms.ToolStripMenuItem importRegressionToolStripMenuItem;
     288    private System.Windows.Forms.ToolStripMenuItem importClassificationToolStripMenuItem;
     289    private System.Windows.Forms.ToolStripMenuItem importTimeSeriesToolStripMenuItem;
     290    private System.Windows.Forms.ContextMenuStrip applyTypeContextMenuStrip;
     291    private System.Windows.Forms.ContextMenuStrip exportTypeContextMenuStrip;
    138292  }
    139293}
  • branches/Async/HeuristicLab.DataPreprocessing.Views/3.4/DataPreprocessorStarter.cs

    r12676 r15280  
    2121
    2222using System.Windows.Forms;
     23using HeuristicLab.Core;
    2324using HeuristicLab.MainForm;
    2425using HeuristicLab.Optimization;
     
    3334      IDataAnalysisProblem problem;
    3435      GetMostOuterContent(currentView as Control, out algorithm, out problem);
    35       var context = new PreprocessingContext(problemData, algorithm, problem);
     36      var context = new PreprocessingContext(problemData, algorithm ?? problem ?? problemData as IItem);
    3637      MainFormManager.MainForm.ShowContent(context);
    3738    }
     
    4243
    4344      while (control != null) {
    44         IContentView contentView = control as IContentView;
     45        var contentView = control as IContentView;
    4546        if (contentView != null) {
    4647          var newAlgorithm = contentView.Content as IAlgorithm;
  • branches/Async/HeuristicLab.DataPreprocessing.Views/3.4/FilterView.Designer.cs

    r11044 r15280  
    1 namespace HeuristicLab.DataPreprocessing.Views
    2 {
    3   partial class FilterView
    4   {
     1#region License Information
     2/* HeuristicLab
     3 * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     4 *
     5 * This file is part of HeuristicLab.
     6 *
     7 * HeuristicLab is free software: you can redistribute it and/or modify
     8 * it under the terms of the GNU General Public License as published by
     9 * the Free Software Foundation, either version 3 of the License, or
     10 * (at your option) any later version.
     11 *
     12 * HeuristicLab is distributed in the hope that it will be useful,
     13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
     14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     15 * GNU General Public License for more details.
     16 *
     17 * You should have received a copy of the GNU General Public License
     18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
     19 */
     20#endregion
     21
     22namespace HeuristicLab.DataPreprocessing.Views {
     23  partial class FilterView {
    524    /// <summary>
    625    /// Required designer variable.
     
    1231    /// </summary>
    1332    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    14     protected override void Dispose(bool disposing)
    15     {
    16       if (disposing && (components != null))
    17       {
     33    protected override void Dispose(bool disposing) {
     34      if (disposing && (components != null)) {
    1835        components.Dispose();
    1936      }
     
    2744    /// the contents of this method with the code editor.
    2845    /// </summary>
    29     private void InitializeComponent()
    30     {
     46    private void InitializeComponent() {
    3147      this.groupBoxFilter = new System.Windows.Forms.GroupBox();
    3248      this.checkedFilterView = new HeuristicLab.DataPreprocessing.Views.CheckedFilterCollectionView();
     
    5369      // groupBoxFilter
    5470      //
    55       this.groupBoxFilter.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
     71      this.groupBoxFilter.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
    5672            | System.Windows.Forms.AnchorStyles.Right)));
    5773      this.groupBoxFilter.Controls.Add(this.checkedFilterView);
     
    7793      // groupBoxFilterInfo
    7894      //
    79       this.groupBoxFilterInfo.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
     95      this.groupBoxFilterInfo.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
    8096            | System.Windows.Forms.AnchorStyles.Right)));
    8197      this.groupBoxFilterInfo.Controls.Add(this.lblPercentage);
     
    103119      // tbPercentage
    104120      //
    105       this.tbPercentage.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
     121      this.tbPercentage.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
    106122            | System.Windows.Forms.AnchorStyles.Right)));
    107123      this.tbPercentage.Enabled = false;
     
    113129      // tbFiltered
    114130      //
    115       this.tbRemaining.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
     131      this.tbRemaining.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
    116132            | System.Windows.Forms.AnchorStyles.Right)));
    117133      this.tbRemaining.Enabled = false;
     
    132148      // tbTotal
    133149      //
    134       this.tbTotal.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
     150      this.tbTotal.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
    135151            | System.Windows.Forms.AnchorStyles.Right)));
    136152      this.tbTotal.Enabled = false;
     
    193209      // groupBox1
    194210      //
    195       this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
     211      this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
    196212            | System.Windows.Forms.AnchorStyles.Right)));
    197213      this.groupBox1.Controls.Add(this.label4);
  • branches/Async/HeuristicLab.DataPreprocessing.Views/3.4/FilterView.cs

    r11044 r15280  
    1 using System;
     1#region License Information
     2/* HeuristicLab
     3 * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     4 *
     5 * This file is part of HeuristicLab.
     6 *
     7 * HeuristicLab is free software: you can redistribute it and/or modify
     8 * it under the terms of the GNU General Public License as published by
     9 * the Free Software Foundation, either version 3 of the License, or
     10 * (at your option) any later version.
     11 *
     12 * HeuristicLab is distributed in the hope that it will be useful,
     13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
     14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     15 * GNU General Public License for more details.
     16 *
     17 * You should have received a copy of the GNU General Public License
     18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
     19 */
     20#endregion
     21
     22using System;
    223using System.Collections.Generic;
    324using System.Linq;
    4 using System.Windows.Forms;
    525using HeuristicLab.Collections;
    6 using HeuristicLab.Core;
    726using HeuristicLab.Core.Views;
    8 using HeuristicLab.Data;
    927using HeuristicLab.DataPreprocessing.Filter;
    1028using HeuristicLab.MainForm;
     
    2240    }
    2341
    24     private void InitData()
    25     {
    26         checkedFilterView.Content = Content.Filters;
    27         checkedFilterView.Content.ItemsAdded += Content_ItemsAdded;
    28         checkedFilterView.Content.ItemsRemoved += Content_ItemsRemoved;
    29         checkedFilterView.Content.CheckedItemsChanged += Content_CheckedItemsChanged;
     42    private void InitData() {
     43      checkedFilterView.Content = Content.Filters;
     44      checkedFilterView.Content.ItemsAdded += Content_ItemsAdded;
     45      checkedFilterView.Content.ItemsRemoved += Content_ItemsRemoved;
     46      checkedFilterView.Content.CheckedItemsChanged += Content_CheckedItemsChanged;
    3047    }
    3148
     
    3552    }
    3653
    37     protected override void OnContentChanged()
    38     {
     54    protected override void OnContentChanged() {
    3955      base.OnContentChanged();
    40       if (Content != null)
    41       {
     56      if (Content != null) {
    4257        InitData();
    4358        UpdateFilterInfo();
     
    4661
    4762    private void Content_CheckedItemsChanged(object sender, Collections.CollectionItemsChangedEventArgs<IFilter> e) {
    48       if (Content != null)
    49       {
    50         foreach (IFilter filter in e.Items)
    51         {
     63      if (Content != null) {
     64        foreach (IFilter filter in e.Items) {
    5265          filter.Active = checkedFilterView.Content.ItemChecked(filter);
    5366        }
     
    5770
    5871    private void UpdateFilterInfo() {
    59         List<IFilter> filters = Content.Filters.ToList();
    60         int activeFilters = filters.Count(c => c.Active);
    61         applyFilterButton.Enabled = (activeFilters > 0);
    62         rBtnAnd.Enabled = (activeFilters > 0);
    63         rBtnOr.Enabled = (activeFilters > 0);
    64         Content.FilterLogic.Reset();
    65         bool[] result = Content.FilterLogic.Preview(filters, rBtnAnd.Checked);
     72      List<IFilter> filters = Content.Filters.ToList();
     73      int activeFilters = filters.Count(c => c.Active);
     74      applyFilterButton.Enabled = (activeFilters > 0);
     75      rBtnAnd.Enabled = (activeFilters > 0);
     76      rBtnOr.Enabled = (activeFilters > 0);
     77      Content.FilterLogic.Reset();
     78      bool[] result = Content.FilterLogic.Preview(filters, rBtnAnd.Checked);
    6679
    67         int filteredCnt = result.Count(c => !c);
     80      int filteredCnt = result.Count(c => !c);
    6881
    69         tbRemaining.Text = filteredCnt.ToString();
    70         double percentage = result.Length == 0 ? 0.0 : filteredCnt * 100 / (double)result.Length;
    71         tbPercentage.Text = String.Format("{0:0.0000}%", percentage);
    72         tbTotal.Text = result.Length.ToString();
     82      tbRemaining.Text = filteredCnt.ToString();
     83      double percentage = result.Length == 0 ? 0.0 : filteredCnt * 100 / (double)result.Length;
     84      tbPercentage.Text = String.Format("{0:0.0000}%", percentage);
     85      tbTotal.Text = result.Length.ToString();
    7386    }
    7487
    7588    private void applyFilterButton_Click(object sender, EventArgs e) {
    76       if (Content != null)
    77       {
     89      if (Content != null) {
    7890        List<IFilter> filters = Content.Filters.ToList();
    7991        //apply filters
     
    8193        //deactivate checked filters
    8294        filters = checkedFilterView.Content.CheckedItems.ToList();
    83         foreach (IFilter filter in filters)
    84         {
     95        foreach (IFilter filter in filters) {
    8596          checkedFilterView.Content.SetItemCheckedState(filter, false);
    8697          filter.Active = false;
     
    92103    //whenever a new filter is added the preprocessing data is set to the filter
    93104    private void Content_ItemsAdded(object sender, Collections.CollectionItemsChangedEventArgs<IFilter> e) {
    94       if (Content != null)
    95       {
    96         foreach (IFilter filter in e.Items)
    97         {
     105      if (Content != null) {
     106        foreach (IFilter filter in e.Items) {
    98107          filter.ConstrainedValue = Content.FilterLogic.PreprocessingData;
    99108        }
     
    102111
    103112    private void Content_ItemsRemoved(object sender, CollectionItemsChangedEventArgs<IFilter> e) {
    104       if (Content != null)
    105       {
     113      if (Content != null) {
    106114        UpdateFilterInfo();
    107115      }
    108116    }
    109117
    110     private void rBtnAnd_CheckedChanged(object sender, EventArgs e)
    111     {
    112       if (Content != null)
    113       {
     118    private void rBtnAnd_CheckedChanged(object sender, EventArgs e) {
     119      if (Content != null) {
    114120        UpdateFilterInfo();
    115121        Content.IsAndCombination = rBtnAnd.Checked;
  • branches/Async/HeuristicLab.DataPreprocessing.Views/3.4/HeuristicLab.DataPreprocessing.Views-3.4.csproj

    r13252 r15280  
    9797  </ItemGroup>
    9898  <ItemGroup>
     99    <Compile Include="DataPreprocessingMenuItem.cs" />
    99100    <Compile Include="PreprocessingFeatureCorrelationView.cs">
    100101      <SubType>UserControl</SubType>
     
    254255      <Project>{958b43bc-cc5c-4fa2-8628-2b3b01d890b6}</Project>
    255256      <Name>HeuristicLab.Collections-3.3</Name>
     257      <Private>False</Private>
    256258    </ProjectReference>
    257259    <ProjectReference Include="..\..\HeuristicLab.Common.Resources\3.3\HeuristicLab.Common.Resources-3.3.csproj">
     
    305307      <Private>False</Private>
    306308    </ProjectReference>
     309    <ProjectReference Include="..\..\HeuristicLab.Optimizer\3.3\HeuristicLab.Optimizer-3.3.csproj">
     310      <Project>{C664305E-497C-4533-A140-967DEDB05C19}</Project>
     311      <Name>HeuristicLab.Optimizer-3.3</Name>
     312      <Private>False</Private>
     313    </ProjectReference>
    307314    <ProjectReference Include="..\..\HeuristicLab.PluginInfrastructure\3.3\HeuristicLab.PluginInfrastructure-3.3.csproj">
    308315      <Project>{94186a6a-5176-4402-ae83-886557b53cca}</Project>
     
    318325      <Project>{df87c13e-a889-46ff-8153-66dcaa8c5674}</Project>
    319326      <Name>HeuristicLab.Problems.DataAnalysis-3.4</Name>
     327      <Private>False</Private>
     328    </ProjectReference>
     329    <ProjectReference Include="..\..\HeuristicLab.Problems.Instances.DataAnalysis.Views\3.3\HeuristicLab.Problems.Instances.DataAnalysis.Views-3.3.csproj">
     330      <Project>{72232235-B6CF-4E6C-B086-9E9E11AA0717}</Project>
     331      <Name>HeuristicLab.Problems.Instances.DataAnalysis.Views-3.3</Name>
     332      <Private>False</Private>
     333    </ProjectReference>
     334    <ProjectReference Include="..\..\HeuristicLab.Problems.Instances.DataAnalysis\3.3\HeuristicLab.Problems.Instances.DataAnalysis-3.3.csproj">
     335      <Project>{94C7714E-29D4-4D6D-B213-2C18D627AB75}</Project>
     336      <Name>HeuristicLab.Problems.Instances.DataAnalysis-3.3</Name>
     337      <Private>False</Private>
     338    </ProjectReference>
     339    <ProjectReference Include="..\..\HeuristicLab.Problems.Instances\3.3\HeuristicLab.Problems.Instances-3.3.csproj">
     340      <Project>{3540E29E-4793-49E7-8EE2-FEA7F61C3994}</Project>
     341      <Name>HeuristicLab.Problems.Instances-3.3</Name>
    320342      <Private>False</Private>
    321343    </ProjectReference>
  • branches/Async/HeuristicLab.DataPreprocessing.Views/3.4/HistogramView.Designer.cs

    r12676 r15280  
    1 namespace HeuristicLab.DataPreprocessing.Views {
     1#region License Information
     2/* HeuristicLab
     3 * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     4 *
     5 * This file is part of HeuristicLab.
     6 *
     7 * HeuristicLab is free software: you can redistribute it and/or modify
     8 * it under the terms of the GNU General Public License as published by
     9 * the Free Software Foundation, either version 3 of the License, or
     10 * (at your option) any later version.
     11 *
     12 * HeuristicLab is distributed in the hope that it will be useful,
     13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
     14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     15 * GNU General Public License for more details.
     16 *
     17 * You should have received a copy of the GNU General Public License
     18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
     19 */
     20#endregion
     21
     22namespace HeuristicLab.DataPreprocessing.Views {
    223  partial class HistogramView {
    324    /// <summary>
  • branches/Async/HeuristicLab.DataPreprocessing.Views/3.4/HistogramView.cs

    r12676 r15280  
    1919 */
    2020#endregion
     21
    2122using System;
    22 using System.Windows.Forms;
    2323using HeuristicLab.Analysis;
    2424using HeuristicLab.MainForm;
  • branches/Async/HeuristicLab.DataPreprocessing.Views/3.4/LineChartView.Designer.cs

    r10736 r15280  
    1 namespace HeuristicLab.DataPreprocessing.Views {
     1#region License Information
     2/* HeuristicLab
     3 * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     4 *
     5 * This file is part of HeuristicLab.
     6 *
     7 * HeuristicLab is free software: you can redistribute it and/or modify
     8 * it under the terms of the GNU General Public License as published by
     9 * the Free Software Foundation, either version 3 of the License, or
     10 * (at your option) any later version.
     11 *
     12 * HeuristicLab is distributed in the hope that it will be useful,
     13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
     14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     15 * GNU General Public License for more details.
     16 *
     17 * You should have received a copy of the GNU General Public License
     18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
     19 */
     20#endregion
     21
     22namespace HeuristicLab.DataPreprocessing.Views {
    223  partial class LineChartView {
    324    /// <summary>
  • branches/Async/HeuristicLab.DataPreprocessing.Views/3.4/LineChartView.cs

    r12012 r15280  
    2121
    2222using System;
    23 using System.Windows.Forms;
    2423using HeuristicLab.Analysis;
    2524using HeuristicLab.MainForm;
     
    4645    private void allInOneCheckBox_CheckedChanged(object sender, EventArgs e) {
    4746      Content.AllInOneMode = allInOneCheckBox.Checked;
    48  
     47
    4948      GenerateChart();
    5049    }
    5150
    52     protected override void OnContentChanged()
    53     {
     51    protected override void OnContentChanged() {
    5452      base.OnContentChanged();
    55       if (Content != null)
    56       {
     53      if (Content != null) {
    5754        allInOneCheckBox.Checked = Content.AllInOneMode;
    5855      }
  • branches/Async/HeuristicLab.DataPreprocessing.Views/3.4/ManipulationView.Designer.cs

    r12676 r15280  
    1 namespace HeuristicLab.DataPreprocessing.Views {
     1#region License Information
     2/* HeuristicLab
     3 * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     4 *
     5 * This file is part of HeuristicLab.
     6 *
     7 * HeuristicLab is free software: you can redistribute it and/or modify
     8 * it under the terms of the GNU General Public License as published by
     9 * the Free Software Foundation, either version 3 of the License, or
     10 * (at your option) any later version.
     11 *
     12 * HeuristicLab is distributed in the hope that it will be useful,
     13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
     14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     15 * GNU General Public License for more details.
     16 *
     17 * You should have received a copy of the GNU General Public License
     18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
     19 */
     20#endregion
     21
     22namespace HeuristicLab.DataPreprocessing.Views {
    223  partial class ManipulationView {
    324    /// <summary>
     
    91112      // lstMethods
    92113      //
    93       this.lstMethods.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
     114      this.lstMethods.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
    94115            | System.Windows.Forms.AnchorStyles.Right)));
    95116      this.lstMethods.FormattingEnabled = true;
     
    124145      // grpBoxData
    125146      //
    126       this.grpBoxData.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
     147      this.grpBoxData.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
    127148            | System.Windows.Forms.AnchorStyles.Right)));
    128149      this.grpBoxData.Controls.Add(this.tabsData);
     
    138159      // tabsData
    139160      //
    140       this.tabsData.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
     161      this.tabsData.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
    141162            | System.Windows.Forms.AnchorStyles.Right)));
    142163      this.tabsData.Controls.Add(this.tabPage1);
     
    416437      // grpBoxPreview
    417438      //
    418       this.grpBoxPreview.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
    419             | System.Windows.Forms.AnchorStyles.Left) 
     439      this.grpBoxPreview.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
     440            | System.Windows.Forms.AnchorStyles.Left)
    420441            | System.Windows.Forms.AnchorStyles.Right)));
    421442      this.grpBoxPreview.Controls.Add(this.tabsPreview);
     
    431452      // tabsPreview
    432453      //
    433       this.tabsPreview.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
     454      this.tabsPreview.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
    434455            | System.Windows.Forms.AnchorStyles.Right)));
    435456      this.tabsPreview.Controls.Add(this.tabPreviewInactive);
  • branches/Async/HeuristicLab.DataPreprocessing.Views/3.4/ManipulationView.cs

    r12676 r15280  
    155155        int count = filteredColumns.Count;
    156156        int columnCount = Content.FilterLogic.PreprocessingData.Columns;
    157         lblPreviewColumnsInfo.Text = count + " column" + (count > 1 || count == 0 ? "s" : "") + " of " + columnCount + " (" + string.Format("{0:F2}%", 100d / columnCount * count) + ") were detected with more than " + txtDeleteColumnsInfo.Text + "% missing values.";
    158         if (count > 0) {
     157        lblPreviewColumnsInfo.Text = string.Format("{0} column{1} of {2} ({3}) were detected with more than {4}% missing values.", count, (count > 1 || count == 0 ? "s" : ""), columnCount, string.Format("{0:F2}%", 100d / columnCount * count), txtDeleteColumnsInfo.Text);
     158
     159        //only display column names more than 0 and fewer than 50 are affected
     160        if (count > 0 && count < 50) {
    159161          StringBuilder sb = new StringBuilder();
    160162          sb.Append(Environment.NewLine);
     
    170172
    171173          lblPreviewColumnsInfo.Text += sb.ToString();
    172         } else {
    173           btnApply.Enabled = false;
    174         }
     174        }
     175
     176        btnApply.Enabled = count > 0;
    175177      } else {
    176178        lblPreviewColumnsInfo.Text = "Preview not possible yet - please input the limit above.";
     
    184186        int count = filteredColumns.Count;
    185187        int columnCount = Content.FilterLogic.PreprocessingData.Columns;
    186         lblPreviewColumnsVariance.Text = count + " column" + (count > 1 || count == 0 ? "s" : "") + " of " + columnCount + " (" + string.Format("{0:F2}%", 100d / columnCount * count) + ") were detected with a variance smaller than " + txtDeleteColumnsVariance.Text + ".";
    187         if (count > 0) {
     188        lblPreviewColumnsVariance.Text = string.Format("{0} column{1} of {2} ({3}) were detected with a variance smaller than {4}.", count, (count > 1 || count == 0 ? "s" : ""), columnCount, string.Format("{0:F2}%", 100d / columnCount * count), txtDeleteColumnsVariance.Text);
     189
     190        //only display column names more than 0 and fewer than 50 are affected
     191        if (count > 0 && count < 50) {
    188192          StringBuilder sb = new StringBuilder();
    189193          sb.Append(Environment.NewLine);
     
    199203
    200204          lblPreviewColumnsVariance.Text += sb.ToString();
    201         } else {
    202           btnApply.Enabled = false;
    203         }
     205        }
     206
     207        btnApply.Enabled = count > 0;
    204208      } else {
    205209        lblPreviewColumnsVariance.Text = "Preview not possible yet - please input the limit for the variance above.";
  • branches/Async/HeuristicLab.DataPreprocessing.Views/3.4/Plugin.cs.frame

    r13321 r15280  
    4141  [PluginDependency("HeuristicLab.MainForm.WindowsForms", "3.3")]
    4242  [PluginDependency("HeuristicLab.Optimization", "3.3")]
     43  [PluginDependency("HeuristicLab.Optimizer", "3.3")]
    4344  [PluginDependency("HeuristicLab.Problems.DataAnalysis", "3.4")]
    4445  [PluginDependency("HeuristicLab.Problems.DataAnalysis.Views", "3.4")]
     46  [PluginDependency("HeuristicLab.Problems.Instances", "3.3")]
     47  [PluginDependency("HeuristicLab.Problems.Instances.DataAnalysis", "3.3")]
     48  [PluginDependency("HeuristicLab.Problems.Instances.DataAnalysis.Views", "3.3")]
    4549  [PluginDependency("HeuristicLab.Visualization.ChartControlsExtensions", "3.3")]
    4650  public class HeuristicLabDataPreprocessingViewPlugin : PluginBase {
  • branches/Async/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingChartView.Designer.cs

    r12012 r15280  
    2020#endregion
    2121
    22 using HeuristicLab.Data;
    2322namespace HeuristicLab.DataPreprocessing.Views {
    2423  partial class PreprocessingChartView {
     
    6564      // tableLayoutPanel
    6665      //
    67       this.tableLayoutPanel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
    68             | System.Windows.Forms.AnchorStyles.Left) 
     66      this.tableLayoutPanel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
     67            | System.Windows.Forms.AnchorStyles.Left)
    6968            | System.Windows.Forms.AnchorStyles.Right)));
    7069      this.tableLayoutPanel.AutoScroll = true;
     
    8281      // checkedItemList
    8382      //
    84       this.checkedItemList.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
     83      this.checkedItemList.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
    8584            | System.Windows.Forms.AnchorStyles.Left)));
    8685      this.checkedItemList.Caption = "View";
  • branches/Async/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingChartView.cs

    r12676 r15280  
    2828using HeuristicLab.Core.Views;
    2929using HeuristicLab.Data;
    30 using HeuristicLab.DataPreprocessing.Implementations;
    3130using HeuristicLab.MainForm;
    3231
    3332namespace HeuristicLab.DataPreprocessing.Views {
    34 
    3533  [View("Preprocessing Chart View")]
    3634  [Content(typeof(PreprocessingChartContent), false)]
  • branches/Async/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingCheckedItemListView.cs

    r12012 r15280  
    2222#endregion
    2323
    24 using System.Windows.Forms;
    2524using HeuristicLab.Core;
    2625using HeuristicLab.Core.Views;
  • branches/Async/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingDataTableView.Designer.cs

    r12012 r15280  
    2020#endregion
    2121
    22 namespace HeuristicLab.DataPreprocessing.Views
    23 {
     22namespace HeuristicLab.DataPreprocessing.Views {
    2423  partial class PreprocessingDataTableView {
    2524    /// <summary>
     
    5756      // chart
    5857      //
    59       this.chart.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
    60             | System.Windows.Forms.AnchorStyles.Left) 
     58      this.chart.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
     59            | System.Windows.Forms.AnchorStyles.Left)
    6160            | System.Windows.Forms.AnchorStyles.Right)));
    6261      this.chart.BorderlineColor = System.Drawing.Color.Black;
  • branches/Async/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingDataTableView.cs

    r12676 r15280  
    2626using System.Windows.Forms;
    2727using System.Windows.Forms.DataVisualization.Charting;
     28using HeuristicLab.Analysis;
     29using HeuristicLab.Analysis.Views;
    2830using HeuristicLab.Collections;
    2931using HeuristicLab.Core.Views;
    30 using HeuristicLab.DataPreprocessing.Implementations;
    3132using HeuristicLab.MainForm;
    32 using HeuristicLab.Analysis;
    33 using HeuristicLab.Analysis.Views;
    3433
    3534namespace HeuristicLab.DataPreprocessing.Views {
     
    746745
    747746      //  shift the chart to the left so the bars are placed on the intervals
    748       if (Classification != null || valueFrequencies.First().Item1 < doubleRange.First()) {
     747      if (Classification != null || (valueFrequencies.Any() && valueFrequencies.First().Item1 < doubleRange.First())) {
    749748        series.Points.Add(new DataPoint(min - intervalWidth, 0));
    750749        series.Points.Add(new DataPoint(max + intervalWidth, 0));
  • branches/Async/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingFeatureCorrelationView.Designer.cs

    r12012 r15280  
    4747    /// </summary>
    4848    private void InitializeComponent() {
    49       this.components = new System.ComponentModel.Container();     
     49      this.components = new System.ComponentModel.Container();
    5050      this.ResumeLayout(false);
    5151    }
  • branches/Async/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingFeatureCorrelationView.cs

    r12012 r15280  
    2020#endregion
    2121
    22 using System.Collections.Generic;
    23 using System.ComponentModel;
    24 using System.Linq;
    2522using System.Windows.Forms;
    26 using HeuristicLab.Data;
     23using HeuristicLab.DataPreprocessing;
    2724using HeuristicLab.MainForm;
    2825using HeuristicLab.MainForm.WindowsForms;
    29 using HeuristicLab.PluginInfrastructure;
    30 using System;
    31 using HeuristicLab.DataPreprocessing;
    32 using HeuristicLab.Problems.DataAnalysis.Views;
    3326
    3427namespace HeuristicLab.Problems.DataAnalysis.Views {
     
    3730  public partial class PreprocessingFeatureCorrelationView : AsynchronousContentView {
    3831
    39     public new CorrelationMatrixContent Content
    40     {
    41       get { return (CorrelationMatrixContent) base.Content; }
     32    public new CorrelationMatrixContent Content {
     33      get { return (CorrelationMatrixContent)base.Content; }
    4234      set { base.Content = value; }
    4335    }
     
    5547    protected override void RegisterContentEvents() {
    5648      base.RegisterContentEvents();
    57       Content.Changed += Data_Changed;     
     49      Content.Changed += Data_Changed;
    5850    }
    5951
    6052    protected override void DeregisterContentEvents() {
    61       Content.Changed -= Data_Changed;     
     53      Content.Changed -= Data_Changed;
    6254      base.DeregisterContentEvents();
    6355    }
  • branches/Async/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingScatterPlotView.Designer.cs

    r12012 r15280  
    5656      // chart
    5757      //
    58       this.chart.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
    59             | System.Windows.Forms.AnchorStyles.Left) 
     58      this.chart.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
     59            | System.Windows.Forms.AnchorStyles.Left)
    6060            | System.Windows.Forms.AnchorStyles.Right)));
    6161      this.chart.BorderlineColor = System.Drawing.Color.Black;
  • branches/Async/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingScatterPlotView.cs

    r12012 r15280  
    462462      if (chartDoubleClick != null)
    463463        chartDoubleClick(this, e);
    464     } 
     464    }
    465465  }
    466466}
  • branches/Async/HeuristicLab.DataPreprocessing.Views/3.4/RenameColumnsDialog.Designer.cs

    r13271 r15280  
    7878      this.dataGridView.AllowUserToAddRows = false;
    7979      this.dataGridView.AllowUserToDeleteRows = false;
    80       this.dataGridView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
    81             | System.Windows.Forms.AnchorStyles.Left) 
     80      this.dataGridView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
     81            | System.Windows.Forms.AnchorStyles.Left)
    8282            | System.Windows.Forms.AnchorStyles.Right)));
    8383      this.dataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
  • branches/Async/HeuristicLab.DataPreprocessing.Views/3.4/ScatterPlotMultiView.Designer.cs

    r10987 r15280  
    1 namespace HeuristicLab.DataPreprocessing.Views {
     1#region License Information
     2/* HeuristicLab
     3 * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     4 *
     5 * This file is part of HeuristicLab.
     6 *
     7 * HeuristicLab is free software: you can redistribute it and/or modify
     8 * it under the terms of the GNU General Public License as published by
     9 * the Free Software Foundation, either version 3 of the License, or
     10 * (at your option) any later version.
     11 *
     12 * HeuristicLab is distributed in the hope that it will be useful,
     13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
     14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     15 * GNU General Public License for more details.
     16 *
     17 * You should have received a copy of the GNU General Public License
     18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
     19 */
     20#endregion
     21
     22namespace HeuristicLab.DataPreprocessing.Views {
    223  partial class ScatterPlotMultiView {
    324    /// <summary>
     
    2950      // tableLayoutPanel
    3051      //
    31       this.tableLayoutPanel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
    32             | System.Windows.Forms.AnchorStyles.Left) 
     52      this.tableLayoutPanel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
     53            | System.Windows.Forms.AnchorStyles.Left)
    3354            | System.Windows.Forms.AnchorStyles.Right)));
    3455      this.tableLayoutPanel.AutoScroll = true;
  • branches/Async/HeuristicLab.DataPreprocessing.Views/3.4/ScatterPlotMultiView.cs

    r10992 r15280  
    77using HeuristicLab.Common;
    88using HeuristicLab.Core.Views;
    9 using HeuristicLab.DataPreprocessing.Implementations;
    109using HeuristicLab.MainForm;
    1110
    1211namespace HeuristicLab.DataPreprocessing.Views {
    13 
    1412  [View("Scatter Plot Multi View")]
    1513  [Content(typeof(ScatterPlotContent), false)]
     
    8179          tableLayoutPanel.RowStyles.Add(new RowStyle(SizeType.Absolute, (tableLayoutPanel.Height - HEADER_HEIGHT) / variables.Count));
    8280        }
    83           // fixed size
     81        // fixed size
    8482        else {
    8583          tableLayoutPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, FIXED_CHART_WIDTH));
     
    111109            tableLayoutPanel.Controls.Add(pcv, y, x);
    112110          }
    113             //scatter plot
     111          //scatter plot
    114112          else {
    115113            ScatterPlot scatterPlot = Content.CreateScatterPlot(variables[x - 1], variables[y - 1]);
  • branches/Async/HeuristicLab.DataPreprocessing.Views/3.4/ScatterPlotSingleView.Designer.cs

    r11043 r15280  
    1 namespace HeuristicLab.DataPreprocessing.Views {
     1#region License Information
     2/* HeuristicLab
     3 * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     4 *
     5 * This file is part of HeuristicLab.
     6 *
     7 * HeuristicLab is free software: you can redistribute it and/or modify
     8 * it under the terms of the GNU General Public License as published by
     9 * the Free Software Foundation, either version 3 of the License, or
     10 * (at your option) any later version.
     11 *
     12 * HeuristicLab is distributed in the hope that it will be useful,
     13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
     14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     15 * GNU General Public License for more details.
     16 *
     17 * You should have received a copy of the GNU General Public License
     18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
     19 */
     20#endregion
     21
     22namespace HeuristicLab.DataPreprocessing.Views {
    223  partial class ScatterPlotSingleView {
    324    /// <summary>
     
    3051      this.comboBoxYVariable = new System.Windows.Forms.ComboBox();
    3152      this.comboBoxXVariable = new System.Windows.Forms.ComboBox();
     53      this.label3 = new System.Windows.Forms.Label();
     54      this.comboBoxColor = new System.Windows.Forms.ComboBox();
    3255      this.groupBox1.SuspendLayout();
    3356      this.SuspendLayout();
     
    3558      // scatterPlotView
    3659      //
    37       this.scatterPlotView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
    38             | System.Windows.Forms.AnchorStyles.Left) 
     60      this.scatterPlotView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
     61            | System.Windows.Forms.AnchorStyles.Left)
    3962            | System.Windows.Forms.AnchorStyles.Right)));
    4063      this.scatterPlotView.Caption = "ScatterPlot View";
     
    4871      // groupBox1
    4972      //
     73      this.groupBox1.Controls.Add(this.label3);
    5074      this.groupBox1.Controls.Add(this.label2);
    5175      this.groupBox1.Controls.Add(this.label1);
     76      this.groupBox1.Controls.Add(this.comboBoxColor);
    5277      this.groupBox1.Controls.Add(this.comboBoxYVariable);
    5378      this.groupBox1.Controls.Add(this.comboBoxXVariable);
    5479      this.groupBox1.Location = new System.Drawing.Point(3, 3);
    5580      this.groupBox1.Name = "groupBox1";
    56       this.groupBox1.Size = new System.Drawing.Size(160, 140);
     81      this.groupBox1.Size = new System.Drawing.Size(160, 215);
    5782      this.groupBox1.TabIndex = 1;
    5883      this.groupBox1.TabStop = false;
     
    99124      this.comboBoxXVariable.SelectedIndexChanged += new System.EventHandler(this.comboBox_SelectedIndexChanged);
    100125      //
     126      // label3
     127      //
     128      this.label3.AutoSize = true;
     129      this.label3.Location = new System.Drawing.Point(17, 141);
     130      this.label3.Name = "label3";
     131      this.label3.Size = new System.Drawing.Size(31, 13);
     132      this.label3.TabIndex = 3;
     133      this.label3.Text = "Color";
     134      //
     135      // comboBoxColor
     136      //
     137      this.comboBoxColor.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
     138      this.comboBoxColor.FormattingEnabled = true;
     139      this.comboBoxColor.Location = new System.Drawing.Point(20, 164);
     140      this.comboBoxColor.Margin = new System.Windows.Forms.Padding(3, 10, 3, 3);
     141      this.comboBoxColor.Name = "comboBoxColor";
     142      this.comboBoxColor.Size = new System.Drawing.Size(121, 21);
     143      this.comboBoxColor.TabIndex = 1;
     144      this.comboBoxColor.SelectedIndexChanged += new System.EventHandler(this.comboBox_SelectedIndexChanged);
     145      //
    101146      // ScatterPlotSingleView
    102147      //
     
    121166    private System.Windows.Forms.ComboBox comboBoxYVariable;
    122167    private System.Windows.Forms.ComboBox comboBoxXVariable;
     168    private System.Windows.Forms.ComboBox comboBoxColor;
     169    private System.Windows.Forms.Label label3;
    123170  }
    124171}
  • branches/Async/HeuristicLab.DataPreprocessing.Views/3.4/ScatterPlotSingleView.cs

    r10998 r15280  
    1 using System;
     1#region License Information
     2/* HeuristicLab
     3 * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     4 *
     5 * This file is part of HeuristicLab.
     6 *
     7 * HeuristicLab is free software: you can redistribute it and/or modify
     8 * it under the terms of the GNU General Public License as published by
     9 * the Free Software Foundation, either version 3 of the License, or
     10 * (at your option) any later version.
     11 *
     12 * HeuristicLab is distributed in the hope that it will be useful,
     13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
     14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     15 * GNU General Public License for more details.
     16 *
     17 * You should have received a copy of the GNU General Public License
     18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
     19 */
     20#endregion
     21
     22using System;
    223using System.Collections.Generic;
    324using System.Linq;
    4 using System.Windows.Forms;
    525using HeuristicLab.Analysis;
    626using HeuristicLab.Core.Views;
     
    1838    }
    1939
    20     public ScatterPlotSingleView()
    21     {
     40    public ScatterPlotSingleView() {
    2241      InitializeComponent();
    2342    }
    2443
    2544    public void InitData() {
    26 
    2745      IEnumerable<string> variables = Content.PreprocessingData.GetDoubleVariableNames();
    2846
     
    3048      comboBoxXVariable.Items.Clear();
    3149      comboBoxYVariable.Items.Clear();
     50      comboBoxColor.Items.Clear();
    3251      comboBoxXVariable.Items.AddRange(variables.ToArray());
    3352      comboBoxYVariable.Items.AddRange(variables.ToArray());
     53      comboBoxColor.Items.Add("-");
     54      for (int i = 0; i < Content.PreprocessingData.Columns; ++i) {
     55        if (Content.PreprocessingData.VariableHasType<double>(i)) {
     56          double distinctValueCount = Content.PreprocessingData.GetValues<double>(i).GroupBy(x => x).Count();
     57          if (distinctValueCount <= 20)
     58            comboBoxColor.Items.Add(Content.PreprocessingData.GetVariableName(i));
     59        }
     60      }
    3461
    3562      // use x and y variable from content
    36       if (Content.SelectedXVariable != null && Content.SelectedYVariable != null) {
     63      if (Content.SelectedXVariable != null && Content.SelectedYVariable != null && Content.SelectedColorVariable != null) {
    3764        comboBoxXVariable.SelectedItem = Content.SelectedXVariable;
    3865        comboBoxYVariable.SelectedItem = Content.SelectedYVariable;
     66        comboBoxColor.SelectedItem = Content.SelectedColorVariable;
    3967      } else {
    4068        if (variables.Count() >= 2) {
    4169          comboBoxXVariable.SelectedIndex = 0;
    4270          comboBoxYVariable.SelectedIndex = 1;
     71          comboBoxColor.SelectedIndex = 0;
    4372          UpdateScatterPlot();
    44 
    4573        }
    4674      }
     
    5987
    6088    private void UpdateScatterPlot() {
    61       if (comboBoxXVariable.SelectedItem != null && comboBoxYVariable.SelectedItem != null) {
     89      if (comboBoxXVariable.SelectedItem != null && comboBoxYVariable.SelectedItem != null && comboBoxColor.SelectedItem != null) {
    6290        //get scatter plot with selected x and y variable
    63         ScatterPlot scatterPlot = Content.CreateScatterPlot((string)comboBoxXVariable.SelectedItem, (string)comboBoxYVariable.SelectedItem);
     91        ScatterPlot scatterPlot = Content.CreateScatterPlot(
     92          (string)comboBoxXVariable.SelectedItem,
     93          (string)comboBoxYVariable.SelectedItem,
     94          (string)comboBoxColor.SelectedItem);
    6495        scatterPlotView.Content = scatterPlot;
    6596
     
    6798        this.Content.SelectedXVariable = (string)comboBoxXVariable.SelectedItem;
    6899        this.Content.SelectedYVariable = (string)comboBoxYVariable.SelectedItem;
     100        this.Content.SelectedColorVariable = (string)comboBoxColor.SelectedItem;
    69101      }
    70102    }
    71 
    72103  }
    73 
    74 
    75104}
  • branches/Async/HeuristicLab.DataPreprocessing.Views/3.4/SearchAndReplaceDialog.Designer.cs

    r10930 r15280  
    1 namespace HeuristicLab.DataPreprocessing.Views {
     1#region License Information
     2/* HeuristicLab
     3 * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     4 *
     5 * This file is part of HeuristicLab.
     6 *
     7 * HeuristicLab is free software: you can redistribute it and/or modify
     8 * it under the terms of the GNU General Public License as published by
     9 * the Free Software Foundation, either version 3 of the License, or
     10 * (at your option) any later version.
     11 *
     12 * HeuristicLab is distributed in the hope that it will be useful,
     13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
     14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     15 * GNU General Public License for more details.
     16 *
     17 * You should have received a copy of the GNU General Public License
     18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
     19 */
     20#endregion
     21
     22namespace HeuristicLab.DataPreprocessing.Views {
    223  partial class SearchAndReplaceDialog {
    324    /// <summary>
     
    4465      // tabSearchReplace
    4566      //
    46       this.tabSearchReplace.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
    47             | System.Windows.Forms.AnchorStyles.Left) 
     67      this.tabSearchReplace.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
     68            | System.Windows.Forms.AnchorStyles.Left)
    4869            | System.Windows.Forms.AnchorStyles.Right)));
    4970      this.tabSearchReplace.Controls.Add(this.tabSearch);
  • branches/Async/HeuristicLab.DataPreprocessing.Views/3.4/SearchAndReplaceDialog.cs

    r10930 r15280  
    1 using System;
     1#region License Information
     2/* HeuristicLab
     3 * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     4 *
     5 * This file is part of HeuristicLab.
     6 *
     7 * HeuristicLab is free software: you can redistribute it and/or modify
     8 * it under the terms of the GNU General Public License as published by
     9 * the Free Software Foundation, either version 3 of the License, or
     10 * (at your option) any later version.
     11 *
     12 * HeuristicLab is distributed in the hope that it will be useful,
     13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
     14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     15 * GNU General Public License for more details.
     16 *
     17 * You should have received a copy of the GNU General Public License
     18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
     19 */
     20#endregion
     21
     22using System;
    223using System.Windows.Forms;
    324
     
    2041    NotEqual
    2142  }
    22 
    23 
    2443
    2544  public partial class SearchAndReplaceDialog : Form {
  • branches/Async/HeuristicLab.DataPreprocessing.Views/3.4/StatisticsView.cs

    r12889 r15280  
    146146        logic.GetColumnTypeAsString(columnIndex),
    147147        logic.GetMissingValueCount(columnIndex).ToString(),
    148         logic.GetMin<double>(columnIndex).ToString(),
    149         logic.GetMax<double>(columnIndex).ToString(),
     148        logic.GetMin<double>(columnIndex,double.NaN).ToString(),
     149        logic.GetMax<double>(columnIndex,double.NaN).ToString(),
    150150        logic.GetMedian(columnIndex).ToString(),
    151151        logic.GetAverage(columnIndex).ToString(),
     
    154154        logic.GetOneQuarterPercentile(columnIndex).ToString(),
    155155        logic.GetThreeQuarterPercentile(columnIndex).ToString(),
    156         logic.GetMostCommonValue<double>(columnIndex).ToString(),
     156        logic.GetMostCommonValue<double>(columnIndex,double.NaN).ToString(),
    157157        logic.GetDifferentValuesCount<double>(columnIndex).ToString()
    158158      };
     
    172172        "", //quarter percentile
    173173        "", //three quarter percentile
    174         logic.GetMostCommonValue<string>(columnIndex) ?? "",
     174        logic.GetMostCommonValue<string>(columnIndex,string.Empty) ?? "",
    175175        logic.GetDifferentValuesCount<string>(columnIndex).ToString()
    176176      };
     
    182182        logic.GetColumnTypeAsString(columnIndex),
    183183        logic.GetMissingValueCount(columnIndex).ToString(),
    184         logic.GetMin<DateTime>(columnIndex).ToString(),
    185         logic.GetMax<DateTime>(columnIndex).ToString(),
     184        logic.GetMin<DateTime>(columnIndex,DateTime.MinValue).ToString(),
     185        logic.GetMax<DateTime>(columnIndex,DateTime.MinValue).ToString(),
    186186        logic.GetMedianDateTime(columnIndex).ToString(),
    187187        logic.GetAverageDateTime(columnIndex).ToString(),
     
    190190        logic.GetOneQuarterPercentile(columnIndex).ToString(),
    191191        logic.GetThreeQuarterPercentile(columnIndex).ToString(),
    192         logic.GetMostCommonValue<DateTime>(columnIndex).ToString(),
     192        logic.GetMostCommonValue<DateTime>(columnIndex,DateTime.MinValue).ToString(),
    193193        logic.GetDifferentValuesCount<DateTime>(columnIndex).ToString()
    194194      };
  • branches/Async/HeuristicLab.DataPreprocessing.Views/3.4/ViewShortcutListView.Designer.cs

    r12012 r15280  
    1919 */
    2020#endregion
    21 
    2221
    2322namespace HeuristicLab.DataPreprocessing.Views {
     
    4645    /// </summary>
    4746    private void InitializeComponent() {
     47      ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).BeginInit();
     48      this.splitContainer.Panel1.SuspendLayout();
     49      this.splitContainer.Panel2.SuspendLayout();
     50      this.splitContainer.SuspendLayout();
     51      this.itemsGroupBox.SuspendLayout();
     52      this.detailsGroupBox.SuspendLayout();
    4853      this.SuspendLayout();
     54      //
     55      // splitContainer
     56      //
     57      this.splitContainer.Size = new System.Drawing.Size(526, 364);
     58      //
     59      // itemsGroupBox
     60      //
     61      this.itemsGroupBox.Size = new System.Drawing.Size(532, 383);
     62      //
     63      // itemsListView
     64      //
     65      this.itemsListView.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)));
     66      this.itemsListView.Dock = System.Windows.Forms.DockStyle.Fill;
     67      this.itemsListView.Location = new System.Drawing.Point(0, 0);
     68      this.itemsListView.Size = new System.Drawing.Size(200, 364);
     69      //
     70      // detailsGroupBox
     71      //
     72      this.detailsGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)));
     73      this.detailsGroupBox.Dock = System.Windows.Forms.DockStyle.Fill;
     74      this.detailsGroupBox.Location = new System.Drawing.Point(0, 0);
     75      this.detailsGroupBox.Size = new System.Drawing.Size(322, 364);
     76      //
     77      // addButton
     78      //
     79      this.toolTip.SetToolTip(this.addButton, "Add");
     80      this.addButton.Visible = false;
     81      //
     82      // removeButton
     83      //
     84      this.toolTip.SetToolTip(this.removeButton, "Remove");
     85      this.removeButton.Visible = false;
     86      //
     87      // moveUpButton
     88      //
     89      this.toolTip.SetToolTip(this.moveUpButton, "Move Up");
     90      this.moveUpButton.Visible = false;
     91      //
     92      // moveDownButton
     93      //
     94      this.toolTip.SetToolTip(this.moveDownButton, "Move Down");
     95      this.moveDownButton.Visible = false;
     96      //
     97      // viewHost
     98      //
     99      this.viewHost.Size = new System.Drawing.Size(310, 339);
     100      //
     101      // showDetailsCheckBox
     102      //
     103      this.showDetailsCheckBox.Visible = false;
    49104      //
    50105      // ViewShortcutListView
    51106      //
    52       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    53107      this.Name = "ViewShortcutListView";
    54108      this.Size = new System.Drawing.Size(532, 383);
     109      this.splitContainer.Panel1.ResumeLayout(false);
     110      this.splitContainer.Panel2.ResumeLayout(false);
     111      ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).EndInit();
     112      this.splitContainer.ResumeLayout(false);
     113      this.itemsGroupBox.ResumeLayout(false);
     114      this.detailsGroupBox.ResumeLayout(false);
    55115      this.ResumeLayout(false);
     116
    56117    }
    57118
Note: See TracChangeset for help on using the changeset viewer.