Changeset 5097


Ignore:
Timestamp:
12/14/10 11:30:55 (10 years ago)
Author:
epitzer
Message:

DataTable, DataRow and DataTableView have been unsealed. (#1338)

A possible persistence problem has also been fixed by directly persisting the visualProperties property otherwise an ArgumentException might break backwards compatibility.

Location:
trunk/sources
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Analysis.Views/3.3/DataTableView.Designer.cs

    r4778 r5097  
    120120    #endregion
    121121
    122     private HeuristicLab.Visualization.ChartControlsExtensions.EnhancedChart chart;
     122    protected HeuristicLab.Visualization.ChartControlsExtensions.EnhancedChart chart;
    123123
    124124  }
  • trunk/sources/HeuristicLab.Analysis.Views/3.3/DataTableView.cs

    r4870 r5097  
    3636  [View("DataTable View")]
    3737  [Content(typeof(DataTable), true)]
    38   public sealed partial class DataTableView : NamedItemView {
    39     private List<Series> invisibleSeries;
    40     private Dictionary<IObservableList<double>, DataRow> valuesRowsTable;
     38  public partial class DataTableView : NamedItemView {
     39    protected List<Series> invisibleSeries;
     40    protected Dictionary<IObservableList<double>, DataRow> valuesRowsTable;
    4141    /// <summary>
    4242    /// Gets or sets the variable to represent visually.
     
    113113    }
    114114
    115     private void AddDataRow(DataRow row) {
     115
     116    /// <summary>
     117    /// Add the DataRow as a series to the chart.
     118    /// </summary>
     119    /// <param name="row">DataRow to add as series to the chart.</param>
     120    protected virtual void AddDataRow(DataRow row) {
    116121      Series series = new Series(row.Name);
    117122      switch (row.VisualProperties.ChartType) {
     
    141146    }
    142147
    143     private void UpdateYCursorInterval() {
     148
     149    /// <summary>
     150    /// Set the Y Cursor interval to visible points of enabled series.
     151    /// </summary>
     152    protected virtual void UpdateYCursorInterval() {
    144153      double interestingValuesRange = (from series in chart.Series
    145154                                       where series.Enabled
     
    159168    }
    160169
    161     private void RemoveDataRow(DataRow row) {
     170
     171    /// <summary>
     172    /// Remove the corresponding series for a certain DataRow.
     173    /// </summary>
     174    /// <param name="row">DataRow which series should be removed.</param>
     175    protected virtual void RemoveDataRow(DataRow row) {
    162176      Series series = chart.Series[row.Name];
    163177      chart.Series.Remove(series);
     
    168182
    169183    #region Content Events
    170     private void RegisterDataRowEvents(DataRow row) {
     184    /// <summary>
     185    /// Automatically called for every existing data row and whenever a data row is added
     186    /// to the data table. Do not call this method directly.
     187    /// </summary>
     188    /// <param name="row">The DataRow that was added.</param>
     189    protected virtual void RegisterDataRowEvents(DataRow row) {
    171190      row.NameChanged += new EventHandler(Row_NameChanged);
    172191      row.VisualPropertiesChanged += new EventHandler(Row_VisualPropertiesChanged);
     
    178197      row.Values.CollectionReset += new CollectionItemsChangedEventHandler<IndexedItem<double>>(Values_CollectionReset);
    179198    }
    180     private void DeregisterDataRowEvents(DataRow row) {
     199
     200    /// <summary>
     201    /// Automatically called for every data row that is removed from the DataTable. Do
     202    /// not directly call this method.
     203    /// </summary>
     204    /// <param name="row">The DataRow that was removed.</param>
     205    protected virtual void DeregisterDataRowEvents(DataRow row) {
    181206      row.Values.ItemsAdded -= new CollectionItemsChangedEventHandler<IndexedItem<double>>(Values_ItemsAdded);
    182207      row.Values.ItemsRemoved -= new CollectionItemsChangedEventHandler<IndexedItem<double>>(Values_ItemsRemoved);
     
    436461    #endregion
    437462
    438     private bool IsInvalidValue(double x) {
     463
     464    /// <summary>
     465    /// Determines whether a double value can be displayed (converted to Decimal and not an NaN).
     466    /// </summary>
     467    /// <param name="x">The number to check.</param>
     468    /// <returns><code>true</code> if the value can be safely shwon in the chart,
     469    /// <code>false</code> otherwise.</returns>
     470    protected static bool IsInvalidValue(double x) {
    439471      return double.IsNaN(x) || x < (double)decimal.MinValue || x > (double)decimal.MaxValue;
    440472    }
  • trunk/sources/HeuristicLab.Analysis/3.3/DataVisualization/DataRow.cs

    r4887 r5097  
    3434  [Item("DataRow", "A row of data values.")]
    3535  [StorableClass]
    36   public sealed class DataRow : NamedItem {
     36  public class DataRow : NamedItem {
     37    [Storable(Name = "VisualProperties")]
    3738    private DataRowVisualProperties visualProperties;
    3839    public DataRowVisualProperties VisualProperties {
     
    5455
    5556    #region Persistence Properties
    56     [Storable(Name = "VisualProperties")]
    57     private DataRowVisualProperties StorableVisualProperties {
    58       get { return VisualProperties; }
    59       set { VisualProperties = value; }
    60     }
    6157    [Storable(Name = "values")]
    6258    private IEnumerable<double> StorableValues {
     
    6763
    6864    [StorableConstructor]
    69     private DataRow(bool deserializing) : base(deserializing) { }
    70     private DataRow(DataRow original, Cloner cloner)
     65    protected DataRow(bool deserializing) : base(deserializing) { }
     66    protected DataRow(DataRow original, Cloner cloner)
    7167      : base(original, cloner) {
    7268      this.VisualProperties = (DataRowVisualProperties)cloner.Clone(original.visualProperties);
     
    107103
    108104    public event EventHandler VisualPropertiesChanged;
    109     private void OnVisualPropertiesChanged() {
     105    protected virtual void OnVisualPropertiesChanged() {
    110106      EventHandler handler = VisualPropertiesChanged;
    111107      if (handler != null) handler(this, EventArgs.Empty);
  • trunk/sources/HeuristicLab.Analysis/3.3/DataVisualization/DataTable.cs

    r4887 r5097  
    3737  [Item("DataTable", "A table of data values.")]
    3838  [StorableClass]
    39   public sealed class DataTable : NamedItem, IStringConvertibleMatrix {
     39  public class DataTable : NamedItem, IStringConvertibleMatrix {
    4040    public override Image ItemImage {
    4141      get { return HeuristicLab.Common.Resources.VS2008ImageLibrary.Performance; }
    4242    }
    4343
     44    [Storable(Name = "VisualProperties")]
    4445    private DataTableVisualProperties visualProperties;
    4546    public DataTableVisualProperties VisualProperties {
     
    6263
    6364    #region Persistence Properties
    64     [Storable(Name = "VisualProperties")]
    65     private DataTableVisualProperties StorableVisualProperties {
    66       get { return VisualProperties; }
    67       set { VisualProperties = value; }
    68     }
    6965    [Storable(Name = "rows")]
    7066    private IEnumerable<DataRow> StorableRows {
     
    7571
    7672    [StorableConstructor]
    77     private DataTable(bool deserializing) : base(deserializing) { }
    78     private DataTable(DataTable original, Cloner cloner)
     73    protected DataTable(bool deserializing) : base(deserializing) { }
     74    protected DataTable(DataTable original, Cloner cloner)
    7975      : base(original, cloner) {
    8076      this.VisualProperties = (DataTableVisualProperties)cloner.Clone(original.visualProperties);
     
    114110
    115111    public event EventHandler VisualPropertiesChanged;
    116     private void OnVisualPropertiesChanged() {
     112    protected virtual void OnVisualPropertiesChanged() {
    117113      EventHandler handler = VisualPropertiesChanged;
    118114      if (handler != null) handler(this, EventArgs.Empty);
     
    123119    }
    124120
    125     private void RegisterRowsEvents() {
     121    protected virtual void RegisterRowsEvents() {
    126122      rows.ItemsAdded += new CollectionItemsChangedEventHandler<DataRow>(rows_ItemsAdded);
    127123      rows.ItemsRemoved += new CollectionItemsChangedEventHandler<DataRow>(rows_ItemsRemoved);
     
    158154    }
    159155
    160     private void RegisterRowEvents(DataRow row) {
     156    protected virtual void RegisterRowEvents(DataRow row) {
    161157      row.Values.ItemsAdded += new CollectionItemsChangedEventHandler<IndexedItem<double>>(Values_ItemsAdded);
    162158      row.Values.ItemsMoved += new CollectionItemsChangedEventHandler<IndexedItem<double>>(Values_ItemsMoved);
     
    165161      row.Values.CollectionReset += new CollectionItemsChangedEventHandler<IndexedItem<double>>(Values_CollectionReset);
    166162    }
    167     private void DeregisterRowEvents(DataRow row) {
     163    protected virtual void DeregisterRowEvents(DataRow row) {
    168164      row.Values.ItemsAdded -= new CollectionItemsChangedEventHandler<IndexedItem<double>>(Values_ItemsAdded);
    169165      row.Values.ItemsMoved -= new CollectionItemsChangedEventHandler<IndexedItem<double>>(Values_ItemsMoved);
     
    233229
    234230    public event EventHandler<EventArgs<int, int>> ItemChanged;
    235     private void OnItemChanged(int rowIndex, int columnIndex) {
     231    protected virtual void OnItemChanged(int rowIndex, int columnIndex) {
    236232      var handler = ItemChanged;
    237233      if (handler != null) handler(this, new EventArgs<int, int>(rowIndex, columnIndex));
     
    239235    }
    240236    public event EventHandler Reset;
    241     private void OnReset() {
     237    protected virtual void OnReset() {
    242238      var handler = Reset;
    243239      if (handler != null) handler(this, EventArgs.Empty);
    244240    }
    245241    public event EventHandler ColumnNamesChanged;
    246     private void OnColumnNamesChanged() {
     242    protected virtual void OnColumnNamesChanged() {
    247243      var handler = ColumnNamesChanged;
    248244      if (handler != null) handler(this, EventArgs.Empty);
    249245    }
    250246    public event EventHandler RowNamesChanged;
    251     private void OnRowNamesChanged() {
     247    protected virtual void OnRowNamesChanged() {
    252248      var handler = RowNamesChanged;
    253249      if (handler != null) handler(this, EventArgs.Empty);
    254250    }
    255251    public event EventHandler SortableViewChanged;
    256     private void OnSortableViewChanged() {
     252    protected virtual void OnSortableViewChanged() {
    257253      var handler = SortableViewChanged;
    258254      if (handler != null) handler(this, EventArgs.Empty);
Note: See TracChangeset for help on using the changeset viewer.