source: ether_statistics/service/implementation/gov/noaa/pmel/sgt/ContourLineAttribute.java @ 569

Last change on this file since 569 was 569, checked in by vmipsl, 12 years ago

Nouveau projet

File size: 19.1 KB
RevLine 
[569]1/*
2 * $Id: ContourLineAttribute.java,v 1.13 2001/12/13 19:07:04 dwd Exp $
3 *
4 * This software is provided by NOAA for full, free and open release.  It is
5 * understood by the recipient/user that NOAA assumes no liability for any
6 * errors contained in the code.  Although this software is released without
7 * conditions or restrictions in its use, it is expected that appropriate
8 * credit be given to its author and to the National Oceanic and Atmospheric
9 * Administration should the software be included by the recipient as an
10 * element in other product development.
11 */
12
13package  gov.noaa.pmel.sgt;
14
15import  java.awt.*;
16
17/**
18 * Sets the rendering style for a contour line.
19 * <code>Color</code>, width, and dash characteristics are
20 * <code>ContourLineAttribute</code> properties.
21 *
22 * @author Donald Denbo
23 * @version $Revision: 1.13 $, $Date: 2001/12/13 19:07:04 $
24 * @since 2.0
25 * @see LineCartesianRenderer
26 * @see ContourLevels
27 */
28public class ContourLineAttribute extends LineAttribute {
29  //
30  private String labelText_;
31  private boolean labelEnabled_ = false;
32  private Color labelColor_;
33  private Font labelFont_;
34  private double labelHeightP_;
35  private String labelFormat_;
36  private boolean autoLabel_ = true;
37  //
38  private boolean labelColorOverridden_ = false;
39  private boolean labelEnabledOverridden_ = false;
40  private boolean labelHeightPOverridden_ = false;
41  private boolean labelFontOverridden_ = false;
42  private boolean labelFormatOverridden_ = false;
43  //
44  private boolean colorOverridden_ = false;
45  private boolean styleOverridden_ = false;
46  private boolean widthOverridden_ = false;
47  private boolean dashArrayOverridden_ = false;
48  private boolean dashPhaseOverridden_ = false;
49  private boolean capStyleOverridden_ = false;
50  private boolean miterStyleOverridden_ = false;
51  private boolean miterLimitOverridden_ = false;
52  /**
53   * Default constructor.
54   */
55  public ContourLineAttribute() {
56    super();
57    init();
58  }
59  /**
60   * Constructor using default Color. Default are:
61   * <pre>
62   *   labelColor = <code>Color.black</code>
63   * labelHeightP = 0.16
64   *    labelFont = null
65   *  labelFormat = ""
66   * </pre>
67   */
68  public ContourLineAttribute(int style) {
69    super(style);
70    init();
71  }
72  /**
73   * <code>ContourLineAttribute</code> constructor.
74   *
75   * @param style line style
76   * @param color line <code>Color</code>
77   * @see java.awt.Color
78   **/
79  public ContourLineAttribute(int style, Color color) {
80    super(style, color);
81    init();
82  }
83  /**
84   * <code>ContourLineAttribute</code> constructor for plot marks.
85   *
86   * @param style line sytle
87   * @param mark plot mark
88   * @param color line <code>Color</code>
89   **/
90  public ContourLineAttribute(int style, int mark, Color color) {
91    super(style, mark, color);
92    init();
93  }
94
95  private void init() {
96    labelColor_ = Color.black;
97    labelHeightP_ = 0.16;
98    labelFont_ = null;
99    labelFormat_ = "";
100  }
101
102  /**
103   * Copy the <code>ContourLineAttribute</code>.
104   *
105   * @return new <code>ContourLineAttribute</code>
106   */
107  public Object copy() {
108    ContourLineAttribute newLine;
109    try {
110      newLine = (ContourLineAttribute)clone();
111    } catch (CloneNotSupportedException e) {
112      newLine = new ContourLineAttribute();
113    }
114    return newLine;
115  }
116  /**
117   * Set the text to be used for labelling the contour line.
118   * <BR><B>Property Change:</B> <code>labelText</code>.
119   */
120  public void setLabelText(String label) {
121    if(labelText_ == null || !labelText_.equals(label)) {
122      String tempOld = labelText_;
123      labelText_ = label;
124      labelEnabled_ = !(labelText_ == null);
125      changes_.firePropertyChange("labelText",
126                                  tempOld,
127                                  labelText_);
128    }
129  }
130  /**
131   * Get the label text.
132   */
133  public String getLabelText() {
134    return labelText_;
135  }
136  /**
137   * Enable/disable the contour label.
138   * <BR><B>Property Change:</B> <code>labelEnabled</code>.
139   */
140  public void setLabelEnabled(boolean sle) {
141    if(labelEnabled_ != sle) {
142      labelEnabledOverridden_ = true;
143      Boolean tempOld = new Boolean(labelEnabled_);
144      labelEnabled_ = sle;
145      changes_.firePropertyChange("labelEnabled",
146                                  tempOld,
147                                  new Boolean(labelEnabled_));
148    }
149  }
150  /**
151   * Test if the contour label is enabled.
152   */
153  public boolean isLabelEnabled() {
154    return labelEnabled_;
155  }
156  /**
157   * Change the color of the contour label
158   * <BR><B>Property Change:</B> <code>labelColor</code>.
159   */
160  public void setLabelColor(Color color) {
161    if(!labelColor_.equals(color)) {
162      labelColorOverridden_ = true;
163      Color tempOld = labelColor_;
164      labelColor_ = color;
165      changes_.firePropertyChange("labelColor",
166                                  tempOld,
167                                  labelColor_);
168    }
169  }
170  /**
171   * Get the color of the contour label
172   */
173  public Color getLabelColor() {
174    return labelColor_;
175  }
176  /**
177   * Set the label height in physical units
178   * <BR><B>Property Change:</B> <code>labelHeightP</code>.
179   */
180  public void setLabelHeightP(double height) {
181    if(labelHeightP_ != height) {
182      labelHeightPOverridden_ = true;
183      Double tempOld = new Double(labelHeightP_);
184      labelHeightP_ = height;
185      changes_.firePropertyChange("labelHeightP",
186                                  tempOld,
187                                  new Double(labelHeightP_));
188    }
189  }
190  /**
191   * Get the label height in physical units
192   */
193  public double getLabelHeightP() {
194    return labelHeightP_;
195  }
196  /**
197   * Set the contour label font.
198   * <BR><B>Property Change:</B> <code>labelFont</code>.
199   */
200  public void setLabelFont(Font font) {
201    if(labelFont_ == null || !labelFont_.equals(font)) {
202      labelFontOverridden_ = true;
203      Font tempOld = labelFont_;
204      labelFont_ = font;
205      changes_.firePropertyChange("labelFont",
206                                  tempOld,
207                                  labelFont_);
208    }
209  }
210  /**
211   * Get the contour label font
212   */
213  public Font getLabelFont() {
214    return labelFont_;
215  }
216  /**
217   * Set the format for the contour label.  The format is used with
218   * <code>Format</code>.
219   * <BR><B>Property Change:</B> <code>labelFormat</code>.
220   * @see Format
221   */
222  public void setLabelFormat(String format) {
223    if(!labelFormat_.equals(format)) {
224      labelFormatOverridden_ = true;
225      String tempOld = labelFormat_;
226      labelFormat_ = format;
227      changes_.firePropertyChange("labelFormat",
228                                  tempOld,
229                                  labelFormat_);
230    }
231  }
232  /**
233   * Get the contour label format
234   */
235  public String getLabelFormat() {
236    return labelFormat_;
237  }
238  /**
239   * Create contour label from value and format.
240   * <BR><B>Property Change:</B> <code>autoLabel</code>.
241   */
242  public void setAutoLabel(boolean auto) {
243    if(autoLabel_ != auto) {
244      Boolean tempOld = new Boolean(autoLabel_);
245      autoLabel_ = auto;
246      changes_.firePropertyChange("autoLabel",
247                                  tempOld,
248                                  new Boolean(autoLabel_));
249    }
250  }
251  /**
252   * Is auto labelling on?
253   */
254  public boolean isAutoLabel() {
255    return autoLabel_;
256  }
257  /**
258   * Test if labelEnabled is overridden by
259   * <code>DefaultContourLineAttribute</code>.
260   */
261  public boolean isLabelEnabledOverridden() {
262    return labelEnabledOverridden_;
263  }
264  /**
265   * Enable/disable having <code>DefaultContourLineAttribute</code>
266   * override <code>ContourLineAttribute</code> behavior of
267   * labelEnabled.
268   * <BR><B>Property Change:</B> <code>labelEnabledOverridden</code>.
269   *
270   * @see DefaultContourLineAttribute
271   */
272  public void setLabelEnabledOverridden(boolean override) {
273    if(labelEnabledOverridden_ != override) {
274      Boolean tempOld = new Boolean(labelEnabledOverridden_);
275      labelEnabledOverridden_ = override;
276      changes_.firePropertyChange("labelEnabledOverridden",
277                                  tempOld,
278                                  new Boolean(labelEnabledOverridden_));
279    }
280  }
281  /**
282   * Test if labelColor is overridden by
283   * <code>DefaultContourLineAttribute</code>.
284   */
285  public boolean isLabelColorOverridden() {
286    return labelColorOverridden_;
287  }
288  /**
289   * Enable/disable having <code>DefaultContourLineAttribute</code>
290   * override <code>ContourLineAttribute</code> behavior of
291   * labelColor.
292   * <BR><B>Property Change:</B> <code>labelColorOverridden</code>.
293   *
294   * @see DefaultContourLineAttribute
295   */
296  public void setLabelColorOverridden(boolean override) {
297    if(labelColorOverridden_ != override) {
298      Boolean tempOld = new Boolean(labelColorOverridden_);
299      labelColorOverridden_ = override;
300      changes_.firePropertyChange("labelColorOverridden",
301                                  tempOld,
302                                  new Boolean(labelColorOverridden_));
303    }
304  }
305  /**
306   * Test if labelHeightP is overridden by
307   * <code>DefaultContourLineAttribute</code>.
308   */
309  public boolean isLabelHeightPOverridden() {
310    return labelHeightPOverridden_;
311  }
312  /**
313   * Enable/disable having <code>DefaultContourLineAttribute</code>
314   * override <code>ContourLineAttribute</code> behavior of
315   * labelHeightP.
316   * <BR><B>Property Change:</B> <code>labelHeightPOverridden</code>.
317   *
318   * @see DefaultContourLineAttribute
319   */
320  public void setLabelHeightPOverridden(boolean override) {
321    if(labelHeightPOverridden_ != override) {
322      Boolean tempOld = new Boolean(labelHeightPOverridden_);
323      labelHeightPOverridden_ = override;
324      changes_.firePropertyChange("labelHeightPOverridden",
325                                  tempOld,
326                                  new Boolean(labelHeightPOverridden_));
327    }
328  }
329  /**
330   * Test if labelFont is overridden by
331   * <code>DefaultContourLineAttribute</code>.
332   */
333  public boolean isLabelFontOverridden() {
334    return labelFontOverridden_;
335  }
336  /**
337   * Enable/disable having <code>DefaultContourLineAttribute</code>
338   * override <code>ContourLineAttribute</code> behavior of
339   * labelFont.
340   * <BR><B>Property Change:</B> <code>labelFontOverridden</code>.
341   *
342   * @see DefaultContourLineAttribute
343   */
344  public void setLabelFontOverridden(boolean override) {
345    if(labelFontOverridden_ != override) {
346      Boolean tempOld = new Boolean(labelFontOverridden_);
347      labelFontOverridden_ = override;
348      changes_.firePropertyChange("labelFontOverridden",
349                                  tempOld,
350                                  new Boolean(labelFontOverridden_));
351    }
352  }
353  /**
354   * Test if labelFormat is overridden by
355   * <code>DefaultContourLineAttribute</code>.
356   */
357  public boolean isLabelFormatOverridden() {
358    return labelFormatOverridden_;
359  }
360  /**
361   * Enable/disable having <code>DefaultContourLineAttribute</code>
362   * override <code>ContourLineAttribute</code> behavior of
363   * labelFormat.
364   * <BR><B>Property Change:</B> <code>labelFormatOverridden</code>.
365   *
366   * @see DefaultContourLineAttribute
367   */
368  public void setLabelFormatOverridden(boolean override) {
369    if(labelFormatOverridden_ != override) {
370      Boolean tempOld = new Boolean(labelFormatOverridden_);
371      labelFormatOverridden_ = override;
372      changes_.firePropertyChange("labelFormatOverridden",
373                                  tempOld,
374                                  new Boolean(labelFormatOverridden_));
375    }
376  }
377  public void setDashArray(float[] dashes) {
378    dashArrayOverridden_ = true;
379    super.setDashArray(dashes);
380  }
381  /**
382   * Test if dashArray is overridden by
383   * <code>DefaultContourLineAttribute</code>.
384   */
385  public boolean isDashArrayOverridden() {
386    return dashArrayOverridden_;
387  }
388  /**
389   * Enable/disable having <code>DefaultContourLineAttribute</code>
390   * override <code>ContourLineAttribute</code> behavior of
391   * dashArray.
392   * <BR><B>Property Change:</B> <code>dashArrayOverridden</code>.
393   *
394   * @see DefaultContourLineAttribute
395   */
396  public void setDashArrayOverridden(boolean override) {
397    if(dashArrayOverridden_ != override) {
398      Boolean tempOld = new Boolean(dashArrayOverridden_);
399      dashArrayOverridden_ = override;
400      changes_.firePropertyChange("dashArrayOverridden",
401                                  tempOld,
402                                  new Boolean(dashArrayOverridden_));
403    }
404  }
405  public void setDashPhase(float phase) {
406    dashPhaseOverridden_ = true;
407    super.setDashPhase(phase);
408  }
409  /**
410   * Test if dashPhase is overridden by
411   * <code>DefaultContourLineAttribute</code>.
412   */
413  public boolean isDashPhaseOverridden() {
414    return dashPhaseOverridden_;
415  }
416  /**
417   * Enable/disable having <code>DefaultContourLineAttribute</code>
418   * override <code>ContourLineAttribute</code> behavior of
419   * dashPhase.
420   * <BR><B>Property Change:</B> <code>dashPhaseOverridden</code>.
421   *
422   * @see DefaultContourLineAttribute
423   */
424  public void setDashPhaseOverridden(boolean override) {
425    if(dashPhaseOverridden_ != override) {
426      Boolean tempOld = new Boolean(dashPhaseOverridden_);
427      dashPhaseOverridden_ = override;
428      changes_.firePropertyChange("dashPhaseOverridden",
429                                  tempOld,
430                                  new Boolean(dashPhaseOverridden_));
431    }
432  }
433  public void setStyle(int st) {
434    if(st == MARK || st == MARK_LINE) return;
435    styleOverridden_ = true;
436    super.setStyle(st);
437  }
438  /**
439   * Test if style is overridden by
440   * <code>DefaultContourLineAttribute</code>.
441   */
442  public boolean isStyleOverridden() {
443    return styleOverridden_;
444  }
445  /**
446   * Enable/disable having <code>DefaultContourLineAttribute</code>
447   * override <code>ContourLineAttribute</code> behavior of
448   * style.
449   * <BR><B>Property Change:</B> <code>styleOverridden</code>.
450   *
451   * @see DefaultContourLineAttribute
452   */
453  public void setStyleOverridden(boolean override) {
454    if(styleOverridden_ != override) {
455      Boolean tempOld = new Boolean(styleOverridden_);
456      styleOverridden_ = override;
457      changes_.firePropertyChange("styleOverridden",
458                                  tempOld,
459                                  new Boolean(styleOverridden_));
460    }
461  }
462  public void setColor(Color c) {
463    colorOverridden_ = true;
464    super.setColor(c);
465  }
466  /**
467   * Test if color is overridden by
468   * <code>DefaultContourLineAttribute</code>.
469   */
470  public boolean isColorOverridden() {
471    return colorOverridden_;
472  }
473  /**
474   * Enable/disable having <code>DefaultContourLineAttribute</code>
475   * override <code>ContourLineAttribute</code> behavior of
476   * color.
477   * <BR><B>Property Change:</B> <code>colorOverridden</code>.
478   *
479   * @see DefaultContourLineAttribute
480   */
481  public void setColorOverridden(boolean override) {
482    if(colorOverridden_ != override) {
483      Boolean tempOld = new Boolean(colorOverridden_);
484      colorOverridden_ = override;
485      changes_.firePropertyChange("colorOverridden",
486                                  tempOld,
487                                  new Boolean(colorOverridden_));
488    }
489  }
490  public void setWidth(float t) {
491    widthOverridden_ = true;
492    super.setWidth(t);
493  }
494  /**
495   * Test if width is overridden by
496   * <code>DefaultContourLineAttribute</code>.
497   */
498  public boolean isWidthOverridden() {
499    return widthOverridden_;
500  }
501  /**
502   * Enable/disable having <code>DefaultContourLineAttribute</code>
503   * override <code>ContourLineAttribute</code> behavior of
504   * width.
505   * <BR><B>Property Change:</B> <code>widthOverridden</code>.
506   *
507   * @see DefaultContourLineAttribute
508   */
509  public void setWidthOverridden(boolean override) {
510    if(widthOverridden_ != override) {
511      Boolean tempOld = new Boolean(widthOverridden_);
512      widthOverridden_ = override;
513      changes_.firePropertyChange("widthOverridden",
514                                  tempOld,
515                                  new Boolean(widthOverridden_));
516    }
517  }
518  public void setCapStyle(int style) {
519    capStyleOverridden_ = true;
520    super.setCapStyle(style);
521  }
522  /**
523   * Test if cap style is overridden by
524   * <code>DefaultContourLineAttribute</code>.
525   */
526  public boolean isCapStyleOverridden() {
527    return capStyleOverridden_;
528  }
529  /**
530   * Enable/disable having <code>DefaultContourLineAttribute</code>
531   * override <code>ContourLineAttribute</code> behavior of
532   * cap style.
533   * <BR><B>Property Change:</B> <code>capStyleOverridden</code>.
534   *
535   * @see DefaultContourLineAttribute
536   */
537  public void setCapStyleOverridden(boolean override) {
538    if(capStyleOverridden_ != override) {
539      Boolean tempOld = new Boolean(capStyleOverridden_);
540      capStyleOverridden_ = override;
541      changes_.firePropertyChange("capStyleOverridden",
542                                  tempOld,
543                                  new Boolean(capStyleOverridden_));
544    }
545  }
546  public void setMiterStyle(int style) {
547    miterStyleOverridden_ = true;
548    super.setMiterStyle(style);
549  }
550  /**
551   * Test if miter style is overridden by
552   * <code>DefaultContourLineAttribute</code>.
553   */
554  public boolean isMiterStyleOverridden() {
555    return miterStyleOverridden_;
556  }
557  /**
558   * Enable/disable having <code>DefaultContourLineAttribute</code>
559   * override <code>ContourLineAttribute</code> behavior of
560   * miter style.
561   * <BR><B>Property Change:</B> <code>miterStyleOverridden</code>.
562   *
563   * @see DefaultContourLineAttribute
564   */
565  public void setMiterStyleOverridden(boolean override) {
566    if(miterStyleOverridden_ != override) {
567      Boolean tempOld = new Boolean(miterStyleOverridden_);
568      miterStyleOverridden_ = override;
569      changes_.firePropertyChange("miterStyleOverridden",
570                                  tempOld,
571                                  new Boolean(miterStyleOverridden_));
572    }
573  }
574  public void setMiterLimit(float t) {
575    miterLimitOverridden_ = true;
576    super.setMiterLimit(t);
577  }
578  /**
579   * Test if miter limit is overridden by
580   * <code>DefaultContourLineAttribute</code>.
581   */
582  public boolean isMiterLimitOverridden() {
583    return miterLimitOverridden_;
584  }
585  /**
586   * Enable/disable having <code>DefaultContourLineAttribute</code>
587   * override <code>ContourLineAttribute</code> behavior of
588   * miter limit.
589   * <BR><B>Property Change:</B> <code>miterLimitOverridden</code>.
590   *
591   * @see DefaultContourLineAttribute
592   */
593  public void setMiterLimitOverridden(boolean override) {
594    if(miterLimitOverridden_ != override) {
595      Boolean tempOld = new Boolean(miterLimitOverridden_);
596      miterLimitOverridden_ = override;
597      changes_.firePropertyChange("miterLimitOverridden",
598                                  tempOld,
599                                  new Boolean(miterLimitOverridden_));
600    }
601  }
602  public String toString() {
603    Color col = getColor();
604    int style = getStyle();
605    String sstyle;
606    if(style == SOLID) {
607      sstyle = "SOLID";
608    } else if(style == DASHED) {
609      sstyle = "DASHED";
610    } else if(style == HEAVY) {
611      sstyle = "HEAVY";
612    } else if(style == HIGHLIGHT) {
613      sstyle = "HIGHLIGHT";
614    } else if(style == MARK) {
615      sstyle = "MARK - unsupported";
616    } else if(style == MARK_LINE) {
617      sstyle = "MARK_LINE - unsupported";
618    } else if(style == STROKE) {
619      sstyle = "STROKE";
620    } else {
621      sstyle = "";
622    }
623    String scol = "[" + col.getRed() + "," + col.getGreen() +
624      "," + col.getBlue() + "]";
625    return sstyle + ", " + scol + ", labelEnabled=" + labelEnabled_;
626  }
627}
Note: See TracBrowser for help on using the repository browser.