490e81b06ac54a75e54a8d4b607e0f084182855f
[scilab.git] / scilab / modules / graphic_objects / src / java / org / scilab / modules / graphic_objects / uicontrol / Uicontrol.java
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2011 - DIGITEO - Bruno JOFRET
4  * Copyright (C) 2011 - DIGITEO - Vincent COUVERT
5  *
6  * This file must be used under the terms of the CeCILL.
7  * This source file is licensed as described in the file COPYING, which
8  * you should have received as part of this distribution.  The terms
9  * are also available at
10  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
11  *
12  */
13
14 package org.scilab.modules.graphic_objects.uicontrol;
15
16 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_POSITION__;
17 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_STYLE__;
18 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UICONTROL__;
19 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_BACKGROUNDCOLOR__;
20 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_CHECKBOX__;
21 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_EDIT__;
22 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME__;
23 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_ENABLE__;
24 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FONTANGLE__;
25 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FONTNAME__;
26 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FONTSIZE__;
27 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FONTUNITS__;
28 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FONTWEIGHT__;
29 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FOREGROUNDCOLOR__;
30 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_HORIZONTALALIGNMENT__;
31 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_IMAGE__;
32 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_LISTBOX__;
33 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_LISTBOXTOP__;
34 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_LISTBOXTOP_SIZE__;
35 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_MIN__;
36 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_MAX__;
37 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_POPUPMENU__;
38 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_PUSHBUTTON__;
39 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_RADIOBUTTON__;
40 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_RELIEF__;
41 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_SLIDER__;
42 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_SLIDERSTEP__;
43 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_STRING__;
44 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_STRING_SIZE__;
45 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_STRING_COLNB__;
46 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_TOOLTIPSTRING__;
47 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_TOOLTIPSTRING_SIZE__;
48 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_TABLE__;
49 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_TEXT__;
50 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_UNITS__;
51 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_VALUE__;
52 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_VALUE_SIZE__;
53 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_VERTICALALIGNMENT__;
54
55 import org.scilab.modules.graphic_objects.graphicObject.GraphicObject;
56 import org.scilab.modules.graphic_objects.graphicObject.Visitor;
57
58 /**
59  * @author Bruno JOFRET
60  * @author Vincent COUVERT
61  */
62 public class Uicontrol extends GraphicObject {
63
64     private static final double DEFAULT_RED_BACKGROUND = 0.8;
65     private static final double DEFAULT_GREEN_BACKGROUND = 0.8;
66     private static final double DEFAULT_BLUE_BACKGROUND = 0.8;
67
68     private static final double DEFAULT_X = 20.0;
69     private static final double DEFAULT_Y = 40.0;
70     private static final double DEFAULT_WIDTH = 40.0;
71     private static final double DEFAULT_HEIGHT = 20.0;
72
73     private static final double DEFAULTFONTSIZE = 10;
74     private static final String DEFAULTFONTNAME = "helvetica";
75     private static final String DEFAULTFONTWEIGHT = "normal";
76     private static final String DEFAULTFONTANGLE = DEFAULTFONTWEIGHT;
77
78     private UicontrolStyle style;
79     private Double[] backgroundColor = {DEFAULT_RED_BACKGROUND, DEFAULT_GREEN_BACKGROUND, DEFAULT_BLUE_BACKGROUND};
80     private boolean enable = true;
81     private String fontAngle = DEFAULTFONTANGLE;
82     private String fontName = DEFAULTFONTNAME;
83     private double fontSize = DEFAULTFONTSIZE;
84     private String fontUnits = "points";
85     private String fontWeight = DEFAULTFONTWEIGHT;
86     private Double[] foregroundColor = {0.0, 0.0, 0.0};
87     private String horizontalAlignment = "center";
88     private Integer[] listboxTop;
89     private double max = 1.0;
90     private double min;
91     private Double[] position = {DEFAULT_X, DEFAULT_Y, DEFAULT_WIDTH, DEFAULT_HEIGHT};
92     private String relief = "raised";
93     private Double[] sliderStep = {0.01, 0.1};
94     private String[] string = {""};
95     private int stringColNb = 1; // Used for tables
96     private String[] tooltipString = {""};
97     private String units = "pixels";
98     private Double[] value;
99     private String verticalAlignment = "middle";
100     
101     protected static final String __GO_UI_FLAT_RELIEF__ =         "flat";
102     protected static final String __GO_UI_RAISED_RELIEF__ =       "raised";
103     protected static final String __GO_UI_SUNKEN_RELIEF__ =       "sunken";
104     protected static final String __GO_UI_GROOVE_RELIEF__ =       "groove";
105     protected static final String __GO_UI_RIDGE_RELIEF__ =        "ridge";
106     protected static final String __GO_UI_SOLID_RELIEF__ =        "solid";
107
108     /**
109      * All uicontrol properties
110      */
111     private enum UicontrolProperty {
112         STYLE,
113         BACKGROUNDCOLOR,
114         ENABLE,
115         FONTANGLE,
116         FONTNAME,
117         FONTSIZE,
118         FONTUNITS,
119         FONTWEIGHT,
120         FOREGROUNDCOLOR,
121         HORIZONTALALIGNMENT,
122         LISTBOXTOP,
123         LISTBOXTOP_SIZE,
124         MAX,
125         MIN,
126         POSITION,
127         SCALE,
128         SHEAR,
129         SLIDERSTEP,
130         STRING,
131         STRING_SIZE,
132         STRING_COLNB,
133         RELIEF,
134         TOOLTIPSTRING,
135         TOOLTIPSTRING_SIZE,
136         UNITS,
137         VALUE,
138         VALUE_SIZE,
139         VERTICALALIGNMENT
140     };
141
142     /**
143      * All uicontrol styles
144      */
145     private enum UicontrolStyle {
146         CHECKBOX,
147         EDIT,
148         FRAME,
149         IMAGE,
150         LISTBOX,
151         POPUPMENU,
152         PUSHBUTTON,
153         RADIOBUTTON,
154         SLIDER,
155         TABLE,
156         TEXT
157     };
158
159     /**
160      * Constructor
161      */
162     public Uicontrol() {
163         super();
164         setVisible(false); /* To avoid to see the object rendered before all its properties to be set (See bug #10346) */
165     }
166
167     /**
168      * Get style as a string
169      * @param style the uicontrol style
170      * @return the uicontrol style as a string
171      */
172     private int styleEnumToInt(UicontrolStyle style) {
173         switch (style) {
174             case CHECKBOX:
175                 return __GO_UI_CHECKBOX__;
176             case EDIT:
177                 return __GO_UI_EDIT__;
178             case FRAME:
179                 return __GO_UI_FRAME__;
180             case IMAGE:
181                 return __GO_UI_IMAGE__;
182             case LISTBOX:
183                 return __GO_UI_LISTBOX__;
184             case POPUPMENU:
185                 return __GO_UI_POPUPMENU__;
186             case PUSHBUTTON:
187                 return __GO_UI_PUSHBUTTON__;
188             case RADIOBUTTON:
189                 return __GO_UI_RADIOBUTTON__;
190             case SLIDER:
191                 return __GO_UI_SLIDER__;
192             case TABLE:
193                 return __GO_UI_TABLE__;
194             case TEXT:
195                 return __GO_UI_TEXT__;
196             default :
197                 return -1;
198         }
199     }
200
201     /**
202      * Get style as an enum element
203      * @param style the uicontrol style
204      * @return the uicontrol style as an enum element
205      */
206     private UicontrolStyle intToStyleEnum(int style) {
207         switch (style) {
208         case __GO_UI_CHECKBOX__ :
209             return UicontrolStyle.CHECKBOX;
210         case __GO_UI_EDIT__ :
211             return UicontrolStyle.EDIT;
212         case __GO_UI_FRAME__ :
213             return UicontrolStyle.FRAME;
214         case __GO_UI_IMAGE__ :
215             return  UicontrolStyle.IMAGE;
216         case __GO_UI_LISTBOX__ :
217             return UicontrolStyle.LISTBOX;
218         case __GO_UI_POPUPMENU__ :
219             return UicontrolStyle.POPUPMENU;
220         case __GO_UI_PUSHBUTTON__ :
221             return UicontrolStyle.PUSHBUTTON;
222         case __GO_UI_RADIOBUTTON__ :
223             return UicontrolStyle.RADIOBUTTON;
224         case __GO_UI_SLIDER__ :
225             return UicontrolStyle.SLIDER;
226         case __GO_UI_TABLE__ :
227             return UicontrolStyle.TABLE;
228         case __GO_UI_TEXT__ :
229             return UicontrolStyle.TEXT;
230         default :
231             return null;
232         }
233     }
234
235     /**
236      * Get this object type
237      * @return uicontrol
238      * @see org.scilab.modules.graphic_objects.graphicObject.GraphicObject#getType()
239      */
240     public Integer getType() {
241         return __GO_UICONTROL__;
242     }
243
244     /**
245      * Returns the enum associated to a property name
246      * @param propertyName the property name
247      * @return the property enum
248      */
249     public Object getPropertyFromName(int propertyName) {
250         switch (propertyName) {
251         case __GO_STYLE__ :
252             return UicontrolProperty.STYLE;
253         case __GO_UI_BACKGROUNDCOLOR__ :
254             return UicontrolProperty.BACKGROUNDCOLOR;
255         case __GO_UI_ENABLE__ :
256             return UicontrolProperty.ENABLE;
257         case __GO_UI_FONTANGLE__ :
258             return UicontrolProperty.FONTANGLE;
259         case __GO_UI_FONTNAME__ :
260             return UicontrolProperty.FONTNAME;
261         case __GO_UI_FONTSIZE__ :
262             return UicontrolProperty.FONTSIZE;
263         case __GO_UI_FONTUNITS__ :
264             return UicontrolProperty.FONTUNITS;
265         case __GO_UI_FONTWEIGHT__ :
266             return UicontrolProperty.FONTWEIGHT;
267         case __GO_UI_FOREGROUNDCOLOR__ :
268             return UicontrolProperty.FOREGROUNDCOLOR;
269         case __GO_UI_HORIZONTALALIGNMENT__ :
270             return UicontrolProperty.HORIZONTALALIGNMENT;
271         case __GO_UI_LISTBOXTOP__ :
272             return UicontrolProperty.LISTBOXTOP;
273         case __GO_UI_LISTBOXTOP_SIZE__ :
274             return UicontrolProperty.LISTBOXTOP_SIZE;
275         case __GO_UI_MAX__ :
276             return UicontrolProperty.MAX;
277         case __GO_UI_MIN__ :
278             return UicontrolProperty.MIN;
279         case __GO_POSITION__ :
280             return UicontrolProperty.POSITION;
281         case __GO_UI_RELIEF__ :
282             return UicontrolProperty.RELIEF;
283         case __GO_UI_SLIDERSTEP__ :
284             return UicontrolProperty.SLIDERSTEP;
285         case __GO_UI_STRING__ :
286             return UicontrolProperty.STRING;
287         case __GO_UI_STRING_SIZE__ :
288             return UicontrolProperty.STRING_SIZE;
289         case __GO_UI_STRING_COLNB__ :
290             return UicontrolProperty.STRING_COLNB;
291         case __GO_UI_TOOLTIPSTRING__ :
292             return UicontrolProperty.TOOLTIPSTRING;
293         case __GO_UI_TOOLTIPSTRING_SIZE__ :
294             return UicontrolProperty.TOOLTIPSTRING_SIZE;
295         case __GO_UI_UNITS__ :
296             return UicontrolProperty.UNITS;
297         case __GO_UI_VALUE__ :
298             return UicontrolProperty.VALUE;
299         case __GO_UI_VALUE_SIZE__ :
300             return UicontrolProperty.VALUE_SIZE;
301         case __GO_UI_VERTICALALIGNMENT__ :
302             return UicontrolProperty.VERTICALALIGNMENT;
303         default :
304             return super.getPropertyFromName(propertyName);
305         }
306     }
307
308     /**
309      * Fast property get method
310      * @param property the property to get
311      * @return the property value
312      */
313     public Object getProperty(Object property) {
314         if (property == UicontrolProperty.STYLE) {
315             return getStyle();
316         } else if (property == UicontrolProperty.BACKGROUNDCOLOR) {
317             return getBackgroundColor();
318         } else if (property == UicontrolProperty.ENABLE) {
319             return getEnable();
320         } else if (property == UicontrolProperty.FONTANGLE) {
321             return getFontAngle();
322         } else if (property == UicontrolProperty.FONTNAME) {
323             return getFontName();
324         } else if (property == UicontrolProperty.FONTSIZE) {
325             return getFontSize();
326         } else if (property == UicontrolProperty.FONTUNITS) {
327             return getFontUnits();
328         } else if (property == UicontrolProperty.FONTWEIGHT) {
329             return getFontWeight();
330         } else if (property == UicontrolProperty.FOREGROUNDCOLOR) {
331             return getForegroundColor();
332         } else if (property == UicontrolProperty.HORIZONTALALIGNMENT) {
333             return getHorizontalAlignment();
334         } else if (property == UicontrolProperty.LISTBOXTOP) {
335             return getListboxTop();
336         } else if (property == UicontrolProperty.LISTBOXTOP_SIZE) {
337             return getListboxTopSize();
338         } else if (property == UicontrolProperty.MAX) {
339             return getMax();
340         } else if (property == UicontrolProperty.MIN) {
341             return getMin();
342         } else if (property == UicontrolProperty.POSITION) {
343             return getUiPosition();
344         } else if (property == UicontrolProperty.RELIEF) {
345             return getRelief();
346         } else if (property == UicontrolProperty.SLIDERSTEP) {
347             return getSliderStep();
348         } else if (property == UicontrolProperty.STRING) {
349             return getString();
350         } else if (property == UicontrolProperty.STRING_SIZE) {
351             return getString().length;
352         } else if (property == UicontrolProperty.STRING_COLNB) {
353             return getStringColNb();
354         } else if (property == UicontrolProperty.TOOLTIPSTRING) {
355             return getTooltipString();
356         } else if (property == UicontrolProperty.TOOLTIPSTRING_SIZE) {
357             return getTooltipString().length;
358         } else if (property == UicontrolProperty.UNITS) {
359             return getUnits();
360         } else if (property == UicontrolProperty.VALUE) {
361             return getUiValue();
362         } else if (property == UicontrolProperty.VALUE_SIZE) {
363             return getUiValueSize();
364         } else if (property == UicontrolProperty.VERTICALALIGNMENT) {
365             return getVerticalAlignment();
366         } else {
367             return super.getProperty(property);
368         }
369     }
370
371     /**
372      * Fast property set method
373      * @param property the property to set
374      * @param value the property value
375      * @return true if the property has been set, false otherwise
376      */
377     public UpdateStatus setProperty(Object property, Object value) {
378         if (property == UicontrolProperty.STYLE) {
379             setStyle((Integer) value);
380         } else if (property == UicontrolProperty.BACKGROUNDCOLOR) {
381             setBackgroundColor((Double[]) value);
382         } else if (property == UicontrolProperty.ENABLE) {
383             setEnable((Boolean) value);
384         } else if (property == UicontrolProperty.FONTANGLE) {
385             setFontAngle((String) value);
386         } else if (property == UicontrolProperty.FONTNAME) {
387             setFontName((String) value);
388         } else if (property == UicontrolProperty.FONTSIZE) {
389             setFontSize((Double) value);
390         } else if (property == UicontrolProperty.FONTUNITS) {
391             setFontUnits((String) value);
392         } else if (property == UicontrolProperty.FONTWEIGHT) {
393             setFontWeight((String) value);
394         } else if (property == UicontrolProperty.FOREGROUNDCOLOR) {
395             setForegroundColor((Double[]) value);
396         } else if (property == UicontrolProperty.HORIZONTALALIGNMENT) {
397             setHorizontalAlignment((String) value);
398         } else if (property == UicontrolProperty.LISTBOXTOP) {
399             setListboxTop((Integer[]) value);
400         } else if (property == UicontrolProperty.MAX) {
401             setMax((Double) value);
402         } else if (property == UicontrolProperty.MIN) {
403             setMin((Double) value);
404         } else if (property == UicontrolProperty.POSITION) {
405             setUiPosition((Double[]) value);
406         } else if (property == UicontrolProperty.RELIEF) {
407             setRelief((String) value);
408         } else if (property == UicontrolProperty.SLIDERSTEP) {
409             setSliderStep((Double[]) value);
410         } else if (property == UicontrolProperty.STRING) {
411             setString((String[]) value);
412         } else if (property == UicontrolProperty.STRING_COLNB) {
413             setStringColNb((Integer) value);
414         } else if (property == UicontrolProperty.TOOLTIPSTRING) {
415             setTooltipString((String[]) value);
416         } else if (property == UicontrolProperty.UNITS) {
417             setUnits((String) value);
418         } else if (property == UicontrolProperty.VALUE) {
419             setUiValue((Double[]) value);
420         } else if (property == UicontrolProperty.VERTICALALIGNMENT) {
421             setVerticalAlignment((String) value);
422         } else {
423             return super.setProperty(property, value);
424         }
425
426         return UpdateStatus.Success;
427     }
428
429     /**
430      * Get the style
431      * @return the style
432      */
433     public Integer getStyle() {
434         return styleEnumToInt(this.style);
435     }
436
437     /**
438      * Set the style
439      * @param style the style
440      */
441     public void setStyle(int style) {
442         this.style = intToStyleEnum(style);
443     }
444
445     /* Background Color */
446     public Double[] getBackgroundColor() {
447         return this.backgroundColor;
448     }
449
450     public void setBackgroundColor(Double[] colors) {
451         this.backgroundColor = colors;
452     }
453
454     /* Enable */
455     public boolean getEnable() {
456         return this.enable;
457     }
458
459     public void setEnable(boolean status) {
460         this.enable = status;
461     }
462
463     /* FontAngle */
464     public String getFontAngle() {
465         return this.fontAngle;
466     }
467
468     public void setFontAngle(String fontAngle) {
469         this.fontAngle = fontAngle;
470     }
471
472     /* FontName */
473     public String getFontName() {
474         return this.fontName;
475     }
476
477     public void setFontName(String fontName) {
478         this.fontName = fontName;
479     }
480
481     /* FontSize */
482     public double getFontSize() {
483         return this.fontSize;
484     }
485
486     public void setFontSize(double fontSize) {
487         this.fontSize = fontSize;
488     }
489
490     /* FontUnits */
491     public String getFontUnits() {
492         return this.fontUnits;
493     }
494
495     public void setFontUnits(String fontUnits) {
496         this.fontUnits = fontUnits;
497     }
498
499     /* FontWeight */
500     public String getFontWeight() {
501         return this.fontWeight;
502     }
503
504     public void setFontWeight(String fontWeight) {
505         this.fontWeight = fontWeight;
506     }
507
508     /* Foreground Color */
509     public Double[] getForegroundColor() {
510         return this.foregroundColor;
511     }
512
513     public void setForegroundColor(Double[] colors) {
514         this.foregroundColor = colors;
515     }
516
517     /* Horizontal Alignment */
518     public String getHorizontalAlignment() {
519         return this.horizontalAlignment;
520     }
521
522     public void setHorizontalAlignment(String alignment) {
523         this.horizontalAlignment = alignment;
524     }
525
526     /* Listbox Top */
527     public Integer getListboxTopSize() {
528         return (listboxTop != null ? listboxTop.length : 0);
529     }
530
531     public Integer[] getListboxTop() {
532         return this.listboxTop;
533     }
534
535     public void setListboxTop(Integer[] listboxTop) {
536         this.listboxTop = listboxTop;
537     }
538
539     /* Max */
540     public Double getMax() {
541         return this.max;
542     }
543
544     public void setMax(double max) {
545         this.max = max;
546     }
547
548     /* Min */
549     public Double getMin() {
550         return this.min;
551     }
552
553     public void setMin(double min) {
554         this.min = min;
555     }
556
557     /* Position */
558     public Double[] getUiPosition() {
559         return this.position;
560     }
561
562     public void setUiPosition(Double[] position) {
563         this.position = position;
564     }
565
566     /* Relief */
567     public String getRelief() {
568         return this.relief;
569     }
570
571     public void setRelief(String relief) {
572         this.relief = relief;
573     }
574
575     /**
576      * Get the string
577      * @return the string
578      */
579     public String[] getString() {
580         return this.string;
581     }
582
583     /**
584      * Set the string
585      * @param string the string
586      */
587     public void setString(String[] string) {
588         this.string = string;
589     }
590
591     /**
592      * Get the string column number
593      * @return the number of columns
594      */
595     public int getStringColNb() {
596         return stringColNb;
597     }
598
599     /**
600      * Set the string column number
601      * @param stringColNb the number of columns
602      */
603     public void setStringColNb(Integer stringColNb) {
604         this.stringColNb = stringColNb;
605     }
606
607
608     /**
609      * Get the tooltip string
610      * @return the tooltip string
611      */
612     public String[] getTooltipString() {
613         return this.tooltipString;
614     }
615
616     /**
617      * Set the tooltip string
618      * @param tooltipString the tooltip string
619      */
620     public void setTooltipString(String[] tooltipString) {
621         this.tooltipString = tooltipString;
622     }
623
624     /* Slider Step */
625     public Double[] getSliderStep() {
626         return this.sliderStep;
627     }
628
629     public void setSliderStep(Double[] sliderStep) {
630         this.sliderStep = sliderStep;
631     }
632
633     /* Units */
634     public String getUnits() {
635         return this.units;
636     }
637
638     public void setUnits(String units) {
639         this.units = units;
640     }
641
642     /* Value */
643     public Integer getUiValueSize() {
644         return (value != null ? value.length : 0);
645     }
646
647     public Double[] getUiValue() {
648         return this.value;
649     }
650
651     public void setUiValue(Double[] value) {
652         this.value = value;
653     }
654
655     /* Vertical Alignment */
656     public String getVerticalAlignment() {
657         return this.verticalAlignment;
658     }
659
660     public void setVerticalAlignment(String alignment) {
661         this.verticalAlignment = alignment;
662     }
663
664     public void accept(Visitor visitor) {
665
666     }
667
668 }