Free cookie consent management tool by TermsFeed Policy Generator

source: trunk/sources/HeuristicLab.Logging/3.3/PointXYChart.cs @ 3198

Last change on this file since 3198 was 2526, checked in by swagner, 15 years ago

Refactored cloning (#806)

File size: 4.2 KB
RevLine 
[671]1#region License Information
2/* HeuristicLab
3 * Copyright (C) 2002-2008 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
4 *
5 * This file is part of HeuristicLab.
6 *
7 * HeuristicLab is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * HeuristicLab is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
19 */
20#endregion
21
22using System;
23using System.Collections.Generic;
24using System.Text;
25using System.Xml;
26using HeuristicLab.Core;
27using HeuristicLab.Data;
[1872]28using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
[671]29
30namespace HeuristicLab.Logging {
[1167]31  /// <summary>
32  /// Class for point xy charts.
33  /// </summary>
[671]34  public class PointXYChart : ItemBase, IVisualizationItem {
[1872]35    [Storable]
[677]36    private ItemList myValues;
[1167]37    /// <summary>
38    /// Gets or sets the values of the current instance.
39    /// </summary>
40    /// <remarks>Calls <see cref="OnValuesChanged"/> in the setter.</remarks>
[677]41    public ItemList Values {
[671]42      get { return myValues; }
43      set {
44        if (value != myValues) {
45          myValues = value;
46          OnValuesChanged();
47        }
48      }
49    }
50
[1872]51    [Storable]
[671]52    private BoolData myConnectDots;
[1167]53    /// <summary>
54    /// Gets or sets the flag whether the dots should be connected or not.
55    /// </summary>
56    /// <remarks>Calls <see cref="OnConnectDotsChanged"/> in the setter.</remarks>
[671]57    public BoolData ConnectDots {
58      get { return myConnectDots; }
59      set {
60        if (value != myConnectDots) {
61          myConnectDots = value;
62          OnConnectDotsChanged();
63        }
64      }
65    }
66 
67         
[1167]68    /// <summary>
69    /// Initializes a new instance of <see cref="PointXYChart"/> with the <c>ConnectDots</c> flag set to
70    /// <c>true</c>.
71    /// </summary>
[671]72    public PointXYChart() {
73      myConnectDots = new BoolData(true);
74    }
[1167]75    /// <summary>
76    /// Initializes a new instance of <see cref="PointXYChart"/> with the given <paramref name="connectDots"/>
77    /// flag and the specified <paramref name="values"/>.
78    /// </summary>
79    /// <param name="connectDots">The flag whether the dots should be connected or not.</param>
80    /// <param name="values">The values with which the current instance should be initialized.</param>
[677]81    public PointXYChart(bool connectDots,ItemList values) {
[671]82      myConnectDots = new BoolData(connectDots);
83      myValues = values;
84    }
85
[1167]86    /// <summary>
87    /// Clones the current instance (deep clone).
88    /// </summary>
[2526]89    /// <remarks>Deep clone through <see cref="cloner.Clone"/> method of helper class
[1167]90    /// <see cref="Auxiliary"/>.</remarks>
91    /// <param name="clonedObjects">Dictionary of all already clone objects. (Needed to avoid cycles.)</param>
92    /// <returns>The cloned object as <see cref="PointXYChart"/>.</returns>
[2526]93    public override IItem Clone(ICloner cloner) {
94      PointXYChart clone = (PointXYChart)base.Clone(cloner);
95      clone.myValues = (ItemList)cloner.Clone(Values);
[671]96      return clone;
97    }
98
[1167]99    /// <summary>
100    /// Occurs when the values of the current instance have been changed.
101    /// </summary>
[671]102    public event EventHandler ValuesChanged;
[1167]103    /// <summary>
104    /// Fires a <c>ValuesChanged</c> event.
105    /// </summary>
[671]106    protected virtual void OnValuesChanged() {
107      if (ValuesChanged != null)
108        ValuesChanged(this, new EventArgs());
109    }
[1167]110    /// <summary>
111    /// Occurs when the boolean flag has been changed.
112    /// </summary>
[671]113    public event EventHandler ConnectDotsChanged;
[1167]114    /// <summary>
115    /// Fires a <c>ConnectDotsChanged</c> event.
116    /// </summary>
[671]117    protected virtual void OnConnectDotsChanged() {
118      if (ConnectDotsChanged != null)
119        ConnectDotsChanged(this, new EventArgs());
120    }
121  }
122}
Note: See TracBrowser for help on using the repository browser.