add spinner uicontrol 76/13876/3
Antoine ELIAS [Mon, 3 Mar 2014 09:56:57 +0000 (10:56 +0100)]
Change-Id: Icd691c62750f559ff71f9a059403f54752f9baa1

14 files changed:
scilab/modules/graphic_objects/includes/graphicObjectProperties.h
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicModel/GraphicModel.java
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicObject/GraphicObject.java
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicObject/GraphicObjectProperties.java
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/Uicontrol.java
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/edit/Spinner.java [new file with mode: 0644]
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/xmlloader/GOBuilder.java
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/xmlloader/XmlLoader.java
scilab/modules/graphic_objects/src/scripts/propertiesMap.properties
scilab/modules/gui/sci_gateway/c/sci_uicontrol.c
scilab/modules/gui/src/cpp/CreateUIControl.cpp
scilab/modules/gui/src/cpp/GetUicontrolStyle.cpp
scilab/modules/gui/src/java/org/scilab/modules/gui/SwingView.java
scilab/modules/gui/src/java/org/scilab/modules/gui/bridge/editbox/SwingScilabSpinner.java [new file with mode: 0644]

index a3a79c5..48fa23a 100755 (executable)
 #define __GO_STYLE__ 269
 #define __GO_UI_CHECKBOX__ 270
 #define __GO_UI_EDIT__ 271
-#define __GO_UI_FRAME__ 272
-#define __GO_UI_FRAME_SCROLLABLE__ 273
-#define __GO_UI_IMAGE__ 274
-#define __GO_UI_LISTBOX__ 275
-#define __GO_UI_POPUPMENU__ 276
-#define __GO_UI_PUSHBUTTON__ 277
-#define __GO_UI_RADIOBUTTON__ 278
-#define __GO_UI_SLIDER__ 279
-#define __GO_UI_TABLE__ 280
-#define __GO_UI_TEXT__ 281
-#define __GO_UI_LAYER__ 282
-#define __GO_UI_BACKGROUNDCOLOR__ 283
-#define __GO_UI_ENABLE__ 284
-#define __GO_UI_FONTANGLE__ 285
-#define __GO_UI_FONTNAME__ 286
-#define __GO_UI_FONTSIZE__ 287
-#define __GO_UI_FONTUNITS__ 288
-#define __GO_UI_FONTWEIGHT__ 289
-#define __GO_UI_FOREGROUNDCOLOR__ 290
-#define __GO_UI_HORIZONTALALIGNMENT__ 291
-#define __GO_UI_LISTBOXTOP__ 292
-#define __GO_UI_LISTBOXTOP_SIZE__ 293
-#define __GO_UI_MAX__ 294
-#define __GO_UI_MIN__ 295
-#define __GO_UI_RELIEF__ 296
-#define __GO_UI_STRING__ 297
-#define __GO_UI_TAB_STRING__ 298
-#define __GO_UI_STRING_SIZE__ 299
-#define __GO_UI_STRING_COLNB__ 300
-#define __GO_UI_TOOLTIPSTRING__ 301
-#define __GO_UI_TOOLTIPSTRING_SIZE__ 302
-#define __GO_UI_SLIDERSTEP__ 303
-#define __GO_UI_UNITS__ 304
-#define __GO_UI_VALUE__ 305
-#define __GO_UI_TAB_VALUE__ 306
-#define __GO_UI_VALUE_SIZE__ 307
-#define __GO_UI_VERTICALALIGNMENT__ 308
-#define __GO_UIPARENTMENU__ 309
-#define __GO_UICHILDMENU__ 310
-#define __GO_UICHECKEDMENU__ 311
-#define __GO_UI_CHECKED__ 312
-#define __GO_UI_LABEL__ 313
-#define __GO_UI_MNEMONIC__ 314
-#define __GO_UI_ACCELERATOR__ 315
-#define __GO_UI_SEPARATOR__ 316
-#define __GO_UI_ICON__ 317
-#define __GO_CONSOLE__ 318
-#define __GO_SHOWHIDDENHANDLES__ 319
-#define __GO_USEDEPRECATEDLF__ 320
-#define __GO_WAITBAR__ 321
-#define __GO_PROGRESSIONBAR__ 322
-#define __GO_UI_MESSAGE__ 323
-#define __GO_UI_MESSAGE_SIZE__ 324
-#define __GO_DATATIP__ 325
-#define __GO_DATATIP_DATA__ 326
-#define __GO_DATATIP_ORIENTATION__ 327
-#define __GO_DATATIP_3COMPONENT__ 328
-#define __GO_DATATIP_AUTOORIENTATION__ 329
-#define __GO_DATATIP_INTERP_MODE__ 330
-#define __GO_DATATIP_DISPLAY_FNC__ 331
-#define __GO_DATATIP_BOX_MODE__ 332
-#define __GO_DATATIP_LABEL_MODE__ 333
-#define __GO_DATATIP_MARK__ 334
-#define __GO_AMBIENTCOLOR__ 335
-#define __GO_DIFFUSECOLOR__ 336
-#define __GO_SPECULARCOLOR__ 337
-#define __GO_COLOR_MATERIAL__ 338
-#define __GO_MATERIAL_SHININESS__ 339
-#define __GO_LIGHT__ 340
-#define __GO_LIGHT_TYPE__ 341
-#define __GO_DATATIPS__ 342
-#define __GO_DATATIPS_COUNT__ 343
-#define __GO_DATATIP_INDEXES__ 344
-#define __GO_DATA_MODEL_DISPLAY_FUNCTION__ 345
-#define __GO_DATA_MODEL_DISPLAY_FUNCTION_SIZE__ 346
-#define __GO_RESIZE__ 347
-#define __GO_TOOLBAR__ 348
-#define __GO_TOOLBAR_VISIBLE__ 349
-#define __GO_MENUBAR__ 350
-#define __GO_MENUBAR_VISIBLE__ 351
-#define __GO_INFOBAR_VISIBLE__ 352
-#define __GO_DOCKABLE__ 353
-#define __GO_LAYOUT__ 354
-#define __GO_LAYOUT_SET__ 355
-#define __GO_UI_TAB__ 356
-#define __GO_UI_GRIDBAG_GRID__ 357
-#define __GO_UI_GRIDBAG_WEIGHT__ 358
-#define __GO_UI_GRIDBAG_FILL__ 359
-#define __GO_UI_GRIDBAG_ANCHOR__ 360
-#define __GO_UI_GRIDBAG_PADDING__ 361
-#define __GO_UI_GRIDBAG_PREFERREDSIZE__ 362
-#define __GO_UI_GRID_GRID__ 363
-#define __GO_UI_GRID_PADDING__ 364
-#define __GO_UI_BORDER_POSITION__ 365
-#define __GO_UI_BORDER_PREFERREDSIZE__ 366
-#define __GO_GRID_OPT_GRID__ 367
-#define __GO_GRID_OPT_PADDING__ 368
-#define __GO_BORDER_OPT_PADDING__ 369
-#define __GO_UI_FRAME_BORDER__ 370
-#define __GO_UI_FRAME_BORDER_COLOR__ 371
-#define __GO_UI_FRAME_BORDER_HIGHLIGHT_IN__ 372
-#define __GO_UI_FRAME_BORDER_HIGHLIGHT_OUT__ 373
-#define __GO_UI_FRAME_BORDER_IN_BORDER__ 374
-#define __GO_UI_FRAME_BORDER_JUSTIFICATION__ 375
-#define __GO_UI_FRAME_BORDER_OUT_BORDER__ 376
-#define __GO_UI_FRAME_BORDER_ROUNDED__ 377
-#define __GO_UI_FRAME_BORDER_SHADOW_IN__ 378
-#define __GO_UI_FRAME_BORDER_SHADOW_OUT__ 379
-#define __GO_UI_FRAME_BORDER_TITLE__ 380
-#define __GO_UI_FRAME_BORDER_POSITION__ 381
-#define __GO_UI_FRAME_BORDER_STYLE__ 382
-#define __GO_UI_GROUP_NAME__ 383
-#define __GO_UI_TITLE_POSITION__ 384
-#define __GO_UI_TITLE_SCROLL__ 385
-#define __GO_UI_FRAME_BORDER_TYPE__ 386
-#define __GO_UI_SCROLLABLE__ 387
+#define __GO_UI_SPINNER__ 272
+#define __GO_UI_FRAME__ 273
+#define __GO_UI_FRAME_SCROLLABLE__ 274
+#define __GO_UI_IMAGE__ 275
+#define __GO_UI_LISTBOX__ 276
+#define __GO_UI_POPUPMENU__ 277
+#define __GO_UI_PUSHBUTTON__ 278
+#define __GO_UI_RADIOBUTTON__ 279
+#define __GO_UI_SLIDER__ 280
+#define __GO_UI_TABLE__ 281
+#define __GO_UI_TEXT__ 282
+#define __GO_UI_LAYER__ 283
+#define __GO_UI_BACKGROUNDCOLOR__ 284
+#define __GO_UI_ENABLE__ 285
+#define __GO_UI_FONTANGLE__ 286
+#define __GO_UI_FONTNAME__ 287
+#define __GO_UI_FONTSIZE__ 288
+#define __GO_UI_FONTUNITS__ 289
+#define __GO_UI_FONTWEIGHT__ 290
+#define __GO_UI_FOREGROUNDCOLOR__ 291
+#define __GO_UI_HORIZONTALALIGNMENT__ 292
+#define __GO_UI_LISTBOXTOP__ 293
+#define __GO_UI_LISTBOXTOP_SIZE__ 294
+#define __GO_UI_MAX__ 295
+#define __GO_UI_MIN__ 296
+#define __GO_UI_RELIEF__ 297
+#define __GO_UI_STRING__ 298
+#define __GO_UI_TAB_STRING__ 299
+#define __GO_UI_STRING_SIZE__ 300
+#define __GO_UI_STRING_COLNB__ 301
+#define __GO_UI_TOOLTIPSTRING__ 302
+#define __GO_UI_TOOLTIPSTRING_SIZE__ 303
+#define __GO_UI_SLIDERSTEP__ 304
+#define __GO_UI_UNITS__ 305
+#define __GO_UI_VALUE__ 306
+#define __GO_UI_TAB_VALUE__ 307
+#define __GO_UI_VALUE_SIZE__ 308
+#define __GO_UI_VERTICALALIGNMENT__ 309
+#define __GO_UIPARENTMENU__ 310
+#define __GO_UICHILDMENU__ 311
+#define __GO_UICHECKEDMENU__ 312
+#define __GO_UI_CHECKED__ 313
+#define __GO_UI_LABEL__ 314
+#define __GO_UI_MNEMONIC__ 315
+#define __GO_UI_ACCELERATOR__ 316
+#define __GO_UI_SEPARATOR__ 317
+#define __GO_UI_ICON__ 318
+#define __GO_CONSOLE__ 319
+#define __GO_SHOWHIDDENHANDLES__ 320
+#define __GO_USEDEPRECATEDLF__ 321
+#define __GO_WAITBAR__ 322
+#define __GO_PROGRESSIONBAR__ 323
+#define __GO_UI_MESSAGE__ 324
+#define __GO_UI_MESSAGE_SIZE__ 325
+#define __GO_DATATIP__ 326
+#define __GO_DATATIP_DATA__ 327
+#define __GO_DATATIP_ORIENTATION__ 328
+#define __GO_DATATIP_3COMPONENT__ 329
+#define __GO_DATATIP_AUTOORIENTATION__ 330
+#define __GO_DATATIP_INTERP_MODE__ 331
+#define __GO_DATATIP_DISPLAY_FNC__ 332
+#define __GO_DATATIP_BOX_MODE__ 333
+#define __GO_DATATIP_LABEL_MODE__ 334
+#define __GO_DATATIP_MARK__ 335
+#define __GO_AMBIENTCOLOR__ 336
+#define __GO_DIFFUSECOLOR__ 337
+#define __GO_SPECULARCOLOR__ 338
+#define __GO_COLOR_MATERIAL__ 339
+#define __GO_MATERIAL_SHININESS__ 340
+#define __GO_LIGHT__ 341
+#define __GO_LIGHT_TYPE__ 342
+#define __GO_DATATIPS__ 343
+#define __GO_DATATIPS_COUNT__ 344
+#define __GO_DATATIP_INDEXES__ 345
+#define __GO_DATA_MODEL_DISPLAY_FUNCTION__ 346
+#define __GO_DATA_MODEL_DISPLAY_FUNCTION_SIZE__ 347
+#define __GO_RESIZE__ 348
+#define __GO_TOOLBAR__ 349
+#define __GO_TOOLBAR_VISIBLE__ 350
+#define __GO_MENUBAR__ 351
+#define __GO_MENUBAR_VISIBLE__ 352
+#define __GO_INFOBAR_VISIBLE__ 353
+#define __GO_DOCKABLE__ 354
+#define __GO_LAYOUT__ 355
+#define __GO_LAYOUT_SET__ 356
+#define __GO_UI_TAB__ 357
+#define __GO_UI_GRIDBAG_GRID__ 358
+#define __GO_UI_GRIDBAG_WEIGHT__ 359
+#define __GO_UI_GRIDBAG_FILL__ 360
+#define __GO_UI_GRIDBAG_ANCHOR__ 361
+#define __GO_UI_GRIDBAG_PADDING__ 362
+#define __GO_UI_GRIDBAG_PREFERREDSIZE__ 363
+#define __GO_UI_GRID_GRID__ 364
+#define __GO_UI_GRID_PADDING__ 365
+#define __GO_UI_BORDER_POSITION__ 366
+#define __GO_UI_BORDER_PREFERREDSIZE__ 367
+#define __GO_GRID_OPT_GRID__ 368
+#define __GO_GRID_OPT_PADDING__ 369
+#define __GO_BORDER_OPT_PADDING__ 370
+#define __GO_UI_FRAME_BORDER__ 371
+#define __GO_UI_FRAME_BORDER_COLOR__ 372
+#define __GO_UI_FRAME_BORDER_HIGHLIGHT_IN__ 373
+#define __GO_UI_FRAME_BORDER_HIGHLIGHT_OUT__ 374
+#define __GO_UI_FRAME_BORDER_IN_BORDER__ 375
+#define __GO_UI_FRAME_BORDER_JUSTIFICATION__ 376
+#define __GO_UI_FRAME_BORDER_OUT_BORDER__ 377
+#define __GO_UI_FRAME_BORDER_ROUNDED__ 378
+#define __GO_UI_FRAME_BORDER_SHADOW_IN__ 379
+#define __GO_UI_FRAME_BORDER_SHADOW_OUT__ 380
+#define __GO_UI_FRAME_BORDER_TITLE__ 381
+#define __GO_UI_FRAME_BORDER_POSITION__ 382
+#define __GO_UI_FRAME_BORDER_STYLE__ 383
+#define __GO_UI_GROUP_NAME__ 384
+#define __GO_UI_TITLE_POSITION__ 385
+#define __GO_UI_TITLE_SCROLL__ 386
+#define __GO_UI_FRAME_BORDER_TYPE__ 387
+#define __GO_UI_SCROLLABLE__ 388
 
 #endif /* !__GRAPHIC_OBJECT_PROPERTIES_H__ */
index 72966bf..5220567 100644 (file)
@@ -41,6 +41,7 @@ import org.scilab.modules.graphic_objects.uibar.waitbar.Waitbar;
 import org.scilab.modules.graphic_objects.uicontextmenu.Uicontextmenu;
 import org.scilab.modules.graphic_objects.uicontrol.checkbox.CheckBox;
 import org.scilab.modules.graphic_objects.uicontrol.edit.Edit;
+import org.scilab.modules.graphic_objects.uicontrol.edit.Spinner;
 import org.scilab.modules.graphic_objects.uicontrol.frame.Frame;
 import org.scilab.modules.graphic_objects.uicontrol.layer.Layer;
 import org.scilab.modules.graphic_objects.uicontrol.frame.border.FrameBorder;
@@ -258,6 +259,9 @@ public final class GraphicModel {
             case EDIT:
                 createdObject = new Edit();
                 break;
+            case SPINNER:
+                createdObject = new Spinner();
+                break;
             case FRAME:
                 createdObject = new Frame();
                 break;
index 7c6f924..ae775a4 100644 (file)
@@ -21,6 +21,7 @@ import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProp
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_CALLBACK__;
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_CHAMP__;
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_CHILDREN_COUNT__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_SPINNER__;
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_CHILDREN__;
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_COMPOUND__;
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_DATATIP__;
@@ -101,7 +102,7 @@ public abstract class GraphicObject implements Cloneable {
 
     /** Graphic objects types */
     public enum Type { ARC, AXES, AXESMODEL, AXIS, CHAMP, COMPOUND, FAC3D, FEC, FIGURE, FIGUREMODEL, GRAYPLOT,
-                       LABEL, LEGEND, MATPLOT, PLOT3D, POLYLINE, RECTANGLE, SEGS, TEXT, CHECKBOX, EDIT, FRAME,
+                       LABEL, LEGEND, MATPLOT, PLOT3D, POLYLINE, RECTANGLE, SEGS, TEXT, CHECKBOX, EDIT, SPINNER, FRAME,
                        IMAGE, LISTBOX, POPUPMENU, PUSHBUTTON, RADIOBUTTON, CONSOLE, JAVACONSOLE, SLIDER, TABLE, UITEXT, UIMENU, UIMENUMODEL,
                        PROGRESSIONBAR, WAITBAR, UICONTEXTMENU, DATATIP, LIGHT, TABGROUP, TAB, LAYER, BORDER, FRAME_SCROLLABLE, UNKNOWNOBJECT
                      };
@@ -250,6 +251,8 @@ public abstract class GraphicObject implements Cloneable {
                 return Type.CHECKBOX;
             case __GO_UI_EDIT__ :
                 return Type.EDIT;
+            case __GO_UI_SPINNER__ :
+                return Type.SPINNER;
             case __GO_UI_FRAME__ :
                 return Type.FRAME;
             case __GO_UI_IMAGE__ :
index 362c8c3..10b69b6 100755 (executable)
@@ -292,121 +292,122 @@ public class GraphicObjectProperties {
     public static final int __GO_STYLE__ = 269;
     public static final int __GO_UI_CHECKBOX__ = 270;
     public static final int __GO_UI_EDIT__ = 271;
-    public static final int __GO_UI_FRAME__ = 272;
-    public static final int __GO_UI_FRAME_SCROLLABLE__ = 273;
-    public static final int __GO_UI_IMAGE__ = 274;
-    public static final int __GO_UI_LISTBOX__ = 275;
-    public static final int __GO_UI_POPUPMENU__ = 276;
-    public static final int __GO_UI_PUSHBUTTON__ = 277;
-    public static final int __GO_UI_RADIOBUTTON__ = 278;
-    public static final int __GO_UI_SLIDER__ = 279;
-    public static final int __GO_UI_TABLE__ = 280;
-    public static final int __GO_UI_TEXT__ = 281;
-    public static final int __GO_UI_LAYER__ = 282;
-    public static final int __GO_UI_BACKGROUNDCOLOR__ = 283;
-    public static final int __GO_UI_ENABLE__ = 284;
-    public static final int __GO_UI_FONTANGLE__ = 285;
-    public static final int __GO_UI_FONTNAME__ = 286;
-    public static final int __GO_UI_FONTSIZE__ = 287;
-    public static final int __GO_UI_FONTUNITS__ = 288;
-    public static final int __GO_UI_FONTWEIGHT__ = 289;
-    public static final int __GO_UI_FOREGROUNDCOLOR__ = 290;
-    public static final int __GO_UI_HORIZONTALALIGNMENT__ = 291;
-    public static final int __GO_UI_LISTBOXTOP__ = 292;
-    public static final int __GO_UI_LISTBOXTOP_SIZE__ = 293;
-    public static final int __GO_UI_MAX__ = 294;
-    public static final int __GO_UI_MIN__ = 295;
-    public static final int __GO_UI_RELIEF__ = 296;
-    public static final int __GO_UI_STRING__ = 297;
-    public static final int __GO_UI_TAB_STRING__ = 298;
-    public static final int __GO_UI_STRING_SIZE__ = 299;
-    public static final int __GO_UI_STRING_COLNB__ = 300;
-    public static final int __GO_UI_TOOLTIPSTRING__ = 301;
-    public static final int __GO_UI_TOOLTIPSTRING_SIZE__ = 302;
-    public static final int __GO_UI_SLIDERSTEP__ = 303;
-    public static final int __GO_UI_UNITS__ = 304;
-    public static final int __GO_UI_VALUE__ = 305;
-    public static final int __GO_UI_TAB_VALUE__ = 306;
-    public static final int __GO_UI_VALUE_SIZE__ = 307;
-    public static final int __GO_UI_VERTICALALIGNMENT__ = 308;
-    public static final int __GO_UIPARENTMENU__ = 309;
-    public static final int __GO_UICHILDMENU__ = 310;
-    public static final int __GO_UICHECKEDMENU__ = 311;
-    public static final int __GO_UI_CHECKED__ = 312;
-    public static final int __GO_UI_LABEL__ = 313;
-    public static final int __GO_UI_MNEMONIC__ = 314;
-    public static final int __GO_UI_ACCELERATOR__ = 315;
-    public static final int __GO_UI_SEPARATOR__ = 316;
-    public static final int __GO_UI_ICON__ = 317;
-    public static final int __GO_CONSOLE__ = 318;
-    public static final int __GO_SHOWHIDDENHANDLES__ = 319;
-    public static final int __GO_USEDEPRECATEDLF__ = 320;
-    public static final int __GO_WAITBAR__ = 321;
-    public static final int __GO_PROGRESSIONBAR__ = 322;
-    public static final int __GO_UI_MESSAGE__ = 323;
-    public static final int __GO_UI_MESSAGE_SIZE__ = 324;
-    public static final int __GO_DATATIP__ = 325;
-    public static final int __GO_DATATIP_DATA__ = 326;
-    public static final int __GO_DATATIP_ORIENTATION__ = 327;
-    public static final int __GO_DATATIP_3COMPONENT__ = 328;
-    public static final int __GO_DATATIP_AUTOORIENTATION__ = 329;
-    public static final int __GO_DATATIP_INTERP_MODE__ = 330;
-    public static final int __GO_DATATIP_DISPLAY_FNC__ = 331;
-    public static final int __GO_DATATIP_BOX_MODE__ = 332;
-    public static final int __GO_DATATIP_LABEL_MODE__ = 333;
-    public static final int __GO_DATATIP_MARK__ = 334;
-    public static final int __GO_AMBIENTCOLOR__ = 335;
-    public static final int __GO_DIFFUSECOLOR__ = 336;
-    public static final int __GO_SPECULARCOLOR__ = 337;
-    public static final int __GO_COLOR_MATERIAL__ = 338;
-    public static final int __GO_MATERIAL_SHININESS__ = 339;
-    public static final int __GO_LIGHT__ = 340;
-    public static final int __GO_LIGHT_TYPE__ = 341;
-    public static final int __GO_DATATIPS__ = 342;
-    public static final int __GO_DATATIPS_COUNT__ = 343;
-    public static final int __GO_DATATIP_INDEXES__ = 344;
-    public static final int __GO_DATA_MODEL_DISPLAY_FUNCTION__ = 345;
-    public static final int __GO_DATA_MODEL_DISPLAY_FUNCTION_SIZE__ = 346;
-    public static final int __GO_RESIZE__ = 347;
-    public static final int __GO_TOOLBAR__ = 348;
-    public static final int __GO_TOOLBAR_VISIBLE__ = 349;
-    public static final int __GO_MENUBAR__ = 350;
-    public static final int __GO_MENUBAR_VISIBLE__ = 351;
-    public static final int __GO_INFOBAR_VISIBLE__ = 352;
-    public static final int __GO_DOCKABLE__ = 353;
-    public static final int __GO_LAYOUT__ = 354;
-    public static final int __GO_LAYOUT_SET__ = 355;
-    public static final int __GO_UI_TAB__ = 356;
-    public static final int __GO_UI_GRIDBAG_GRID__ = 357;
-    public static final int __GO_UI_GRIDBAG_WEIGHT__ = 358;
-    public static final int __GO_UI_GRIDBAG_FILL__ = 359;
-    public static final int __GO_UI_GRIDBAG_ANCHOR__ = 360;
-    public static final int __GO_UI_GRIDBAG_PADDING__ = 361;
-    public static final int __GO_UI_GRIDBAG_PREFERREDSIZE__ = 362;
-    public static final int __GO_UI_GRID_GRID__ = 363;
-    public static final int __GO_UI_GRID_PADDING__ = 364;
-    public static final int __GO_UI_BORDER_POSITION__ = 365;
-    public static final int __GO_UI_BORDER_PREFERREDSIZE__ = 366;
-    public static final int __GO_GRID_OPT_GRID__ = 367;
-    public static final int __GO_GRID_OPT_PADDING__ = 368;
-    public static final int __GO_BORDER_OPT_PADDING__ = 369;
-    public static final int __GO_UI_FRAME_BORDER__ = 370;
-    public static final int __GO_UI_FRAME_BORDER_COLOR__ = 371;
-    public static final int __GO_UI_FRAME_BORDER_HIGHLIGHT_IN__ = 372;
-    public static final int __GO_UI_FRAME_BORDER_HIGHLIGHT_OUT__ = 373;
-    public static final int __GO_UI_FRAME_BORDER_IN_BORDER__ = 374;
-    public static final int __GO_UI_FRAME_BORDER_JUSTIFICATION__ = 375;
-    public static final int __GO_UI_FRAME_BORDER_OUT_BORDER__ = 376;
-    public static final int __GO_UI_FRAME_BORDER_ROUNDED__ = 377;
-    public static final int __GO_UI_FRAME_BORDER_SHADOW_IN__ = 378;
-    public static final int __GO_UI_FRAME_BORDER_SHADOW_OUT__ = 379;
-    public static final int __GO_UI_FRAME_BORDER_TITLE__ = 380;
-    public static final int __GO_UI_FRAME_BORDER_POSITION__ = 381;
-    public static final int __GO_UI_FRAME_BORDER_STYLE__ = 382;
-    public static final int __GO_UI_GROUP_NAME__ = 383;
-    public static final int __GO_UI_TITLE_POSITION__ = 384;
-    public static final int __GO_UI_TITLE_SCROLL__ = 385;
-    public static final int __GO_UI_FRAME_BORDER_TYPE__ = 386;
-    public static final int __GO_UI_SCROLLABLE__ = 387;
+    public static final int __GO_UI_SPINNER__ = 272;
+    public static final int __GO_UI_FRAME__ = 273;
+    public static final int __GO_UI_FRAME_SCROLLABLE__ = 274;
+    public static final int __GO_UI_IMAGE__ = 275;
+    public static final int __GO_UI_LISTBOX__ = 276;
+    public static final int __GO_UI_POPUPMENU__ = 277;
+    public static final int __GO_UI_PUSHBUTTON__ = 278;
+    public static final int __GO_UI_RADIOBUTTON__ = 279;
+    public static final int __GO_UI_SLIDER__ = 280;
+    public static final int __GO_UI_TABLE__ = 281;
+    public static final int __GO_UI_TEXT__ = 282;
+    public static final int __GO_UI_LAYER__ = 283;
+    public static final int __GO_UI_BACKGROUNDCOLOR__ = 284;
+    public static final int __GO_UI_ENABLE__ = 285;
+    public static final int __GO_UI_FONTANGLE__ = 286;
+    public static final int __GO_UI_FONTNAME__ = 287;
+    public static final int __GO_UI_FONTSIZE__ = 288;
+    public static final int __GO_UI_FONTUNITS__ = 289;
+    public static final int __GO_UI_FONTWEIGHT__ = 290;
+    public static final int __GO_UI_FOREGROUNDCOLOR__ = 291;
+    public static final int __GO_UI_HORIZONTALALIGNMENT__ = 292;
+    public static final int __GO_UI_LISTBOXTOP__ = 293;
+    public static final int __GO_UI_LISTBOXTOP_SIZE__ = 294;
+    public static final int __GO_UI_MAX__ = 295;
+    public static final int __GO_UI_MIN__ = 296;
+    public static final int __GO_UI_RELIEF__ = 297;
+    public static final int __GO_UI_STRING__ = 298;
+    public static final int __GO_UI_TAB_STRING__ = 299;
+    public static final int __GO_UI_STRING_SIZE__ = 300;
+    public static final int __GO_UI_STRING_COLNB__ = 301;
+    public static final int __GO_UI_TOOLTIPSTRING__ = 302;
+    public static final int __GO_UI_TOOLTIPSTRING_SIZE__ = 303;
+    public static final int __GO_UI_SLIDERSTEP__ = 304;
+    public static final int __GO_UI_UNITS__ = 305;
+    public static final int __GO_UI_VALUE__ = 306;
+    public static final int __GO_UI_TAB_VALUE__ = 307;
+    public static final int __GO_UI_VALUE_SIZE__ = 308;
+    public static final int __GO_UI_VERTICALALIGNMENT__ = 309;
+    public static final int __GO_UIPARENTMENU__ = 310;
+    public static final int __GO_UICHILDMENU__ = 311;
+    public static final int __GO_UICHECKEDMENU__ = 312;
+    public static final int __GO_UI_CHECKED__ = 313;
+    public static final int __GO_UI_LABEL__ = 314;
+    public static final int __GO_UI_MNEMONIC__ = 315;
+    public static final int __GO_UI_ACCELERATOR__ = 316;
+    public static final int __GO_UI_SEPARATOR__ = 317;
+    public static final int __GO_UI_ICON__ = 318;
+    public static final int __GO_CONSOLE__ = 319;
+    public static final int __GO_SHOWHIDDENHANDLES__ = 320;
+    public static final int __GO_USEDEPRECATEDLF__ = 321;
+    public static final int __GO_WAITBAR__ = 322;
+    public static final int __GO_PROGRESSIONBAR__ = 323;
+    public static final int __GO_UI_MESSAGE__ = 324;
+    public static final int __GO_UI_MESSAGE_SIZE__ = 325;
+    public static final int __GO_DATATIP__ = 326;
+    public static final int __GO_DATATIP_DATA__ = 327;
+    public static final int __GO_DATATIP_ORIENTATION__ = 328;
+    public static final int __GO_DATATIP_3COMPONENT__ = 329;
+    public static final int __GO_DATATIP_AUTOORIENTATION__ = 330;
+    public static final int __GO_DATATIP_INTERP_MODE__ = 331;
+    public static final int __GO_DATATIP_DISPLAY_FNC__ = 332;
+    public static final int __GO_DATATIP_BOX_MODE__ = 333;
+    public static final int __GO_DATATIP_LABEL_MODE__ = 334;
+    public static final int __GO_DATATIP_MARK__ = 335;
+    public static final int __GO_AMBIENTCOLOR__ = 336;
+    public static final int __GO_DIFFUSECOLOR__ = 337;
+    public static final int __GO_SPECULARCOLOR__ = 338;
+    public static final int __GO_COLOR_MATERIAL__ = 339;
+    public static final int __GO_MATERIAL_SHININESS__ = 340;
+    public static final int __GO_LIGHT__ = 341;
+    public static final int __GO_LIGHT_TYPE__ = 342;
+    public static final int __GO_DATATIPS__ = 343;
+    public static final int __GO_DATATIPS_COUNT__ = 344;
+    public static final int __GO_DATATIP_INDEXES__ = 345;
+    public static final int __GO_DATA_MODEL_DISPLAY_FUNCTION__ = 346;
+    public static final int __GO_DATA_MODEL_DISPLAY_FUNCTION_SIZE__ = 347;
+    public static final int __GO_RESIZE__ = 348;
+    public static final int __GO_TOOLBAR__ = 349;
+    public static final int __GO_TOOLBAR_VISIBLE__ = 350;
+    public static final int __GO_MENUBAR__ = 351;
+    public static final int __GO_MENUBAR_VISIBLE__ = 352;
+    public static final int __GO_INFOBAR_VISIBLE__ = 353;
+    public static final int __GO_DOCKABLE__ = 354;
+    public static final int __GO_LAYOUT__ = 355;
+    public static final int __GO_LAYOUT_SET__ = 356;
+    public static final int __GO_UI_TAB__ = 357;
+    public static final int __GO_UI_GRIDBAG_GRID__ = 358;
+    public static final int __GO_UI_GRIDBAG_WEIGHT__ = 359;
+    public static final int __GO_UI_GRIDBAG_FILL__ = 360;
+    public static final int __GO_UI_GRIDBAG_ANCHOR__ = 361;
+    public static final int __GO_UI_GRIDBAG_PADDING__ = 362;
+    public static final int __GO_UI_GRIDBAG_PREFERREDSIZE__ = 363;
+    public static final int __GO_UI_GRID_GRID__ = 364;
+    public static final int __GO_UI_GRID_PADDING__ = 365;
+    public static final int __GO_UI_BORDER_POSITION__ = 366;
+    public static final int __GO_UI_BORDER_PREFERREDSIZE__ = 367;
+    public static final int __GO_GRID_OPT_GRID__ = 368;
+    public static final int __GO_GRID_OPT_PADDING__ = 369;
+    public static final int __GO_BORDER_OPT_PADDING__ = 370;
+    public static final int __GO_UI_FRAME_BORDER__ = 371;
+    public static final int __GO_UI_FRAME_BORDER_COLOR__ = 372;
+    public static final int __GO_UI_FRAME_BORDER_HIGHLIGHT_IN__ = 373;
+    public static final int __GO_UI_FRAME_BORDER_HIGHLIGHT_OUT__ = 374;
+    public static final int __GO_UI_FRAME_BORDER_IN_BORDER__ = 375;
+    public static final int __GO_UI_FRAME_BORDER_JUSTIFICATION__ = 376;
+    public static final int __GO_UI_FRAME_BORDER_OUT_BORDER__ = 377;
+    public static final int __GO_UI_FRAME_BORDER_ROUNDED__ = 378;
+    public static final int __GO_UI_FRAME_BORDER_SHADOW_IN__ = 379;
+    public static final int __GO_UI_FRAME_BORDER_SHADOW_OUT__ = 380;
+    public static final int __GO_UI_FRAME_BORDER_TITLE__ = 381;
+    public static final int __GO_UI_FRAME_BORDER_POSITION__ = 382;
+    public static final int __GO_UI_FRAME_BORDER_STYLE__ = 383;
+    public static final int __GO_UI_GROUP_NAME__ = 384;
+    public static final int __GO_UI_TITLE_POSITION__ = 385;
+    public static final int __GO_UI_TITLE_SCROLL__ = 386;
+    public static final int __GO_UI_FRAME_BORDER_TYPE__ = 387;
+    public static final int __GO_UI_SCROLLABLE__ = 388;
 
 }
index ee0932d..193d1fc 100644 (file)
@@ -60,6 +60,7 @@ import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProp
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_SCROLLABLE__;
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_SLIDERSTEP__;
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_SLIDER__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_SPINNER__;
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_STRING_COLNB__;
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_STRING_SIZE__;
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_STRING__;
@@ -409,7 +410,8 @@ public class Uicontrol extends GraphicObject {
         TEXT,
         TABGROUP,
         TAB,
-        LAYER
+        LAYER,
+        SPINNER
     };
 
     /**
@@ -469,6 +471,8 @@ public class Uicontrol extends GraphicObject {
                 return __GO_UI_TAB__;
             case LAYER:
                 return __GO_UI_LAYER__;
+            case SPINNER:
+                return __GO_UI_SPINNER__;
             default :
                 return -1;
         }
@@ -507,6 +511,8 @@ public class Uicontrol extends GraphicObject {
                 return UicontrolStyle.TAB;
             case __GO_UI_LAYER__:
                 return UicontrolStyle.LAYER;
+            case __GO_UI_SPINNER__:
+                return UicontrolStyle.SPINNER;
             default :
                 return null;
         }
diff --git a/scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/edit/Spinner.java b/scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/uicontrol/edit/Spinner.java
new file mode 100644 (file)
index 0000000..5b6ea3f
--- /dev/null
@@ -0,0 +1,32 @@
+package org.scilab.modules.graphic_objects.uicontrol.edit;
+
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_SPINNER__;
+
+import javax.swing.UIDefaults;
+import javax.swing.UIManager;
+
+import org.scilab.modules.graphic_objects.console.Console;
+import org.scilab.modules.graphic_objects.uicontrol.Uicontrol;
+
+public class Spinner  extends Uicontrol {
+
+    public Spinner() {
+        super();
+        setStyle(__GO_UI_SPINNER__);
+
+        if (Console.getConsole().getUseDeprecatedLF()) {
+            setRelief(RELIEF_SUNKEN);
+        } else {
+            UIDefaults defaults = UIManager.getDefaults();
+
+            //font
+            setFont(defaults.getFont("Spinner.font"));
+
+            //h-alignment
+            setHorizontalAlignment("left");
+
+            //v-alignement
+            setVerticalAlignment("middle");
+        }
+    }
+}
index 04d8852..5675709 100644 (file)
@@ -1,5 +1,6 @@
 package org.scilab.modules.graphic_objects.xmlloader;
 
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_SPINNER__;
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_FIGURE__;
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_CHECKED__;
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_LABEL__;
@@ -550,6 +551,9 @@ public class GOBuilder {
 
                     break;
                 }
+                case __GO_UI_SPINNER__: {
+
+                }
             }
 
         } catch (CSSParserException e) {
index 291ca12..f18552c 100644 (file)
@@ -16,9 +16,10 @@ import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProp
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_TAG__;
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_CHILDREN__;
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_AXES__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_CHILDREN__;
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_FIGURE__;
-import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UIMENU__;
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_TYPE__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UIMENU__;
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_CHECKBOX__;
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_EDIT__;
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FRAME__;
@@ -29,6 +30,7 @@ import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProp
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_PUSHBUTTON__;
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_RADIOBUTTON__;
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_SLIDER__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_SPINNER__;
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_TAB__;
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_TEXT__;
 
@@ -96,6 +98,7 @@ public class XmlLoader extends DefaultHandler {
         nameToGO.put("UISlider", __GO_UI_SLIDER__);
         nameToGO.put("UITab", __GO_UI_TAB__);
         nameToGO.put("UIScilabPlot", __GO_AXES__);
+        nameToGO.put("UINumberSpinner", __GO_UI_SPINNER__);
 
 
         /** sdsdf*/
index 21feb01..8f4da70 100755 (executable)
@@ -305,6 +305,7 @@ __GO_HIDDEN_COLOR__
 __GO_STYLE__
 __GO_UI_CHECKBOX__
 __GO_UI_EDIT__
+__GO_UI_SPINNER__
 __GO_UI_FRAME__
 __GO_UI_FRAME_SCROLLABLE__
 __GO_UI_IMAGE__
index fe73d6b..8d999e2 100644 (file)
@@ -13,6 +13,7 @@
  *
  */
 
+#include <stdio.h>
 #include "gw_gui.h"
 /*--------------------------------------------------------------------------*/
 #include "CreateUIControl.h"
index a34ce83..7d107e2 100644 (file)
@@ -46,6 +46,7 @@ void initStyleMap()
     styleMap["text"] = __GO_UI_TEXT__;
     styleMap["tab"] = __GO_UI_TAB__;
     styleMap["layer"] = __GO_UI_LAYER__;
+    styleMap["spinner"] = __GO_UI_SPINNER__;
     init = true;
 }
 
index 11afd9c..237b734 100644 (file)
@@ -50,6 +50,8 @@ char *IntToStyle(int _iStyle)
             return "tab";
         case __GO_UI_LAYER__ :
             return "layer";
+        case __GO_UI_SPINNER__ :
+            return "spinner";
     }
 
     return NULL;
index 166efcb..d27b3d6 100644 (file)
@@ -37,6 +37,7 @@ import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProp
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_CHECKBOX__;
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_CHECKED__;
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_EDIT__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_SPINNER__;
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_ENABLE__;
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FONTANGLE__;
 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_FONTNAME__;
@@ -106,6 +107,7 @@ import org.scilab.modules.gui.bridge.checkboxmenuitem.SwingScilabCheckBoxMenuIte
 import org.scilab.modules.gui.bridge.console.SwingScilabConsole;
 import org.scilab.modules.gui.bridge.contextmenu.SwingScilabContextMenu;
 import org.scilab.modules.gui.bridge.editbox.SwingScilabEditBox;
+import org.scilab.modules.gui.bridge.editbox.SwingScilabSpinner;
 import org.scilab.modules.gui.bridge.frame.SwingScilabFrame;
 import org.scilab.modules.gui.bridge.frame.SwingScilabLayer;
 import org.scilab.modules.gui.bridge.frame.SwingScilabScrollableFrame;
@@ -213,7 +215,7 @@ public final class SwingView implements GraphicView {
     }
 
     private enum UielementType {
-        Console, CheckBox, Edit, Frame, Figure, Axes, Image, ListBox, PopupMenu, Progressbar, PushButton, RadioButton, Slider, Table, Text, Uimenu, UiParentMenu, UiChildMenu, UiCheckedMenu, UiContextMenu, Waitbar, Tab, Layer
+        Console, CheckBox, Edit, Spinner, Frame, Figure, Axes, Image, ListBox, PopupMenu, Progressbar, PushButton, RadioButton, Slider, Table, Text, Uimenu, UiParentMenu, UiChildMenu, UiCheckedMenu, UiContextMenu, Waitbar, Tab, Layer
     }
 
     private class TypedObject {
@@ -309,6 +311,8 @@ public final class SwingView implements GraphicView {
                 return UielementType.CheckBox;
             case __GO_UI_EDIT__:
                 return UielementType.Edit;
+            case __GO_UI_SPINNER__:
+                return UielementType.Spinner;
             case __GO_UI_FRAME__:
                 return UielementType.Frame;
             case __GO_UI_IMAGE__:
@@ -391,11 +395,18 @@ public final class SwingView implements GraphicView {
                     return consoleTab;
                 }
                 return null;
-            case Edit:
+            case Edit: {
                 SwingScilabEditBox edit = new SwingScilabEditBox();
                 edit.setId(id);
                 setDefaultProperties(edit, id);
                 return edit;
+            }
+            case Spinner : {
+                SwingScilabSpinner spin = new SwingScilabSpinner();
+                spin.setId(id);
+                setDefaultProperties(spin, id);
+                return spin;
+            }
             case Figure: {
                 Figure figure = (Figure) GraphicController.getController().getObjectFromId(id);
                 String figureTitle = figure.getName();
@@ -780,24 +791,24 @@ public final class SwingView implements GraphicView {
             return;
         }
 
-        if (SwingUtilities.isEventDispatchThread()) {
-            updateObjectOnEDT(registeredObject, id, property);
-        } else {
-            try {
-                SwingUtilities.invokeAndWait(new Runnable() {
-                    @Override
-                    public void run() {
-                        updateObjectOnEDT(registeredObject, id, property);
-                    }
-                });
-            } catch (InterruptedException e) {
-                // TODO Auto-generated catch block
-                e.printStackTrace();
-            } catch (InvocationTargetException e) {
-                // TODO Auto-generated catch block
-                e.printStackTrace();
-            }
-        }
+        //        if (SwingUtilities.isEventDispatchThread()) {
+        updateObjectOnEDT(registeredObject, id, property);
+        //        } else {
+        //            try {
+        //                SwingUtilities.invokeAndWait(new Runnable() {
+        //                    @Override
+        //                    public void run() {
+        //                        updateObjectOnEDT(registeredObject, id, property);
+        //                    }
+        //                });
+        //            } catch (InterruptedException e) {
+        //                // TODO Auto-generated catch block
+        //                e.printStackTrace();
+        //            } catch (InvocationTargetException e) {
+        //                // TODO Auto-generated catch block
+        //                e.printStackTrace();
+        //            }
+        //        }
     }
 
     public void updateObjectOnEDT(TypedObject registeredObject, final Integer id, final int property) {
diff --git a/scilab/modules/gui/src/java/org/scilab/modules/gui/bridge/editbox/SwingScilabSpinner.java b/scilab/modules/gui/src/java/org/scilab/modules/gui/bridge/editbox/SwingScilabSpinner.java
new file mode 100644 (file)
index 0000000..1def737
--- /dev/null
@@ -0,0 +1,198 @@
+package org.scilab.modules.gui.bridge.editbox;
+
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_MAX__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_MIN__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_SLIDERSTEP__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_UI_VALUE__;
+
+import java.awt.Color;
+import java.awt.event.KeyEvent;
+import java.awt.event.KeyListener;
+
+import javax.swing.JSpinner;
+import javax.swing.SpinnerNumberModel;
+import javax.swing.UIManager;
+import javax.swing.border.Border;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
+
+import org.scilab.modules.graphic_objects.graphicController.GraphicController;
+import org.scilab.modules.gui.SwingViewObject;
+import org.scilab.modules.gui.SwingViewWidget;
+import org.scilab.modules.gui.editbox.SimpleEditBox;
+import org.scilab.modules.gui.events.callback.CommonCallBack;
+import org.scilab.modules.gui.menubar.MenuBar;
+import org.scilab.modules.gui.textbox.TextBox;
+import org.scilab.modules.gui.toolbar.ToolBar;
+import org.scilab.modules.gui.utils.Position;
+import org.scilab.modules.gui.utils.PositionConverter;
+import org.scilab.modules.gui.utils.ScilabRelief;
+import org.scilab.modules.gui.utils.Size;
+
+public class SwingScilabSpinner extends JSpinner implements SwingViewObject, SimpleEditBox {
+    private static final long serialVersionUID = -8036645127098703686L;
+
+    private Integer uid;
+    private CommonCallBack callback;
+    private Border defaultBorder = null;
+
+    public SwingScilabSpinner() {
+        setModel(new SpinnerNumberModel(0.0, 0.0, 1.0, 0.1));
+        JSpinner.NumberEditor num = (NumberEditor) getEditor();
+        num.getTextField().addKeyListener(new KeyListener() {
+
+            public void keyTyped(KeyEvent e) {
+                System.out.println("keyTyped : " + e.getKeyChar());
+            }
+
+            public void keyReleased(KeyEvent e) {
+            }
+
+            public void keyPressed(KeyEvent e) {
+            }
+        });
+
+        addChangeListener(new ChangeListener() {
+            public void stateChanged(ChangeEvent e) {
+                Double val = (Double)getValue();
+                GraphicController.getController().setProperty(uid, __GO_UI_VALUE__, new Double[] {val});
+                if (callback != null) {
+                    callback.actionPerformed(null);
+                }
+            }
+        });
+    }
+
+    public void setText(String newText) {
+    }
+
+    public String getText() {
+        return null;
+    }
+
+    public void resetBackground() {
+        Color color = (Color) UIManager.getLookAndFeelDefaults().get("Spinner.background");
+        if (color != null) {
+            setBackground(color);
+        }
+    }
+
+    public void setCallback(CommonCallBack callback) {
+        this.callback = callback;
+    }
+
+    public void setHorizontalAlignment(String alignment) {
+    }
+
+    public void setVerticalAlignment(String alignment) {
+    }
+
+    public void setRelief(String reliefType) {
+        if (defaultBorder == null) {
+            defaultBorder = getBorder();
+        }
+        setBorder(ScilabRelief.getBorderFromRelief(reliefType, defaultBorder));
+    }
+
+    public void destroy() {
+        getParent().remove(this);
+        this.setVisible(false);
+    }
+
+    public void addToolBar(ToolBar toolBarToAdd) {
+        throw new UnsupportedOperationException();
+    }
+
+    public void addMenuBar(MenuBar menuBarToAdd) {
+        throw new UnsupportedOperationException();
+    }
+
+    public void addInfoBar(TextBox infoBarToAdd) {
+        throw new UnsupportedOperationException();
+    }
+
+    public Size getDims() {
+        return new Size(this.getSize().width, this.getSize().height);
+    }
+
+    public void setDims(Size newSize) {
+        this.setSize(newSize.getWidth(), newSize.getHeight());
+    }
+
+    public Position getPosition() {
+        return PositionConverter.javaToScilab(getLocation(), getSize(), getParent());
+    }
+
+    public void setPosition(Position newPosition) {
+        Position javaPosition = PositionConverter.scilabToJava(newPosition, getDims(), getParent());
+        setLocation(javaPosition.getX(), javaPosition.getY());
+    }
+
+    public void draw() {
+        this.setVisible(true);
+        this.doLayout();
+    }
+
+    public MenuBar getMenuBar() {
+        throw new UnsupportedOperationException();
+    }
+
+    public ToolBar getToolBar() {
+        throw new UnsupportedOperationException();
+    }
+
+    public TextBox getInfoBar() {
+        throw new UnsupportedOperationException();
+    }
+
+    public void setId(Integer id) {
+        uid = id;
+    }
+
+    public Integer getId() {
+        return uid;
+    }
+
+    public void update(int property, Object value) {
+        GraphicController controller = GraphicController.getController();
+        switch (property) {
+            case __GO_UI_MAX__:
+            case __GO_UI_MIN__:
+            case __GO_UI_SLIDERSTEP__: {
+                Double max = (Double) controller.getProperty(getId(), __GO_UI_MAX__);
+                Double min = (Double) controller.getProperty(getId(), __GO_UI_MIN__);
+                Double[] step = (Double[]) controller.getProperty(getId(), __GO_UI_SLIDERSTEP__);
+                Double[] val = (Double[]) controller.getProperty(getId(), __GO_UI_VALUE__);
+                Double v = (val != null && val.length != 0) ? val[0] : 0.0;
+                System.out.println("value : " + v);
+                if (v > max) {
+                    v = max;
+                }
+
+                if (v < min) {
+                    v = min;
+                }
+
+                //adjust value to current step
+                if (step[0] != 0) {
+                    v = Math.floor((v / step[0])) * step[0];
+                } else {
+                    v = min;
+                }
+
+                controller.setProperty(uid, __GO_UI_VALUE__, new Double[] {v});
+                setModel(new SpinnerNumberModel(v, min, max, step[0]));
+                break;
+            }
+            case __GO_UI_VALUE__: {
+                setValue(((Double[])value)[0]);
+                break;
+            }
+            default: {
+                SwingViewWidget.update(this, property, value);
+                break;
+            }
+        }
+    }
+
+}