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/StringMatrix.cs

    r3317 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, newMatrix, Math.Min(value * Columns, matrix.Length));
    7687          matrix = newMatrix;
     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, newMatrix, i * value, Math.Min(value, Columns));
    88103          matrix = newMatrix;
     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        }
     
    107126      columnNames = new List<string>();
    108127      rowNames = new List<string>();
     128      sortableView = false;
    109129    }
    110130    public StringMatrix(int rows, int columns) {
     
    116136      columnNames = new List<string>();
    117137      rowNames = new List<string>();
     138      sortableView = false;
    118139    }
    119140    protected StringMatrix(int rows, int columns, IEnumerable<string> columnNames)
     
    134155      columnNames = new List<string>();
    135156      rowNames = new List<string>();
     157      sortableView = false;
    136158    }
    137159    protected StringMatrix(string[,] elements, IEnumerable<string> columnNames)
     
    148170      cloner.RegisterClonedObject(this, clone);
    149171      clone.ReadOnlyView = ReadOnlyView;
     172      clone.SortableView = SortableView;
    150173      clone.matrix = (string[,])matrix.Clone();
    151174      clone.columnNames = new List<string>(columnNames);
     
    194217    }
    195218
     219    public event EventHandler ColumnNamesChanged;
     220    protected virtual void OnColumnNamesChanged() {
     221      EventHandler handler = ColumnNamesChanged;
     222      if (handler != null)
     223        handler(this, EventArgs.Empty);
     224    }
     225    public event EventHandler RowNamesChanged;
     226    protected virtual void OnRowNamesChanged() {
     227      EventHandler handler = RowNamesChanged;
     228      if (handler != null)
     229        handler(this, EventArgs.Empty);
     230    }
     231    public event EventHandler SortableViewChanged;
     232    protected virtual void OnSortableViewChanged() {
     233      EventHandler handler = SortableViewChanged;
     234      if (handler != null)
     235        handler(this, EventArgs.Empty);
     236    }
    196237    public event EventHandler<EventArgs<int, int>> ItemChanged;
    197238    protected virtual void OnItemChanged(int rowIndex, int columnIndex) {
     
    224265      set { this.RowNames = value; }
    225266    }
     267    bool IStringConvertibleMatrix.SortableView {
     268      get { return this.SortableView; }
     269      set { this.SortableView = value; }
     270    }
    226271    bool IStringConvertibleMatrix.Validate(string value, out string errorMessage) {
    227272      return Validate(value, out errorMessage);
Note: See TracChangeset for help on using the changeset viewer.