Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/23/20 15:16:55 (5 years ago)
Author:
dpiringe
Message:

#3026:

  • fixed a bug with JsonItemMultiValueControl -> the size of the matrix should now be saved correctly
  • fixed a bug with RegressionProblemDataConverter -> should now set the row/col sizes correctly
  • simplified the code for saving matrix data in JsonItemMultiValueControl, MatrixValueVM and ArrayValueVM
  • removed unnecessary casts
Location:
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/ViewModels
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/ViewModels/ArrayValueVM.cs

    r17473 r17484  
    2020   
    2121    public override double[] Value {
    22       get => ((DoubleArrayJsonItem)Item).Value;
     22      get => Item.Value;
    2323      set {
    24         ((DoubleArrayJsonItem)Item).Value = value;
     24        Item.Value = value;
    2525        OnPropertyChange(this, nameof(Value));
    2626      }
     
    3939   
    4040    public override int[] Value {
    41       get => ((IntArrayJsonItem)Item).Value;
     41      get => Item.Value;
    4242      set {
    43         ((IntArrayJsonItem)Item).Value = value;
     43        Item.Value = value;
    4444        OnPropertyChange(this, nameof(Value));
    4545      }
     
    5252   
    5353    public ArrayValueVM() { }
    54 
    55     public void SetIndexValue(T data, int index) {
    56       T[] tmp = Value;
    57       if(index >= tmp.Length) { // increasing array
    58         T[] newArr = new T[index+1];
    59         Array.Copy(tmp, 0, newArr, 0, tmp.Length);
    60         tmp = newArr;
    61       }
    62       tmp[index] = data;
    63       Value = tmp;
    64     }
    65 
     54   
    6655    public abstract T[] Value { get; set; }
    6756    public bool Resizable {
    68       get => ((IArrayJsonItem)Item).Resizable;
     57      get => Item.Resizable;
    6958      set {
    70         ((IArrayJsonItem)Item).Resizable = value;
     59        Item.Resizable = value;
    7160        OnPropertyChange(this, nameof(IArrayJsonItemVM.Resizable));
    7261      }
  • branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface.OptimizerIntegration/ViewModels/MatrixValueVM.cs

    r17473 r17484  
    1515
    1616    public override double[][] Value {
    17       get => ((DoubleMatrixJsonItem)Item).Value;
     17      get => Item.Value;
    1818      set {
    19         ((DoubleMatrixJsonItem)Item).Value = value;
     19        Item.Value = value;
    2020        OnPropertyChange(this, nameof(Value));
    2121      }
     
    3232    public abstract T[][] Value { get; set; }
    3333    public bool RowsResizable {
    34       get => ((IMatrixJsonItem)Item).RowsResizable;
     34      get => Item.RowsResizable;
    3535      set {
    36         ((IMatrixJsonItem)Item).RowsResizable = value;
     36        Item.RowsResizable = value;
    3737        OnPropertyChange(this, nameof(RowsResizable));
    3838      }
     
    4040
    4141    public bool ColumnsResizable {
    42       get => ((IMatrixJsonItem)Item).ColumnsResizable;
     42      get => Item.ColumnsResizable;
    4343      set {
    44         ((IMatrixJsonItem)Item).ColumnsResizable = value;
     44        Item.ColumnsResizable = value;
    4545        OnPropertyChange(this, nameof(ColumnsResizable));
    4646      }
     
    4848
    4949    public IEnumerable<string> RowNames {
    50       get => ((JsonItemType)Item).RowNames;
     50      get => Item.RowNames;
    5151      set {
    52         ((JsonItemType)Item).RowNames = value;
     52        Item.RowNames = value;
    5353        OnPropertyChange(this, nameof(RowNames));
    5454      }
    5555    }
    5656    public IEnumerable<string> ColumnNames {
    57       get => ((JsonItemType)Item).ColumnNames;
     57      get => Item.ColumnNames;
    5858      set {
    59         ((JsonItemType)Item).ColumnNames = value;
     59        Item.ColumnNames = value;
    6060        OnPropertyChange(this, nameof(ColumnNames));
    6161      }
    6262    }
    63 
    64     public void SetCellValue(T data, int row, int col) {
    65      
    66       T[][] tmp = Value;
    67      
    68       // increase y
    69       if (row >= tmp.Length) { // increasing array
    70         T[][] newArr = new T[row + 1][];
    71         Array.Copy(tmp, 0, newArr, 0, tmp.Length);
    72         newArr[row] = new T[0];
    73         tmp = newArr;
    74       }
    75 
    76       // increase x
    77       for(int i = 0; i < tmp.Length; ++i) {
    78         if(col >= tmp[i].Length) {
    79           T[] newArr = new T[col + 1];
    80           Array.Copy(tmp[i], 0, newArr, 0, tmp[i].Length);
    81           tmp[i] = newArr;
    82         }
    83       }
    84 
    85       tmp[row][col] = data;
    86       Value = tmp;
    87     }
    8863  }
    8964}
Note: See TracChangeset for help on using the changeset viewer.