Remove UIElementMapper JNI access 17/12917/5
Bruno JOFRET [Mon, 14 Oct 2013 14:13:32 +0000 (16:13 +0200)]
Change-Id: Ifb8e47679e35fbfa360279a5ace4623c9b74dcc1

scilab/modules/gui/Makefile.am
scilab/modules/gui/Makefile.in
scilab/modules/gui/src/c/gui.vcxproj
scilab/modules/gui/src/c/gui.vcxproj.filters
scilab/modules/gui/src/java/org/scilab/modules/gui/utils/UIElementMapper.java
scilab/modules/gui/src/jni/UIElementMapper.cpp [deleted file]
scilab/modules/gui/src/jni/UIElementMapper.giws.xml [deleted file]
scilab/modules/gui/src/jni/UIElementMapper.hxx [deleted file]

index e538522..a14db92 100755 (executable)
@@ -147,7 +147,6 @@ src/jni/CallScilabBridge.giws.xml \
 src/jni/Jxclick.giws.xml \
 src/jni/Jxgetmouse.giws.xml \
 src/jni/LookAndFeelManager.giws.xml \
-src/jni/UIElementMapper.giws.xml \
 src/jni/Juigetfile.giws.xml \
 src/jni/ScilabDisplayTree.giws.xml \
 src/jni/EditorManager.giws.xml \
index 9661017..d944031 100644 (file)
@@ -800,7 +800,6 @@ src/jni/CallScilabBridge.giws.xml \
 src/jni/Jxclick.giws.xml \
 src/jni/Jxgetmouse.giws.xml \
 src/jni/LookAndFeelManager.giws.xml \
-src/jni/UIElementMapper.giws.xml \
 src/jni/Juigetfile.giws.xml \
 src/jni/ScilabDisplayTree.giws.xml \
 src/jni/EditorManager.giws.xml \
index 707e220..5daf8ec 100755 (executable)
     <ClCompile Include="..\cpp\SetUiobjectForegroundColor.cpp" />
     <ClCompile Include="setVisibleMainWindow.c" />
     <ClCompile Include="..\cpp\Toolbar.cpp" />
-    <ClCompile Include="..\jni\UIElementMapper.cpp" />
     <ClCompile Include="..\cpp\UnitsConversion.cpp" />
     <ClCompile Include="..\cpp\Widget.cpp" />
   </ItemGroup>
     <ClInclude Include="..\jni\ScilabDisplayTree.hxx" />
     <ClInclude Include="..\jni\StartPlotBrowser.hxx" />
     <ClInclude Include="..\jni\SwingView.hxx" />
-    <ClInclude Include="..\jni\UIElementMapper.hxx" />
     <ClInclude Include="buildMainWindowTitle.h" />
     <ClInclude Include="checkColorRange.h" />
     <ClInclude Include="CreateUIControl.h" />
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
-</Project>
+</Project>
\ No newline at end of file
index 54480f1..ebbf8ce 100755 (executable)
     <ClCompile Include="..\cpp\Toolbar.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\jni\UIElementMapper.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="..\cpp\UnitsConversion.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
     <ClInclude Include="..\jni\SwingView.hxx">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\jni\UIElementMapper.hxx">
-      <Filter>Header Files</Filter>
-    </ClInclude>
     <ClInclude Include="..\cpp\GetUicontrolTooltipString.hxx">
       <Filter>Header Files</Filter>
     </ClInclude>
       <Filter>Header Files</Filter>
     </ClInclude>
   </ItemGroup>
-</Project>
+</Project>
\ No newline at end of file
index a562674..8f850a0 100644 (file)
@@ -26,29 +26,9 @@ import org.scilab.modules.gui.uielement.UIElement;
 public final class UIElementMapper {
 
     /**
-     * HashMap associated to this mapper
-     */
-    private static class UIElementMap extends HashMap<Integer, UIElement> {
-
-        private static final long serialVersionUID = 1L;
-
-        /**
-         * Default Constructor
-         */
-        public UIElementMap() {
-            super();
-        }
-    }
-
-    /**
-     * ID for an UIElement which in not yet in the UIElementMapper (not yet created)
-     */
-    private static final int DEFAULT_UIELEMENT_ID = -1;
-
-    /**
      * The hashmap containing the mapping between UIElement id (int) and UIElement
      */
-    private static UIElementMap mapper = new UIElementMap();
+    private static HashMap<Integer, UIElement> mapper = new HashMap<Integer, UIElement>();
 
     /**
      * The highest Id already used to map an UIElement
@@ -56,26 +36,12 @@ public final class UIElementMapper {
     private static int maxId;
 
     /**
-     * The ID of the tab which contains the console (known as root object or 0 from Scilab)
-     */
-    private static int consoleId;
-
-    /**
      * Default constructor
      * This is a utility class, there should not be any instance
      */
     private UIElementMapper() {        }
 
     /**
-     * Add a new mapping between a UIElement and its Id
-     * @param uielementId id of the UIElement
-     * @param uielement corresponding UIelement
-     */
-    public static void addMapping(int uielementId, UIElement uielement) {
-        mapper.put(uielementId, uielement);
-    }
-
-    /**
      * Add a new UIElement
      * @param uielement corresponding UIelement
      * @return uielementId id of the UIElement
@@ -102,45 +68,4 @@ public final class UIElementMapper {
     public static UIElement getCorrespondingUIElement(int uielementId) {
         return mapper.get(uielementId);
     }
-
-    /**
-     * Returns true if the UIElement already exists in the hashmap
-     * @param uielement UIElement object to be searched
-     * @return true if the figure already exists in the hashmap, false otherwise
-     */
-    public static boolean containsUIElement(UIElement uielement) {
-        return mapper.containsValue(uielement);
-    }
-
-    /**
-     * Returns true if the figure already exists in the hashmap
-     * @return last Id associated to an UIElement
-     */
-    public static int getMaxId() {
-        return maxId;
-    }
-
-    /**
-     * Get the default id for an UIElement
-     * @return the id for a not created UIElement (not in the UIElementMapper)
-     */
-    public static int getDefaultId() {
-        return DEFAULT_UIELEMENT_ID;
-    }
-
-    /**
-     * Set the console id for current Scilab sessions
-     * @param id the id of the tab which contains the console
-     */
-    public static void setConsoleId(int id) {
-        consoleId = id;
-    }
-
-    /**
-     * Get the console id for current Scilab sessions
-     * @return id the id of the tab which contains the console
-     */
-    public static int getConsoleId() {
-        return consoleId;
-    }
 }
diff --git a/scilab/modules/gui/src/jni/UIElementMapper.cpp b/scilab/modules/gui/src/jni/UIElementMapper.cpp
deleted file mode 100644 (file)
index 0783c60..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-#include "UIElementMapper.hxx"
-/* Generated by GIWS (version 2.0.1) with command:
-giws --disable-return-size-array --output-dir D:\git\debug\master\scilab\modules\gui\src\jni\ --throws-exception-on-error --description-file UIElementMapper.giws.xml 
-*/
-/*
-
-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_utils {
-
-                // Static declarations (if any)
-                
-// Returns the current env
-
-JNIEnv * UIElementMapper::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
-
-UIElementMapper::~UIElementMapper() {
-JNIEnv * curEnv = NULL;
-this->jvm->AttachCurrentThread(reinterpret_cast<void **>(&curEnv), NULL);
-
-curEnv->DeleteGlobalRef(this->instance);
-curEnv->DeleteGlobalRef(this->instanceClass);
-}
-// Constructors
-UIElementMapper::UIElementMapper(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 */
-jintgetMaxIdID=NULL;
-
-
-}
-
-UIElementMapper::UIElementMapper(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 */
-        jintgetMaxIdID=NULL;
-
-
-}
-
-// Generic methods
-
-void UIElementMapper::synchronize() {
-if (getCurrentEnv()->MonitorEnter(instance) != JNI_OK) {
-throw GiwsException::JniMonitorException(getCurrentEnv(), "UIElementMapper");
-}
-}
-
-void UIElementMapper::endSynchronize() {
-if ( getCurrentEnv()->MonitorExit(instance) != JNI_OK) {
-throw GiwsException::JniMonitorException(getCurrentEnv(), "UIElementMapper");
-}
-}
-// Method(s)
-
-int UIElementMapper::getMaxId (){
-
-JNIEnv * curEnv = getCurrentEnv();
-
-if (jintgetMaxIdID==NULL) { /* Use the cache */
- jintgetMaxIdID = curEnv->GetMethodID(this->instanceClass, "getMaxId", "()I" ) ;
-if (jintgetMaxIdID == NULL) {
-throw GiwsException::JniMethodNotFoundException(curEnv, "getMaxId");
-}
-}
-                        jint res =  static_cast<jint>( curEnv->CallIntMethod( this->instance, jintgetMaxIdID ));
-                        
-return res;
-
-}
-
-}
diff --git a/scilab/modules/gui/src/jni/UIElementMapper.giws.xml b/scilab/modules/gui/src/jni/UIElementMapper.giws.xml
deleted file mode 100644 (file)
index 5687e79..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-    <package name="org.scilab.modules.gui.utils">
-    <object name="UIElementMapper">
-        <method name="getMaxId" returnType="int">
-        </method>
-    </object>
-</package>
diff --git a/scilab/modules/gui/src/jni/UIElementMapper.hxx b/scilab/modules/gui/src/jni/UIElementMapper.hxx
deleted file mode 100644 (file)
index ea1c956..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-/* Generated by GIWS (version 2.0.1) with command:
-giws --disable-return-size-array --output-dir D:\git\debug\master\scilab\modules\gui\src\jni\ --throws-exception-on-error --description-file UIElementMapper.giws.xml 
-*/
-/*
-
-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_UTILS_UIELEMENTMAPPER__
-#define __ORG_SCILAB_MODULES_GUI_UTILS_UIELEMENTMAPPER__
-#include <iostream>
-#include <string>
-#include <string.h>
-#include <stdlib.h>
-#include <jni.h>
-
-#include "GiwsException.hxx"
-
-        #if defined(_MSC_VER) /* Defined anyway with Visual */
-            #include <Windows.h>
-        #else
-            typedef signed char byte;
-        #endif
-
-
-#ifndef GIWSEXPORT
-# if defined(_MSC_VER) || defined(__WIN32__) || defined(__CYGWIN__)
-#   if defined(STATIC_LINKED)
-#     define GIWSEXPORT
-#   else
-#     define GIWSEXPORT __declspec(dllexport)
-#   endif
-# else
-#   if __GNUC__ >= 4
-#     define GIWSEXPORT __attribute__ ((visibility ("default")))
-#   else
-#     define GIWSEXPORT
-#   endif
-# endif
-#endif
-
-namespace org_scilab_modules_gui_utils {
-class GIWSEXPORT UIElementMapper {
-
-private:
-JavaVM * jvm;
-
-protected:
-jmethodID jintgetMaxIdID; // cache method id
-
-
-
-jobject instance;
-jclass instanceClass; // cache class
-
-                       
-// Caching (if any)
-
-
-/**
-* 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
-*/
-UIElementMapper(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
-*/
-UIElementMapper(JavaVM * jvm_, jobject JObj);
-
-
-/** 
-* This is a fake constructor to avoid the constructor
-* chaining when dealing with extended giws classes 
-*/
-#ifdef FAKEGIWSDATATYPE
-UIElementMapper(fakeGiwsDataType::fakeGiwsDataType /* unused */) {}
-#endif
-
-// Destructor
-~UIElementMapper();
-
-// 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
-int getMaxId();
-
-
-                        /**
-                        * 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/utils/UIElementMapper";
-                }
-                
-};
-
-
-}
-#endif