source: stable/HeuristicLab.Analysis/3.3/DataVisualization/DataTableVisualProperties.cs @ 15097

Last change on this file since 15097 was 15097, checked in by pfleck, 2 years ago

#2713 #2715 #2765
Merged to stable

  • 14435-14439,14493,14516,14519,14982,14987,14992,15042 (from #2713)
  • 14457-14458,14508,14582,14740,14984,15068,15095 (from #2715)
  • 14860-14861 (from #2765)
File size: 23.6 KB
Line 
1#region License Information
2/* HeuristicLab
3 * Copyright (C) 2002-2016 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.ComponentModel;
24using System.Drawing;
25using HeuristicLab.Common;
26using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
27
28namespace HeuristicLab.Analysis {
29  /// <summary>
30  /// Visual properties of a DataTable.
31  /// </summary>
32  [StorableClass]
33  public class DataTableVisualProperties : DeepCloneable, INotifyPropertyChanged {
34
35    #region Histogram Aggregation
36    public enum DataTableHistogramAggregation {
37      Overlapping,
38      SideBySide,
39      Stacked
40    }
41    #endregion
42
43    private Font titleFont;
44    public Font TitleFont {
45      get { return titleFont; }
46      set {
47        if (titleFont == null || value == null
48          || titleFont.Name != value.Name || titleFont.Size != value.Size || titleFont.Style != value.Style) {
49          titleFont = value;
50          OnPropertyChanged("TitleFont");
51        }
52      }
53    }
54    private Color titleColor;
55    public Color TitleColor {
56      get { return titleColor; }
57      set {
58        if (titleColor != value) {
59          titleColor = value;
60          OnPropertyChanged("TitleFontColor");
61        }
62      }
63    }
64    private string title;
65    public string Title {
66      get { return title; }
67      set {
68        if (title != value) {
69          title = value;
70          OnPropertyChanged("Title");
71        }
72      }
73    }
74    private Font axisTitleFont;
75    public Font AxisTitleFont {
76      get { return axisTitleFont; }
77      set {
78        if (axisTitleFont == null || axisTitleFont == null
79          || axisTitleFont.Name != value.Name || axisTitleFont.Size != value.Size || axisTitleFont.Style != value.Style) {
80          axisTitleFont = value;
81          OnPropertyChanged("AxisTitleFont");
82        }
83      }
84    }
85    private Color axisTitleColor;
86    public Color AxisTitleColor {
87      get { return axisTitleColor; }
88      set {
89        if (axisTitleColor != value) {
90          axisTitleColor = value;
91          OnPropertyChanged("AxisTitleColor");
92        }
93      }
94    }
95    private string xAxisTitle;
96    public string XAxisTitle {
97      get { return xAxisTitle; }
98      set {
99        if (value == null) value = string.Empty;
100        if (xAxisTitle != value) {
101          xAxisTitle = value;
102          OnPropertyChanged("XAxisTitle");
103        }
104      }
105    }
106
107    private string yAxisTitle;
108    public string YAxisTitle {
109      get { return yAxisTitle; }
110      set {
111        if (value == null) value = string.Empty;
112        if (yAxisTitle != value) {
113          yAxisTitle = value;
114          OnPropertyChanged("YAxisTitle");
115        }
116      }
117    }
118
119    private string secondXAxisTitle;
120    public string SecondXAxisTitle {
121      get { return secondXAxisTitle; }
122      set {
123        if (value == null) value = string.Empty;
124        if (secondXAxisTitle != value) {
125          secondXAxisTitle = value;
126          OnPropertyChanged("SecondXAxisTitle");
127        }
128      }
129    }
130
131    private string secondYAxisTitle;
132    public string SecondYAxisTitle {
133      get { return secondYAxisTitle; }
134      set {
135        if (value == null) value = string.Empty;
136        if (secondYAxisTitle != value) {
137          secondYAxisTitle = value;
138          OnPropertyChanged("SecondYAxisTitle");
139        }
140      }
141    }
142
143    private bool xAxisMinimumAuto;
144    public bool XAxisMinimumAuto {
145      get { return xAxisMinimumAuto; }
146      set {
147        if (xAxisMinimumAuto != value) {
148          xAxisMinimumAuto = value;
149          if (value) xAxisMinimumFixedValue = double.NaN;
150          OnPropertyChanged("XAxisMinimumAuto");
151        }
152      }
153    }
154
155    private bool xAxisMaximumAuto;
156    public bool XAxisMaximumAuto {
157      get { return xAxisMaximumAuto; }
158      set {
159        if (xAxisMaximumAuto != value) {
160          xAxisMaximumAuto = value;
161          if (value) xAxisMaximumFixedValue = double.NaN;
162          OnPropertyChanged("XAxisMaximumAuto");
163        }
164      }
165    }
166
167    private double xAxisMinimumFixedValue;
168    public double XAxisMinimumFixedValue {
169      get { return xAxisMinimumFixedValue; }
170      set {
171        if (xAxisMinimumFixedValue != value) {
172          xAxisMinimumFixedValue = value;
173          OnPropertyChanged("XAxisMinimumFixedValue");
174        }
175      }
176    }
177
178    private double xAxisMaximumFixedValue;
179    public double XAxisMaximumFixedValue {
180      get { return xAxisMaximumFixedValue; }
181      set {
182        if (xAxisMaximumFixedValue != value) {
183          xAxisMaximumFixedValue = value;
184          OnPropertyChanged("XAxisMaximumFixedValue");
185        }
186      }
187    }
188
189    private bool secondXAxisMinimumAuto;
190    public bool SecondXAxisMinimumAuto {
191      get { return secondXAxisMinimumAuto; }
192      set {
193        if (secondXAxisMinimumAuto != value) {
194          secondXAxisMinimumAuto = value;
195          if (value) secondXAxisMinimumFixedValue = double.NaN;
196          OnPropertyChanged("SecondXAxisMinimumAuto");
197        }
198      }
199    }
200
201    private bool secondXAxisMaximumAuto;
202    public bool SecondXAxisMaximumAuto {
203      get { return secondXAxisMaximumAuto; }
204      set {
205        if (secondXAxisMaximumAuto != value) {
206          secondXAxisMaximumAuto = value;
207          if (value) secondXAxisMaximumFixedValue = double.NaN;
208          OnPropertyChanged("SecondXAxisMaximumAuto");
209        }
210      }
211    }
212
213    private double secondXAxisMinimumFixedValue;
214    public double SecondXAxisMinimumFixedValue {
215      get { return secondXAxisMinimumFixedValue; }
216      set {
217        if (secondXAxisMinimumFixedValue != value) {
218          secondXAxisMinimumFixedValue = value;
219          OnPropertyChanged("SecondXAxisMinimumFixedValue");
220        }
221      }
222    }
223
224    private double secondXAxisMaximumFixedValue;
225    public double SecondXAxisMaximumFixedValue {
226      get { return secondXAxisMaximumFixedValue; }
227      set {
228        if (secondXAxisMaximumFixedValue != value) {
229          secondXAxisMaximumFixedValue = value;
230          OnPropertyChanged("SecondXAxisMaximumFixedValue");
231        }
232      }
233    }
234
235    private bool yAxisMinimumAuto;
236    public bool YAxisMinimumAuto {
237      get { return yAxisMinimumAuto; }
238      set {
239        if (yAxisMinimumAuto != value) {
240          yAxisMinimumAuto = value;
241          if (value) yAxisMinimumFixedValue = double.NaN;
242          OnPropertyChanged("YAxisMinimumAuto");
243        }
244      }
245    }
246
247    private bool yAxisMaximumAuto;
248    public bool YAxisMaximumAuto {
249      get { return yAxisMaximumAuto; }
250      set {
251        if (yAxisMaximumAuto != value) {
252          yAxisMaximumAuto = value;
253          if (value) yAxisMaximumFixedValue = double.NaN;
254          OnPropertyChanged("YAxisMaximumAuto");
255        }
256      }
257    }
258
259    private double yAxisMinimumFixedValue;
260    public double YAxisMinimumFixedValue {
261      get { return yAxisMinimumFixedValue; }
262      set {
263        if (yAxisMinimumFixedValue != value) {
264          yAxisMinimumFixedValue = value;
265          OnPropertyChanged("YAxisMinimumFixedValue");
266        }
267      }
268    }
269
270    private double yAxisMaximumFixedValue;
271    public double YAxisMaximumFixedValue {
272      get { return yAxisMaximumFixedValue; }
273      set {
274        if (yAxisMaximumFixedValue != value) {
275          yAxisMaximumFixedValue = value;
276          OnPropertyChanged("YAxisMaximumFixedValue");
277        }
278      }
279    }
280
281    private bool secondYAxisMinimumAuto;
282    public bool SecondYAxisMinimumAuto {
283      get { return secondYAxisMinimumAuto; }
284      set {
285        if (secondYAxisMinimumAuto != value) {
286          secondYAxisMinimumAuto = value;
287          if (value) secondYAxisMinimumFixedValue = double.NaN;
288          OnPropertyChanged("SecondYAxisMinimumAuto");
289        }
290      }
291    }
292
293    private bool secondYAxisMaximumAuto;
294    public bool SecondYAxisMaximumAuto {
295      get { return secondYAxisMaximumAuto; }
296      set {
297        if (secondYAxisMaximumAuto != value) {
298          secondYAxisMaximumAuto = value;
299          if (value) secondYAxisMaximumFixedValue = double.NaN;
300          OnPropertyChanged("SecondYAxisMaximumAuto");
301        }
302      }
303    }
304
305    private double secondYAxisMinimumFixedValue;
306    public double SecondYAxisMinimumFixedValue {
307      get { return secondYAxisMinimumFixedValue; }
308      set {
309        if (secondYAxisMinimumFixedValue != value) {
310          secondYAxisMinimumFixedValue = value;
311          OnPropertyChanged("SecondYAxisMinimumFixedValue");
312        }
313      }
314    }
315
316    private double secondYAxisMaximumFixedValue;
317    public double SecondYAxisMaximumFixedValue {
318      get { return secondYAxisMaximumFixedValue; }
319      set {
320        if (secondYAxisMaximumFixedValue != value) {
321          secondYAxisMaximumFixedValue = value;
322          OnPropertyChanged("SecondYAxisMaximumFixedValue");
323        }
324      }
325    }
326
327    private bool xAxisLogScale;
328    public bool XAxisLogScale {
329      get { return xAxisLogScale; }
330      set {
331        if (xAxisLogScale == value) return;
332        xAxisLogScale = value;
333        OnPropertyChanged("XAxisLogScale");
334      }
335    }
336
337    private bool secondXAxisLogScale;
338    public bool SecondXAxisLogScale {
339      get { return secondXAxisLogScale; }
340      set {
341        if (secondXAxisLogScale == value) return;
342        secondXAxisLogScale = value;
343        OnPropertyChanged("SecondXAxisLogScale");
344      }
345    }
346
347    private bool yAxisLogScale;
348    public bool YAxisLogScale {
349      get { return yAxisLogScale; }
350      set {
351        if (yAxisLogScale == value) return;
352        yAxisLogScale = value;
353        OnPropertyChanged("YAxisLogScale");
354      }
355    }
356
357    private bool secondYAxisLogScale;
358    public bool SecondYAxisLogScale {
359      get { return secondYAxisLogScale; }
360      set {
361        if (secondYAxisLogScale == value) return;
362        secondYAxisLogScale = value;
363        OnPropertyChanged("SecondYAxisLogScale");
364      }
365    }
366
367    private int histogramBins;
368    public int HistogramBins {
369      get { return histogramBins; }
370      set {
371        if (histogramBins != value) {
372          histogramBins = value;
373          OnPropertyChanged("HistogramBins");
374        }
375      }
376    }
377
378    private bool histogramExactBins;
379    public bool HistogramExactBins {
380      get { return histogramExactBins; }
381      set {
382        if (histogramExactBins != value) {
383          histogramExactBins = value;
384          OnPropertyChanged("HistogramExactBins");
385        }
386      }
387    }
388
389    private DataTableHistogramAggregation histogramAggregation;
390    public DataTableHistogramAggregation HistogramAggregation {
391      get { return histogramAggregation; }
392      set {
393        if (histogramAggregation != value) {
394          histogramAggregation = value;
395          OnPropertyChanged("HistogramAggregation");
396        }
397      }
398    }
399
400    #region Persistence Properties
401    [Storable(Name = "TitleFont")]
402    private Font StorableTitleFont {
403      get { return titleFont; }
404      set { titleFont = value; }
405    }
406    [Storable(Name = "TitleColor")]
407    private Color StorableTitleColor {
408      get { return titleColor; }
409      set { titleColor = value; }
410    }
411    [Storable(Name = "Title")]
412    private string StorableTitle {
413      get { return title; }
414      set { title = value; }
415    }
416    [Storable(Name = "AxisTitleFont")]
417    private Font StorableAxisTitleFont {
418      get { return axisTitleFont; }
419      set { axisTitleFont = value; }
420    }
421    [Storable(Name = "AxisTitleColor")]
422    private Color StorableAxisTitleColor {
423      get { return axisTitleColor; }
424      set { axisTitleColor = value; }
425    }
426    [Storable(Name = "XAxisTitle")]
427    private string StorableXAxisTitle {
428      get { return xAxisTitle; }
429      set { xAxisTitle = value; }
430    }
431    [Storable(Name = "YAxisTitle")]
432    private string StorableYAxisTitle {
433      get { return yAxisTitle; }
434      set { yAxisTitle = value; }
435    }
436    [Storable(Name = "SecondXAxisTitle")]
437    private string StorableSecondXAxisTitle {
438      get { return secondXAxisTitle; }
439      set { secondXAxisTitle = value; }
440    }
441    [Storable(Name = "SecondYAxisTitle")]
442    private string StorableSecondYAxisTitle {
443      get { return secondYAxisTitle; }
444      set { secondYAxisTitle = value; }
445    }
446    [Storable(Name = "XAxisMinimumAuto")]
447    private bool StorableXAxisMinimumAuto {
448      get { return xAxisMinimumAuto; }
449      set { xAxisMinimumAuto = value; }
450    }
451    [Storable(Name = "XAxisMaximumAuto")]
452    private bool StorableXAxisMaximumAuto {
453      get { return xAxisMaximumAuto; }
454      set { xAxisMaximumAuto = value; }
455    }
456    [Storable(Name = "XAxisMinimumFixedValue")]
457    private double StorableXAxisMinimumFixedValue {
458      get { return xAxisMinimumFixedValue; }
459      set { xAxisMinimumFixedValue = value; }
460    }
461    [Storable(Name = "XAxisMaximumFixedValue")]
462    private double StorableXAxisMaximumFixedValue {
463      get { return xAxisMaximumFixedValue; }
464      set { xAxisMaximumFixedValue = value; }
465    }
466    [Storable(Name = "SecondXAxisMinimumAuto")]
467    private bool StorableSecondXAxisMinimumAuto {
468      get { return secondXAxisMinimumAuto; }
469      set { secondXAxisMinimumAuto = value; }
470    }
471    [Storable(Name = "SecondXAxisMaximumAuto")]
472    private bool StorableSecondXAxisMaximumAuto {
473      get { return secondXAxisMaximumAuto; }
474      set { secondXAxisMaximumAuto = value; }
475    }
476    [Storable(Name = "SecondXAxisMinimumFixedValue")]
477    private double StorableSecondXAxisMinimumFixedValue {
478      get { return secondXAxisMinimumFixedValue; }
479      set { secondXAxisMinimumFixedValue = value; }
480    }
481    [Storable(Name = "SecondXAxisMaximumFixedValue")]
482    private double StorableSecondXAxisMaximumFixedValue {
483      get { return secondXAxisMaximumFixedValue; }
484      set { secondXAxisMaximumFixedValue = value; }
485    }
486    [Storable(Name = "YAxisMinimumAuto")]
487    private bool StorableYAxisMinimumAuto {
488      get { return yAxisMinimumAuto; }
489      set { yAxisMinimumAuto = value; }
490    }
491    [Storable(Name = "YAxisMaximumAuto")]
492    private bool StorableYAxisMaximumAuto {
493      get { return yAxisMaximumAuto; }
494      set { yAxisMaximumAuto = value; }
495    }
496    [Storable(Name = "YAxisMinimumFixedValue")]
497    private double StorableYAxisMinimumFixedValue {
498      get { return yAxisMinimumFixedValue; }
499      set { yAxisMinimumFixedValue = value; }
500    }
501    [Storable(Name = "YAxisMaximumFixedValue")]
502    private double StorableYAxisMaximumFixedValue {
503      get { return yAxisMaximumFixedValue; }
504      set { yAxisMaximumFixedValue = value; }
505    }
506    [Storable(Name = "SecondYAxisMinimumAuto")]
507    private bool StorableSecondYAxisMinimumAuto {
508      get { return secondYAxisMinimumAuto; }
509      set { secondYAxisMinimumAuto = value; }
510    }
511    [Storable(Name = "SecondYAxisMaximumAuto")]
512    private bool StorableSecondYAxisMaximumAuto {
513      get { return secondYAxisMaximumAuto; }
514      set { secondYAxisMaximumAuto = value; }
515    }
516    [Storable(Name = "SecondYAxisMinimumFixedValue")]
517    private double StorableSecondYAxisMinimumFixedValue {
518      get { return secondYAxisMinimumFixedValue; }
519      set { secondYAxisMinimumFixedValue = value; }
520    }
521    [Storable(Name = "SecondYAxisMaximumFixedValue")]
522    private double StorableSecondYAxisMaximumFixedValue {
523      get { return secondYAxisMaximumFixedValue; }
524      set { secondYAxisMaximumFixedValue = value; }
525    }
526    [Storable(Name = "XAxisLogScale")]
527    private bool StorableXAxisLogScale {
528      get { return xAxisLogScale; }
529      set { xAxisLogScale = value; }
530    }
531    [Storable(Name = "SecondXAxisLogScale")]
532    private bool StorableSecondXAxisLogScale {
533      get { return secondXAxisLogScale; }
534      set { secondXAxisLogScale = value; }
535    }
536    [Storable(Name = "YAxisLogScale")]
537    private bool StorableYAxisLogScale {
538      get { return yAxisLogScale; }
539      set { yAxisLogScale = value; }
540    }
541    [Storable(Name = "SecondYAxisLogScale")]
542    private bool StorableSecondYAxisLogScale {
543      get { return secondYAxisLogScale; }
544      set { secondYAxisLogScale = value; }
545    }
546    [Storable(Name = "HistogramBins", DefaultValue = 10)]
547    private int StorableHistogramBins {
548      get { return histogramBins; }
549      set { histogramBins = value; }
550    }
551    [Storable(Name = "HistogramExactBins", DefaultValue = false)]
552    private bool StorableHistogramExactBins {
553      get { return histogramExactBins; }
554      set { histogramExactBins = value; }
555    }
556    [Storable(Name = "HistogramAggregation", DefaultValue = DataTableHistogramAggregation.Overlapping)]
557    private DataTableHistogramAggregation StorableHistogramAggregation {
558      get { return histogramAggregation; }
559      set { histogramAggregation = value; }
560    }
561    #endregion
562
563    [StorableConstructor]
564    protected DataTableVisualProperties(bool deserializing) : base() { }
565    protected DataTableVisualProperties(DataTableVisualProperties original, Cloner cloner)
566      : base(original, cloner) {
567      if (original.titleFont != null)
568        this.titleFont = (Font)original.titleFont.Clone();
569      if (original.axisTitleFont != null)
570        this.axisTitleFont = (Font)original.axisTitleFont.Clone();
571      this.title = original.title;
572      this.xAxisTitle = original.xAxisTitle;
573      this.yAxisTitle = original.yAxisTitle;
574      this.secondXAxisTitle = original.secondXAxisTitle;
575      this.secondYAxisTitle = original.secondYAxisTitle;
576      this.xAxisMinimumAuto = original.xAxisMinimumAuto;
577      this.xAxisMinimumFixedValue = original.xAxisMinimumFixedValue;
578      this.xAxisMaximumAuto = original.xAxisMaximumAuto;
579      this.xAxisMaximumFixedValue = original.xAxisMaximumFixedValue;
580      this.secondXAxisMinimumAuto = original.secondXAxisMinimumAuto;
581      this.secondXAxisMinimumFixedValue = original.secondXAxisMinimumFixedValue;
582      this.secondXAxisMaximumAuto = original.secondXAxisMaximumAuto;
583      this.secondXAxisMaximumFixedValue = original.secondXAxisMaximumFixedValue;
584      this.yAxisMinimumAuto = original.yAxisMinimumAuto;
585      this.yAxisMinimumFixedValue = original.yAxisMinimumFixedValue;
586      this.yAxisMaximumAuto = original.yAxisMaximumAuto;
587      this.yAxisMaximumFixedValue = original.yAxisMaximumFixedValue;
588      this.secondYAxisMinimumAuto = original.secondYAxisMinimumAuto;
589      this.secondYAxisMinimumFixedValue = original.secondYAxisMinimumFixedValue;
590      this.secondYAxisMaximumAuto = original.secondYAxisMaximumAuto;
591      this.secondYAxisMaximumFixedValue = original.secondYAxisMaximumFixedValue;
592      this.xAxisLogScale = original.xAxisLogScale;
593      this.secondXAxisLogScale = original.secondXAxisLogScale;
594      this.yAxisLogScale = original.yAxisLogScale;
595      this.secondYAxisLogScale = original.secondYAxisLogScale;
596      this.histogramBins = original.histogramBins;
597      this.histogramExactBins = original.histogramExactBins;
598      this.histogramAggregation = original.histogramAggregation;
599    }
600    public DataTableVisualProperties() {
601      this.titleColor = Color.Black;
602      this.axisTitleColor = Color.Black;
603      this.title = string.Empty;
604      this.xAxisTitle = string.Empty;
605      this.yAxisTitle = string.Empty;
606      this.secondXAxisTitle = string.Empty;
607      this.secondYAxisTitle = string.Empty;
608      this.xAxisMinimumAuto = true;
609      this.xAxisMinimumFixedValue = double.NaN;
610      this.xAxisMaximumAuto = true;
611      this.xAxisMaximumFixedValue = double.NaN;
612      this.secondXAxisMinimumAuto = true;
613      this.secondXAxisMinimumFixedValue = double.NaN;
614      this.secondXAxisMaximumAuto = true;
615      this.secondXAxisMaximumFixedValue = double.NaN;
616      this.yAxisMinimumAuto = true;
617      this.yAxisMinimumFixedValue = double.NaN;
618      this.yAxisMaximumAuto = true;
619      this.yAxisMaximumFixedValue = double.NaN;
620      this.secondYAxisMinimumAuto = true;
621      this.secondYAxisMinimumFixedValue = double.NaN;
622      this.secondYAxisMaximumAuto = true;
623      this.secondYAxisMaximumFixedValue = double.NaN;
624      this.xAxisLogScale = false;
625      this.secondXAxisLogScale = false;
626      this.yAxisLogScale = false;
627      this.secondYAxisLogScale = false;
628      histogramBins = 10;
629      histogramExactBins = false;
630      histogramAggregation = DataTableHistogramAggregation.Overlapping;
631    }
632    public DataTableVisualProperties(string title)
633      : this() {
634      this.title = title;
635    }
636
637    public override IDeepCloneable Clone(Cloner cloner) {
638      return new DataTableVisualProperties(this, cloner);
639    }
640
641    public event PropertyChangedEventHandler PropertyChanged;
642    protected virtual void OnPropertyChanged(string propertyName) {
643      var handler = PropertyChanged;
644      if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
645    }
646
647    [StorableHook(HookType.AfterDeserialization)]
648    private void AfterDeserialization() {
649      // BackwardsCompatibility3.3
650      #region Backwards compatible code, remove with 3.4
651      // check if most of the properties that were added in Mai'11 were set to their default values, then we want to reset them to our default values
652      if (xAxisMinimumAuto == default(bool) && xAxisMaximumAuto == default(bool)
653        && yAxisMinimumAuto == default(bool) && yAxisMaximumAuto == default(bool)
654        && secondXAxisMinimumAuto == default(bool) && secondXAxisMaximumAuto == default(bool)
655        && secondYAxisMinimumAuto == default(bool) && secondYAxisMaximumAuto == default(bool)
656        && titleColor == default(Color) && axisTitleColor == default(Color)
657        && secondXAxisTitle == default(string)
658        && xAxisMinimumFixedValue == default(double) && xAxisMaximumFixedValue == default(double)
659        && yAxisMinimumFixedValue == default(double) && yAxisMaximumFixedValue == default(double)
660        && secondXAxisMinimumFixedValue == default(double) && secondXAxisMaximumFixedValue == default(double)
661        && secondYAxisMinimumFixedValue == default(double) && secondYAxisMaximumFixedValue == default(double)) {
662        titleColor = Color.Black;
663        axisTitleColor = Color.Black;
664        this.secondXAxisTitle = string.Empty;
665        this.xAxisMinimumAuto = true;
666        this.xAxisMinimumFixedValue = double.NaN;
667        this.xAxisMaximumAuto = true;
668        this.xAxisMaximumFixedValue = double.NaN;
669        this.secondXAxisMinimumAuto = true;
670        this.secondXAxisMinimumFixedValue = double.NaN;
671        this.secondXAxisMaximumAuto = true;
672        this.secondXAxisMaximumFixedValue = double.NaN;
673        this.yAxisMinimumAuto = true;
674        this.yAxisMinimumFixedValue = double.NaN;
675        this.yAxisMaximumAuto = true;
676        this.yAxisMaximumFixedValue = double.NaN;
677        this.secondYAxisMinimumAuto = true;
678        this.secondYAxisMinimumFixedValue = double.NaN;
679        this.secondYAxisMaximumAuto = true;
680        this.secondYAxisMaximumFixedValue = double.NaN;
681      }
682      #endregion
683    }
684  }
685}
Note: See TracBrowser for help on using the repository browser.