- Timestamp:
- 01/25/10 05:46:44 (14 years ago)
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Data.Views/3.3/StringConvertibleMatrixDataView.cs
r2676 r2677 33 33 34 34 namespace HeuristicLab.Data.Views { 35 [Content(typeof(IStringConvertible ArrayData), true)]36 public partial class StringConvertible ArrayDataView : ObjectView {37 public IStringConvertible ArrayData StringConvertibleArrayData {38 get { return (IStringConvertible ArrayData)Object; }35 [Content(typeof(IStringConvertibleMatrixData), true)] 36 public partial class StringConvertibleMatrixDataView : ObjectView { 37 public IStringConvertibleMatrixData StringConvertibleMatrixData { 38 get { return (IStringConvertibleMatrixData)Object; } 39 39 set { base.Object = value; } 40 40 } 41 41 42 public StringConvertible ArrayDataView() {42 public StringConvertibleMatrixDataView() { 43 43 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); 47 49 } 48 public StringConvertible ArrayDataView(IStringConvertibleArrayData stringConvertibleArrayData)50 public StringConvertibleMatrixDataView(IStringConvertibleMatrixData stringConvertibleArrayData) 49 51 : this() { 50 StringConvertible ArrayData = stringConvertibleArrayData;52 StringConvertibleMatrixData = stringConvertibleArrayData; 51 53 } 52 54 53 55 protected override void DeregisterObjectEvents() { 54 StringConvertible ArrayData.ItemChanged -= new EventHandler<EventArgs<int>>(StringConvertibleArrayData_ItemChanged);55 StringConvertible ArrayData.Reset -= new EventHandler(StringConvertibleArrayData_Reset);56 StringConvertibleMatrixData.ItemChanged -= new EventHandler<EventArgs<int, int>>(StringConvertibleMatrixData_ItemChanged); 57 StringConvertibleMatrixData.Reset -= new EventHandler(StringConvertibleMatrixData_Reset); 56 58 base.DeregisterObjectEvents(); 57 59 } … … 60 62 protected override void RegisterObjectEvents() { 61 63 base.RegisterObjectEvents(); 62 StringConvertible ArrayData.ItemChanged += new EventHandler<EventArgs<int>>(StringConvertibleArrayData_ItemChanged);63 StringConvertible ArrayData.Reset += new EventHandler(StringConvertibleArrayData_Reset);64 StringConvertibleMatrixData.ItemChanged += new EventHandler<EventArgs<int, int>>(StringConvertibleMatrixData_ItemChanged); 65 StringConvertibleMatrixData.Reset += new EventHandler(StringConvertibleMatrixData_Reset); 64 66 } 65 67 66 68 protected override void OnObjectChanged() { 67 69 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; 72 76 dataGridView.Rows.Clear(); 77 dataGridView.Columns.Clear(); 73 78 dataGridView.Enabled = false; 74 79 } else { 75 Caption = "StringConvertible ArrayData (" + StringConvertibleArrayData.GetType().Name + ")";80 Caption = "StringConvertibleMatrixData (" + StringConvertibleMatrixData.GetType().Name + ")"; 76 81 UpdateContent(); 77 82 } … … 79 84 80 85 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; 83 90 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 } 88 105 dataGridView.Enabled = true; 89 106 } 90 107 91 private void StringConvertible ArrayData_ItemChanged(object sender, EventArgs<int> e) {108 private void StringConvertibleMatrixData_ItemChanged(object sender, EventArgs<int, int> e) { 92 109 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 } 96 116 } 97 private void StringConvertible ArrayData_Reset(object sender, EventArgs e) {117 private void StringConvertibleMatrixData_Reset(object sender, EventArgs e) { 98 118 if (InvokeRequired) 99 Invoke(new EventHandler(StringConvertible ArrayData_Reset), sender, e);119 Invoke(new EventHandler(StringConvertibleMatrixData_Reset), sender, e); 100 120 else 101 121 UpdateContent(); 102 122 } 103 123 104 private void sizeTextBox_Validating(object sender, CancelEventArgs e) { 124 #region TextBox Events 125 private void rowsTextBox_Validating(object sender, CancelEventArgs e) { 105 126 int i = 0; 106 if (!int.TryParse( sizeTextBox.Text, out i) || (i < 0)) {127 if (!int.TryParse(rowsTextBox.Text, out i) || (i < 0)) { 107 128 e.Cancel = true; 108 errorProvider.SetError( sizeTextBox, "Invalid Array Length");109 sizeTextBox.SelectAll();129 errorProvider.SetError(rowsTextBox, "Invalid Number of Rows"); 130 rowsTextBox.SelectAll(); 110 131 } 111 132 } 112 private void sizeTextBox_Validated(object sender, EventArgs e) {113 StringConvertible ArrayData.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); 115 136 } 116 private void sizeTextBox_KeyDown(object sender, KeyEventArgs e) {137 private void rowsTextBox_KeyDown(object sender, KeyEventArgs e) { 117 138 if (e.KeyCode == Keys.Enter || e.KeyCode == Keys.Return) 118 sizeLabel.Focus(); // set focus on label to validate data139 rowsLabel.Focus(); // set focus on label to validate data 119 140 if (e.KeyCode == Keys.Escape) { 120 sizeTextBox.Text = StringConvertibleArrayData.Length.ToString();121 sizeLabel.Focus(); // set focus on label to validate data141 rowsTextBox.Text = StringConvertibleMatrixData.Columns.ToString(); 142 rowsLabel.Focus(); // set focus on label to validate data 122 143 } 123 144 } 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 124 168 private void dataGridView_CellValidating(object sender, DataGridViewCellValidatingEventArgs e) { 125 if (!StringConvertible ArrayData.Validate(e.FormattedValue.ToString())) {169 if (!StringConvertibleMatrixData.Validate(e.FormattedValue.ToString())) { 126 170 e.Cancel = true; 127 171 dataGridView.Rows[e.RowIndex].ErrorText = "Invalid Value"; … … 130 174 private void dataGridView_CellParsing(object sender, DataGridViewCellParsingEventArgs e) { 131 175 string value = e.Value.ToString(); 132 e.ParsingApplied = StringConvertible ArrayData.SetValue(value, e.RowIndex);133 if (e.ParsingApplied) e.Value = StringConvertible ArrayData.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); 134 178 } 135 179 private void dataGridView_CellEndEdit(object sender, DataGridViewCellEventArgs e) { 136 180 dataGridView.Rows[e.RowIndex].ErrorText = string.Empty; 137 181 } 182 #endregion 138 183 } 139 184 }
Note: See TracChangeset
for help on using the changeset viewer.