Plot Browser: Implementation of the function plotbrowser(fignum) - gateway 43/8643/3
Marcos CARDINOT [Sat, 11 Aug 2012 01:26:29 +0000 (22:26 -0300)]
Change-Id: I59f965cc00699c3d81262505499ab11119618d92

scilab/modules/gui/Makefile.am
scilab/modules/gui/Makefile.in
scilab/modules/gui/etc/graphics_menubar.xml
scilab/modules/gui/includes/gw_gui.h
scilab/modules/gui/sci_gateway/c/gw_gui.c
scilab/modules/gui/sci_gateway/cpp/sci_plotbrowser.cpp [new file with mode: 0644]
scilab/modules/gui/sci_gateway/gui_gateway.xml
scilab/modules/gui/src/java/org/scilab/modules/gui/plotbrowser/StartPlotBrowser.java
scilab/modules/gui/src/jni/StartPlotBrowser.cpp [new file with mode: 0644]
scilab/modules/gui/src/jni/StartPlotBrowser.giws.xml [new file with mode: 0644]
scilab/modules/gui/src/jni/StartPlotBrowser.hxx [new file with mode: 0644]

index 75d9eb4..a9de168 100755 (executable)
@@ -133,7 +133,8 @@ src/cpp/displaytree.cpp \
 src/jni/ScilabDisplayTree.cpp \
 src/jni/EditorManager.cpp \
 src/jni/StartGED.cpp \
-src/jni/DatatipFunctions.cpp
+src/jni/DatatipFunctions.cpp \
+src/jni/StartPlotBrowser.cpp
 
 GIWS_WRAPPERS = \
 src/jni/CallScilabBridge.giws.xml \
@@ -145,7 +146,8 @@ src/jni/Juigetfile.giws.xml \
 src/jni/ScilabDisplayTree.giws.xml \
 src/jni/EditorManager.giws.xml \
 src/jni/Datatip.giws.xml \
-src/jni/StartGED.giws.xml
+src/jni/StartGED.giws.xml \
+src/jni/StartPlotBrowser.giws.xml
 
 SWIG_WRAPPERS = src/jni/ScilabTermination.i 
 
@@ -200,7 +202,9 @@ sci_gateway/cpp/sci_useeditor.cpp \
 sci_gateway/cpp/sci_fire_closing_finished.cpp \
 sci_gateway/cpp/sci_openged.cpp \
 sci_gateway/cpp/sci_datatipcreate.cpp \
-sci_gateway/cpp/sci_datatipremove.cpp
+sci_gateway/cpp/sci_datatipremove.cpp \
+sci_gateway/cpp/sci_plotbrowser.cpp
+
 
 
 libscigui_la_CPPFLAGS = \
index 5e735ea..2f4140b 100644 (file)
@@ -205,7 +205,8 @@ am__objects_2 = libscigui_algo_la-InitUIMenu.lo \
        libscigui_algo_la-ScilabDisplayTree.lo \
        libscigui_algo_la-EditorManager.lo \
        libscigui_algo_la-StartGED.lo \
-       libscigui_algo_la-DatatipFunctions.lo
+       libscigui_algo_la-DatatipFunctions.lo \
+       libscigui_algo_la-StartPlotBrowser.lo
 am_libscigui_algo_la_OBJECTS = $(am__objects_1) $(am__objects_2)
 libscigui_algo_la_OBJECTS = $(am_libscigui_algo_la_OBJECTS)
 @GUI_TRUE@am_libscigui_algo_la_rpath =
@@ -240,7 +241,8 @@ am__objects_5 = libscigui_la-sci_printsetupbox.lo \
        libscigui_la-sci_usecanvas.lo libscigui_la-sci_useeditor.lo \
        libscigui_la-sci_fire_closing_finished.lo \
        libscigui_la-sci_openged.lo libscigui_la-sci_datatipcreate.lo \
-       libscigui_la-sci_datatipremove.lo
+       libscigui_la-sci_datatipremove.lo \
+       libscigui_la-sci_plotbrowser.lo
 am_libscigui_la_OBJECTS = $(am__objects_4) $(am__objects_5)
 libscigui_la_OBJECTS = $(am_libscigui_la_OBJECTS)
 @GUI_TRUE@am_libscigui_la_rpath = -rpath $(pkglibdir)
@@ -648,7 +650,8 @@ src/cpp/displaytree.cpp \
 src/jni/ScilabDisplayTree.cpp \
 src/jni/EditorManager.cpp \
 src/jni/StartGED.cpp \
-src/jni/DatatipFunctions.cpp
+src/jni/DatatipFunctions.cpp \
+src/jni/StartPlotBrowser.cpp
 
 GIWS_WRAPPERS = \
 src/jni/CallScilabBridge.giws.xml \
@@ -660,7 +663,8 @@ src/jni/Juigetfile.giws.xml \
 src/jni/ScilabDisplayTree.giws.xml \
 src/jni/EditorManager.giws.xml \
 src/jni/Datatip.giws.xml \
-src/jni/StartGED.giws.xml
+src/jni/StartGED.giws.xml \
+src/jni/StartPlotBrowser.giws.xml
 
 SWIG_WRAPPERS = src/jni/ScilabTermination.i 
 BUILT_SOURCES = $(am__append_1) $(am__append_2)
@@ -707,7 +711,8 @@ sci_gateway/cpp/sci_useeditor.cpp \
 sci_gateway/cpp/sci_fire_closing_finished.cpp \
 sci_gateway/cpp/sci_openged.cpp \
 sci_gateway/cpp/sci_datatipcreate.cpp \
-sci_gateway/cpp/sci_datatipremove.cpp
+sci_gateway/cpp/sci_datatipremove.cpp \
+sci_gateway/cpp/sci_plotbrowser.cpp
 
 libscigui_la_CPPFLAGS = \
                        -I$(srcdir)/includes/ \
@@ -1129,6 +1134,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_algo_la-SetUiobjectEnable.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_algo_la-SetUiobjectForegroundColor.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_algo_la-StartGED.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_algo_la-StartPlotBrowser.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_algo_la-SwingView.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_algo_la-Toolbar.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_algo_la-UnitsConversion.Plo@am__quote@
@@ -1158,6 +1164,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_la-sci_messagebox.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_la-sci_mpopup.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_la-sci_openged.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_la-sci_plotbrowser.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_la-sci_printfigure.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_la-sci_printsetupbox.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscigui_la-sci_progressionbar.Plo@am__quote@
@@ -1990,6 +1997,13 @@ libscigui_algo_la-DatatipFunctions.lo: src/jni/DatatipFunctions.cpp
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscigui_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscigui_algo_la-DatatipFunctions.lo `test -f 'src/jni/DatatipFunctions.cpp' || echo '$(srcdir)/'`src/jni/DatatipFunctions.cpp
 
+libscigui_algo_la-StartPlotBrowser.lo: src/jni/StartPlotBrowser.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscigui_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscigui_algo_la-StartPlotBrowser.lo -MD -MP -MF $(DEPDIR)/libscigui_algo_la-StartPlotBrowser.Tpo -c -o libscigui_algo_la-StartPlotBrowser.lo `test -f 'src/jni/StartPlotBrowser.cpp' || echo '$(srcdir)/'`src/jni/StartPlotBrowser.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscigui_algo_la-StartPlotBrowser.Tpo $(DEPDIR)/libscigui_algo_la-StartPlotBrowser.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='src/jni/StartPlotBrowser.cpp' object='libscigui_algo_la-StartPlotBrowser.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscigui_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscigui_algo_la-StartPlotBrowser.lo `test -f 'src/jni/StartPlotBrowser.cpp' || echo '$(srcdir)/'`src/jni/StartPlotBrowser.cpp
+
 libscigui_la-sci_printsetupbox.lo: sci_gateway/cpp/sci_printsetupbox.cpp
 @am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscigui_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscigui_la-sci_printsetupbox.lo -MD -MP -MF $(DEPDIR)/libscigui_la-sci_printsetupbox.Tpo -c -o libscigui_la-sci_printsetupbox.lo `test -f 'sci_gateway/cpp/sci_printsetupbox.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_printsetupbox.cpp
 @am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscigui_la-sci_printsetupbox.Tpo $(DEPDIR)/libscigui_la-sci_printsetupbox.Plo
@@ -2116,6 +2130,13 @@ libscigui_la-sci_datatipremove.lo: sci_gateway/cpp/sci_datatipremove.cpp
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscigui_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscigui_la-sci_datatipremove.lo `test -f 'sci_gateway/cpp/sci_datatipremove.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_datatipremove.cpp
 
+libscigui_la-sci_plotbrowser.lo: sci_gateway/cpp/sci_plotbrowser.cpp
+@am__fastdepCXX_TRUE@  $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscigui_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscigui_la-sci_plotbrowser.lo -MD -MP -MF $(DEPDIR)/libscigui_la-sci_plotbrowser.Tpo -c -o libscigui_la-sci_plotbrowser.lo `test -f 'sci_gateway/cpp/sci_plotbrowser.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_plotbrowser.cpp
+@am__fastdepCXX_TRUE@  $(am__mv) $(DEPDIR)/libscigui_la-sci_plotbrowser.Tpo $(DEPDIR)/libscigui_la-sci_plotbrowser.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     source='sci_gateway/cpp/sci_plotbrowser.cpp' object='libscigui_la-sci_plotbrowser.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscigui_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscigui_la-sci_plotbrowser.lo `test -f 'sci_gateway/cpp/sci_plotbrowser.cpp' || echo '$(srcdir)/'`sci_gateway/cpp/sci_plotbrowser.cpp
+
 mostlyclean-libtool:
        -rm -f *.lo
 
index 31869b1..6ddc2cf 100644 (file)
     </submenu>
 
     <submenu label="Plot Browser">
-      <callback instruction='org.scilab.modules.gui.plotbrowser.StartPlotBrowser.plotBrowser' type="3"/>
+      <callback instruction="plotbrowser([SCILAB_FIGURE_ID])" type="-2"/>
     </submenu>
 
     <submenu label="Scilab Graphic Editor - GED">
index 8d1f23d..9faa94d 100755 (executable)
@@ -58,6 +58,7 @@ GUI_IMPEXP int sci_fire_closing_finished ( char * fname, unsigned long fname_len
 GUI_IMPEXP int sci_openged(char *fname, unsigned long fname_len);
 GUI_IMPEXP int sci_datatipcreate(char *fname, unsigned long fname_len);
 GUI_IMPEXP int sci_datatipremove(char *fname, unsigned long fname_len);
+GUI_IMPEXP int sci_plotbrowser(char *fname, unsigned long fname_len);
 /*--------------------------------------------------------------------------*/
 #endif /*  __GW_GUI__ */
 /*--------------------------------------------------------------------------*/
index e5a3ec9..40bb4a8 100755 (executable)
@@ -65,7 +65,8 @@ static gw_generic_table Tab[] =
     {sci_fire_closing_finished, "fire_closing_finished"},
     {sci_openged, "openged"},
     {sci_datatipcreate, "datatipCreate"},
-    {sci_datatipremove, "datatipRemove"}
+    {sci_datatipremove, "datatipRemove"},
+    {sci_plotbrowser,"plotbrowser"}
 };
 /*--------------------------------------------------------------------------*/
 int gw_gui(void)
diff --git a/scilab/modules/gui/sci_gateway/cpp/sci_plotbrowser.cpp b/scilab/modules/gui/sci_gateway/cpp/sci_plotbrowser.cpp
new file mode 100644 (file)
index 0000000..d34b3f4
--- /dev/null
@@ -0,0 +1,98 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2012 - Marcos CARDINOT
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#include "StartPlotBrowser.hxx"
+#include "GiwsException.hxx"
+#include "ScilabView.hxx"
+
+extern "C"
+{
+#include "stack-c.h"
+#include "getScilabJavaVM.h"
+#include "localization.h"
+#include "Scierror.h"
+#include "gw_gui.h"
+#include "BOOL.h"
+#include"MALLOC.h"
+#include "FigureList.h"
+}
+
+
+/*--------------------------------------------------------------------------*/
+using namespace org_scilab_modules_gui_plotbrowser;
+
+/*--------------------------------------------------------------------------*/
+int sci_plotbrowser(char *fname, unsigned long fname_len)
+{
+    int m1 = 0, n1 = 0, l1 = 0, l2 = 0;
+    int *status = NULL;
+    char const * figureUid;
+    bool enable;
+
+    CheckLhs(0, 1);
+    CheckRhs(1, 1);
+
+    if (VarType(1) != sci_matrix)
+    {
+        Scierror(999, _("%s: Wrong type for input argument #%d: A integer expected.\n"), fname, 1);
+        return FALSE;
+    }
+
+    GetRhsVar(1, MATRIX_OF_INTEGER_DATATYPE, &m1, &n1, &l1);
+
+    if (m1 * n1 != 1)
+    {
+        Scierror(999, _("%s: Wrong size for input argument #%d: A integer expected.\n"), fname, m1 * n1);
+        return FALSE;
+    }
+
+
+    try
+    {
+        int figureID = *istk(l1);
+        figureUid = ScilabView::getFigureFromIndex(figureID);
+
+        if (!sciIsExistingFigure(figureID))
+        {
+            Scierror(999, "%s: Figure with figure_id %d does not exist.\n", fname, figureID);
+            return -1;
+        }
+
+        StartPlotBrowser::plotBrowser(getScilabJavaVM(), (char*)figureUid);
+    }
+    catch (const GiwsException::JniException & e)
+    {
+        Scierror(999, _("%s: A Java exception arisen:\n%s"), fname, e.whatStr().c_str());
+        return FALSE;
+    }
+
+    if ((status = (int *)MALLOC(sizeof(int))) == NULL)
+    {
+        Scierror(999, _("%s: No more memory.\n"), fname, 0);
+        return FALSE;
+    }
+
+    status[0] = booltoBOOL(enable);
+
+    m1 = 1;
+    n1 = 1;
+    CreateVarFromPtr(Rhs + 1, MATRIX_OF_BOOLEAN_DATATYPE, &m1, &n1, &status);
+
+    FREE(status);
+
+    LhsVar(1) = Rhs + 1;
+    PutLhsVar();
+
+    return TRUE;
+}
+
+/*--------------------------------------------------------------------------*/
index 7494db9..b2408a2 100644 (file)
@@ -72,4 +72,5 @@
     <PRIMITIVE gatewayId="25" primitiveId="39" primitiveName="openged" />
     <PRIMITIVE gatewayId="25" primitiveId="40" primitiveName="datatipCreate" />
     <PRIMITIVE gatewayId="25" primitiveId="41" primitiveName="datatipRemove" />
+    <PRIMITIVE gatewayId="25" primitiveId="42" primitiveName="plotbrowser" />
 </GATEWAY>
index 5486413..60ebd02 100644 (file)
@@ -12,8 +12,6 @@
 
 package org.scilab.modules.gui.plotbrowser;
 
-import org.scilab.modules.gui.editor.EditorEventListener;
-
 /**
  * Manages the action of the buttons on the toolbar and menubar.
  *
@@ -24,7 +22,7 @@ public class StartPlotBrowser {
     /**
     * Initializes the Plot Browser.
     */
-    public static void plotBrowser() {
-        PlotBrowser.getPlotBrowser(EditorEventListener.windowUid);
+    public static void plotBrowser(String uid) {
+        PlotBrowser.getPlotBrowser(uid);
     }
 }
diff --git a/scilab/modules/gui/src/jni/StartPlotBrowser.cpp b/scilab/modules/gui/src/jni/StartPlotBrowser.cpp
new file mode 100644 (file)
index 0000000..f626adc
--- /dev/null
@@ -0,0 +1,176 @@
+#include "StartPlotBrowser.hxx"
+/* Generated by GIWS (version 1.2.4) */
+/*
+
+Copyright 2007-2008 INRIA
+Copyright 2008-2011 DIGITEO
+
+Author : Sylvestre Ledru & others
+
+This is generated code.
+
+This software is a computer program whose purpose is to hide the complexity
+of accessing Java objects/methods from C++ code.
+
+This software is governed by the CeCILL-B license under French law and
+abiding by the rules of distribution of free software.  You can  use, 
+modify and/ or redistribute the software under the terms of the CeCILL-B
+license as circulated by CEA, CNRS and INRIA at the following URL
+"http://www.cecill.info". 
+
+As a counterpart to the access to the source code and  rights to copy,
+modify and redistribute granted by the license, users are provided only
+with a limited warranty  and the software's author,  the holder of the
+economic rights,  and the successive licensors  have only  limited
+liability. 
+
+In this respect, the user's attention is drawn to the risks associated
+with loading,  using,  modifying and/or developing or reproducing the
+software by the user in light of its specific status of free software,
+that may mean  that it is complicated to manipulate,  and  that  also
+therefore means  that it is reserved for developers  and  experienced
+professionals having in-depth computer knowledge. Users are therefore
+encouraged to load and test the software's suitability as regards their
+requirements in conditions enabling the security of their systems and/or 
+data to be ensured and,  more generally, to use and operate it in the 
+same conditions as regards security. 
+
+The fact that you are presently reading this means that you have had
+knowledge of the CeCILL-B license and that you accept its terms.
+*/
+
+namespace org_scilab_modules_gui_plotbrowser {
+
+// Returns the current env
+
+JNIEnv * StartPlotBrowser::getCurrentEnv() {
+JNIEnv * curEnv = NULL;
+jint res=this->jvm->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL);
+if (res != JNI_OK) {
+throw GiwsException::JniException(getCurrentEnv());
+}
+return curEnv;
+}
+// Destructor
+
+StartPlotBrowser::~StartPlotBrowser() {
+JNIEnv * curEnv = NULL;
+this->jvm->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL);
+
+curEnv->DeleteGlobalRef(this->instance);
+curEnv->DeleteGlobalRef(this->instanceClass);
+}
+// Constructors
+StartPlotBrowser::StartPlotBrowser(JavaVM * jvm_) {
+jmethodID constructObject = NULL ;
+jobject localInstance ;
+jclass localClass ;
+const std::string construct="<init>";
+const std::string param="()V";
+jvm=jvm_;
+
+JNIEnv * curEnv = getCurrentEnv();
+
+localClass = curEnv->FindClass( this->className().c_str() ) ;
+if (localClass == NULL) {
+  throw GiwsException::JniClassNotFoundException(curEnv, this->className());
+}
+
+this->instanceClass = static_cast<jclass>(curEnv->NewGlobalRef(localClass));
+
+/* localClass is not needed anymore */
+curEnv->DeleteLocalRef(localClass);
+
+if (this->instanceClass == NULL) {
+throw GiwsException::JniObjectCreationException(curEnv, this->className());
+}
+
+
+constructObject = curEnv->GetMethodID( this->instanceClass, construct.c_str() , param.c_str() ) ;
+if(constructObject == NULL){
+throw GiwsException::JniObjectCreationException(curEnv, this->className());
+}
+
+localInstance = curEnv->NewObject( this->instanceClass, constructObject ) ;
+if(localInstance == NULL){
+throw GiwsException::JniObjectCreationException(curEnv, this->className());
+}
+this->instance = curEnv->NewGlobalRef(localInstance) ;
+if(this->instance == NULL){
+throw GiwsException::JniObjectCreationException(curEnv, this->className());
+}
+/* localInstance not needed anymore */
+curEnv->DeleteLocalRef(localInstance);
+
+                /* Methods ID set to NULL */
+voidplotBrowserjstringID=NULL; 
+
+
+}
+
+StartPlotBrowser::StartPlotBrowser(JavaVM * jvm_, jobject JObj) {
+        jvm=jvm_;
+
+        JNIEnv * curEnv = getCurrentEnv();
+
+jclass localClass = curEnv->GetObjectClass(JObj);
+        this->instanceClass = static_cast<jclass>(curEnv->NewGlobalRef(localClass));
+        curEnv->DeleteLocalRef(localClass);
+
+        if (this->instanceClass == NULL) {
+throw GiwsException::JniObjectCreationException(curEnv, this->className());
+        }
+
+        this->instance = curEnv->NewGlobalRef(JObj) ;
+        if(this->instance == NULL){
+throw GiwsException::JniObjectCreationException(curEnv, this->className());
+        }
+        /* Methods ID set to NULL */
+        voidplotBrowserjstringID=NULL; 
+
+
+}
+
+// Generic methods
+
+void StartPlotBrowser::synchronize() {
+if (getCurrentEnv()->MonitorEnter(instance) != JNI_OK) {
+throw GiwsException::JniMonitorException(getCurrentEnv(), "StartPlotBrowser");
+}
+}
+
+void StartPlotBrowser::endSynchronize() {
+if ( getCurrentEnv()->MonitorExit(instance) != JNI_OK) {
+throw GiwsException::JniMonitorException(getCurrentEnv(), "StartPlotBrowser");
+}
+}
+// Method(s)
+
+void StartPlotBrowser::plotBrowser (JavaVM * jvm_, char * uid){
+
+JNIEnv * curEnv = NULL;
+jvm_->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL);
+jclass cls = curEnv->FindClass( className().c_str() );
+
+jmethodID voidplotBrowserjstringID = curEnv->GetStaticMethodID(cls, "plotBrowser", "(Ljava/lang/String;)V" ) ;
+if (voidplotBrowserjstringID == NULL) {
+throw GiwsException::JniMethodNotFoundException(curEnv, "plotBrowser");
+}
+
+jstring uid_ = curEnv->NewStringUTF( uid );
+if (uid_ == NULL)
+{
+throw GiwsException::JniBadAllocException(curEnv);
+}
+
+
+                         curEnv->CallStaticVoidMethod(cls, voidplotBrowserjstringID ,uid_);
+                        curEnv->DeleteLocalRef(uid_);
+curEnv->DeleteLocalRef(cls);
+if (curEnv->ExceptionCheck()) {
+throw GiwsException::JniCallMethodException(curEnv);
+}
+}
+
+}
diff --git a/scilab/modules/gui/src/jni/StartPlotBrowser.giws.xml b/scilab/modules/gui/src/jni/StartPlotBrowser.giws.xml
new file mode 100644 (file)
index 0000000..ca8affc
--- /dev/null
@@ -0,0 +1,7 @@
+<package name="org.scilab.modules.gui.plotbrowser">
+  <object name="StartPlotBrowser">
+       <method name="plotBrowser" returnType="void" modifier="static">
+      <parameter name="uid" type="String"/>
+    </method>
+  </object>
+</package>
diff --git a/scilab/modules/gui/src/jni/StartPlotBrowser.hxx b/scilab/modules/gui/src/jni/StartPlotBrowser.hxx
new file mode 100644 (file)
index 0000000..8a1fcd6
--- /dev/null
@@ -0,0 +1,141 @@
+/* Generated by GIWS (version 1.2.4) */
+/*
+
+Copyright 2007-2008 INRIA
+Copyright 2008-2011 DIGITEO
+
+Author : Sylvestre Ledru & others
+
+This is generated code.
+
+This software is a computer program whose purpose is to hide the complexity
+of accessing Java objects/methods from C++ code.
+
+This software is governed by the CeCILL-B license under French law and
+abiding by the rules of distribution of free software.  You can  use, 
+modify and/ or redistribute the software under the terms of the CeCILL-B
+license as circulated by CEA, CNRS and INRIA at the following URL
+"http://www.cecill.info". 
+
+As a counterpart to the access to the source code and  rights to copy,
+modify and redistribute granted by the license, users are provided only
+with a limited warranty  and the software's author,  the holder of the
+economic rights,  and the successive licensors  have only  limited
+liability. 
+
+In this respect, the user's attention is drawn to the risks associated
+with loading,  using,  modifying and/or developing or reproducing the
+software by the user in light of its specific status of free software,
+that may mean  that it is complicated to manipulate,  and  that  also
+therefore means  that it is reserved for developers  and  experienced
+professionals having in-depth computer knowledge. Users are therefore
+encouraged to load and test the software's suitability as regards their
+requirements in conditions enabling the security of their systems and/or 
+data to be ensured and,  more generally, to use and operate it in the 
+same conditions as regards security. 
+
+The fact that you are presently reading this means that you have had
+knowledge of the CeCILL-B license and that you accept its terms.
+*/
+
+
+#ifndef __ORG_SCILAB_MODULES_GUI_PLOTBROWSER_STARTPLOTBROWSER__
+#define __ORG_SCILAB_MODULES_GUI_PLOTBROWSER_STARTPLOTBROWSER__
+#include <iostream>
+#include <string>
+#include <string.h>
+#include <stdlib.h>
+#include <jni.h>
+
+#include "GiwsException.hxx"
+
+#ifndef _MSC_VER /* Defined anyway with Visual */
+#if !defined(byte)
+typedef signed char byte;
+#else
+#pragma message("Byte has been redefined elsewhere. Some problems can happen")
+#endif
+#endif
+
+namespace org_scilab_modules_gui_plotbrowser {
+class StartPlotBrowser {
+
+private:
+JavaVM * jvm;
+
+protected:
+jmethodID voidplotBrowserjstringID; // cache method id
+
+
+
+jobject instance;
+jclass instanceClass; // cache class
+
+
+/**
+* Get the environment matching to the current thread.
+*/
+virtual JNIEnv * getCurrentEnv();
+
+public:
+// Constructor
+/**
+* Create a wrapping of the object from a JNIEnv.
+* It will call the default constructor
+* @param JEnv_ the Java Env
+*/
+StartPlotBrowser(JavaVM * jvm_);
+
+/**
+* Create a wrapping of an already existing object from a JNIEnv.
+* The object must have already been instantiated
+* @param JEnv_ the Java Env
+* @param JObj the object
+*/
+StartPlotBrowser(JavaVM * jvm_, jobject JObj);
+
+
+/** 
+* This is a fake constructor to avoid the constructor
+* chaining when dealing with extended giws classes 
+*/
+#ifdef FAKEGIWSDATATYPE
+StartPlotBrowser(fakeGiwsDataType::fakeGiwsDataType /* unused */) {}
+#endif
+
+// Destructor
+~StartPlotBrowser();
+
+// Generic method
+// Synchronization methods
+/**
+* Enter monitor associated with the object.
+* Equivalent of creating a "synchronized(obj)" scope in Java.
+*/
+void synchronize();
+
+/**
+* Exit monitor associated with the object.
+* Equivalent of ending a "synchronized(obj)" scope.
+*/
+void endSynchronize();
+
+// Methods
+static void plotBrowser(JavaVM * jvm_, char * uid);
+
+
+                        /**
+                        * Get class name to use for static methods
+                        * @return class name to use for static methods
+                        */
+                        
+                static const std::string className()
+                {
+                return "org/scilab/modules/gui/plotbrowser/StartPlotBrowser";
+                }
+                
+};
+
+
+}
+#endif