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
Location:
trunk/sources/HeuristicLab.Data.Views/3.3
Files:
1 edited
2 moved

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Data.Views/3.3/HeuristicLab.Data.Views-3.3.csproj

    r2669 r2677  
    5757      <DependentUpon>BoolDataView.cs</DependentUpon>
    5858    </Compile>
    59     <Compile Include="StringConvertibleArrayDataView.cs">
    60       <SubType>UserControl</SubType>
    61     </Compile>
    62     <Compile Include="StringConvertibleArrayDataView.Designer.cs">
    63       <DependentUpon>StringConvertibleArrayDataView.cs</DependentUpon>
    64     </Compile>
    6559    <Compile Include="StringConvertibleDataView.cs">
    6660      <SubType>UserControl</SubType>
     
    7165    <Compile Include="HeuristicLabDataViewsPlugin.cs" />
    7266    <Compile Include="Properties\AssemblyInfo.cs" />
     67    <Compile Include="StringConvertibleMatrixDataView.cs">
     68      <SubType>UserControl</SubType>
     69    </Compile>
     70    <Compile Include="StringConvertibleMatrixDataView.Designer.cs">
     71      <DependentUpon>StringConvertibleMatrixDataView.cs</DependentUpon>
     72    </Compile>
    7373  </ItemGroup>
    7474  <ItemGroup>
  • trunk/sources/HeuristicLab.Data.Views/3.3/StringConvertibleMatrixDataView.Designer.cs

    r2676 r2677  
    2121
    2222namespace HeuristicLab.Data.Views {
    23   partial class StringConvertibleArrayDataView {
     23  partial class StringConvertibleMatrixDataView {
    2424    /// <summary>
    2525    /// Required designer variable.
     
    4646    private void InitializeComponent() {
    4747      this.components = new System.ComponentModel.Container();
    48       this.sizeLabel = new System.Windows.Forms.Label();
    49       this.sizeTextBox = new System.Windows.Forms.TextBox();
     48      this.rowsLabel = new System.Windows.Forms.Label();
     49      this.rowsTextBox = new System.Windows.Forms.TextBox();
    5050      this.dataGridView = new System.Windows.Forms.DataGridView();
    5151      this.errorProvider = new System.Windows.Forms.ErrorProvider(this.components);
     52      this.columnsTextBox = new System.Windows.Forms.TextBox();
     53      this.columnsLabel = new System.Windows.Forms.Label();
    5254      ((System.ComponentModel.ISupportInitialize)(this.dataGridView)).BeginInit();
    5355      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
    5456      this.SuspendLayout();
    5557      //
    56       // sizeLabel
     58      // rowsLabel
    5759      //
    58       this.sizeLabel.AutoSize = true;
    59       this.sizeLabel.Location = new System.Drawing.Point(3, 3);
    60       this.sizeLabel.Name = "sizeLabel";
    61       this.sizeLabel.Size = new System.Drawing.Size(30, 13);
    62       this.sizeLabel.TabIndex = 0;
    63       this.sizeLabel.Text = "&Size:";
     60      this.rowsLabel.AutoSize = true;
     61      this.rowsLabel.Location = new System.Drawing.Point(3, 3);
     62      this.rowsLabel.Name = "rowsLabel";
     63      this.rowsLabel.Size = new System.Drawing.Size(37, 13);
     64      this.rowsLabel.TabIndex = 0;
     65      this.rowsLabel.Text = "&Rows:";
    6466      //
    65       // sizeTextBox
     67      // rowsTextBox
    6668      //
    67       this.sizeTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
     69      this.rowsTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
    6870                  | System.Windows.Forms.AnchorStyles.Right)));
    69       this.sizeTextBox.Location = new System.Drawing.Point(50, 0);
    70       this.sizeTextBox.Name = "sizeTextBox";
    71       this.sizeTextBox.Size = new System.Drawing.Size(374, 20);
    72       this.sizeTextBox.TabIndex = 1;
    73       this.sizeTextBox.Validated += new System.EventHandler(this.sizeTextBox_Validated);
    74       this.sizeTextBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.sizeTextBox_KeyDown);
    75       this.sizeTextBox.Validating += new System.ComponentModel.CancelEventHandler(this.sizeTextBox_Validating);
     71      this.rowsTextBox.Location = new System.Drawing.Point(69, 0);
     72      this.rowsTextBox.Name = "rowsTextBox";
     73      this.rowsTextBox.Size = new System.Drawing.Size(355, 20);
     74      this.rowsTextBox.TabIndex = 1;
     75      this.rowsTextBox.Validated += new System.EventHandler(this.rowsTextBox_Validated);
     76      this.rowsTextBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.rowsTextBox_KeyDown);
     77      this.rowsTextBox.Validating += new System.ComponentModel.CancelEventHandler(this.rowsTextBox_Validating);
    7678      //
    7779      // dataGridView
     
    8587      this.dataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
    8688      this.dataGridView.ColumnHeadersVisible = false;
    87       this.dataGridView.Location = new System.Drawing.Point(0, 26);
     89      this.dataGridView.Location = new System.Drawing.Point(0, 52);
    8890      this.dataGridView.Name = "dataGridView";
    89       this.dataGridView.Size = new System.Drawing.Size(424, 378);
    90       this.dataGridView.TabIndex = 2;
     91      this.dataGridView.Size = new System.Drawing.Size(424, 352);
     92      this.dataGridView.TabIndex = 4;
    9193      this.dataGridView.CellParsing += new System.Windows.Forms.DataGridViewCellParsingEventHandler(this.dataGridView_CellParsing);
    9294      this.dataGridView.CellValidating += new System.Windows.Forms.DataGridViewCellValidatingEventHandler(this.dataGridView_CellValidating);
     
    98100      this.errorProvider.ContainerControl = this;
    99101      //
    100       // StringConvertibleArrayDataView
     102      // columnsTextBox
     103      //
     104      this.columnsTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
     105                  | System.Windows.Forms.AnchorStyles.Right)));
     106      this.columnsTextBox.Location = new System.Drawing.Point(69, 26);
     107      this.columnsTextBox.Name = "columnsTextBox";
     108      this.columnsTextBox.Size = new System.Drawing.Size(355, 20);
     109      this.columnsTextBox.TabIndex = 3;
     110      this.columnsTextBox.Validated += new System.EventHandler(this.columnsTextBox_Validated);
     111      this.columnsTextBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.columnsTextBox_KeyDown);
     112      this.columnsTextBox.Validating += new System.ComponentModel.CancelEventHandler(this.columnsTextBox_Validating);
     113      //
     114      // columnsLabel
     115      //
     116      this.columnsLabel.AutoSize = true;
     117      this.columnsLabel.Location = new System.Drawing.Point(3, 29);
     118      this.columnsLabel.Name = "columnsLabel";
     119      this.columnsLabel.Size = new System.Drawing.Size(50, 13);
     120      this.columnsLabel.TabIndex = 2;
     121      this.columnsLabel.Text = "&Columns:";
     122      //
     123      // StringConvertibleMatrixDataView
    101124      //
    102125      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    103126      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    104127      this.Controls.Add(this.dataGridView);
    105       this.Controls.Add(this.sizeTextBox);
    106       this.Controls.Add(this.sizeLabel);
    107       this.Name = "StringConvertibleArrayDataView";
     128      this.Controls.Add(this.columnsTextBox);
     129      this.Controls.Add(this.rowsTextBox);
     130      this.Controls.Add(this.columnsLabel);
     131      this.Controls.Add(this.rowsLabel);
     132      this.Name = "StringConvertibleMatrixDataView";
    108133      this.Size = new System.Drawing.Size(424, 404);
    109134      ((System.ComponentModel.ISupportInitialize)(this.dataGridView)).EndInit();
     
    116141    #endregion
    117142
    118     private System.Windows.Forms.Label sizeLabel;
    119     private System.Windows.Forms.TextBox sizeTextBox;
     143    private System.Windows.Forms.Label rowsLabel;
     144    private System.Windows.Forms.TextBox rowsTextBox;
    120145    private System.Windows.Forms.DataGridView dataGridView;
    121146    private System.Windows.Forms.ErrorProvider errorProvider;
     147    private System.Windows.Forms.TextBox columnsTextBox;
     148    private System.Windows.Forms.Label columnsLabel;
    122149
    123150  }
  • 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.