Changeset 17431 for branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemMultiValueControl.cs
- Timestamp:
- 02/10/20 16:46:09 (4 years ago)
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/Views/JsonItemMultiValueControl.cs
r17430 r17431 10 10 11 11 namespace HeuristicLab.JsonInterface.OptimizerIntegration { 12 13 public class JsonItemIntArrayValueControl : JsonItemArrayValueControl { 14 public JsonItemIntArrayValueControl(IntArrayValueVM vm) : base(vm, vm.Value) { } 12 13 public class JsonItemDoubleMatrixValueControl : JsonItemMultiValueControl<double> { 14 15 public JsonItemDoubleMatrixValueControl(DoubleMatrixValueVM vm) : base(vm, vm.Value) { } 16 protected override void SaveCellData(object data, int col, int row) { 17 DoubleMatrixValueVM vm = VM as DoubleMatrixValueVM; 18 vm.SetCellValue(data, col, row); 19 } 15 20 } 16 21 17 public class JsonItemDoubleArrayValueControl : JsonItemArrayValueControl { 22 public class JsonItemIntArrayValueControl : JsonItemMultiValueControl<int> { 23 public JsonItemIntArrayValueControl(IntArrayValueVM vm) : base(vm, vm.Value) { } 24 25 protected override void SaveCellData(object data, int col, int row) { 26 IntArrayValueVM vm = VM as IntArrayValueVM; 27 vm.SetIndexValue(data, row); 28 } 29 } 30 31 public class JsonItemDoubleArrayValueControl : JsonItemMultiValueControl<double> { 18 32 public JsonItemDoubleArrayValueControl(DoubleArrayValueVM vm) : base(vm, vm.Value) { } 33 34 protected override void SaveCellData(object data, int col, int row) { 35 DoubleArrayValueVM vm = VM as DoubleArrayValueVM; 36 vm.SetIndexValue(data, row); 37 } 19 38 } 20 39 21 public abstract partial class JsonItem ArrayValueControl: JsonItemBaseControl {40 public abstract partial class JsonItemMultiValueControl<T> : JsonItemBaseControl { 22 41 protected NumericRangeControl NumericRangeControl { get; set; } 23 42 24 public JsonItem ArrayValueControl(JsonItemVMBase vm, object dataSource) : base(vm) {43 public JsonItemMultiValueControl(JsonItemVMBase vm, T[][] matrix) : base(vm) { 25 44 InitializeComponent(); 26 dataGridView.DataSource = dataSource; 45 int rows = matrix.Length; 46 int cols = matrix.Max(x => x.Length); 47 48 // columns must added first 49 for (int c = 0; c < cols; ++c) { 50 dataGridView.Columns.Add($"Column {c}", $"Column {c}"); 51 } 52 53 dataGridView.Rows.Add(rows); 54 for (int c = 0; c < cols; ++c) { 55 for(int r = 0; r < rows; ++r) { 56 dataGridView[c, r].Value = matrix[r][c]; 57 } 58 } 59 60 dataGridView.CellEndEdit += DataGridView_CellEndEdit; 61 InitRangeBinding(); 62 } 63 64 public JsonItemMultiValueControl(JsonItemVMBase vm, T[] array) : base(vm) { 65 InitializeComponent(); 66 int length = array.Length; 67 68 dataGridView.Columns.Add("Value", "Value"); 69 dataGridView.Rows.Add(length); 70 for(int i = 0; i < length; ++i) { 71 dataGridView[0, i].Value = array[i]; 72 } 73 dataGridView.CellEndEdit += DataGridView_CellEndEdit; 74 InitRangeBinding(); 75 } 76 77 private void DataGridView_CellEndEdit(object sender, DataGridViewCellEventArgs e) { 78 SaveCellData(dataGridView[e.ColumnIndex, e.RowIndex].Value, e.ColumnIndex, e.RowIndex); 79 } 80 81 protected abstract void SaveCellData(object data, int col, int row); 82 83 /* 84 public JsonItemMultiValueControl(JsonItemVMBase vm, object dataSource) : base(vm) { 85 InitializeComponent(); 86 dataGridView.DataSource = dataSource; 87 88 InitRangeBinding(); 89 } 90 */ 91 private void InitRangeBinding() { 27 92 NumericRangeControl = numericRangeControl1; 28 29 93 NumericRangeControl.TBMinRange.DataBindings.Add("Text", VM, nameof(RangedValueBaseVM.MinRange)); 30 94 NumericRangeControl.TBMaxRange.DataBindings.Add("Text", VM, nameof(RangedValueBaseVM.MaxRange));
Note: See TracChangeset
for help on using the changeset viewer.