Axis properties get/set C functions. 33/1533/4
Manuel Juliachs [Tue, 3 Aug 2010 13:00:03 +0000 (15:00 +0200)]
Change-Id: I1bf05b98c2ddfc0f96533d238d62b60d3b244579

20 files changed:
scilab/modules/graphic_objects/includes/graphicObjectProperties.h
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/axis/Axis.java
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicObject/GraphicObjectProperties.java
scilab/modules/graphic_objects/src/scripts/propertiesMap.properties
scilab/modules/graphics/src/c/getHandleProperty/get_format_n_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_tics_color_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_tics_direction_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_tics_label_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_tics_segment_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_tics_style_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_xtics_coord_property.c
scilab/modules/graphics/src/c/getHandleProperty/get_ytics_coord_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_format_n_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_tics_color_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_tics_direction_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_tics_labels_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_tics_segment_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_tics_style_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_xtics_coord_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_yticks_coord_property.c

index 90b8a3a..173bc4f 100644 (file)
 #define __GO_BOX_TYPE__                    "BoxType"
 #define __GO_HIDDEN_AXIS_COLOR__           "HiddenAxisColor"
 #define __GO_TIGHT_LIMITS__                "TightLimits"
-#define __GO_DATA_BOUNDS__                     "DataBounds"
+#define __GO_DATA_BOUNDS__                 "DataBounds"
 #define __GO_REAL_DATA_BOUNDS__            "RealDataBounds"
-#define __GO_ZOOM_ENABLED__                    "ZoomEnabled"
+#define __GO_ZOOM_ENABLED__                "ZoomEnabled"
 #define __GO_ZOOM_BOX__                    "ZoomBox"
 #define __GO_AUTO_SCALE__                  "AutoScale"
 #define __GO_MARGINS__                     "Margins"
 #define __GO_MARK_BACKGROUND__             "MarkBackground"
 
 #define __GO_TICKS_DIRECTION__             "TicksDirection"
+#define __GO_X_NUMBER_TICKS__              "XNumberTicks"
+#define __GO_Y_NUMBER_TICKS__              "YNumberTicks"
 #define __GO_X_TICKS_COORDS__              "XTicksCoords"
 #define __GO_Y_TICKS_COORDS__              "YTicksCoords"
 #define __GO_TICKS_COLOR__                 "TicksColor"
 #define __GO_TICKS_SEGMENT__               "TicksSegment"
 #define __GO_TICKS_STYLE__                 "TicksStyle"
 #define __GO_SUBTICKS__                    "Subticks"
+#define __GO_NUMBER_TICKS_LABELS__         "NumberTicksLabels"
 #define __GO_TICKS_LABELS__                "TicksLabels"
 #define __GO_FORMATN__                     "Formatn"
 #define __GO_FONT__                        "Font"
 
 #define __GO_ARROWS__                      "Arrows"
 
+#define __GO_HIDDEN_COLOR__                "HiddenColor"
+
+
 #endif /* !__GRAPHIC_OBJECT_PROPERTIES_H__ */
index 22354f3..f7f96fd 100644 (file)
@@ -26,8 +26,8 @@ import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProp
  */
 public class Axis extends ClippableContouredObject {
        /** Axis properties */
-       private enum AxisProperty { TICKSDIRECTION, XTICKSCOORDS, YTICKSCOORDS, TICKSCOLOR, TICKSSEGMENT, TICKSSTYLE, SUBTICKS, TICKSLABELS,
-               FORMATN, FONT };
+       private enum AxisProperty { TICKSDIRECTION, XNUMBERTICKS, YNUMBERTICKS, XTICKSCOORDS, YTICKSCOORDS, TICKSCOLOR, TICKSSEGMENT, TICKSSTYLE,
+               SUBTICKS, NUMBERTICKSLABELS, TICKSLABELS, FORMATN, FONT };
                
        /** Default number of ticks */
        private static final int DEFAULT_NUMBER_OF_TICKS = 10;
@@ -91,7 +91,7 @@ public class Axis extends ClippableContouredObject {
                super();
                ticksDirection = TicksDirection.TOP;
                xTicksCoords = new double[DEFAULT_NUMBER_OF_TICKS];
-               yTicksCoords = null;
+               yTicksCoords = new double[1];
                ticksColor = 0;
                ticksSegment = false;
                ticksLabels = new ArrayList<String>(DEFAULT_NUMBER_OF_TICKS);
@@ -107,6 +107,10 @@ public class Axis extends ClippableContouredObject {
        public Object getPropertyFromName(String propertyName) {
                if (propertyName.equals(__GO_TICKS_DIRECTION__)) {
                        return AxisProperty.TICKSDIRECTION;
+               } else if (propertyName.equals(__GO_X_NUMBER_TICKS__)) {
+                       return AxisProperty.XNUMBERTICKS;
+               } else if (propertyName.equals(__GO_Y_NUMBER_TICKS__)) {
+                       return AxisProperty.YNUMBERTICKS;
                } else if (propertyName.equals(__GO_X_TICKS_COORDS__)) {
                        return AxisProperty.XTICKSCOORDS;
                } else if (propertyName.equals(__GO_Y_TICKS_COORDS__)) {
@@ -119,6 +123,8 @@ public class Axis extends ClippableContouredObject {
                        return AxisProperty.TICKSSTYLE;
                } else if (propertyName.equals(__GO_SUBTICKS__)) {
                        return AxisProperty.SUBTICKS;
+               } else if (propertyName.equals(__GO_NUMBER_TICKS_LABELS__)) {
+                       return AxisProperty.NUMBERTICKSLABELS;
                } else if (propertyName.equals(__GO_TICKS_LABELS__)) {
                        return AxisProperty.TICKSLABELS;
                } else if (propertyName.equals(__GO_FORMATN__)) {
@@ -146,6 +152,10 @@ public class Axis extends ClippableContouredObject {
        public Object getProperty(Object property) {
                if (property == AxisProperty.TICKSDIRECTION) {
                        return getTicksDirection();
+               } else if (property == AxisProperty.XNUMBERTICKS) {
+                       return getXNumberTicks();
+               } else if (property == AxisProperty.YNUMBERTICKS) {
+                       return getYNumberTicks();
                } else if (property == AxisProperty.XTICKSCOORDS) {
                        return getXTicksCoords();
                } else if (property == AxisProperty.YTICKSCOORDS) {
@@ -158,6 +168,8 @@ public class Axis extends ClippableContouredObject {
                        return getTicksStyle();
                } else if (property == AxisProperty.SUBTICKS) {
                        return getSubticks();
+               } else if (property == AxisProperty.NUMBERTICKSLABELS) {
+                       return getNumberTicksLabels();
                } else if (property == AxisProperty.TICKSLABELS) {
                        return getTicksLabels();
                } else if (property == AxisProperty.FORMATN) {
@@ -346,6 +358,13 @@ public class Axis extends ClippableContouredObject {
        }
 
        /**
+        * @return the number of ticks labels
+        */
+       public Integer getNumberTicksLabels() {
+               return ticksLabels.size();
+       }
+
+       /**
         * @return the ticksLabels
         */
        public String[] getTicksLabels() {
@@ -436,6 +455,20 @@ public class Axis extends ClippableContouredObject {
        }
 
        /**
+        * @return the number of X ticks
+        */
+       public Integer getXNumberTicks() {
+               return xTicksCoords.length;
+       }
+
+       /**
+        * @return the number of X ticks
+        */
+       public Integer getYNumberTicks() {
+               return yTicksCoords.length;
+       }
+
+       /**
         * @return the xTicksCoords
         */
        public Double[] getXTicksCoords() {
index 6ddb4c2..15f3ec4 100644 (file)
@@ -132,9 +132,9 @@ public static final String __GO_ROTATION_ANGLES__ =        "RotationAngles";
 public static final String __GO_BOX_TYPE__ =               "BoxType";
 public static final String __GO_HIDDEN_AXIS_COLOR__ =      "HiddenAxisColor";
 public static final String __GO_TIGHT_LIMITS__ =           "TightLimits";
-public static final String __GO_DATA_BOUNDS__ =                "DataBounds";
+public static final String __GO_DATA_BOUNDS__ =            "DataBounds";
 public static final String __GO_REAL_DATA_BOUNDS__ =       "RealDataBounds";
-public static final String __GO_ZOOM_ENABLED__ =               "ZoomEnabled";
+public static final String __GO_ZOOM_ENABLED__ =           "ZoomEnabled";
 public static final String __GO_ZOOM_BOX__ =               "ZoomBox";
 public static final String __GO_AUTO_SCALE__ =             "AutoScale";
 public static final String __GO_MARGINS__ =                "Margins";
@@ -160,12 +160,15 @@ public static final String __GO_MARK_FOREGROUND__ =        "MarkForeground";
 public static final String __GO_MARK_BACKGROUND__ =        "MarkBackground";
 
 public static final String __GO_TICKS_DIRECTION__ =        "TicksDirection";
+public static final String __GO_X_NUMBER_TICKS__ =         "XNumberTicks";
+public static final String __GO_Y_NUMBER_TICKS__ =         "YNumberTicks";
 public static final String __GO_X_TICKS_COORDS__ =         "XTicksCoords";
 public static final String __GO_Y_TICKS_COORDS__ =         "YTicksCoords";
 public static final String __GO_TICKS_COLOR__ =            "TicksColor";
 public static final String __GO_TICKS_SEGMENT__ =          "TicksSegment";
 public static final String __GO_TICKS_STYLE__ =            "TicksStyle";
 public static final String __GO_SUBTICKS__ =               "Subticks";
+public static final String __GO_NUMBER_TICKS_LABELS__ =    "NumberTicksLabels";
 public static final String __GO_TICKS_LABELS__ =           "TicksLabels";
 public static final String __GO_FORMATN__ =                "Formatn";
 public static final String __GO_FONT__ =                   "Font";
@@ -218,4 +221,7 @@ public static final String __GO_COLORED__ =                "Colored";
 
 public static final String __GO_ARROWS__ =                 "Arrows";
 
+public static final String __GO_HIDDEN_COLOR__ =           "HiddenColor";
+
+
 }
index 8dda223..9e5d5bb 100644 (file)
 @DECLARE@ __GO_BOX_TYPE__ @EQUAL@               "BoxType" @END@
 @DECLARE@ __GO_HIDDEN_AXIS_COLOR__ @EQUAL@      "HiddenAxisColor" @END@
 @DECLARE@ __GO_TIGHT_LIMITS__ @EQUAL@           "TightLimits" @END@
-@DECLARE@ __GO_DATA_BOUNDS__ @EQUAL@                   "DataBounds" @END@
+@DECLARE@ __GO_DATA_BOUNDS__ @EQUAL@            "DataBounds" @END@
 @DECLARE@ __GO_REAL_DATA_BOUNDS__ @EQUAL@       "RealDataBounds" @END@
-@DECLARE@ __GO_ZOOM_ENABLED__ @EQUAL@               "ZoomEnabled" @END@
+@DECLARE@ __GO_ZOOM_ENABLED__ @EQUAL@           "ZoomEnabled" @END@
 @DECLARE@ __GO_ZOOM_BOX__ @EQUAL@               "ZoomBox" @END@
 @DECLARE@ __GO_AUTO_SCALE__ @EQUAL@             "AutoScale" @END@
 @DECLARE@ __GO_MARGINS__ @EQUAL@                "Margins" @END@
 @DECLARE@ __GO_MARK_BACKGROUND__ @EQUAL@        "MarkBackground" @END@
 
 @DECLARE@ __GO_TICKS_DIRECTION__ @EQUAL@        "TicksDirection" @END@
+@DECLARE@ __GO_X_NUMBER_TICKS__ @EQUAL@         "XNumberTicks" @END@
+@DECLARE@ __GO_Y_NUMBER_TICKS__ @EQUAL@         "YNumberTicks" @END@
 @DECLARE@ __GO_X_TICKS_COORDS__ @EQUAL@         "XTicksCoords" @END@
 @DECLARE@ __GO_Y_TICKS_COORDS__ @EQUAL@         "YTicksCoords" @END@
 @DECLARE@ __GO_TICKS_COLOR__ @EQUAL@            "TicksColor" @END@
 @DECLARE@ __GO_TICKS_SEGMENT__ @EQUAL@          "TicksSegment" @END@
 @DECLARE@ __GO_TICKS_STYLE__ @EQUAL@            "TicksStyle" @END@
 @DECLARE@ __GO_SUBTICKS__ @EQUAL@               "Subticks" @END@
+@DECLARE@ __GO_NUMBER_TICKS_LABELS__ @EQUAL@    "NumberTicksLabels" @END@
 @DECLARE@ __GO_TICKS_LABELS__ @EQUAL@           "TicksLabels" @END@
 @DECLARE@ __GO_FORMATN__ @EQUAL@                "Formatn" @END@
 @DECLARE@ __GO_FONT__ @EQUAL@                   "Font" @END@
 @DECLARE@ __GO_COLORED__ @EQUAL@                "Colored" @END@
 
 @DECLARE@ __GO_ARROWS__ @EQUAL@                 "Arrows" @END@
+
+@DECLARE@ __GO_HIDDEN_COLOR__ @EQUAL@           "HiddenColor" @END@
+
index c151eba..503161d 100644 (file)
@@ -3,6 +3,7 @@
  * Copyright (C) 2004-2006 - INRIA - Fabrice Leray
  * Copyright (C) 2006 - INRIA - Allan Cornet
  * Copyright (C) 2006 - INRIA - Jean-Baptiste Silvy
+ * Copyright (C) 2010 - DIGITEO - Manuel Juliachs
  * 
  * This file must be used under the terms of the CeCILL.
  * This source file is licensed as described in the file COPYING, which
 #include "Scierror.h"
 #include "localization.h"
 
+#include "getGraphicObjectProperty.h"
+#include "graphicObjectProperties.h"
+
 /*------------------------------------------------------------------------*/
 int get_format_n_property( sciPointObj * pobj )
 {
-  if ( sciGetEntityType (pobj) != SCI_AXES )
-  {
-    Scierror(999, _("'%s' property does not exist for this handle.\n"),"format_n");
-    return -1;
-  }
-  if(pAXES_FEATURE (pobj)->format == NULL)
-    return sciReturnString("");
-  
-  return sciReturnString( pAXES_FEATURE (pobj)->format ) ;
+    char* formatn;
+
+#if 0
+    if ( sciGetEntityType (pobj) != SCI_AXES )
+    {
+        Scierror(999, _("'%s' property does not exist for this handle.\n"),"format_n");
+        return -1;
+    }
+#endif
+
+    formatn = (char*) getGraphicObjectProperty(pobj->UID, __GO_FORMATN__, jni_string);
+
+    if (formatn == NULL)
+    {
+        Scierror(999, _("'%s' property does not exist for this handle.\n"),"format_n");
+        return -1;
+    } 
+
+    return sciReturnString(formatn);
 }
 /*------------------------------------------------------------------------*/
index ded1235..7549624 100644 (file)
@@ -3,6 +3,7 @@
  * Copyright (C) 2004-2006 - INRIA - Fabrice Leray
  * Copyright (C) 2006 - INRIA - Allan Cornet
  * Copyright (C) 2006 - INRIA - Jean-Baptiste Silvy
+ * Copyright (C) 2010 - DIGITEO - Manuel Juliachs
  * 
  * This file must be used under the terms of the CeCILL.
  * This source file is licensed as described in the file COPYING, which
 #include "Scierror.h"
 #include "localization.h"
 
+#include "getGraphicObjectProperty.h"
+#include "graphicObjectProperties.h"
+
 /*------------------------------------------------------------------------*/
 int get_tics_color_property( sciPointObj * pobj )
 {
-  if (sciGetEntityType (pobj) == SCI_AXES)
-  {
+    int* ticksColor;
+
+    ticksColor = (int*) getGraphicObjectProperty(pobj->UID, __GO_TICKS_COLOR__, jni_int);
+
+    if (ticksColor == NULL)
+    {
+        Scierror(999, _("'%s' property does not exist for this handle.\n"),"tics_color");
+        return -1;
+    }
+
+    return sciReturnDouble(*ticksColor);
+
+/* Deactivated for now since it involves color range checks, to be implemented. */
+#if 0
     return sciReturnDouble( sciGetForegroundToDisplay(pobj) ) ;
-  }
-  else if (sciGetEntityType (pobj) == SCI_SUBWIN)
-  {
-    Scierror(999, _("Warning: %s use is deprecated and no more taken into account, use %s property to edit Axes color.\n"),"'tics_color'","'foreground'");
-    return sciReturnDouble( pSUBWIN_FEATURE(pobj)->axes.ticscolor ) ;
-  }
-  else
-  {
-    Scierror(999, _("'%s' property does not exist for this handle.\n"),"tics_color");
-    return -1;
-  }
+#endif
+
+
+    /* To be implemented using the MVC framework */
+#if 0
+    if (sciGetEntityType (pobj) == SCI_SUBWIN)
+    {
+        Scierror(999, _("Warning: %s use is deprecated and no more taken into account, use %s property to edit Axes color.\n"),"'tics_color'","'foreground'");
+        return sciReturnDouble( pSUBWIN_FEATURE(pobj)->axes.ticscolor );
+    }
+#endif
 
 }
 /*------------------------------------------------------------------------*/
index 67a765f..351699e 100644 (file)
@@ -3,6 +3,7 @@
  * Copyright (C) 2004-2006 - INRIA - Fabrice Leray
  * Copyright (C) 2006 - INRIA - Allan Cornet
  * Copyright (C) 2006 - INRIA - Jean-Baptiste Silvy
+ * Copyright (C) 2010 - DIGITEO - Manuel Juliachs
  * 
  * This file must be used under the terms of the CeCILL.
  * This source file is licensed as described in the file COPYING, which
 #include "Scierror.h"
 #include "localization.h"
 
+#include "getGraphicObjectProperty.h"
+#include "graphicObjectProperties.h"
+
 /*------------------------------------------------------------------------*/
 int get_tics_direction_property( sciPointObj * pobj )
 {
-  if ( sciGetEntityType( pobj ) != SCI_AXES )
-  {
-    Scierror(999, _("'%s' property does not exist for this handle.\n"), "tics_direction") ;
-    return -1 ;
-  }
-
-  switch ( pAXES_FEATURE (pobj)->dir )
-  {
-  case 'u': 
-    return sciReturnString( "top" ) ;
-    break;
-  case 'd': 
-    return sciReturnString( "bottom" ) ;
-    break;
-  case 'r': 
-    return sciReturnString( "right" ) ;
-    break;
-  case 'l': 
-    return sciReturnString( "left" ) ;
-    break;
-  default : 
-    Scierror(999, _("Wrong value for '%s' property.\n"),"tics_direction");
-    break;
-  }
-  return -1;
+    int* ticksDirection;
+
+#if 0
+    if ( sciGetEntityType( pobj ) != SCI_AXES )
+    {
+        Scierror(999, _("'%s' property does not exist for this handle.\n"), "tics_direction");
+        return -1;
+    }
+#endif
+
+    ticksDirection = (int*) getGraphicObjectProperty(pobj->UID, __GO_TICKS_DIRECTION__, jni_int);
+
+    if (ticksDirection == NULL)
+    {
+        Scierror(999, _("'%s' property does not exist for this handle.\n"), "tics_direction");
+        return -1;
+    }
+
+    if (*ticksDirection == 0)
+    {
+        return sciReturnString("top");
+    }
+    else if (*ticksDirection == 1)
+    {
+        return sciReturnString("bottom");
+    }
+    else if (*ticksDirection == 2)
+    {
+        return sciReturnString("left");
+    }
+    else if (*ticksDirection == 3)
+    {
+        return sciReturnString("right");
+    }
+    else
+    {
+        Scierror(999, _("Wrong value for '%s' property.\n"),"tics_direction");
+    }
+
+    return -1;
 
 }
 /*------------------------------------------------------------------------*/
index f18079c..366501b 100644 (file)
 #include "localization.h"
 #include "Format.h"
 #include "MALLOC.h"
+
+#include "getGraphicObjectProperty.h"
+#include "graphicObjectProperties.h"
+
 /*------------------------------------------------------------------------*/
 int get_tics_labels_property( sciPointObj * pobj )
 {
+    char** labels;
+    int* numberTicksLabels;
 
-  if ( sciGetEntityType (pobj) != SCI_AXES )
-  {
-    Scierror(999, _("'%s' property does not exist for this handle.\n"),"tics_labels") ;
-    return -1 ;
-  }
+#if 0
+    if ( sciGetEntityType (pobj) != SCI_AXES )
+    {
+        Scierror(999, _("'%s' property does not exist for this handle.\n"),"tics_labels");
+        return -1;
+    }
+#endif
 
-  if ( pAXES_FEATURE(pobj)->str == NULL )
-  {
-    int status = -1 ;
+    /*
+     * Used if no user ticks have been specified. Computes the default ticks labels, according
+     * to the axis interval. Deactivated for now and to be implemented using the MVC framework.
+     */
+#if 0
+    if ( pAXES_FEATURE(pobj)->str == NULL )
+    {
+        int status = -1;
 
-    /* tics_labels is allocatred here */
-    StringMatrix * tics_labels = computeDefaultTicsLabels( pobj ) ; /* actually it is vector */
+        /* tics_labels is allocated here */
+        StringMatrix * tics_labels = computeDefaultTicsLabels( pobj ) ; /* actually it is vector */
 
-    if ( tics_labels == NULL )
-    {
-      Scierror(999, _("%s: No more memory.\n"), "get_tics_labels_property") ;
-      return -1 ;
+        if ( tics_labels == NULL )
+        {
+            Scierror(999, _("%s: No more memory.\n"), "get_tics_labels_property");
+            return -1;
+        }
+
+        status = sciReturnRowStringVector( getStrMatData( tics_labels ), pAXES_FEATURE (pobj)->nb_tics_labels );
+
+        deleteMatrix( tics_labels );
+
+        return status;
     }
+    else
+#endif
+    {
+        numberTicksLabels = (int*) getGraphicObjectProperty(pobj->UID, __GO_NUMBER_TICKS_LABELS__, jni_int);
 
-    status = sciReturnRowStringVector( getStrMatData( tics_labels ), pAXES_FEATURE (pobj)->nb_tics_labels ) ;
+        labels = (char**) getGraphicObjectProperty(pobj->UID, __GO_TICKS_LABELS__, jni_string_vector);
 
-    deleteMatrix( tics_labels ) ;
+        if (numberTicksLabels == NULL || labels == NULL)
+        {
+            Scierror(999, _("'%s' property does not exist for this handle.\n"),"tics_labels");
+            return -1;
+        }
 
-    return status ;
-  }
-  else
-  {
-    /* str has been previously set once */
-    return sciReturnRowStringVector( pAXES_FEATURE(pobj)->str, pAXES_FEATURE (pobj)->nb_tics_labels ) ;
-  }
+        /* User-specified ticks labels */
+        return sciReturnRowStringVector( labels, *numberTicksLabels);
+    }
 }
 /*------------------------------------------------------------------------*/
index ef5a431..56c2df1 100644 (file)
@@ -3,6 +3,7 @@
  * Copyright (C) 2004-2006 - INRIA - Fabrice Leray
  * Copyright (C) 2006 - INRIA - Allan Cornet
  * Copyright (C) 2006 - INRIA - Jean-Baptiste Silvy
+ * Copyright (C) 2010 - DIGITEO - Manuel Juliachs
  * 
  * This file must be used under the terms of the CeCILL.
  * This source file is licensed as described in the file COPYING, which
 #include "Scierror.h"
 #include "localization.h"
 
+#include "getGraphicObjectProperty.h"
+#include "graphicObjectProperties.h"
+
 /*------------------------------------------------------------------------*/
 int get_tics_segment_property( sciPointObj * pobj )
 {
+    int* ticksSegment;
+
+#if 0
+    if ( sciGetEntityType( pobj ) != SCI_AXES )
+    {
+        Scierror(999, _("'%s' property does not exist for this handle.\n"), "tics_segment");
+        return -1;
+    }
+#endif
+
+    ticksSegment = (int*) getGraphicObjectProperty(pobj->UID, __GO_TICKS_SEGMENT__, jni_bool);
+
+    if (ticksSegment == NULL)
+    {
+        Scierror(999, _("'%s' property does not exist for this handle.\n"), "tics_segment");
+        return -1;
+    }
 
-  if ( sciGetEntityType( pobj ) != SCI_AXES )
-  {
-    Scierror(999, _("'%s' property does not exist for this handle.\n"), "tics_segment") ;
-    return -1 ;
-  }
-
-  if ( pAXES_FEATURE(pobj)->seg == 1 )
-  {
-    return sciReturnString( "on" ) ;
-  }
-  else
-  {    
-    return sciReturnString( "off" ) ;
-  }
+    if (*ticksSegment)
+    {
+        return sciReturnString( "on" );
+    }
+    else
+    {
+        return sciReturnString( "off" );
+    }
 
 }
 /*------------------------------------------------------------------------*/
index e5545a1..3cb05df 100644 (file)
@@ -3,6 +3,7 @@
  * Copyright (C) 2004-2006 - INRIA - Fabrice Leray
  * Copyright (C) 2006 - INRIA - Allan Cornet
  * Copyright (C) 2006 - INRIA - Jean-Baptiste Silvy
+ * Copyright (C) 2010 - DIGITEO - Manuel Juliachs
  * 
  * This file must be used under the terms of the CeCILL.
  * This source file is licensed as described in the file COPYING, which
 #include "Scierror.h"
 #include "localization.h"
 
+#include "getGraphicObjectProperty.h"
+#include "graphicObjectProperties.h"
+
 /*------------------------------------------------------------------------*/
 int get_tics_style_property( sciPointObj * pobj )
 {
+    int* tmpTicksStyle;
+    char ticksStyle;
+
+#if 0
+    if ( sciGetEntityType( pobj ) != SCI_AXES )
+    {
+        Scierror(999, _("'%s' property does not exist for this handle.\n"), "tics_style");
+        return -1;
+    }
+#endif
+
+    tmpTicksStyle = (int*) getGraphicObjectProperty(pobj->UID, __GO_TICKS_STYLE__, jni_int);
+
+    if (tmpTicksStyle == NULL)
+    {
+        Scierror(999, _("Wrong value for '%s' property.\n"),"tics_direction");
+        return -1;
+    }
 
-       if ( sciGetEntityType( pobj ) != SCI_AXES )
-  {
-    Scierror(999, _("'%s' property does not exist for this handle.\n"), "tics_style") ;
-    return -1 ;
-  }
+    if (*tmpTicksStyle == 0)
+    {
+        ticksStyle = 'v';
+    }
+    else if (*tmpTicksStyle == 1)
+    {
+        ticksStyle = 'r';
+    }
+    else if (*tmpTicksStyle == 2)
+    {
+        ticksStyle = 'i';
+    }
+    else
+    {
+        Scierror(999, _("Wrong value for '%s' property.\n"),"tics_style");
+        return -1;
+    }
 
-  return sciReturnChar( pAXES_FEATURE (pobj)->tics ) ;
+    return sciReturnChar(ticksStyle);
 
 }
 /*------------------------------------------------------------------------*/
index 6c78299..2629c50 100644 (file)
 #include "Scierror.h"
 #include "localization.h"
 
+#include "getGraphicObjectProperty.h"
+#include "graphicObjectProperties.h"
+
 /*------------------------------------------------------------------------*/
 int get_xtics_coord_property( sciPointObj * pobj )
 {
-  if ( sciGetEntityType(pobj) != SCI_AXES )
-  {
-    Scierror(999, _("'%s' property does not exist for this handle.\n"),"xtics_coord") ;
-    return -1 ;
-  }
-  return sciReturnRowVector( pAXES_FEATURE(pobj)->vx, pAXES_FEATURE(pobj)->nx ) ;
+    int* xNumberTicks;
+    double* xTicksCoords;
+
+#if 0
+    if ( sciGetEntityType(pobj) != SCI_AXES )
+    {
+        Scierror(999, _("'%s' property does not exist for this handle.\n"),"xtics_coord");
+        return -1;
+    }
+#endif
+
+    xTicksCoords = (double*) getGraphicObjectProperty(pobj->UID, __GO_X_TICKS_COORDS__, jni_double_vector);
+
+    if (xTicksCoords == NULL)
+    {
+        Scierror(999, _("'%s' property does not exist for this handle.\n"),"xtics_coord");
+        return -1;
+    }
+
+    xNumberTicks = (int*) getGraphicObjectProperty(pobj->UID, __GO_X_NUMBER_TICKS__, jni_int);
+
+    return sciReturnRowVector(xTicksCoords, *xNumberTicks);
 }
 /*------------------------------------------------------------------------*/
index 19871d3..997b263 100644 (file)
 #include "Scierror.h"
 #include "localization.h"
 
+#include "getGraphicObjectProperty.h"
+#include "graphicObjectProperties.h"
+
 /*------------------------------------------------------------------------*/
 int get_ytics_coord_property( sciPointObj * pobj )
 {
-  if ( sciGetEntityType(pobj) != SCI_AXES )
-  {
-    Scierror(999, _("'%s' property does not exist for this handle.\n"),"ytics_coord") ;
-    return -1 ;
-  }
-  return sciReturnRowVector( pAXES_FEATURE(pobj)->vy, pAXES_FEATURE(pobj)->ny ) ;
+    int* yNumberTicks;
+    double* yTicksCoords;
+
+#if 0
+    if ( sciGetEntityType(pobj) != SCI_AXES )
+    {
+        Scierror(999, _("'%s' property does not exist for this handle.\n"),"ytics_coord");
+        return -1;
+    }
+#endif
+
+    yTicksCoords = (double*) getGraphicObjectProperty(pobj->UID, __GO_Y_TICKS_COORDS__, jni_double_vector);
+
+    if (yTicksCoords == NULL)
+    {
+        Scierror(999, _("'%s' property does not exist for this handle.\n"),"ytics_coord");
+        return -1;
+    }
+
+    yNumberTicks = (int*) getGraphicObjectProperty(pobj->UID, __GO_Y_NUMBER_TICKS__, jni_int);
+
+    return sciReturnRowVector(yTicksCoords, *yNumberTicks);
 }
 /*------------------------------------------------------------------------*/
index dcbb1ac..638c57e 100644 (file)
@@ -4,6 +4,7 @@
  * Copyright (C) 2006 - INRIA - Allan Cornet
  * Copyright (C) 2006 - INRIA - Jean-Baptiste Silvy
  * Copyright (C) 2009 - DIGITEO - Pierre Lando
+ * Copyright (C) 2010 - DIGITEO - Manuel Juliachs
  * 
  * This file must be used under the terms of the CeCILL.
  * This source file is licensed as described in the file COPYING, which
 #include "MALLOC.h"
 #include "string.h"
 
+#include "setGraphicObjectProperty.h"
+#include "graphicObjectProperties.h"
 
 /*------------------------------------------------------------------------*/
 int set_format_n_property( sciPointObj * pobj, size_t stackPointer, int valueType, int nbRow, int nbCol )
 {
-  char* format;
-  int formatLength;
-  if ( !isParameterStringMatrix( valueType ) )
-  {
-    Scierror(999, _("Wrong type for '%s' property: String expected.\n"), "format_n");
-    return SET_PROPERTY_ERROR ;
-  }
+    BOOL status;
+    char* format;
+    if ( !isParameterStringMatrix( valueType ) )
+    {
+        Scierror(999, _("Wrong type for '%s' property: String expected.\n"), "format_n");
+        return SET_PROPERTY_ERROR;
+    }
 
-  if ( sciGetEntityType(pobj) != SCI_AXES )
-  {
-    Scierror(999, _("'%s' property does not exist for this handle.\n"),"format_n") ;
-    return SET_PROPERTY_ERROR ;
-  }
+#if 0
+    if ( sciGetEntityType(pobj) != SCI_AXES )
+    {
+        Scierror(999, _("'%s' property does not exist for this handle.\n"),"format_n");
+        return SET_PROPERTY_ERROR;
+    }
+#endif
 
-  if(pAXES_FEATURE(pobj)->format != NULL)
-    FREE(pAXES_FEATURE(pobj)->format);
+    format = getStringFromStack(stackPointer);
 
-  format = getStringFromStack(stackPointer);
-  formatLength = (int)strlen(format);
+    status = setGraphicObjectProperty(pobj->UID, __GO_FORMATN__, format, jni_string, 1);
 
-  if(formatLength <= 1)
-  {
-    pAXES_FEATURE(pobj)->format = NULL;
-    return SET_PROPERTY_SUCCEED;
-  }
+    if (status == TRUE)
+    {
+        return SET_PROPERTY_SUCCEED;
+    }
+    else
+    {
+        Scierror(999, _("'%s' property does not exist for this handle.\n"),"format_n");
+        return SET_PROPERTY_ERROR;
+    }
 
-  pAXES_FEATURE(pobj)->format = MALLOC((formatLength + 1) * sizeof(char));
-  if(pAXES_FEATURE(pobj)->format != NULL)
-  {
-    strcpy(pAXES_FEATURE(pobj)->format, format);
-    return SET_PROPERTY_SUCCEED ;
-  }
-  else
-  {
-    Scierror(999, _("%s: No more memory.\n"),"set_format_n_property");
-    return SET_PROPERTY_ERROR ;
-  }
-  return SET_PROPERTY_SUCCEED ;
 }
 /*------------------------------------------------------------------------*/
index 4aa2999..bc1e779 100644 (file)
@@ -3,6 +3,7 @@
  * Copyright (C) 2004-2006 - INRIA - Fabrice Leray
  * Copyright (C) 2006 - INRIA - Allan Cornet
  * Copyright (C) 2006 - INRIA - Jean-Baptiste Silvy
+ * Copyright (C) 2010 - DIGITEO - Manuel Juliachs
  * 
  * This file must be used under the terms of the CeCILL.
  * This source file is licensed as described in the file COPYING, which
 #include "sciprint.h"
 #include "localization.h"
 
+#include "setGraphicObjectProperty.h"
+#include "graphicObjectProperties.h"
+
 /*------------------------------------------------------------------------*/
 int set_tics_color_property( sciPointObj * pobj, size_t stackPointer, int valueType, int nbRow, int nbCol )
 {
+    BOOL status;
+    int ticksColor;
+
+    if ( !isParameterDoubleMatrix( valueType ) )
+    {
+        Scierror(999, _("Wrong type for '%s' property: Integer expected.\n"), "tics_color");
+        return SET_PROPERTY_ERROR;
+    }
 
-  if ( !isParameterDoubleMatrix( valueType ) )
-  {
-    Scierror(999, _("Wrong type for '%s' property: Integer expected.\n"), "tics_color");
-    return SET_PROPERTY_ERROR ;
-  }
+    ticksColor = (int) getDoubleFromStack(stackPointer);
 
-  if ( sciGetEntityType(pobj) == SCI_AXES )
-  {
+    status = setGraphicObjectProperty(pobj->UID, __GO_TICKS_COLOR__, &ticksColor, jni_int, 1);
+
+/* Deactivated for now since it involves color range checks, to be implemented. */
+#if 0
     sciSetForeground(pobj, (int) getDoubleFromStack( stackPointer ));
-  }
-  else if ( sciGetEntityType(pobj) == SCI_SUBWIN )
-  {
-    sciprint("Warning: tics_color use is deprecated and no more taken into account, use foreground property to edit Axes color\n");
-    pSUBWIN_FEATURE (pobj)->axes.ticscolor = (int)getDoubleFromStack( stackPointer ) ;
-  }
-  else
-  {
-    Scierror(999, _("'%s' property does not exist for this handle.\n"),"tics_color") ;
-    return SET_PROPERTY_SUCCEED ;
-  }
-  return SET_PROPERTY_SUCCEED ;
+#endif
+
+  /* To be implemented using the MVC framework */
+#if 0
+    if ( sciGetEntityType(pobj) == SCI_SUBWIN )
+    {
+        sciprint("Warning: tics_color use is deprecated and no more taken into account, use foreground property to edit Axes color\n");
+
+        /* To be implemented using the MVC framework */
+        pSUBWIN_FEATURE (pobj)->axes.ticscolor = (int)getDoubleFromStack( stackPointer ) ;
+    }
+#endif
+
+    if (status == TRUE)
+    {
+        return SET_PROPERTY_SUCCEED;
+    }
+    else
+    {
+        Scierror(999, _("'%s' property does not exist for this handle.\n"),"tics_color");
+        return SET_PROPERTY_ERROR;
+    }
+
 }
 /*------------------------------------------------------------------------*/
index a6d03cc..4feeded 100644 (file)
@@ -3,6 +3,7 @@
  * Copyright (C) 2004-2006 - INRIA - Fabrice Leray
  * Copyright (C) 2006 - INRIA - Allan Cornet
  * Copyright (C) 2006 - INRIA - Jean-Baptiste Silvy
+ * Copyright (C) 2010 - DIGITEO - Manuel Juliachs
  * 
  * This file must be used under the terms of the CeCILL.
  * This source file is licensed as described in the file COPYING, which
 #include "Scierror.h"
 #include "localization.h"
 
+#include "setGraphicObjectProperty.h"
+#include "getGraphicObjectProperty.h"
+#include "graphicObjectProperties.h"
+
 /*------------------------------------------------------------------------*/
 int set_tics_direction_property( sciPointObj * pobj, size_t stackPointer, int valueType, int nbRow, int nbCol )
 {
+    BOOL status;
+    int ticksDirection;
+    int *tmp;
+    int yNumberTicks;
 
-  if ( !isParameterStringMatrix( valueType ) )
-  {
-    Scierror(999, _("Wrong type for '%s' property: String expected.\n"), "tics_direction");
-    return SET_PROPERTY_ERROR ;
-  }
-
-  if ( sciGetEntityType(pobj) != SCI_AXES )
-  {
-    Scierror(999, _("'%s' property does not exist for this handle.\n"),"tics_direction");
-    return SET_PROPERTY_ERROR ;
-  }
+    if ( !isParameterStringMatrix( valueType ) )
+    {
+        Scierror(999, _("Wrong type for '%s' property: String expected.\n"), "tics_direction");
+        return SET_PROPERTY_ERROR;
+    }
 
-  if ( pAXES_FEATURE (pobj)->ny == 1 )
-  { 
-    if( isStringParamEqual( stackPointer, "top" ) )
+#if 0
+    if ( sciGetEntityType(pobj) != SCI_AXES )
     {
-      pAXES_FEATURE (pobj)->dir = 'u' ;
+        Scierror(999, _("'%s' property does not exist for this handle.\n"),"tics_direction");
+        return SET_PROPERTY_ERROR;
     }
-    else if ( isStringParamEqual( stackPointer, "bottom" ) )
+#endif
+
+    tmp = (int*) getGraphicObjectProperty(pobj->UID, __GO_Y_NUMBER_TICKS__, jni_int);
+
+    if (tmp == NULL)
     {
-      pAXES_FEATURE (pobj)->dir = 'd' ;
+        Scierror(999, _("'%s' property does not exist for this handle.\n"),"tics_direction");
+        return SET_PROPERTY_ERROR;
     }
-    else
+
+    yNumberTicks = *tmp;
+
+    if (yNumberTicks == 1)
     {
-      Scierror(999, _("Wrong value for '%s' property: %s or %s expected.\n"), "tics_direction", "'top'", "'bottom'");
-      return SET_PROPERTY_ERROR ;
+        if( isStringParamEqual( stackPointer, "top" ) )
+        {
+            ticksDirection = 0;
+        }
+        else if ( isStringParamEqual( stackPointer, "bottom" ) )
+        {
+            ticksDirection = 1;
+        }
+        else
+        {
+            Scierror(999, _("Wrong value for '%s' property: %s or %s expected.\n"), "tics_direction", "'top'", "'bottom'");
+            return SET_PROPERTY_ERROR;
+        }
     }
-    return SET_PROPERTY_SUCCEED ;
-  } 
-  else
-  {
-    if( isStringParamEqual( stackPointer, "right" ) )
+    else
     {
-      pAXES_FEATURE (pobj)->dir = 'r' ;
+        if( isStringParamEqual( stackPointer, "left" ) )
+        {
+            ticksDirection = 2;
+        }
+        else if ( isStringParamEqual( stackPointer, "right" ) )
+        {
+            ticksDirection = 3;
+        }
+        else
+        {
+            Scierror(999, _("Wrong value for '%s' property: %s or %s expected.\n"), "tics_direction", "'left'", "'right'");
+            return SET_PROPERTY_ERROR;
+        }
     }
-    else if ( isStringParamEqual( stackPointer, "left" ) )
+
+    status = setGraphicObjectProperty(pobj->UID, __GO_TICKS_DIRECTION__, &ticksDirection, jni_int, 1);
+
+    if (status == TRUE)
     {
-      pAXES_FEATURE (pobj)->dir = 'l' ;
+        return SET_PROPERTY_SUCCEED;
     }
     else
     {
-      Scierror(999, _("Wrong value for '%s' property: %s or %s expected.\n"), "tics_direction", "'left'", "'right'");
-      return SET_PROPERTY_ERROR ;
+        Scierror(999, _("'%s' property does not exist for this handle.\n"),"tics_direction");
+        return SET_PROPERTY_ERROR;
     }
-    return SET_PROPERTY_SUCCEED ;
-  }
-  return SET_PROPERTY_ERROR ;
+
 }
 /*------------------------------------------------------------------------*/
index 5256111..e5d5c89 100644 (file)
 #include "BasicAlgos.h"
 #include "loadTextRenderingAPI.h"
 
+#include "setGraphicObjectProperty.h"
+#include "getGraphicObjectProperty.h"
+#include "graphicObjectProperties.h"
+
 /*------------------------------------------------------------------------*/
 int set_tics_labels_property( sciPointObj * pobj, size_t stackPointer, int valueType, int nbRow, int nbCol )
 {
+    BOOL status;
+    int* nbTicksLabels;
+    char** stringVector;
+
+    if ( !isParameterStringMatrix( valueType ) )
+    {
+        Scierror(999, _("Wrong type for '%s' property: String matrix expected.\n"), "tics_labels");
+        return SET_PROPERTY_ERROR;
+    }
+
+#if 0
+    if ( sciGetEntityType(pobj) != SCI_AXES )
+    {
+        Scierror(999, _("'%s' property does not exist for this handle.\n"),"tics_labels");
+        return SET_PROPERTY_ERROR;
+    }
+#endif
+
+    nbTicksLabels = (int*) getGraphicObjectProperty(pobj->UID, __GO_NUMBER_TICKS_LABELS__, jni_int);
+
+    if (nbTicksLabels == NULL)
+    {
+        Scierror(999, _("'%s' property does not exist for this handle.\n"),"tics_labels");
+        return SET_PROPERTY_ERROR;
+    }
 
-  if ( !isParameterStringMatrix( valueType ) )
-  {
-    Scierror(999, _("Wrong type for '%s' property: String matrix expected.\n"), "tics_labels");
-    return SET_PROPERTY_ERROR ;
-  }
+    if ( *nbTicksLabels > nbRow*nbCol )
+    {
+        Scierror(999, _("Wrong size for '%s' property: At least %d elements expected.\n"), "tics_labels", *nbTicksLabels);
+        return SET_PROPERTY_ERROR;
+    }
 
-  if ( sciGetEntityType(pobj) != SCI_AXES )
-  {
-    Scierror(999, _("'%s' property does not exist for this handle.\n"),"tics_labels") ;
-    return SET_PROPERTY_ERROR ;
-  }
+    stringVector = createCopyStringMatrixFromStack( stackPointer, nbRow*nbCol );
 
-  if ( pAXES_FEATURE(pobj)->nb_tics_labels > nbRow*nbCol )
-  {
-    Scierror(999, _("Wrong size for '%s' property: At least %d elements expected.\n"), "tics_labels", pAXES_FEATURE(pobj)->nb_tics_labels);
-    return SET_PROPERTY_ERROR ;
-  }
+    /* Check if we should load LaTex / MathML Java libraries */
+    loadTextRenderingAPI(stringVector, nbRow*nbCol, 1);
 
-  if(pAXES_FEATURE(pobj)->str != NULL)
-  {
-    destroyStringArray( pAXES_FEATURE(pobj)->str, pAXES_FEATURE(pobj)->nb_tics_labels ) ;
-  }
+#if 0
+    pAXES_FEATURE(pobj)->nb_tics_labels = nbRow*nbCol ; /* could be increased to support xy_type switching (i.e. xy_type='v' -> xy_type='r') */
+#endif
 
-  pAXES_FEATURE(pobj)->str = createCopyStringMatrixFromStack( stackPointer, nbRow*nbCol ) ;
-  /* Check if we should load LaTex / MathML Java libraries */
-  loadTextRenderingAPI(pAXES_FEATURE(pobj)->str, nbRow*nbCol, 1);
+    status = setGraphicObjectProperty(pobj->UID, __GO_TICKS_LABELS__, stringVector, jni_string_vector, nbRow*nbCol);
 
-  pAXES_FEATURE(pobj)->nb_tics_labels = nbRow*nbCol ; /* could be increased to support xy_type switching (i.e. xy_type='v' -> xy_type='r') */
+    destroyStringArray(stringVector, nbRow*nbCol);
 
-  return SET_PROPERTY_SUCCEED ;
+    if (status == TRUE)
+    {
+        return SET_PROPERTY_SUCCEED;
+    }
+    else
+    {
+        Scierror(999, _("'%s' property does not exist for this handle.\n"),"tics_labels");
+        return SET_PROPERTY_ERROR;
+    }
 }
 /*------------------------------------------------------------------------*/
index c1ad957..0b090ef 100644 (file)
@@ -3,6 +3,7 @@
  * Copyright (C) 2004-2006 - INRIA - Fabrice Leray
  * Copyright (C) 2006 - INRIA - Allan Cornet
  * Copyright (C) 2006 - INRIA - Jean-Baptiste Silvy
+ * Copyright (C) 2010 - DIGITEO - Manuel Juliachs
  * 
  * This file must be used under the terms of the CeCILL.
  * This source file is licensed as described in the file COPYING, which
 #include "Scierror.h"
 #include "localization.h"
 
+#include "setGraphicObjectProperty.h"
+#include "graphicObjectProperties.h"
+
 /*------------------------------------------------------------------------*/
 int set_tics_segment_property( sciPointObj * pobj, size_t stackPointer, int valueType, int nbRow, int nbCol )
 {
+       BOOL status;
        int b =  (int)FALSE;
+
+#if 0
        if ( sciGetEntityType(pobj) != SCI_AXES )
        {
-               Scierror(999, _("'%s' property does not exist for this handle.\n"),"tics_segment") ;
-               return SET_PROPERTY_ERROR ;
+               Scierror(999, _("'%s' property does not exist for this handle.\n"),"tics_segment");
+               return SET_PROPERTY_ERROR;
        }
+#endif
 
        b = tryGetBooleanValueFromStack(stackPointer, valueType, nbRow, nbCol, "tics_segment");
        if(b == NOT_A_BOOLEAN_VALUE) return SET_PROPERTY_ERROR;
 
-       pAXES_FEATURE (pobj)->seg = b;
-       return SET_PROPERTY_SUCCEED;
+       status = setGraphicObjectProperty(pobj->UID, __GO_TICKS_SEGMENT__, &b, jni_bool, 1);
+
+       if (status == TRUE)
+       {
+               return SET_PROPERTY_SUCCEED;
+       }
+       else
+       {
+               Scierror(999, _("'%s' property does not exist for this handle.\n"), "tics_segment");
+               return SET_PROPERTY_ERROR;
+       }
 }
 /*------------------------------------------------------------------------*/
 
index fc349f5..af044d6 100644 (file)
@@ -3,6 +3,7 @@
  * Copyright (C) 2004-2006 - INRIA - Fabrice Leray
  * Copyright (C) 2006 - INRIA - Allan Cornet
  * Copyright (C) 2006 - INRIA - Jean-Baptiste Silvy
+ * Copyright (C) 2010 - DIGITEO - Manuel Juliachs
  * 
  * This file must be used under the terms of the CeCILL.
  * This source file is licensed as described in the file COPYING, which
 #include "localization.h"
 #include "Format.h"
 
+#include "setGraphicObjectProperty.h"
+#include "graphicObjectProperties.h"
+
 /*------------------------------------------------------------------------*/
 int set_tics_style_property( sciPointObj * pobj, size_t stackPointer, int valueType, int nbRow, int nbCol )
 {
-  double * vector = NULL ;
-  int N = 0 ;
-  char xy_type ;
+    BOOL status;
+    int ticksStyle;
+    double * vector = NULL;
+    int N = 0;
 
-  if ( !isParameterStringMatrix( valueType ) )
-  {
-    Scierror(999, _("Wrong type for '%s' property: String expected.\n"), "tics_style");
-    return SET_PROPERTY_ERROR ;
-  }
+    char xy_type;
 
-  if ( sciGetEntityType(pobj) != SCI_AXES )
-  {
-    Scierror(999, _("'%s' property does not exist for this handle.\n"),"tics_style") ;
-    return SET_PROPERTY_ERROR ;
-  }
+    if ( !isParameterStringMatrix( valueType ) )
+    {
+        Scierror(999, _("Wrong type for '%s' property: String expected.\n"), "tics_style");
+        return SET_PROPERTY_ERROR;
+    }
 
-  if (    !isStringParamEqual( stackPointer, "v" )
-       && !isStringParamEqual( stackPointer, "r" )
-       && !isStringParamEqual( stackPointer, "i" ) )
-  {
-    Scierror(999, _("Wrong value for '%s' property: Must be in the set {%s}.\n"), "tics_style", "v, r, i");
-    return SET_PROPERTY_ERROR ;
-  }
+#if 0
+    if ( sciGetEntityType(pobj) != SCI_AXES )
+    {
+        Scierror(999, _("'%s' property does not exist for this handle.\n"),"tics_style");
+        return SET_PROPERTY_ERROR;
+    }
+#endif
 
-   /* get the character 'v', 'r' or 'i' */
-  xy_type = getStringFromStack( stackPointer )[0] ;
+    if (    !isStringParamEqual( stackPointer, "v" )
+         && !isStringParamEqual( stackPointer, "r" )
+         && !isStringParamEqual( stackPointer, "i" ) )
+    {
+        Scierror(999, _("Wrong value for '%s' property: Must be in the set {%s}.\n"), "tics_style", "v, r, i");
+        return SET_PROPERTY_ERROR;
+    }
 
-  if( pAXES_FEATURE (pobj)->str != NULL )
-  {
-    if( ComputeXIntervals(pobj,xy_type,&vector,&N,1) != 0 )
+     /* get the character 'v', 'r' or 'i' */
+    xy_type = getStringFromStack( stackPointer )[0];
+
+    /* Deactivated for now since it involves ticks computation */
+#if 0
+    if( pAXES_FEATURE (pobj)->str != NULL )
     {
-      Scierror(999, _("Error: Bad size in %s ; you must first increase the size of the %s.\n"),"tics_coord","tics_coord");
-      return SET_PROPERTY_ERROR ;
+        if( ComputeXIntervals(pobj,xy_type,&vector,&N,1) != 0 )
+        {
+            Scierror(999, _("Error: Bad size in %s ; you must first increase the size of the %s.\n"),"tics_coord","tics_coord");
+            return SET_PROPERTY_ERROR;
+        }
+        if( pAXES_FEATURE(pobj)->nb_tics_labels < N )
+        {
+            sciprint(_("Warning: %s has been set by user ; you must first increase the size of the %s string vector before switching to the new %s mode.\n"),"tics_labels","tics_labels","tics_style");
+            return SET_PROPERTY_ERROR;
+        }
     }
-    if( pAXES_FEATURE(pobj)->nb_tics_labels < N )
+#endif
+
+    if (xy_type == 'v')
     {
-                       sciprint(_("Warning: %s has been set by user ; you must first increase the size of the %s string vector before switching to the new %s mode.\n"),"tics_labels","tics_labels","tics_style");
-      return SET_PROPERTY_ERROR;
+        ticksStyle = 0;
+    }
+    else if (xy_type == 'r')
+    {
+        ticksStyle = 1;
+    }
+    else if (xy_type == 'i')
+    {
+        ticksStyle = 2;
     }
-  }
 
-  pAXES_FEATURE (pobj)->tics = xy_type ;
+    status = setGraphicObjectProperty(pobj->UID, __GO_TICKS_STYLE__, &ticksStyle, jni_int, 1);
 
-  return SET_PROPERTY_SUCCEED ;
+    if (status == TRUE)
+    {
+        return SET_PROPERTY_SUCCEED;
+    }
+    else
+    {
+        Scierror(999, _("'%s' property does not exist for this handle.\n"),"tics_style");
+        return SET_PROPERTY_ERROR;
+    }
 }
 /*------------------------------------------------------------------------*/
index 431554b..b277b96 100644 (file)
 #include "Format.h"
 #include "MALLOC.h"
 
+#include "getGraphicObjectProperty.h"
+#include "setGraphicObjectProperty.h"
+#include "graphicObjectProperties.h"
+
 /*------------------------------------------------------------------------*/
 int set_xtics_coord_property( sciPointObj * pobj, size_t stackPointer, int valueType, int nbRow, int nbCol )
 {
-
-  int N = 0;
-  double * vector = NULL;
-  char c_format[5];
-
-  if ( !isParameterDoubleMatrix( valueType ) )
-  {
-    Scierror(999, _("Wrong type for '%s' property: Real matrix expected.\n"), "xtics_coord");
-    return SET_PROPERTY_ERROR ;
-  }
-
-  if ( sciGetEntityType(pobj) != SCI_AXES )
-  {
-    Scierror(999, _("'%s' property does not exist for this handle.\n"),"xtics_coord");
-    return SET_PROPERTY_ERROR ;
-  }
-
-  if ( nbRow != 1 )
-  {
-    Scierror(999, _("Wrong size for '%s' property: Row vector expected.\n"), "xtics_coord");
-    return SET_PROPERTY_ERROR ;
-  }
-
-  if ( pAXES_FEATURE(pobj)->nx == 1 && nbCol != 1 )
-  {
-    Scierror(999, _("Wrong size for '%s' property: Scalar expected.\n"), "xtics_coord");
-    return SET_PROPERTY_ERROR ;
-  }
-
-  if (  pAXES_FEATURE(pobj)->nx != 1 && nbCol == 1 )
-  {
-    Scierror(999, _("Wrong size for '%s' property: At least %d elements expected.\n"), "xtics_coord", 2);
-    return SET_PROPERTY_ERROR ;
-  }
-
-  /* what follows remains here as it was */
-
-  pAXES_FEATURE(pobj)->nx = nbCol ;
-
-  FREE(pAXES_FEATURE(pobj)->vx); pAXES_FEATURE(pobj)->vx = NULL;
-
-  pAXES_FEATURE(pobj)->vx = createCopyDoubleVectorFromStack( stackPointer, nbCol ) ;
-
-
-  if (ComputeXIntervals( pobj, pAXES_FEATURE(pobj)->tics, &vector, &N, 0 ) != 0)
-       {
-               /* Somthing wrong happened */
-               FREE( vector ) ;
-               return -1;
-       }
-
-  if (ComputeC_format( pobj, c_format ) != 0)
-       {
-               /* Somthing wrong happened */
-               FREE( vector ) ;
-               return -1;
-       }
-
-  if( pAXES_FEATURE(pobj)->str != NULL )
-  {
-    destroyStringArray( pAXES_FEATURE(pobj)->str, pAXES_FEATURE(pobj)->nb_tics_labels ) ;
-  }
-
-  pAXES_FEATURE (pobj)->nb_tics_labels = N;
-  pAXES_FEATURE(pobj)->str = copyFormatedArray( vector, N, c_format, 256 ) ;
-
-
-  FREE( vector ) ;
-
-  if ( pAXES_FEATURE(pobj)->str == NULL )
-  {
-    Scierror(999, _("%s: No more memory.\n"),"set_xtics_coord_property");
-    return SET_PROPERTY_ERROR ;
-  }
-
-  return SET_PROPERTY_SUCCEED ;
+    BOOL status;
+    int N = 0;
+    double * vector = NULL;
+    char c_format[5];
+    int* xNumberTicks;
+    char** stringVector = NULL;
+    double* coordsVector = NULL;
+    int* tmpTicksStyle;
+    char ticksStyle;
+
+    if ( !isParameterDoubleMatrix( valueType ) )
+    {
+        Scierror(999, _("Wrong type for '%s' property: Real matrix expected.\n"), "xtics_coord");
+        return SET_PROPERTY_ERROR;
+    }
+
+#if 0
+    if ( sciGetEntityType(pobj) != SCI_AXES )
+    {
+        Scierror(999, _("'%s' property does not exist for this handle.\n"),"xtics_coord");
+        return SET_PROPERTY_ERROR;
+    }
+#endif
+
+    if ( nbRow != 1 )
+    {
+        Scierror(999, _("Wrong size for '%s' property: Row vector expected.\n"), "xtics_coord");
+        return SET_PROPERTY_ERROR;
+    }
+
+    xNumberTicks = (int*) getGraphicObjectProperty(pobj->UID, __GO_X_NUMBER_TICKS__, jni_int);
+
+    if (xNumberTicks == NULL)
+    {
+        Scierror(999, _("'%s' property does not exist for this handle.\n"),"xtics_coord");
+        return SET_PROPERTY_ERROR;
+    }
+
+    if ( *xNumberTicks == 1 && nbCol != 1 )
+    {
+        Scierror(999, _("Wrong size for '%s' property: Scalar expected.\n"), "xtics_coord");
+        return SET_PROPERTY_ERROR;
+    }
+
+    if ( *xNumberTicks != 1 && nbCol == 1 )
+    {
+        Scierror(999, _("Wrong size for '%s' property: At least %d elements expected.\n"), "xtics_coord", 2);
+        return SET_PROPERTY_ERROR;
+    }
+
+    /* what follows remains here as it was */
+    coordsVector = createCopyDoubleVectorFromStack( stackPointer, nbCol );
+
+    status = setGraphicObjectProperty(pobj->UID, __GO_X_TICKS_COORDS__, coordsVector, jni_double_vector, nbCol);
+
+    if (status == FALSE)
+    {
+        FREE(coordsVector);
+        Scierror(999, _("'%s' property does not exist for this handle.\n"),"xtics_coord");
+        return SET_PROPERTY_ERROR;
+    }
+
+    FREE(coordsVector);
+
+    tmpTicksStyle = (int*) getGraphicObjectProperty(pobj->UID, __GO_TICKS_STYLE__, jni_int);
+
+    if (*tmpTicksStyle == 0)
+    {
+        ticksStyle = 'v';
+    }
+    else if (*tmpTicksStyle == 1)
+    {
+        ticksStyle = 'r';
+    }
+    else if (*tmpTicksStyle == 2)
+    {
+        ticksStyle = 'i';
+    }
+
+    if (ComputeXIntervals( pobj, ticksStyle, &vector, &N, 0 ) != 0)
+    {
+        /* Something wrong happened */
+        FREE( vector );
+        return -1;
+    }
+
+    if (ComputeC_format( pobj, c_format ) != 0)
+    {
+        /* Something wrong happened */
+        FREE( vector );
+        return -1;
+    }
+
+    stringVector = copyFormatedArray( vector, N, c_format, 256 );
+
+    status = setGraphicObjectProperty(pobj->UID, __GO_TICKS_LABELS__, stringVector, jni_string_vector, N);
+
+    FREE( vector );
+
+    destroyStringArray(stringVector, N);
+
+    if (status == TRUE)
+    {
+        return SET_PROPERTY_SUCCEED;
+    }
+    else
+    {
+        return SET_PROPERTY_ERROR;
+    }
 
 }
 /*------------------------------------------------------------------------*/
index 0af372c..2378dae 100644 (file)
 #include "Format.h"
 #include "MALLOC.h"
 
+#include "getGraphicObjectProperty.h"
+#include "setGraphicObjectProperty.h"
+#include "graphicObjectProperties.h"
+
 /*------------------------------------------------------------------------*/
 /* @TODO: remove stackPointer, nbRow, nbCol which are used */
 int set_ytics_coord_property( sciPointObj * pobj, size_t stackPointer, int valueType, int nbRow, int nbCol )
 {
-
-  int N = 0;
-  double * vector = NULL;
-  char c_format[5];
-
-  if ( !isParameterDoubleMatrix( valueType ) )
-  {
-    Scierror(999, _("Wrong type for '%s' property: Real matrix expected.\n"), "ytics_coord");
-    return SET_PROPERTY_ERROR ;
-  }
-
-  if ( sciGetEntityType(pobj) != SCI_AXES )
-  {
-    Scierror(999, _("'%s' property does not exist for this handle.\n"),"ytics_coord");
-    return SET_PROPERTY_ERROR ;
-  }
-
-  if ( nbRow != 1 )
-  {
-    Scierror(999, _("Wrong size for '%s' property: Row vector expected.\n"), "ytics_coord");
-    return SET_PROPERTY_ERROR ;
-  }
-
-  if ( pAXES_FEATURE(pobj)->ny == 1 && nbCol != 1 )
-  {
-    Scierror(999, _("Wrong size for '%s' property: Scalar expected.\n"), "ytics_coord");
-    return SET_PROPERTY_ERROR ;
-  }
-
-  if (  pAXES_FEATURE(pobj)->ny != 1 && nbCol == 1 )
-  {
-    Scierror(999, _("Wrong size for '%s' property: At least %d elements expected.\n"), "ytics_coord", 2);
-    return SET_PROPERTY_ERROR ;
-  }
-
-  /* what follows remains here as it was */
-
-  FREE(pAXES_FEATURE(pobj)->vy); pAXES_FEATURE(pobj)->vy = NULL;
-
-  pAXES_FEATURE(pobj)->vy = createCopyDoubleVectorFromStack( stackPointer, nbCol ) ;
-
-
-  ComputeXIntervals( pobj, pAXES_FEATURE(pobj)->tics, &vector, &N, 0 ) ;
-  ComputeC_format( pobj, c_format ) ;
-
-  if( pAXES_FEATURE(pobj)->str != NULL )
-  {
-    destroyStringArray( pAXES_FEATURE(pobj)->str, pAXES_FEATURE(pobj)->nb_tics_labels ) ;
-  }
-
-  pAXES_FEATURE (pobj)->nb_tics_labels = N;
-  pAXES_FEATURE(pobj)->str = copyFormatedArray( vector, N, c_format, 256 ) ;
-
-
-  FREE( vector ) ;
-
-  if ( pAXES_FEATURE(pobj)->str == NULL )
-  {
-    Scierror(999, _("%s: No more memory.\n"),"set_ytics_coord_property");
-    return SET_PROPERTY_ERROR ;
-  }
-
-  return SET_PROPERTY_SUCCEED ;
+    BOOL status;
+    int N = 0;
+    double * vector = NULL;
+    char c_format[5];
+    int* yNumberTicks;
+    char** stringVector = NULL;
+    double* coordsVector = NULL;
+    int* tmpTicksStyle;
+    char ticksStyle;
+
+    if ( !isParameterDoubleMatrix( valueType ) )
+    {
+        Scierror(999, _("Wrong type for '%s' property: Real matrix expected.\n"), "ytics_coord");
+        return SET_PROPERTY_ERROR;
+    }
+
+#if 0
+    if ( sciGetEntityType(pobj) != SCI_AXES )
+    {
+        Scierror(999, _("'%s' property does not exist for this handle.\n"),"ytics_coord");
+        return SET_PROPERTY_ERROR;
+    }
+#endif
+
+    if ( nbRow != 1 )
+    {
+        Scierror(999, _("Wrong size for '%s' property: Row vector expected.\n"), "ytics_coord");
+        return SET_PROPERTY_ERROR;
+    }
+
+    yNumberTicks = (int*) getGraphicObjectProperty(pobj->UID, __GO_Y_NUMBER_TICKS__, jni_int);
+
+    if (yNumberTicks == NULL)
+    {
+        Scierror(999, _("'%s' property does not exist for this handle.\n"),"ytics_coord");
+        return SET_PROPERTY_ERROR;
+    }
+
+    if ( *yNumberTicks == 1 && nbCol != 1 )
+    {
+        Scierror(999, _("Wrong size for '%s' property: Scalar expected.\n"), "ytics_coord");
+        return SET_PROPERTY_ERROR;
+    }
+
+    if ( *yNumberTicks != 1 && nbCol == 1 )
+    {
+        Scierror(999, _("Wrong size for '%s' property: At least %d elements expected.\n"), "ytics_coord", 2);
+        return SET_PROPERTY_ERROR;
+    }
+
+    /* what follows remains here as it was */
+    coordsVector = createCopyDoubleVectorFromStack( stackPointer, nbCol );
+
+    status = setGraphicObjectProperty(pobj->UID, __GO_Y_TICKS_COORDS__, coordsVector, jni_double_vector, nbCol);
+
+    if (status == FALSE)
+    {
+        FREE(coordsVector);
+        Scierror(999, _("'%s' property does not exist for this handle.\n"),"ytics_coord");
+        return SET_PROPERTY_ERROR;
+    }
+
+    FREE(coordsVector);
+
+    tmpTicksStyle = (int*) getGraphicObjectProperty(pobj->UID, __GO_TICKS_STYLE__, jni_int);
+
+    if (*tmpTicksStyle == 0)
+    {
+        ticksStyle = 'v';
+    }
+    else if (*tmpTicksStyle == 1)
+    {
+        ticksStyle = 'r';
+    }
+    else if (*tmpTicksStyle == 2)
+    {
+        ticksStyle = 'i';
+    }
+
+    ComputeXIntervals( pobj, pAXES_FEATURE(pobj)->tics, &vector, &N, 0 );
+    ComputeC_format( pobj, c_format );
+
+    stringVector = copyFormatedArray( vector, N, c_format, 256 );
+
+    status = setGraphicObjectProperty(pobj->UID, __GO_TICKS_LABELS__, stringVector, jni_string_vector, N);
+
+    FREE( vector );
+
+    destroyStringArray(stringVector, N);
+
+    if (status == TRUE)
+    {
+        return SET_PROPERTY_SUCCEED;
+    }
+    else
+    {
+        return SET_PROPERTY_ERROR;
+    }
 
 }
 /*------------------------------------------------------------------------*/