Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
05/11/08 12:33:07 (16 years ago)
Author:
gkronber
Message:

implemented #144

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.DataAnalysis/DatasetView.cs

    r168 r232  
    2525
    2626namespace HeuristicLab.DataAnalysis {
    27   public partial class DatasetView : ViewBase {
    28 
    29     private OpenFileDialog openFileDialog;
    30 
     27  public partial class DatasetView : EditorBase {
    3128    public Dataset Dataset {
    3229      get { return (Dataset)Item; }
     
    3734    }
    3835
     36    private double[] scalingFactor;
     37    private double[] scalingOffset;
    3938    public DatasetView()
    4039      : base() {
    4140      InitializeComponent();
    42       openFileDialog = new OpenFileDialog();
    4341    }
    4442
     
    5048    protected override void UpdateControls() {
    5149      base.UpdateControls();
     50      if(this.scalingFactor == null) {
     51        this.scalingFactor = new double[Dataset.Columns];
     52        this.scalingOffset = new double[Dataset.Columns];
     53        for(int i = 0; i < scalingFactor.Length; i++) {
     54          scalingFactor[i] = 1.0;
     55          scalingOffset[i] = 0.0;
     56        }
     57      }
    5258      if (Dataset != null) {
    5359        int rows = Dataset.Rows;
     
    6369          }
    6470        }
    65         if (Dataset.VariableNames.Length == dataGridView.Columns.Count) {
    66           for (int i = 0; i < columns; i++) {
    67             dataGridView.Columns[i].Name = Dataset.VariableNames[i];
    68           }
    69         } else {
    70           for (int i = 0; i < columns; i++) {
    71             dataGridView.Columns[i].Name = "Var" + i;
    72           }
     71        for (int i = 0; i < columns; i++) {
     72          dataGridView.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;
     73          dataGridView.Columns[i].Name = GetColumnName(i);
     74          dataGridView.Columns[i].ContextMenuStrip = contextMenuStrip;
    7375        }
    74 
     76        dataGridView.SelectionMode = DataGridViewSelectionMode.ColumnHeaderSelect;
    7577      } else {
    7678        rowsTextBox.Text = "1";
     
    104106      return element != null && double.TryParse(element, out result);
    105107    }
     108
     109    private void exportButton_Click(object sender, EventArgs e) {
     110      throw new NotImplementedException();
     111    }
     112
     113    private void scaleValuesToolStripMenuItem_Click(object sender, EventArgs e) {
     114      foreach(DataGridViewColumn column in dataGridView.SelectedColumns) {
     115        if(scalingFactor[column.Index] == 1.0) {
     116          double min = Dataset.GetMinimum(column.Index);
     117          double max = Dataset.GetMaximum(column.Index);
     118          double range = max - min;
     119          scalingFactor[column.Index] = range;
     120          scalingOffset[column.Index] = min;
     121          column.Name = GetColumnName(column.Index) + " [scaled]";
     122          for(int i = 0; i < Dataset.Rows; i++) {
     123            Dataset.SetValue(i, column.Index, (Dataset.GetValue(i, column.Index)-min) / range);
     124          }
     125        }
     126      }
     127      Refresh();
     128    }
     129
     130    private void originalValuesToolStripMenuItem_Click(object sender, EventArgs e) {
     131      foreach(DataGridViewColumn column in dataGridView.SelectedColumns) {
     132        if(scalingFactor[column.Index] != 1.0) {
     133          column.Name = GetColumnName(column.Index);
     134          for(int i = 0; i < Dataset.Rows; i++) {
     135            Dataset.SetValue(i, column.Index, Dataset.GetValue(i, column.Index) * scalingFactor[column.Index] + scalingOffset[column.Index]);
     136          }
     137          scalingFactor[column.Index] = 1.0;
     138          scalingOffset[column.Index] = 0.0;
     139        }
     140      }
     141      Refresh();     
     142    }
     143
     144    private string GetColumnName(int index) {
     145      if(Dataset.VariableNames.Length == dataGridView.Columns.Count) {
     146        return Dataset.VariableNames[index];
     147      } else {
     148        return "Var " + index;
     149      }
     150    }
    106151  }
    107152}
Note: See TracChangeset for help on using the changeset viewer.