Free cookie consent management tool by TermsFeed Policy Generator

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

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

Location:
trunk/sources/HeuristicLab.Data/3.3
Files:
5 edited

Legend:

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

    r3317 r3320  
    8989      set { this.RowNames = value; }
    9090    }
     91    bool IStringConvertibleMatrix.SortableView {
     92      get { return this.SortableView; }
     93      set { this.SortableView = value; }
     94    }
    9195    bool IStringConvertibleMatrix.Validate(string value, out string errorMessage) {
    9296      return Validate(value, out errorMessage);
  • trunk/sources/HeuristicLab.Data/3.3/DoubleMatrix.cs

    r3317 r3320  
    8989      set { this.RowNames = value; }
    9090    }
     91    bool IStringConvertibleMatrix.SortableView {
     92      get { return this.SortableView; }
     93      set { this.SortableView = value; }
     94    }
    9195    bool IStringConvertibleMatrix.Validate(string value, out string errorMessage) {
    9296      return Validate(value, out errorMessage);
  • trunk/sources/HeuristicLab.Data/3.3/IStringConvertibleMatrix.cs

    r3317 r3320  
    2121
    2222using System;
     23using System.Collections.Generic;
    2324using HeuristicLab.Common;
    24 using System.Collections.Generic;
    2525
    2626namespace HeuristicLab.Data {
    2727  public interface IStringConvertibleMatrix {
    28     bool ReadOnlyView { get; set; }
    2928    int Rows { get; set; }
    3029    int Columns { get; set; }
    31 
    3230    IEnumerable<string> ColumnNames { get; set; }
    3331    IEnumerable<string> RowNames { get; set; }
    34     //bool SortableView { get; }
     32
     33    bool ReadOnlyView { get; set; }
     34    bool SortableView { get; set; }
    3535
    3636    bool Validate(string value, out string errorMessage);
     
    3838    bool SetValue(string value, int rowIndex, int columnIndex);
    3939
     40    event EventHandler ColumnNamesChanged;
     41    event EventHandler RowNamesChanged;
    4042    event EventHandler ReadOnlyViewChanged;
     43    event EventHandler SortableViewChanged;
    4144    event EventHandler<EventArgs<int, int>> ItemChanged;
    4245    event EventHandler Reset;
  • 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);
  • 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.