Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
01/25/10 05:46:44 (14 years ago)
Author:
swagner
Message:

Operator architecture refactoring (#95)

  • continued work on adapting and refactoring HeuristicLab.Data according to the changes in HeuristicLab.Core
File:
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Data.Views/3.3/StringConvertibleMatrixDataView.cs

    r2676 r2677  
    3333
    3434namespace HeuristicLab.Data.Views {
    35   [Content(typeof(IStringConvertibleArrayData), true)]
    36   public partial class StringConvertibleArrayDataView : ObjectView {
    37     public IStringConvertibleArrayData StringConvertibleArrayData {
    38       get { return (IStringConvertibleArrayData)Object; }
     35  [Content(typeof(IStringConvertibleMatrixData), true)]
     36  public partial class StringConvertibleMatrixDataView : ObjectView {
     37    public IStringConvertibleMatrixData StringConvertibleMatrixData {
     38      get { return (IStringConvertibleMatrixData)Object; }
    3939      set { base.Object = value; }
    4040    }
    4141
    42     public StringConvertibleArrayDataView() {
     42    public StringConvertibleMatrixDataView() {
    4343      InitializeComponent();
    44       Caption = "StringConvertibleArrayDataView View";
    45       errorProvider.SetIconAlignment(sizeTextBox, ErrorIconAlignment.MiddleLeft);
    46       errorProvider.SetIconPadding(sizeTextBox, 2);
     44      Caption = "StringConvertibleMatrixDataView View";
     45      errorProvider.SetIconAlignment(rowsTextBox, ErrorIconAlignment.MiddleLeft);
     46      errorProvider.SetIconPadding(rowsTextBox, 2);
     47      errorProvider.SetIconAlignment(columnsTextBox, ErrorIconAlignment.MiddleLeft);
     48      errorProvider.SetIconPadding(columnsTextBox, 2);
    4749    }
    48     public StringConvertibleArrayDataView(IStringConvertibleArrayData stringConvertibleArrayData)
     50    public StringConvertibleMatrixDataView(IStringConvertibleMatrixData stringConvertibleArrayData)
    4951      : this() {
    50       StringConvertibleArrayData = stringConvertibleArrayData;
     52      StringConvertibleMatrixData = stringConvertibleArrayData;
    5153    }
    5254
    5355    protected override void DeregisterObjectEvents() {
    54       StringConvertibleArrayData.ItemChanged -= new EventHandler<EventArgs<int>>(StringConvertibleArrayData_ItemChanged);
    55       StringConvertibleArrayData.Reset -= new EventHandler(StringConvertibleArrayData_Reset);
     56      StringConvertibleMatrixData.ItemChanged -= new EventHandler<EventArgs<int, int>>(StringConvertibleMatrixData_ItemChanged);
     57      StringConvertibleMatrixData.Reset -= new EventHandler(StringConvertibleMatrixData_Reset);
    5658      base.DeregisterObjectEvents();
    5759    }
     
    6062    protected override void RegisterObjectEvents() {
    6163      base.RegisterObjectEvents();
    62       StringConvertibleArrayData.ItemChanged += new EventHandler<EventArgs<int>>(StringConvertibleArrayData_ItemChanged);
    63       StringConvertibleArrayData.Reset += new EventHandler(StringConvertibleArrayData_Reset);
     64      StringConvertibleMatrixData.ItemChanged += new EventHandler<EventArgs<int, int>>(StringConvertibleMatrixData_ItemChanged);
     65      StringConvertibleMatrixData.Reset += new EventHandler(StringConvertibleMatrixData_Reset);
    6466    }
    6567
    6668    protected override void OnObjectChanged() {
    6769      base.OnObjectChanged();
    68       if (StringConvertibleArrayData == null) {
    69         Caption = "StringConvertibleData View";
    70         sizeTextBox.Text = "";
    71         sizeTextBox.Enabled = false;
     70      if (StringConvertibleMatrixData == null) {
     71        Caption = "StringConvertibleMatrixData View";
     72        rowsTextBox.Text = "";
     73        rowsTextBox.Enabled = false;
     74        columnsTextBox.Text = "";
     75        columnsTextBox.Enabled = false;
    7276        dataGridView.Rows.Clear();
     77        dataGridView.Columns.Clear();
    7378        dataGridView.Enabled = false;
    7479      } else {
    75         Caption = "StringConvertibleArrayData (" + StringConvertibleArrayData.GetType().Name + ")";
     80        Caption = "StringConvertibleMatrixData (" + StringConvertibleMatrixData.GetType().Name + ")";
    7681        UpdateContent();
    7782      }
     
    7984
    8085    private void UpdateContent() {
    81       sizeTextBox.Text = StringConvertibleArrayData.Length.ToString();
    82       sizeTextBox.Enabled = true;
     86      rowsTextBox.Text = StringConvertibleMatrixData.Rows.ToString();
     87      rowsTextBox.Enabled = (StringConvertibleMatrixData.Dimensions & StringConvertibleArrayDataDimensions.Rows) == StringConvertibleArrayDataDimensions.Rows;
     88      columnsTextBox.Text = StringConvertibleMatrixData.Columns.ToString();
     89      columnsTextBox.Enabled = (StringConvertibleMatrixData.Dimensions & StringConvertibleArrayDataDimensions.Columns) == StringConvertibleArrayDataDimensions.Columns;
    8390      dataGridView.Rows.Clear();
    84       dataGridView.ColumnCount = 1;
    85       dataGridView.RowCount = StringConvertibleArrayData.Length;
    86       for (int i = 0; i < StringConvertibleArrayData.Length; i++)
    87         dataGridView.Rows[i].Cells[0].Value = StringConvertibleArrayData.GetValue(i);
     91      dataGridView.Columns.Clear();
     92      if ((StringConvertibleMatrixData.Rows > 0) && (StringConvertibleMatrixData.Columns > 0)) {
     93        for (int i = 0; i < StringConvertibleMatrixData.Columns; i++) {
     94          dataGridView.ColumnCount++;
     95          dataGridView.Columns[dataGridView.ColumnCount - 1].FillWeight = float.Epsilon;  // sum of all fill weights must not be larger than 65535
     96        }
     97        dataGridView.RowCount = StringConvertibleMatrixData.Rows;
     98        for (int i = 0; i < StringConvertibleMatrixData.Rows; i++) {
     99          for (int j = 0; j < StringConvertibleMatrixData.Columns; j++)
     100            dataGridView.Rows[i].Cells[j].Value = StringConvertibleMatrixData.GetValue(i, j);
     101        }
     102        for (int i = 0; i < StringConvertibleMatrixData.Columns; i++)
     103          dataGridView.Columns[i].Width = dataGridView.Columns[i].GetPreferredWidth(DataGridViewAutoSizeColumnMode.AllCells, true);
     104      }
    88105      dataGridView.Enabled = true;
    89106    }
    90107
    91     private void StringConvertibleArrayData_ItemChanged(object sender, EventArgs<int> e) {
     108    private void StringConvertibleMatrixData_ItemChanged(object sender, EventArgs<int, int> e) {
    92109      if (InvokeRequired)
    93         Invoke(new EventHandler<EventArgs<int>>(StringConvertibleArrayData_ItemChanged), sender, e);
    94       else
    95         dataGridView.Rows[e.Value].Cells[0].Value = StringConvertibleArrayData.GetValue(e.Value);
     110        Invoke(new EventHandler<EventArgs<int, int>>(StringConvertibleMatrixData_ItemChanged), sender, e);
     111      else {
     112        dataGridView.Rows[e.Value].Cells[e.Value2].Value = StringConvertibleMatrixData.GetValue(e.Value, e.Value2);
     113        Size size = dataGridView.Rows[e.Value].Cells[e.Value2].PreferredSize;
     114        dataGridView.Columns[e.Value2].Width = Math.Max(dataGridView.Columns[e.Value2].Width, size.Width);
     115      }
    96116    }
    97     private void StringConvertibleArrayData_Reset(object sender, EventArgs e) {
     117    private void StringConvertibleMatrixData_Reset(object sender, EventArgs e) {
    98118      if (InvokeRequired)
    99         Invoke(new EventHandler(StringConvertibleArrayData_Reset), sender, e);
     119        Invoke(new EventHandler(StringConvertibleMatrixData_Reset), sender, e);
    100120      else
    101121        UpdateContent();
    102122    }
    103123
    104     private void sizeTextBox_Validating(object sender, CancelEventArgs e) {
     124    #region TextBox Events
     125    private void rowsTextBox_Validating(object sender, CancelEventArgs e) {
    105126      int i = 0;
    106       if (!int.TryParse(sizeTextBox.Text, out i) || (i < 0)) {
     127      if (!int.TryParse(rowsTextBox.Text, out i) || (i < 0)) {
    107128        e.Cancel = true;
    108         errorProvider.SetError(sizeTextBox, "Invalid Array Length");
    109         sizeTextBox.SelectAll();
     129        errorProvider.SetError(rowsTextBox, "Invalid Number of Rows");
     130        rowsTextBox.SelectAll();
    110131      }
    111132    }
    112     private void sizeTextBox_Validated(object sender, EventArgs e) {
    113       StringConvertibleArrayData.Length = int.Parse(sizeTextBox.Text);
    114       errorProvider.SetError(sizeTextBox, string.Empty);
     133    private void rowsTextBox_Validated(object sender, EventArgs e) {
     134      StringConvertibleMatrixData.Rows = int.Parse(rowsTextBox.Text);
     135      errorProvider.SetError(rowsTextBox, string.Empty);
    115136    }
    116     private void sizeTextBox_KeyDown(object sender, KeyEventArgs e) {
     137    private void rowsTextBox_KeyDown(object sender, KeyEventArgs e) {
    117138      if (e.KeyCode == Keys.Enter || e.KeyCode == Keys.Return)
    118         sizeLabel.Focus();  // set focus on label to validate data
     139        rowsLabel.Focus();  // set focus on label to validate data
    119140      if (e.KeyCode == Keys.Escape) {
    120         sizeTextBox.Text = StringConvertibleArrayData.Length.ToString();
    121         sizeLabel.Focus();  // set focus on label to validate data
     141        rowsTextBox.Text = StringConvertibleMatrixData.Columns.ToString();
     142        rowsLabel.Focus();  // set focus on label to validate data
    122143      }
    123144    }
     145    private void columnsTextBox_Validating(object sender, CancelEventArgs e) {
     146      int i = 0;
     147      if (!int.TryParse(columnsTextBox.Text, out i) || (i < 0)) {
     148        e.Cancel = true;
     149        errorProvider.SetError(columnsTextBox, "Invalid Number of Columns");
     150        columnsTextBox.SelectAll();
     151      }
     152    }
     153    private void columnsTextBox_Validated(object sender, EventArgs e) {
     154      StringConvertibleMatrixData.Columns = int.Parse(columnsTextBox.Text);
     155      errorProvider.SetError(columnsTextBox, string.Empty);
     156    }
     157    private void columnsTextBox_KeyDown(object sender, KeyEventArgs e) {
     158      if (e.KeyCode == Keys.Enter || e.KeyCode == Keys.Return)
     159        columnsLabel.Focus();  // set focus on label to validate data
     160      if (e.KeyCode == Keys.Escape) {
     161        columnsTextBox.Text = StringConvertibleMatrixData.Columns.ToString();
     162        columnsLabel.Focus();  // set focus on label to validate data
     163      }
     164    }
     165    #endregion
     166
     167    #region DataGridView Events
    124168    private void dataGridView_CellValidating(object sender, DataGridViewCellValidatingEventArgs e) {
    125       if (!StringConvertibleArrayData.Validate(e.FormattedValue.ToString())) {
     169      if (!StringConvertibleMatrixData.Validate(e.FormattedValue.ToString())) {
    126170        e.Cancel = true;
    127171        dataGridView.Rows[e.RowIndex].ErrorText = "Invalid Value";
     
    130174    private void dataGridView_CellParsing(object sender, DataGridViewCellParsingEventArgs e) {
    131175      string value = e.Value.ToString();
    132       e.ParsingApplied = StringConvertibleArrayData.SetValue(value, e.RowIndex);
    133       if (e.ParsingApplied) e.Value = StringConvertibleArrayData.GetValue(e.RowIndex);
     176      e.ParsingApplied = StringConvertibleMatrixData.SetValue(value, e.RowIndex, e.ColumnIndex);
     177      if (e.ParsingApplied) e.Value = StringConvertibleMatrixData.GetValue(e.RowIndex, e.ColumnIndex);
    134178    }
    135179    private void dataGridView_CellEndEdit(object sender, DataGridViewCellEventArgs e) {
    136180      dataGridView.Rows[e.RowIndex].ErrorText = string.Empty;
    137181    }
     182    #endregion
    138183  }
    139184}
Note: See TracChangeset for help on using the changeset viewer.