Graphics: avoid throw/catch NPE at scilab startup 88/9488/3
Clément DAVID [Mon, 22 Oct 2012 02:23:46 +0000 (04:23 +0200)]
Change-Id: I05f12c93b2eab5c3cb8a4ad1b7ca01c337639b3e

scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/axes/Axes.java
scilab/modules/graphics/src/c/InitObjects.c

index 0ab8af2..d1e1e40 100644 (file)
@@ -216,162 +216,162 @@ public class Axes extends GraphicObject {
      */
     public Object getPropertyFromName(int propertyName) {
         switch (propertyName) {
-        case __GO_X_AXIS_VISIBLE__ :
-            return AxesProperty.XAXISVISIBLE;
-        case __GO_X_AXIS_REVERSE__ :
-            return AxesProperty.XAXISREVERSE;
-        case __GO_X_AXIS_GRID_COLOR__ :
-            return AxesProperty.XAXISGRIDCOLOR;
-        case __GO_X_AXIS_LABEL__ :
-            return AxesProperty.XAXISLABEL;
-        case __GO_X_AXIS_LOCATION__ :
-            return AxesProperty.XAXISLOCATION;
-        case __GO_X_AXIS_LOG_FLAG__ :
-            return AxesProperty.XAXISLOGFLAG;
-        case __GO_X_AXIS_TICKS__ :
-            return AxesProperty.XAXISTICKS;
-        case __GO_X_AXIS_AUTO_TICKS__ :
-            return AxesProperty.XAXISAUTOTICKS;
-        case __GO_X_AXIS_NUMBER_TICKS__ :
-            return AxesProperty.XAXISNUMBERTICKS;
-        case __GO_X_AXIS_TICKS_LOCATIONS__:
-            return AxesProperty.XAXISTICKSLOCATIONS;
-        case __GO_X_AXIS_TICKS_LABELS__ :
-            return AxesProperty.XAXISTICKSLABELS;
-        case __GO_X_AXIS_SUBTICKS__ :
-            return AxesProperty.XAXISSUBTICKS;
-        case __GO_Y_AXIS_VISIBLE__ :
-            return AxesProperty.YAXISVISIBLE;
-        case __GO_Y_AXIS_REVERSE__ :
-            return AxesProperty.YAXISREVERSE;
-        case __GO_Y_AXIS_GRID_COLOR__ :
-            return AxesProperty.YAXISGRIDCOLOR;
-        case __GO_Y_AXIS_LABEL__ :
-            return AxesProperty.YAXISLABEL;
-        case __GO_Y_AXIS_LOCATION__ :
-            return AxesProperty.YAXISLOCATION;
-        case __GO_Y_AXIS_LOG_FLAG__ :
-            return AxesProperty.YAXISLOGFLAG;
-        case __GO_Y_AXIS_TICKS__ :
-            return AxesProperty.YAXISTICKS;
-        case __GO_Y_AXIS_AUTO_TICKS__ :
-            return AxesProperty.YAXISAUTOTICKS;
-        case __GO_Y_AXIS_NUMBER_TICKS__ :
-            return AxesProperty.YAXISNUMBERTICKS;
-        case __GO_Y_AXIS_TICKS_LOCATIONS__ :
-            return AxesProperty.YAXISTICKSLOCATIONS;
-        case __GO_Y_AXIS_TICKS_LABELS__ :
-            return AxesProperty.YAXISTICKSLABELS;
-        case __GO_Y_AXIS_SUBTICKS__ :
-            return AxesProperty.YAXISSUBTICKS;
-        case __GO_Z_AXIS_VISIBLE__ :
-            return AxesProperty.ZAXISVISIBLE;
-        case __GO_Z_AXIS_REVERSE__ :
-            return AxesProperty.ZAXISREVERSE;
-        case __GO_Z_AXIS_GRID_COLOR__ :
-            return AxesProperty.ZAXISGRIDCOLOR;
-        case __GO_Z_AXIS_LABEL__ :
-            return AxesProperty.ZAXISLABEL;
-        case __GO_Z_AXIS_LOCATION__ :
-            return AxesProperty.ZAXISLOCATION;
-        case __GO_Z_AXIS_LOG_FLAG__ :
-            return AxesProperty.ZAXISLOGFLAG;
-        case __GO_Z_AXIS_TICKS__ :
-            return AxesProperty.ZAXISTICKS;
-        case __GO_Z_AXIS_AUTO_TICKS__ :
-            return AxesProperty.ZAXISAUTOTICKS;
-        case __GO_Z_AXIS_NUMBER_TICKS__ :
-            return AxesProperty.ZAXISNUMBERTICKS;
-        case __GO_Z_AXIS_TICKS_LOCATIONS__ :
-            return AxesProperty.ZAXISTICKSLOCATIONS;
-        case __GO_Z_AXIS_TICKS_LABELS__ :
-            return AxesProperty.ZAXISTICKSLABELS;
-        case __GO_Z_AXIS_SUBTICKS__ :
-            return AxesProperty.ZAXISSUBTICKS;
-        case __GO_AUTO_SUBTICKS__ :
-            return AxesProperty.AUTOSUBTICKS;
-        case __GO_FONT_STYLE__ :
-            return AxesProperty.FONT_STYLE;
-        case __GO_FONT_SIZE__ :
-            return AxesProperty.FONT_SIZE;
-        case __GO_FONT_COLOR__ :
-            return AxesProperty.FONT_COLOR;
-        case __GO_FONT_FRACTIONAL__ :
-            return AxesProperty.FONT_FRACTIONAL;
-        case __GO_GRID_POSITION__ :
-            return AxesProperty.GRIDPOSITION;
-        case __GO_TITLE__ :
-            return AxesProperty.TITLE;
-        case __GO_AUTO_CLEAR__ :
-            return AxesProperty.AUTOCLEAR;
-        case __GO_FILLED__ :
-            return AxesProperty.FILLED;
-        case __GO_BACKGROUND__ :
-            return AxesProperty.BACKGROUND;
-        case __GO_VIEW__ :
-            return Camera.CameraProperty.VIEW;
-        case __GO_ISOVIEW__ :
-            return Camera.CameraProperty.ISOVIEW;
-        case __GO_CUBE_SCALING__ :
-            return Camera.CameraProperty.CUBESCALING;
-        case __GO_ROTATION_ANGLES__ :
-            return Camera.CameraProperty.ROTATIONANGLES;
-        case __GO_ROTATION_ANGLES_3D__ :
-            return Camera.CameraProperty.ROTATIONANGLES3D;
-        case __GO_BOX_TYPE__ :
-            return Box.BoxProperty.BOX;
-        case __GO_HIDDEN_AXIS_COLOR__ :
-            return Box.BoxProperty.HIDDENAXISCOLOR;
-        case __GO_TIGHT_LIMITS__ :
-            return Box.BoxProperty.TIGHTLIMITS;
-        case __GO_DATA_BOUNDS__ :
-            return Box.BoxProperty.DATABOUNDS;
-        case __GO_REAL_DATA_BOUNDS__ :
-            return Box.BoxProperty.REALDATABOUNDS;
-        case __GO_ZOOM_ENABLED__ :
-            return Box.BoxProperty.ZOOMENABLED;
-        case __GO_ZOOM_BOX__ :
-            return Box.BoxProperty.ZOOMBOX;
-        case __GO_AUTO_SCALE__ :
-            return Box.BoxProperty.AUTOSCALE;
-        case __GO_FIRST_PLOT__ :
-            return Box.BoxProperty.FIRSTPLOT;
-        case __GO_MARGINS__ :
-            return AxesProperty.MARGINS;
-        case __GO_AXES_BOUNDS__ :
-            return AxesProperty.AXESBOUNDS;
-        case __GO_HIDDEN_COLOR__ :
-            return AxesProperty.HIDDENCOLOR;
-        case __GO_LINE_MODE__ :
-            return LinePropertyType.MODE;
-        case __GO_LINE_STYLE__ :
-            return LinePropertyType.LINESTYLE;
-        case __GO_LINE_THICKNESS__ :
-            return LinePropertyType.THICKNESS;
-        case __GO_LINE_COLOR__ :
-            return LinePropertyType.COLOR;
-        case __GO_MARK_MODE__ :
-            return MarkPropertyType.MODE;
-        case __GO_MARK_STYLE__ :
-            return MarkPropertyType.STYLE;
-        case __GO_MARK_SIZE_UNIT__ :
-            return MarkPropertyType.SIZEUNIT;
-        case __GO_MARK_SIZE__ :
-            return MarkPropertyType.SIZE;
-        case __GO_MARK_FOREGROUND__ :
-            return MarkPropertyType.FOREGROUND;
-        case __GO_MARK_BACKGROUND__ :
-            return MarkPropertyType.BACKGROUND;
-        case __GO_CLIP_STATE__ :
-            return ClippablePropertyType.CLIPSTATE;
-        case __GO_CLIP_BOX__ :
-            return ClippablePropertyType.CLIPBOX;
-        case __GO_CLIP_BOX_SET__ :
-            return ClippablePropertyType.CLIPBOXSET;
-        case __GO_ARC_DRAWING_METHOD__ :
-            return ArcProperty.ARCDRAWINGMETHOD;
-        default :
-            return super.getPropertyFromName(propertyName);
+            case __GO_X_AXIS_VISIBLE__ :
+                return AxesProperty.XAXISVISIBLE;
+            case __GO_X_AXIS_REVERSE__ :
+                return AxesProperty.XAXISREVERSE;
+            case __GO_X_AXIS_GRID_COLOR__ :
+                return AxesProperty.XAXISGRIDCOLOR;
+            case __GO_X_AXIS_LABEL__ :
+                return AxesProperty.XAXISLABEL;
+            case __GO_X_AXIS_LOCATION__ :
+                return AxesProperty.XAXISLOCATION;
+            case __GO_X_AXIS_LOG_FLAG__ :
+                return AxesProperty.XAXISLOGFLAG;
+            case __GO_X_AXIS_TICKS__ :
+                return AxesProperty.XAXISTICKS;
+            case __GO_X_AXIS_AUTO_TICKS__ :
+                return AxesProperty.XAXISAUTOTICKS;
+            case __GO_X_AXIS_NUMBER_TICKS__ :
+                return AxesProperty.XAXISNUMBERTICKS;
+            case __GO_X_AXIS_TICKS_LOCATIONS__:
+                return AxesProperty.XAXISTICKSLOCATIONS;
+            case __GO_X_AXIS_TICKS_LABELS__ :
+                return AxesProperty.XAXISTICKSLABELS;
+            case __GO_X_AXIS_SUBTICKS__ :
+                return AxesProperty.XAXISSUBTICKS;
+            case __GO_Y_AXIS_VISIBLE__ :
+                return AxesProperty.YAXISVISIBLE;
+            case __GO_Y_AXIS_REVERSE__ :
+                return AxesProperty.YAXISREVERSE;
+            case __GO_Y_AXIS_GRID_COLOR__ :
+                return AxesProperty.YAXISGRIDCOLOR;
+            case __GO_Y_AXIS_LABEL__ :
+                return AxesProperty.YAXISLABEL;
+            case __GO_Y_AXIS_LOCATION__ :
+                return AxesProperty.YAXISLOCATION;
+            case __GO_Y_AXIS_LOG_FLAG__ :
+                return AxesProperty.YAXISLOGFLAG;
+            case __GO_Y_AXIS_TICKS__ :
+                return AxesProperty.YAXISTICKS;
+            case __GO_Y_AXIS_AUTO_TICKS__ :
+                return AxesProperty.YAXISAUTOTICKS;
+            case __GO_Y_AXIS_NUMBER_TICKS__ :
+                return AxesProperty.YAXISNUMBERTICKS;
+            case __GO_Y_AXIS_TICKS_LOCATIONS__ :
+                return AxesProperty.YAXISTICKSLOCATIONS;
+            case __GO_Y_AXIS_TICKS_LABELS__ :
+                return AxesProperty.YAXISTICKSLABELS;
+            case __GO_Y_AXIS_SUBTICKS__ :
+                return AxesProperty.YAXISSUBTICKS;
+            case __GO_Z_AXIS_VISIBLE__ :
+                return AxesProperty.ZAXISVISIBLE;
+            case __GO_Z_AXIS_REVERSE__ :
+                return AxesProperty.ZAXISREVERSE;
+            case __GO_Z_AXIS_GRID_COLOR__ :
+                return AxesProperty.ZAXISGRIDCOLOR;
+            case __GO_Z_AXIS_LABEL__ :
+                return AxesProperty.ZAXISLABEL;
+            case __GO_Z_AXIS_LOCATION__ :
+                return AxesProperty.ZAXISLOCATION;
+            case __GO_Z_AXIS_LOG_FLAG__ :
+                return AxesProperty.ZAXISLOGFLAG;
+            case __GO_Z_AXIS_TICKS__ :
+                return AxesProperty.ZAXISTICKS;
+            case __GO_Z_AXIS_AUTO_TICKS__ :
+                return AxesProperty.ZAXISAUTOTICKS;
+            case __GO_Z_AXIS_NUMBER_TICKS__ :
+                return AxesProperty.ZAXISNUMBERTICKS;
+            case __GO_Z_AXIS_TICKS_LOCATIONS__ :
+                return AxesProperty.ZAXISTICKSLOCATIONS;
+            case __GO_Z_AXIS_TICKS_LABELS__ :
+                return AxesProperty.ZAXISTICKSLABELS;
+            case __GO_Z_AXIS_SUBTICKS__ :
+                return AxesProperty.ZAXISSUBTICKS;
+            case __GO_AUTO_SUBTICKS__ :
+                return AxesProperty.AUTOSUBTICKS;
+            case __GO_FONT_STYLE__ :
+                return AxesProperty.FONT_STYLE;
+            case __GO_FONT_SIZE__ :
+                return AxesProperty.FONT_SIZE;
+            case __GO_FONT_COLOR__ :
+                return AxesProperty.FONT_COLOR;
+            case __GO_FONT_FRACTIONAL__ :
+                return AxesProperty.FONT_FRACTIONAL;
+            case __GO_GRID_POSITION__ :
+                return AxesProperty.GRIDPOSITION;
+            case __GO_TITLE__ :
+                return AxesProperty.TITLE;
+            case __GO_AUTO_CLEAR__ :
+                return AxesProperty.AUTOCLEAR;
+            case __GO_FILLED__ :
+                return AxesProperty.FILLED;
+            case __GO_BACKGROUND__ :
+                return AxesProperty.BACKGROUND;
+            case __GO_VIEW__ :
+                return Camera.CameraProperty.VIEW;
+            case __GO_ISOVIEW__ :
+                return Camera.CameraProperty.ISOVIEW;
+            case __GO_CUBE_SCALING__ :
+                return Camera.CameraProperty.CUBESCALING;
+            case __GO_ROTATION_ANGLES__ :
+                return Camera.CameraProperty.ROTATIONANGLES;
+            case __GO_ROTATION_ANGLES_3D__ :
+                return Camera.CameraProperty.ROTATIONANGLES3D;
+            case __GO_BOX_TYPE__ :
+                return Box.BoxProperty.BOX;
+            case __GO_HIDDEN_AXIS_COLOR__ :
+                return Box.BoxProperty.HIDDENAXISCOLOR;
+            case __GO_TIGHT_LIMITS__ :
+                return Box.BoxProperty.TIGHTLIMITS;
+            case __GO_DATA_BOUNDS__ :
+                return Box.BoxProperty.DATABOUNDS;
+            case __GO_REAL_DATA_BOUNDS__ :
+                return Box.BoxProperty.REALDATABOUNDS;
+            case __GO_ZOOM_ENABLED__ :
+                return Box.BoxProperty.ZOOMENABLED;
+            case __GO_ZOOM_BOX__ :
+                return Box.BoxProperty.ZOOMBOX;
+            case __GO_AUTO_SCALE__ :
+                return Box.BoxProperty.AUTOSCALE;
+            case __GO_FIRST_PLOT__ :
+                return Box.BoxProperty.FIRSTPLOT;
+            case __GO_MARGINS__ :
+                return AxesProperty.MARGINS;
+            case __GO_AXES_BOUNDS__ :
+                return AxesProperty.AXESBOUNDS;
+            case __GO_HIDDEN_COLOR__ :
+                return AxesProperty.HIDDENCOLOR;
+            case __GO_LINE_MODE__ :
+                return LinePropertyType.MODE;
+            case __GO_LINE_STYLE__ :
+                return LinePropertyType.LINESTYLE;
+            case __GO_LINE_THICKNESS__ :
+                return LinePropertyType.THICKNESS;
+            case __GO_LINE_COLOR__ :
+                return LinePropertyType.COLOR;
+            case __GO_MARK_MODE__ :
+                return MarkPropertyType.MODE;
+            case __GO_MARK_STYLE__ :
+                return MarkPropertyType.STYLE;
+            case __GO_MARK_SIZE_UNIT__ :
+                return MarkPropertyType.SIZEUNIT;
+            case __GO_MARK_SIZE__ :
+                return MarkPropertyType.SIZE;
+            case __GO_MARK_FOREGROUND__ :
+                return MarkPropertyType.FOREGROUND;
+            case __GO_MARK_BACKGROUND__ :
+                return MarkPropertyType.BACKGROUND;
+            case __GO_CLIP_STATE__ :
+                return ClippablePropertyType.CLIPSTATE;
+            case __GO_CLIP_BOX__ :
+                return ClippablePropertyType.CLIPBOX;
+            case __GO_CLIP_BOX_SET__ :
+                return ClippablePropertyType.CLIPBOXSET;
+            case __GO_ARC_DRAWING_METHOD__ :
+                return ArcProperty.ARCDRAWINGMETHOD;
+            default :
+                return super.getPropertyFromName(propertyName);
         }
     }
 
@@ -2024,7 +2024,6 @@ public class Axes extends GraphicObject {
                     }
                 }
             } catch (ClassCastException ignored) {
-            } catch (NullPointerException ignored) {
             }
             return UpdateStatus.Success;
         } else {
index 6d58a1c..e60e3df 100644 (file)
@@ -208,6 +208,10 @@ int C2F(graphicsmodels) (void)
     // Create default Axes by Asking MVC a new one.
     paxesmdlUID = createGraphicObject(__GO_AXESMODEL__);
     setAxesModel(paxesmdlUID);
+
+    /* Sets the parent-child relationship between the default Figure and Axes */
+    setGraphicObjectRelationship(pfiguremdlUID, paxesmdlUID);
+
     /* Axes Model properties */
 
     result = InitAxesModel();
@@ -247,9 +251,6 @@ int C2F(graphicsmodels) (void)
     ppaxesmdl->FirstPlot = TRUE;
 #endif
 
-    /* Sets the parent-child relationship between the default Figure and Axes */
-    setGraphicObjectRelationship(pfiguremdlUID, paxesmdlUID);
-
     return 1;
 }