From 0c128e8f1ce1dd42d4375b0f91e4e93f02214ccf Mon Sep 17 00:00:00 2001 From: Antti Villberg Date: Mon, 6 Apr 2020 16:53:28 +0300 Subject: [PATCH] SimanticsExcel interface refresh gitlab #514 Change-Id: I9c205730f0cbfb8d75f88c69483155dd8cafd4b2 --- .../org.simantics.excel/SimanticsExcel_64.dll | Bin 0 -> 51712 bytes bundles/org.simantics.excel/build.properties | 3 +- .../org.simantics.excel/native/Interface.cpp | 82 +++++------ .../native/SimanticsExcel.sln | 12 +- .../native/SimanticsExcel.vcxproj | 130 +++++++++++++++--- bundles/org.simantics.excel/native/jni2.h | 5 +- bundles/org.simantics.excel/scl/Excel.scl | 19 +++ .../src/org/simantics/excel/Excel.java | 82 ++++++----- 8 files changed, 230 insertions(+), 103 deletions(-) create mode 100644 bundles/org.simantics.excel/SimanticsExcel_64.dll create mode 100644 bundles/org.simantics.excel/scl/Excel.scl diff --git a/bundles/org.simantics.excel/SimanticsExcel_64.dll b/bundles/org.simantics.excel/SimanticsExcel_64.dll new file mode 100644 index 0000000000000000000000000000000000000000..9be7f04fee6a3078faac612030839d6b095c4291 GIT binary patch literal 51712 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⩔C9kUkByJ*%t$gtKEzj@JiZ*uA9+!h;a}FH;FS~NvGEZ; z_zRIF{;*sZ>J_V`^l~jj@Uacr zUJ3KRlyg91WO;4f(#Ex`Z&|zahE>s}k=4tiE7vyMwDkHIO?~6iwGB5+ZCrKJ@-@*_ zwT)A0_*XAogIVa7x~1zcp0;#h-RipKjde>G*+s-;H8ry0dP&Wx0Q{vtVbZtP0W$UJzek1w(Sg- zuVMuKIMKuWf}aoM90A^gz}tj0-%0AQberNQ!|D8d@B}om40Ynsw04}JlYO!u(&59e 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 QFCSM}C1Q7e{<|LdCl0P1ZvX%Q literal 0 HcmV?d00001 diff --git a/bundles/org.simantics.excel/build.properties b/bundles/org.simantics.excel/build.properties index 9a56e9b7e..4f7390681 100644 --- a/bundles/org.simantics.excel/build.properties +++ b/bundles/org.simantics.excel/build.properties @@ -13,4 +13,5 @@ source.. = src/ output.. = bin/ bin.includes = META-INF/,\ .,\ - SimanticsExcel.dll + SimanticsExcel.dll,\ + scl/ diff --git a/bundles/org.simantics.excel/native/Interface.cpp b/bundles/org.simantics.excel/native/Interface.cpp index 46f894c63..9e67f4aa8 100644 --- a/bundles/org.simantics.excel/native/Interface.cpp +++ b/bundles/org.simantics.excel/native/Interface.cpp @@ -1,31 +1,21 @@ -//#include "stdafx.h" - -//#ifndef _UNICODE -//#define _UNICODE -//#endif - #include #include -//#include -//#include +#include +#include +#include +#include using namespace std; -#import "c:/program files (x86)/common files/microsoft shared/office12/mso.dll" \ - rename( "RGB", "MSORGB" ) - -using namespace Office; - -#import "c:/program files (x86)/common files/microsoft shared/vba/vba6/vbe6ext.olb" \ - -using namespace VBIDE; +// mso.dll +#import "libid:{2df8d04c-5bfa-101b-bde5-00aa0044de52}" auto_rename +// vb6ext.olb +#import "libid:{0002e157-0000-0000-c000-000000000046}" auto_rename +// excel.exe +#import "libid:{00020813-0000-0000-c000-000000000046}" auto_rename -#import "c:/program files (x86)/microsoft office/office12/excel.exe" \ - rename( "DialogBox", "ExcelDialogBox" ) \ - rename( "RGB", "ExcelRGB" ) \ - rename( "CopyFile", "ExcelCopyFile" ) \ - rename( "ReplaceText", "ExcelReplaceText" ) +using namespace Excel; #include "jni2.h" @@ -34,10 +24,10 @@ using namespace VBIDE; #define SIMANTICS_DEBUG(...) -using namespace std; -using namespace Excel; +//using namespace std; +//using namespace Office; -map handles; +map handles; static int handleCounter = 1; void replace(std::string &s, const std::string &s1, const std::string &s2) { @@ -464,7 +454,7 @@ JNIEXPORT jint JNICALL Java_org_simantics_excel_Excel_close(JNIEnv *env, jobject } -/** + JNIEXPORT jdouble JNICALL Java_org_simantics_excel_Excel_getDouble(JNIEnv *env, jobject, jint handle, jint row, jint column) { SIMANTICS_DEBUG("getDouble(%d, %d)\r\n", row, column); @@ -489,7 +479,7 @@ JNIEXPORT jdouble JNICALL Java_org_simantics_excel_Excel_getDouble(JNIEnv *env, } JNIEXPORT jstring JNICALL Java_org_simantics_excel_Excel_getString(JNIEnv *env, jobject, jint handle, jint row, jint column) { - + USES_CONVERSION; //string val = getString(env, value); SIMANTICS_DEBUG("getString(%d, %d)\r\n", row, column); @@ -499,30 +489,30 @@ JNIEXPORT jstring JNICALL Java_org_simantics_excel_Excel_getString(JNIEnv *env, Excel::RangePtr range = sheet->Cells; if(!range) return NULL; - variant_t val = range->Item[row+1][column+1]; - if (val.vt != VT_NULL) { // val.vt seems to be always VT_DISPATCH. - try { + _bstr_t val = _bstr_t(range->Item[row + 1][column + 1]); + //if (val.vt != VT_NULL) { // val.vt seems to be always VT_DISPATCH. + //try { //this call will crash the application, if the cell is empty! - _bstr_t bstrt = val; - TCHAR text[1024]; + //_bstr_t bstrt = val; + //std::string text(val); + //CString text(val); + //text. + //TCHAR text[1024]; // TODO: this uses wide character (16-bit) while NewStringUTF expext regular character (8-bit), hence Java gets only the fisrt charater of the whole string. - _stprintf(text, _T("%s"), (LPCTSTR)bstrt); + //_stprintf(text, _T("%s"), (LPCTSTR)bstrt); //const char *text = bstrt; SIMANTICS_DEBUG("%s\r\n",text); - - // this code returns "??" for all cells. - //BSTR bstr = val.bstrVal; - //const char *text = _com_util::ConvertBSTRToString(bstr); - jstring ret = env->NewStringUTF((const char*)text); - delete[] text; - return ret; - } catch (...) { - return NULL; - } - } - SIMANTICS_DEBUG("%d\r\n",val.vt); - return NULL; + string text(val); + + + return env->NewStringUTF(text.c_str()); + + //} catch (...) { + // return NULL; + //} + //} + //SIMANTICS_DEBUG("%d\r\n",val.vt); + //return NULL; } -*/ \ No newline at end of file diff --git a/bundles/org.simantics.excel/native/SimanticsExcel.sln b/bundles/org.simantics.excel/native/SimanticsExcel.sln index 59c24ad34..bb04a663d 100644 --- a/bundles/org.simantics.excel/native/SimanticsExcel.sln +++ b/bundles/org.simantics.excel/native/SimanticsExcel.sln @@ -1,7 +1,9 @@  -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual Studio 2008 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SimanticsExcel", "SimanticsExcel.vcproj", "{E106958A-412F-4782-81CD-DF380D66BA6B}" +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +VisualStudioVersion = 12.0.40629.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SimanticsExcel", "SimanticsExcel.vcxproj", "{E106958A-412F-4782-81CD-DF380D66BA6B}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,8 +13,8 @@ Global GlobalSection(ProjectConfigurationPlatforms) = postSolution {E106958A-412F-4782-81CD-DF380D66BA6B}.Debug|Win32.ActiveCfg = Debug|Win32 {E106958A-412F-4782-81CD-DF380D66BA6B}.Debug|Win32.Build.0 = Debug|Win32 - {E106958A-412F-4782-81CD-DF380D66BA6B}.Release|Win32.ActiveCfg = Release|Win32 - {E106958A-412F-4782-81CD-DF380D66BA6B}.Release|Win32.Build.0 = Release|Win32 + {E106958A-412F-4782-81CD-DF380D66BA6B}.Release|Win32.ActiveCfg = Release|x64 + {E106958A-412F-4782-81CD-DF380D66BA6B}.Release|Win32.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/bundles/org.simantics.excel/native/SimanticsExcel.vcxproj b/bundles/org.simantics.excel/native/SimanticsExcel.vcxproj index 77b342183..67c676b43 100644 --- a/bundles/org.simantics.excel/native/SimanticsExcel.vcxproj +++ b/bundles/org.simantics.excel/native/SimanticsExcel.vcxproj @@ -1,14 +1,22 @@  - + Debug Win32 + + Debug + x64 + Release Win32 + + Release + x64 + {E106958A-412F-4782-81CD-DF380D66BA6B} @@ -18,12 +26,27 @@ DynamicLibrary + v120 + false + Unicode + true + + + DynamicLibrary + v120 false Unicode true DynamicLibrary + v120 + false + Unicode + + + DynamicLibrary + v120 false Unicode @@ -33,20 +56,38 @@ + + + + + + - <_ProjectFileVersion>10.0.40219.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - false - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - false + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + false + + + true + false + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + false + + + false + false @@ -60,8 +101,7 @@ EnableFastChecks MultiThreadedDebugDLL true - - + Level3 EditAndContinue @@ -78,7 +118,64 @@ MachineX86 + + + _DEBUG;%(PreprocessorDefinitions) + false + + + Disabled + WIN32;_WINDOWS;_DEBUG;_USRDLL;%(PreprocessorDefinitions) + EnableFastChecks + MultiThreadedDebugDLL + true + + + Level3 + ProgramDatabase + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + $(IntDir);%(AdditionalIncludeDirectories) + + + LinkVerboseLib + .\SimanticsExcel.def + true + Windows + + + + NDEBUG;%(PreprocessorDefinitions) + false + + + MaxSpeed + true + WIN32;_WINDOWS;NDEBUG;_USRDLL;%(PreprocessorDefinitions) + MultiThreadedDLL + true + + Level3 + ProgramDatabase + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + $(IntDir);%(AdditionalIncludeDirectories) + + + .\SimanticsExcel.def + true + Windows + true + true + MachineX86 + + + NDEBUG;%(PreprocessorDefinitions) false @@ -105,7 +202,6 @@ Windows true true - MachineX86 @@ -113,12 +209,11 @@ - - - + + @@ -127,6 +222,9 @@ + + + diff --git a/bundles/org.simantics.excel/native/jni2.h b/bundles/org.simantics.excel/native/jni2.h index d2c7715f0..ba3eeec8b 100644 --- a/bundles/org.simantics.excel/native/jni2.h +++ b/bundles/org.simantics.excel/native/jni2.h @@ -14,9 +14,8 @@ JNIEXPORT jint JNICALL Java_org_simantics_excel_Excel_setString(JNIEnv *env, job JNIEXPORT jint JNICALL Java_org_simantics_excel_Excel_setName(JNIEnv *env, jobject, jint handle, jint row, jint column, jstring value); JNIEXPORT jint JNICALL Java_org_simantics_excel_Excel_setVisible(JNIEnv *env, jobject, jint handle, jboolean value); JNIEXPORT jint JNICALL Java_org_simantics_excel_Excel_close(JNIEnv *env, jobject, jint handle); - -//JNIEXPORT jstring JNICALL Java_org_simantics_excel_Excel_getString(JNIEnv *env, jobject, jint handle, jint row, jint column); -//JNIEXPORT jdouble JNICALL Java_org_simantics_excel_Excel_getDouble(JNIEnv *env, jobject, jint handle, jint row, jint column); +JNIEXPORT jstring JNICALL Java_org_simantics_excel_Excel_getString(JNIEnv *env, jobject, jint handle, jint row, jint column); +JNIEXPORT jdouble JNICALL Java_org_simantics_excel_Excel_getDouble(JNIEnv *env, jobject, jint handle, jint row, jint column); #ifdef __cplusplus } diff --git a/bundles/org.simantics.excel/scl/Excel.scl b/bundles/org.simantics.excel/scl/Excel.scl new file mode 100644 index 000000000..4314025ed --- /dev/null +++ b/bundles/org.simantics.excel/scl/Excel.scl @@ -0,0 +1,19 @@ +importJava "org.simantics.excel.Excel" where + + data Excel + + @JavaName "getInstance" + excelInstance :: () -> Excel + + @JavaName "open2_" + openExcelSheet :: Excel -> String -> String -> Integer + @JavaName "close_" + closeExcelSheet :: Excel -> Integer -> () + @JavaName "setString_" + setExcelString :: Excel -> Integer -> Integer -> Integer -> String -> Integer + @JavaName "getString_" + getExcelString :: Excel -> Integer -> Integer -> Integer -> String + @JavaName "setDouble_" + setExcelDouble :: Excel -> Integer -> Integer -> Integer -> Double -> Integer + @JavaName "getDouble_" + getExcelDouble :: Excel -> Integer -> Integer -> Integer -> Double diff --git a/bundles/org.simantics.excel/src/org/simantics/excel/Excel.java b/bundles/org.simantics.excel/src/org/simantics/excel/Excel.java index bf7ddb5d5..d692206bd 100644 --- a/bundles/org.simantics.excel/src/org/simantics/excel/Excel.java +++ b/bundles/org.simantics.excel/src/org/simantics/excel/Excel.java @@ -45,6 +45,10 @@ public class Excel { private static Excel instance; + public static Excel getInstance() throws ExcelException { + return getInstance(System.out); + } + public static Excel getInstance(PrintStream out) throws ExcelException { if(instance == null) { @@ -89,11 +93,11 @@ public class Excel { File extractDir = context.getDataFile(""); if (extractDir == null) - throw new IOException("Bundle '" + Activator.PLUGIN_ID + " context has no file system support. Cannot extract server executables."); + throw new IOException("Bundle '" + Activator.PLUGIN_ID + " context has no file system support. Cannot extract DLLs."); if (!extractDir.exists()) if (!extractDir.mkdir()) - throw new IOException("Could not create directory '" + extractDir.getCanonicalPath() + "' for storing Balas solver data."); + throw new IOException("Could not create directory '" + extractDir.getCanonicalPath() + "' for communicating with Excel."); return extractDir; @@ -266,7 +270,7 @@ public class Excel { if (!extractDir.exists()) if (!extractDir.mkdir()) - throw new IOException("Could not create directory '" + extractDir.getCanonicalPath() + "' for storing Balas solver data."); + throw new IOException("Could not create directory '" + extractDir.getCanonicalPath() + "' for communicating with Excel."); String asd = ""; ExecEnvironment env = ExecEnvironment.calculate(); @@ -306,8 +310,8 @@ public class Excel { private native int setVisible(int handle, boolean value); private native int close(int handle); -// private native double getDouble(int handle, int row, int column); -// private native String getString(int handle, int row, int column); + private native double getDouble(int handle, int row, int column); + private native String getString(int handle, int row, int column); final ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor(); @@ -331,6 +335,20 @@ public class Excel { }); } + public int open2_(final String fileName, final String sheetName) { + try { + return scheduler.submit(new Callable() { + @Override + public Integer call() throws Exception { + return Integer.parseInt(open(fileName, sheetName)); + } + }).get(); + } catch (Exception e) { + e.printStackTrace(); + return -1; + } + } + public String open_(final String fileName, final String sheetName) { try { return scheduler.submit(new Callable() { @@ -437,32 +455,32 @@ public class Excel { } } -// public double getDouble_(final int handle, final int row, final int column) { -// try { -// return scheduler.submit(new Callable() { -// @Override -// public Double call() throws Exception { -// return getDouble(handle, row, column); -// } -// }).get(); -// } catch (Exception e) { -// e.printStackTrace(); -// return Double.NaN; -// } -// } -// -// public String getString_(final int handle, final int row, final int column) { -// try { -// return scheduler.submit(new Callable() { -// @Override -// public String call() throws Exception { -// return getString(handle, row, column); -// } -// }).get(); -// } catch (Exception e) { -// e.printStackTrace(); -// return null; -// } -// } + public double getDouble_(final int handle, final int row, final int column) { + try { + return scheduler.submit(new Callable() { + @Override + public Double call() throws Exception { + return getDouble(handle, row, column); + } + }).get(); + } catch (Exception e) { + e.printStackTrace(); + return Double.NaN; + } + } + + public String getString_(final int handle, final int row, final int column) { + try { + return scheduler.submit(new Callable() { + @Override + public String call() throws Exception { + return getString(handle, row, column); + } + }).get(); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } } -- 2.43.2