Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/13/10 10:36:51 (14 years ago)
Author:
mkommend
Message:

added events for changes of column and row names (ticket #968)

File:
1 edited

Legend:

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

    r3310 r3320  
    6767      }
    6868    }
     69    [Storable]
     70    private bool sortableView;
     71    public bool SortableView {
     72      get { return sortableView; }
     73      set {
     74        if (value != sortableView) {
     75          sortableView = value;
     76          OnSortableViewChanged();
     77        }
     78      }
     79    }
    6980
    7081    public virtual int Rows {
     
    7586          Array.Copy(matrix, newArray, Math.Min(value * Columns, matrix.Length));
    7687          matrix = newArray;
     88          while (rowNames.Count > value)
     89            rowNames.RemoveAt(rowNames.Count - 1);
     90          while (rowNames.Count < value)
     91            rowNames.Add("Row " + rowNames.Count);
    7792          OnReset();
    7893        }
     
    87102            Array.Copy(matrix, i * Columns, newArray, i * value, Math.Min(value, Columns));
    88103          matrix = newArray;
     104          while (columnNames.Count > value)
     105            columnNames.RemoveAt(columnNames.Count - 1);
     106          while (columnNames.Count < value)
     107            columnNames.Add("Column " + columnNames.Count);
    89108          OnReset();
    90109        }
     
    105124      columnNames = new List<string>();
    106125      rowNames = new List<string>();
     126      sortableView = false;
    107127    }
    108128    protected ValueTypeMatrix(int rows, int columns) {
     
    110130      columnNames = new List<string>();
    111131      rowNames = new List<string>();
     132      sortableView = false;
    112133    }
    113134    protected ValueTypeMatrix(int rows, int columns, IEnumerable<string> columnNames)
     
    124145      columnNames = new List<string>();
    125146      rowNames = new List<string>();
     147      sortableView = false;
    126148    }
    127149    protected ValueTypeMatrix(T[,] elements, IEnumerable<string> columnNames)
     
    136158    public override IDeepCloneable Clone(Cloner cloner) {
    137159      ValueTypeMatrix<T> clone = (ValueTypeMatrix<T>)base.Clone(cloner);
     160      clone.SortableView = SortableView;
    138161      clone.matrix = (T[,])matrix.Clone();
    139162      clone.columnNames = new List<string>(columnNames);
     
    161184    }
    162185
     186    public event EventHandler ColumnNamesChanged;
     187    protected virtual void OnColumnNamesChanged() {
     188      EventHandler handler = ColumnNamesChanged;
     189      if(handler!=null)
     190        handler(this,EventArgs.Empty);
     191    }
     192    public event EventHandler RowNamesChanged;
     193    protected virtual void OnRowNamesChanged() {
     194      EventHandler handler = RowNamesChanged;
     195      if (handler != null)
     196        handler(this, EventArgs.Empty);
     197    }
     198    public event EventHandler SortableViewChanged;
     199    protected virtual void OnSortableViewChanged() {
     200      EventHandler handler = SortableViewChanged;
     201      if (handler != null)
     202        handler(this, EventArgs.Empty);
     203    }
    163204    public event EventHandler<EventArgs<int, int>> ItemChanged;
    164205    protected virtual void OnItemChanged(int rowIndex, int columnIndex) {
Note: See TracChangeset for help on using the changeset viewer.