Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
01/25/10 02:34:23 (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
  • unified visual appearance of views
File:
1 edited

Legend:

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

    r2669 r2676  
    4343      InitializeComponent();
    4444      Caption = "StringConvertibleArrayDataView View";
     45      errorProvider.SetIconAlignment(sizeTextBox, ErrorIconAlignment.MiddleLeft);
     46      errorProvider.SetIconPadding(sizeTextBox, 2);
    4547    }
    4648    public StringConvertibleArrayDataView(IStringConvertibleArrayData stringConvertibleArrayData)
     
    5153    protected override void DeregisterObjectEvents() {
    5254      StringConvertibleArrayData.ItemChanged -= new EventHandler<EventArgs<int>>(StringConvertibleArrayData_ItemChanged);
    53       StringConvertibleArrayData.Changed -= new ChangedEventHandler(StringConvertibleArrayData_Changed);
     55      StringConvertibleArrayData.Reset -= new EventHandler(StringConvertibleArrayData_Reset);
    5456      base.DeregisterObjectEvents();
    5557    }
     
    5961      base.RegisterObjectEvents();
    6062      StringConvertibleArrayData.ItemChanged += new EventHandler<EventArgs<int>>(StringConvertibleArrayData_ItemChanged);
    61       StringConvertibleArrayData.Changed += new ChangedEventHandler(StringConvertibleArrayData_Changed);
     63      StringConvertibleArrayData.Reset += new EventHandler(StringConvertibleArrayData_Reset);
    6264    }
    6365
     
    8082      sizeTextBox.Enabled = true;
    8183      dataGridView.Rows.Clear();
    82       if (StringConvertibleArrayData.Length > 0) {
    83         dataGridView.ColumnCount = 1;
    84         dataGridView.Rows.Add(StringConvertibleArrayData.Length);
    85       }
     84      dataGridView.ColumnCount = 1;
     85      dataGridView.RowCount = StringConvertibleArrayData.Length;
    8686      for (int i = 0; i < StringConvertibleArrayData.Length; i++)
    8787        dataGridView.Rows[i].Cells[0].Value = StringConvertibleArrayData.GetValue(i);
     
    9595        dataGridView.Rows[e.Value].Cells[0].Value = StringConvertibleArrayData.GetValue(e.Value);
    9696    }
    97     private void StringConvertibleArrayData_Changed(object sender, ChangedEventArgs e) {
     97    private void StringConvertibleArrayData_Reset(object sender, EventArgs e) {
    9898      if (InvokeRequired)
    99         Invoke(new ChangedEventHandler(StringConvertibleArrayData_Changed), sender, e);
     99        Invoke(new EventHandler(StringConvertibleArrayData_Reset), sender, e);
    100100      else
    101101        UpdateContent();
     
    104104    private void sizeTextBox_Validating(object sender, CancelEventArgs e) {
    105105      int i = 0;
    106       e.Cancel = e.Cancel || !int.TryParse(sizeTextBox.Text, out i);
    107       e.Cancel = e.Cancel || (i < 0);
    108       if (e.Cancel) {
    109         MessageBox.Show(this, "\"" + sizeTextBox.Text + "\" is not a valid array length.", "Invalid Array Length", MessageBoxButtons.OK, MessageBoxIcon.Error);
     106      if (!int.TryParse(sizeTextBox.Text, out i) || (i < 0)) {
     107        e.Cancel = true;
     108        errorProvider.SetError(sizeTextBox, "Invalid Array Length");
    110109        sizeTextBox.SelectAll();
    111         sizeTextBox.Focus();
    112110      }
    113111    }
    114112    private void sizeTextBox_Validated(object sender, EventArgs e) {
    115113      StringConvertibleArrayData.Length = int.Parse(sizeTextBox.Text);
     114      errorProvider.SetError(sizeTextBox, string.Empty);
    116115    }
    117116    private void sizeTextBox_KeyDown(object sender, KeyEventArgs e) {
    118117      if (e.KeyCode == Keys.Enter || e.KeyCode == Keys.Return)
    119         sizeLabel.Focus();
     118        sizeLabel.Focus();  // set focus on label to validate data
     119      if (e.KeyCode == Keys.Escape) {
     120        sizeTextBox.Text = StringConvertibleArrayData.Length.ToString();
     121        sizeLabel.Focus();  // set focus on label to validate data
     122      }
    120123    }
    121124    private void dataGridView_CellValidating(object sender, DataGridViewCellValidatingEventArgs e) {
    122       e.Cancel = e.Cancel || !StringConvertibleArrayData.SetValue(e.FormattedValue.ToString(), e.RowIndex);
    123       if (e.Cancel)
    124         MessageBox.Show(this, "\"" + e.FormattedValue.ToString() + "\" is not a valid value.", "Invalid Value", MessageBoxButtons.OK, MessageBoxIcon.Error);
     125      if (!StringConvertibleArrayData.Validate(e.FormattedValue.ToString())) {
     126        e.Cancel = true;
     127        dataGridView.Rows[e.RowIndex].ErrorText = "Invalid Value";
     128      }
    125129    }
    126     private void dataGridView_CellValidated(object sender, DataGridViewCellEventArgs e) {
    127       dataGridView.Rows[e.RowIndex].Cells[0].Value = StringConvertibleArrayData.GetValue(e.RowIndex);
     130    private void dataGridView_CellParsing(object sender, DataGridViewCellParsingEventArgs e) {
     131      string value = e.Value.ToString();
     132      e.ParsingApplied = StringConvertibleArrayData.SetValue(value, e.RowIndex);
     133      if (e.ParsingApplied) e.Value = StringConvertibleArrayData.GetValue(e.RowIndex);
     134    }
     135    private void dataGridView_CellEndEdit(object sender, DataGridViewCellEventArgs e) {
     136      dataGridView.Rows[e.RowIndex].ErrorText = string.Empty;
    128137    }
    129138  }
Note: See TracChangeset for help on using the changeset viewer.