Ignore:
Timestamp:
05/14/14 13:37:28 (5 years ago)
Author:
aesterer
Message:

Added coloring feature for line chart

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/PreprocessingChartView.cs

    r10818 r10847  
    4242    private List<PreprocessingDataTable> dataTablePerVariable;
    4343    private List<DataRow> dataRows;
     44    private List<DataRow> selectedDataRows;
    4445
    4546    protected DataRowVisualProperties.DataRowChartType chartType;
     
    5859      foreach (IndexedItem<StringValue> item in checkedItems.Items) {
    5960        string variableName = item.Value.Value;
     61
     62        //variable is displayed -> remove
    6063        if (VariableIsDisplayed(variableName)) {
    6164          dataTable.Rows.Remove(variableName);
     65          dataTable.SelectedRows.Remove(variableName);
    6266          dataTablePerVariable.Remove(dataTablePerVariable.Find(x => (x.Name == variableName)));
     67        //variable isnt't displayed -> add
    6368        } else {
    6469          DataRow row = GetDataRow(variableName);
     70          DataRow selectedRow = GetSelectedDataRow(variableName);
    6571          dataTable.Rows.Add(row);
    6672          PreprocessingDataTable d = new PreprocessingDataTable(variableName);
    6773          d.Rows.Add(row);
    6874          dataTablePerVariable.Add(d);
     75          if (selectedRow != null)
     76          {
     77            dataTable.SelectedRows.Add(selectedRow);
     78            d.SelectedRows.Add(selectedRow);
    6979        }
     80      }
    7081      }
    7182
     
    8899      base.RegisterContentEvents();
    89100      Content.ChartLogic.Changed += PreprocessingData_Changed;
     101      Content.ChartLogic.SelectionChanged += PreprocessingData_SelctionChanged;
    90102
    91103    }
     
    94106      base.DeregisterContentEvents();
    95107      Content.ChartLogic.Changed -= PreprocessingData_Changed;
     108      Content.ChartLogic.SelectionChanged -= PreprocessingData_SelctionChanged;
    96109    }
    97110
     
    109122      dataRows = logic.CreateAllDataRows(chartType);
    110123
    111       // init data table
    112124      dataTable = new PreprocessingDataTable(chartTitle);
    113       dataTable.Rows.AddRange(dataRows);
    114 
    115 
    116       // init data table per variable
    117125      dataTablePerVariable = new List<PreprocessingDataTable>();
     126
     127      //add data rows to data tables according to checked item list
    118128      foreach (var checkedItem in Content.VariableItemList.CheckedItems)
    119129      {
     
    121131        PreprocessingDataTable d = new PreprocessingDataTable(variableName);
    122132        DataRow row = GetDataRow(variableName);
    123         //DataRow rowSelect = logic.CreateDataRowRange(variableName, 200, 400, chartType);
    124         //rowSelect.Name = variableName + "(Selected)";
    125         //rowSelect.VisualProperties.Color = Color.Green;
    126 
     133
     134        //add row to data table
     135        dataTable.Rows.Add(row);
     136
     137        //add row to data table per variable
    127138        d.Rows.Add(row);
    128         //d.SelectedRows.Add(rowSelect);
    129 
    130139        dataTablePerVariable.Add(d);
    131 
    132       }
     140      }
     141
     142      UpdateSelection();
     143    }
     144
     145    private void UpdateSelection() {
     146
     147      //update data table selection
     148      selectedDataRows = logic.CreateAllSelectedDataRows(chartType);
     149      dataTable.SelectedRows.Clear();
     150      dataTable.SelectedRows.AddRange(selectedDataRows);
     151
     152      //update data table per variable selection
     153      foreach (PreprocessingDataTable d in dataTablePerVariable) {
     154        d.SelectedRows.Clear();
     155        DataRow row = selectedDataRows.Find(x => x.Name == d.Name);
     156        if (row != null)
     157          d.SelectedRows.Add(row);
     158      }
     159
     160    }
     161
     162    private DataRow GetSelectedDataRow(string variableName) {
     163      foreach (DataRow row in selectedDataRows) {
     164        if (row.Name == variableName)
     165          return row;
     166      }
     167      return null;
    133168    }
    134169
     
    168203        case DataPreprocessingChangedEventType.Any:
    169204        default:
     205           //TODO: test with transform
    170206          InitData();
    171207          GenerateChart();
    172208          break;
    173209      }
     210    }
     211
     212    private void PreprocessingData_SelctionChanged(object sender, EventArgs e) {
     213      UpdateSelection();
    174214    }
    175215
Note: See TracChangeset for help on using the changeset viewer.