# HG changeset patch # User hgs # Date 1288342172 -10800 # Node ID 1627c337e51e1666c50d14cb68dc95da1e7a7b74 # Parent d6dafc5d983f8400fbc6307ab841ffe602cbae3e v2.2.21_1 diff -r d6dafc5d983f -r 1627c337e51e build/Makefile.comp --- a/build/Makefile.comp Fri Oct 15 12:29:39 2010 +0300 +++ b/build/Makefile.comp Fri Oct 29 11:49:32 2010 +0300 @@ -21,7 +21,7 @@ include $(JAVA_SRC_ROOT)/build/Makefile.defs -.PHONY: build_clean_java build_qmake build_clean_native really_clean_native clean_qmake qmakehelp emmareport +.PHONY: build_clean_java build_qmake build_clean_native really_clean_native clean_qmake qmakehelp emmareport coberturareport PRO_FILE = $(wildcard *.pro) @@ -71,7 +71,7 @@ build_java: $(PHASEINFO) ifndef SBOX_CPUTRANSPARENCY_LOG - $(ANT) -Dtarget.platform=$(PLATFORM) -Dtarget.cfg=$(VARIANT) $(ANT_PROJECT_DEFINES) $(ANT_EMMA_DEFINES) + $(ANT) -Dtarget.platform=$(PLATFORM) -Dtarget.cfg=$(VARIANT) $(ANT_PROJECT_DEFINES) $(ANT_EMMA_DEFINES) $(ANT_COBERTURA_DEFINES) endif build_clean_java: @@ -91,6 +91,11 @@ $(ANT) -f $(JAVA_SRC_ROOT)/build/emmautilities.xml -Dset.emma.enabled=true emma.report endif +coberturareport: +ifndef SBOX_CPUTRANSPARENCY_LOG + $(ANT) -f $(JAVA_SRC_ROOT)/build/coberturautilities.xml -Dset.cobertura.enabled=true cobertura.report +endif + # Add the pro-file to the subdirs of enclosing component. Must define the file # explicitly when directory (==build) is differntly named from pro-file. configure_qmake: diff -r d6dafc5d983f -r 1627c337e51e build/Makefile.project --- a/build/Makefile.project Fri Oct 15 12:29:39 2010 +0300 +++ b/build/Makefile.project Fri Oct 29 11:49:32 2010 +0300 @@ -129,6 +129,11 @@ PROJECT_DEFINES += RD_JAVA_S60_RELEASE_5_0_IAD endif +ifdef RD_JAVA_S60_RELEASE_5_0_ROM + # build ROMized 5.0 release + PROJECT_DEFINES += RD_JAVA_S60_RELEASE_5_0_ROM +endif + # Define stdcpp version ifneq ($(wildcard $(EPOCROOT)epoc32/release/armv5/urel/libstdcppv5.dll),) RD_JAVA_STDCPPV5 = 1 @@ -228,6 +233,15 @@ ANT_EMMA_DEFINES += -Dset.emma.enabled=true endif +# Enables cobertura instrumentation for Java code coverage measurement. +ifdef COBERTURA + ANT_COBERTURA_DEFINES += -Dset.cobertura.enabled=true + COBERTURA_HOME=$(JAVA_SRC_ROOT)/../tools/cobertura + ifeq ($(wildcard $(COBERTURA_HOME)),) + $(error Can not find $(COBERTURA_HOME) directory - cannot instrument with cobertura) + endif +endif + #ifdef SHOW_MIDP_EXIT_FAILURE PROJET_DEFINES += RD_JAVA_EXIT_ERROR_DIALOG #endif diff -r d6dafc5d983f -r 1627c337e51e build/buildutils/armsize.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/build/buildutils/armsize.py Fri Oct 29 11:49:32 2010 +0300 @@ -0,0 +1,186 @@ +#!/usr/bin/python +# +# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +# All rights reserved. +# This component and the accompanying materials are made available +# under the terms of "Eclipse Public License v1.0" +# which accompanies this distribution, and is available +# at the URL "http://www.eclipse.org/legal/epl-v10.html". +# +# Initial Contributors: +# Nokia Corporation - initial contribution. +# +# Contributors: +# +# Description: +# This utility is used to find out the size in disk of files +# written to ROM images (or compiled). Script finds out Symbian +# build enviornment binary file paths based on iby-file(s) or +# mmp-files, and prints out file sizes. +# +# Run the script with option --help to see the parameters + +import os.path, fnmatch, re, subprocess, glob +from optparse import OptionParser +from itertools import chain + +RE_MMP_TARGET = re.compile(r"\s*TARGET\s+(\S+)", re.IGNORECASE) +RE_DEFINE = re.compile(r"^define\s*(\S+)\s+(\S+)\s*$", re.IGNORECASE) +RE_IBYTARGET = re.compile(r"^(?:file|data)=(\S+)\s+\S+\s*$", re.IGNORECASE) + +# Base defines used in IBY files +BASE_DEFINES = [("ABI_DIR", r"\epoc32\release\armv5"), + ("BUILD_DIR", r"urel"), + ("DATAZ_", r"\epoc32\data\z"), + ("RESOURCE_FILES_DIR", r"resource"), + ("ZRESOURCE", r"DATAZ_\resource"), + ("ZSYSTEM", r"DATAZ_\system"), + ("ZPRIVATE", r"DATAZ_\private")] + +def flatten(listOfLists): + return list(chain(*listOfLists)) + +def cppFile(source, cppDefines = None, include = None): + ''' Preprocess source with epoc32/include, and return preprocessed lines ''' + includePaths = [r"/epoc32/include"] + + if cppDefines: + cppDefines = " ".join(["-D%s" % d for d in cppDefines]) + else: + cppDefines = "" + if include: + path, filename = os.path.split(include) + includePaths.append(path) + + include = "-include " + include + + else: + include = "" + + drive, tail = os.path.splitdrive(source) + command = r'cpp %s %s %s "%s"' % (" ".join(["-I %s" % i for i in includePaths]), + cppDefines, include, source) + process = subprocess.Popen(command, + shell = True, + cwd = "%s\\" % drive, + stdout = subprocess.PIPE) + for line in process.stdout.readlines(): + yield line + +def replaceDefines(line, defines): + ''' Replace the macro definitions recursively ''' + oldLine = None + while oldLine != line: + oldLine = line + for search, replace in defines: + line = line.replace(search, replace) + return line + +def parseIby(lines): + ''' Parse IBY file lines, using defines ''' + defines = BASE_DEFINES[:] + for l in lines: + defineMatch = RE_DEFINE.match(l) + if defineMatch: + search, replace = defineMatch.groups() + defines.append((search, replace)) + else: + yield replaceDefines(l, defines) + +def getIbySources(ibyfile, cppDefines = None, include = None): + ''' Get IBY file source files''' + drive, tail = os.path.splitdrive(ibyfile) + for l in parseIby(cppFile(ibyfile, cppDefines, include)): + match = RE_IBYTARGET.match(l) + if match: + yield drive + match.group(1) + +def findFiles(root, pattern): + ''' Find files recursively ''' + for path, dirs, files in os.walk(root): + for f in fnmatch.filter(files, pattern): + yield os.path.join(path, f) + +def getMmpTarget(mmpfile): + ''' Get the target binary name from mmp-file ''' + for l in open(mmpfile, "r").readlines(): + match = RE_MMP_TARGET.search(l) + if match: + return match.group(1) + return None + +def getMmpTargets(mmpRoot): + ''' Get the target binary paths of all mmp-files found under root ''' + drive, tail = os.path.splitdrive(mmpRoot) + + totalSize = 0 + for mmp in findFiles(mmpRoot, "*.mmp"): + target = getMmpTarget(mmp) + if not target: + continue + binPath = drive + "/epoc32/release/armv5/urel/" + target + if os.path.exists(binPath): + yield binPath + +def getSizes(binaries): + ''' Get the sizes of given files, return list of tuples (size|None, file) ''' + for binPath in binaries: + if not os.path.exists(binPath): + yield None, binPath + else: + yield os.path.getsize(binPath), binPath + +def printSizes(sizes): + ''' Print file sizes and a total ''' + totalSize = 0 + for size, binPath in sizes: + if size: + totalSize = totalSize + size + + print "%s\t%s" % (size, binPath) + + print "%d\tTotal" % totalSize + +def main(): + parser = OptionParser() + parser.add_option( + "--mmproot", dest = "mmproot", + help = "root for searching mmp-files (whose target is used for filenames)") + parser.add_option( + "--ibyfile", dest = "ibyfile", + help = "ibyfile(s) which are processed to find out target file paths") + parser.add_option( + "--sortname", dest = "sortname", action = "store_true", default = False, + help = "sort files by name") + parser.add_option( + "--sortsize", dest = "sortsize", action = "store_true", default = False, + help = "sort files by size") + parser.add_option( + "--cppdefines", dest = "cppdefines", + help = "cpp defines for iby, e.g. --cppdefines __JAVA,__JAVA_MIDP20") + parser.add_option( + "--include", dest = "include", + help = "Include file for iby cpp, e.g. --include /epoc32/include/config/ncp52/bldpublic.hrh") + (options, args) = parser.parse_args() + + if options.mmproot: + binaries = getMmpTargets(options.mmproot) + + elif options.ibyfile: + cppdefines = options.cppdefines and options.cppdefines.split(",") + + ibys = glob.glob(options.ibyfile) + binaries = flatten([getIbySources(iby, cppdefines, options.include) + for iby in ibys]) + + sizes = getSizes(binaries) + + if options.sortsize: + sizes = sorted(sizes) + if options.sortname: + sizes = sorted(sizes, cmp=lambda x,y: cmp(x[1], y[1])) + + printSizes(sizes) + +if __name__ == "__main__": + main() diff -r d6dafc5d983f -r 1627c337e51e build/buildutils/distribution.policy.s60.configuration.txt --- a/build/buildutils/distribution.policy.s60.configuration.txt Fri Oct 15 12:29:39 2010 +0300 +++ b/build/buildutils/distribution.policy.s60.configuration.txt Fri Oct 29 11:49:32 2010 +0300 @@ -12,22 +12,23 @@ # Always use slash ('/') as a path separator in this file # and do not end path definitions with a slash. +DEFAULT_POLICY : 7 +ROOT_POLICY : 7 /.svn : IGNORE /swt/internal : 7 /swt/animation/internal : 7 /swt/expanded/internal : 7 /swt/mobile/internal : 7 -/nokiauiapi_qt/javasrc/com/nokia/mid/ui/internal : 7 +/nokiauiapi_qt/javasrc/com/nokia/mid/ui/internal : 7 /internal : 1 /releng : 1 ROOT/tools : 1 -ROOT/javacommons/jvms/j9/s60 : 810 +/jrt_plat/java_registry_api/doc : 1 +/CgfxTestRunner : 1 +/nokiatests : 1 +/broadcast_stub/javasrc : 0 +/javaextensions/ccapi : 0 +/javacommons/jvms/j9/s60 : 810 /midprms : 102 /webservices/javasrc : 102 /webservices/tsrc : 102 -/CgfxTestRunner : 1 -/nokiatests : 1 -/broadcast_stub/javasrc : 1 -DEFAULT_POLICY : 7 -ROOT_POLICY : 7 -ROOT/javaextensions/ccapi : 0 diff -r d6dafc5d983f -r 1627c337e51e build/buildutils/omake.bat --- a/build/buildutils/omake.bat Fri Oct 15 12:29:39 2010 +0300 +++ b/build/buildutils/omake.bat Fri Oct 29 11:49:32 2010 +0300 @@ -19,13 +19,14 @@ rem Determine java root setlocal set JAVA_SRC_ROOT= +set RECURSION=. .. ..\.. ..\..\.. ..\..\..\.. ..\..\..\..\.. ..\..\..\..\..\.. ..\..\..\..\..\..\.. ..\..\..\..\..\..\..\.. ..\..\..\..\..\..\..\..\.. ..\..\..\..\..\..\..\..\..\.. rem See if we are within jrt package (indepent of actual location) -for %%a in (. .. ..\.. ..\..\.. ..\..\..\.. ..\..\..\..\.. ..\..\..\..\..\.. ..\..\..\..\..\..\..) do if "%JAVA_SRC_ROOT%" == "" if exist %%a\build\Makefile.comp call :setroot %%a +for %%a in (%RECURSION%) do if "%JAVA_SRC_ROOT%" == "" if exist %%a\build\Makefile.comp call :setroot %%a if not "%JAVA_SRC_ROOT%" == "" goto resolved rem See if we are within jrtext package co-located with jrt (indepent of actual location) -for %%a in (. .. ..\.. ..\..\.. ..\..\..\.. ..\..\..\..\.. ..\..\..\..\..\.. ..\..\..\..\..\..\..) do if "%JAVA_SRC_ROOT%" == "" if "%%~nxa" == "jrtext" if exist %%a\build\omj.pri if exist %%a\..\jrt\build\Makefile.comp call :setroot %%a\..\jrt +for %%a in (%RECURSION%) do if "%JAVA_SRC_ROOT%" == "" if "%%~nxa" == "jrtext" if exist %%a\build\omj.pri if exist %%a\..\jrt\build\Makefile.comp call :setroot %%a\..\jrt if not "%JAVA_SRC_ROOT%" == "" goto resolved rem See if this is subdirectory within \ext\app\jrtext diff -r d6dafc5d983f -r 1627c337e51e build/buildutils/svn2ccm_v3.py --- a/build/buildutils/svn2ccm_v3.py Fri Oct 15 12:29:39 2010 +0300 +++ b/build/buildutils/svn2ccm_v3.py Fri Oct 29 11:49:32 2010 +0300 @@ -28,11 +28,10 @@ # 2) Creates S60 distribution policies to directory # using setpolicyfiles.py script. # 3) Makes CCM sync and reconf for the CCM project. -# 4) Creates CCM default task. -# 5) Synchronizes the and directories. -# 6) If there were any changes, reconciles CCM project to database -# and commits CCM default task. If there were no changes, leaves -# the CCM default task open. +# 4) Synchronizes the and directories. +# 5) If there were any changes, creates CCM default task, +# reconciles CCM project to database and commits CCM +# default task. # # The script execution aborts immediately if any error occurs. # In this case the user must manually delete the ccm task and @@ -94,8 +93,9 @@ "\.cproject$": "xml", "\.crml$": "xml", "\.gcfml$": "xml", + "\.der$": "binary", + "\.dm$": "binary", "\.dr$": "binary", - "\.der$": "binary", "\.flm$": "makefile", "\.javaversion$": "ascii", "\.jupiter$": "xml", @@ -238,13 +238,6 @@ print "SVN2CCM: Reconfiguring CCM project", datetime.datetime.now() execute(["ccm", "reconf", "-r", "-p", quote_str(ccm_project_id)]) - # Create CCM task. - print "SVN2CCM: Creating CCM task", datetime.datetime.now() - if opts.ccm_description_file: - execute(["ccm", "task", "-create", "-default", "-release", quote_str(ccm_project_release), "-descriptionfile", quote_str(opts.ccm_description_file), "-synopsis", get_comment_string()]) - else: - execute(["ccm", "task", "-create", "-default", "-release", quote_str(ccm_project_release), "-description", get_comment_string(), "-synopsis", get_comment_string()]) - # Synchronize the SVN and CCM directories. print "SVN2CCM: Synchronizing from %s to %s %s" % \ (svn_path, ccm_path, str(datetime.datetime.now())) @@ -255,6 +248,12 @@ sync_dirs(svn_path, ccm_path, opts.ignore, opts.ignore_all + [".svn"]) if ccm_counter.changes_made(): + # Create CCM task. + print "SVN2CCM: Creating CCM task", datetime.datetime.now() + if opts.ccm_description_file: + execute(["ccm", "task", "-create", "-default", "-release", quote_str(ccm_project_release), "-descriptionfile", quote_str(opts.ccm_description_file), "-synopsis", get_comment_string()]) + else: + execute(["ccm", "task", "-create", "-default", "-release", quote_str(ccm_project_release), "-description", get_comment_string(), "-synopsis", get_comment_string()]) # Reconcile CCM project. print "SVN2CCM: Reconciling CCM project", datetime.datetime.now() execute(["ccm", "reconcile", "-r", "-cu", "-mwaf", "-update_db", "-p", quote_str(ccm_project_id)]) @@ -266,7 +265,7 @@ execute(["ccm", "task", "-ci", "default"]) else: # No changes, do not reconcile or commit. - print "SVN2CCM: WARNING: No changes, leaving CCM task open" + print "SVN2CCM: WARNING: No changes found" # Finished. ccm_counter.stop_time = datetime.datetime.now() diff -r d6dafc5d983f -r 1627c337e51e build/coberturautilities.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/build/coberturautilities.xml Fri Oct 29 11:49:32 2010 +0300 @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + jrt.shutdown.extension=com.nokia.mj.impl.rt.test.CoverageResultInvoker + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r d6dafc5d983f -r 1627c337e51e build/coberturautilities_stub.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/build/coberturautilities_stub.xml Fri Oct 29 11:49:32 2010 +0300 @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff -r d6dafc5d983f -r 1627c337e51e build/makefile.javaversion --- a/build/makefile.javaversion Fri Oct 15 12:29:39 2010 +0300 +++ b/build/makefile.javaversion Fri Oct 29 11:49:32 2010 +0300 @@ -1,2 +1,2 @@ # Set Java version (must be dot separated, without spaces) -JAVA_VERSION = 2.2.19 +JAVA_VERSION = 2.2.21 diff -r d6dafc5d983f -r 1627c337e51e build/utilities.s60.xml --- a/build/utilities.s60.xml Fri Oct 15 12:29:39 2010 +0300 +++ b/build/utilities.s60.xml Fri Oct 29 11:49:32 2010 +0300 @@ -76,6 +76,7 @@ + diff -r d6dafc5d983f -r 1627c337e51e build/utilities.xml --- a/build/utilities.xml Fri Oct 15 12:29:39 2010 +0300 +++ b/build/utilities.xml Fri Oct 29 11:49:32 2010 +0300 @@ -66,13 +66,14 @@ - - - + + + + - - - + @@ -229,6 +230,7 @@ + @@ -319,7 +321,8 @@ destdir="${dst.dir}" debug="${javac.debug.on}" debuglevel="lines,vars,source" - bootclasspath="${bcp}:${int.bcp}:${platform.api.jar}:${public.api.jar}${eswt.jar}"> + includeAntRuntime="false" + bootclasspath="${bcp}:${int.bcp}:${platform.api.jar}:${public.api.jar}${eswt.jar}:${cobertura.classpath}"> @@ -374,7 +377,7 @@ - + @@ -532,7 +535,7 @@ + emma.clean, cobertura.clean"> - + windowtitle="Runtime API"> - - - - - - - - + + + + + + + + - Runtime API]]> - Copyright © 2008 Nokia. All Rights Reserved.]]> - + Runtime API]]> + Copyright © 2008 Nokia. All Rights Reserved.]]> + diff -r d6dafc5d983f -r 1627c337e51e inc/build_defines.hrh --- a/inc/build_defines.hrh Fri Oct 15 12:29:39 2010 +0300 +++ b/inc/build_defines.hrh Fri Oct 29 11:49:32 2010 +0300 @@ -15,8 +15,8 @@ * */ -#define RD_JAVA_VERSION 2,2,19 -#define RD_JAVA_BIN_VERSION_NONQT 10.531 +#define RD_JAVA_VERSION 2,2,21 +#define RD_JAVA_BIN_VERSION_NONQT 10.533 #define RD_JAVA_SYMBIAN_TARGET #define RD_JAVA_S60_RELEASE_10_1 #define RD_JAVA_S60_RELEASE_10_1_ONWARDS diff -r d6dafc5d983f -r 1627c337e51e inc/build_defines.pri --- a/inc/build_defines.pri Fri Oct 15 12:29:39 2010 +0300 +++ b/inc/build_defines.pri Fri Oct 29 11:49:32 2010 +0300 @@ -13,5 +13,5 @@ # # Description: Generated file - do not edit manually # -RD_JAVA_BIN_VERSION = 10.2.19 +RD_JAVA_BIN_VERSION = 10.2.21 PROJECT_DEFINES *= RD_JAVA_SYMBIAN_TARGET RD_JAVA_S60_RELEASE_10_1 RD_JAVA_S60_RELEASE_10_1_ONWARDS RD_JAVA_S60_RELEASE_9_2_ONWARDS RD_JAVA_S60_RELEASE_5_0_ONWARDS RD_JAVA_PKG_SPLIT RD_JAVA_UI_QT RD_JAVA_STDCPPV5 RD_JAVA_EPOCALLOWDLLDATA_FIX RD_JAVA_HTTP_EMC_ENABLED RD_JAVA_NGA_ENABLED SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK RD_JAVA_PROXIMITY_LISTENER_ENABLED RD_JAVA_OPENC_BETA_PATCH OPENLCDUI_ENABLED RD_JAVA_OPENLCDUI_ENABLED RD_JAVA_INSTALLERUI_ENABLED RD_JAVA_PREWARM RD_JAVA_ADVANCED_TACTILE_FEEDBACK RD_JAVA_APPLICATION_SETTINGS_QT RD_JAVA_MIDPRMS_DB diff -r d6dafc5d983f -r 1627c337e51e inc/java.txt --- a/inc/java.txt Fri Oct 15 12:29:39 2010 +0300 +++ b/inc/java.txt Fri Oct 29 11:49:32 2010 +0300 @@ -1,1 +1,1 @@ -2.2.19 +2.2.21 diff -r d6dafc5d983f -r 1627c337e51e javacommons/comms/build/bwins/javacommsu.def --- a/javacommons/comms/build/bwins/javacommsu.def Fri Oct 15 12:29:39 2010 +0300 +++ b/javacommons/comms/build/bwins/javacommsu.def Fri Oct 29 11:49:32 2010 +0300 @@ -28,9 +28,9 @@ ?attachToVm@CommsEndpoint@comms@java@@UAEHPAUJNIEnv_@@@Z @ 27 NONAME ; int java::comms::CommsEndpoint::attachToVm(struct JNIEnv_ *) ?begin@CommsMessage@comms@java@@QAEXXZ @ 28 NONAME ; void java::comms::CommsMessage::begin(void) ?connect@CommsClientEndpoint@comms@java@@UAEHH@Z @ 29 NONAME ; int java::comms::CommsClientEndpoint::connect(int) - ?detachFromVm@CommsClientEndpoint@comms@java@@UAEHXZ @ 30 NONAME ; int java::comms::CommsClientEndpoint::detachFromVm(void) - ?detachFromVm@CommsEndpoint@comms@java@@UAEHXZ @ 31 NONAME ; int java::comms::CommsEndpoint::detachFromVm(void) - ?detachFromVm@CommsServerEndpoint@comms@java@@UAEHXZ @ 32 NONAME ; int java::comms::CommsServerEndpoint::detachFromVm(void) + ?detachFromVm@CommsClientEndpoint@comms@java@@UAEHPAUJNIEnv_@@@Z @ 30 NONAME ; int java::comms::CommsClientEndpoint::detachFromVm(struct JNIEnv_ *) + ?detachFromVm@CommsEndpoint@comms@java@@UAEHPAUJNIEnv_@@@Z @ 31 NONAME ; int java::comms::CommsEndpoint::detachFromVm(struct JNIEnv_ *) + ?detachFromVm@CommsServerEndpoint@comms@java@@UAEHPAUJNIEnv_@@@Z @ 32 NONAME ; int java::comms::CommsServerEndpoint::detachFromVm(struct JNIEnv_ *) ?disconnect@CommsClientEndpoint@comms@java@@UAEHXZ @ 33 NONAME ; int java::comms::CommsClientEndpoint::disconnect(void) ?find@CommsClientEndpoint@comms@java@@SAPAV123@ABV?$basic_string@_WV?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z @ 34 NONAME ; class java::comms::CommsClientEndpoint * java::comms::CommsClientEndpoint::find(class std::basic_string, class std::allocator > const &) ?find@CommsServerEndpoint@comms@java@@SAPAV123@ABV?$basic_string@_WV?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z @ 35 NONAME ; class java::comms::CommsServerEndpoint * java::comms::CommsServerEndpoint::find(class std::basic_string, class std::allocator > const &) diff -r d6dafc5d983f -r 1627c337e51e javacommons/comms/build/eabi/javacommsu.def --- a/javacommons/comms/build/eabi/javacommsu.def Fri Oct 15 12:29:39 2010 +0300 +++ b/javacommons/comms/build/eabi/javacommsu.def Fri Oct 29 11:49:32 2010 +0300 @@ -31,7 +31,7 @@ _ZN4java5comms12CommsMessagersERx @ 30 NONAME _ZN4java5comms13CommsEndpoint10attachToVmEP7JNIEnv_ @ 31 NONAME _ZN4java5comms13CommsEndpoint11sendReceiveERNS0_12CommsMessageES3_i @ 32 NONAME - _ZN4java5comms13CommsEndpoint12detachFromVmEv @ 33 NONAME + _ZN4java5comms13CommsEndpoint12detachFromVmEP7JNIEnv_ @ 33 NONAME _ZN4java5comms13CommsEndpoint13handleMessageERNS0_12CommsMessageE @ 34 NONAME _ZN4java5comms13CommsEndpoint14processMessageEPKNS0_12ipcMessage_sE @ 35 NONAME _ZN4java5comms13CommsEndpoint16handleIpcMessageERNS0_12CommsMessageE @ 36 NONAME @@ -51,7 +51,7 @@ _ZN4java5comms13CommsEndpointD1Ev @ 50 NONAME _ZN4java5comms13CommsEndpointD2Ev @ 51 NONAME _ZN4java5comms19CommsClientEndpoint10disconnectEv @ 52 NONAME - _ZN4java5comms19CommsClientEndpoint12detachFromVmEv @ 53 NONAME + _ZN4java5comms19CommsClientEndpoint12detachFromVmEP7JNIEnv_ @ 53 NONAME _ZN4java5comms19CommsClientEndpoint4findERKSbIwSt11char_traitsIwESaIwEE @ 54 NONAME _ZN4java5comms19CommsClientEndpoint4sendERNS0_12CommsMessageE @ 55 NONAME _ZN4java5comms19CommsClientEndpoint7connectEi @ 56 NONAME @@ -62,7 +62,7 @@ _ZN4java5comms19CommsClientEndpointD0Ev @ 61 NONAME _ZN4java5comms19CommsClientEndpointD1Ev @ 62 NONAME _ZN4java5comms19CommsClientEndpointD2Ev @ 63 NONAME - _ZN4java5comms19CommsServerEndpoint12detachFromVmEv @ 64 NONAME + _ZN4java5comms19CommsServerEndpoint12detachFromVmEP7JNIEnv_ @ 64 NONAME _ZN4java5comms19CommsServerEndpoint4findERKSbIwSt11char_traitsIwESaIwEE @ 65 NONAME _ZN4java5comms19CommsServerEndpoint4sendERNS0_12CommsMessageE @ 66 NONAME _ZN4java5comms19CommsServerEndpoint4stopEv @ 67 NONAME diff -r d6dafc5d983f -r 1627c337e51e javacommons/comms/inc/commsclientendpoint.h --- a/javacommons/comms/inc/commsclientendpoint.h Fri Oct 15 12:29:39 2010 +0300 +++ b/javacommons/comms/inc/commsclientendpoint.h Fri Oct 29 11:49:32 2010 +0300 @@ -137,7 +137,7 @@ */ OS_IMPORT virtual int send(CommsMessage& aMessage); - OS_IMPORT virtual int detachFromVm(); + OS_IMPORT virtual int detachFromVm(JNIEnv* aEnv); private: std::auto_ptr mIpc; int mAddress; diff -r d6dafc5d983f -r 1627c337e51e javacommons/comms/inc/commsendpoint.h --- a/javacommons/comms/inc/commsendpoint.h Fri Oct 15 12:29:39 2010 +0300 +++ b/javacommons/comms/inc/commsendpoint.h Fri Oct 29 11:49:32 2010 +0300 @@ -327,11 +327,11 @@ /** * Detach internal message loop thread from JVM. - * @param - + * @param[in] aEnv JNI context * @see attachToVm * @return 0 in success, errno in failure */ - OS_IMPORT virtual int detachFromVm(); + OS_IMPORT virtual int detachFromVm(JNIEnv* aEnv); protected: JavaVM* mVm; diff -r d6dafc5d983f -r 1627c337e51e javacommons/comms/inc/commsserverendpoint.h --- a/javacommons/comms/inc/commsserverendpoint.h Fri Oct 15 12:29:39 2010 +0300 +++ b/javacommons/comms/inc/commsserverendpoint.h Fri Oct 29 11:49:32 2010 +0300 @@ -143,7 +143,7 @@ */ OS_IMPORT virtual int send(CommsMessage& aMessage); - OS_IMPORT virtual int detachFromVm(); + OS_IMPORT virtual int detachFromVm(JNIEnv* aEnv); private: std::auto_ptr mIpc; int mAddress; diff -r d6dafc5d983f -r 1627c337e51e javacommons/comms/src/commsclientendpoint.cpp --- a/javacommons/comms/src/commsclientendpoint.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javacommons/comms/src/commsclientendpoint.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -87,10 +87,10 @@ } -OS_EXPORT int CommsClientEndpoint::detachFromVm() +OS_EXPORT int CommsClientEndpoint::detachFromVm(JNIEnv* aEnv) { JELOG2(EJavaComms); - CommsEndpoint::detachFromVm(); + CommsEndpoint::detachFromVm(aEnv); int rc = disconnect(); rc = connect(mAddress); diff -r d6dafc5d983f -r 1627c337e51e javacommons/comms/src/commsendpoint.cpp --- a/javacommons/comms/src/commsendpoint.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javacommons/comms/src/commsendpoint.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -442,13 +442,14 @@ return rc; } -OS_EXPORT int CommsEndpoint::unregisterDefaultJavaListener(jobject, JNIEnv*) +OS_EXPORT int CommsEndpoint::unregisterDefaultJavaListener(jobject, JNIEnv* aEnv) { ScopedLock lock(mListenersMutex); int rc = 0; if (mDefaultListener && mDefaultListener->getListener() == 0) { + mDefaultListener->release(aEnv); delete mDefaultListener; mDefaultListener = 0; LOG(EJavaComms, EInfo, "Unregistered default java listener"); @@ -476,7 +477,7 @@ return rc; } -OS_EXPORT int CommsEndpoint::detachFromVm() +OS_EXPORT int CommsEndpoint::detachFromVm(JNIEnv* aEnv) { // JELOG2(EJavaComms); ScopedLock lock(mListenersMutex); @@ -484,6 +485,7 @@ // remove java listeners if (mDefaultListener && mDefaultListener->getListener() == 0) { + mDefaultListener->release(aEnv); delete mDefaultListener; mDefaultListener = 0; LOG(EJavaComms, EInfo, "Removed default java listener (detach)"); @@ -495,7 +497,7 @@ { LOG1(EJavaComms, EInfo, "Removed java listener for module id %d (detach)", it->first); - (it->second)->release(mJNIEnv); + (it->second)->release(aEnv); delete it->second; mListeners.erase(it); it = mListeners.begin(); diff -r d6dafc5d983f -r 1627c337e51e javacommons/comms/src/commsendpointnative.cpp --- a/javacommons/comms/src/commsendpointnative.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javacommons/comms/src/commsendpointnative.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -162,13 +162,13 @@ } JNIEXPORT void JNICALL Java_com_nokia_mj_impl_comms_CommsEndpointBase__1detach( - JNIEnv*, + JNIEnv* aEnv, jobject, jint aHandle) { JELOG2(EJavaComms); CommsEndpoint* endpoint = reinterpret_cast(aHandle); - endpoint->detachFromVm(); + endpoint->detachFromVm(aEnv); } // CommsEndpoint methods diff -r d6dafc5d983f -r 1627c337e51e javacommons/comms/src/commsserverendpoint.cpp --- a/javacommons/comms/src/commsserverendpoint.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javacommons/comms/src/commsserverendpoint.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -79,10 +79,10 @@ return rc; } -OS_EXPORT int CommsServerEndpoint::detachFromVm() +OS_EXPORT int CommsServerEndpoint::detachFromVm(JNIEnv* aEnv) { JELOG2(EJavaComms); - CommsEndpoint::detachFromVm(); + CommsEndpoint::detachFromVm(aEnv); int rc = stop(); rc = start(mAddress); diff -r d6dafc5d983f -r 1627c337e51e javacommons/comms/tsrc/javaapi/javasrc/com/nokia/mj/test/comms/TestCommsEndpoint.java --- a/javacommons/comms/tsrc/javaapi/javasrc/com/nokia/mj/test/comms/TestCommsEndpoint.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javacommons/comms/tsrc/javaapi/javasrc/com/nokia/mj/test/comms/TestCommsEndpoint.java Fri Oct 29 11:49:32 2010 +0300 @@ -39,6 +39,7 @@ private final int MODULE_ID_SLEEP_1S = 1000; // reply msg is delayed by 1s private final int MODULE_ID_SLEEP_5S = 5000; private final int MODULE_ID_SLEEP_10S = 10000; + private final int MODULE_ID_DELAY_REPLY = 11000; private final int PLUGIN_ID_JAVACAPTAIN_COMMS_TESTER_C = 101; // see comms.h @@ -203,6 +204,22 @@ } })); + aSuite.addTest(new TestCommsEndpoint("testDelayedReply", new TestMethod() + { + public void run(TestCase tc) + { + ((TestCommsEndpoint) tc).testDelayedReply(); + } + })); + + aSuite.addTest(new TestCommsEndpoint("testNoUnregisterWhenDetaching", new TestMethod() + { + public void run(TestCase tc) + { + ((TestCommsEndpoint) tc).testNoUnregisterWhenDetaching(); + } + })); + return aSuite; } @@ -1483,5 +1500,86 @@ } + public void testDelayedReply() + { + System.out.println("TestCommsEndpoint.testDelayedReply()"); + + class SendReceiver extends Thread + { + public void run() + { + try + { + CommsEndpoint client = new CommsEndpoint(); + client.connect(SERVER_ADDRESS); + CommsMessage message = new CommsMessage(); + message.setModuleId(MODULE_ID_DELAY_REPLY); + + CommsMessage reply = client.sendReceive(message, CommsEndpoint.WAIT_FOR_EVER); + client.disconnect(); + client.destroy(); + } + catch (Exception e) + { + e.printStackTrace(); + fail("SendReceiver.run"); + } + } + } + + try + { + // reply to first message is delayed until second message is received + // by the server + SendReceiver client1 = new SendReceiver(); + SendReceiver client2 = new SendReceiver(); + + client1.start(); + client2.start(); + client1.join(); + client2.join(); + } + catch (Exception e) + { + e.printStackTrace(); + fail("testDelayedReply failed"); + } + } + + public void testNoUnregisterWhenDetaching() + { + System.out.println("TestCommsEndpoint.testNoUnregisterWhenDetaching()"); + class TestListener implements CommsListener + { + public void processMessage(CommsMessage message) {} + } + + CommsEndpoint comms = null; + try + { + comms = CommsEndpoint.find(SERVER_NAME); + assertNotNull(comms); + + // leave listeners unregistered + comms.registerListener(MODULE_ID_A, new TestListener()); + comms.registerDefaultListener(new TestListener()); + CommsMessage msg = new CommsMessage(); + msg.setModuleId(MODULE_ID_A); + comms.send(msg); + msg.setModuleId(MODULE_ID_B); + comms.send(msg); + msg = comms.sendReceive(msg, 1); + } + catch (CommsException e) + { + e.printStackTrace(); + fail("ok case"); + } + finally + { + comms.destroy(); + comms = null; + } + } } diff -r d6dafc5d983f -r 1627c337e51e javacommons/comms/tsrc/javaapi/javasrc/com/nokia/mj/test/comms/TestCommsServerEndpoint.java --- a/javacommons/comms/tsrc/javaapi/javasrc/com/nokia/mj/test/comms/TestCommsServerEndpoint.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javacommons/comms/tsrc/javaapi/javasrc/com/nokia/mj/test/comms/TestCommsServerEndpoint.java Fri Oct 29 11:49:32 2010 +0300 @@ -119,6 +119,15 @@ } })); + aSuite.addTest(new TestCommsServerEndpoint("testServerAndTwoClients", new TestMethod() + { + public void run(TestCase tc) + { + ((TestCommsServerEndpoint) tc).testServerAndTwoClients(); + } + })); + + return aSuite; } @@ -724,6 +733,89 @@ } } + public void testServerAndTwoClients() + { + System.out.println("TestCommsServerEndpoint.testServerAndTwoClients()"); + + class RouterListener implements CommsListener + { + CommsEndpointBase iComms; + CommsMessage iFirstMessage; + + public RouterListener(CommsEndpointBase aComms) + { + iComms = aComms; + } + + public void processMessage(CommsMessage aMessage) + { + if (iFirstMessage == null) + { + // delay reply until second message is received + iFirstMessage = aMessage; + } + else + { + // reply to first client + CommsMessage reply = new CommsMessage(); + reply.replyTo(iFirstMessage); + iComms.send(reply); + + // reply to second client + reply.replyTo(aMessage); + iComms.send(reply); + } + } + } + + class SendReceiver extends Thread + { + public void run() + { + try + { + CommsEndpoint client = new CommsEndpoint(); + client.connect(SERVER_ADDRESS); + CommsMessage reply = client.sendReceive(new CommsMessage(), CommsEndpoint.WAIT_FOR_EVER); + client.disconnect(); + client.destroy(); + } + catch (Exception e) + { + e.printStackTrace(); + fail("SendReceiver.run"); + } + } + } + + CommsServerEndpoint server = null; + try + { + server = new CommsServerEndpoint(); + RouterListener listener = new RouterListener(server); + server.registerDefaultListener(listener); + server.start(SERVER_ADDRESS); + + SendReceiver client1 = new SendReceiver(); + SendReceiver client2 = new SendReceiver(); + + client1.start(); + client2.start(); + client1.join(); + client2.join(); + + server.stop(); + } + catch (Exception e) + { + e.printStackTrace(); + fail("testServerAndTwoClients failed"); + } + finally + { + server.destroy(); + } + } } diff -r d6dafc5d983f -r 1627c337e51e javacommons/comms/tsrc/javaapi/src/commsextensionplugin.cpp --- a/javacommons/comms/tsrc/javaapi/src/commsextensionplugin.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javacommons/comms/tsrc/javaapi/src/commsextensionplugin.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -36,6 +36,7 @@ const int MODULE_ID_SLEEP_1S = 1000; const int MODULE_ID_SLEEP_5S = 5000; const int MODULE_ID_SLEEP_10S = 10000; +const int MODULE_ID_DELAY_REPLY = 11000; #ifdef __SYMBIAN32__ java::captain::ExtensionPluginInterface* getExtensionPlugin() @@ -68,7 +69,7 @@ return result; } -CommsExtensionPlugin::CommsExtensionPlugin() : mCore(0), mComms(0) +CommsExtensionPlugin::CommsExtensionPlugin() : mCore(0), mComms(0), mDelayedReplyCount(0) { JELOG2(EJavaComms); } @@ -93,6 +94,7 @@ mComms->registerListener(MODULE_ID_SLEEP_1S, this); mComms->registerListener(MODULE_ID_SLEEP_5S, this); mComms->registerListener(MODULE_ID_SLEEP_10S, this); + mComms->registerListener(MODULE_ID_DELAY_REPLY, this); } void CommsExtensionPlugin::stopPlugin() @@ -107,6 +109,7 @@ mComms->unregisterListener(MODULE_ID_SLEEP_1S, this); mComms->unregisterListener(MODULE_ID_SLEEP_5S, this); mComms->unregisterListener(MODULE_ID_SLEEP_10S, this); + mComms->unregisterListener(MODULE_ID_DELAY_REPLY, this); mCore = 0; mComms = 0; @@ -197,6 +200,28 @@ #ifdef __SYMBIAN32__ break; #endif + case MODULE_ID_DELAY_REPLY: + { + if (mDelayedReplyCount == 0) + { + mDelayedReply = aMessage; + mDelayedReplyCount++; + } + else + { + // reply to first message + CommsMessage reply; + reply.replyTo(mDelayedReply); + mComms->send(reply); + + // reply to message client + reply.replyTo(aMessage); + mComms->send(reply); + mDelayedReplyCount = 0; + } + } + break; + default: mReply = aMessage; mReply.setReceiver(aMessage.getSender()); diff -r d6dafc5d983f -r 1627c337e51e javacommons/comms/tsrc/javaapi/src/commsextensionplugin.h --- a/javacommons/comms/tsrc/javaapi/src/commsextensionplugin.h Fri Oct 15 12:29:39 2010 +0300 +++ b/javacommons/comms/tsrc/javaapi/src/commsextensionplugin.h Fri Oct 29 11:49:32 2010 +0300 @@ -53,6 +53,8 @@ CoreInterface* mCore; CommsEndpoint* mComms; CommsMessage mReply; + CommsMessage mDelayedReply; + int mDelayedReplyCount; }; } // namespace comms diff -r d6dafc5d983f -r 1627c337e51e javacommons/comms/tsrc/src/sendreceive.cpp --- a/javacommons/comms/tsrc/src/sendreceive.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javacommons/comms/tsrc/src/sendreceive.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -410,3 +410,73 @@ monitor->wait(); CHECK(!con.disconnect()); } + + +/** + * Test sendReceive with two clients + * 1. server replies to first message after second message is received + * (and two clients use sendReceive to send single messsage) + */ +class RoutingListener : public CommsListener +{ +public: + RoutingListener(CommsEndpoint& aComms) : mComms(aComms), mMsgCount(0) {} + + virtual void processMessage(CommsMessage& aMessage) + { + if (mMsgCount == 0) + { + // delay reply until second message is received + mFirstMessage = aMessage; + } + else + { + // reply to first client + CommsMessage reply; + reply.replyTo(mFirstMessage); + mComms.send(reply); + + // reply to second client + reply.replyTo(aMessage); + mComms.send(reply); + } + mMsgCount++; + } +private: + CommsMessage mFirstMessage; + int mMsgCount; + CommsEndpoint& mComms; +}; + +void doSendReceive() +{ + CommsClientEndpoint con; + CHECK(!con.connect(IPC_ADDRESS_COMMS_MODULE_TEST + 1)); + CommsMessage msg; + CommsMessage receivedMsg; + CHECK(!con.sendReceive(msg, receivedMsg, WAIT_FOR_EVER)); + CHECK(!con.disconnect()); +} + +void* clientSendReceiveThread(void*) +{ + doSendReceive(); + return 0; +} + +TEST(SendReceive, twoClientsAndServer) +{ + CommsServerEndpoint server; + RoutingListener listener(server); + CHECK(!server.registerDefaultListener(&listener)); + CHECK(!server.start(IPC_ADDRESS_COMMS_MODULE_TEST + 1)); + + pthread_t thread1; + pthread_t thread2; + pthread_create(&thread1, 0, &clientSendReceiveThread, 0); + pthread_create(&thread2, 0, &clientSendReceiveThread, 0); + pthread_join(thread1, 0); + pthread_join(thread2, 0); + + server.stop(); +} diff -r d6dafc5d983f -r 1627c337e51e javacommons/connectionmanager/src.s60/connectionmanager.cpp --- a/javacommons/connectionmanager/src.s60/connectionmanager.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javacommons/connectionmanager/src.s60/connectionmanager.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -85,7 +85,7 @@ TCmDefConnType type; RCmManager * mgr = new(ELeave) RCmManager(); - mgr->OpenL(); + mgr->OpenLC(); if (aDefault) { @@ -93,18 +93,24 @@ mgr->ReadDefConnL(obj); id = obj.iId; type = obj.iType; + if ((type ==ECmDefConnConnectionMethod) && (id == aMatchIapId)) { + CleanupStack::PopAndDestroy(mgr); return true; } else if (type != ECmDefConnDestination) { + CleanupStack::PopAndDestroy(mgr); return false; } } RCmDestination tmpdst = mgr->DestinationL(id); ILOG1(ESOCKET,"Is connected return value = %d ", tmpdst.IsConnectedL()); + + CleanupStack::PopAndDestroy(mgr); + if (!(tmpdst.IsConnectedL())) { return false; // no access point within this destination are active @@ -119,8 +125,6 @@ } } return false; - - } // --------------------------------------------------------------------------- @@ -139,14 +143,12 @@ TCmDefConnValue obj; HBufC8 * des; - mgr->ReadDefConnL(obj); id = obj.iId; type = obj.iType; LOG1(ESOCKET,EInfo,"readDefConnL returned %d",id); LOG1(ESOCKET,EInfo,"type is %d",type); - CleanupStack::PopAndDestroy(); - + CleanupStack::PopAndDestroy(mgr); if (type == ECmDefConnAskOnce || type == ECmDefConnConnectionMethod || type == ECmDefConnDestination) { @@ -205,7 +207,6 @@ CleanupClosePushL(dlgSv); User::LeaveIfError(dlgSv.Connect()); - TRequestStatus status(KRequestPending); LOG(ESOCKET,EInfo,"prompting by regenconagent "); dlgSv.AccessPointConnection(dummy, dummy, snapOrIapId, prefs.iBearerSet, status); @@ -213,7 +214,6 @@ CleanupStack::PopAndDestroy(&dlgSv); User::LeaveIfError(status.Int()); - TMDBElementId tableId = snapOrIapId & KCDMaskShowRecordType; if (tableId == KCDTIdNetworkRecord) { @@ -289,12 +289,17 @@ int snapid = KJavaNetworkAccessNotSpecified; std::auto_ptr js(JavaStorage::createInstance()); - js->open(JAVA_DATABASE_NAME); - - - // Read all attributes of one application specified by UID. - js->read(APPLICATION_PACKAGE_TABLE, aAppSuiteUid, entries); - js->close(); + try + { + js->open(JAVA_DATABASE_NAME); + // Read all attributes of one application specified by UID. + js->read(APPLICATION_PACKAGE_TABLE, aAppSuiteUid, entries); + js->close(); + } + catch (JavaStorageException& aJse) + { + LOG(ESOCKET,EInfo,"Attribute read failed."); + } // set the entry as ACCESS_POINT attribute.setEntry(ACCESS_POINT, L""); @@ -308,14 +313,14 @@ { JavaStorageEntry sourceEntry = (*findIterator); temp.append(sourceEntry.entryValue().c_str()); - HBufC * value = S60CommonUtils::wstringToDes(temp.c_str()); - HBufC8 * temp1 = HBufC8::NewL(value->Des().Length()); + std::auto_ptrvalue(S60CommonUtils::wstringToDes(temp.c_str())); + std::auto_ptr temp1(HBufC8::NewL(value->Des().Length())); temp1->Des().Copy(value->Des()); TRAP_IGNORE(snapid = ParseNetworkAccessPointL(*temp1)); } else { - LOG(ESOCKET,EInfo,"Name attribute does not exists."); + LOG(ESOCKET,EInfo,"Access point attribute does not exists."); } entries.clear(); } @@ -447,7 +452,7 @@ } } - HBufC* temp1 = HBufC::NewL(des->Des().Length()+1); + std::auto_ptrtemp1(HBufC::NewL(des->Des().Length()+1)); temp1->Des().Copy(des->Des()); int len1 = des->Length(); @@ -463,13 +468,7 @@ ptr16.ZeroTerminate(); LOG1(ESOCKET,EInfo,"ConnectionManager::setApnIdL() - len of apnString = %d", wcslen(apnString)); - - std::wstring tmpstring(apnString); - char *dirName = JavaCommonUtils::wstringToUtf8(tmpstring); - LOG1(ESOCKET,EInfo,"COnnectionManager::setApnIdL() - storing %s into javastorage",dirName); - - - js->startTransaction(); + LOG1(ESOCKET,EInfo,"COnnectionManager::setApnIdL() - storing %S into javastorage", apnString); attribute.setEntry(ACCESS_POINT, apnString); updateEntries.insert(attribute); @@ -477,8 +476,10 @@ attribute.setEntry(ID, aAppSuiteUid.toString()); matchEntries.insert(attribute); + delete [] apnString; LOG(ESOCKET,EInfo,"ConnectionManager::setApnIdL() - before js update"); + try { js->update(APPLICATION_PACKAGE_TABLE, updateEntries, matchEntries); @@ -491,18 +492,6 @@ return; } - try - { - js->commitTransaction(); - } - catch (JavaStorageException jse) - { - ELOG(ESOCKET,"Commit transaction in javastorage db failed"); - js->close(); - CleanupStack::PopAndDestroy(des); - return; - } - js->close(); updateEntries.clear(); matchEntries.clear(); diff -r d6dafc5d983f -r 1627c337e51e javacommons/connectionmanager/src.s60/connectionmanagerjni.cpp --- a/javacommons/connectionmanager/src.s60/connectionmanagerjni.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javacommons/connectionmanager/src.s60/connectionmanagerjni.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -61,13 +61,14 @@ { LOG1(ESOCKET,EInfo,"+apnInfo = %s",apnInfo); jstring jnistring = aJni->NewStringUTF(apnInfo); + delete[] apnInfo; return jnistring; } else { + delete[] apnInfo; return NULL; } - } JNIEXPORT jstring JNICALL @@ -81,10 +82,12 @@ { LOG1(ESOCKET,EInfo,"+apnInfo = %s",apnInfo); jstring jnistring = aJni->NewStringUTF(apnInfo); + delete[] apnInfo; return jnistring; } else { + delete[] apnInfo; return NULL; } } diff -r d6dafc5d983f -r 1627c337e51e javacommons/fileutils/src/nativefileiohandler.cpp --- a/javacommons/fileutils/src/nativefileiohandler.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javacommons/fileutils/src/nativefileiohandler.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -392,6 +392,8 @@ struct stat fileStat; int error = lstat(utf8Name, &fileStat); + delete[] utf8Name; + if (error < 0) { int error = errno; diff -r d6dafc5d983f -r 1627c337e51e javacommons/gcfprotocols/http/inc.s60/chttptransactionclient.h --- a/javacommons/gcfprotocols/http/inc.s60/chttptransactionclient.h Fri Oct 15 12:29:39 2010 +0300 +++ b/javacommons/gcfprotocols/http/inc.s60/chttptransactionclient.h Fri Oct 29 11:49:32 2010 +0300 @@ -148,6 +148,7 @@ TInt iFlag; bool iPartialPostData; bool iEndOfRequest; + bool iRestartedFlag; }; diff -r d6dafc5d983f -r 1627c337e51e javacommons/gcfprotocols/http/inc.s60/httpsessionclient.h --- a/javacommons/gcfprotocols/http/inc.s60/httpsessionclient.h Fri Oct 15 12:29:39 2010 +0300 +++ b/javacommons/gcfprotocols/http/inc.s60/httpsessionclient.h Fri Oct 29 11:49:32 2010 +0300 @@ -77,7 +77,8 @@ RLibrary iCustomiserLib; RSocketServ iSocketServ; RConnection iConnection; - TInt iApnId ; + TInt iApnId ; // stores the ap id, could be SNAP id or IAP id depending on iApType + TInt iApType; // stores the access point type, 2= SNAP, 3=IAP //MHttpClientCustomiser* iCustomiser; }; diff -r d6dafc5d983f -r 1627c337e51e javacommons/gcfprotocols/http/javasrc.s60/com/nokia/mj/impl/http/HttpConnectionNative.java --- a/javacommons/gcfprotocols/http/javasrc.s60/com/nokia/mj/impl/http/HttpConnectionNative.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javacommons/gcfprotocols/http/javasrc.s60/com/nokia/mj/impl/http/HttpConnectionNative.java Fri Oct 29 11:49:32 2010 +0300 @@ -1232,7 +1232,6 @@ protected synchronized void sendRequest(boolean aPartialDataFlag) throws IOException { ensureConnected(); - Logger.PLOG(Logger.ESOCKET, "HTTP sendRequest() , Flag : " + aPartialDataFlag); final int count = iRequestProperties.size(); int headerCount = count; diff -r d6dafc5d983f -r 1627c337e51e javacommons/gcfprotocols/http/src.s60/chttpsessionclient.cpp --- a/javacommons/gcfprotocols/http/src.s60/chttpsessionclient.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javacommons/gcfprotocols/http/src.s60/chttpsessionclient.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -119,6 +119,7 @@ { LOG(ESOCKET,EInfo,"+HttpSessionClient::ConstructL "); + iApType = aType; /*CActiveScheduler * scheduler = new CActiveScheduler(); CActiveScheduler::Install(scheduler); CActiveScheduler::Add(this);*/ @@ -188,6 +189,7 @@ if (aType == 3) // IAP Id { LOG(ESOCKET,EInfo,"+HttpSessionClient:: in iap case"); + iApnId = aAPNId; if (aAPNId != -1) { // Creates connection with selected IAP ID @@ -336,7 +338,7 @@ void HttpSessionClient::RestartConnection() { - LOG(ESOCKET,EInfo,"+HttpSessionClient::RestartConnection12 + "); + LOG2(ESOCKET,EInfo,"+HttpSessionClient::RestartConnection12 %d , type = %d ",iApnId,iApType); iConnection.Close(); TInt ret = iConnection.Open(iSocketServ); @@ -345,20 +347,29 @@ TConnPrefList prefList; TExtendedConnPref prefs; - if (iApnId!=-1) + if ((iApnId!=-1) && (iApType == 2)) prefs.SetSnapId(iApnId); + else if ((iApnId!=-1) && (iApType == 3)) + prefs.SetIapId(iApnId); TRAPD(err,prefList.AppendL(&prefs)); if (err == KErrNone) ret = iConnection.Start(prefList); else ret = iConnection.Start(); #else - TCommSnapPref connPref; - if (iApnId!=-1) - connPref.SetSnap(iApnId); - ret = iConnection.Start(connPref); - + if ((iApnId!=-1) && (iApType == 2)) // SNAP case + { + TCommSnapPref snapPref; + snapPref.SetSnap(iApnId); + ret = iConnection.Start(snapPref); + } + else if ((iApnId!=-1) && (iApType == 3)) // IAP case + { + TCommDbConnPref iapPref; + iapPref.SetIapId(iApnId); + ret = iConnection.Start(iapPref); + } #endif - LOG(ESOCKET,EInfo,"+HttpSessionClient::RestartConnection + "); + ELOG1(ESOCKET,"+HttpSessionClient::RestartConnection --ret = %d ",ret); } diff -r d6dafc5d983f -r 1627c337e51e javacommons/gcfprotocols/http/src.s60/chttptransactionclient.cpp --- a/javacommons/gcfprotocols/http/src.s60/chttptransactionclient.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javacommons/gcfprotocols/http/src.s60/chttptransactionclient.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -73,6 +73,7 @@ iFlag = 0; iDrmBuf = HBufC8::NewL(256); iEndOfRequest = false; + iRestartedFlag = false; OpenTransactionL(aUri , aRequestMethod); } @@ -129,11 +130,14 @@ } //Submit the transaction - RHTTPHeaders hdr = iTransaction.Request().GetHeaderCollection(); - TInt headerCount = aRawHeaders->Count(); - for (TInt ii=0; ii < headerCount; ++ii) + if (!iRestartedFlag) { - SetHeaderL(hdr, (*aRawHeaders)[ii]); + RHTTPHeaders hdr = iTransaction.Request().GetHeaderCollection(); + TInt headerCount = aRawHeaders->Count(); + for (TInt ii=0; ii < headerCount; ++ii) + { + SetHeaderL(hdr, (*aRawHeaders)[ii]); + } } //iHttpSession.CustomiseHeadersL(hdr); @@ -703,6 +707,7 @@ { iTransaction.Cancel(); iHttpSession.RestartConnection(); + iRestartedFlag = true; } if (iJavaWaitingOnCallBack) diff -r d6dafc5d983f -r 1627c337e51e javacommons/gcfprotocols/http/src.s60/nativehttpsession.cpp --- a/javacommons/gcfprotocols/http/src.s60/nativehttpsession.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javacommons/gcfprotocols/http/src.s60/nativehttpsession.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -94,6 +94,8 @@ HBufC* t2 = S60CommonUtils::wstringToDes(req2.c_str()); TInt handle= NativeHttpTransaction::NewL(*aJni,aPeer,/* NULL, */*iHttpSessionClient, (const TDesC*)t1, (const TDesC*)t2,this); + delete t1; + delete t2; return handle; } diff -r d6dafc5d983f -r 1627c337e51e javacommons/gcfprotocols/http/src.s60/nativetransaction.cpp --- a/javacommons/gcfprotocols/http/src.s60/nativetransaction.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javacommons/gcfprotocols/http/src.s60/nativetransaction.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -18,12 +18,7 @@ #include #include - -#ifdef RD_JAVA_S60_RELEASE_10_1_ONWARDS -#include -#else #include -#endif #include "com_nokia_mj_impl_http_HttpConnectionNative.h" #include "nativehttptransaction.h" diff -r d6dafc5d983f -r 1627c337e51e javacommons/gcfprotocols/secureconnection/inc/nativesecureconnection.h --- a/javacommons/gcfprotocols/secureconnection/inc/nativesecureconnection.h Fri Oct 15 12:29:39 2010 +0300 +++ b/javacommons/gcfprotocols/secureconnection/inc/nativesecureconnection.h Fri Oct 29 11:49:32 2010 +0300 @@ -156,8 +156,6 @@ ~NativeSecureConnection(); private: - char* mName; - char* mHost; char **mResult; int mMode; int mPort; diff -r d6dafc5d983f -r 1627c337e51e javacommons/gcfprotocols/secureconnection/src/nativesecureconnection.cpp --- a/javacommons/gcfprotocols/secureconnection/src/nativesecureconnection.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javacommons/gcfprotocols/secureconnection/src/nativesecureconnection.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -28,12 +28,6 @@ NativeSocketConnection(aName, aMode, aHost, aPort) { JELOG2(ESOCKET); - mName = NULL; - mHost = NULL; - mName = new char[strlen(aName) + 1]; - strcpy(mName, aName); - mHost = new char[strlen(aHost) + 1]; - strcpy(mHost, aHost); mMode = aMode; mPort = aPort; mSecureSocketBuffer = NULL; diff -r d6dafc5d983f -r 1627c337e51e javacommons/gcfprotocols/socket/socket/src.s60/apnsettings.cpp --- a/javacommons/gcfprotocols/socket/socket/src.s60/apnsettings.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javacommons/gcfprotocols/socket/socket/src.s60/apnsettings.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -42,6 +42,7 @@ char * fret = if_indextoname(aApn,interfacename); strcpy(ifr.ifr_name, interfacename); ILOG1(ESOCKET, "interface name is %s",interfacename); + delete[] interfacename; } else { diff -r d6dafc5d983f -r 1627c337e51e javacommons/gcfprotocols/socket/socket/src/socketserverconnectionjni.cpp --- a/javacommons/gcfprotocols/socket/socket/src/socketserverconnectionjni.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javacommons/gcfprotocols/socket/socket/src/socketserverconnectionjni.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -153,6 +153,7 @@ PLOG2(ESOCKET, "getLocalAddress, ret = %d, addr = %s" , err, addr); jstring jnistring = aJni->NewStringUTF(addr); aJni->SetObjectArrayElement(address, 0, jnistring); + delete[] addr; return err; } diff -r d6dafc5d983f -r 1627c337e51e javacommons/javastorage/tsrc/storageclient/build/storageclient.pro --- a/javacommons/javastorage/tsrc/storageclient/build/storageclient.pro Fri Oct 15 12:29:39 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -# -# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -# All rights reserved. -# This component and the accompanying materials are made available -# under the terms of "Eclipse Public License v1.0" -# which accompanies this distribution, and is available -# at the URL "http://www.eclipse.org/legal/epl-v10.html". -# -# Initial Contributors: -# Nokia Corporation - initial contribution. -# -# Contributors: -# -# Description: -# - -TEMPLATE=app -TARGET=JavaStorageTests -CONFIG += omj stl -CONFIG -= qt - -LIBS += -ljavacomms -LIBS += -ljavastorage -LIBS += -lCppUTest - -INCLUDEPATH += ../../../../../tools/cpputest/include/CppUTest - -symbian { -INCLUDEPATH += ../../../../../tools/cpputest/include/Platforms/Symbian -TARGET.CAPABILITY = all -tcb -allfiles -drm -} -!symbian { -INCLUDEPATH += ../../../../../tools/cpputest/include/Platforms/Gcc -LIBPATH += ../../../../../tools/cpputest/lib -} - - - -include(../../../../../build/omj.pri) diff -r d6dafc5d983f -r 1627c337e51e javacommons/jvms/nativeportlayer/tsrc/testfiles/testDrm.dcf diff -r d6dafc5d983f -r 1627c337e51e javacommons/jvms/nativeportlayer/tsrc/testfiles/testDrm.jar diff -r d6dafc5d983f -r 1627c337e51e javacommons/security/build/build.xml --- a/javacommons/security/build/build.xml Fri Oct 15 12:29:39 2010 +0300 +++ b/javacommons/security/build/build.xml Fri Oct 29 11:49:32 2010 +0300 @@ -57,7 +57,9 @@ - + + + diff -r d6dafc5d983f -r 1627c337e51e javacommons/utils/inc.s60/javauids.h --- a/javacommons/utils/inc.s60/javauids.h Fri Oct 15 12:29:39 2010 +0300 +++ b/javacommons/utils/inc.s60/javauids.h Fri Oct 29 11:49:32 2010 +0300 @@ -55,9 +55,16 @@ #define KOmjCleanerUid 0x2002119A // javaappconverter.exe is executed automatically once after OMJ has -// been installed. It uses javainstaller to convert S60 MIDlets to OMJ +// been installed as a SIS package. It uses javainstaller to convert +// S60 MIDlets to OMJ #define KJavaAppConverterUid 0x2002121C +// javaafterflashconverter.exe is executed by Java Captain after +// ROM image that contains OMJ has been flashed to a device that +// earlier had Java 1.x. It uses javainstaller to convert +// S60 MIDlets to OMJ +#define KJavaAfterFlashConverterUid 0x20034612 + // javarestoreconverter.exe is executed in if old Java 1.X MIDlet // have been restored and must be converted and installed to OMJ environment #define KJavaRestoreConverterUid 0x2002B3EA diff -r d6dafc5d983f -r 1627c337e51e javacommons/utils/inc/javainifileutils.h --- a/javacommons/utils/inc/javainifileutils.h Fri Oct 15 12:29:39 2010 +0300 +++ b/javacommons/utils/inc/javainifileutils.h Fri Oct 29 11:49:32 2010 +0300 @@ -34,7 +34,7 @@ FileContent(char* content) : mContent(content) {} ~FileContent() { - delete mContent; + delete[] mContent; mContent = 0; } char* getContent() diff -r d6dafc5d983f -r 1627c337e51e javaextensions/bluetooth/bluetoothcommons/bluetoothplatformcontrol/src.s60/s60btdialog.cpp --- a/javaextensions/bluetooth/bluetoothcommons/bluetoothplatformcontrol/src.s60/s60btdialog.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javaextensions/bluetooth/bluetoothcommons/bluetoothplatformcontrol/src.s60/s60btdialog.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -26,7 +26,7 @@ #ifdef RD_JAVA_S60_RELEASE_10_1_ONWARDS #include #include -#include +#include #define QUERY_BUF_LEN 512 #endif diff -r d6dafc5d983f -r 1627c337e51e javaextensions/bluetooth/bluetoothcommons/src.s60/servicerecord.cpp --- a/javaextensions/bluetooth/bluetoothcommons/src.s60/servicerecord.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javaextensions/bluetooth/bluetoothcommons/src.s60/servicerecord.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -219,12 +219,16 @@ if (persistentRecFd < 0) return errno; + // Reading and restoring the DeviceServiceClasses bits int devServClass = 0; ret = read(persistentRecFd, &devServClass, sizeof(devServClass)); if (ret <= 0) + { + close(persistentRecFd); return errno; + } if (devServClass != 0) { @@ -429,7 +433,7 @@ // Indicates a successful retrieval // of the service record from the persistent file mRestoredFromPersistentFile = true; - + close(persistentRecFd); return ret; } @@ -1312,6 +1316,7 @@ if (ret <= 0) { delete srvRecPopulator; + close(persistentRecFd); return; } @@ -1525,7 +1530,7 @@ } delete srvRecPopulator; - + close(persistentRecFd); return; } diff -r d6dafc5d983f -r 1627c337e51e javaextensions/centralrepository/javasrc/com/nokia/mj/impl/cenrep/CentralRepositoryImpl.java --- a/javaextensions/centralrepository/javasrc/com/nokia/mj/impl/cenrep/CentralRepositoryImpl.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javaextensions/centralrepository/javasrc/com/nokia/mj/impl/cenrep/CentralRepositoryImpl.java Fri Oct 29 11:49:32 2010 +0300 @@ -114,7 +114,7 @@ synchronized (this) { - if (iState != CLOSED) + if (iState != CLOSED && iState == OPEN) { iState = CLOSED; _close(iFunctionSourceHandle, iCenrepHandle); @@ -329,6 +329,7 @@ long key, int value); + /** * Checks if MIDlet is permited to access the central repository. diff -r d6dafc5d983f -r 1627c337e51e javaextensions/comm/src.s60/nativecommconnection.cpp --- a/javaextensions/comm/src.s60/nativecommconnection.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javaextensions/comm/src.s60/nativecommconnection.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -430,8 +430,17 @@ { JELOG2(ESOCKET); int ret = 0; - User::LoadPhysicalDevice(PDD_NAME); // load physical device drivers - User::LoadLogicalDevice(LDD_NAME); // load logical device drivers + TInt err = User::LoadPhysicalDevice(PDD_NAME); // load physical device drivers + if ( KErrNone != err ) + { + return err; + } + + err = User::LoadLogicalDevice(LDD_NAME); // load logical device drivers + if ( KErrNone != err ) + { + return err; + } ret = mCommServer.Connect(); if (ret != KErrNone) diff -r d6dafc5d983f -r 1627c337e51e javaextensions/datagram/datagram/src.s60/apnsettings.cpp --- a/javaextensions/datagram/datagram/src.s60/apnsettings.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javaextensions/datagram/datagram/src.s60/apnsettings.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -42,7 +42,7 @@ char * fret = if_indextoname(aApn,interfacename); strcpy(ifr.ifr_name, interfacename); ILOG1(ESOCKET, "interface name is %s",interfacename); - delete interfacename; + delete[] interfacename; } else { diff -r d6dafc5d983f -r 1627c337e51e javaextensions/datagram/datagram/src/datagramconnectionjni.cpp --- a/javaextensions/datagram/datagram/src/datagramconnectionjni.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javaextensions/datagram/datagram/src/datagramconnectionjni.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -88,6 +88,7 @@ LOG1(ESOCKET,EInfo,"addr = %s",addr); jnistring = aJni->NewStringUTF(addr); + delete[] addr; aJni->SetObjectArrayElement(aSenderAddr,0,jnistring); aJni->SetIntArrayRegion(aSenderPort,0,1,&port); diff -r d6dafc5d983f -r 1627c337e51e javaextensions/datagram/serverconnection/src/datagramserverconnection.cpp --- a/javaextensions/datagram/serverconnection/src/datagramserverconnection.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javaextensions/datagram/serverconnection/src/datagramserverconnection.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -141,19 +141,20 @@ int rt = -1; - char * addr = new char[MAX_SIZE]; + //char * addr = new char[MAX_SIZE]; if (rt < 0 && pThis->mKeepRunning) { char *buf = new char[BUFFER_SIZE]; // wchar_t * sender = new wchar_t[256]; - char * sender = new char[256]; + //char * sender = new char[256]; while (match == false) { rt = recvfrom(pThis->mListenDatagram, buf, BUFFER_SIZE, 0, (sockaddr*) &sender_addr, &size); - - strcpy(sender,inet_ntoa(sender_addr.sin_addr)); + delete[] buf; + //strcpy(sender,inet_ntoa(sender_addr.sin_addr));// Do we need this? + //delete[] sender; ILOG2(ESOCKET, "pThis->mListenDatagram = %d, port = %d",pThis-> mListenDatagram,pThis->mPort); // validate the filter diff -r d6dafc5d983f -r 1627c337e51e javaextensions/location/position/src/cpositioner.cpp --- a/javaextensions/location/position/src/cpositioner.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javaextensions/location/position/src/cpositioner.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -76,8 +76,8 @@ // Destructor CPositioner::~CPositioner() { + Cancel(); iTimer.Close(); - Cancel(); } // ----------------------------------------------------------------------------- diff -r d6dafc5d983f -r 1627c337e51e javaextensions/midppush/pushregistryplugin/inc/pushregistryhandler.h --- a/javaextensions/midppush/pushregistryplugin/inc/pushregistryhandler.h Fri Oct 15 12:29:39 2010 +0300 +++ b/javaextensions/midppush/pushregistryplugin/inc/pushregistryhandler.h Fri Oct 29 11:49:32 2010 +0300 @@ -63,7 +63,7 @@ /** * This class implements ExtensionPlugin interface of Java Manager. - * I.e. this class is starting point for all push related tasks in the + * I.e. this class is a starting point for all push related tasks in the * Java Captain process. */ OS_NONSHARABLE_CLASS(PushRegistryHandler) : public java::captain::ExtensionPluginInterface, @@ -162,6 +162,39 @@ int readIntArg(java::comms::CommsMessage& aMsg,const std::string& aMsgName); long long readLongLongArg(CommsMessage& aMsg,const std::string& aMsgName); + //Internal utility classes. + + /** + * This "function object" class is used as an "comparison object" + * when all driveInfo objects, which has equal root path, is removed from + * mDriveInfo vector container. This wrapper class is needed because + * we did not wanted to add operator() method to fileutils::driveInfo struct. + */ + class DriveInfoComparisonUtil + { + public: + DriveInfoComparisonUtil(const java::fileutils::driveInfo& aInfo) + : mObj(aInfo) {} + + ~DriveInfoComparisonUtil(){} + + DriveInfoComparisonUtil(const DriveInfoComparisonUtil& x) + :mObj(x.mObj){} + + bool operator()(const java::fileutils::driveInfo& x) + { + if (mObj.iRootPath == x.iRootPath) + return true; + return false; + } + + private: + const java::fileutils::driveInfo& mObj; + + //Not implemented. + DriveInfoComparisonUtil &operator=(const DriveInfoComparisonUtil& x); + }; + //Not implemented. PushRegistryHandler(const PushRegistryHandler &x); PushRegistryHandler &operator=(const PushRegistryHandler &x); diff -r d6dafc5d983f -r 1627c337e51e javaextensions/midppush/pushregistryplugin/src/pushregistryhandler.cpp --- a/javaextensions/midppush/pushregistryplugin/src/pushregistryhandler.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javaextensions/midppush/pushregistryplugin/src/pushregistryhandler.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -20,6 +20,7 @@ #include #include #include +#include #include "pushregistryhandler.h" #include "coreinterface.h" @@ -1055,20 +1056,15 @@ */ void PushRegistryHandler::removeDriveFromContainer(const driveInfo& aDriveInfo) { - for (driveInfos::iterator iter = mDriveInfo.begin(); iter != mDriveInfo.end();) - { - //Root path is unique for every drive and it is always available - //in the driveInfo so it is safe to compare equality of two driveInfo objects - //with this value. - //On the safe side, a whole list is looped through. - if (aDriveInfo.iRootPath == iter->iRootPath) - { - mDriveInfo.erase(iter); - continue; - } - else - ++iter; - }//end for + //Root path is unique for every drive and it is always available + //in the driveInfo so it is safe to compare equality of two driveInfo objects + //with this value. + //In theory, there might be duplicate driveInfo objects with same root path + //in the vector, so it is better to loop through a whole vector. + //Multiple objects can be removed from vector by stl's remove_if method. + DriveInfoComparisonUtil searchObj(aDriveInfo); + mDriveInfo.erase( remove_if(mDriveInfo.begin(),mDriveInfo.end(),searchObj) , + mDriveInfo.end() ); } /** diff -r d6dafc5d983f -r 1627c337e51e javaextensions/pim/cntadapter/inc.s60/cpimcontactlistadapter.h --- a/javaextensions/pim/cntadapter/inc.s60/cpimcontactlistadapter.h Fri Oct 15 12:29:39 2010 +0300 +++ b/javaextensions/pim/cntadapter/inc.s60/cpimcontactlistadapter.h Fri Oct 29 11:49:32 2010 +0300 @@ -457,6 +457,8 @@ TBool iFirstItemChanges; java::util::FunctionServer* iFuncServer; + + RMutex iMutex; }; diff -r d6dafc5d983f -r 1627c337e51e javaextensions/pim/cntadapter/src.s60/cpimcontactlistadapter.cpp --- a/javaextensions/pim/cntadapter/src.s60/cpimcontactlistadapter.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javaextensions/pim/cntadapter/src.s60/cpimcontactlistadapter.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -199,9 +199,11 @@ CPIMContactListAdapter::GetExternalCategoryModificationsL() { JELOG2(EPim); + iMutex.Wait(); CallMethodL(this, &CPIMContactListAdapter::IsDatabaseReadyL, iFuncServer); RPointerArray* retval = iCategoryChanges; iCategoryChanges = NULL; + iMutex.Signal(); return retval; } @@ -290,6 +292,7 @@ iDatabase = NULL; delete iMinimalFieldsViewDef; iMinimalFieldsViewDef = NULL; + iMutex.Close(); } // ----------------------------------------------------------------------------- @@ -640,6 +643,7 @@ CContactItemViewDef::EIncludeFields, CContactItemViewDef::EIncludeHiddenFields); InitializeMinimalViewDefinitionL(); + User::LeaveIfError(iMutex.CreateLocal()); } // ----------------------------------------------------------------------------- @@ -652,6 +656,7 @@ TPIMExternalChangeType aType) // type of the change { JELOG2(EPim); + iMutex.Wait(); iCategoryManager->FlushCache(); // This should never happen @@ -702,6 +707,7 @@ CleanupStack::PushL(change); User::LeaveIfError(iCategoryChanges->Append(change)); CleanupStack::Pop(change); + iMutex.Signal(); } // ----------------------------------------------------------------------------- diff -r d6dafc5d983f -r 1627c337e51e javaextensions/satsa/pki/src.s60/cstsseprompt.cpp --- a/javaextensions/satsa/pki/src.s60/cstsseprompt.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javaextensions/satsa/pki/src.s60/cstsseprompt.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -26,7 +26,7 @@ #ifdef RD_JAVA_S60_RELEASE_10_1_ONWARDS #include -#include +#include const QString KMessageTextKey = "text"; #else diff -r d6dafc5d983f -r 1627c337e51e javaextensions/wma/mms/src.s60/cmmsplatformservices60impl.cpp --- a/javaextensions/wma/mms/src.s60/cmmsplatformservices60impl.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javaextensions/wma/mms/src.s60/cmmsplatformservices60impl.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -1325,6 +1325,7 @@ delete mMessageHandler; mMessageHandler = NULL; } + mRFs.Close(); } // End of File } //namespace wma diff -r d6dafc5d983f -r 1627c337e51e javamanager/javacaptain/extensionplugins/preinstallerstarter/build/javacaptain_ext_preinstallerstarter.pro --- a/javamanager/javacaptain/extensionplugins/preinstallerstarter/build/javacaptain_ext_preinstallerstarter.pro Fri Oct 15 12:29:39 2010 +0300 +++ b/javamanager/javacaptain/extensionplugins/preinstallerstarter/build/javacaptain_ext_preinstallerstarter.pro Fri Oct 29 11:49:32 2010 +0300 @@ -19,6 +19,6 @@ CONFIG += omj stl CONFIG -= qt -LIBS += -lapgrfx -ljavacomms -lhal -lsysutil +LIBS += -lapgrfx -ljavacomms -lhal -lsysutil -lefsrv include(../../../../../build/omj.pri) diff -r d6dafc5d983f -r 1627c337e51e javamanager/javacaptain/extensionplugins/preinstallerstarter/inc/preinstallerstarter.h --- a/javamanager/javacaptain/extensionplugins/preinstallerstarter/inc/preinstallerstarter.h Fri Oct 15 12:29:39 2010 +0300 +++ b/javamanager/javacaptain/extensionplugins/preinstallerstarter/inc/preinstallerstarter.h Fri Oct 29 11:49:32 2010 +0300 @@ -37,6 +37,13 @@ public EventConsumerInterface, public ExtensionPluginInterface { + enum TPreinstallerStartMode + { + ENormal, + EIad, + ERomUpgrade + }; + public: PreinstallerStarter(); virtual ~PreinstallerStarter(); @@ -58,11 +65,17 @@ virtual void DoCancel(); private: - void startPreinstaller(TBool aIadBoot); + void startPreinstaller(enum TPreinstallerStartMode aStartMode); #ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK void registerMidletApplicationTypeHandler(); #endif +#ifdef RD_JAVA_S60_RELEASE_5_0_ROM + // If necessary start javaafterflashconverter.exe and return ETrue, + // else return EFalse + TBool startConverter(); +#endif + CoreInterface* mCore; RProcess* mPreinstaller; }; diff -r d6dafc5d983f -r 1627c337e51e javamanager/javacaptain/extensionplugins/preinstallerstarter/src.s60/preinstallerstarter.cpp --- a/javamanager/javacaptain/extensionplugins/preinstallerstarter/src.s60/preinstallerstarter.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javamanager/javacaptain/extensionplugins/preinstallerstarter/src.s60/preinstallerstarter.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -37,6 +37,19 @@ #include "preinstallerstarter.h" +#ifdef RD_JAVA_S60_RELEASE_5_0_ROM +// This file in Java Captain private data cage is used to indicate when +// converting old S60 midlets to OMJ midlets has been done after +// ROM upgrade flashing. +_LIT(KAfterFlashConversionDone, "C:\\private\\200211dc\\afconversionsdone.dat"); // codescanner::driveletters + +_LIT(KAfterFlashConverterExe, "javaafterflashconverter.exe"); + +#endif + +_LIT(KIad, " iad"); +_LIT(KWaitAFConversion , " waitafconversion"); + /** * Return pointer to ExtensionPluginInterface implementation for this * extension dll @@ -46,9 +59,9 @@ return new java::captain::PreinstallerStarter(); } -namespace java +namespace java // codescanner::namespace { -namespace captain +namespace captain // codescanner::namespace { using java::fileutils::driveInfo; @@ -126,7 +139,7 @@ // Preinstaller will be started with 'iad' command line option // so that it knows that it has been started for the first // time after java 2.0 IAD installation. - startPreinstaller(ETrue); + startPreinstaller(EIad); } break; @@ -137,8 +150,19 @@ registerMidletApplicationTypeHandler(); #endif - // Start preinstaller normally (without 'iad' option). - startPreinstaller(EFalse); + TPreinstallerStartMode startMode = ENormal; +#ifdef RD_JAVA_S60_RELEASE_5_0_ROM + if (startConverter()) + { + // Preinstaller must be started with 'waitconversion' command + // line option so that it will wait until javaafterflashconverter.exe + // has converted existing MIDlets. + startMode = ERomUpgrade; + } +#endif + + // Start preinstaller + startPreinstaller(startMode); } break; @@ -167,7 +191,7 @@ // All other MMC events are ignored. case DriveListenerInterface::REMOVABLE_MEDIA_INSERTED_C: { - startPreinstaller(EFalse); + startPreinstaller(ENormal); } break; } @@ -181,9 +205,11 @@ * and preinstalls those java applications in the directories that have not * yet been installed. After that preinstaller exits. * - * @param aIadBoot when true, starts preinstaller with 'iad' parameter + * @param aStartMode when value is EIad, starts preinstaller with 'iad' parameter + * when value is ERomUpgrade, starts preinstaller with 'waitconversion' parameter + * when value is ENormal, starts preinstaller with no parameters */ -void PreinstallerStarter::startPreinstaller(TBool aIadBoot) +void PreinstallerStarter::startPreinstaller(TPreinstallerStartMode aStartMode) { // Check that the device has enough free memory (800kB) to start preinstaller process // and (if needed) also java installer @@ -270,13 +296,17 @@ TPtr8 ptr8((TUint8 *)java::runtime::JAVA_PREINSTALLER_STARTER_DLL, len, len); commandLine.Copy(ptr8); - if (aIadBoot) + if (aStartMode == EIad) { - commandLine.Append(_L(" iad")); + commandLine.Append(KIad); + } + else if (aStartMode == ERomUpgrade) + { + commandLine.Append(KWaitAFConversion); } // start preinstaller - mPreinstaller = new RProcess(); + mPreinstaller = new RProcess(); // codescanner:: TBuf<64> preinstallerProcess; // Actual len of the process name is 9 len = strlen(java::runtime::JAVA_PROCESS); TPtr8 ptr8Process((TUint8 *)java::runtime::JAVA_PROCESS, len, len); @@ -291,13 +321,20 @@ // Allow the process to run mPreinstaller->Resume(); - if (aIadBoot) + if (aStartMode == EIad) { LOG( EJavaCaptain, EInfo, "PreinstallerStarter: started preinstaller with iad parameter"); } + else if (aStartMode == ERomUpgrade) + { + LOG( + EJavaCaptain, + EInfo, + "PreinstallerStarter: started preinstaller with waitconversion parameter"); + } else { LOG(EJavaCaptain, EInfo, "PreinstallerStarter: started preinstaller"); @@ -415,6 +452,81 @@ } } +#ifdef RD_JAVA_S60_RELEASE_5_0_ROM +/** + * Check whether there is flag file 'afconversionsdone.dat' in the private + * data cage of Java Captain. + * If the flag file exists, just return EFalse to indicate that Java Preinstaller + * does not need to wait for after ROM flash converter. + * Otherwise start 'javaafterflashconverter.exe' process and return ETrue + * so that Java Preinstaller is started with command line parameter that + * tells it to wait until 'javaafterflashconverter.exe' exits. + */ +TBool PreinstallerStarter::startConverter() +{ + RFs fs; // codescanner::rfs + TInt err = fs.Connect(); + if (KErrNone != err) + { + ELOG1(EJavaCaptain, + "PreinstallerStarter:startConverter: " + "Cannot connect to RFs, err %d", + err); + // Assume that the conversion has been done + return EFalse; + } + + // Check whether the flag file exists + TUint value; + TBool flagFileExists(ETrue); + err = fs.Att(KAfterFlashConversionDone, value); + if ((KErrNotFound == err) || (KErrPathNotFound == err)) + { + flagFileExists = EFalse; + } + else if (KErrNone == err) + { + LOG(EJavaCaptain, + EInfo, + "PreinstallerStarter:startConverter: Flag file exists"); + flagFileExists = ETrue; + } + else + { + WLOG1(EJavaCaptain, + "PreinstallerStarter:startConverter: Checking flag file, unexpected error %d", + err); + // Assume that the conversion has been done + flagFileExists = ETrue; + } + + if (flagFileExists) + { + // Conversion has been done, no need to start converter process. + return EFalse; + } + + // Start 'javaafterflashconverter.exe' process + RProcess converter; + err = converter.Create(KAfterFlashConverterExe, KNullDesC); + if (KErrNone == err) + { + converter.Resume(); + LOG(EJavaCaptain, EInfo, + "PreinstallerStarter:startConverter: javaafterflashconverter.exe was started ok"); + } + else + { + ELOG1(EJavaCaptain, + "PreinstallerStarter:startConverter: starting javaafterflashconverter failed: %d", + err); + } + converter.Close(); + + return ETrue; +} +#endif + } // namespace captain } // namespace java diff -r d6dafc5d983f -r 1627c337e51e javamanager/javainstaller/installer/build/build.xml --- a/javamanager/javainstaller/installer/build/build.xml Fri Oct 15 12:29:39 2010 +0300 +++ b/javamanager/javainstaller/installer/build/build.xml Fri Oct 29 11:49:32 2010 +0300 @@ -12,7 +12,7 @@ # # Contributors: # -# Description: +# Description: # --> @@ -82,6 +82,7 @@ " + aOutputIconFilename + ", from jar " + aJarFilename); return _convertIcon(aInputIconFilename, aOutputIconFilename, diff -r d6dafc5d983f -r 1627c337e51e javamanager/javainstaller/installer/javasrc.s60/com/nokia/mj/impl/installer/applicationregistrator/SifRegistrator.java --- a/javamanager/javainstaller/installer/javasrc.s60/com/nokia/mj/impl/installer/applicationregistrator/SifRegistrator.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javamanager/javainstaller/installer/javasrc.s60/com/nokia/mj/impl/installer/applicationregistrator/SifRegistrator.java Fri Oct 29 11:49:32 2010 +0300 @@ -384,6 +384,7 @@ int uid = ((PlatformUid)aSuiteInfo.getUid()).getIntValue(); String[] componentFiles = getComponentFiles(aSuiteInfo); long componentSize = aSuiteInfo.getInitialSize(); + int installState = (aSuiteInfo.isPreinstalled()? 1: 0); String attrValue = aSuiteInfo.getAttributeValue("Nokia-MIDlet-Block-Uninstall"); boolean isRemovable = !(attrValue != null && attrValue.equalsIgnoreCase("true")); boolean isDrmProtected = (aSuiteInfo.getContentInfo() == aSuiteInfo.CONTENT_INFO_DRM); @@ -397,7 +398,7 @@ iSessionHandle, uid, getScrString(suiteName), getScrString(vendor), getScrString(version), getScrString(globalId), - componentFiles, componentSize, + componentFiles, componentSize, installState, isRemovable, isDrmProtected, isOriginVerified, aIsUpdate, aSuiteInfo.getMediaId(), @@ -867,6 +868,7 @@ * @param aGlobalId * @param aComponentFiles * @param aComponentSize + * @param aInstallState * @param aIsRemovable * @param aIsDrmProtected * @param aIsOriginVerified @@ -883,7 +885,7 @@ private static native int _registerComponent( int aSessionHandle, int aUid, String aSuiteName, String aVendor, String aVersion, String aGlobalId, - String[] aComponentFiles, long aComponentSize, + String[] aComponentFiles, long aComponentSize, int aInstallState, boolean aIsRemovable, boolean aIsDrmProtected, boolean aIsOriginVerified, boolean aIsUpdate, int aMediaId, String aMidletInfoUrl, String aMidletDescription, diff -r d6dafc5d983f -r 1627c337e51e javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/jsrpluginnotifier/InstallerExtensionException.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/jsrpluginnotifier/InstallerExtensionException.java Fri Oct 29 11:49:32 2010 +0300 @@ -0,0 +1,71 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +package com.nokia.mj.impl.installer.jsrpluginnotifier; + +import com.nokia.mj.impl.utils.InstallerErrorMessage; +import com.nokia.mj.impl.utils.InstallerDetailedErrorMessage; +import com.nokia.mj.impl.utils.exception.InstallerExceptionBase; + +public class InstallerExtensionException extends InstallerExceptionBase +{ + + /*** ----------------------------- PUBLIC ------------------------------ */ + + /** + * Constructor + * + * @param aShortMsgId id for short error message + * @param aShortMsgParams parameters for short error message + * @param aDetailedMsgId id for detailed error message + * @param aDetailedMsgParams parameters for detailed error message + * @param aOtaStatusCode OTA status code + */ + public InstallerExtensionException(int aShortMsgId, String[] aShortMsgParams, + int aDetailedMsgId, String[] aDetailedMsgParams, + int aOtaStatusCode) + { + super(new InstallerErrorMessage(), aShortMsgId, aShortMsgParams, + new InstallerDetailedErrorMessage(), aDetailedMsgId, aDetailedMsgParams, + aOtaStatusCode); + } + + /** + * Constructor + * + * @param aShortMsgId id for short error message + * @param aShortMsgParams parameters for short error message + * @param aDetailedMsgId id for detailed error message + * @param aDetailedMsgParams parameters for detailed error message + * @param aOtaStatusCode OTA status code + * @param aRootException the exception which caused this exception + */ + public InstallerExtensionException(int aShortMsgId, String[] aShortMsgParams, + int aDetailedMsgId, String[] aDetailedMsgParams, + int aOtaStatusCode, Throwable aRootException) + { + super(new InstallerErrorMessage(), aShortMsgId, aShortMsgParams, + new InstallerDetailedErrorMessage(), aDetailedMsgId, aDetailedMsgParams, + aOtaStatusCode, aRootException); + } + + /*** ---------------------------- PROTECTED --------------------------- */ + /*** ----------------------------- PACKAGE ---------------------------- */ + /*** ----------------------------- PRIVATE ---------------------------- */ + /*** ----------------------------- NATIVE ----------------------------- */ +} diff -r d6dafc5d983f -r 1627c337e51e javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/jsrpluginnotifier/JsrPluginNotifierBase.java --- a/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/jsrpluginnotifier/JsrPluginNotifierBase.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/jsrpluginnotifier/JsrPluginNotifierBase.java Fri Oct 29 11:49:32 2010 +0300 @@ -76,6 +76,7 @@ * about to be installed by calling the install() method of the plugins. * * @param aInfo notification information object + * @throws InstallerExtensionException if thrown from any of the Jsr plugins * @throws InstallerException if any of the Jsr plugins cancels installation * @see InstallerExtension#install */ @@ -83,6 +84,7 @@ { Log.log("JsrPluginNotifierBase.NotifyInstallation called"); boolean continueInstallation = true; + InstallerExtensionException installerExtensionException = null; InstallerExtension plugin = null; for (int i = 0; i < iJsrPlugins.size(); i++) { @@ -92,6 +94,14 @@ Log.log("Jsr plugin install " + plugin.getClass().getName()); continueInstallation = plugin.install(aInfo); } + catch (InstallerExtensionException iee) + { + installerExtensionException = iee; + Log.logError("Installer Jsr plugin " + + plugin.getClass().getName() + + " install exception " + iee, iee); + continueInstallation = false; + } catch (Throwable t) { Log.logError("Installer Jsr plugin " + @@ -104,9 +114,16 @@ { // Rollback those plugins which already got notified. notifyRollbackInstall(aInfo, i); - InstallerException.internalError( - "Jsr plugin " + plugin.getClass().getName() + - " cancelled installation."); + if (installerExtensionException != null) + { + throw installerExtensionException; + } + else + { + InstallerException.internalError( + "Jsr plugin " + plugin.getClass().getName() + + " cancelled installation."); + } } } } @@ -116,6 +133,7 @@ * about to be uninstalled by calling the uninstall() method of the plugins. * * @param aInfo notification information object + * @throws InstallerExtensionException if thrown from any of the Jsr plugins * @throws InstallerException if any of the Jsr plugins cancels uninstallation * @see InstallerExtension#uninstall */ @@ -123,6 +141,7 @@ { Log.log("JsrPluginNotifierBase.notifyUninstallation called"); boolean continueUninstallation = true; + InstallerExtensionException installerExtensionException = null; InstallerExtension plugin = null; for (int i = 0; i < iJsrPlugins.size(); i++) { @@ -132,6 +151,14 @@ Log.log("Jsr plugin uninstall " + plugin.getClass().getName()); continueUninstallation = plugin.uninstall(aInfo); } + catch (InstallerExtensionException iee) + { + installerExtensionException = iee; + Log.logError("Installer Jsr plugin " + + plugin.getClass().getName() + + " uninstall exception " + iee, iee); + continueUninstallation = false; + } catch (Throwable t) { Log.logError("Installer Jsr plugin " + @@ -144,9 +171,16 @@ { // Rollback those plugins which already got notified. notifyRollbackUninstall(aInfo, i); - InstallerException.internalError( - "Jsr plugin " + plugin.getClass().getName() + - " cancelled uninstallation."); + if (installerExtensionException != null) + { + throw installerExtensionException; + } + else + { + InstallerException.internalError( + "Jsr plugin " + plugin.getClass().getName() + + " cancelled uninstallation."); + } } } } diff -r d6dafc5d983f -r 1627c337e51e javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/ConvertIcons.java --- a/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/ConvertIcons.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/ConvertIcons.java Fri Oct 29 11:49:32 2010 +0300 @@ -26,6 +26,7 @@ import com.nokia.mj.impl.installer.storagehandler.SuiteInfo; import com.nokia.mj.impl.installer.utils.FileUtils; import com.nokia.mj.impl.installer.utils.InstallerException; +import com.nokia.mj.impl.installer.utils.Log; import com.nokia.mj.impl.utils.Uid; @@ -330,8 +331,9 @@ } else { - ball.log("Warning: Converting icon " + iconName + " inside .jar file " - + ball.iJarFilename + " failed."); + Log.logWarning("Converting icon " + iconName + + " from " + ball.iJarFilename + + " failed."); // MIDlet icon cannot be used, use already converted suite // icon if it exists diff -r d6dafc5d983f -r 1627c337e51e javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/uninstall/steps/StartProgressNotifications.java --- a/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/uninstall/steps/StartProgressNotifications.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/uninstall/steps/StartProgressNotifications.java Fri Oct 29 11:49:32 2010 +0300 @@ -90,7 +90,7 @@ } catch (Throwable t) { - Log.logError("StartProgressNotifications: SifNotifier.notifyStart failed", t); + Log.log("StartProgressNotifications: SifNotifier.notifyStart failed", t); try { ball.iSifNotifier.destroy(); diff -r d6dafc5d983f -r 1627c337e51e javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/utils/IconConverterEswt.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/utils/IconConverterEswt.java Fri Oct 29 11:49:32 2010 +0300 @@ -0,0 +1,409 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* Icon conversion utility implemented using eSWT. +* +*/ + + +package com.nokia.mj.impl.installer.utils; + +import java.io.InputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.util.jar.JarFile; +import java.util.jar.JarEntry; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.graphics.ImageData; +import org.eclipse.swt.graphics.ImageLoader; +import org.eclipse.swt.graphics.Point; +import org.eclipse.swt.internal.extension.Toolkit; +import org.eclipse.swt.widgets.Display; + +/** + * Icon conversion utility implemented using eSWT. + */ +public class IconConverterEswt +{ + /** List of unsupported bitmap image format filename extensions. */ + private static String[] iUnsupportedBitmapFormats = + new String[] { ".wbmp", ".wmf" }; + + /** + * Converts icon to platform specific format. + * + * @param aInputIconFilename file name for input icon file + * @param aOutputIconFilename file name for output icon file + * @param aJarFilename jar file name if aInputIconFilename specifies + * file inside jar file, + * or null if aInputIconFilename specifies file from disk + * @param aIconSuffix the correct suffix of the icon is returned through + * this parameter, will contain '.png' or '.svg' when function returns + * @return true if the conversion succeeds + */ + public static boolean convertIcon( + String aInputIconFilename, String aOutputIconFilename, + String aJarFilename, StringBuffer aIconSuffix) + { + Log.log("IconConverterEswt.convertIcon: " + aInputIconFilename + + " to " + aOutputIconFilename + " from " + aJarFilename); + boolean result = false; + try + { + if (isSvgIcon(aInputIconFilename, aJarFilename)) + { + result = convertSvgIcon( + aInputIconFilename, aOutputIconFilename, + aJarFilename, aIconSuffix); + } + else + { + result = convertBitmapIcon( + aInputIconFilename, aOutputIconFilename, + aJarFilename, aIconSuffix); + } + } + catch (Throwable t) + { + Log.logWarning("IconConverterEswt.convertIcon: Exception when " + + "converting " + aInputIconFilename + " to " + + aOutputIconFilename + " from " + aJarFilename, t); + } + return result; + } + + /** + * Converts bitmap icon to platform specific format. + * + * @param aInputIconFilename file name for input icon file + * @param aOutputIconFilename file name for output icon file + * @param aJarFilename jar file name if aInputIconFilename specifies + * file inside jar file, + * or null if aInputIconFilename specifies file from disk + * @param aIconSuffix the correct suffix of the icon is returned through + * this parameter + * @return true if the conversion succeeds + */ + private static boolean convertBitmapIcon( + String aInputIconFilename, String aOutputIconFilename, + String aJarFilename, StringBuffer aIconSuffix) + { + if (!isSupportedBitmapIcon(aInputIconFilename, aJarFilename)) + { + Log.logWarning("IconConverterEswt.convertBitmapIcon: unsupported " + + "image format " + aInputIconFilename + " from " + + aJarFilename + " not converted"); + return false; + } + + final Display display = Toolkit.getInternalDisplay(); + if (display == null) + { + Log.logWarning("IconConverterEswt: Getting Display failed, " + + "icon conversion aborted for " + aInputIconFilename + + " from " + aJarFilename); + return false; + } + + final Point iconSize = new Point(88, 88); + if (iconSize != null) + { + display.syncExec(new Runnable() + { + public void run() + { + display.setData("org.eclipse.swt.internal.image.loadSize", + iconSize); + } + }); + } + + Image image = null; + if (aJarFilename == null) + { + // Load image from file. + image = new Image(display, aInputIconFilename); + } + else + { + // Load image from jar file. + JarFile jarFile = null; + try + { + jarFile = new JarFile(aJarFilename); + InputStream inputStream = jarFile.getInputStream( + new JarEntry(FileUtils.trimJarEntry(aInputIconFilename))); + image = new Image(display, inputStream); + } + catch (IOException ioe) + { + Log.logWarning("IconConverterEswt: Getting icon " + + aInputIconFilename + " from " + + aJarFilename + " failed", ioe); + } + finally + { + if (jarFile != null) + { + try + { + jarFile.close(); // Closes also InputStream. + jarFile = null; + } + catch (IOException ioe) + { + Log.logWarning("IconConverterEswt: Closing " + + aJarFilename + " failed", ioe); + } + } + } + } + + boolean result = false; + if (image != null) + { + // Save image to file. + OutputStream outputStream = null; + try + { + outputStream = FileUtils.getOutputStream(aOutputIconFilename); + ImageLoader imageLoader = new ImageLoader(); + imageLoader.data = new ImageData[] { image.getImageData() }; + imageLoader.save(outputStream, SWT.IMAGE_PNG); + aIconSuffix.append(".png"); + result = true; + } + catch (IOException ioe) + { + Log.logWarning("IconConverterEswt: Saving icon " + + aOutputIconFilename + " failed", ioe); + } + finally + { + if (outputStream != null) + { + try + { + outputStream.close(); + outputStream = null; + } + catch (IOException ioe) + { + Log.logWarning("IconConverterEswt: Closing " + + aOutputIconFilename + " failed", ioe); + } + } + } + } + return result; + } + + /** + * Converts SVG icon to platform specific format. + * + * @param aInputIconFilename file name for input icon file + * @param aOutputIconFilename file name for output icon file + * @param aJarFilename jar file name if aInputIconFilename specifies + * file inside jar file, + * or null if aInputIconFilename specifies file from disk + * @param aIconSuffix the correct suffix of the icon is returned through + * this parameter + * @return true if the conversion succeeds + */ + private static boolean convertSvgIcon( + String aInputIconFilename, String aOutputIconFilename, + String aJarFilename, StringBuffer aIconSuffix) + { + boolean result = false; + JarFile jarFile = null; + InputStream inputStream = null; + OutputStream outputStream = null; + try + { + if (aJarFilename == null) + { + inputStream = FileUtils.getInputStream(aInputIconFilename); + } + else + { + jarFile = new JarFile(aJarFilename); + inputStream = jarFile.getInputStream( + new JarEntry(FileUtils.trimJarEntry(aInputIconFilename))); + } + outputStream = FileUtils.getOutputStream(aOutputIconFilename); + // Copy the image data from InputStream to OutputStream. + byte[] buf = new byte[16384]; + int i = 0; + while ((i = inputStream.read(buf)) != -1) + { + outputStream.write(buf, 0, i); + } + aIconSuffix.append(".svg"); + result = true; + } + catch (IOException ioe) + { + Log.logWarning("IconConverterEswt: Saving SVG icon " + + aInputIconFilename + " from " + + aJarFilename + " to " + aOutputIconFilename + + " failed", ioe); + } + finally + { + if (outputStream != null) + { + try + { + outputStream.close(); + outputStream = null; + } + catch (IOException ioe) + { + Log.logWarning("IconConverterEswt: Closing " + + aOutputIconFilename + " failed", ioe); + } + } + if (inputStream != null) + { + try + { + inputStream.close(); + inputStream = null; + } + catch (IOException ioe) + { + Log.logWarning("IconConverterEswt: Closing " + + aInputIconFilename + " failed", ioe); + } + } + if (jarFile != null) + { + try + { + jarFile.close(); + jarFile = null; + } + catch (IOException ioe) + { + Log.logWarning("IconConverterEswt: Closing " + + aJarFilename + " failed", ioe); + } + } + } + return result; + } + + /** + * Returns true if given icon file is in SVG format. + */ + private static boolean isSvgIcon(String aIconFilename, String aJarFilename) + { + boolean result = false; + // Simple file type detection from filename extension. + //if (aIconFilename.toLowerCase().endsWith(".svg")) + //{ + // result = true; + //} + //return result; + + // Detect SVG files by checking if file begins with "SetComponentPropertyL(componentId, KSettingsPlugin(), KSettingsPluginValue()); //LOG(EJavaInstaller, EInfo, "RegisterComponentL: Settings plugin property set"); + aScr->SetComponentPropertyL(componentId, KInstallState(), aInstallState); + //LOG(EJavaInstaller, EInfo, "RegisterComponentL: InstallState property set"); SetComponentPropertyL(aEnv, aScr, componentId, KMIDletInfoURL(), aMidletInfoUrl); SetComponentPropertyL(aEnv, aScr, componentId, KMIDletDescription(), aMidletDescription); @@ -450,10 +453,11 @@ JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_installer_applicationregistrator_SifRegistrator__1registerComponent (JNIEnv *aEnv, jclass, jint aSessionHandle, jint aUid, jstring aSuiteName, jstring aVendor, jstring aVersion, jstring aGlobalId, - jobjectArray aComponentFiles, jlong aComponentSize, jboolean aIsRemovable, - jboolean aIsDrmProtected, jboolean aIsOriginVerified, jboolean aIsUpdate, - jint aMediaId, jstring aMidletInfoUrl, jstring aMidletDescription, - jstring aDownloadUrl, jstring aUpdateUrl, jobject aComponentId) + jobjectArray aComponentFiles, jlong aComponentSize, jint aInstallState, + jboolean aIsRemovable, jboolean aIsDrmProtected, jboolean aIsOriginVerified, + jboolean aIsUpdate, jint aMediaId, jstring aMidletInfoUrl, + jstring aMidletDescription, jstring aDownloadUrl, jstring aUpdateUrl, + jobject aComponentId) { //__UHEAP_MARK; RSoftwareComponentRegistry *pScr = @@ -461,7 +465,7 @@ TComponentId componentId = -1; TRAPD(err, componentId = RegisterComponentL( aEnv, pScr, aUid, aSuiteName, aVendor, aVersion, aGlobalId, - aComponentFiles, aComponentSize, aIsRemovable, + aComponentFiles, aComponentSize, aInstallState, aIsRemovable, aIsDrmProtected, aIsOriginVerified, aIsUpdate, aMediaId, aMidletInfoUrl, aMidletDescription, aDownloadUrl, aUpdateUrl)); @@ -1085,7 +1089,7 @@ */ JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_installer_applicationregistrator_SifRegistrator__1registerComponent (JNIEnv *, jclass, jint, jint, jstring, jstring, jstring, jstring, - jobjectArray, jlong, jboolean, jboolean, jboolean, jboolean, jint, + jobjectArray, jlong, jint, jboolean, jboolean, jboolean, jboolean, jint, jstring, jstring, jstring, jstring, jobject) { return KErrNone; diff -r d6dafc5d983f -r 1627c337e51e javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/applicationregistrator/ApplicationRegistratorTest.java --- a/javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/applicationregistrator/ApplicationRegistratorTest.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/applicationregistrator/ApplicationRegistratorTest.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -321,7 +321,7 @@ "GameMIDlet", // String aTargetDrive, "C:", - // String aIconFileName contains alread the name of the converted icon, + // String aIconFileName contains the name of the converted icon, "c:\\private\\102033E6\\installer\\jiutdata\\icon1.mbm", // String aJarFileName, "c:\\private\\102033E6\\installer\\jiutdata\\utils\\einstein_EN_FR_IT_DE_ES_N97_v2942.jar", @@ -348,7 +348,14 @@ boolean convOk = appReg.convertIcon("icon.png", "c:\\private\\102033E6\\installer\\jiutdata\\icon1.mbm", "c:\\private\\102033E6\\installer\\jiutdata\\utils\\einstein_EN_FR_IT_DE_ES_N97_v2942.jar", iconSuffix); assertTrue("Icon conversion failed.", convOk); - assertTrue("Suffix of the converted icon is incorrect.", iconSuffix.toString().equals(".mbm")); + // Allowed icon suffixes .mbm and .png. + String expectedSuffix = ".mbm"; + if (iconSuffix.toString().equals(".png")) + { + expectedSuffix = ".png"; + } + assertTrue("Suffix of the converted icon is incorrect.", + iconSuffix.toString().equals(expectedSuffix)); appReg.registerApplication(appRegInfo); appReg.commitSession(true); @@ -706,7 +713,14 @@ boolean convOk = appReg.convertIcon("gear.svg", "c:\\private\\102033E6\\installer\\jiutdata\\icon2.mif", "c:\\private\\102033E6\\installer\\jiutdata\\utils\\MIDPTestMisc.jar", iconSuffix); assertTrue("Icon conversion failed.", convOk); - assertTrue("Suffix of the converted icon is incorrect.", iconSuffix.toString().equals(".mif")); + // Allowed icon suffixes are .mif and .svg. + String expectedSuffix = ".mif"; + if (iconSuffix.toString().equals(".svg")) + { + expectedSuffix = ".svg"; + } + assertTrue("Suffix of the converted icon is incorrect.", + iconSuffix.toString().equals(expectedSuffix)); appReg.registerApplication(appRegInfo); appReg.commitSession(true); diff -r d6dafc5d983f -r 1627c337e51e javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/jsrpluginnotifier/JsrPluginNotifierTest.java --- a/javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/jsrpluginnotifier/JsrPluginNotifierTest.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/jsrpluginnotifier/JsrPluginNotifierTest.java Fri Oct 29 11:49:32 2010 +0300 @@ -283,7 +283,32 @@ } catch (InstallerException e) { - // OK, installation is cancelled ok + // OK, expected exception + } + catch (Throwable t) + { + t.printStackTrace(); + assertTrue("Test plugin threw unexpected exception: " + t, false); + } + + att = new Attribute("JSR-Plugin-Test-Exception", "InstallerExtensionException"); + iInstallerExtensionInfo.iAttributes.put("JSR-Plugin-Test-Exception", att); + + try + { + notif.notifyInstallation(iInstallerExtensionInfo); + // Test plugin TestPlugin2 throws exception if JAD/JAR attribute + // JSR-Plugin-Test-Exception2 exists. + assertTrue("Test plugin did not throw exception like should have.", false); + } + catch (InstallerExtensionException iee) + { + // OK, expected exception + } + catch (Throwable t) + { + t.printStackTrace(); + assertTrue("Test plugin threw unexpected exception: " + t, false); } } @@ -371,8 +396,34 @@ } catch (InstallerException e) { - // OK, uninstallation is cancelled ok + // OK, expected exception + } + catch (Throwable t) + { + t.printStackTrace(); + assertTrue("Test plugin threw unexpected exception: " + t, false); } + + att = new Attribute("JSR-Plugin-Test-Exception", "InstallerExtensionException"); + iInstallerExtensionInfo.iAttributes.put("JSR-Plugin-Test-Exception", att); + + try + { + notif.notifyUninstallation(iInstallerExtensionInfo); + // Test plugin TestPlugin2 throws exception if JAD/JAR attribute + // JSR-Plugin-Test-Exception exists. + assertTrue("Test plugin did not throw exception like it should have.", false); + } + catch (InstallerExtensionException iee) + { + // OK, expected exception + } + catch (Throwable t) + { + t.printStackTrace(); + assertTrue("Test plugin threw unexpected exception: " + t, false); + } + } public void testPluginCancelsUninstallation() diff -r d6dafc5d983f -r 1627c337e51e javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/jsrpluginnotifier/TestPlugin2.java --- a/javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/jsrpluginnotifier/TestPlugin2.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/jsrpluginnotifier/TestPlugin2.java Fri Oct 29 11:49:32 2010 +0300 @@ -18,6 +18,11 @@ package com.nokia.mj.impl.installer.jsrpluginnotifier; +import com.nokia.mj.impl.utils.Attribute; +import com.nokia.mj.impl.utils.InstallerErrorMessage; +import com.nokia.mj.impl.utils.InstallerDetailedErrorMessage; +import com.nokia.mj.impl.utils.OtaStatusCode; + /** * Installer Jsr plugin just for test purposes. * @@ -52,7 +57,19 @@ if ((aInstallerExtensionInfo.iAttributes != null) && (aInstallerExtensionInfo.iAttributes.get("JSR-Plugin-Test-Exception") != null)) { - throw new RuntimeException("TestPlugin2.install Exception"); + if ("InstallerExtensionException".equals( + ((Attribute)aInstallerExtensionInfo.iAttributes.get("JSR-Plugin-Test-Exception")).getValue())) + { + throw new InstallerExtensionException( + InstallerErrorMessage.INST_UNEXPECTED_ERR, null, + InstallerDetailedErrorMessage.INTERNAL_ERROR, + new String[] { "TestPlugin2.install Exception" }, + OtaStatusCode.INTERNAL_ERROR); + } + else + { + throw new RuntimeException("TestPlugin2.install Exception"); + } } return true; @@ -85,7 +102,19 @@ if ((aInstallerExtensionInfo.iAttributes != null) && (aInstallerExtensionInfo.iAttributes.get("JSR-Plugin-Test-Exception") != null)) { - throw new RuntimeException("TestPlugin2.uninstall Exception"); + if ("InstallerExtensionException".equals( + ((Attribute)aInstallerExtensionInfo.iAttributes.get("JSR-Plugin-Test-Exception")).getValue())) + { + throw new InstallerExtensionException( + InstallerErrorMessage.INST_UNEXPECTED_ERR, null, + InstallerDetailedErrorMessage.INTERNAL_ERROR, + new String[] { "TestPlugin2.uninstall Exception" }, + OtaStatusCode.INTERNAL_ERROR); + } + else + { + throw new RuntimeException("TestPlugin2.uninstall Exception"); + } } return true; diff -r d6dafc5d983f -r 1627c337e51e javamanager/javainstaller/installerui/data/javaapplicationinstaller.css --- a/javamanager/javainstaller/installerui/data/javaapplicationinstaller.css Fri Oct 15 12:29:39 2010 +0300 +++ b/javamanager/javainstaller/installerui/data/javaapplicationinstaller.css Fri Oct 29 11:49:32 2010 +0300 @@ -17,21 +17,41 @@ QScrollArea#dialogArea { /* General size parameters for all installer dialogs */ - /* this depends on display; NHD portrait width:360px and height:640px used */ /* Note that popup width and height is according to portrait dimensions, and is the same in portrait and landscape */ width: 346.6px; /*expr(var(hb-param-screen-short-edge)- 2*var(hb-param-margin-gene-screen)); /* 2un*/ /*height: /*the size of MessageBox with 3-5 rows of text? */ max-height: 626.6px; /*expr(var(hb-param-long-edge)-2*var(hb-param-margin-gene-screen)); /*position: vertically and horizontally centre of screen - is this needed?*/ + border: 1px solid; + border-radius: 7px; +} + +QScrollArea#headingArea { + /* Heading area style for installation dialogs. */ + border: 1px solid; + border-top-left-radius: 7px; + border-top-right-radius: 7px; +} + +QScrollArea#contentArea { + /* Content area style for installation dialogs. */ + padding-top: 10px; + padding-bottom: 10px; +} + +QScrollArea#commandButtonArea { + /* Command button area style for installation dialogs. */ + border: 1px solid; + border-bottom-left-radius: 7px; + border-bottom-right-radius: 7px; } QScrollArea#appInfoArea { - /* This is valid for all installation query application details, + /* This is valid for all installation dialog application details, * and also for application details in short error message */ - /* (ViewBase) */ /* Note: this text area becomes scrollable if there are more text - * that can be displayed at one time (this could be also QAbstractScrollArea?)*/ + * that can be displayed at a time. */ margin-top: 13.4px; /*hb-param-margin-gene-popup; /*2un*/ margin-left: 13.4px; /*hb-param-margin-gene-popup; /*2un*/ margin-right: 13.4px; /*hb-param-margin-gene-popup; /*2un*/ @@ -39,22 +59,23 @@ } QLabel#appInfoLabel { - /* The font size of application details; each detail is its own label */ - font-size: 23.45px; /*hb-param-text-height-secondary; /*3.5un*/ + font-size: 20px; } QLabel#heading { - /* Any installation query heading text: its text size, and top/left margins */ - font-size: 26.8px; /*hb-param-text-height-primary;/*4un*/ + /* Any installation dialog heading text. */ font-weight: bold; max-height: 53.6px; /*expr(var(hb-param-text-height-primary)+2*var(hb-param-margin-gene-popup)) - same as hb-param-widget-popup-heading-height;*/ margin-top: 13.4px; /*hb-param-margin-gene-top; /*2un*/ margin-left: 13.4px; /*hb-param-margin-gene-left; /*2un*/ + padding-bottom: 13.4px; } QLabel#contentIcon { - /* This is valid for all icons displayed in the installation query content area */ - /* Application icon, question icon, error icon in installation error dialog etc */ + /* This is valid for all icons displayed in the + * installation dialog content area; + * application icon, question icon, error icon in + * installation error dialog, etc. */ margin-left: 13.4px; /*hb-param-margin-gene-popup; /*2un*/ margin-top: 13.4px; /*hb-param-margin-gene-popup; /*2un*/ /* size of icon - fixed size */ @@ -65,66 +86,61 @@ } QComboBox#driveSelector{ - /* Combo box in installationquery. Need to define the top margin at least (InstallConfirmationView). */ + /* Combo box in installation dialog. */ margin-top: 5.025px; /*hb-param-margin-gene-middle-vertical; /*0.75un*/ } QProgressBar#progressBar{ - /* Progress bar in installationquery. Need to define the top margin at least (ProgressView). */ + /* Progress bar in installation dialog. */ margin-top: 5.025px; /*hb-param-margin-gene-middle-vertical; /*0.75un*/ } QLabel#permissionDetails{ - /* String that requests access for protected functionality in permission query */ - /* (PermissionInfo) */ + /* String that requests access for protected functionality + * in permission query. */ margin-left: 13.4px; /*hb-param-margin-gene-popup; /*2un*/ margin-top: 13.4px; /*hb-param-margin-gene-popup; /*2un*/ } QLabel#errorLabel{ - /* short error message from USIF (note: this is not Java specific error message but - * common to all installers), (ErrorView) */ - font-size: 23.45px; /*hb-param-text-height-secondary; /*3.5un*/ + /* Short error message (note: this is not Java specific error message but + * common to all installers). */ margin-top: 5.025px; /*hb-param-margin-gene-middle-vertical; /*0.75un*/ } QLabel#detailsWarningLabel{ - /* Application is certified / is not certified views and permission details - * view texts (CertificateDetailsView, PermissionDetailsView) */ - font-size: 23.45px; /*hb-param-text-height-secondary; /*3.5un*/ + /* Application is certified / is not certified views and + * permission details view texts. */ } QLabel#urlLabel{ - /* Text in authentication dialog (UsernamePasswordView) */ - /* Note that this dialog is always in portrait */ - font-size: 23.45px; /*hb-param-text-height-secondary; /*3.5un*/ + /* Text in authentication dialog. */ + /* Note that this dialog is always in portrait. */ margin-top: 13.4px; /*hb-param-margin-gene-popup; /*2un*/ margin-left: 13.4px; /*hb-param-margin-gene-popup; /*2un*/ margin-right: 13.4px; /*hb-param-margin-gene-popup; /*2un*/ } QLabel#authLabel{ - /* Text in authentication dialog (UsernamePasswordView) */ + /* Text in authentication dialog. */ /* Note that this dialog is always in portrait */ - font-size: 23.45px; /*hb-param-text-height-secondary; /*3.5un*/ margin-top: 13.4px; /*hb-param-margin-gene-popup; /*2un*/ margin-left: 13.4px; /*hb-param-margin-gene-popup; /*2un*/ margin-right: 13.4px; /*hb-param-margin-gene-popup; /*2un*/ } QLabel#usernamePasswordLabel{ - /* Label of username and password input fields in authentication dialog (UsernamePasswordView) */ + /* Label of username and password input fields in + * authentication dialog. */ /* Note that this dialog is always in portrait */ - font-size: 23.45px; /*hb-param-text-height-secondary; /*3.5un*/ margin-top: 13.4px; /*hb-param-margin-gene-popup; /*2un*/ margin-left: 13.4px; /*hb-param-margin-gene-popup; /*2un*/ margin-right: 13.4px; /*hb-param-margin-gene-popup; /*2un*/ } QLabel#usernamePasswordInputField{ - /* Input fields of username and password in authentication dialog (UsernamePasswordView) */ + /* Input fields of username and password in authentication dialog. */ /* Note that this dialog is always in portrait */ - font-size: 23.45px; /*hb-param-text-height-secondary; /*3.5un*/ margin-top: 5.025px; /*hb-param-margin-gene-middle-vertical; /*0.75un*/ margin-left: 13.4px; /*hb-param-margin-gene-popup; /*2un*/ margin-right: 13.4px; /*hb-param-margin-gene-popup; /*2un*/ @@ -133,76 +149,59 @@ /* --- Buttons --- */ -QPushButton { - font-size: 20.1px;/* hb-param-text-height-tiny; /*3un*/ -} - QPushButton#softKeyButton{ - /* Installation query OK button (ConfirmationViewBase) */ - margin-top: 13.4px; /*hb-param-margin-gene-popup; /*2un*/ - height: 50.25px; /*hb-param-widget-popup-softkey-height;/*7.5un*/ - /* this depends on display; NHD portrait width:360px and height:640px used */ - width: 173.3px; /*expr((var(hb-param-screen-short-edge)-2*var(hb-param-margin-gene-screen))/2); /* width of one button is half of popup width*/ + /* Installation query OK button. */ + height: 40px; } QPushButton#softKeyButtonWide{ - /* Ok button to go back from a details view (application is certified / not certified views - * and permission details view) (CertificateDetailsView, PermissionDetailsView)*/ - /* this ok button has different top margin otherwise the same as OkCommand button with max-width */ - margin-top: 5.025px; /*hb-param-margin-gene-middle-vertical; /*0.75un*/ - height: 50.25px; /*hb-param-widget-popup-softkey-height;/*7.5un*/ + /* Ok button to go back from a details view (application is + * certified / not certified views and permission details view)*/ + height: 40px; } QPushButton#securityButton{ - /* Security lock icon button in installation query heading (ViewBase.createSecurityButton) */ + /* Security lock icon button in installation dialog heading. */ margin-right: 13.4px; /*hb-param-margin-gene-popup; /*2un*/ /* size of icon */ min-width: 26.8px; /* hb-param-graphic-size-primary-small; /*4un*/ max-width: 26.8px; /* hb-param-graphic-size-primary-small; /*4un*/ min-height: 26.8px; /* hb-param-graphic-size-primary-small; /*4un*/ max-height: 26.8px; /* hb-param-graphic-size-primary-small; /*4un*/ - } QPushButton#detailsLink{ - /* Button in permission query to view details (PermissionConfirmationView) */ + /* Button in permission query to view details. */ margin-right: 13.4px; /*hb-param-margin-gene-popup; /*2un*/ margin-left: 13.4px; /*hb-param-margin-gene-left; /*2un*/ margin-top: 13.4px; /*hb-param-margin-gene-popup; /*2un*/ + font-size: 14px; } QPushButton#allowButton{ - /* Allow always function button in permission query */ - /* (PermissionConfirmationView) */ + /* Allow always function button in permission query. */ margin-right: 13.4px; /*hb-param-margin-gene-popup; /*2un*/ margin-left: 13.4px; /*hb-param-margin-gene-popup; /*2un*/ margin-top: 13.4px; /*hb-param-margin-gene-popup; /*2un*/ - } QPushButton#denyButton{ - /* Ask me later function buttons in permission query */ - /* (PermissionConfirmationView) */ + /* Ask me later function buttons in permission query. */ margin-right: 13.4px; /*hb-param-margin-gene-popup; /*2un*/ margin-left: 13.4px; /*hb-param-margin-gene-popup; /*2un*/ margin-top: 5.025px; /*hb-param-margin-gene-middle-vertical; /*0.75un*/ } QPushButton#cancelButton{ - /* Cancel installing function button in permission query */ - /* (PermissionConfirmationView) */ + /* Cancel installing function button in permission query. */ margin-right: 13.4px; /*hb-param-margin-gene-popup; /*2un*/ margin-left: 13.4px; /*hb-param-margin-gene-popup; /*2un*/ margin-top: 5.025px; /*hb-param-margin-gene-middle-vertical; /*0.75un*/ margin-bottom: 13.4px; /*hb-param-margin-gene-popup; /*2un*/ - } -QCheckBox#retainDataButton { - /* Retain user data check box button in update query */ - /* Note that there is 2*hb-param-margin-gene-middle-vertical margin at the top as this check box is placed - * after drive selector combo */ - /* (InstallConfirmationView) */ +QPushButton#retainDataButton { + /* Retain user data check box button in update query. */ margin-right: 13.4px; /*hb-param-margin-gene-popup; /*2un*/ margin-left: 13.4px; /*hb-param-margin-gene-popup; /*2un*/ margin-top: 10.05px; /*expr(2*var(hb-param-margin-gene-middle-vertical)); diff -r d6dafc5d983f -r 1627c337e51e javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/CertificateDetailsView.java --- a/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/CertificateDetailsView.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/CertificateDetailsView.java Fri Oct 29 11:49:32 2010 +0300 @@ -77,8 +77,9 @@ // Add title label. Label detailsLabel = createLabel( - InstallerUiTexts.get(InstallerUiTexts.NOT_CERTIFIED_TITLE), - horizontalSpan, labelStyle); + getHeadingComposite(), + InstallerUiTexts.get(InstallerUiTexts.NOT_CERTIFIED_TITLE), + getHeadingColumns(), labelStyle); setCssId(detailsLabel, "heading"); // Add domain category label. @@ -102,7 +103,6 @@ InstallerUiTexts.get(InstallerUiTexts.NOT_CERTIFIED_INFO, new String[] { appName }), horizontalSpan, labelStyle); - setCssId(warningLabel, "detailsWarningLabel"); } @@ -115,10 +115,10 @@ int labelStyle = SWT.WRAP; // Add title label. - Label detailsLabel = createLabel - (InstallerUiTexts.get - (InstallerUiTexts.CERTIFICATE_TITLE), - horizontalSpan, labelStyle); + Label detailsLabel = createLabel( + getHeadingComposite(), + InstallerUiTexts.get(InstallerUiTexts.CERTIFICATE_TITLE), + getHeadingColumns(), labelStyle); setCssId(detailsLabel, "heading"); SigningCertificate certificate = iCerts[iCertIndex]; diff -r d6dafc5d983f -r 1627c337e51e javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/ConfirmationViewBase.java --- a/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/ConfirmationViewBase.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/ConfirmationViewBase.java Fri Oct 29 11:49:32 2010 +0300 @@ -68,6 +68,12 @@ super(aInstallerUi, aParent, aColumns, aScrollable); } + /** Constructor */ + protected ConfirmationViewBase(InstallerUiEswt aInstallerUi, Composite aParent, int aColumns, boolean aScrollable, int aComposites) + { + super(aInstallerUi, aParent, aColumns, aScrollable, aComposites); + } + /** * Set user visible command names for OK and Cancel commands. * If either parameter is null, then default value is used. diff -r d6dafc5d983f -r 1627c337e51e javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/ErrorDetailsView.java --- a/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/ErrorDetailsView.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/ErrorDetailsView.java Fri Oct 29 11:49:32 2010 +0300 @@ -40,7 +40,7 @@ /** Constructor */ protected ErrorDetailsView(InstallerUiEswt aInstallerUi, Composite aParent) { - super(aInstallerUi, aParent, 8); + super(aInstallerUi, aParent, 8, false, COMMAND_COMPOSITE); setTitle(InstallerUiTexts.get(InstallerUiTexts.INSTALL_FAILED)); setCommands(InstallerUiTexts.get(InstallerUiTexts.OK), null); } @@ -68,21 +68,25 @@ */ protected void createView() { + /* // Add title. Label titleLabel = null; String title = InstallerUiTexts.get(InstallerUiTexts.INSTALL_FAILED); if (iInstallerUi.getInstallInfo() != null) { - titleLabel = createLabel(title, getColumns() - 1, SWT.WRAP); + titleLabel = createLabel( + getHeadingComposite(), title, getHeadingColumns()-1, SWT.WRAP); // Add security icon. iCertificates = iInstallerUi.getInstallInfo().getCertificates(); - createSecurityButton(); + createSecurityButton(getHeadingComposite()); } else { - titleLabel = createLabel(title, getColumns(), SWT.WRAP); + titleLabel = createLabel( + getHeadingComposite(), title, getHeadingColumns(), SWT.WRAP); } setCssId(titleLabel, "heading"); + */ int horizontalSpan = getColumns(); int labelStyle = SWT.WRAP; diff -r d6dafc5d983f -r 1627c337e51e javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/ErrorView.java --- a/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/ErrorView.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/ErrorView.java Fri Oct 29 11:49:32 2010 +0300 @@ -77,7 +77,8 @@ } else { - Label titleLabel = createLabel(title, getColumns(), SWT.WRAP); + Label titleLabel = createLabel( + getHeadingComposite(), title, getHeadingColumns(), SWT.WRAP); setCssId(titleLabel, "heading"); } diff -r d6dafc5d983f -r 1627c337e51e javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/PermissionConfirmationView.java --- a/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/PermissionConfirmationView.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/PermissionConfirmationView.java Fri Oct 29 11:49:32 2010 +0300 @@ -61,7 +61,7 @@ protected PermissionConfirmationView( InstallerUiEswt aInstallerUi, Composite aParent) { - super(aInstallerUi, aParent, 8); + super(aInstallerUi, aParent, 8, false, TITLE_COMPOSITE); setTitle(InstallerUiTexts.get(InstallerUiTexts.INSTALLING)); setCommands(null, null); } diff -r d6dafc5d983f -r 1627c337e51e javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/PermissionDetailsView.java --- a/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/PermissionDetailsView.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/PermissionDetailsView.java Fri Oct 29 11:49:32 2010 +0300 @@ -43,7 +43,7 @@ InstallerUiEswt aInstallerUi, Composite aParent, String aTitle, PermissionInfo aPermissionInfo) { - super(aInstallerUi, aParent, 1, true); + super(aInstallerUi, aParent, 1, true, COMMAND_COMPOSITE); iPermissionInfo = aPermissionInfo; setTitle(aTitle); setCommands(null, InstallerUiTexts.get(InstallerUiTexts.CLOSE)); @@ -60,11 +60,11 @@ int labelStyle = SWT.WRAP; // Add title label. - Label detailsLabel = createLabel - (InstallerUiTexts.get - (InstallerUiTexts.PERM_VIEW_DETAILS_TITLE), - horizontalSpan, labelStyle); - setCssId(detailsLabel, "heading"); + Label titleLabel = createLabel( + InstallerUiTexts.get( + InstallerUiTexts.PERM_VIEW_DETAILS_TITLE), + horizontalSpan, labelStyle); + setCssId(titleLabel, "heading"); // Add permission names. String[] permNames = iPermissionInfo.getPermissionNames(); diff -r d6dafc5d983f -r 1627c337e51e javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/ProgressView.java --- a/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/ProgressView.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/ProgressView.java Fri Oct 29 11:49:32 2010 +0300 @@ -85,7 +85,8 @@ else { setTitle(iMsg); - iLabel = createLabel(iMsg, SWT.WRAP); + iLabel = createLabel(getHeadingComposite(), iMsg, + getHeadingColumns(), SWT.WRAP); setCssId(iLabel, "heading"); } diff -r d6dafc5d983f -r 1627c337e51e javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/ViewBase.java --- a/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/ViewBase.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/ViewBase.java Fri Oct 29 11:49:32 2010 +0300 @@ -50,6 +50,13 @@ */ abstract public class ViewBase { + /** Is command composite present in this view. */ + protected static final int COMMAND_COMPOSITE = 1; + /** Is title composite present in this view. */ + protected static final int TITLE_COMPOSITE = 2; + /** Which composites are present in this view. */ + private int iComposites = COMMAND_COMPOSITE | TITLE_COMPOSITE; + /** Maximum view height in percentage from display client area height. */ protected static final int MAX_VIEW_HEIGHT = 80; /** Maximum view width in percentage from display client area width. */ @@ -58,6 +65,8 @@ protected Shell iParent = null; /** Container for the contents of the view */ private Composite iContainer = null; + /** Composite for heading. */ + private Composite iHeadingComposite = null; /** ScrolledComposite for iComposite. */ private ScrolledComposite iScrolledComposite = null; /** Composite to which subclasses add their widgets. */ @@ -104,7 +113,14 @@ /** Constructor */ protected ViewBase(InstallerUiEswt aInstallerUi, Composite aParent, int aColumns, boolean aScrollable) { + this(aInstallerUi, aParent, aColumns, aScrollable, COMMAND_COMPOSITE | TITLE_COMPOSITE); + } + + /** Constructor */ + protected ViewBase(InstallerUiEswt aInstallerUi, Composite aParent, int aColumns, boolean aScrollable, int aComposites) + { iInstallerUi = aInstallerUi; + iComposites = aComposites; // Each view gets a shell to be used as a parameter. iParent = (Shell)aParent; @@ -123,10 +139,22 @@ // Let the contents fill the Shell. iContainer.setLayout(setZeroMargins(new GridLayout())); + if (isCompositePresent(TITLE_COMPOSITE)) + { + // Create a composite for heading. + iHeadingComposite = new Composite(iContainer, SWT.NONE); + setCssId(iHeadingComposite, "headingArea"); + GridLayout headingLayout = setZeroMargins( + new GridLayout(getHeadingColumns(), true)); + iHeadingComposite.setLayout(headingLayout); + iHeadingComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + } + if (aScrollable) { // Create a ScrolledComposite for views which need ScrollBars. iScrolledComposite = new ScrolledComposite(iContainer, getStyle()); + setCssId(iScrolledComposite, "contentArea"); iScrolledComposite.setAlwaysShowScrollBars(false); iScrolledComposite.setExpandHorizontal(true); iScrolledComposite.setLayoutData(new GridData(GridData.FILL_BOTH)); @@ -139,30 +167,26 @@ { // Create the composite without ScrollBars. iComposite = new Composite(iContainer, SWT.NONE); + setCssId(iComposite, "contentArea"); GridLayout compLayout = setZeroMargins(new GridLayout(getColumns(), true)); iComposite.setLayout(compLayout); iComposite.setLayoutData(new GridData(GridData.FILL_BOTH)); } - // Create a composite for command buttons. - iCommandComposite = new Composite(iContainer, SWT.NONE); - GridLayout cmdLayout = setZeroMargins(new GridLayout(2, true)); - cmdLayout.marginTop = 5; - iCommandComposite.setLayout(cmdLayout); - iCommandComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + if (isCompositePresent(COMMAND_COMPOSITE)) + { + // Create a composite for command buttons. + iCommandComposite = new Composite(iContainer, SWT.NONE); + setCssId(iCommandComposite, "commandButtonArea"); + GridLayout cmdLayout = setZeroMargins(new GridLayout(2, true)); + iCommandComposite.setLayout(cmdLayout); + iCommandComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + } // Layout now and get the default size of the content area. iContainer.layout(true); - Rectangle rect = null; - if (aScrollable) - { - rect = iScrolledComposite.getClientArea(); - } - else - { - rect = iComposite.getClientArea(); - } + Rectangle rect = iContainer.getClientArea(); iDefaultContentSize = new Point(rect.width, rect.height); } @@ -174,6 +198,12 @@ return iContainer; } + /** Returns composite for heading. */ + public Composite getHeadingComposite() + { + return iHeadingComposite; + } + /** Returns composite to which subclasses can add their widgets. */ public Composite getComposite() { @@ -354,10 +384,6 @@ /** Sets the view size according to display size. */ private void doUpdateSize(boolean aVerticalScrollBarVisible) { - Shell shell = getShell(); - Composite comp = getComposite(); - Composite cmdComp = getCommandComposite(); - if (getAppInfoComposite() != null) { // Recalculate the size of the app info composite. @@ -377,48 +403,60 @@ } } - int contentWidth = iDefaultContentSize.x * MAX_VIEW_WIDTH / 100; + int contentWidth = iDefaultContentSize.x; if (aVerticalScrollBarVisible) { - int verticalScrollBarWidth = + contentWidth = getComposite().getSize().x - getScrolledComposite().getVerticalBar().getSize().x; - contentWidth -= verticalScrollBarWidth; } // Recalculate the size of the content. - Point contentSize = comp.computeSize(contentWidth, SWT.DEFAULT); - comp.setSize(contentSize); - Point cmdContentSize = cmdComp.computeSize(iDefaultContentSize.x, SWT.DEFAULT); - cmdComp.setSize(cmdContentSize); + Point headingContentSize = new Point(0, 0); + if (isCompositePresent(TITLE_COMPOSITE)) + { + headingContentSize = + getHeadingComposite().computeSize( + iDefaultContentSize.x, SWT.DEFAULT); + getHeadingComposite().setSize(headingContentSize); + } + Point contentSize = + getComposite().computeSize(contentWidth, SWT.DEFAULT); + getComposite().setSize(contentSize); + Point cmdContentSize = new Point(0, 0); + if (isCompositePresent(COMMAND_COMPOSITE)) + { + cmdContentSize = + getCommandComposite().computeSize( + iDefaultContentSize.x, SWT.DEFAULT); + getCommandComposite().setSize(cmdContentSize); + } // Adjust Shell height and width. - Rectangle dispRect = shell.getDisplay().getClientArea(); - int offset = iDefaultContentSize.y - contentSize.y - cmdContentSize.y; - + Rectangle dispClientArea = getShell().getDisplay().getClientArea(); Rectangle defShellBounds = iInstallerUi.getDefaultShellBounds(); + int offset = iDefaultContentSize.y - headingContentSize.y + - contentSize.y - cmdContentSize.y; int newHeight = defShellBounds.height - offset; - int maxHeight = dispRect.height * MAX_VIEW_HEIGHT / 100; - + int maxHeight = dispClientArea.height * MAX_VIEW_HEIGHT / 100; if (newHeight > maxHeight) { - offset -= maxHeight - newHeight; newHeight = maxHeight; } int newWidth = defShellBounds.width; - int maxWidth = dispRect.width * MAX_VIEW_WIDTH / 100; + int maxWidth = dispClientArea.width * MAX_VIEW_WIDTH / 100; if (newWidth > maxWidth) { newWidth = maxWidth; } // Always center horizontally and vertically. - Rectangle dispBounds = shell.getDisplay().getBounds(); + Rectangle dispBounds = getShell().getDisplay().getBounds(); int x = dispBounds.width - newWidth; int y = dispBounds.height - newHeight; x /= 2; y /= 2; - shell.setBounds(x, y, newWidth, newHeight); - Rectangle clientArea = shell.getClientArea(); + getShell().setBounds(x, y, newWidth, newHeight); + Rectangle clientArea = getShell().getClientArea(); iContainer.setSize(clientArea.width, clientArea.height); iContainer.layout(true); } @@ -464,6 +502,24 @@ } /** + * Returns true if specified composite is present in this view. + * + * @param aComposite COMMAND_COMPOSITE or TITLE_COMPOSITE. + */ + protected boolean isCompositePresent(int aComposites) + { + return ((iComposites & aComposites) != 0); + } + + /** + * Returns number of columns for heading of view. + */ + protected int getHeadingColumns() + { + return 8; + } + + /** * Returns number of columns for this view. */ protected int getColumns() @@ -481,20 +537,12 @@ /** * Adds header used in installation views. + * Note that this method can be called only for views which + * have TITLE_COMPOSITE defined. */ protected void addHeader( String aTitle, InstallInfo aInstallInfo, UninstallInfo aUninstallInfo) { - addHeader(aTitle, aInstallInfo, aUninstallInfo, true); - } - - /** - * Adds header used in installation views. - */ - protected void addHeader( - String aTitle, InstallInfo aInstallInfo, UninstallInfo aUninstallInfo, - boolean aSecurityButton) - { // Add title. if (aTitle == null) { @@ -504,7 +552,8 @@ aTitle = InstallerUiTexts.get(InstallerUiTexts.UPDATE_QUERY); } } - Label titleLabel = createLabel(aTitle, getColumns() - 1, SWT.WRAP); + Label titleLabel = createLabel( + getHeadingComposite(), aTitle, getHeadingColumns() - 1, SWT.WRAP); setCssId(titleLabel, "heading"); if (aInstallInfo != null) @@ -515,16 +564,8 @@ { iCertificates = aUninstallInfo.getCertificates(); } - if (aSecurityButton) - { - // Add security button. - createSecurityButton(); - } - else - { - // Add security icon. - createSecurityLabel(iCertificates != null); - } + // Add security button. + createSecurityButton(getHeadingComposite()); // Init suite icon data. if (aInstallInfo != null) @@ -669,7 +710,23 @@ */ protected Label createLabel(String aText, int aColumns, int aStyle) { - Label label = new Label(getComposite(), aStyle); + return createLabel(getComposite(), aText, aColumns, aStyle); + } + + /** + * Creates a new label with given text and adds it to given + * composite in this view. + * + * @param aComposite composite to which the label is added + * @param aText text for the label + * @param aColumns number of columns the label takes + * @param aStyle SWT style for the label + * @return label that was added to this view + */ + protected Label createLabel( + Composite aComposite, String aText, int aColumns, int aStyle) + { + Label label = new Label(aComposite, aStyle); label.setText(aText); GridData gridData = new GridData(GridData.FILL_HORIZONTAL); gridData.horizontalSpan = aColumns; @@ -729,37 +786,9 @@ return label; } - /** - * Creates a new label with security icon. - * - * @param aIdentified true if security icon is for an - * identified application, false otherwise - * @return label that was added to this view - */ - protected Label createSecurityLabel(boolean aIdentified) + protected Button createSecurityButton(Composite aComposite) { - Label label = createLabel((Image)null, 1, SWT.NONE); - setCssId(label, "securityLabel"); - Image securityIcon = null; - if (iInstallerUi != null) - { - securityIcon = iInstallerUi.getSecurityIcon( - getDisplay(), aIdentified); - } - if (securityIcon != null) - { - label.setImage(securityIcon); - } - else - { - label.setText(aIdentified? "I": "U"); - } - return label; - } - - protected Button createSecurityButton() - { - Button button = new Button(getComposite(), SWT.PUSH); + Button button = new Button(aComposite, SWT.PUSH); setCssId(button, "securityButton"); GridData gridData = new GridData( GridData.FILL_HORIZONTAL | GridData.FILL_VERTICAL); diff -r d6dafc5d983f -r 1627c337e51e javamanager/javalauncher/tsrc/doc_pub/readme.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/javamanager/javalauncher/tsrc/doc_pub/readme.txt Fri Oct 29 11:49:32 2010 +0300 @@ -0,0 +1,20 @@ + +- testmidletstart is simple native console program. Started from eshell to test that Java + applications can be started from native applications. The name of the Java application to be started + has currently been hard coded to SPtesti (midlet-name). + + +- midlets/sptest contains the SPtesti midlet. + If you modify the .java code, you can easily compile the .java file like this: +javac -source 1.4 -target 1.4 -cp \epoc32\release\winscw\udeb\java_signature_test.jar testimidletti.java + Then you can update the .jar file using WinZip. + + When SPtesti midlet is started, it shows the command line and instance count in the form. + When the midlet is restarted, it shows the new command line and new instance count. + + +- midlets/plat_req contains platRequest midlet. + The .jad file has some sample platform request URLs that edited in the midlet and then used + when making platform request. + When making platform requests that start native applications, this midlet must be signed to + operator or manufacturer domain. diff -r d6dafc5d983f -r 1627c337e51e javamanager/preinstaller/src.s60/main.cpp --- a/javamanager/preinstaller/src.s60/main.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javamanager/preinstaller/src.s60/main.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2008 - 2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -33,9 +33,11 @@ _LIT_SECURE_ID(KJavaCaptainSecureID, KJavaCaptainUid); -// This file is used to indicate when converting old S60 midlets -// to OMJ midlets has been done. -_LIT(KConversionOngoing, "D:\\OMJConverting.dat"); +#ifdef RD_JAVA_S60_RELEASE_5_0_IAD +// This file is used to indicate when preinstallation has been done and +// converting old S60 midlets to OMJ midlets can start. +_LIT(KConversionOngoing, "D:\\OMJConverting.dat"); // codescanner::driveletters +#endif /** @@ -43,10 +45,10 @@ * has the same Symbian secure ID as javainstaller and so javainstaller * can later destroy the keys if necessary. */ -static void CreateJavaInstallerPSKeys() +static void createJavaInstallerPSKeys() { LOG(EJavaPreinstaller, EInfo, - "CreateJavaInstallerPSKeys: Going to create Java Installer PS keys"); + "createJavaInstallerPSKeys: Going to create Java Installer PS keys"); // any process can read the values of the PS keys _LIT_SECURITY_POLICY_PASS(KReadPolicy); @@ -61,7 +63,7 @@ } if (err != KErrNone) { - ELOG1(EJavaPreinstaller, "CreateJavaInstallerPSKeys: " + ELOG1(EJavaPreinstaller, "createJavaInstallerPSKeys: " "creating KPSUidJavaLatestInstallation failed with error %d", err); } @@ -73,7 +75,7 @@ } if (err != KErrNone) { - ELOG1(EJavaPreinstaller, "CreateJavaInstallerPSKeys: " + ELOG1(EJavaPreinstaller, "createJavaInstallerPSKeys: " "creating KPSUidJavaLatestInstallationProgress failed with error %d", err); } @@ -85,7 +87,7 @@ } if (err != KErrNone) { - ELOG1(EJavaPreinstaller, "CreateJavaInstallerPSKeys: " + ELOG1(EJavaPreinstaller, "createJavaInstallerPSKeys: " "creating KPSUidJavaLatestInstallationState failed with error %d", err); } } @@ -97,7 +99,7 @@ */ static void startPreinstallationL() { - JELOG2(EJavaPreinstaller); + LOG(EJavaPreinstaller, EInfo, "startPreinstallationL called"); CActiveScheduler* as = new(ELeave) CActiveScheduler(); @@ -105,7 +107,7 @@ CActiveScheduler::Install(as); CleanupStack::PushL(as); - RFs fs; + RFs fs; // codescanner::rfs User::LeaveIfError(fs.Connect()); CleanupClosePushL(fs); @@ -123,22 +125,74 @@ // Now preinstallation has been done LOG(EJavaPreinstaller, EInfo, "startPreinstallationL: Cleaning up"); +#ifdef RD_JAVA_S60_RELEASE_5_0_IAD + // Notify possibly waiting 'javaupdater.exe' process that preinstallation + // has been done and that it can continue. TInt err = fs.Delete(KConversionOngoing); LOG1(EJavaPreinstaller, EInfo, "startPreinstallationL: Delete flag file returned status code %d", err); +#endif CleanupStack::PopAndDestroy(si); CleanupStack::PopAndDestroy(&fs); // close connection to file server CleanupStack::PopAndDestroy(as); } + +#ifdef RD_JAVA_S60_RELEASE_5_0_ROM +/** + * If 'javaafterflashconverter.exe' is running, wait until it exits + * so that converter and preinstaller don't try to use Java Installer + * simultaneously. + */ +static void waitUntilAfterFlashConverterExits() +{ + LOG(EJavaPreinstaller, EInfo, "waitUntilAfterFlashConverterExits called"); + + TFullName processName; + _LIT(KJavaAFConverterProcess, "javaafterflashconverter*"); + TFindProcess finder(KJavaAFConverterProcess); + + if (finder.Next(processName) != KErrNotFound) + { + RProcess afConverterProcess; // codescanner::resourcenotoncleanupstack + TInt err = afConverterProcess.Open(finder); + + if (KErrNone != err) + { + WLOG1(EJavaPreinstaller, + "waitUntilAfterFlashConverterExits: Process open err: %d", err); + } + else + { + if (EExitPending == afConverterProcess.ExitType()) + { + // Converter is still running. Wait until it exits. + LOG(EJavaPreinstaller, EInfo, + "waitUntilAfterFlashConverterExits going to wait until converter exits"); + TRequestStatus status; + afConverterProcess.Logon(status); + User::WaitForRequest(status); // codescanner::userWaitForRequest + } + + afConverterProcess.Close(); + } + } +} +#endif + + /** * Allow starting process only from Java Captain. * Execute actual preinstaller code in CSilentMIDletInstall. */ +#ifdef RD_JAVA_S60_RELEASE_5_0_ROM +void preinstallerMainL(int argc, const char *argv[]) +#else void preinstallerMainL() +#endif { // The only time that this application should be executed // is when Java Captain calls it. @@ -152,7 +206,19 @@ // Create the PS keys that Java Installer will update already now // so that other processes starting during device boot can start // immediately listening to the keys. - CreateJavaInstallerPSKeys(); + createJavaInstallerPSKeys(); + +#ifdef RD_JAVA_S60_RELEASE_5_0_ROM + if (argc > 1) + { + // The max size of a preinstaller command line parameter is 80 + TBufC8<80> param((const TUint8 *)(argv[1])); // codescanner::accessArrayElementWithoutCheck2 + if (param == _L8("waitafconversion")) + { + waitUntilAfterFlashConverterExits(); + } + } +#endif startPreinstallationL(); } @@ -162,9 +228,12 @@ * the same starter process as installer and runtime (so that they have the same * Symbian secure Uid and can access the same data cage). */ -int dllMain(int /*argc*/, char */*argv*/[]) +#ifdef RD_JAVA_S60_RELEASE_5_0_ROM +int dllMain(int argc, const char *argv[]) +#else +int dllMain(int /* argc */, const char */*argv*/[]) +#endif { - JELOG(EJavaPreinstaller, "PREINSTALLER main()"); JavaOsLayer::startUpTrace("PREINSTALLER main() start", -1, -1); User::RenameProcess(_L("javapreinstaller")); @@ -175,7 +244,11 @@ // Make sure that this thread has always cleanup stack CTrapCleanup* cleanupStack = CTrapCleanup::New(); +#ifdef RD_JAVA_S60_RELEASE_5_0_ROM + TRAPD(err, preinstallerMainL(argc, argv)); +#else TRAPD(err, preinstallerMainL()); +#endif if (KErrNone != err) { ELOG1(EJavaPreinstaller, "dllMain: preinstallerMainL leaved with error %d", err); diff -r d6dafc5d983f -r 1627c337e51e javaruntimes/midp/runtime/javasrc/com/nokia/mj/impl/rt/midp/MidletLifeCycle.java --- a/javaruntimes/midp/runtime/javasrc/com/nokia/mj/impl/rt/midp/MidletLifeCycle.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javaruntimes/midp/runtime/javasrc/com/nokia/mj/impl/rt/midp/MidletLifeCycle.java Fri Oct 29 11:49:32 2010 +0300 @@ -273,6 +273,22 @@ if (Log.mOn) Log.logI("Sending shutdown notifications to listeners."); ApplicationUtilsImpl.doShutdownImpl(); + String shutdownExtension = System.getProperty("jrt.shutdown.extension"); + if (Log.mOn) Log.logI("Invoking shutdown extension: " + shutdownExtension); + + if (shutdownExtension != null && shutdownExtension.length() > 0) + { + try + { + Class.forName(shutdownExtension).newInstance(); + } + catch (Throwable t) + { + // no extensions + Log.logE("Exp. whe invoking coverage data: ", t); + } + } + if (Log.mOn) Log.logI("Sending close indication to runtime starter."); _closeInd(mNativeRuntimeStarterHandle); diff -r d6dafc5d983f -r 1627c337e51e javatools/subsystem.mk --- a/javatools/subsystem.mk Fri Oct 15 12:29:39 2010 +0300 +++ b/javatools/subsystem.mk Fri Oct 29 11:49:32 2010 +0300 @@ -42,6 +42,11 @@ usersettingsconfigurator/build \ javarestoreconverter/build +ifdef RD_JAVA_S60_RELEASE_5_0_ROM +COMPONENTS += \ + javaafterflashconverter/build +endif + else COMPONENTS += \ diff -r d6dafc5d983f -r 1627c337e51e javauis/eswt_qt/com.nokia.swt.extensions/extensions/org/eclipse/swt/internal/extension/NetworkStatus.java --- a/javauis/eswt_qt/com.nokia.swt.extensions/extensions/org/eclipse/swt/internal/extension/NetworkStatus.java Fri Oct 15 12:29:39 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,431 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Nokia Corporation - initial implementation - *******************************************************************************/ -package org.eclipse.swt.internal.extension; - -import org.eclipse.swt.SWT; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Event; -import org.eclipse.swt.widgets.Internal_PackageSupport; -import org.eclipse.swt.widgets.Listener; - -/** - * This class provides notifications that can be used to determine which type of - * network connections are active at any given moment. - */ -public final class NetworkStatus { - - /** - * A notification state flag that is raised when there are any active - * Ethernet data connections. - */ - public static final int DATA_ETHERNET = 0x00000001; - - /** - * A notification state flag that is raised when there are any active WLAN - * data connections. - */ - public static final int DATA_WLAN = 0x00000002; - - /** - * A notification state flag that is raised when there are any active CSD, - * GPRS, HSCSD, EDGE or cdmaOne data connections. - */ - public static final int DATA_2G = 0x00000004; - - /** - * A notification state flag that is raised when there are any active CDMA - * data connections. - */ - public static final int DATA_CDMA2000 = 0x00000008; - - /** - * A notification state flag that is raised when there are any active - * W-CDMA/UMTS data connections. - */ - public static final int DATA_WCDMA = 0x00000010; - - /** - * A notification state flag that is raised when there are any active High - * Speed Packet Access data connections. - */ - public static final int DATA_HSPA = 0x00000020; - - /** - * A notification state flag that is raised when there are any active - * Bluetooth data connections. - */ - public static final int DATA_BLUETOOTH = 0x00000040; - - /** - * A notification state flag that is raised when there are any active WiMAX - * data connections. - */ - public static final int DATA_WIMAX = 0x00000080; - - /** - * A notification state flag that is raised when there are any active voice - * calls. - */ - public static final int VOICE_CALL = 0x00000100; - - // This flag is set for any other active types than the ones above. - // No events are sent for this type of active connections. - private static final int UNKNOWN = 0x80000000; - - // The notified states of the connection types - private static int notifiedStates; - - // Singleton instance - private static NetworkStatus instance; - - // References to the listeners of the clients - private static NetworkStatusListener[] listeners; - - // QNetworkConfigurationManager and XQCallInfo handles. - // Can be 0 if required native parts not compiled in. - private static int qNetworkConfigurationManagerHandle; - private static int xqCallInfoHandle; - - // QNetworkConfiguration objects for active connections - private static int activeConfigHandles[]; - - // The dispose listener that is added to Display - private static Listener disposeListener; - - private NetworkStatus() { - xqCallInfoHandle = OS.XQCallInfo_create(); - qNetworkConfigurationManagerHandle = OS.QNetworkConfigurationManager_new(0); - hookEvents(); - addDisposeListener(); - handleNetworkConfigurationChange(); - handleCallInformationChanged(); - } - - private static Display getDisplay() { - Display display; - display = Internal_PackageSupport.getInternalDisplayInstance(); - if(display == null) { - display = Internal_PackageSupport.getDisplayInstance(); - } - return display; - } - - private static void addDisposeListener() { - disposeListener = new Listener() { - public void handleEvent(Event event) { - destroy(); - } - }; - getDisplay().addListener(SWT.Dispose, disposeListener); - } - - private static void removeDisposeListener() { - if(disposeListener != null) { - Display display = getDisplay(); - if(display != null && !display.isDisposed()) { - display.removeListener(SWT.Dispose, disposeListener); - disposeListener = null; - } - } - } - - private static void checkThread() { - Display display = getDisplay(); - if(display == null) { - throw new RuntimeException("Display doesn't exist"); - } - if(!display.getThread().equals(Thread.currentThread())) { - throw new RuntimeException("Not the UI thread"); - } - } - - private static NetworkStatus instance() { - if(instance == null) { - instance = new NetworkStatus(); - } - return instance; - } - - private static boolean hasListeners() { - if(listeners == null) return false; - for(int i = 0; i < listeners.length; ++i) { - if(listeners[i] != null) { - return true; - } - } - return false; - } - - private static void destroy() { - destroyActiveConfigs(); - if(qNetworkConfigurationManagerHandle != 0) { - org.eclipse.swt.internal.qt.QObjectDeleteWrapper.deleteSafely( - qNetworkConfigurationManagerHandle); - qNetworkConfigurationManagerHandle = 0; - } - if(xqCallInfoHandle != 0) { - org.eclipse.swt.internal.qt.QObjectDeleteWrapper.deleteSafely( - xqCallInfoHandle); - xqCallInfoHandle = 0; - } - listeners = null; - instance = null; - } - - /** - * Adds the listener to the collection of listeners who will be notified of - * the network status changes. Can only be called by the eSWT UI thread. If - * there are active connections at the time of adding a listener the - * listener will be notified. Adding the first listener will automatically - * allocate the required native resources and removing the last listener - * will automatically free them. This class will hold a strong reference to - * the listener object preventing it from getting garbage collected until - * the listener is removed. - * - * @param listener - * the listener which should be notified when the event occurs - * - * @exception IllegalArgumentException - *
    - *
  • ERROR_NULL_ARGUMENT - if the listener is null
  • - *
- * - * @exception RuntimeException - *
    - *
  • If eSWT Display doesn't exist
  • - *
  • If called in a non-UI thread
  • - *
- * - * @see NetworkStatusListener - * @see #removeListener(NetworkStatusListener) - */ - public static void addListener(NetworkStatusListener listener) { - if (listener == null) throw new IllegalArgumentException(); - checkThread(); - instance(); - hook(listener); - if(notifiedStates != 0) { - final NetworkStatusListener asyncNofityListener = listener; - final int asyncNotifyStates = notifiedStates; - getDisplay().asyncExec(new Runnable() { - public void run() { - asyncNofityListener.stateChanged(asyncNotifyStates); - } - }); - } - } - - /** - * Removes the listener from the collection of listeners who will be - * notified of the network status changes. Can only be called by the eSWT UI - * thread. Removing the listener will release the reference held by this - * class to the listener object. When all the listeners have been removed - * the native resources allocated by this class are no longer needed and are - * automatically freed. - * - * @param listener - * the listener which should no longer be notified when the event - * occurs - * - * @exception IllegalArgumentException - *
    - *
  • ERROR_NULL_ARGUMENT - if the listener is null
  • - *
- * - * @exception RuntimeException - *
    - *
  • If eSWT Display doesn't exist
  • - *
  • If called in a non-UI thread
  • - *
- * - * @see NetworkStatusListener - * @see #addListener(NetworkStatusListener) - */ - public static void removeListener(NetworkStatusListener listener) { - if (listener == null) throw new IllegalArgumentException(); - checkThread(); - unhook(listener); - if(!hasListeners()) { - destroy(); - removeDisposeListener(); - } - } - - // Connect the signals - private void hookEvents() { - // Packet data connections - if(qNetworkConfigurationManagerHandle != 0) { - int signalProxy = org.eclipse.swt.internal.qt.OS.SignalForwarder_new( - qNetworkConfigurationManagerHandle, this, OS.QSIGNAL_NETWORKCONFIGURATIONCHANGED); - org.eclipse.swt.internal.qt.OS.QObject_connectOrThrow( - qNetworkConfigurationManagerHandle, - "configurationAdded(const QNetworkConfiguration&)", - signalProxy, "widgetSignal()", - org.eclipse.swt.internal.qt.OS.QT_AUTOCONNECTION); - org.eclipse.swt.internal.qt.OS.QObject_connectOrThrow( - qNetworkConfigurationManagerHandle, - "configurationChanged(const QNetworkConfiguration&)", - signalProxy, "widgetSignal()", - org.eclipse.swt.internal.qt.OS.QT_AUTOCONNECTION); - org.eclipse.swt.internal.qt.OS.QObject_connectOrThrow( - qNetworkConfigurationManagerHandle, - "configurationRemoved(const QNetworkConfiguration&)", - signalProxy, "widgetSignal()", - org.eclipse.swt.internal.qt.OS.QT_AUTOCONNECTION); - } - - // Voice calls - if(xqCallInfoHandle != 0) { - int signalProxy = org.eclipse.swt.internal.qt.OS.SignalForwarder_new( - xqCallInfoHandle, this, OS.QSIGNAL_CALLINFORMATIONCHANGED); - org.eclipse.swt.internal.qt.OS.QObject_connectOrThrow( - xqCallInfoHandle, - "callInformationChanged()", - signalProxy, "widgetSignal()", - org.eclipse.swt.internal.qt.OS.QT_AUTOCONNECTION); - } - } - - // Connected signals come here - boolean eventProcess(int widgetHandle, int eventType, int time, - int arg1, int arg2, int arg3, int arg4, int arg5, String arg6) { - switch(eventType) { - case OS.QSIGNAL_NETWORKCONFIGURATIONCHANGED: - handleNetworkConfigurationChange(); - break; - case OS.QSIGNAL_CALLINFORMATIONCHANGED: - handleCallInformationChanged(); - break; - default: - break; - } - return false; - } - - private static void destroyActiveConfigs() { - // Free the QNetworkConfiguration objects - if(activeConfigHandles != null) { - for(int i = 0; i < activeConfigHandles.length; ++i) { - OS.QNetworkConfiguration_delete(activeConfigHandles[i]); - activeConfigHandles[i] = 0; - } - activeConfigHandles = null; - } - } - - private static void updateActiveConfigs() { - destroyActiveConfigs(); - // Get all the currently active configurations - if(qNetworkConfigurationManagerHandle != 0) { - activeConfigHandles = OS.QNetworkConfigurationManager_allConfigurations( - qNetworkConfigurationManagerHandle, OS.QNETWORKCONFIGURATION_ACTIVE); - } - } - - private static void handleNetworkConfigurationChange() { - updateActiveConfigs(); - - // Find out the new states of all connection types - int newStates = 0; - newStates |= (notifiedStates & VOICE_CALL); // Voice call state didn't change - for(int i = 0; i < activeConfigHandles.length; ++i) { - int activeFlag = bearerNameToConnectionFlag( - OS.QNetworkConfiguration_bearerName(activeConfigHandles[i])); - if(activeFlag == UNKNOWN) continue; - newStates |= activeFlag; - } - - notifyChangedStates(newStates); - } - - private static void handleCallInformationChanged() { - if(xqCallInfoHandle != 0) { - int newStates = notifiedStates; - if(OS.XQCallInfo_swt_hasCalls(xqCallInfoHandle)) { - newStates |= VOICE_CALL; - } else { - newStates &= ~VOICE_CALL; - } - - notifyChangedStates(newStates); - } - } - - private static void notifyChangedStates(int newStates) { - if(newStates != notifiedStates) { - notifyListeners(newStates); - } - } - - private static void notifyListeners(int state) { - if(listeners != null) { - for(int i = 0; i < listeners.length; ++i) { - if(listeners[i] == null) break; - listeners[i].stateChanged(state); - } - } - notifiedStates = state; - } - - private static int bearerNameToConnectionFlag(String bearerName) { - if(bearerName.equalsIgnoreCase("WCDMA")) { - return DATA_WCDMA; - } else if(bearerName.equalsIgnoreCase("HSPA")) { - return DATA_HSPA; - } else if(bearerName.equalsIgnoreCase("2G")) { - return DATA_2G; - } else if(bearerName.equalsIgnoreCase("WLAN")) { - return DATA_WLAN; - } else if(bearerName.equalsIgnoreCase("Bluetooth")) { - return DATA_BLUETOOTH; - } else if(bearerName.equalsIgnoreCase("CDMA2000")) { - return DATA_CDMA2000; - } else if(bearerName.equalsIgnoreCase("WiMAX")) { - return DATA_WIMAX; - } else if(bearerName.equalsIgnoreCase("Ethernet")) { - return DATA_ETHERNET; - } - return UNKNOWN; - } - - private static void hook(NetworkStatusListener listener) { - if (listeners == null) listeners = new NetworkStatusListener[1]; - int length = listeners.length, index = length - 1; - while (index >= 0) { - if (listeners [index] != null) break; - --index; - } - index++; - if (index == length) { - NetworkStatusListener[] newListeners = new NetworkStatusListener[length + 1]; - System.arraycopy (listeners, 0, newListeners, 0, length); - listeners = newListeners; - } - listeners [index] = listener; - } - - private static void unhook(NetworkStatusListener listener) { - if (listeners == null) return; - for (int i = 0; i < listeners.length; i++) { - if (listeners [i] == listener) { - remove (i); - return; - } - } - } - - private static void remove (int index) { - int end = listeners.length - 1; - System.arraycopy (listeners, index + 1, listeners, index, end - index); - index = end; - listeners [index] = null; - } -} diff -r d6dafc5d983f -r 1627c337e51e javauis/eswt_qt/com.nokia.swt.extensions/extensions/org/eclipse/swt/internal/extension/NetworkStatusListener.java --- a/javauis/eswt_qt/com.nokia.swt.extensions/extensions/org/eclipse/swt/internal/extension/NetworkStatusListener.java Fri Oct 15 12:29:39 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Nokia Corporation - initial implementation - *******************************************************************************/ -package org.eclipse.swt.internal.extension; - -/** - * A listener interface used in connection with the class - * NetworkStatus. - */ -public interface NetworkStatusListener { - /** - * Called by the class NetworkStatus in the UI thread to - * provide the current state of the network connections. - * - * @param newStateFlags - * Combination of flags representing the currently active network - * connections. The flags are defined in the class - * NetworkStatus. - * @see NetworkStatus - */ - public void stateChanged(int newStateFlags); -} diff -r d6dafc5d983f -r 1627c337e51e javauis/eswt_qt/com.nokia.swt.extensions/extensions/org/eclipse/swt/internal/extension/OS.java --- a/javauis/eswt_qt/com.nokia.swt.extensions/extensions/org/eclipse/swt/internal/extension/OS.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/eswt_qt/com.nokia.swt.extensions/extensions/org/eclipse/swt/internal/extension/OS.java Fri Oct 29 11:49:32 2010 +0300 @@ -11,28 +11,5 @@ package org.eclipse.swt.internal.extension; public final class OS { - public static final int QSIGNAL_NETWORKCONFIGURATIONCHANGED = 1; - public static final int QSIGNAL_CALLINFORMATIONCHANGED = 2; - - public static final int QNETWORKCONFIGURATION_ACTIVE = 0x000000e; - - // - // QNetworkConfigurationManager - // - public static final native int QNetworkConfigurationManager_new(int parent); - public static final native int[] QNetworkConfigurationManager_allConfigurations(int handle, int filter); - - // - // QNetworkConfiguration - // - public static final native String QNetworkConfiguration_bearerName(int handle); - public static final native void QNetworkConfiguration_delete(int handle); - - // - // XQCallInfo - // - public static final native int XQCallInfo_create(); - public static final native boolean XQCallInfo_swt_hasCalls(int handle); - public static final native int HbInputSettingProxy_availableHwKeyboard(); } diff -r d6dafc5d983f -r 1627c337e51e javauis/eswt_qt/org.eclipse.swt/.classpath --- a/javauis/eswt_qt/org.eclipse.swt/.classpath Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/eswt_qt/org.eclipse.swt/.classpath Fri Oct 29 11:49:32 2010 +0300 @@ -6,7 +6,7 @@ - + @@ -14,6 +14,5 @@ - diff -r d6dafc5d983f -r 1627c337e51e javauis/eswt_qt/org.eclipse.swt/Eclipse SWT/common_j2me/org/eclipse/swt/internal/Compatibility.java --- a/javauis/eswt_qt/org.eclipse.swt/Eclipse SWT/common_j2me/org/eclipse/swt/internal/Compatibility.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/eswt_qt/org.eclipse.swt/Eclipse SWT/common_j2me/org/eclipse/swt/internal/Compatibility.java Fri Oct 29 11:49:32 2010 +0300 @@ -381,31 +381,66 @@ if (key == null) SWT.error (SWT.ERROR_NULL_ARGUMENT); + // ok button in dialog if(key.equals("ok")){ - iRes = ResourceLoader.getInstance("eswtcore", "qtn_eswt_softkey_"); + iRes = ResourceLoader.getInstance("common", "txt_common_button_"); return iRes.format(key).toString(); } - + + // cancel button in dialog if(key.equals("cancel")){ - iRes = ResourceLoader.getInstance("eswtcore", "qtn_eswt_softkey_"); + iRes = ResourceLoader.getInstance("common", "txt_common_button_"); + return iRes.format(key).toString(); + } + + // fetch contact from device phone book - in Options menu + if(key.equals("opt_fetch")){ + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); return iRes.format(key).toString(); } - if(key.equals("fetch_url")){ - iRes = ResourceLoader.getInstance("eswtmobile", "qtn_eswt_option_"); + // fetch contact from device phone book - in context menu + if(key.equals("menu_fetch")){ + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // fetch contact from device phone book - in button + if(key.equals("button_fetch")){ + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // create a call - in Options menu + if(key.equals("opt_call")){ + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); return iRes.format(key).toString(); } - if(key.equals("fetch_email")){ - iRes = ResourceLoader.getInstance("eswtmobile", "qtn_eswt_option_pb_"); + // create a call - in context menu + if(key.equals("menu_call")){ + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // create a call - in button + if(key.equals("button_call")){ + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); return iRes.format(key).toString(); } - - if(key.equals("dialog_title")){ - iRes = ResourceLoader.getInstance("eswtmobile", "qtn_eswt_favorites_"); + + // title of selection list of bookmarks in TextExtension + if(key.equals("title_select_bookmark")){ + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // string displayed in empty list + if(key.equals("info_no_data")){ + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); return iRes.format(key).toString(); } - + return key; } diff -r d6dafc5d983f -r 1627c337e51e javauis/eswt_qt/org.eclipse.swt/Eclipse SWT/qt/org/eclipse/ercp/swt/mobile/TextExtension.java --- a/javauis/eswt_qt/org.eclipse.swt/Eclipse SWT/qt/org/eclipse/ercp/swt/mobile/TextExtension.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/eswt_qt/org.eclipse.swt/Eclipse SWT/qt/org/eclipse/ercp/swt/mobile/TextExtension.java Fri Oct 29 11:49:32 2010 +0300 @@ -307,11 +307,11 @@ String cmdTxt = null; if ((extraStyle() & EMAILADDRESS) != 0) { - cmdTxt = SWT.getMessage("fetch_email"); + cmdTxt = SWT.getMessage("menu_fetch"); inputFlags |= OS.QT_IMHEMAILCHARACTERSONLY; addCommand(cmdTxt); } else if ((extraStyle() & URL) != 0) { - cmdTxt = SWT.getMessage("fetch_url"); + cmdTxt = SWT.getMessage("menu_fetch"); inputFlags |= OS.QT_IMHURLCHARACTERSONLY; addCommand(cmdTxt); } @@ -348,7 +348,7 @@ return null; } OS.XQServiceRequest_swt_setArgumentsForFetchEmail(serviceRequest, - SWT.getMessage("fetch_email"), OS.CNT_ACTIONALL, + SWT.getMessage("menu_fetch"), OS.CNT_ACTIONALL, OS.CNT_DISPLAYALL); Display display = Internal_PackageSupport.display(this); int handler = OS.SignalHandler_new(topHandle(), @@ -386,7 +386,7 @@ return null; } OS.XQServiceRequest_swt_setArgumentsForFetchEmail(serviceRequest, - SWT.getMessage("fetch_phonenumber"), OS.CNT_ACTIONALL, + SWT.getMessage("menu_fetch"), OS.CNT_ACTIONALL, OS.CNT_DISPLAYALL); Display display = Internal_PackageSupport.display(this); int handler = OS.SignalHandler_new(topHandle(), diff -r d6dafc5d983f -r 1627c337e51e javauis/eswt_qt/org.eclipse.swt/Eclipse SWT/qt/org/eclipse/swt/widgets/FileDialog.java --- a/javauis/eswt_qt/org.eclipse.swt/Eclipse SWT/qt/org/eclipse/swt/widgets/FileDialog.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/eswt_qt/org.eclipse.swt/Eclipse SWT/qt/org/eclipse/swt/widgets/FileDialog.java Fri Oct 29 11:49:32 2010 +0300 @@ -42,8 +42,7 @@ String fileName; String[] fileNames = new String[] {}; int filterIndex = -1; - static final char SEPARATOR = System.getProperty("file.separator") - .charAt(0); + static final char SEPARATOR = '/'; // See QDir::fromNativeSeparators static final String EXTENSION_SEPARATOR = ";;"; String dialogID; static int dialogCount; diff -r d6dafc5d983f -r 1627c337e51e javauis/eswt_qt/org.eclipse.swt/Eclipse SWT/qt/org/eclipse/swt/widgets/Tree.java --- a/javauis/eswt_qt/org.eclipse.swt/Eclipse SWT/qt/org/eclipse/swt/widgets/Tree.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/eswt_qt/org.eclipse.swt/Eclipse SWT/qt/org/eclipse/swt/widgets/Tree.java Fri Oct 29 11:49:32 2010 +0300 @@ -978,8 +978,11 @@ void releaseChildren_pp(boolean destroy) { if (topLevelItems != null) { for (int i = topLevelItemCount-1; i >= 0; i--) { - TreeItem item = _getItem(i); - if(item.cached){ + // Cannot use _getItem here, since in a VIRTUAL style Tree it may cause + // creating a new TreeItem, which doesn't make sense when trying to release + // all children. + TreeItem item = topLevelItems[i]; + if(item != null && item.cached){ if (item != null && !item.isDisposed() ) { item.childrenItemCount = 0; item.childrenItems = null; diff -r d6dafc5d983f -r 1627c337e51e javauis/eswt_qt/org.eclipse.swt/Eclipse SWT/qt/org/eclipse/swt/widgets/TreeItem.java --- a/javauis/eswt_qt/org.eclipse.swt/Eclipse SWT/qt/org/eclipse/swt/widgets/TreeItem.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/eswt_qt/org.eclipse.swt/Eclipse SWT/qt/org/eclipse/swt/widgets/TreeItem.java Fri Oct 29 11:49:32 2010 +0300 @@ -778,7 +778,9 @@ void releaseChildren_pp(boolean destroy) { if (childrenItems != null) { for (int i = childrenItemCount-1; i >= 0; i--) { - TreeItem item = _getItem(i); + // Don't use _getItem() here, in a VIRTUAL style Tree it would + // cause children items to be created. + TreeItem item = childrenItems[i]; if (item != null && !item.isDisposed()) { item.release(destroy); diff -r d6dafc5d983f -r 1627c337e51e javauis/eswt_qt/org.eclipse.swt/Eclipse_SWT_PI/common/library/readme.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/javauis/eswt_qt/org.eclipse.swt/Eclipse_SWT_PI/common/library/readme.txt Fri Oct 29 11:49:32 2010 +0300 @@ -0,0 +1,1 @@ +Common library folder. \ No newline at end of file diff -r d6dafc5d983f -r 1627c337e51e javauis/eswt_qt/org.eclipse.swt/Eclipse_SWT_PI/linux/org/eclipse/swt/internal/qt/s60/readme.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/javauis/eswt_qt/org.eclipse.swt/Eclipse_SWT_PI/linux/org/eclipse/swt/internal/qt/s60/readme.txt Fri Oct 29 11:49:32 2010 +0300 @@ -0,0 +1,1 @@ +Folder for matching directory structure with s60 branch. \ No newline at end of file diff -r d6dafc5d983f -r 1627c337e51e javauis/eswt_qt/org.eclipse.swt/Eclipse_SWT_PI/qt/library/eswt_widgets.pri --- a/javauis/eswt_qt/org.eclipse.swt/Eclipse_SWT_PI/qt/library/eswt_widgets.pri Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/eswt_qt/org.eclipse.swt/Eclipse_SWT_PI/qt/library/eswt_widgets.pri Fri Oct 29 11:49:32 2010 +0300 @@ -54,9 +54,7 @@ ##### Symbian specific items ###### symbian { CONFIG += mobility - MOBILITY += bearer - - CONFIG +=hb + HEADERS += \ swts60.h \ swtmobiledevice.h \ @@ -77,12 +75,9 @@ -lapgrfx \ -lHWRMVibraClient \ -lHWRMLightClient \ - -lxqservice \ - -lxqtelephonyservice \ -lQtContacts \ -lhal \ -lws32 \ -lgdi \ - -lHbCore \ -lfbscli } diff -r d6dafc5d983f -r 1627c337e51e javauis/eswt_qt/org.eclipse.swt/Eclipse_SWT_PI/qt/library/graphics/gfxos.cpp --- a/javauis/eswt_qt/org.eclipse.swt/Eclipse_SWT_PI/qt/library/graphics/gfxos.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/eswt_qt/org.eclipse.swt/Eclipse_SWT_PI/qt/library/graphics/gfxos.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -38,7 +38,7 @@ GfxException e(EGfxErrorNoMemory, "Bad alloc"); \ swtApp->jniUtils().Throw(aJniEnv, e); \ } \ -catch(GfxException e) \ +catch(GfxException& e) \ { \ swtApp->jniUtils().Throw(aJniEnv, e); \ } diff -r d6dafc5d983f -r 1627c337e51e javauis/eswt_qt/org.eclipse.swt/Eclipse_SWT_PI/qt/library/graphics/graphics.h --- a/javauis/eswt_qt/org.eclipse.swt/Eclipse_SWT_PI/qt/library/graphics/graphics.h Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/eswt_qt/org.eclipse.swt/Eclipse_SWT_PI/qt/library/graphics/graphics.h Fri Oct 29 11:49:32 2010 +0300 @@ -1711,7 +1711,7 @@ mMsg = new char[aMsg.size()+1]; strcpy(mMsg, aMsg.toAscii().data()); }; - //~GfxException() { delete mMsg; }; + ~GfxException() { delete mMsg; mMsg = NULL; }; int getErrorCode() { return mErrorCode; }; const char* getMsg() { return (const char*)mMsg; }; private: diff -r d6dafc5d983f -r 1627c337e51e javauis/eswt_qt/org.eclipse.swt/Eclipse_SWT_PI/qt/library/graphics/qt/imagedataimpl.cpp --- a/javauis/eswt_qt/org.eclipse.swt/Eclipse_SWT_PI/qt/library/graphics/qt/imagedataimpl.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/eswt_qt/org.eclipse.swt/Eclipse_SWT_PI/qt/library/graphics/qt/imagedataimpl.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -101,6 +101,7 @@ mAlphaData.clear(); mMaskData.clear(); delete mPaletteData; + mPaletteData = 0; // Get image information mDepth = aImage->depth(); diff -r d6dafc5d983f -r 1627c337e51e javauis/eswt_qt/org.eclipse.swt/Eclipse_SWT_PI/qt/library/os.cpp --- a/javauis/eswt_qt/org.eclipse.swt/Eclipse_SWT_PI/qt/library/os.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/eswt_qt/org.eclipse.swt/Eclipse_SWT_PI/qt/library/os.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -79,12 +79,9 @@ #include #include -#ifdef __SYMBIAN32__ +#if 0 #include -#include #include -#include -#include #include #include #include @@ -6362,7 +6359,7 @@ JNIEXPORT jint JNICALL OS_NATIVE ( HbIcon_1new ) (JNIEnv* aJniEnv , jclass, jstring aName) { -#ifdef __SYMBIAN32__ +#if 0 HbIcon* icon = NULL; SWT_TRY { @@ -6379,7 +6376,7 @@ JNIEXPORT jint JNICALL OS_NATIVE( HbIcon_1pixmap ) (JNIEnv* aJniEnv , jclass, jint aHandle) { -#ifdef __SYMBIAN32__ +#if 0 QPixmap* pixmap = NULL; SWT_TRY { @@ -6397,7 +6394,7 @@ JNIEXPORT void JNICALL OS_NATIVE( HbIcon_1delete ) (JNIEnv* aJniEnv , jclass, jint aHandle) { -#ifdef __SYMBIAN32__ +#if 0 SWT_TRY { SWT_LOG_JNI_CALL(); @@ -11396,7 +11393,7 @@ (JNIEnv* aJniEnv, jclass) { jint result = 0; -#ifdef __SYMBIAN32__ +#if 0 SWT_TRY { SWT_LOG_JNI_CALL(); @@ -11446,13 +11443,13 @@ // JNIEXPORT jint JNICALL OS_NATIVE( XQServiceRequest_1new ) -#ifdef __SYMBIAN32__ +#if 0 (JNIEnv* aJniEnv, jclass, jstring aService, jstring aOperation, jboolean aSynchronous) #else (JNIEnv* aJniEnv, jclass, jstring, jstring, jboolean) #endif { -#ifdef __SYMBIAN32__ +#if 0 XQServiceRequest* request = NULL; SWT_TRY { @@ -11467,13 +11464,13 @@ } JNIEXPORT void JNICALL OS_NATIVE( XQServiceRequest_1swt_1setArgumentsForFetchEmail ) -#ifdef __SYMBIAN32__ +#if 0 (JNIEnv* aJniEnv, jclass, jint aHandle, jstring aTitle, jstring aAction, jstring) #else (JNIEnv* aJniEnv, jclass, jint, jstring, jstring, jstring) #endif { -#ifdef __SYMBIAN32__ +#if 0 SWT_TRY { SWT_LOG_JNI_CALL(); @@ -11487,13 +11484,13 @@ } JNIEXPORT void JNICALL OS_NATIVE( XQServiceRequest_1swt_1setArgumentsForDial ) -#ifdef __SYMBIAN32__ +#if 0 (JNIEnv* aJniEnv, jclass, jint aHandle, jstring aNumber, jboolean aAsyncAnswer) #else (JNIEnv* aJniEnv, jclass, jint, jstring, jboolean) #endif { -#ifdef __SYMBIAN32__ +#if 0 SWT_TRY { SWT_LOG_JNI_CALL(); @@ -11507,13 +11504,13 @@ } JNIEXPORT jboolean JNICALL OS_NATIVE( XQServiceRequest_1send ) -#ifdef __SYMBIAN32__ +#if 0 (JNIEnv* aJniEnv, jclass, jint aHandle) #else (JNIEnv* aJniEnv, jclass, jint) #endif { -#ifdef __SYMBIAN32__ +#if 0 bool result = false; SWT_TRY { @@ -11535,13 +11532,13 @@ // JNIEXPORT jint JNICALL OS_NATIVE( XQApplicationManager_1new ) -#ifdef __SYMBIAN32__ +#if 0 (JNIEnv* aJniEnv, jclass) #else (JNIEnv* aJniEnv, jclass) #endif { -#ifdef __SYMBIAN32__ +#if 0 XQApplicationManager* aiwMgr = NULL; SWT_TRY { @@ -11556,13 +11553,13 @@ } JNIEXPORT jint JNICALL OS_NATIVE( XQApplicationManager_1create ) -#ifdef __SYMBIAN32__ +#if 0 (JNIEnv * aJniEnv, jclass,jint aHandle, jstring aService, jstring aInterface, jstring aOperation, jboolean aSynchronous) #else (JNIEnv *, jclass, jint, jstring, jstring, jstring, jboolean) #endif { -#ifdef __SYMBIAN32__ +#if 0 XQAiwRequest* request = NULL; SWT_TRY { @@ -11584,13 +11581,13 @@ // XQAiwRequest // JNIEXPORT void JNICALL OS_NATIVE( XQAiwRequest_1setArguments ) -#ifdef __SYMBIAN32__ +#if 0 (JNIEnv* aJniEnv, jclass, jint aHandle, jstring aNumber) #else (JNIEnv* aJniEnv, jclass, jint, jstring) #endif { -#ifdef __SYMBIAN32__ +#if 0 SWT_TRY { SWT_LOG_JNI_CALL(); @@ -11609,13 +11606,13 @@ } JNIEXPORT void JNICALL OS_NATIVE( XQAiwRequest_1swtDialer_1setArguments ) -#ifdef __SYMBIAN32__ +#if 0 (JNIEnv* aJniEnv, jclass, jint aHandle, jstring aNumber) #else (JNIEnv* aJniEnv, jclass, jint, jstring) #endif { -#ifdef __SYMBIAN32__ +#if 0 SWT_TRY { SWT_LOG_JNI_CALL(); @@ -11638,13 +11635,13 @@ } JNIEXPORT jboolean JNICALL OS_NATIVE( XQAiwRequest_1send ) -#ifdef __SYMBIAN32__ +#if 0 (JNIEnv* aJniEnv, jclass, jint aHandle) #else (JNIEnv* aJniEnv, jclass, jint) #endif { -#ifdef __SYMBIAN32__ +#if 0 bool result = false; SWT_TRY { @@ -11668,13 +11665,13 @@ // JNIEXPORT jobjectArray JNICALL OS_NATIVE( CntServicesContactList_1swt_1contacts ) -#ifdef __SYMBIAN32__ +#if 0 (JNIEnv* aJniEnv, jclass, jint aHandle) #else (JNIEnv* aJniEnv, jclass, jint) #endif { -#ifdef __SYMBIAN32__ +#if 0 jobjectArray javaStringArray = NULL; SWT_TRY { @@ -11921,157 +11918,6 @@ } // -// QNetworkConfigurationManager -// - -JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_extension_OS_QNetworkConfigurationManager_1new -#ifdef __SYMBIAN32__ -(JNIEnv* aJniEnv, jclass, jint aParent) -#else -(JNIEnv*, jclass, jint) -#endif -{ - jint result = 0; -#ifdef __SYMBIAN32__ - SWT_TRY - { - SWT_LOG_JNI_CALL(); - SWT_LOG_DATA_1("parent=%x", aParent); - HANDLE_TO_POINTER(QObject*, parent, aParent); - result = POINTER_TO_HANDLE(new QtMobility::QNetworkConfigurationManager(parent)); - } - SWT_CATCH -#endif - return result; -} - -JNIEXPORT jintArray JNICALL Java_org_eclipse_swt_internal_extension_OS_QNetworkConfigurationManager_1allConfigurations -#ifdef __SYMBIAN32__ -(JNIEnv* aJniEnv, jclass, jint aHandle, jint aFilter) -#else -(JNIEnv*, jclass, jint, jint) -#endif -{ - jintArray javaArray = NULL; -#ifdef __SYMBIAN32__ - SWT_TRY - { - SWT_LOG_JNI_CALL(); - SWT_LOG_DATA_2("handle=%x filter=%x", aHandle, aFilter); - - HANDLE_TO_POINTER(QtMobility::QNetworkConfigurationManager*, manager, aHandle); - - QList configs = - manager->allConfigurations(static_cast(aFilter)); - - int count = configs.size(); - QVector handles(count); - int* handleData = handles.data(); - for(int i = 0; i < count; ++i) - { - handleData[i] = reinterpret_cast(new QtMobility::QNetworkConfiguration(configs.at(i))); - } - javaArray = swtApp->jniUtils().NewJavaIntArray(aJniEnv, handleData, count); - } - SWT_CATCH -#endif - return javaArray; -} - -// -// QNetworkConfiguration -// - -JNIEXPORT jstring JNICALL Java_org_eclipse_swt_internal_extension_OS_QNetworkConfiguration_1bearerName -#ifdef __SYMBIAN32__ -(JNIEnv* aJniEnv, jclass, jint aHandle) -#else -(JNIEnv *, jclass, jint) -#endif -{ -#ifdef __SYMBIAN32__ - jstring result = NULL; -#ifdef __SYMBIAN32__ - SWT_TRY - { - SWT_LOG_JNI_CALL(); - SWT_LOG_DATA_1("handle=%x", aHandle); - QtMobility::QNetworkConfiguration* config = reinterpret_cast(aHandle); - result = swtApp->jniUtils().QStringToJavaString(aJniEnv, config->bearerName()); - } - SWT_CATCH -#endif - return result; -#endif -} - -JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_extension_OS_QNetworkConfiguration_1delete -#ifdef __SYMBIAN32__ -(JNIEnv* aJniEnv, jclass, jint aHandle) -#else -(JNIEnv *, jclass, jint) -#endif -{ -#ifdef __SYMBIAN32__ - SWT_TRY - { - SWT_LOG_JNI_CALL(); - SWT_LOG_DATA_1("handle=%x", aHandle); - delete reinterpret_cast(aHandle); - } - SWT_CATCH -#endif -} - -// -// XQCallInfo -// - -JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_extension_OS_XQCallInfo_1create -#ifdef __SYMBIAN32__ -(JNIEnv* aJniEnv, jclass) -#else -(JNIEnv *, jclass) -#endif -{ - jint result = 0; -#ifdef __SYMBIAN32__ - SWT_TRY - { - SWT_LOG_JNI_CALL(); -#ifndef __WINSCW__ - result = POINTER_TO_HANDLE(XQCallInfo::create()); -#endif - } - SWT_CATCH -#endif - return result; -} - -JNIEXPORT jboolean JNICALL Java_org_eclipse_swt_internal_extension_OS_XQCallInfo_1swt_1hasCalls -#ifdef __SYMBIAN32__ -(JNIEnv* aJniEnv, jclass, jint aHandle) -#else -(JNIEnv *, jclass, jint) -#endif -{ - jboolean result = JNI_FALSE; -#ifdef __SYMBIAN32__ - SWT_TRY - { - SWT_LOG_JNI_CALL(); - SWT_LOG_DATA_1("handle=%x", aHandle); - HANDLE_TO_POINTER(XQCallInfo*, callInfo, aHandle); - QList callInfos; - callInfo->getCalls(callInfos); - result = callInfos.empty() ? JNI_FALSE : JNI_TRUE; - } - SWT_CATCH -#endif - return result; -} - -// // Other // diff -r d6dafc5d983f -r 1627c337e51e javauis/eswt_qt/org.eclipse.swt/Eclipse_SWT_PI/qt/library/slotcallback.cpp --- a/javauis/eswt_qt/org.eclipse.swt/Eclipse_SWT_PI/qt/library/slotcallback.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/eswt_qt/org.eclipse.swt/Eclipse_SWT_PI/qt/library/slotcallback.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -13,7 +13,7 @@ #include #include #include -#ifdef __SYMBIAN32__ +#if 0 #include #endif @@ -199,7 +199,7 @@ callJava(reinterpret_cast(&value)); } -#ifdef __SYMBIAN32__ +#if 0 Q_IMPLEMENT_USER_METATYPE(CntServicesContact) Q_IMPLEMENT_USER_METATYPE_NO_OPERATORS(CntServicesContactList) #endif diff -r d6dafc5d983f -r 1627c337e51e javauis/eswt_qt/org.eclipse.swt/Eclipse_SWT_PI/qt/org/eclipse/swt/internal/qt/graphics/Config.java --- a/javauis/eswt_qt/org.eclipse.swt/Eclipse_SWT_PI/qt/org/eclipse/swt/internal/qt/graphics/Config.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/eswt_qt/org.eclipse.swt/Eclipse_SWT_PI/qt/org/eclipse/swt/internal/qt/graphics/Config.java Fri Oct 29 11:49:32 2010 +0300 @@ -28,5 +28,5 @@ * Default type for images. Used when image type is not specified as an argument in Image constructor. * This setting is also used for ImageLoader output Images (default), if no explicit target Image type is specified. */ - static final int IMAGE_DEFAULT_TYPE = Image.IMAGE_TYPE_QIMAGE; + static final int IMAGE_DEFAULT_TYPE = Image.IMAGE_TYPE_QPIXMAP; } diff -r d6dafc5d983f -r 1627c337e51e javauis/eswt_qt/xlibutils/java/bin/readme.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/javauis/eswt_qt/xlibutils/java/bin/readme.txt Fri Oct 29 11:49:32 2010 +0300 @@ -0,0 +1,1 @@ +Target folder for xlibutils binaries. \ No newline at end of file diff -r d6dafc5d983f -r 1627c337e51e javauis/lcdui_qt/src/javax/microedition/lcdui/Display.java --- a/javauis/lcdui_qt/src/javax/microedition/lcdui/Display.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/lcdui_qt/src/javax/microedition/lcdui/Display.java Fri Oct 29 11:49:32 2010 +0300 @@ -290,7 +290,7 @@ } else { - if(displayable.isPopup()) + if(displayable.isPopup() && displayable instanceof TextBox) { TextBox textbox = (TextBox) displayable; if(currentDisplayable == null) diff -r d6dafc5d983f -r 1627c337e51e javauis/lcdui_qt/src/javax/microedition/lcdui/Displayable.java --- a/javauis/lcdui_qt/src/javax/microedition/lcdui/Displayable.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/lcdui_qt/src/javax/microedition/lcdui/Displayable.java Fri Oct 29 11:49:32 2010 +0300 @@ -199,11 +199,25 @@ { eswtUpdateSizes(); - // If it is popup textbox ticker should not be visible + // If it is popup textbox or alert ticker should not be visible if (ticker != null && !isPopup()) { + if (tickerLabel != null && !tickerLabel.getVisible()) + { + // Show ticker: + tickerLabel.setVisible(true); + } ticker.start(); } + else if (ticker != null && isPopup()) + { + if (tickerLabel != null && tickerLabel.getVisible()) + { + // Hide ticker: + tickerLabel.setVisible(false); + } + + } shell.addShellListener(eswtShellListener); shell.addDisposeListener(eswtDisposeListener); shell.addControlListener(eswtControlListener); @@ -338,7 +352,7 @@ int newWidth = (aWidth > 0 ? aWidth : contentBounds.width); int newHeight = (aHeight > 0 ? aHeight : contentBounds.height); - if(tickerLabel != null) + if(tickerLabel != null && !isPopup()) { newHeight += tickerLabel.getBounds().height; } @@ -369,7 +383,7 @@ { Rectangle shellArea = shell.getClientArea(); - if(tickerLabel != null) + if(tickerLabel != null && !isPopup()) { int tickerHeight = tickerLabel.getBounds().height; @@ -396,7 +410,7 @@ { contentArea = newArea; initialized = true; - if(ticker != null) + if(ticker != null && !isPopup()) { ticker.updateSpeed(); } @@ -725,7 +739,7 @@ // Setting ticker: tickerLabel.setText(finalTicker.getFormattedString()); - // If it is popup textbox ticker should not be visible + // If it is popup textbox or alert ticker should not be visible if (!currentDisplayable.isPopup()) { @@ -743,7 +757,7 @@ // Removing ticker: tickerLabel.setText(""); - // If it is popup textbox ticker should not be visible + // If it is popup textbox or alert ticker should not be visible if (!currentDisplayable.isPopup()) { // Removing ticker: @@ -757,7 +771,7 @@ { if(isLcduiVisible) { - // If it is popup textbox ticker should not be visible + // If it is popup textbox or alert ticker should not be visible if (!isPopup()) { // Start to scroll the ticker. Ticker may be already running @@ -827,17 +841,7 @@ { public void run() { - // Alert's ticker should be added to top part of the screen - Composite parent = shell; - if (currentDisplayable instanceof Alert) - { - parent = shell.getParent(); - if(parent == null) - { - parent = shell; - } - } - tickerLabel = new Label(parent, + tickerLabel = new Label(shell, SWT.SHADOW_NONE | SWT.HORIZONTAL | SWT.CENTER); } }); @@ -906,10 +910,10 @@ { boolean isPopup = false; - if(this instanceof TextBox && + if(this instanceof Alert || (this instanceof TextBox && !JadAttributeUtil.isValue( JadAttributeUtil.ATTRIB_NOKIA_UI_ENHANCEMENT, - JadAttributeUtil.VALUE_FULLSCREEN_TEXTBOX)) + JadAttributeUtil.VALUE_FULLSCREEN_TEXTBOX))) { isPopup = true; } diff -r d6dafc5d983f -r 1627c337e51e javauis/lcdui_qt/src/javax/microedition/lcdui/KeyTable.java --- a/javauis/lcdui_qt/src/javax/microedition/lcdui/KeyTable.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/lcdui_qt/src/javax/microedition/lcdui/KeyTable.java Fri Oct 29 11:49:32 2010 +0300 @@ -123,25 +123,25 @@ return "9"; case Canvas.KEY_STAR: - return "*"; + return OpenLcduiLocalization.getMessage("canvas_key_star_key"); case Canvas.KEY_POUND: - return "#"; + return OpenLcduiLocalization.getMessage("canvas_key_hash_key"); case -1: - return OpenLcduiLocalization.getMessage("key_up"); + return OpenLcduiLocalization.getMessage("canvas_key_up"); case -2: - return OpenLcduiLocalization.getMessage("key_down"); + return OpenLcduiLocalization.getMessage("canvas_key_down"); case -3: - return OpenLcduiLocalization.getMessage("key_left"); + return OpenLcduiLocalization.getMessage("canvas_key_left"); case -4: - return OpenLcduiLocalization.getMessage("key_right"); + return OpenLcduiLocalization.getMessage("canvas_key_right"); case -5: - return OpenLcduiLocalization.getMessage("key_select"); + return OpenLcduiLocalization.getMessage("canvas_key_selection_key"); default: throw new IllegalArgumentException( diff -r d6dafc5d983f -r 1627c337e51e javauis/lcdui_qt/src/javax/microedition/lcdui/MsgRepository.java --- a/javauis/lcdui_qt/src/javax/microedition/lcdui/MsgRepository.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/lcdui_qt/src/javax/microedition/lcdui/MsgRepository.java Fri Oct 29 11:49:32 2010 +0300 @@ -24,55 +24,170 @@ */ final class MsgRepository { - + // Command labels: + + // SCREEN command + // for Options menu position public static final String COMMAND_LABEL_SCREEN = - OpenLcduiLocalization.getMessage("key_select"); + OpenLcduiLocalization.getMessage("opt_screen_cmd_select"); + + // for context menu position + public static final String COMMAND_LABEL_SCREEN_CTX_MENU = + OpenLcduiLocalization.getMessage("menu_screen_cmd_select"); + // for button position (one button/softkey only) + public static final String COMMAND_LABEL_SCREEN_BUTTON_1 = + OpenLcduiLocalization.getMessage("button_screen_cmd_select_1"); + + // for button position (two buttons/softkeys) + public static final String COMMAND_LABEL_SCREEN_BUTTON_2 = + OpenLcduiLocalization.getMessage("button_screen_cmd_select_2"); + + // BACK command + // for Options menu positions public static final String COMMAND_LABEL_BACK = - OpenLcduiLocalization.getMessage("back"); - + OpenLcduiLocalization.getMessage("opt_cmd_back"); + + // for context menu position + public static final String COMMAND_LABEL_BACK_CTX_MENU = + OpenLcduiLocalization.getMessage("menu_cmd_back"); + + // for button position (one button/softkey only) + public static final String COMMAND_LABEL_BACK_BUTTON_1 = + OpenLcduiLocalization.getMessage("button_cmd_back_1"); + + // for button position (two buttons/softkeys) + public static final String COMMAND_LABEL_BACK_BUTTON_2 = + OpenLcduiLocalization.getMessage("button_cmd_back_2"); + + // CANCEL command + // for Options menu position public static final String COMMAND_LABEL_CANCEL = - SWT.getMessage("cancel"); + SWT.getMessage("opt_cmd_cancel"); + + // for context menu position + public static final String COMMAND_LABEL_CANCEL_CTX_MENU = + SWT.getMessage("menu_cmd_cancel"); + // for button position (one button/softkey only) + public static final String COMMAND_LABEL_CANCEL_BUTTON_1 = + SWT.getMessage("button_cmd_cancel_1"); + + // for button position (two buttons/softkeys) + public static final String COMMAND_LABEL_CANCEL_BUTTON_2 = + SWT.getMessage("button_cmd_cancel_2"); + + // OK command + // for Options menu position public static final String COMMAND_LABEL_OK = - SWT.getMessage("ok"); + SWT.getMessage("opt_cmd_ok"); + + // for context menu position + public static final String COMMAND_LABEL_OK_CTX_MENU = + SWT.getMessage("menu_cmd_ok"); + + // for button position (one button/softkey only) + public static final String COMMAND_LABEL_OK_BUTTON_1 = + SWT.getMessage("button_cmd_ok_1"); + + // for button position (two buttons/softkeys) + public static final String COMMAND_LABEL_OK_BUTTON_2 = + SWT.getMessage("button_cmd_ok_2"); + // HELP command + // for Options menu position public static final String COMMAND_LABEL_HELP = - OpenLcduiLocalization.getMessage("help"); + OpenLcduiLocalization.getMessage("opt_cmd_help"); + + // for context menu position + public static final String COMMAND_LABEL_HELP_CTX_MENU = + OpenLcduiLocalization.getMessage("menu_cmd_help"); + + // for button position (one button/softkey only) + public static final String COMMAND_LABEL_HELP_BUTTON_1 = + OpenLcduiLocalization.getMessage("button_cmd_help_1"); + + // for button position (two buttons/softkeys) + public static final String COMMAND_LABEL_HELP_BUTTON_2 = + OpenLcduiLocalization.getMessage("button_cmd_help_2"); + // STOP command + // for Options menu position public static final String COMMAND_LABEL_STOP = - OpenLcduiLocalization.getMessage("key_stop"); - + OpenLcduiLocalization.getMessage("opt_cmd_stop"); + + // for context menu position + public static final String COMMAND_LABEL_STOP_CTX_MENU = + OpenLcduiLocalization.getMessage("menu_cmd_stop"); + + // for button position (one button/softkey only) + public static final String COMMAND_LABEL_STOP_BUTTON_1 = + OpenLcduiLocalization.getMessage("button_cmd_stop_1"); + + // for button position (two buttons/softkeys) + public static final String COMMAND_LABEL_STOP_BUTTON_2 = + OpenLcduiLocalization.getMessage("button_cmd_stop_2"); + + // EXIT command + // for Options menu position public static final String COMMAND_LABEL_EXIT = - OpenLcduiLocalization.getMessage("close"); - + OpenLcduiLocalization.getMessage("opt_cmd_close"); + + // for context menu position + public static final String COMMAND_LABEL_EXIT_CTX_MENU = + OpenLcduiLocalization.getMessage("menu_cmd_close"); + + // for button position (one button/softkey only) + public static final String COMMAND_LABEL_EXIT_BUTTON_1 = + OpenLcduiLocalization.getMessage("button_cmd_close_1"); + + // for button position (two buttons/softkeys) + public static final String COMMAND_LABEL_EXIT_BUTTON_2 = + OpenLcduiLocalization.getMessage("button_cmd_close_2"); + + // ITEM command + // for Options menu position (Note: should not be used, as ITEM type commands + // should never be mapped to Options menu!) public static final String COMMAND_LABEL_ITEM = - OpenLcduiLocalization.getMessage("key_select"); - + OpenLcduiLocalization.getMessage("opt_item_cmd_select"); + + // for context menu position + public static final String COMMAND_LABEL_ITEM_CTX_MENU = + OpenLcduiLocalization.getMessage("menu_item_cmd_select"); + + // for button position (one button/softkey only) + public static final String COMMAND_LABEL_ITEM_BUTTON_1 = + OpenLcduiLocalization.getMessage("button_item_cmd_select_1"); + + // for button position (two buttons/softkeys) + public static final String COMMAND_LABEL_ITEM_BUTTON_2 = + OpenLcduiLocalization.getMessage("button_item_cmd_select_2"); + // Alert texts: public static final String ALERT_DEFAULT_TEXT_ERROR = - OpenLcduiLocalization.getMessage("alert_error"); + OpenLcduiLocalization.getMessage("info_alert_error"); public static final String ALERT_DEFAULT_TEXT_WARNING = - OpenLcduiLocalization.getMessage("alert_warning"); + OpenLcduiLocalization.getMessage("info_alert_warning"); public static final String ALERT_DEFAULT_TEXT_INFO = - OpenLcduiLocalization.getMessage("alert_info"); + OpenLcduiLocalization.getMessage("info_alert_information"); public static final String ALERT_DEFAULT_TEXT_CONFIRMATION = - OpenLcduiLocalization.getMessage("alert_conf"); + OpenLcduiLocalization.getMessage("info_alert_confirmation"); public static final String ALERT_DEFAULT_TEXT_ALARM = - OpenLcduiLocalization.getMessage("alert_alarm"); - + OpenLcduiLocalization.getMessage("info_alert_alarm"); + + // AlertType.NULL public static final String ALERT_DEFAULT_TEXT_ALERT = - OpenLcduiLocalization.getMessage("alert_null"); + OpenLcduiLocalization.getMessage("info_alert"); + // Exceptions below - dont need translation !!! - public static final String COMMAND_EXCEPTION_LABEL_IS_NULL = "Short label cannot be null"; diff -r d6dafc5d983f -r 1627c337e51e javauis/lcdui_qt/src_j2me/javax/microedition/lcdui/OpenLcduiLocalization.java --- a/javauis/lcdui_qt/src_j2me/javax/microedition/lcdui/OpenLcduiLocalization.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/lcdui_qt/src_j2me/javax/microedition/lcdui/OpenLcduiLocalization.java Fri Oct 29 11:49:32 2010 +0300 @@ -31,139 +31,535 @@ if(key == null) throw new IllegalArgumentException( MsgRepository.TEXT_EXCEPTION_TXT_IS_NULL); - if(key.equals("key_up")) + // arrow up key name + if(key.equals("canvas_key_up")) { - iRes = ResourceLoader.getInstance("lcdui", "qtn_midp_"); + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); return iRes.format(key).toString(); } - if(key.equals("key_down")) + // arrow down key name + if(key.equals("canvas_key_down")) { - iRes = ResourceLoader.getInstance("lcdui", "qtn_midp_"); + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); return iRes.format(key).toString(); } - if(key.equals("key_left")) + // arrow left key name + if(key.equals("canvas_key_left")) { - iRes = ResourceLoader.getInstance("lcdui", "qtn_midp_"); + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); return iRes.format(key).toString(); } - if(key.equals("key_right")) + // arrow right key name + if(key.equals("canvas_key_right")) { - iRes = ResourceLoader.getInstance("lcdui", "qtn_midp_"); + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); return iRes.format(key).toString(); } - if(key.equals("key_select")) + // selection key name + if(key.equals("canvas_key_selection_key")) { - iRes = ResourceLoader.getInstance("lcdui", "qtn_midp_"); + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); return iRes.format(key).toString(); } - if(key.equals("key_stop")) + // media key stop, key name + if(key.equals("canvas_media_key_stop")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // media key play/pause, key name + if(key.equals("canvas_media_key_play")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // media key previous (rewind), key name + if(key.equals("canvas_media_key_previous")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // media key next (forward), key name + if(key.equals("canvas_media_key_next")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // SK1, positive softkey - key name, used mainly in on-screen-keypad + if(key.equals("canvas_key_lsk")) { - iRes = ResourceLoader.getInstance("lcdui", "qtn_midp_"); + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // SK2, negative softkey - key name, used mainly in on-screen-keypad + if(key.equals("canvas_key_rsk")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // Send key, "green phone key" key name + if(key.equals("canvas_key_send")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // End key, "red phone key" key name + if(key.equals("canvas_key_end")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // Clear key, in qwerty keyboard, key name + if(key.equals("canvas_key_clear")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // Applications key, key name + if(key.equals("canvas_key_apps")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); return iRes.format(key).toString(); } - - if(key.equals("alert_error")) + + // Enter key in qwerty keyboard, key name + if(key.equals("canvas_key_enter")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // Voice/volume key, key name + if(key.equals("canvas_key_voice")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // Modifier keys, key name + if(key.equals("canvas_key_modifier")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // Space key in qwerty keyboard, key name + if(key.equals("canvas_key_space")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // Escape key in qwerty keyboard, key name + if(key.equals("canvas_key_escape")) { - iRes = ResourceLoader.getInstance("lcdui", "qtn_midp_"); + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // Tab key in qwerty keyboard, key name + if(key.equals("canvas_key_tab")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // Delete key in qwerty keyboard, key name + if(key.equals("canvas_key_delete")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // Hash key in ITU-T keyboard, key name + if(key.equals("canvas_key_hash_key")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // Star key in ITU-T keyboard, key name + if(key.equals("canvas_key_star_key")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // back space button key name + if(key.equals("canvas_key_backspace")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); return iRes.format(key).toString(); } - if(key.equals("alert_warning")) + // default text for error Alert + if(key.equals("info_alert_error")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // default text for warning Alert + if(key.equals("info_alert_warning")) { - iRes = ResourceLoader.getInstance("lcdui", "qtn_midp_"); + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // default text for information Alert + if(key.equals("info_alert_information")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // default text for confirmation Alert + if(key.equals("info_alert_confirmation")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // default text for alarm Alert + if(key.equals("info_alert_alarm")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); return iRes.format(key).toString(); } - if(key.equals("alert_info")) + // default text for alarm Alert (AlertType.NULL) + if(key.equals("info_alert")) { - iRes = ResourceLoader.getInstance("lcdui", "qtn_midp_"); + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // default text for Options menu - fetch contact from device phone book + if(key.equals("opt_fetch")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); return iRes.format(key).toString(); } - if(key.equals("alert_conf")) + // default text for context menu - fetch contact from device phone book + if(key.equals("menu_fetch")) { - iRes = ResourceLoader.getInstance("lcdui", "qtn_midp_"); + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // default text for button - fetch contact from device phone book + if(key.equals("button_fetch")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); return iRes.format(key).toString(); } - if(key.equals("alert_alarm")) + // default text for Options menu - create a call + if(key.equals("opt_call")) { - iRes = ResourceLoader.getInstance("lcdui", "qtn_midp_"); + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // default text for context menu - create a call + if(key.equals("menu_call")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // default text for button - create a call + if(key.equals("button_call")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); return iRes.format(key).toString(); } - if(key.equals("alert_null")) + // String displayed in empty form or list + if(key.equals("info_no_data")) { - iRes = ResourceLoader.getInstance("lcdui", "qtn_midp_"); + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // Softkey label in Alert that has only one button - for opening "Options" menu + if(key.equals("button_options_1")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // Softkey label in Alert that has two buttons - for opening "Options" menu + if(key.equals("button_options_2")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); return iRes.format(key).toString(); } - - if(key.equals("pb_fetch_number")) + + // Softkey label in Alert - for implicit dismiss command, Note: this command is then the only command in Alert + if(key.equals("button_alert_ok")) { - iRes = ResourceLoader.getInstance("lcdui", "qtn_midp_option_"); + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // Softkey label in Alert - for implicit dismiss command, Note: in context menu. + if(key.equals("menu_alert_dismiss")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // IMPLICIT List default select command - in context menu + if(key.equals("menu_implicit_list_select")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); return iRes.format(key).toString(); } + + // Default command labels - if(key.equals("pb_fetch_number_short")) + // HELP - in Options menu + if(key.equals("opt_cmd_help")) { - iRes = ResourceLoader.getInstance("lcdui", "qtn_midp_option_"); + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // HELP - in context menu + if(key.equals("menu_cmd_help")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // HELP - if only one button/softkey + if(key.equals("button_cmd_help_1")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); return iRes.format(key).toString(); } - - if(key.equals("pb_fetch_email")) + + // HELP - if two buttons/softkeys + if(key.equals("button_cmd_help_2")) { - iRes = ResourceLoader.getInstance("lcdui", "qtn_midp_option_"); + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // STOP - in Options menu + if(key.equals("opt_cmd_stop")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); return iRes.format(key).toString(); } - - if(key.equals("pb_fetch_email_short")) + + // STOP - in context menu + if(key.equals("menu_cmd_stop")) { - iRes = ResourceLoader.getInstance("lcdui", "qtn_midp_option_"); + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // STOP - if only one button/softkey + if(key.equals("button_cmd_stop_1")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // STOP - if two buttons/softkeys + if(key.equals("button_cmd_stop_2")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); return iRes.format(key).toString(); } - if(key.equals("create_call")) + // EXIT - in Options menu + if(key.equals("opt_cmd_close")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // EXIT - in context menu + if(key.equals("menu_cmd_close")) { - iRes = ResourceLoader.getInstance("lcdui", "qtn_midp_option_"); + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // EXIT - if only one button/softkey + if(key.equals("button_cmd_close_1")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // EXIT - if two buttons/softkeys + if(key.equals("button_cmd_close_2")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); return iRes.format(key).toString(); } - - if(key.equals("create_call_short")) + + // SCREEN - in Options menu + if(key.equals("opt_screen_cmd_select")) { - iRes = ResourceLoader.getInstance("lcdui", "qtn_midp_option_"); + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); return iRes.format(key).toString(); } - - if(key.equals("back")) + + // SCREEN - in context menu + if(key.equals("menu_screen_cmd_select")) { - iRes = ResourceLoader.getInstance("lcduiavkon", "text_softkey_"); + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // SCREEN - if only one button/softkey + if(key.equals("button_screen_cmd_select_1")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // SCREEN - if two buttons/softkeys + if(key.equals("button_screen_cmd_select_2")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); return iRes.format(key).toString(); } - if(key.equals("close")) + // BACK - in Options menu + if(key.equals("opt_cmd_back")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // BACK - in context menu + if(key.equals("menu_cmd_back")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // BACK - if only one button/softkey + if(key.equals("button_cmd_back_1")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // BACK - if two buttons/softkeys + if(key.equals("button_cmd_back_2")) { - iRes = ResourceLoader.getInstance("lcduiavkon", "text_softkey_"); + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // CANCEL - in Options menu + if(key.equals("opt_cmd_cancel")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // CANCEL - in context menu + if(key.equals("menu_cmd_cancel")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // CANCEL - if only one button/softkey + if(key.equals("button_cmd_cancel_1")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // CANCEL - if two buttons/softkeys + if(key.equals("button_cmd_cancel_2")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); return iRes.format(key).toString(); } - - if(key.equals("empty_list")) + + // OK - in Options menu + if(key.equals("opt_cmd_ok")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // OK - in context menu + if(key.equals("menu_cmd_ok")) { - iRes = ResourceLoader.getInstance("lcduiavkon", "qtn_selec_"); + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // OK - if only one button/softkey + if(key.equals("button_cmd_ok_1")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // OK - if two buttons/softkeys + if(key.equals("button_cmd_ok_2")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); return iRes.format(key).toString(); } - - if(key.equals("help")) + + // ITEM - in Options menu + if(key.equals("opt_item_cmd_select")) { - iRes = ResourceLoader.getInstance("lcduiavkon", "qtn_options_"); + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // ITEM - in context menu + if(key.equals("menu_item_cmd_select")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); return iRes.format(key).toString(); } - + + // ITEM - if only one button/softkey + if(key.equals("button_item_cmd_select_1")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + + // ITEM - if two buttons/softkeys + if(key.equals("button_item_cmd_select_2")) + { + iRes = ResourceLoader.getInstance("javauitoolkits", "txt_java_"); + return iRes.format(key).toString(); + } + return SWT.getMessage(key); + } } \ No newline at end of file diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/inc/CM2GRenderContext.h --- a/javauis/m2g_qt/inc/CM2GRenderContext.h Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/inc/CM2GRenderContext.h Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -109,7 +109,7 @@ TM2GSvgDocumentHandle& aSvgDocHandle, const TReal32 aCurrentTime, TInt aSvgW, TInt aSvgH, - TM2GRenderRect& aRect, + TM2GRenderRect& aRect, TBool aUseNativeClear, TInt* aReturnData); @@ -123,16 +123,7 @@ */ virtual void SetTransparency(TReal32 aAlpha); - - TInt SaveBitmapL(const CFbsBitmap& aNVGBitmap, const TFileName& aFileName); -protected: // METHODS - /** - * Get the image's bitmap handle - * - * @return Svg surface handle. - * @throws Exception if not ok. - */ - TM2GBitmapHandle GetImgHandleL() const; + private: /** @@ -179,59 +170,38 @@ TBool aUseNativeClear, TInt* aReturnData); - /** - * Clear the bitmap with 0 - * Fills all pixel with 0 value - * - * @param aBmp the bitmap to be filled - */ - void CM2GRenderContext::ClearBitmapL(CFbsBitmap* aBmp); +private: // VARIABLES - /** - * Fills all the pixels of a bitmap with a specific byte - * - * @param aBmp the bitmap to be filled - * @param aChar the character(byte) to fill with - */ - void FillBitmapL(CFbsBitmap* aBmp, const TUint8& aChar); - - -private: // VARIABLES - - //For WindowsSurface CFbsBitmap || Qimage - Java::GFX::WindowSurface* iWindowSurface; - - MM2GSVGProxy* iProxy; TM2GSvgEngineHandle iEngineHandle; TReal32 iAlpha; TUint8 iScaledAlpha; - + //for eswt compatibility CFbsBitmap* iImgBmp; RFbsSession iFbsSession; - - + +//For WindowsSurface CFbsBitmap || Qimage + Java::GFX::WindowSurface* iWindowSurface; + + + // Temporary buffer ( offscreen ) for QImage support QImage* iOffScreenQImage; CFbsBitmap* iOffScreenBitmap; - + QImage* iTargetQImage; Java::GFX::WindowSurfaceType wSurfaceType; CSvgtBitmap * targetBitmap; - + CFbsBitmap* tempBitmapForMask ; -protected: - TM2GSvgBitmapHandle GetBufferHandleL() const; - void InitializeQImageOffscreenBufferL(TSize aScreenSize,QImage* aQimage); - void InitializeCFbsBitmapOffscreenBufferL(TSize aScreenSize,CFbsBitmap* aBitmap); - void ClearSurfaceL(TM2GSvgBitmapHandle aSvgtBmpHandle); + private: - + }; /*----------------------------------------------------------- class : CFbsBitmapHack diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/inc/CM2GSVGProxy.h --- a/javauis/m2g_qt/inc/CM2GSVGProxy.h Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/inc/CM2GSVGProxy.h Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -438,16 +438,15 @@ TM2GBitmapHandle aSurfaceMaskHandle, TReal32 aCurrentTime); -// pankaj Qimage related changes TODO following Changes done virtual void RenderDocumentL( const TM2GSvgEngineHandle& aEngineHandle, const TM2GSvgDocumentHandle& aDocumentHandle, const TM2GSvgBitmapHandle& aSurfaceHandle, TM2GSvgBitmapHandle aSurfaceMaskHandle, TReal32 aCurrentTime); - /** - * @see MM2GSVGProxy::RenderQualityL - */ + /** + * @see MM2GSVGProxy::RenderQualityL + */ virtual void RenderQualityL( const TM2GSvgEngineHandle& aEngineHandle, TInt aQuality); diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/inc/CSynchronization.h --- a/javauis/m2g_qt/inc/CSynchronization.h Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/inc/CSynchronization.h Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/inc/M2GGeneral.h --- a/javauis/m2g_qt/inc/M2GGeneral.h Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/inc/M2GGeneral.h Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -21,7 +21,7 @@ #include #include "jstringutils.h" #include "jni.h" -//#include + #if defined ( _DEBUG ) #if defined ( __WINSCW__ ) diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/inc/M2GNamespace.h --- a/javauis/m2g_qt/inc/M2GNamespace.h Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/inc/M2GNamespace.h Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -27,7 +27,8 @@ #ifndef M2G_NO_NAMESPACE_SWITCH #define M2G_NS_ /**/ m2g_namespace #define M2G_NS_START /**/ namespace M2G_NS_ { -#define M2G_NS_END /**/ } +#define M2G_NS_END /**/ +} #define M2G_NS(X) /**/ ::M2G_NS_::X #define USING_WHOLE_M2G_NS /**/ using namespace ::M2G_NS_; #define USING_M2G_NS(X) /**/ using ::M2G_NS_::X; diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/inc/M2GUtils.h --- a/javauis/m2g_qt/inc/M2GUtils.h Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/inc/M2GUtils.h Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -24,6 +24,7 @@ #include "M2GGeneral.h" #include #include +#include "CSynchronization.h" //For UI Thread Execution. M2G_NS_START // CONSTANTS @@ -32,6 +33,22 @@ // MACROS + +/*! + * \brief Macros for serializing m2gcore function calls + * in native threading environment. + */ + +#define M2G_DO_LOCK CSynchronization::InstanceL()->Lock(); + +#define M2G_DO_UNLOCK(aEnv) {\ + TInt errorCode = CSynchronization::InstanceL()->GetErrorCode();\ + if ( errorCode != 0){\ + M2GGeneral::CheckErrorCode(aEnv,errorCode);\ + }\ + CSynchronization::InstanceL()->Unlock();\ + }\ + // FORWARD DECLARATIONS class CFbsBitmapDevice; class CFbsBitGc; @@ -40,19 +57,6 @@ // CLASS DECLARATION - -//For UI Thread Execution. -#include "CSynchronization.h" - -#define M2G_DO_LOCK CSynchronization::InstanceL()->Lock(); - - -//TODO Have to Raise Exception in case we find any error. -#define M2G_DO_UNLOCK(aEnv) {\ - TInt errorCode = CSynchronization::InstanceL()->GetErrorCode();\ - CSynchronization::InstanceL()->Unlock();\ - }\ - /** * @class M2GBitmapUtils * @brief Static methods for alpha blending and bitmaps @@ -84,13 +88,13 @@ const CFbsBitmap* aSourceMask, /*MSwtClient* aClientHandle,*/ TBool aUseNativeClear = EFalse); - + static TInt BitQBlt(QImage& aTargetQimage, - const QImage& aSourceQimage, - const TPoint& aPoint, - const TRect* aRect, - const CFbsBitmap* aSourceMask); - + const QImage& aSourceQimage, + const TPoint& aPoint, + const TRect* aRect, + const CFbsBitmap* aSourceMask); + /** * Checks if two bitmap are equal. * @since Series S60 3.0 diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/inc/MM2GRenderContext.h --- a/javauis/m2g_qt/inc/MM2GRenderContext.h Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/inc/MM2GRenderContext.h Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -108,7 +108,7 @@ const TReal32 aCurrentTime, TInt aSvgW, TInt aSvgH, - TM2GRenderRect& aRect, + TM2GRenderRect& aRect, TBool aUseNativeClear, TInt* aReturnData) = 0; diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/inc/MM2GSVGProxy.h --- a/javauis/m2g_qt/inc/MM2GSVGProxy.h Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/inc/MM2GSVGProxy.h Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -679,14 +679,13 @@ TM2GBitmapHandle aSurfaceMaskHandle, TReal32 aCurrentTime) = 0; -// pankaj Qimage related changes TODO following Changes done virtual void RenderDocumentL( const TM2GSvgEngineHandle& aEngineHandle, const TM2GSvgDocumentHandle& aDocumentHandle, const TM2GSvgBitmapHandle& aSurfaceHandle, TM2GSvgBitmapHandle aSurfaceMaskHandle, TReal32 aCurrentTime)=0; - + /** * Sets render quality * @since Series S60 3.1 diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/ESWTScalableGraphics.java --- a/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/ESWTScalableGraphics.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/ESWTScalableGraphics.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -35,15 +35,15 @@ public ESWTScalableGraphics(Display display) { - - + + iSg = ScalableGraphics.createInstance(); iDisplay = display; } public ESWTScalableGraphics(Display display, Rectangle canvasBounds) { - + iSg = ScalableGraphics.createInstance(); iDisplay = display; iCanvasBounds = canvasBounds; @@ -56,7 +56,7 @@ public void bindTarget(GC gc) { - + iRealGC = gc; iBufferedImage = new Image(iDisplay, iCanvasBounds); iBufferGC = new GC(iBufferedImage); @@ -65,7 +65,7 @@ public void releaseTarget() { - + iSg.releaseTarget(); iBufferedImage.dispose(); @@ -76,20 +76,20 @@ public void render(int x, int y, ScalableImage image) { - + iSg.render(x,y, image); iRealGC.drawImage(iBufferedImage, x, y); } public void setRenderingQuality(int mode) { - + iSg.setRenderingQuality(mode); } public void setTransparency(float alpha) { - + iSg.setTransparency(alpha); } } diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GDOMChangeObserver.java --- a/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GDOMChangeObserver.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GDOMChangeObserver.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GDestroyable.java --- a/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GDestroyable.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GDestroyable.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -17,8 +17,6 @@ package com.nokia.microedition.m2g; -//import com.nokia.mj.impl.rt.legacy.ToolkitInvoker; -//import com.nokia.mj.impl.rt.legacy.ToolkitObserver; /** * Interface diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GDocument.java --- a/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GDocument.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GDocument.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -37,30 +37,7 @@ // STATIC CONSTANTS //-------------------------------------------------- // Error constants - /* Optimization: static finals changed to local variables - public static final String UNSUPORTED_ELEMENT_TYPE_ESTR = - "The type of element is not supported by the implementation."; - public static final String UNSUPORTED_NAMESPACE_ESTR = - "The URI is not the SVG namespace URI."; - public static final String ID_IS_NULL_ESTR = - "The ID is null."; - public static final String NAMESPACE_URI_IS_NULL_ESTR = - "The namespace URI is null."; - public static final String QUALIFIED_NAME_IS_NULL_ESTR = - "The qualifiedName is null."; - public static final String CANNOT_APPEND_CHILD_ESTR = - "Cannot appendChild to a Document node."; - public static final String CANNOT_INSERT_BEFORE_ESTR = - "Cannot insertBefore a Document node."; - public static final String CANNOT_REMOVE_CHILD_ESTR = - "Cannot removeChild from a Document node."; - public static final String DOCUMENT_IS_ILLEGAL_ESTR = - "The SVG document does not conform to the XML 1.0 specification."; - public static final String HEIGHT_IS_ILLEGAL_ESTR = - "The height is negative."; - public static final String WIDTH_IS_ILLEGAL_ESTR = - "The width is negative."; - */ + //-------------------------------------------------- // VARIABLES @@ -94,7 +71,7 @@ * Creates new document object. If aData is null or empty then * an empty document is create. * @param aImage Svg image - * @param aBaseUrl A base url from where a document is downloaded. + * @param aBaseUrl A base url from where a document is downloaded. * @param aSuffixUrl A suffix url from where a document is downloaded * @param aData Plain text svg data */ @@ -102,8 +79,7 @@ String aData) { super(); - - + iImage = aImage; iBaseUrl = aBaseUrl; iSuffixUrl = aSuffixUrl; @@ -357,7 +333,7 @@ int elementHandle = _getElementById( getNativeSVGProxyHandle(), getHandle(), - id ); + id); return M2GSVGElement.buildElement(elementHandle, this); } @@ -442,7 +418,7 @@ { return _getViewportWidth( getNativeSVGProxyHandle(), - getHandle() ); + getHandle()); } @@ -697,7 +673,7 @@ _setViewportWidth( getNativeSVGProxyHandle(), getHandle(), - width ); + width); Logger.LOG(Logger.EJavaUI, Logger.EInfo, "setViewportWidth:" + width + " - end"); } @@ -1244,10 +1220,10 @@ ExternalResourceHandler aHandler) throws IOException { - + if ((aData == null) || (aData.equals(""))) { - + throw new IOException( /*SF*/"The SVG document does not conform to the XML 1.0 specification."/*SF*/); } @@ -1317,13 +1293,13 @@ String aId); private static native int _getViewportHeight( - int aSvgProxyHandle, int aDocumentHandle); + int aSvgProxyHandle, int aDocumentHandle); private static native int _getViewportWidth( - int aSvgProxyHandle, int aDocumentHandle); + int aSvgProxyHandle, int aDocumentHandle); private native static int _isElementInDOM( - int aSvgProxyHandle, int aDocumentHandle, + int aSvgProxyHandle, int aDocumentHandle, int aElementHandle); private static native int _requestCompleted( diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GEvent.java --- a/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GEvent.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GEvent.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GManager.java --- a/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GManager.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GManager.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -18,9 +18,7 @@ package com.nokia.microedition.m2g; import java.lang.ref.WeakReference; -//import com.nokia.mj.impl.rt.legacy.MIDEventServer; import java.util.Hashtable; -//import com.nokia.mj.impl.rt.legacy.MemoryUtil; import java.util.Enumeration; import org.eclipse.swt.events.DisposeListener; import org.eclipse.swt.events.DisposeEvent; @@ -54,26 +52,16 @@ private M2GManager() { super(); - - - //As Display is created in Thread only.. So no need to handle display over here. - //scom.nokia.mj.impl.rt.support.Jvm.loadSystemLibrary("javam2g"); - /*// setup the finalization via eswt's Display - Display display = Display.getCurrent(); - if (display == null) + + // Execute in UI thread + Platform.executeInUIThread( + new M2GRunnableQt() { - return; // ? - } - display.addListener(SWT.Dispose, (Listener)this); */ - - - // Execute in UI thread - Platform.executeInUIThread( - new M2GRunnableQt() { - public void doRun() { - iSVGProxyHandle = _createSvgProxy(); - } - }); + public void doRun() + { + iSVGProxyHandle = _createSvgProxy(); + } + }); M2GManager.heuristicGC(); } @@ -183,14 +171,14 @@ { if (sWeakManagerProxy != null) { - + weakManager = (M2GWeakManager)sWeakManagerProxy.get(); } // Check if object null if (weakManager == null) { // Create a new object and put it into the static member variable - + weakManager = new M2GWeakManager(new M2GManager()); sWeakManagerProxy = new WeakReference(weakManager); } @@ -209,13 +197,13 @@ //-------------------------------------------------- // NATIVE METHODS //-------------------------------------------------- - private static native int _createSvgEngine(int aSvgProxyHandle ); + private static native int _createSvgEngine(int aSvgProxyHandle); private static native int _createSvgProxy(); private static native void _deleteSvgEngine(int aSvgProxyHandle, int aSvgEngineHandle); - private static native void _deleteSvgProxy( int aSvgProxyHandle); + private static native void _deleteSvgProxy(int aSvgProxyHandle); } diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GObject.java --- a/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GObject.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GObject.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -27,13 +27,13 @@ /** * Base class */ -abstract class M2GObject +abstract class M2GObject { //-------------------------------------------------- // STATIC CONSTANTS //-------------------------------------------------- public static final int INVALID_NATIVE_HANDLE = 0; - // static final String ESWT_PACKAGE = "org.eclipse.swt.widgets.Display" ; + // static final String ESWT_PACKAGE = "org.eclipse.swt.widgets.Display" ; //-------------------------------------------------- // VARIABLES //-------------------------------------------------- @@ -50,7 +50,7 @@ M2GObject() { this(INVALID_NATIVE_HANDLE); - + } /** @@ -59,11 +59,11 @@ */ M2GObject(int aHandle) { - + iNativeHandle = aHandle; - + iManager = M2GManager.getInstance(); - + } /** @@ -105,7 +105,7 @@ { Logger.LOG(Logger.EJavaUI, Logger.EInfo, "createDestroyer(): " + this.getClass().getName()); - + } /** diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GRunnableQt.java --- a/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GRunnableQt.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GRunnableQt.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGAnimationElement.java --- a/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGAnimationElement.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGAnimationElement.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -52,7 +52,7 @@ _beginElementAt( getNativeSVGProxyHandle(), getDocument().getHandle(), getHandle(), offset, - getDocument().getRootElement().getCurrentTime() ); + getDocument().getRootElement().getCurrentTime()); } /** @@ -71,7 +71,7 @@ { short endAttribute = _getEnumTrait( getNativeSVGProxyHandle(), - getHandle(), M2GSVGConstants.AT_END ); + getHandle(), M2GSVGConstants.AT_END); // NOTE Native SVG engine checks that element is active so // java side doesn't have to do that if (endAttribute == M2GSVGConstants.ANIM_INDEFINITE) @@ -84,7 +84,7 @@ _endElementAt( getNativeSVGProxyHandle(), getDocument().getHandle(), getHandle(), - (offset + getDocument().getRootElement().getCurrentTime()) ); + (offset + getDocument().getRootElement().getCurrentTime())); } } diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGAnimator.java --- a/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGAnimator.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGAnimator.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -26,34 +26,13 @@ import com.nokia.mj.impl.utils.Logger; -public class M2GSVGAnimator extends SVGAnimator +public class M2GSVGAnimator extends SVGAnimator { //-------------------------------------------------- // STATIC CONSTANTS //-------------------------------------------------- private static final String ANIMATOR_CANVAS_BASE_CLASS = "javax.microedition.lcdui.Canvas"; - // Exception text - /* Optimization: static finals changed to local variables - private static final String COMPONENT_BASE_CLASS_NOT_SUPPORTED_ESTR = - "The requested componentBaseClass is not supported by the implementation."; - private static final String ILLEGAL_TIME_INCREMENT_ESTR = - "The timeIncrement is less than or equal to zero."; - private static final String ANIMATOR_PLAY_ESTR = - "The animator is not currently in the stopped or paused state."; - private static final String ANIMATOR_PAUSE_ESTR = - "The animator is not in the playing state."; - private static final String ANIMATOR_STOP_ESTR = - "The animator is not in the playing or paused state."; - private static final String INVALID_RUNNABLE_ESTR = - "The runnable is null."; - private static final String ANIMATOR_IS_STOPPED_ESTR = - "The animator is in the stopped state."; - private static final String RUNNABLE_IS_NULL_ESTR = - "The runnable is null."; - private static final String ANIMATOR_INVOKE_ESTR = - "The animator is in the stopped state."; - */ //-------------------------------------------------- // VARIABLES @@ -70,17 +49,17 @@ */ protected M2GSVGAnimator(SVGImage aImage) { - + iSVGCanvas = new M2GSVGCanvas(false, aImage); mFinalizer = new Finalizer() - { + { public void finalizeImpl() { - + doFinalize(); } }; - + } /** @@ -157,14 +136,14 @@ */ public void play() { - + if (iSVGCanvas.isPlaying()) { throw new IllegalStateException( /*SF*/"The animator is not currently in the stopped or paused state."/*SF*/); } Logger.LOG(Logger.EJavaUI, Logger.EInfo, "play()"); - + iSVGCanvas.play(); } @@ -172,7 +151,7 @@ { if (mFinalizer != null) { - + registeredFinalize(); mFinalizer = null; } @@ -201,7 +180,7 @@ */ public void setTimeIncrement(float timeIncrement) { - + if (timeIncrement <= 0) { throw new IllegalArgumentException( @@ -210,7 +189,7 @@ Logger.LOG(Logger.EJavaUI, Logger.EInfo, "setTimeIncrement() - " + timeIncrement); iSVGCanvas.setTimeIncrement(timeIncrement); - + } /** @@ -218,7 +197,7 @@ */ public void stop() { - + if (iSVGCanvas.isStopped()) { throw new IllegalStateException( @@ -227,7 +206,7 @@ Logger.LOG(Logger.EJavaUI, Logger.EInfo, "stop()"); iSVGCanvas.stop(); - + } //-------------------------------------------------- @@ -241,13 +220,13 @@ */ public static SVGAnimator buildAnimator(SVGImage svgImage) { - + if (svgImage == null) { - + throw new NullPointerException(); } - + return new M2GSVGAnimator(svgImage); } @@ -319,10 +298,10 @@ * @see javax.microedition.lcdui.game.GameCanvas#GameCanvas() */ public M2GSVGCanvas(boolean aSuppressKeyEvents, SVGImage aSVGImage) - { + { super(aSuppressKeyEvents); - + // get the instance to the Graphics of the offscreen buffer iOffscreen = getGraphics(); @@ -331,8 +310,8 @@ // down-casting to M2GDocument/M2GSVGSVGElement to have access to internal methods M2GDocument doc = (M2GDocument)iSVGImage.getDocument(); iRootElement = (M2GSVGSVGElement)iSVGImage.getDocument().getDocumentElement(); - - + + iState = STATE_STOPPED; // Create render context iSg = ScalableGraphics.createInstance(); @@ -340,9 +319,9 @@ iDeltaTime = DEFAULT_DELTA_TIME; doc.registerDOMChangeObserver(this); - - - + + + Logger.LOG(Logger.EJavaUI, Logger.EInfo, "Ctor - delta time:" + iDeltaTime + ", state:" + iState); } @@ -500,25 +479,25 @@ public void paint(Graphics g) { // Clears bitmap - + g.setColor(255, 255, 255); g.fillRect(0, 0, getWidth(), getHeight()); try { - + iSg.bindTarget(g); - + // NOTE: Source is defaultly fully opaque iSg.render(0, 0, iSVGImage); - + } finally { - + iSg.releaseTarget(); - + } } @@ -637,7 +616,7 @@ public synchronized void play() { Logger.LOG(Logger.EJavaUI, Logger.EInfo, "play()"); - + if (iState == STATE_PLAYING) { // don't do anything if animation is already playing diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGConstants.java --- a/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGConstants.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGConstants.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGElement.java --- a/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGElement.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGElement.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -21,10 +21,8 @@ import org.w3c.dom.*; import org.w3c.dom.svg.*; import org.w3c.dom.events.*; -//import com.nokia.mj.impl.rt.legacy.ToolkitInvoker; import java.io.IOException; import org.eclipse.swt.widgets.*; -//import org.eclipse.swt.widgets.Display; import com.nokia.mj.impl.utils.Logger; public class M2GSVGElement extends M2GObject implements SVGElement @@ -39,79 +37,6 @@ "The listener is null."; static final String CAPTURE_NOT_SUPPORTED_ESTR = "The capture phase is not supported in SVG Tiny."; - //static final String ESWT_PACKAGE = - // "org.eclipse.swt.widgets.Display" ; - - /* Optimization: static finals changed to local variables - static final String TRAIT_IS_NULL_ESTR = - "The trait is null."; - static final String TRAIT_NOT_SUPPORTED_ON_ELEM_ESTR = - "The trait is not supported on this element."; - static final String TRAIT_NOT_SUPPORTED_IN_NS_ESTR = - "The trait is not supported in this namespace."; - static final String GET_FLOAT_MISMATCH_ESTR = - "Trait's computed value cannot be converted to a float."; - static final String SET_FLOAT_MISMATCH_ESTR = - "Trait's value cannot be specified as a float."; - static final String GET_MATRIX_MISMATCH_ESTR = - "Trait's computed value cannot be converted to a SVGMatrix."; - static final String SET_MATRIX_MISMATCH_ESTR = - "Trait's value cannot be specified as a SVGMatrix."; - static final String GET_PATH_MISMATCH_ESTR = - "Trait's computed value cannot be converted to a SVGPath."; - static final String SET_PATH_MISMATCH_ESTR = - "Trait's value cannot be specified as a SVGPath."; - static final String GET_RECT_MISMATCH_ESTR = - "Trait's computed value cannot be converted to a SVGRect."; - static final String SET_RECT_MISMATCH_ESTR = - "Trait's value cannot be specified as a SVGRect."; - static final String GET_RGB_MISMATCH_ESTR = - "Trait's computed value cannot be converted to a SVGRGBColor."; - static final String SET_RGB_MISMATCH_ESTR = - "Trait's value cannot be specified as a SVGRGBColor."; - static final String NS_NOT_SUPPORTED_ESTR = - "The namespace is not supported."; - static final String GET_TRAIT_NS_STRING_MISMATCH_ESTR = - "Trait's computed value cannot be converted to a String."; - static final String SET_TRAIT_NS_STRING_MISMATCH_ESTR = - "Trait's value cannot be specified as a String."; - static final String ID_IS_NULL_ESTR = - "The id is null."; - static final String EXISTING_ELEM_ID_CHANGE_ESTR = - "Existing element id cannot be changed."; - static final String ELEM_ID_EXIST_IN_DOCUMENT_ESTR = - "Element id already exists in the document."; - static final String INVALID_INPUT_VALUE_ESTR = - "The input value is an invalid value for the given trait."; - static final String VALUE_IS_NULL_ESTR = - "Value cannot be set to null."; - static final String SET_READONLY_MISMATCH_ESTR = - "Attempt to change readonly trait."; - static final String INVALID_VALUE_ESTR = - "The value is invalid."; - static final String INVALID_USE_ELEMENT_ESTR = - "The element is hooked into the document tree and the the value of xlink:href is set invalid."; - static final String CANNOT_REMOVE_NODE_ESTR = - "Cannot remove this type of node."; - static final String CANNOT_REMOVE_NOT_CHILD_ESTR = - "Not a child of this node."; - static final String CANNOT_REMOVE_NON_NULL_ID_ESTR = - "The element being removed or one of its decendants have non-null id."; - static final String INSERT_NODE_OF_THAT_TYPE_ESTR = - "Cannot insert node of that type."; - static final String APPEND_DOCUMENT_ESTR = - "Cannot append Document elements."; - static final String DOCUMENT_HIERARCHY_ESTR = - "Hierarchy request error in Document."; - static final String CHILD_IS_WRONG_TYPE_ESTR = - "Child is wrong type (Document)."; - static final String CHILD_BELONG_TO_DIFFERENT_DOCUMENT_ESTR = - "Child belongs to different document."; - static final String CHILD_NOT_FOUND_ESTR = - "The child to insert before doesn't exist in this current node."; - static final String INVALID_ELEMENT_ID_VALUE = - "Invalid element id value."; - */ //-------------------------------------------------- // VARIABLES @@ -262,7 +187,7 @@ { // Get child element's handle int childHandle = _getFirstElementChild( - getNativeSVGProxyHandle(), getHandle()); + getNativeSVGProxyHandle(), getHandle()); if (M2GObject.checkHandle(childHandle)) { return (Element)M2GSVGElement.buildElement(childHandle, iDocument); @@ -373,7 +298,7 @@ public Element getNextElementSibling() { int elementHandle = _getNextElementSibling( - getNativeSVGProxyHandle(), getHandle()); + getNativeSVGProxyHandle(), getHandle()); if (M2GObject.checkHandle(elementHandle)) { return M2GSVGElement.buildElement(elementHandle, iDocument); @@ -394,7 +319,7 @@ throw new SecurityException(M2GSVGConstants.ACCESS_RIGHTS_ESTR); } int parentHandle = _getParent( - getNativeSVGProxyHandle(), getHandle()); + getNativeSVGProxyHandle(), getHandle()); if (M2GObject.checkHandle(parentHandle)) { return M2GSVGElement.buildElement(parentHandle, iDocument); @@ -767,7 +692,7 @@ getNativeSVGProxyHandle(), ((M2GSVGElement)newChild).getHandle(), M2GSVGConstants.AT_XLINKHREF); - // Need to call resource handler if element is elementindom, image, + // call resource handler call if element is elementindom, image, // and if it has an href attribute if ((href != null) && (((M2GSVGElement)newChild).iElementTypeId == M2GSVGConstants.EL_IMAGE) && @@ -960,7 +885,7 @@ /*SF*/"The input value is an invalid value for the given trait."/*SF*/); } - _setPathTrait( getNativeSVGProxyHandle(), + _setPathTrait(getNativeSVGProxyHandle(), getHandle(), id, ((M2GSVGPath)path).getHandle()); // inform observer about changes in DOM only if element is in DOM @@ -1282,7 +1207,7 @@ String id = M2GSVGElement._getStringTrait( M2GManager.getInstance().getSVGProxyHandle(), aElementHandle, - M2GSVGConstants.AT_ID ); + M2GSVGConstants.AT_ID); if ((id != null) && id.equals("text_use_svg_default_font")) { return buildElement( diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGElementWrapper.java --- a/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGElementWrapper.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGElementWrapper.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGImage.java --- a/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGImage.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGImage.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -39,18 +39,7 @@ //-------------------------------------------------- // STATIC CONSTANTS //-------------------------------------------------- - /* Optimization: static finals changed to local variables - private static final String NULL_TYPE_ESTR = - "The type is null."; - private static final String ILLEGAL_VALUS_ESTR = - "The x or y values are negative."; - private static final String EVENT_TYPE_NOT_SUPPORTED_ESTR = - "The event type is not supported."; - private static final String INVALID_ELEMENT_ESTR = - "Invalid element."; - public static final String URI_IS_NULL_ESTR = - "The URI is null."; - */ + //-------------------------------------------------- // VARIABLES @@ -198,7 +187,7 @@ _focusOn( ((M2GSVGElement)element).getNativeSVGProxyHandle(), ((M2GSVGElement)element).getDocument().getHandle(), - ((M2GSVGElement)element).getHandle() ); + ((M2GSVGElement)element).getHandle()); } tempNode = element; while (tempNode != null) @@ -339,7 +328,7 @@ { throw new NullPointerException(); } - + String strData = new String(StreamUtils.readBytesFromStream(stream, -1)); @@ -351,7 +340,7 @@ // Creates and setups svg image M2GSVGImage image = new M2GSVGImage(); - + M2GDocument document = M2GDocument.buildDocument( image, baseUrl, @@ -359,9 +348,9 @@ strData, handler); // Checks document validity - + image.setDocument(document); - + if (handler != null) { // Gets size of external resources @@ -383,11 +372,11 @@ } } } - + // initialise the viewport _initViewport(document.getNativeSVGProxyHandle(), document.getHandle()); - + return image; } @@ -454,19 +443,19 @@ // NATIVE METHODS //-------------------------------------------------- private native static int _dispatchMouseEvent( - int aSvgProxyHandle,int aDocumentHandle, + int aSvgProxyHandle,int aDocumentHandle, int aX, int aY); private native static void _focusOn( - int aSvgProxyHandle,int aDocumentHandle, + int aSvgProxyHandle,int aDocumentHandle, int aSvgElementHandle); private native static void _focusOut( - int aSvgProxyHandle,int aDocumentHandle, + int aSvgProxyHandle,int aDocumentHandle, int aSvgElementHandle); native static int _getExternalListSize( - int aSvgProxyHandle, int aDocumentHandle); + int aSvgProxyHandle, int aDocumentHandle); native static String _getExternalListItem( int aSvgProxyHandle, int aDocumentHandle, diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGLocatableElement.java --- a/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGLocatableElement.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGLocatableElement.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -44,7 +44,7 @@ { M2GSVGRect bbox = new M2GSVGRect(); M2GSVGElement._getBBox(getNativeSVGProxyHandle(), getHandle(), - M2GSVGConstants.AT_BBOX, bbox.getComponents()); + M2GSVGConstants.AT_BBOX, bbox.getComponents()); // Checks element's type if ((iElementTypeId == M2GSVGConstants.EL_G) || (iElementTypeId == M2GSVGConstants.EL_PATH) || diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGMatrix.java --- a/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGMatrix.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGMatrix.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGPath.java --- a/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGPath.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGPath.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -31,12 +31,7 @@ //-------------------------------------------------- // STATIC CONTANTS //-------------------------------------------------- - /* Optimization: static finals changed to local variables - private static final String SEGMENT_INDEX_SIZE_ESTR = - "The segment index is out of bounds."; - private static final String PARAMETER_INDEX_SIZE_ESTR = - "The parameter index is out of bounds for this segment's type."; - */ + private static final int CLOSE_PARAMETER_COUNT = 0; private static final int MOVE_TO_PARAMETER_COUNT = 2; private static final int LINE_TO_PARAMETER_COUNT = 2; @@ -91,7 +86,7 @@ protected void doCleanup() { _destroyPath(getNativeSVGProxyHandle(), - getHandle()); + getHandle()); resetHandles(); } @@ -111,7 +106,7 @@ public int getNumberOfSegments() { return _getNumberOfSegments(getNativeSVGProxyHandle(), - getHandle() ); + getHandle()); } /** @@ -168,7 +163,7 @@ public void curveTo(float x1, float y1, float x2, float y2, float x3, float y3) { _addCurveTo(getNativeSVGProxyHandle(), - getHandle(), x1, y1, x2, y2, x3, y3); + getHandle(), x1, y1, x2, y2, x3, y3); } /** @@ -209,7 +204,7 @@ */ public void moveTo(float x, float y) { - _addMoveTo(getNativeSVGProxyHandle(), getHandle(), x, y ); + _addMoveTo(getNativeSVGProxyHandle(), getHandle(), x, y); } /** @@ -222,7 +217,7 @@ x1, y1, x2, - y2 ); + y2); } //-------------------------------------------------- diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGPoint.java --- a/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGPoint.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGPoint.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGRGBColor.java --- a/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGRGBColor.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGRGBColor.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGRect.java --- a/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGRect.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGRect.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGSVGElement.java --- a/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGSVGElement.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGSVGElement.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -27,12 +27,7 @@ //-------------------------------------------------- // STATIC CONSTANTS //-------------------------------------------------- - /* Optimization: static finals changed to local variables - public static final String INVALID_SVG_VERSION_ESTR = - "Invalid version."; - public static final String INVALID_SVG_BASE_PROFILE_ESTR = - "Invalid base profile."; - */ + //------------------------------------------------------------------ // VARIABLES @@ -250,7 +245,7 @@ } M2GSVGElement._setMatrixTrait( - getNativeSVGProxyHandle(), getHandle(), + getNativeSVGProxyHandle(), getHandle(), M2GSVGConstants.AT_TRANSFORM, matrixComponents); // inform observer about changes in DOM @@ -398,9 +393,9 @@ // NATIVE METHODS //------------------------------------------------------------------ protected native static float _getMediaTime( - int aSvgProxyHandle, int aDocumentHandle); + int aSvgProxyHandle, int aDocumentHandle); private native static void _setMediaTime( int aSvgProxyHandle, int aDocumentHandle, - float aSeconds ); + float aSeconds); } diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGeSWTAnimator.java --- a/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGeSWTAnimator.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGeSWTAnimator.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -31,26 +31,7 @@ "org.eclipse.swt.widgets.Canvas"; // Exception text - /* Optimization: static finals changed to local variables - private static final String COMPONENT_BASE_CLASS_NOT_SUPPORTED_ESTR = - "The requested componentBaseClass is not supported by the implementation."; - private static final String ILLEGAL_TIME_INCREMENT_ESTR = - "The timeIncrement is less than or equal to zero."; - private static final String ANIMATOR_PLAY_ESTR = - "The animator is not currently in the stopped or paused state."; - private static final String ANIMATOR_PAUSE_ESTR = - "The animator is not in the playing state."; - private static final String ANIMATOR_STOP_ESTR = - "The animator is not in the playing or paused state."; - private static final String INVALID_RUNNABLE_ESTR = - "The runnable is null."; - private static final String ANIMATOR_IS_STOPPED_ESTR = - "The animator is in the stopped state."; - private static final String RUNNABLE_IS_NULL_ESTR = - "The runnable is null."; - private static final String ANIMATOR_INVOKE_ESTR = - "The animator is in the stopped state."; - */ + //-------------------------------------------------- // VARIABLES diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GScalableGraphics.java --- a/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GScalableGraphics.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GScalableGraphics.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -29,7 +29,7 @@ import com.nokia.mj.impl.nokialcdui.LCDUIInvoker; import org.eclipse.swt.internal.qt.GCData; import org.eclipse.swt.internal.qt.graphics.GraphicsContext; -import org.eclipse.swt.internal.extension.GraphicsUtil; +import org.eclipse.swt.internal.extension.GraphicsUtil; /* * ScalableGraphics @@ -40,23 +40,7 @@ //-------------------------------------------------- // STATIC CONSTANTS //-------------------------------------------------- - // Exception text - /* Optimization: static finals changed to local variables - private static final String ALPHA_OUT_OF_RANGE_ESTR = - "The alpha is out of range"; - private static final String INVALID_TARGET_ESTR = - "The target is invalid"; - private static final String MODE_INVALID_ESTR = - "The mode is invalid"; - private static final String NULL_IMAGE_ESTR = - "The image is null"; - private static final String NULL_TARGET_ESTR = - "The target is null"; - private static final String TARGET_ALREADY_BOUND_ESTR = - "Target is already bound"; - private static final String TARGET_NOT_BOUND_ESTR = - "Target is not bound"; - */ + // Transparency alpha max and min limits private static final float MAX_TRANSPARENCY_ALPHA = 1.0f; private static final float MIN_TRANSPARENCY_ALPHA = 0.0f; @@ -69,8 +53,8 @@ private Graphics iTargetGraphics; private Rectangle iSurfaceRectangle; private Rectangle iFinalESWTSurfaceRectangle; - - int iSurfaceHandle; + + int iSurfaceHandle; //-------------------------------------------------- // METHODS @@ -81,7 +65,7 @@ public M2GScalableGraphics() { super(); - + doConstruct(); } /** @@ -89,91 +73,79 @@ */ public synchronized void bindTarget(Object target) { - - if (target == null ) - { - throw new NullPointerException(/*SF*/"The target is null"/*SF*/); - } - - if (target instanceof org.eclipse.swt.graphics.GC) - { - - final GC finalGc = (GC)target; + if (target == null) + { + throw new NullPointerException(/*SF*/"The target is null"/*SF*/); + } + + if (target instanceof org.eclipse.swt.graphics.GC) + { + final GC finalGc = (GC)target; + + // Execute in UI thread + Platform.executeInUIThread( + new M2GRunnableQt() + { + public void doRun() + { + iFinalESWTSurfaceRectangle = GraphicsUtil.startExternalRendering(finalGc); + + // Get GCData from GC + iSurfaceHandle = GraphicsUtil.getWindowSurface(finalGc).getHandle(); + _bind(getHandle(), iSurfaceHandle); + } + }); - // Execute in UI thread - Platform.executeInUIThread( - new M2GRunnableQt() { - public void doRun() { - iFinalESWTSurfaceRectangle = GraphicsUtil.startExternalRendering(finalGc); - - // Get GCData from GC - /*TODO check for this cahnge GCData gcData = ((org.eclipse.swt.graphics.GC)finalGc).getGCData(); - // Get internalGC (Graphicscontext), WindowSurface and the WindowSurface handle for native access - iSurfaceHandle = gcData.internalGc.getWindowSurface().getHandle();*/ - iSurfaceHandle = GraphicsUtil.getWindowSurface(finalGc).getHandle(); - - _bind(getHandle(), iSurfaceHandle); - - } - }); - // currentTarget = target; - iTargetGC = (GC)finalGc; - // Handling for LCDUI Graphics - // - } -//Change accordingly to M3G not as site content. - else if (target instanceof javax.microedition.lcdui.Graphics) - { - Graphics g = (Graphics)target; - final Graphics finalG = g; - iSurfaceRectangle = LCDUIInvoker.startExternalRendering( finalG ); - // Execute in UI thread - Platform.executeInUIThread( - new M2GRunnableQt() { - public void doRun() { - - - - iSurfaceHandle = LCDUIInvoker.getWindowSurface(finalG).getHandle(); - - // Flush Canvas - //M2GManager.flushDisplayBuffer(); - _bind(getHandle(), iSurfaceHandle); - + iTargetGC = (GC)finalGc; + // Handling for LCDUI Graphics + } + else if (target instanceof javax.microedition.lcdui.Graphics) + { + Graphics g = (Graphics)target; + final Graphics finalG = g; + iSurfaceRectangle = LCDUIInvoker.startExternalRendering(finalG); + // Execute in UI thread + Platform.executeInUIThread( + new M2GRunnableQt() + { + public void doRun() + { - } - }); - - iTargetGraphics = (Graphics)finalG; - } - - else { - throw new IllegalArgumentException(); - } - - //TODO Check for : when to give this exception java.lang.IllegalStateException - if target is already bound. - - } - + iSurfaceHandle = LCDUIInvoker.getWindowSurface(finalG).getHandle(); + + // Flush Canvas + //M2GManager.flushDisplayBuffer(); + _bind(getHandle(), iSurfaceHandle); + } + }); -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + iTargetGraphics = (Graphics)finalG; + } + + else + { + throw new IllegalArgumentException(); + } + } /** * @see com.nokia.microedition.m2g.M2GObject#doConstruct() */ public void doConstruct() { - super.doConstruct(); - - // Execute in UI thread - Platform.executeInUIThread( - new M2GRunnableQt() { - public void doRun() { - setHandle(_createRenderContext( - getNativeSVGProxyHandle() )); - // Add object to the live objects container - } - }); + super.doConstruct(); + + // Execute in UI thread + Platform.executeInUIThread( + new M2GRunnableQt() + { + public void doRun() + { + setHandle(_createRenderContext( + getNativeSVGProxyHandle())); + // Add object to the live objects container + } + }); register(this); } @@ -182,16 +154,18 @@ */ public synchronized void doCleanup() { - - // Execute in UI thread - Platform.executeInUIThread( - new M2GRunnableQt() { - public void doRun() { - _deleteRenderContext( - getHandle() ); - } - } - ); + + // Execute in UI thread + Platform.executeInUIThread( + new M2GRunnableQt() + { + public void doRun() + { + _deleteRenderContext( + getHandle()); + } + } + ); resetHandles(); iTargetGC = null; iTargetGraphics = null; @@ -202,53 +176,49 @@ */ public synchronized void releaseTarget() { - - if (iTargetGC != null) - { - - Platform.executeInUIThread( - new M2GRunnableQt() { - public void doRun() { - GraphicsUtil.endExternalRendering(iTargetGC); - _release(iSurfaceHandle, getHandle()); - } - }); + if (iTargetGC != null) + { + + Platform.executeInUIThread( + new M2GRunnableQt() + { + public void doRun() + { + GraphicsUtil.endExternalRendering(iTargetGC); + _release(iSurfaceHandle, getHandle()); + } + }); iTargetGC = null; } - else if (iTargetGraphics != null ) - { - - - final Graphics finalG = iTargetGraphics; - Platform.executeInUIThread( - new M2GRunnableQt() { - public void doRun() { - _release(iSurfaceHandle, getHandle()); - } - }); - LCDUIInvoker.endExternalRendering( iTargetGraphics ); - - iTargetGraphics = null; + else if (iTargetGraphics != null) + { + final Graphics finalG = iTargetGraphics; + Platform.executeInUIThread( + new M2GRunnableQt() + { + public void doRun() + { + _release(iSurfaceHandle, getHandle()); + } + }); + LCDUIInvoker.endExternalRendering(iTargetGraphics); + + iTargetGraphics = null; } - else - { - - // check for invalid Graphics TODO this exception is getting trough when we trying to bind.s + else + { throw new IllegalStateException(/*SF*/"Target is not bound"/*SF*/); - } + } } + public synchronized void render( int x, int y, ScalableImage image, boolean aUseNativeClear) { - - iUseNativeClear = aUseNativeClear ? 1 : 0; render(x, y, image); iUseNativeClear = 0; - - - + } /** @@ -256,14 +226,14 @@ */ public synchronized void render(int x, int y, ScalableImage image) { - + if (image == null) { Logger.ELOG(Logger.EJavaUI, "render() - exception: " + /*SF*/"The target is null"/*SF*/); throw new NullPointerException(/*SF*/"The target is null"/*SF*/); } - if (iTargetGC != null) + if (iTargetGC != null) { final M2GDocument finalDoc = (M2GDocument)((SVGImage)image).getDocument(); // Get synchronized svg image data @@ -273,16 +243,15 @@ { return; } - // Calculate clip dimensions TODO check the new clipping rect provided from StartExternalRendering API.s - //Rectangle clipRect = iTargetGC.getClipping(); + Rectangle clipRect = iFinalESWTSurfaceRectangle; - + final int finalClipX = clipRect.x; final int finalClipY = clipRect.y; final int finalClipW = clipRect.width; final int finalClipH = clipRect.height; - - + + // if none of the svg image is visible due to clipping then don't // bother to call render if ((x >= (finalClipX + finalClipW)) || (y >= (finalClipY + finalClipH))) @@ -297,67 +266,60 @@ "render() - svg image isn't visible due to clipping"); return; } - + + + final int finalX = x; + final int finalY = y; + + // Execute in UI thread + Platform.executeInUIThread( + new M2GRunnableQt() + { + public void doRun() + { + + final int[] finalData = _renderESWT(getHandle(), + finalDoc.getHandle(), finalX, finalY, + finalClipX, finalClipY, finalClipW, finalClipH, finalSvgW, finalSvgW, + finalDoc.getRootElement().getCurrentTime(), + iUseNativeClear); - final int finalX = x; - final int finalY = y; - - // Execute in UI thread - Platform.executeInUIThread( - new M2GRunnableQt() { - public void doRun() { - - - - final int[] finalData = _renderESWT(getHandle(), - finalDoc.getHandle(), finalX, finalY, - finalClipX, finalClipY, finalClipW, finalClipH, finalSvgW, finalSvgW, - finalDoc.getRootElement().getCurrentTime(), - iUseNativeClear); - - int[] bitmapHandles; - bitmapHandles = new int[4]; - for (int i = 0; i < 4; i++) - { - bitmapHandles[i] = finalData[i]; - } - int[] renderData; - renderData = new int[6]; - for (int i = 0; i < 6; i++) - { - renderData[i] = finalData[i+4]; - } - //iTargetGC.internal_drawM2GImage(bitmapHandles, renderData, iUseNativeClear); + int[] bitmapHandles; + bitmapHandles = new int[4]; + for (int i = 0; i < 4; i++) + { + bitmapHandles[i] = finalData[i]; + } + int[] renderData; + renderData = new int[6]; + for (int i = 0; i < 6; i++) + { + renderData[i] = finalData[i+4]; + } - }}); - + } + }); + }//if(true) - else if (iTargetGraphics != null) - { - - + else if (iTargetGraphics != null) + { + + final M2GDocument finalDoc = (M2GDocument)((SVGImage)image).getDocument(); // Get synchronized svg image data final int finalSvgW = image.getViewportWidth(); final int finalSvgH = image.getViewportHeight(); if ((finalSvgW == 0) || (finalSvgH == 0)) - { - + { + return; } - - - //TODO as we are using Surface rectangle provided by StartExternalRendering as Clip Rectangle. + final int finalClipX = iSurfaceRectangle.x; final int finalClipY = iSurfaceRectangle.y; final int finalClipW = iSurfaceRectangle.width; final int finalClipH = iSurfaceRectangle.height; - // Calculate clip dimensions - /*final int finalClipX = iTargetGraphics.getClipX() + iTargetGraphics.getTranslateX(); - final int finalClipY = iTargetGraphics.getClipY() + iTargetGraphics.getTranslateY(); - final int finalClipW = iTargetGraphics.getClipWidth(); - final int finalClipH = iTargetGraphics.getClipHeight();*/ // if none of the svg image is visible due to clipping then don't // bother to call render if ((x >= (finalClipX + finalClipW)) || (y >= (finalClipY + finalClipH))) @@ -372,31 +334,30 @@ "render() - svg image isn't visible due to clipping"); return; } - - final int finalX = x; - final int finalY = y; - - + + final int finalX = x; + final int finalY = y; - // Execute in UI thread - Platform.executeInUIThread( - new M2GRunnableQt() { - public void doRun() { - _renderLCDUI(getHandle(), finalDoc.getHandle(), finalX, finalY, - finalClipX, finalClipY, finalClipW, finalClipH, finalSvgW, finalSvgH, - finalDoc.getRootElement().getCurrentTime()); - }}); - - + // Execute in UI thread + Platform.executeInUIThread( + new M2GRunnableQt() + { + public void doRun() + { + _renderLCDUI(getHandle(), finalDoc.getHandle(), finalX, finalY, + finalClipX, finalClipY, finalClipW, finalClipH, finalSvgW, finalSvgH, + finalDoc.getRootElement().getCurrentTime()); + } + }); } - else - { - Logger.ELOG(Logger.EJavaUI, "render() - exception: " - + /*SF*/"Target is not bound"/*SF*/);//TODO for time being commented.s - throw new IllegalStateException(/*SF*/"Target is not bound"/*SF*/); - } - + else + { + Logger.ELOG(Logger.EJavaUI, "render() - exception: " + + /*SF*/"Target is not bound"/*SF*/); + throw new IllegalStateException(/*SF*/"Target is not bound"/*SF*/); + } + } /** @@ -407,14 +368,16 @@ if ((mode == ScalableGraphics.RENDERING_QUALITY_LOW) || (mode == ScalableGraphics.RENDERING_QUALITY_HIGH)) { - final int finalMode = mode; - // Execute in UI thread - Platform.executeInUIThread( - new M2GRunnableQt() { - public void doRun() { - _setRenderingQuality(getHandle(), finalMode); - } - }); + final int finalMode = mode; + // Execute in UI thread + Platform.executeInUIThread( + new M2GRunnableQt() + { + public void doRun() + { + _setRenderingQuality(getHandle(), finalMode); + } + }); } else { @@ -431,15 +394,17 @@ { if (alpha >= MIN_TRANSPARENCY_ALPHA && alpha <= MAX_TRANSPARENCY_ALPHA) { - final float finalAlpha = alpha; - // Execute in UI thread - Platform.executeInUIThread( - new M2GRunnableQt() { - public void doRun() { - _setTransparency(getHandle(), finalAlpha); - } - } - ); + final float finalAlpha = alpha; + // Execute in UI thread + Platform.executeInUIThread( + new M2GRunnableQt() + { + public void doRun() + { + _setTransparency(getHandle(), finalAlpha); + } + } + ); } else { @@ -460,17 +425,17 @@ private native void _deleteRenderContext( int aRenderContextHandle); private native int _release( - int aSurfaceHandle ,int aRenderContextHandle); + int aSurfaceHandle ,int aRenderContextHandle); private native int _renderLCDUI( - int aRenderContextHandle, int aDocumentHandle, + int aRenderContextHandle, int aDocumentHandle, int aX, int aY, int aClipX, int aClipY, int aClipW, int aClipH, int aSvgW, int aSvgH, float aCurrentTime); private native int[] _renderESWT( - int aRenderContextHandle, int aDocumentHandle, + int aRenderContextHandle, int aDocumentHandle, int aX, int aY, int aClipX, int aClipY, int aClipW, int aClipH, int aSvgW, int aSvgH, float aCurrentTime, int iUseNativeClear); private native void _setRenderingQuality( - int aRenderContextHandle, int aMode); + int aRenderContextHandle, int aMode); private native void _setTransparency( - int aRenderContextHandle, float aAlpha); + int aRenderContextHandle, float aAlpha); } diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/NativeError.java --- a/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/NativeError.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/NativeError.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2002-2007 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/Platform.java --- a/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/Platform.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/Platform.java Fri Oct 29 11:49:32 2010 +0300 @@ -95,22 +95,22 @@ else { //display = DisplayExtension.getDisplayInstance(); - //As now the thread is always available we are taking it from Toolkit. - display = Toolkit. getInternalDisplay(); - - - if (display == null) + //As now the thread is always available we are taking it from Toolkit. + display = Toolkit. getInternalDisplay(); + + + if (display == null) { - + return false; } else { - + // UI thread is available, so load native library if not already loaded if (!libraryLoaded) { - + com.nokia.mj.impl.rt.support.Jvm.loadSystemLibrary("javam2g"); libraryLoaded = true; } @@ -118,81 +118,9 @@ } } } - - /** - * Load Library if not already loaded - * - - static void loadLibarary() - { - if (!libraryLoaded) - { - - com.nokia.mj.impl.rt.support.Jvm.loadSystemLibrary("javam2g"); - libraryLoaded = true; - } - }*/ + - /** - * Registers an Object3D in the global handle-to-object map. The - * handle of the object must already be set at this point! - */ -// static final void registerFinalizer(Object3D obj) -// { -// //heuristicGC(); -// } -// -// /** -// * Registers a Graphics3D object (not derived from Object3D) for -// * finalization. -// */ -// static final void registerFinalizer(Graphics3D g3d) -// { -// //heuristicGC(); -// } -// -// /** -// * Registers an Interface object for finalization -// */ -// static final void registerFinalizer(Interface m2G) -// { -// } -// -// /** -// * Registers a Loader object for finalization -// */ -// static final void registerFinalizer(Loader loader) -// { -// } -// -// /** -// * Flushes all pending rendering to a Graphics context and blocks -// * until finished -// */ -// static final void sync(Graphics g) -// { -// //ToolkitInvoker invoker = ToolkitInvoker.getToolkitInvoker(); -// //invoker.toolkitSync(invoker.getToolkit()); -// } -// -// /** -// * Flushes all pending rendering to an Image object -// */ -// static final void sync(Image img) -// { -// //ToolkitInvoker invoker = ToolkitInvoker.getToolkitInvoker(); -// //invoker.toolkitSync(invoker.getToolkit()); -// } -// -// /** -// * Finalizes the native peer of an interface -// */ -// static final native void finalizeInterface(int handle); -// -// /** -// * Finalizes the native peer of an object -// * JCF: added this wrapper method so we could pass the toolkit handle to the native method. -// */ + static final void finalizeObject(int handle) { try @@ -213,31 +141,6 @@ } } - /** - * Finalizes the native peer of an object associated with - * given Interface instance - */ -// static final void finalizeObject(int handle, Interface aInterface) -// { -// try -// { -// final int finalHandle = handle; -// executeInUIThread( -// new M2GRunnableQt() -// { -// public void doRun() -// { -// _finalizeObject(finalHandle); -// } -// }); -// } -// catch (Exception e) -// { -// // do nothing -// } -// } - - //------------------------------------------------------------------ // Private methods //------------------------------------------------------------------ diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/connection/M2GConnectionFactory.java --- a/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/connection/M2GConnectionFactory.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/connection/M2GConnectionFactory.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/connection/M2GConnectionPolicy.java --- a/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/connection/M2GConnectionPolicy.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/connection/M2GConnectionPolicy.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/connection/M2GConnectionPolicyHandler.java --- a/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/connection/M2GConnectionPolicyHandler.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/connection/M2GConnectionPolicyHandler.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/connection/M2GConnectionProxy.java --- a/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/connection/M2GConnectionProxy.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/connection/M2GConnectionProxy.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/connection/M2GDefaultExternalResourceHandler.java --- a/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/connection/M2GDefaultExternalResourceHandler.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/connection/M2GDefaultExternalResourceHandler.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/connection/M2GUrlTokenizer.java --- a/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/connection/M2GUrlTokenizer.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/connection/M2GUrlTokenizer.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -195,7 +195,7 @@ /** * Resolve URL according to existing base url and * the given relative url - * TODO: Should be resolved by using RFC 2396 + * Should be resolved by using RFC 2396 * @aRelativeUrl Relative URL. * @return Resolved URL */ diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/connection/common/M2GConnectionPolicyImpl.java --- a/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/connection/common/M2GConnectionPolicyImpl.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/connection/common/M2GConnectionPolicyImpl.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/connection/common/M2GConnectionProxyImpl.java --- a/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/connection/common/M2GConnectionProxyImpl.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/connection/common/M2GConnectionProxyImpl.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/connection/file/M2GConnectionPolicyImpl.java --- a/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/connection/file/M2GConnectionPolicyImpl.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/connection/file/M2GConnectionPolicyImpl.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/connection/file/M2GConnectionProxyImpl.java --- a/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/connection/file/M2GConnectionProxyImpl.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/connection/file/M2GConnectionProxyImpl.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/eclipse/swt/widgets/SVGAnimatorControl.java --- a/javauis/m2g_qt/javasrc/eclipse/swt/widgets/SVGAnimatorControl.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/eclipse/swt/widgets/SVGAnimatorControl.java Fri Oct 29 11:49:32 2010 +0300 @@ -16,8 +16,7 @@ */ package org.eclipse.swt.widgets; -// this package is removed from Qt import org.eclipse.swt.internal.symbian. -/*import org.eclipse.swt.internal.symbian.*;*/ + import org.eclipse.swt.internal.*; import org.eclipse.swt.widgets.Control; import javax.microedition.m2g.*; @@ -29,7 +28,7 @@ import org.eclipse.swt.events.*; import com.nokia.mj.impl.utils.Logger; import org.eclipse.swt.widgets.Internal_PackageSupport; -import org.eclipse.swt.graphics.Internal_GfxPackageSupport; +import org.eclipse.swt.graphics.Internal_GfxPackageSupport; @@ -71,8 +70,6 @@ */ public SVGAnimatorControl(SVGImage aSVGImage) { - - iSVGImage = aSVGImage; iState = STATE_STOPPED; // Create render context, use M2GScalableGraphics @@ -94,10 +91,6 @@ // Init widget after parent and display are known //Have to create Widget. -//Workaround for Qt changes this method is now in with one int argument.L:\sf\app\jrt\javauis\eswt_qt\org.eclipse.swt\Eclipse SWT\qt\org\eclipse\swt\widgets\Control.java -// int i =10; -// createWidget(i); -// internal_createWidget(); // Add this to necessary listeners addControlListener(this); @@ -113,9 +106,9 @@ /** * @see org.eclipse.swt.widgets.Control#paint() */ - public void paintControl(PaintEvent e) { + public void paintControl(PaintEvent e) + { GC gc = e.gc; - // Render image try { @@ -126,7 +119,6 @@ } finally { - iSg.releaseTarget(); } } diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/javax/microedition/m2g/ExternalResourceHandler.java --- a/javauis/m2g_qt/javasrc/javax/microedition/m2g/ExternalResourceHandler.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/javax/microedition/m2g/ExternalResourceHandler.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/javax/microedition/m2g/SVGAnimator.java --- a/javauis/m2g_qt/javasrc/javax/microedition/m2g/SVGAnimator.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/javax/microedition/m2g/SVGAnimator.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -142,55 +142,16 @@ * @return a new SVGAnimator instance. * @throws NullPointerException if svgImage is null. */ - - public static SVGAnimator createAnimator(SVGImage svgImage) - { - SVGAnimator tempAnimator = null; - - - - tempAnimator=M2GSVGAnimator.buildAnimator(svgImage); - - - return tempAnimator; - } - - - - public static SVGAnimator createAnimator(SVGImage svgImage,java.lang.String componentBaseClass) - { - SVGAnimator tempAnimator = null; - - if (componentBaseClass == "org.eclipse.swt.widgets.Control") - { - - tempAnimator=M2GSVGeSWTAnimator.buildAnimator(svgImage); - - } - else - { - - tempAnimator=M2GSVGAnimator.buildAnimator(svgImage); - - } - return tempAnimator; - } - - /* public static SVGAnimator createAnimator(SVGImage svgImage) + public static SVGAnimator createAnimator(SVGImage svgImage) { SVGAnimator tempAnimator = null; - - - - tempAnimator=M2GSVGeSWTAnimator.buildAnimator(svgImage); - - + + tempAnimator=M2GSVGAnimator.buildAnimator(svgImage); - //tempAnimator=M2GSVGAnimator.buildAnimator(svgImage); - return tempAnimator; - }*/ + } + /** * This method creates a new SVGAnimator for the specified SVGImage. @@ -217,29 +178,34 @@ * componentBaseClass is not supported by the * implementation. */ -// -// public static SVGAnimator createAnimator(SVGImage svgImage, String componentBaseClass) -// { -// SVGAnimator tempAnimator = null; -// -// tempAnimator=M2GSVGAnimator.buildAnimator(svgImage, componentBaseClass); -// -// return tempAnimator; -// -// } - - - -/* public static SVGAnimator createAnimator( - SVGImage svgImage, String componentBaseClass) + + public static SVGAnimator createAnimator(SVGImage svgImage,java.lang.String componentBaseClass) { - + SVGAnimator tempAnimator = null; - SVGAnimator tempAnimator = null; + if (componentBaseClass == null) + { + tempAnimator = createAnimator(svgImage); + return tempAnimator; + } + + else if (componentBaseClass == "org.eclipse.swt.widgets.Control") + { tempAnimator=M2GSVGeSWTAnimator.buildAnimator(svgImage); -// TODO Check for the toolkit?? tempAnimator=M2GSVGAnimator.buildAnimator(svgImage, componentBaseClass); + } + + else if (componentBaseClass == "javax.microedition.lcdui.Canvas") + { + tempAnimator=M2GSVGAnimator.buildAnimator(svgImage); + return tempAnimator; + } + + else + { + throw new IllegalArgumentException(); + } return tempAnimator; - }*/ + } /** * The type of target component associated with the animator depends on the diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/javax/microedition/m2g/SVGEventListener.java --- a/javauis/m2g_qt/javasrc/javax/microedition/m2g/SVGEventListener.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/javax/microedition/m2g/SVGEventListener.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/javax/microedition/m2g/SVGImage.java --- a/javauis/m2g_qt/javasrc/javax/microedition/m2g/SVGImage.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/javax/microedition/m2g/SVGImage.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/javax/microedition/m2g/ScalableGraphics.java --- a/javauis/m2g_qt/javasrc/javax/microedition/m2g/ScalableGraphics.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/javax/microedition/m2g/ScalableGraphics.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -42,9 +42,7 @@ */ private ScalableGraphics() { - iSg = new M2GScalableGraphics(); - } /** @@ -63,9 +61,7 @@ */ public void bindTarget(java.lang.Object target) { - iSg.bindTarget(target); - } /** @@ -87,9 +83,7 @@ */ public void releaseTarget() { - iSg.releaseTarget(); - } /** @@ -106,9 +100,7 @@ */ public void render(int x, int y, ScalableImage image) { - iSg.render(x,y, image); - } /** diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/javasrc/javax/microedition/m2g/ScalableImage.java --- a/javauis/m2g_qt/javasrc/javax/microedition/m2g/ScalableImage.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/javasrc/javax/microedition/m2g/ScalableImage.java Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/src/CM2GRenderContext.cpp --- a/javauis/m2g_qt/src/CM2GRenderContext.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/src/CM2GRenderContext.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -93,22 +93,22 @@ { TRAP_IGNORE(iProxy->DeleteSvgEngineL(iEngineHandle)); } - if(iWindowSurface) - { - delete iWindowSurface; - } - if(targetBitmap) - { + if (iWindowSurface) + { + delete iWindowSurface; + } + if (targetBitmap) + { delete targetBitmap; - } - if(iTargetQImage) - { + } + if (iTargetQImage) + { delete iTargetQImage; - } - if(tempBitmapForMask) - { + } + if (tempBitmapForMask) + { delete tempBitmapForMask; - } + } delete iImgBmp; iFbsSession.Disconnect(); } @@ -117,125 +117,73 @@ // CM2GRenderContext::BindL // ----------------------------------------------------------------------------- void CM2GRenderContext::BindL(TInt& aTargetHandle) - { +{ M2G_DEBUG_0("M2G_DEBUG: CM2GRenderContext::BindL()"); // get the screen size - TSize screenSize = CEikonEnv::Static()->ScreenDevice()->SizeInPixels(); - + TSize screenSize = CEikonEnv::Static()->ScreenDevice()->SizeInPixels(); + iWindowSurface = (reinterpret_cast(aTargetHandle)); - //wSurfaceType = (Java::GFX::WindowSurfaceType)iWindowSurface->getType(); - wSurfaceType = Java::GFX::WsTypeQtImage; - - iWindowSurface->bind(wSurfaceType); - - switch(wSurfaceType) - { - case Java::GFX::WsTypeQtImage: - User::LeaveIfNull(iOffScreenQImage = iWindowSurface->getQtImage()); - targetBitmap = new CSvgtBitmap ((TInt8*)iOffScreenQImage->bits(), - TSize(iOffScreenQImage->size().width(),iOffScreenQImage->size().height()), - EColor16MA,iOffScreenQImage->bytesPerLine()); - break; + + iWindowSurface->bind(Java::GFX::WsTypeQtImage); + + wSurfaceType = (Java::GFX::WindowSurfaceType)iWindowSurface->getType(); - /*TODO for time being..case Java::GFX::WsTypeQtImage: - User::LeaveIfNull(iTargetQImage = iWindowSurface->getQtImage()); - InitializeQImageOffscreenBufferL(screenSize,iTargetQImage); - break;*/ - - case Java::GFX::WsTypeSymbianBitmap: - CFbsBitmap* tempBitmap; - User::LeaveIfNull(tempBitmap = (reinterpret_cast(aTargetHandle)->getSymbianBitmap())); - InitializeCFbsBitmapOffscreenBufferL(screenSize,tempBitmap); - //iOffScreenBitmap = new(ELeave) CFbsBitmap(); - break; - - default: - User::Leave(KErrNotSupported); - break; - } - + switch (wSurfaceType) + { + case Java::GFX::WsTypeQtImage: + User::LeaveIfNull(iOffScreenQImage = iWindowSurface->getQtImage()); + targetBitmap = new CSvgtBitmap((TInt8*)iOffScreenQImage->bits(), + TSize(iOffScreenQImage->size().width(),iOffScreenQImage->size().height()), + EColor16MA,iOffScreenQImage->bytesPerLine()); + break; + + case Java::GFX::WsTypeSymbianBitmap: + break; + + default: + User::Leave(KErrNotSupported); + break; } +} + // ----------------------------------------------------------------------------- -// CM2GRenderContext::InitializeQImageOffscreenBufferL -// ----------------------------------------------------------------------------- -void CM2GRenderContext::InitializeQImageOffscreenBufferL(TSize aScreenSize,QImage* aQimage) - { - QSize aSize; - aSize.setHeight(aScreenSize.iHeight); - aSize.setWidth(aScreenSize.iWidth); - iOffScreenQImage = new QImage(aSize,aQimage->format()); - - //TODO For time being the format is EColor16MU - targetBitmap = new CSvgtBitmap ((TInt8*)iOffScreenQImage->bits(), - TSize(iOffScreenQImage->size().width(),iOffScreenQImage->size().height()), - EColor16MU,iOffScreenQImage->bytesPerLine()); - } - -// ----------------------------------------------------------------------------- -// CM2GRenderContext::InitializeCFbsBitmapOffscreenBufferL -// ----------------------------------------------------------------------------- -void CM2GRenderContext::InitializeCFbsBitmapOffscreenBufferL(TSize aScreenSize,CFbsBitmap* aBitmap) - { - - iOffScreenBitmap = new(ELeave) CFbsBitmap(); - User::LeaveIfError( - iOffScreenBitmap->Create(aScreenSize, aBitmap->DisplayMode())); - -// TODO check for stride in case of bitmap. -// iTargetBitmap = new CSvgtBitmap( (TInt8*)iOffScreenBitmap->DataAddress() ,aScreenSize,iOffScreenBitmap->DisplayMode()/*KDefaultDisplayMode TODO chk this*/,iOffScreenBitmap->ScanLineLength(iOffScreenBitmap->SizeInPixels().iWidth,KDefaultDisplayMode) ); - } - -// ----------------------------------------------------------------------------- -// CM2GRenderContext::GetImgHandleL -// ----------------------------------------------------------------------------- -/* - * TODO we don't need method anymore as now we need Surface handle - * TM2GBitmapHandle CM2GRenderContext::GetImgHandleL() const -{ - User::LeaveIfNull(iImgBmp); - - return REINTERPRET_CAST(TM2GBitmapHandle, iImgBmp); -}*/ - - // ----------------------------------------------------------------------------- // CM2GRenderContext::InitImageBitmapL // ----------------------------------------------------------------------------- void CM2GRenderContext::InitImageBitmapL() - { +{ M2G_DEBUG_0("M2G_DEBUG: CM2GRenderContext::InitImageBitmapL() - begin"); // get the screen size TSize screenSize = CEikonEnv::Static()->ScreenDevice()->SizeInPixels(); switch (wSurfaceType) - { - case Java::GFX::WsTypeQtImage: - { - break; - } - case Java::GFX::WsTypeSymbianBitmap: - { - break; - } - - default: - break; - } + { + case Java::GFX::WsTypeQtImage: + { + break; + } + case Java::GFX::WsTypeSymbianBitmap: + { + break; + } + + default: + break; + } M2G_DEBUG_0("M2G_DEBUG: CM2GRenderContext::InitImageBitmapL() - end"); - } -// ----------------------------------------------------------------------------- +} // CM2GRenderContext::ReleaseL // ----------------------------------------------------------------------------- void CM2GRenderContext::ReleaseL() - { +{ M2G_DEBUG_0("M2G_DEBUG: CM2GRenderContext::ReleaseL() - begin"); - + iTargetQImage = NULL; iOffScreenQImage = NULL; iWindowSurface->release(); M2G_DEBUG_0("M2G_DEBUG: CM2GRenderContext::ReleaseL() - end"); - } +} // ----------------------------------------------------------------------------- // CM2GRenderContext::RenderL @@ -307,7 +255,7 @@ // CM2GRenderContext::ConstructL // ----------------------------------------------------------------------------- void CM2GRenderContext::ConstructL(MM2GSVGProxy* aProxy) - { +{ // Init member variables SetTransparency(MM2GRenderContext::KFullOpaque); @@ -327,7 +275,7 @@ User::LeaveIfError(iFbsSession.Connect()); M2G_DEBUG_0("M2G_DEBUG: CM2GRenderContext::ConstructL() - end"); - } +} // ----------------------------------------------------------------------------- // CM2GRenderContext::PrepareViewbox // ----------------------------------------------------------------------------- @@ -366,11 +314,11 @@ } void CM2GRenderContext::RenderLCDUIL( - TM2GSvgDocumentHandle& aSvgDocHandle, - TReal32 aCurrentTime, - const TRect& aViewbox, - const TPoint& aAnchor) - { + TM2GSvgDocumentHandle& aSvgDocHandle, + TReal32 aCurrentTime, + const TRect& /*aViewbox*/, + const TPoint& /*aAnchor*/) +{ M2G_DEBUG_4("M2G_DEBUG: CM2GRenderContext::RenderL() viewbox: x=%d, y=%d, w=%d, h=%d begin", aViewbox.iTl.iX, aViewbox.iTl.iY, aViewbox.Size().iWidth, aViewbox.Size().iHeight); // No need to render if content is fully transparency (i.e. alpha=0) @@ -379,47 +327,29 @@ return; } - QStringList list; - list <<"QImage-Format_RGB32"; - TBuf8<32> fname; - // 1: render the svg document on the iImgBmp iProxy->RenderDocumentL( iEngineHandle, aSvgDocHandle, - (TM2GSvgBitmapHandle)targetBitmap + (TM2GSvgBitmapHandle)targetBitmap , (TUint)NULL, aCurrentTime); - - fname.Zero(); - fname.Format(_L8("c:\\%s.bmp"), list.at(0).toLocal8Bit().constData()); - TBool ret = iOffScreenQImage->save((const char*)fname.PtrZ()); - - QPixmap pixmap = QPixmap::fromImage(*iOffScreenQImage); - tempBitmapForMask = pixmap.toSymbianCFbsBitmap(); - - TFileName bitmapFilename; - bitmapFilename.Copy(_L("c:\\bugbitmap")); - bitmapFilename.AppendNum(tempBitmapForMask->Handle()); - bitmapFilename.Append(_L(".bmp")); - SaveBitmapL(*tempBitmapForMask, bitmapFilename); - //TODO Release function should be called from FrameWork - //iWindowSurface->release(); - M2G_DEBUG_0("M2G_DEBUG: CM2GRenderContext::RenderL() end"); - } + + M2G_DEBUG_0("M2G_DEBUG: CM2GRenderContext::RenderL() end"); +} // ----------------------------------------------------------------------------- -/*TODO - * Write the separate RenderDocumentL method for QImage and CFbsBitmap +/* + * Write the separate RenderDocumentL method for QImage and CFbsBitmap * also handle subsequent BitBlt and * CreateAlphaBlendMaskL * */ void CM2GRenderContext::RenderESWTL( TM2GSvgDocumentHandle& aSvgDocHandle, TReal32 aCurrentTime, - const TRect& aViewbox, - const TPoint& aAnchor, + const TRect& /*aViewbox*/, + const TPoint& /*aAnchor*/, TBool /*aUseNativeClear*/, - TInt* aReturnData) + TInt* /*aReturnData*/) { M2G_DEBUG_0("M2G_DEBUG: CM2GRenderContext::RenderESWTL() Start"); // No need to render if content is fully transparency (i.e. alpha=0) @@ -427,139 +357,13 @@ { return; } - + // 1: render the svg document on the iImgBmp - iProxy->RenderDocumentL(iEngineHandle, - aSvgDocHandle, - (TM2GSvgBitmapHandle)targetBitmap, (TUint)NULL, aCurrentTime); - M2G_DEBUG_0("M2G_DEBUG: CM2GRenderContext::RenderESWTL() end"); - -} -// CM2GRenderContext::CreateAlphaBlendMask -// ----------------------------------------------------------------------------- -// ----------------------------------------------------------------------------- -// CM2GRenderContext::ClearBitmapL -// ----------------------------------------------------------------------------- -void CM2GRenderContext::ClearBitmapL(CFbsBitmap* aBmp) -{ - M2G_DEBUG_0("M2G_DEBUG: CM2GRenderContext::ClearBitmap - begin"); + iProxy->RenderDocumentL(iEngineHandle, + aSvgDocHandle, + (TM2GSvgBitmapHandle)targetBitmap, (TUint)NULL, aCurrentTime); + M2G_DEBUG_0("M2G_DEBUG: CM2GRenderContext::RenderESWTL() end"); - User::LeaveIfNull(aBmp); - - TM2GBitmapLock lock(aBmp); - - TSize size = aBmp->SizeInPixels(); - TInt scanlineLength = aBmp->ScanLineLength(size.iWidth, aBmp->DisplayMode()); - - TUint32* buf = aBmp->DataAddress(); - char* bufBytes = REINTERPRET_CAST(char*, buf); - - Mem::FillZ(bufBytes, size.iHeight * scanlineLength); - - M2G_DEBUG_0("M2G_DEBUG: CM2GRenderContext::ClearBitmap - end"); } - -void CM2GRenderContext::ClearSurfaceL(TM2GSvgBitmapHandle aSvgtBmpHandle ) - { - M2G_DEBUG_0("M2G_DEBUG: CM2GRenderContext::ClearBitmap - begin"); -//TODO As Currently we are not using this functionality. -/* switch(wSurfaceType) - { - case Java::GFX::WsTypeQtImage: - QImage* tempQImage; - User::LeaveIfNull(tempQImage = (reinterpret_cast(aSvgtBmpHandle)->getQtImage())); - //TODO Do we need to lock the qimage as implemented below TM2GBitmapLock lock(tempBitmap);? - QSize sizeQimage = tempQImage->size();//TODO Check for SizeInPixels - TInt scanlineLengthQimage = tempQImage->bytesPerLine(); - //uchar* bufBytesQimage = REINTERPRET_CAST(uchar*, tempQImage->bits()); - - Mem::FillZ(tempQImage->bits(), sizeQimage.height() * scanlineLengthQimage); - - M2G_DEBUG_0("M2G_DEBUG: CM2GRenderContext::ClearSurface Qimage Clear function- end"); - break; - - case Java::GFX::WsTypeSymbianBitmap: - CFbsBitmap* tempBitmap; - User::LeaveIfNull(tempBitmap = (reinterpret_cast(aSvgtBmpHandle)->getSymbianBitmap())); - TM2GBitmapLock lock(tempBitmap); - TSize sizeBmp = tempBitmap->SizeInPixels(); - TInt scanlineLengthBmp = tempBitmap->ScanLineLength(sizeBmp.iWidth, tempBitmap->DisplayMode()); - TUint32* bufBmp = tempBitmap->DataAddress(); - char* bufBytesBmp = REINTERPRET_CAST(char*, bufBmp); - - Mem::FillZ(bufBytesBmp, sizeBmp.iHeight * scanlineLengthBmp); - - M2G_DEBUG_0("M2G_DEBUG: CM2GRenderContext::ClearSurface Bitmap Clear function- end"); - break; - - default: - M2G_DEBUG_0("M2G_DEBUG: CM2GRenderContext::ClearBitmap Type Not Supported.- end"); - User::Leave(KErrNotSupported); - break; - } - */ - } - -// ----------------------------------------------------------------------------- -// CM2GRenderContext::FillBitmapL -// ----------------------------------------------------------------------------- -void CM2GRenderContext::FillBitmapL(CFbsBitmap* aBmp, const TUint8& aChar) -{ - M2G_DEBUG_1("M2G_DEBUG: CM2GRenderContext::FillBitmap() filled with=%d - begin", aChar); - User::LeaveIfNull(aBmp); - TM2GBitmapLock lock(aBmp); - - TSize size = aBmp->SizeInPixels(); - TInt scanlineLength = aBmp->ScanLineLength(size.iWidth, aBmp->DisplayMode()); - - TUint32* buf = aBmp->DataAddress(); - char* bufBytes = REINTERPRET_CAST(char*, buf); - - Mem::Fill(bufBytes, size.iHeight * scanlineLength, aChar); - - M2G_DEBUG_0("M2G_DEBUG: CM2GRenderContext::FillBitmap - end"); -} - -// ----------------------------------------------------------------------------- -// CM2GRenderContext::GetBufferHandleL -// ----------------------------------------------------------------------------- -TM2GSvgBitmapHandle CM2GRenderContext::GetBufferHandleL() const - { - switch(wSurfaceType) - { - case Java::GFX::WsTypeQtImage: - User::LeaveIfNull(iOffScreenQImage); - return REINTERPRET_CAST(TM2GSvgBitmapHandle , iOffScreenQImage); - break; - - case Java::GFX::WsTypeSymbianBitmap: - User::LeaveIfNull(iOffScreenBitmap); - return REINTERPRET_CAST(TM2GSvgBitmapHandle , iOffScreenBitmap); - break; - - default: - User::Leave(KErrNotSupported); - break; - } - - } - -//CODE to check the Bitmap Contain. -TInt CM2GRenderContext::SaveBitmapL(const CFbsBitmap& aNVGBitmap, const TFileName& aFileName) - { - TFileName bitmapFilename; - bitmapFilename.Copy(aFileName); - RFs aFs; - User::LeaveIfError(aFs.Connect()); - CImageEncoder * imgEncoder = 0; - TRequestStatus requesStatus = 0; - imgEncoder = CImageEncoder::FileNewL(aFs, bitmapFilename, _L8("image/bmp"), CImageEncoder::EOptionAlwaysThread); - imgEncoder->Convert(&requesStatus, aNVGBitmap); - User::WaitForRequest(requesStatus); - delete imgEncoder; - aFs.Close(); - return 0; - } - M2G_NS_END diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/src/CM2GSVGProxy.cpp --- a/javauis/m2g_qt/src/CM2GSVGProxy.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/src/CM2GSVGProxy.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -279,7 +279,7 @@ TInt findResult = iSvgDocuments.Find(aDocumentHandle); if (findResult != KErrNotFound) { - // Try to remove the handle from the container + // Remove the handle from the container TRAPD(err, iSvgDocuments.Remove(findResult)); if (err != KM2GOk) { @@ -301,7 +301,7 @@ TInt findResult = iSvgEngines.Find(aEngineHandle); if (findResult != KErrNotFound) { - // Try to remove the handle from the container + // Remove the handle from the container TRAPD(err, iSvgEngines.Remove(findResult)); if (err != KM2GOk) { @@ -837,22 +837,20 @@ M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::RenderDocumentL() - end"); } -//TODO following changes done for Qimage -//Check for TUint or TInt for subsequent API Call void CM2GSVGProxy::RenderDocumentL( const TM2GSvgEngineHandle& aEngineHandle, const TM2GSvgDocumentHandle& aDocumentHandle, const TM2GSvgBitmapHandle& aSurfaceHandle, TM2GSvgBitmapHandle aSurfaceMaskHandle, TReal32 aCurrentTime) - { +{ M2G_DEBUG_2("M2G_DEBUG: CM2GSVGProxy::RenderDocumentL() Qimage variant native:%d, time=%f - begin", iNative, aCurrentTime); M2G_DEBUG_3("M2G_DEBUG: CM2GSVGProxy::RenderDocumentL() engine:%d, doc:%d, SvgBitmapHandle:%d", aEngineHandle, aDocumentHandle, aSurfaceHandle); iNative->SvgEngineRenderDocument( aEngineHandle, aDocumentHandle, aSurfaceHandle, aSurfaceMaskHandle, aCurrentTime); M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::RenderDocumentL() - end"); - - } + +} // ----------------------------------------------------------------------------- // CM2GSVGProxy::RenderQualityL @@ -1098,34 +1096,7 @@ M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::ConstructL() - begin"); //Get the font spec with variant default font - const TInt KApacFontId = EApacPlain16; - const TInt KLatintFontId = ELatinBold12; - TInt fontId = KLatintFontId; - - /* switch (AknLayoutUtils::Variant()) - { - case EApacVariant: - { - fontId = KApacFontId; - } - break; - case EEuropeanVariant: - default: - break; - } - FeatureManager::InitializeLibL(); - - if (FeatureManager::FeatureSupported(KFeatureIdAvkonApac)) - { - fontId = KApacFontId; - } - - FeatureManager::UnInitializeLib(); - - const CFont* font = AknLayoutUtils::FontFromId(fontId); - TFontSpec spec = font->FontSpecInTwips();*/ - // TODO have to check for substitute of above. const CFont* font = CEikonEnv::Static()->NormalFont(); TFontSpec spec = font->FontSpecInTwips(); iNative = CSvgJavaInterfaceImpl::NewL(spec); diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/src/CSynchronization.cpp --- a/javauis/m2g_qt/src/CSynchronization.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/src/CSynchronization.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -33,8 +33,7 @@ M2gGlobals* getM2gGlobals() { // Access the PLS of this process. - //Todo have to check Uid for process. - return Pls(TUid::Uid(0x200211E2)); + return Pls(TUid::Uid(0x2002DCBD)); } #else diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/src/M2GGeneral.cpp --- a/javauis/m2g_qt/src/M2GGeneral.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/src/M2GGeneral.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/src/M2GUtils.cpp --- a/javauis/m2g_qt/src/M2GUtils.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/src/M2GUtils.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -96,13 +96,13 @@ TInt M2GBitmapUtils::BitQBlt(QImage& aTargetQimage, - const QImage& aSourceQimage, - const TPoint& aPoint, - const TRect* aRect, - const CFbsBitmap* aSourceMask) + const QImage& aSourceQimage, + const TPoint& aPoint, + const TRect* aRect, + const CFbsBitmap* aSourceMask) { M2G_DEBUG_2("M2G_DEBUG: M2GBitmapUtils::BitQBlt() - Point(x=%d, y=%d)", aPoint.iX, aPoint.iY); - + QPixmap pixmapTarget = QPixmap::fromImage(aTargetQimage); CFbsBitmap* aTarget = pixmapTarget.toSymbianCFbsBitmap(); @@ -341,6 +341,4 @@ CleanupStack::PopAndDestroy(tempBitmap); M2G_DEBUG_0("TSWTBitBlt()-"); } -//TODO Check for M2G_DO_LOCK M2G_DO_UNLOCK -//TODO Put Check for aSvgProxyHandle in all the functions. M2G_NS_END diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/src/jni/M2GDocument.cpp --- a/javauis/m2g_qt/src/jni/M2GDocument.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/src/jni/M2GDocument.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -61,22 +61,22 @@ jstring aData) { M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GDocument ) _createDocument - begin"); - + TInt handle = M2G_INVALID_HANDLE; TInt err = KM2GNotOk; JStringUtils data(*aJni, aData); - //RJString data(*aJni, aData); + TPtrC16* bData = STATIC_CAST(TPtrC16*, &data); M2G_DO_LOCK if (aSvgProxyHandle) - { + { MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); TRAP(err,aProxy->CreateDocumentL(*bData, handle);); - } + } M2G_DO_UNLOCK(aJni) - handle = M2GGeneral::CheckErrorCodeAndHandle(aJni, err, handle, M2G_INVALID_HANDLE); + handle = M2GGeneral::CheckErrorCodeAndHandle(aJni, err, handle, M2G_INVALID_HANDLE); M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GDocument ) _createDocument: %d - end", handle); return handle; } @@ -106,19 +106,19 @@ // Execute native engine method TInt handle = M2G_INVALID_HANDLE; TInt err = KM2GNotOk; - + M2G_DO_LOCK if (aSvgProxyHandle) - { + { MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); TRAP(err,aProxy->CreateElementNsL( - aType, - aDocumentHandle, - handle); ); - - } - M2G_DO_UNLOCK(aJni) - + aType, + aDocumentHandle, + handle);); + + } + M2G_DO_UNLOCK(aJni) + M2GGeneral::CheckErrorCode(aJni, err); M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GDocument ) _createElementNS: %d - end", handle); return handle; @@ -139,18 +139,18 @@ JNIEnv* aJni, jclass, jint aSvgProxyHandle, - jint aDocumentHandle ) + jint aDocumentHandle) { M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GDocument ) _deleteDocument - begin"); TInt err = KM2GNotOk; - + M2G_DO_LOCK // Extract the SVGProxy handle if (aSvgProxyHandle) - { + { MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); TRAP(err,aProxy->DeleteDocumentL(aDocumentHandle);); - } + } M2G_DO_UNLOCK(aJni) M2GGeneral::CheckErrorCode(aJni, err); @@ -180,16 +180,16 @@ M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GDocument ) _getElementById - begin"); TInt handle = M2G_INVALID_HANDLE; TInt err = KM2GNotOk; - //RJString id(*aJni, aId); + JStringUtils id(*aJni, aId); TPtrC16* lId = STATIC_CAST(TPtrC16*, &id); M2G_DO_LOCK if (aSvgProxyHandle) - { + { MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); TRAP(err,aProxy->GetElementByIdL(aDocumentHandle, *lId, handle);); - } + } M2G_DO_UNLOCK(aJni) M2GGeneral::CheckErrorCode(aJni, err); @@ -218,13 +218,13 @@ M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GDocument ) _getViewportHeight - begin"); TInt err = KM2GNotOk; TInt height = 0; - + M2G_DO_LOCK if (aSvgProxyHandle) - { + { MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); TRAP(err,aProxy->GetViewportHeightL(aDocumentHandle, height);); - } + } M2G_DO_UNLOCK(aJni) M2GGeneral::CheckErrorCode(aJni, err); @@ -255,13 +255,13 @@ M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GDocument ) _getViewportWidth - begin"); TInt err = KM2GNotOk; TInt width = 0; - + M2G_DO_LOCK if (aSvgProxyHandle) - { + { MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); TRAP(err,aProxy->GetViewportWidthL(aDocumentHandle, width);); - } + } M2G_DO_UNLOCK(aJni) M2GGeneral::CheckErrorCode(aJni, err); @@ -295,11 +295,11 @@ M2G_DO_LOCK if (aSvgProxyHandle) - { - MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); - TRAP(err,aProxy->IsElementInDomL( - aDocumentHandle, aElementHandle, isElementInDom);); - } + { + MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); + TRAP(err,aProxy->IsElementInDomL( + aDocumentHandle, aElementHandle, isElementInDom);); + } M2G_DO_UNLOCK(aJni) M2GGeneral::CheckErrorCode(aJni, err); @@ -338,34 +338,34 @@ jbyte* resBytes = NULL; if (aResourceData) - { + { resBytes = aJni->GetByteArrayElements(aResourceData, NULL); lResData8.Set(REINTERPRET_CAST(TUint8*, resBytes), aJni->GetArrayLength(aResourceData)); - } + } TInt completed = -1; TPtrC16* pUri = STATIC_CAST(TPtrC16*, &uri); - + M2G_DO_LOCK - + if (aSvgProxyHandle) - { - + { + MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); - + TRAP(err, aProxy->RequestCompletedL( - aDocumentHandle, - *pUri, - lResData8, - completed);); - } + aDocumentHandle, + *pUri, + lResData8, + completed);); + } M2G_DO_UNLOCK(aJni) M2GGeneral::CheckErrorCode(aJni, err); if (aResourceData) - { + { aJni->ReleaseByteArrayElements(aResourceData, resBytes, JNI_ABORT); // don't copy back - } + } M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GDocument ) _requestCompleted: %d - end", completed); @@ -393,16 +393,16 @@ { M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GDocument ) _setViewportHeight - begin"); TInt err = KM2GNotOk; - + M2G_DO_LOCK if (aSvgProxyHandle) - { + { MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); TRAP(err,aProxy->SetViewportHeightL( - (TM2GSvgDocumentHandle)aDocumentHandle, aHeight);); - } + (TM2GSvgDocumentHandle)aDocumentHandle, aHeight);); + } M2G_DO_UNLOCK(aJni) - + M2GGeneral::CheckErrorCode(aJni, err); M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GDocument ) _setViewportHeight - end"); @@ -428,16 +428,16 @@ { M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GDocument ) _setViewportWidth - begin"); TInt err = KM2GNotOk; - + M2G_DO_LOCK if (aSvgProxyHandle) - { - MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); - TRAP(err, aProxy->SetViewportWidthL( - (TM2GSvgDocumentHandle)aDocumentHandle, aWidth);); - } + { + MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); + TRAP(err, aProxy->SetViewportWidthL( + (TM2GSvgDocumentHandle)aDocumentHandle, aWidth);); + } M2G_DO_UNLOCK(aJni) - + M2GGeneral::CheckErrorCode(aJni, err); M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GDocument ) _setViewportWidth - end"); } diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/src/jni/M2GManager.cpp --- a/javauis/m2g_qt/src/jni/M2GManager.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/src/jni/M2GManager.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -60,20 +60,20 @@ jint aSvgProxyHandle) { M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GManager ) _createSvgEngine - begin"); - + TInt handle = M2G_INVALID_HANDLE; TInt err = KM2GNotOk; - + M2G_DO_LOCK if (aSvgProxyHandle) - { + { TRAP(err,JavaUnhand(aSvgProxyHandle)->CreateSvgEngineL(handle);); - } + } M2G_DO_UNLOCK(aJni) handle = M2GGeneral::CheckErrorCodeAndHandle( - aJni, err, handle, M2G_INVALID_HANDLE); - + aJni, err, handle, M2G_INVALID_HANDLE); + M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GManager ) _createSvgEngine: %d - end", handle); return handle; } @@ -84,7 +84,7 @@ * Creates an svg proxy. * @since Series S60 3.0 * @param Svg proxy handle -/** + * * JNI method */ JNIEXPORT jint JNICALL @@ -111,8 +111,7 @@ * Calls MM2GSVGProxy::DeleteSvgEnginedL method. * @since Series S60 3.0 * @param aProxy Proxy instance. - -/** + * * JNI method */ JNIEXPORT void JNICALL @@ -120,22 +119,22 @@ JNIEnv* aJni, jclass, jint aSvgProxyHandle, - jint aSvgEngineHandle ) + jint aSvgEngineHandle) { M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GManager ) _deleteSvgEngine - begin"); - + TInt err = KM2GNotOk; - + M2G_DO_LOCK if (aSvgProxyHandle) - { - TRAP(err,JavaUnhand(aSvgProxyHandle)->DeleteSvgEngineL( - STATIC_CAST(TM2GSvgEngineHandle, aSvgEngineHandle));); - } + { + TRAP(err,JavaUnhand(aSvgProxyHandle)->DeleteSvgEngineL( + STATIC_CAST(TM2GSvgEngineHandle, aSvgEngineHandle));); + } M2G_DO_UNLOCK(aJni) - + M2GGeneral::CheckErrorCode(aJni, err); - + M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GManager ) _deleteSvgEngine: - end"); } @@ -149,8 +148,7 @@ * crashes when deleting svg document object that contains external resource) * @since Series S60 3.0 * @param aProxy Proxy instance. - -/** + * * JNI method */ JNIEXPORT void JNICALL @@ -161,88 +159,17 @@ { M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GManager ) _deleteSvgProxy - begin"); TInt err = KM2GNotOk; - + M2G_DO_LOCK if (aSvgProxyHandle) - { + { MM2GSVGProxy* proxy = JavaUnhand(aSvgProxyHandle); TRAP(err,delete proxy;); - } + } M2G_DO_UNLOCK(aJni) M2GGeneral::CheckErrorCode(aJni, err); M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GManager ) _deleteSvgProxy: - end"); } -// ----------------------------------------------------------------------------- -// Java_com_nokia_microedition_m2g_M2GManager::_finalizeEventSource -// ----------------------------------------------------------------------------- -/** - * JNI method TODO check this function for modifications - */ -//JNIEXPORT void JNICALL -//Java_com_nokia_microedition_m2g_M2GManager__1finalizeEventSource( -// JNIEnv *aJni, jclass, jint aEventSourceHandle, jboolean aUiToolkit) -//{ -// M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GManager ) _finalizeEventSource: %d", aEventSourceHandle); -// if (aUiToolkit) -// { -//// MSwtClient* client = reinterpret_cast< MSwtClient* >(aEventSourceHandle); -//// if (client) -//// { -//// delete client; -//// client = NULL; -//// } -// } -// else -// { -// CM2GEventSource* eventSource = JavaUnhand< CM2GEventSource >(aEventSourceHandle); -// if (eventSource) -// { -// eventSource->Dispose(*aJni); -// } -// eventSource = NULL; -// } -//} -// ----------------------------------------------------------------------------- -// Java_com_nokia_microedition_m2g_M2GManager::_initEventSource -// ----------------------------------------------------------------------------- -/** - * JNI method TODO check this function for modifications - -JNIEXPORT jint JNICALL -Java_com_nokia_microedition_m2g_M2GManager__1initEventSource( - JNIEnv *aJni, - jclass aPeer, - jint aServer) -{ - M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GManager ) _initEventSource - begin"); - - M2G_DO_LOCK - TRAPD(eventSourceHandle, eventSourceHandle = CM2GEventSource::NewL( - *aJni, aPeer, aServer)); - M2G_DO_UNLOCK(aJni) - - M2GGeneral::CheckHandle(aJni, eventSourceHandle); - M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GManager ) _initEventSource - end: %d", eventSourceHandle); - return eventSourceHandle; -}*/ -////TODO check this function for modifications -//JNIEXPORT jint JNICALL -//Java_com_nokia_microedition_m2g_M2GManager__1initSwtEventSource( -// JNIEnv *aJni, -// jclass /*aPeer*/) -//{ -// M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GManager ) _initEventSource - begin"); -// -// MSwtClient* client = NULL; -// TRAP_IGNORE(client = SWT::CreateClientL()); -// if (!client) -// { -// return KErrNotFound; -// } -// M2GGeneral::CheckHandle(aJni, (int)client); -// M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GManager ) _initEventSource - end: %d", eventSourceHandle); -// return (int)client; -//} M2G_NS_END diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/src/jni/M2GSVGAnimationElement.cpp --- a/javauis/m2g_qt/src/jni/M2GSVGAnimationElement.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/src/jni/M2GSVGAnimationElement.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -65,43 +65,43 @@ { M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGAnimationElement ) _beginElementAt - begin"); TInt err = KM2GNotOk; - + if (aSvgProxyHandle && aDocumentHandle) + { + MM2GSVGProxy* aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle); + TInt16 restartAttribute; + + TRAP(err, aProxy->GetEnumTraitL( + STATIC_CAST(TM2GSvgElementHandle, aElementHandle), + STATIC_CAST(TM2GSvgAttrType, KM2GRestartAttribute), + restartAttribute); + ) + + TInt isActive; + TRAP(err, aProxy->IsActiveL(STATIC_CAST(TM2GSvgElementHandle, aElementHandle), isActive);) + + if (isActive && (restartAttribute == KM2GRestartWhenNotActive)) { - MM2GSVGProxy* aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle); - TInt16 restartAttribute; - - TRAP(err, aProxy->GetEnumTraitL( - STATIC_CAST(TM2GSvgElementHandle, aElementHandle), - STATIC_CAST(TM2GSvgAttrType, KM2GRestartAttribute), - restartAttribute); - ) - - TInt isActive; - TRAP(err, aProxy->IsActiveL(STATIC_CAST(TM2GSvgElementHandle, aElementHandle), isActive); ) - - if (isActive && (restartAttribute == KM2GRestartWhenNotActive)) - { - M2G_DEBUG_1("M2G_DEBUG: M2GSVGAnimationElement::DoBeginElementAtL() - active & restart att:%d", restartAttribute); - } - else if ((aCurrentTime != 0) && (restartAttribute == KM2GRestartNever)) - { - // Cannot restart even if animation hasn't ended? - M2G_DEBUG_1("M2G_DEBUG: M2GSVGAnimationElement::DoBeginElementAtL() - not active & restart att:%d", restartAttribute); - } - else - { - M2G_DEBUG_2("M2G_DEBUG: M2GSVGAnimationElement::DoBeginElementAtL() - offset:%f & current:%f", aOffset, aCurrentTime); - TRAP(err, aProxy->BeginElementAtL( - STATIC_CAST(TM2GSvgDocumentHandle, aDocumentHandle), - STATIC_CAST(TM2GSvgElementHandle, aElementHandle), - (aOffset+aCurrentTime) ); - ) - } + M2G_DEBUG_1("M2G_DEBUG: M2GSVGAnimationElement::DoBeginElementAtL() - active & restart att:%d", restartAttribute); + } + else if ((aCurrentTime != 0) && (restartAttribute == KM2GRestartNever)) + { + // Cannot restart even if animation hasn't ended? + M2G_DEBUG_1("M2G_DEBUG: M2GSVGAnimationElement::DoBeginElementAtL() - not active & restart att:%d", restartAttribute); } + else + { + M2G_DEBUG_2("M2G_DEBUG: M2GSVGAnimationElement::DoBeginElementAtL() - offset:%f & current:%f", aOffset, aCurrentTime); + TRAP(err, aProxy->BeginElementAtL( + STATIC_CAST(TM2GSvgDocumentHandle, aDocumentHandle), + STATIC_CAST(TM2GSvgElementHandle, aElementHandle), + (aOffset+aCurrentTime)); + ) + } + } M2GGeneral::CheckErrorCode(aJni, err); M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGAnimationElement ) _beginElementAt - end"); - + } // ----------------------------------------------------------------------------- // Java_com_nokia_microedition_m2g_M2GSVGAnimationElement::_endElementAt @@ -125,13 +125,13 @@ { M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGAnimationElement ) _endElementAt - begin"); TInt err = KM2GNotOk; - + MM2GSVGProxy* aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle); - + TRAP(err, aProxy->EndElementAtL(STATIC_CAST(TM2GSvgDocumentHandle, aDocumentHandle), - STATIC_CAST(TM2GSvgElementHandle, aElementHandle), - aOffset); - ) + STATIC_CAST(TM2GSvgElementHandle, aElementHandle), + aOffset); + ) M2GGeneral::CheckErrorCode(aJni, err); @@ -159,12 +159,12 @@ TInt err = KM2GNotOk; TInt active = 0; MM2GSVGProxy* aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle); - + TRAP(err, aProxy->IsActiveL( - STATIC_CAST(TM2GSvgElementHandle, aElementHandle), - active); + STATIC_CAST(TM2GSvgElementHandle, aElementHandle), + active); ) - + M2GGeneral::CheckErrorCode(aJni, err); M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGAnimationElement ) _isActive: %d - end", active); return STATIC_CAST(jboolean, (active == 1 ? ETrue : EFalse)); diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/src/jni/M2GSVGElement.cpp --- a/javauis/m2g_qt/src/jni/M2GSVGElement.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/src/jni/M2GSVGElement.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -64,14 +64,14 @@ M2G_DO_LOCK if (aSvgProxyHandle) - { + { MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); TRAP(err, aProxy->AppendChildL( - STATIC_CAST(TM2GSvgElementHandle, aElementHandle), - STATIC_CAST(TM2GSvgElementHandle, aChildElementHandle)); ); - } + STATIC_CAST(TM2GSvgElementHandle, aElementHandle), + STATIC_CAST(TM2GSvgElementHandle, aChildElementHandle));); + } M2G_DO_UNLOCK(aJni) - + M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGElement ) _appendChild - end"); M2GGeneral::CheckErrorCode(aJni, err); } @@ -96,15 +96,15 @@ TInt removeable = -1; M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGElement ) _checkRemoveable - begin"); TInt err = KM2GNotOk; - - + + M2G_DO_LOCK if (aSvgProxyHandle) - { + { MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); - + TRAP(err, aProxy->CheckRemoveableL(aElementHandle, removeable);); - } + } M2G_DO_UNLOCK(aJni) M2GGeneral::CheckErrorCode(aJni, err); @@ -138,19 +138,19 @@ TM2GRectData rect; TInt result = 0; TInt err = KM2GNotOk; - + M2G_DO_LOCK if (aSvgProxyHandle) - { + { MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); TRAP(err, aProxy->GetBBoxL( - STATIC_CAST(TM2GSvgElementHandle, aElementHandle), - STATIC_CAST(TM2GSvgAttrType, aAttributeTypeId), - rect, result); ); - } + STATIC_CAST(TM2GSvgElementHandle, aElementHandle), + STATIC_CAST(TM2GSvgAttrType, aAttributeTypeId), + rect, result);); + } M2G_DO_UNLOCK(aJni) - + M2GGeneral::CheckErrorCode(aJni, err); aJni->SetFloatArrayRegion( @@ -187,17 +187,17 @@ TM2GColorData color; TInt result = -1; TInt err = KM2GNotOk; - + M2G_DO_LOCK if (aSvgProxyHandle) - { + { MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); TRAP(err, aProxy->GetColorTraitL( - aElementHandle, - aAttributeTypeId, - color, - result); ); - } + aElementHandle, + aAttributeTypeId, + color, + result);); + } M2G_DO_UNLOCK(aJni) M2GGeneral::CheckErrorCode(aJni, err); @@ -237,15 +237,15 @@ M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGElement ) _getElementTypeId - begin"); TInt16 id = 0; TInt err = KM2GNotOk; - + M2G_DO_LOCK if (aSvgProxyHandle) - { + { MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); - TRAP(err, aProxy->GetElementTypeIdL(aElementHandle, id); ); - } + TRAP(err, aProxy->GetElementTypeIdL(aElementHandle, id);); + } M2G_DO_UNLOCK(aJni) - + M2GGeneral::CheckErrorCode(aJni, err); M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGElement ) _getElementTypeId: %d - end", id); return id; @@ -273,19 +273,19 @@ M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGElement ) _getEnumTrait - begin"); TInt16 enumTrait = 0; TInt err = KM2GNotOk; - + M2G_DO_LOCK if (aSvgProxyHandle) - { + { MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); TRAP(err, aProxy->GetEnumTraitL( - STATIC_CAST(TM2GSvgElementHandle, aElementHandle), - STATIC_CAST(TM2GSvgAttrType, aAttributeTypeId), - enumTrait); ); - } + STATIC_CAST(TM2GSvgElementHandle, aElementHandle), + STATIC_CAST(TM2GSvgAttrType, aAttributeTypeId), + enumTrait);); + } M2G_DO_UNLOCK(aJni) - + M2GGeneral::CheckErrorCode(aJni, err); M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGElement ) _getEnumTrait: %d - end", enumTrait); return enumTrait; @@ -314,10 +314,10 @@ M2G_DO_LOCK if (aSvgProxyHandle) - { + { MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); - TRAP(err, aProxy->GetFirstElementChildL(aElementHandle, childHandle); ); - } + TRAP(err, aProxy->GetFirstElementChildL(aElementHandle, childHandle);); + } M2G_DO_UNLOCK(aJni) M2GGeneral::CheckErrorCode(aJni, err); @@ -346,17 +346,17 @@ M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGElement ) _getFloatTrait - begin"); TInt err = KM2GNotOk; TReal32 floatTrait = 0; - + M2G_DO_LOCK if (aSvgProxyHandle) - { - MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); + { + MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); - TRAP(err ,aProxy->GetFloatTraitL( - STATIC_CAST(TM2GSvgElementHandle, aElementHandle), - STATIC_CAST(TM2GSvgAttrType, aAttributeTypeId), - floatTrait);); - } + TRAP(err ,aProxy->GetFloatTraitL( + STATIC_CAST(TM2GSvgElementHandle, aElementHandle), + STATIC_CAST(TM2GSvgAttrType, aAttributeTypeId), + floatTrait);); + } M2G_DO_UNLOCK(aJni) M2GGeneral::CheckErrorCode(aJni, err); @@ -388,17 +388,17 @@ TM2GMatrixData matrix; TInt result = -1; TInt err = KM2GNotOk; - + M2G_DO_LOCK if (aSvgProxyHandle) - { + { MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); TRAP(err, aProxy->GetMatrixTraitL( - STATIC_CAST(TM2GSvgElementHandle, aElementHandle), - STATIC_CAST(TM2GSvgAttrType, aAttributeTypeId), - matrix, result); ); - } + STATIC_CAST(TM2GSvgElementHandle, aElementHandle), + STATIC_CAST(TM2GSvgAttrType, aAttributeTypeId), + matrix, result);); + } M2G_DO_UNLOCK(aJni) if (M2GGeneral::CheckErrorCode(aJni, err) == KM2GOk) @@ -439,15 +439,15 @@ M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGElement ) _getNextElementSibling - begin"); TInt siblingHandle = M2G_INVALID_HANDLE; TInt err = KM2GNotOk; - + M2G_DO_LOCK if (aSvgProxyHandle) - { - MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); - TRAP(err, aProxy->GetNextElementSiblingL(aElementHandle, siblingHandle); ); - } + { + MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); + TRAP(err, aProxy->GetNextElementSiblingL(aElementHandle, siblingHandle);); + } M2G_DO_UNLOCK(aJni) - + M2GGeneral::CheckErrorCode(aJni, err); M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGElement ) _getNextElementSibling: %d - end", siblingHandle); return siblingHandle; @@ -472,14 +472,14 @@ M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGElement ) _getParent - begin"); TInt parentHandle = M2G_INVALID_HANDLE; TInt err = KM2GNotOk; - + M2G_DO_LOCK - + if (aSvgProxyHandle) - { + { MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); TRAP(err, aProxy->GetParentL(aElementHandle, parentHandle);); - } + } M2G_DO_UNLOCK(aJni) M2GGeneral::CheckErrorCode(aJni, err); @@ -508,19 +508,19 @@ M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGElement ) _getPathTrait - begin"); TInt aPathTrait = 0; TInt err = KM2GNotOk; - + M2G_DO_LOCK if (aSvgProxyHandle) - { + { MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); TRAP(err, aProxy->GetPathTraitL( - STATIC_CAST(TM2GSvgElementHandle, aElementHandle), - STATIC_CAST(TM2GSvgAttrType, aAttributeTypeId), - aPathTrait); ); - } + STATIC_CAST(TM2GSvgElementHandle, aElementHandle), + STATIC_CAST(TM2GSvgAttrType, aAttributeTypeId), + aPathTrait);); + } M2G_DO_UNLOCK(aJni) - + M2GGeneral::CheckErrorCode(aJni, err); M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGElement ) _getPathTrait: %d - end", aPathTrait); return aPathTrait; @@ -551,19 +551,19 @@ TM2GRectData rect; TInt result = 0; TInt err = KM2GNotOk; - + M2G_DO_LOCK if (aSvgProxyHandle) - { + { MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); TRAP(err , aProxy->GetRectTraitL( - STATIC_CAST(TM2GSvgElementHandle, aElementHandle), - STATIC_CAST(TM2GSvgAttrType, aAttributeTypeId), - rect, result); ); - } + STATIC_CAST(TM2GSvgElementHandle, aElementHandle), + STATIC_CAST(TM2GSvgAttrType, aAttributeTypeId), + rect, result);); + } M2G_DO_UNLOCK(aJni) - + M2GGeneral::CheckErrorCode(aJni, err); aJni->SetFloatArrayRegion( REINTERPRET_CAST(jfloatArray, aRectComponents), @@ -595,15 +595,15 @@ TInt err = KM2GNotOk; M2G_DO_LOCK if (aSvgProxyHandle) - { + { MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); TRAP(err, aProxy->GetRootElementL( - STATIC_CAST(TM2GSvgDocumentHandle, aDocumentHandle), - rootElementHandle); ); - } + STATIC_CAST(TM2GSvgDocumentHandle, aDocumentHandle), + rootElementHandle);); + } M2G_DO_UNLOCK(aJni) - + M2GGeneral::CheckErrorCode(aJni, err); M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGElement ) _getRootElement: %d - end", rootElementHandle); @@ -631,18 +631,18 @@ M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGElement ) _getScreenBBox - begin"); TM2GScreenBBoxData screenBBox; TInt err = KM2GNotOk; - + M2G_DO_LOCK if (aSvgProxyHandle) - { + { MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); TRAP(err, aProxy->GetScreenBBoxL( - STATIC_CAST(TM2GSvgElementHandle, aElementHandle), - screenBBox); ); - } + STATIC_CAST(TM2GSvgElementHandle, aElementHandle), + screenBBox);); + } M2G_DO_UNLOCK(aJni) - + M2GGeneral::CheckErrorCode(aJni, err); aJni->SetFloatArrayRegion( @@ -676,19 +676,19 @@ TPtrC16 attribute; TInt err = KM2GNotOk; - + M2G_DO_LOCK if (aSvgProxyHandle) - { + { MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); TRAP(err, aProxy->GetStringTraitL( - STATIC_CAST(TM2GSvgElementHandle, aElementHandle), - STATIC_CAST(TM2GSvgAttrType, aAttributeTypeId), - attribute); ); - } + STATIC_CAST(TM2GSvgElementHandle, aElementHandle), + STATIC_CAST(TM2GSvgAttrType, aAttributeTypeId), + attribute);); + } M2G_DO_UNLOCK(aJni) - + if ((M2GGeneral::CheckErrorCode(aJni, err) == KM2GOk) && (attribute.Length() > 0)) { @@ -718,18 +718,18 @@ M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGElement ) _getUsedFromElement - begin"); TInt handle = M2G_INVALID_HANDLE; TInt err = KM2GNotOk; - + M2G_DO_LOCK if (aSvgProxyHandle) - { + { MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); TRAP(err, aProxy->GetUsedFromElementL( - STATIC_CAST(TM2GSvgElementHandle, aElementHandle), - handle); ); - } + STATIC_CAST(TM2GSvgElementHandle, aElementHandle), + handle);); + } M2G_DO_UNLOCK(aJni) - + M2GGeneral::CheckErrorCode(aJni, err); M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGElement ) _getUsedFromElement: %d - end", handle); return handle; @@ -755,18 +755,18 @@ { M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGElement ) _insertBefore - begin"); TInt err = KM2GNotOk; - + M2G_DO_LOCK - + if (aSvgProxyHandle) - { + { MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); - + TRAP(err, aProxy->InsertBeforeL( - STATIC_CAST(TM2GSvgElementHandle, aElementHandle), - STATIC_CAST(TM2GSvgElementHandle, aNewChildElementHandle), - STATIC_CAST(TM2GSvgElementHandle, aReferenceElementHandle)); ); - } + STATIC_CAST(TM2GSvgElementHandle, aElementHandle), + STATIC_CAST(TM2GSvgElementHandle, aNewChildElementHandle), + STATIC_CAST(TM2GSvgElementHandle, aReferenceElementHandle));); + } M2G_DO_UNLOCK(aJni) M2GGeneral::CheckErrorCode(aJni, err); @@ -787,21 +787,21 @@ JNIEnv* aJni, jclass, jint aSvgProxyHandle, - jint aElementHandle ) + jint aElementHandle) { M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGElement ) _isUsed - begin"); TInt result = KM2GNotOk; TInt err = KM2GNotOk; - + M2G_DO_LOCK if (aSvgProxyHandle) - { + { MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); - TRAP(err, aProxy->IsUsedL(STATIC_CAST(TM2GSvgElementHandle, aElementHandle), result); ); - } + TRAP(err, aProxy->IsUsedL(STATIC_CAST(TM2GSvgElementHandle, aElementHandle), result);); + } M2G_DO_UNLOCK(aJni) - + M2GGeneral::CheckErrorCode(aJni, err); M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGElement ) _isUsed: %d - end", result); return result; @@ -832,15 +832,15 @@ M2G_DO_LOCK if (aSvgProxyHandle) - { + { MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); - TRAP(err ,aProxy->RemoveChildL( - STATIC_CAST(TM2GSvgElementHandle, aElementHandle), - STATIC_CAST(TM2GSvgElementHandle, aChildElementHandle), handle); ); - } + TRAP(err ,aProxy->RemoveChildL( + STATIC_CAST(TM2GSvgElementHandle, aElementHandle), + STATIC_CAST(TM2GSvgElementHandle, aChildElementHandle), handle);); + } M2G_DO_UNLOCK(aJni) - + M2GGeneral::CheckErrorCode(aJni, err); M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGElement ) _removeChild: %d - end", handle); @@ -876,16 +876,16 @@ M2G_DO_LOCK if (aSvgProxyHandle) - { - MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); + { + MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); - TRAP(err, aProxy->SetColorTraitL( - STATIC_CAST(TM2GSvgElementHandle, aElementHandle), - STATIC_CAST(TM2GSvgAttrType, aAttributeTypeId), - color); ); - } + TRAP(err, aProxy->SetColorTraitL( + STATIC_CAST(TM2GSvgElementHandle, aElementHandle), + STATIC_CAST(TM2GSvgAttrType, aAttributeTypeId), + color);); + } M2G_DO_UNLOCK(aJni) - + M2GGeneral::CheckErrorCode(aJni, err); M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGElement ) _setColorTrait: %d - end", err); } @@ -899,7 +899,7 @@ * @param aProxy Proxy instance. * @param aElementHandle Element pointer. * @param aAttributeTypeId - - * @param aValue + * @param aValue */ JNIEXPORT void JNICALL Java_com_nokia_microedition_m2g_M2GSVGElement__1setEnumTrait( @@ -912,17 +912,17 @@ { M2G_DEBUG_2("M2G_DEBUG: JNI ( M2GSVGElement ) _setEnumTrait: type=%d, value=%d - begin", aAttributeTypeId, aValue); TInt err = KM2GNotOk; - + M2G_DO_LOCK if (aSvgProxyHandle) - { + { MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); - + TRAP(err, aProxy->SetEnumTraitL( - STATIC_CAST(TM2GSvgElementHandle, aElementHandle), - STATIC_CAST(TM2GSvgAttrType, aAttributeTypeId), - aValue); ); - } + STATIC_CAST(TM2GSvgElementHandle, aElementHandle), + STATIC_CAST(TM2GSvgAttrType, aAttributeTypeId), + aValue);); + } M2G_DO_UNLOCK(aJni) M2GGeneral::CheckErrorCode(aJni, err); @@ -950,17 +950,17 @@ { M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGElement ) _setFloatTrait: %f - begin", aValue); TInt err = KM2GNotOk; - + M2G_DO_LOCK if (aSvgProxyHandle) - { + { MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); TRAP(err, aProxy->SetFloatTraitL( - STATIC_CAST(TM2GSvgElementHandle, aElementHandle), - STATIC_CAST(TM2GSvgAttrType, aAttributeTypeId), - aValue); ); - } + STATIC_CAST(TM2GSvgElementHandle, aElementHandle), + STATIC_CAST(TM2GSvgAttrType, aAttributeTypeId), + aValue);); + } M2G_DO_UNLOCK(aJni) M2GGeneral::CheckErrorCode(aJni, err); @@ -999,19 +999,19 @@ } // Release data source aJni->ReleaseFloatArrayElements(aMatrixComponents, components, JNI_ABORT); - + M2G_DO_LOCK if (aSvgProxyHandle) - { + { MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); TRAP(err, aProxy->SetMatrixTraitL( - STATIC_CAST(TM2GSvgElementHandle, aElementHandle), - STATIC_CAST(TM2GSvgAttrType, aAttributeTypeId), - matrix); ); - } + STATIC_CAST(TM2GSvgElementHandle, aElementHandle), + STATIC_CAST(TM2GSvgAttrType, aAttributeTypeId), + matrix);); + } M2G_DO_UNLOCK(aJni) - + M2GGeneral::CheckErrorCode(aJni, err); M2G_DEBUG_6("JNI ( M2GSVGElement ) _setMatrixTrait: %f, %f, %f, %f, %f, %f - end", matrix[ 0 ], matrix[ 1 ], matrix[ 2 ], matrix[ 3 ], matrix[ 4 ], matrix[ 5 ]); } @@ -1037,17 +1037,17 @@ { M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGElement ) _setPathTrait - begin"); TInt err = KM2GNotOk; - + M2G_DO_LOCK if (aSvgProxyHandle) - { + { MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); TRAP(err,aProxy->SetPathTraitL( - STATIC_CAST(TM2GSvgElementHandle, aElementHandle), - STATIC_CAST(TM2GSvgAttrType, aAttributeTypeId), - STATIC_CAST(TM2GSvgPathHandle, aPathHandle)); ); - } + STATIC_CAST(TM2GSvgElementHandle, aElementHandle), + STATIC_CAST(TM2GSvgAttrType, aAttributeTypeId), + STATIC_CAST(TM2GSvgPathHandle, aPathHandle));); + } M2G_DO_UNLOCK(aJni) M2GGeneral::CheckErrorCode(aJni, err); @@ -1083,14 +1083,14 @@ M2G_DO_LOCK if (aSvgProxyHandle) - { + { MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); - + TRAP(err, aProxy->SetRectTraitL( - STATIC_CAST(TM2GSvgElementHandle, aElementHandle), - STATIC_CAST(TM2GSvgAttrType, aAttributeTypeId), - rect); ); - } + STATIC_CAST(TM2GSvgElementHandle, aElementHandle), + STATIC_CAST(TM2GSvgAttrType, aAttributeTypeId), + rect);); + } M2G_DO_UNLOCK(aJni) M2GGeneral::CheckErrorCode(aJni, err); @@ -1117,23 +1117,23 @@ jstring aValue) { M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGElement ) _setStringTrait - begin"); - //RJString str(*aJni, aValue); + JStringUtils str(*aJni, aValue); TInt err = KM2GNotOk; - + M2G_DO_LOCK if (aSvgProxyHandle) - { + { MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); TPtrC16 lValue=STATIC_CAST(TPtrC16, str); - + TRAP(err, aProxy->SetStringTraitL( - STATIC_CAST(TM2GSvgElementHandle, aElementHandle), - STATIC_CAST(TM2GSvgAttrType, aAttributeTypeId), - lValue); ); - } + STATIC_CAST(TM2GSvgElementHandle, aElementHandle), + STATIC_CAST(TM2GSvgAttrType, aAttributeTypeId), + lValue);); + } M2G_DO_UNLOCK(aJni) - + M2GGeneral::CheckErrorCode(aJni, err); M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGElement ) _setStringTrait - end"); } diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/src/jni/M2GSVGImage.cpp --- a/javauis/m2g_qt/src/jni/M2GSVGImage.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/src/jni/M2GSVGImage.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -64,15 +64,15 @@ TInt elementHandle = M2G_INVALID_HANDLE; TInt err = KM2GNotOk; - + M2G_DO_LOCK if (aSvgProxyHandle) - { - MM2GSVGProxy * aProxy = JavaUnhand(aSvgProxyHandle); - TRAP(err, aProxy->DispatchMouseEventL( - STATIC_CAST(TM2GSvgDocumentHandle, aDocumentHandle), - aX, aY, elementHandle); ); - } + { + MM2GSVGProxy * aProxy = JavaUnhand(aSvgProxyHandle); + TRAP(err, aProxy->DispatchMouseEventL( + STATIC_CAST(TM2GSvgDocumentHandle, aDocumentHandle), + aX, aY, elementHandle);); + } M2G_DO_UNLOCK(aJni) M2GGeneral::CheckErrorCode(aJni, err); @@ -100,17 +100,16 @@ { M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGImage ) _focusOn - begin"); - // TInt elementHandle = M2G_INVALID_HANDLE; - TInt err = KM2GNotOk; - - if (aSvgProxyHandle) - { - MM2GSVGProxy * aProxy = JavaUnhand(aSvgProxyHandle); - TRAP(err, aProxy->FocusOnL( + TInt err = KM2GNotOk; + + if (aSvgProxyHandle) + { + MM2GSVGProxy * aProxy = JavaUnhand(aSvgProxyHandle); + TRAP(err, aProxy->FocusOnL( STATIC_CAST(TM2GSvgDocumentHandle, aDocumentHandle), - STATIC_CAST(TM2GSvgElementHandle, aElementHandle)); ); - } - + STATIC_CAST(TM2GSvgElementHandle, aElementHandle));); + } + M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGImage ) _focusOn: %d - end", err); } @@ -134,15 +133,15 @@ jint aDocumentHandle, jint aElementHandle) { M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGImage ) _focusOut - begin"); - TInt err = KM2GNotOk; - + TInt err = KM2GNotOk; + if (aSvgProxyHandle) - { + { MM2GSVGProxy * aProxy = JavaUnhand(aSvgProxyHandle); TRAP(err,aProxy->FocusOutL( - STATIC_CAST(TM2GSvgDocumentHandle, aDocumentHandle), - STATIC_CAST(TM2GSvgElementHandle, aElementHandle)); ); - } + STATIC_CAST(TM2GSvgDocumentHandle, aDocumentHandle), + STATIC_CAST(TM2GSvgElementHandle, aElementHandle));); + } M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGImage ) _focusOut: %d - end", err); @@ -173,16 +172,16 @@ M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGImage ) _getExternalListItem - begin"); TPtrC16 lItem; TInt err = KM2GNotOk; - + M2G_DO_LOCK if (aSvgProxyHandle) - { - MM2GSVGProxy * aProxy = JavaUnhand(aSvgProxyHandle); - TRAP(err, aProxy->GetExternalListItemL( - STATIC_CAST(TM2GSvgDocumentHandle, aDocumentHandle), - aIndex, - lItem); ); - } + { + MM2GSVGProxy * aProxy = JavaUnhand(aSvgProxyHandle); + TRAP(err, aProxy->GetExternalListItemL( + STATIC_CAST(TM2GSvgDocumentHandle, aDocumentHandle), + aIndex, + lItem);); + } M2G_DO_UNLOCK(aJni) if ((M2GGeneral::CheckErrorCode(aJni, err) == KM2GOk) && (lItem.Length() > 0)) @@ -211,17 +210,16 @@ { M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGImage ) _getExternalListSize - begin"); - // TInt elementHandle = M2G_INVALID_HANDLE; TInt err = KM2GNotOk; TInt listSz = 0; - + M2G_DO_LOCK if (aSvgProxyHandle) - { - MM2GSVGProxy * aProxy = JavaUnhand(aSvgProxyHandle); - TRAP(err, aProxy->GetExternalListSizeL( - STATIC_CAST(TM2GSvgDocumentHandle, aDocumentHandle), listSz); ); - } + { + MM2GSVGProxy * aProxy = JavaUnhand(aSvgProxyHandle); + TRAP(err, aProxy->GetExternalListSizeL( + STATIC_CAST(TM2GSvgDocumentHandle, aDocumentHandle), listSz);); + } M2G_DO_UNLOCK(aJni) M2GGeneral::CheckErrorCode(aJni, err); @@ -251,18 +249,18 @@ jint aDocumentHandle) { M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGImage ) _initViewport - begin"); - // TInt elementHandle = M2G_INVALID_HANDLE; - TInt err = KM2GNotOk; - - if (aSvgProxyHandle) - { - MM2GSVGProxy * aProxy = JavaUnhand(aSvgProxyHandle); - TRAP(err, aProxy->InitViewportL( - STATIC_CAST(TM2GSvgDocumentHandle, aDocumentHandle)); ); - } - M2GGeneral::CheckErrorCode(aJni, err); - - M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGImage ) _initViewport: %d - end", err); + + TInt err = KM2GNotOk; + + if (aSvgProxyHandle) + { + MM2GSVGProxy * aProxy = JavaUnhand(aSvgProxyHandle); + TRAP(err, aProxy->InitViewportL( + STATIC_CAST(TM2GSvgDocumentHandle, aDocumentHandle));); + } + M2GGeneral::CheckErrorCode(aJni, err); + + M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGImage ) _initViewport: %d - end", err); } diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/src/jni/M2GSVGPath.cpp --- a/javauis/m2g_qt/src/jni/M2GSVGPath.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/src/jni/M2GSVGPath.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -62,10 +62,10 @@ M2G_DO_LOCK if (aSvgProxyHandle) - { + { MM2GSVGProxy* aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle); - TRAP(err, aProxy->AddCloseL(STATIC_CAST(TM2GSvgPathHandle, aPathHandle)); ); - } + TRAP(err, aProxy->AddCloseL(STATIC_CAST(TM2GSvgPathHandle, aPathHandle));); + } M2G_DO_UNLOCK(aJni) M2GGeneral::CheckErrorCode(aJni, err); @@ -89,29 +89,29 @@ jclass, jint aSvgProxyHandle, jint aPathHandle, - jfloat aX1, jfloat aY1, jfloat aX2, jfloat aY2, jfloat aX3, jfloat aY3 ) + jfloat aX1, jfloat aY1, jfloat aX2, jfloat aY2, jfloat aX3, jfloat aY3) { M2G_DEBUG_6("M2G_DEBUG: JNI ( M2GSVGPath ) _addCurveTo: X1=%f, Y1=%f, X2=%f, Y2=%f, X3=%f, Y3=%f - begin", aX1, aY1, aX2, aY2, aX3, aY3); TInt err = KM2GNotOk; TM2GPathCurveData curve; - curve[ 0 ] = STATIC_CAST(TReal32, aX1); - curve[ 1 ] = STATIC_CAST(TReal32, aY1); - curve[ 2 ] = STATIC_CAST(TReal32, aX2); - curve[ 3 ] = STATIC_CAST(TReal32, aY2); - curve[ 4 ] = STATIC_CAST(TReal32, aX3); - curve[ 5 ] = STATIC_CAST(TReal32, aY3); + curve[ 0 ] = STATIC_CAST(TReal32, aX1); + curve[ 1 ] = STATIC_CAST(TReal32, aY1); + curve[ 2 ] = STATIC_CAST(TReal32, aX2); + curve[ 3 ] = STATIC_CAST(TReal32, aY2); + curve[ 4 ] = STATIC_CAST(TReal32, aX3); + curve[ 5 ] = STATIC_CAST(TReal32, aY3); - M2G_DO_LOCK - if (aSvgProxyHandle) - { - MM2GSVGProxy* aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle); - TRAP(err, aProxy->AddCurveToL( + M2G_DO_LOCK + if (aSvgProxyHandle) + { + MM2GSVGProxy* aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle); + TRAP(err, aProxy->AddCurveToL( STATIC_CAST(TM2GSvgPathHandle, aPathHandle), - curve); ); - } + curve);); + } M2G_DO_UNLOCK(aJni) - + M2GGeneral::CheckErrorCode(aJni, err); M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGPath ) _addCurveTo - end"); } @@ -125,7 +125,7 @@ * @param aProxy Proxy instance. * @param aPathHandle Svg path handle * @param aX - - * @param aY - + * @param aY - */ JNIEXPORT void JNICALL Java_com_nokia_microedition_m2g_M2GSVGPath__1addLineTo( @@ -133,20 +133,20 @@ jclass, jint aSvgProxyHandle, jint aPathHandle, - jfloat aX, jfloat aY ) + jfloat aX, jfloat aY) { M2G_DEBUG_2("M2G_DEBUG: JNI ( M2GSVGPath ) _addLineTo: X=%f, Y=%f - begin", aX, aY); TInt err = KM2GNotOk; M2G_DO_LOCK if (aSvgProxyHandle) - { + { MM2GSVGProxy* aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle); - TRAP(err, aProxy->AddLineToL(STATIC_CAST(TM2GSvgPathHandle, aPathHandle), *(REINTERPRET_CAST(TReal32*, &aX)), *(REINTERPRET_CAST(TReal32*, &aY))); ); - - } + TRAP(err, aProxy->AddLineToL(STATIC_CAST(TM2GSvgPathHandle, aPathHandle), *(REINTERPRET_CAST(TReal32*, &aX)), *(REINTERPRET_CAST(TReal32*, &aY)));); + + } M2G_DO_UNLOCK(aJni) - + M2GGeneral::CheckErrorCode(aJni, err); M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGPath ) _addLineTo - end"); @@ -173,13 +173,13 @@ { M2G_DEBUG_2("M2G_DEBUG: JNI ( M2GSVGPath ) _addMoveTo: X=%f, Y=%f - begin", aX, aY); TInt err = KM2GNotOk; - + M2G_DO_LOCK if (aSvgProxyHandle) - { - MM2GSVGProxy * aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle); - TRAP(err, aProxy->AddMoveToL(STATIC_CAST(TM2GSvgPathHandle, aPathHandle), aX, aY) ); - } + { + MM2GSVGProxy * aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle); + TRAP(err, aProxy->AddMoveToL(STATIC_CAST(TM2GSvgPathHandle, aPathHandle), aX, aY)); + } M2G_DO_UNLOCK(aJni) M2GGeneral::CheckErrorCode(aJni, err); @@ -208,18 +208,18 @@ jfloat aX1, jfloat aY1, jfloat aX2, jfloat aY2) { M2G_DEBUG_4("M2G_DEBUG: JNI ( M2GSVGPath ) _addQuadTo: X1=%f, Y1=%f, X2=%f, Y2=%f - begin", aX1, aY1, aX2, aY2); - // TInt elementHandle = M2G_INVALID_HANDLE; + TInt err = KM2GNotOk; - + M2G_DO_LOCK if (aSvgProxyHandle) - { - MM2GSVGProxy * aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle); - TRAP(err, aProxy->AddQuadToL( - STATIC_CAST(TM2GSvgPathHandle, aPathHandle),aX1, aY1, aX2, aY2); ); - } + { + MM2GSVGProxy * aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle); + TRAP(err, aProxy->AddQuadToL( + STATIC_CAST(TM2GSvgPathHandle, aPathHandle),aX1, aY1, aX2, aY2);); + } M2G_DO_UNLOCK(aJni) - + M2GGeneral::CheckErrorCode(aJni, err); M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGPath ) _addQuadTo - end"); } @@ -243,13 +243,13 @@ TInt err = KM2GNotOk; TInt pathHandle = M2G_INVALID_HANDLE; - + M2G_DO_LOCK if (aSvgProxyHandle) - { - MM2GSVGProxy * aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle); - TRAP(err, aProxy->CreatePathL(pathHandle); ); - } + { + MM2GSVGProxy * aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle); + TRAP(err, aProxy->CreatePathL(pathHandle);); + } M2G_DO_UNLOCK(aJni) M2GGeneral::CheckErrorCode(aJni, err); @@ -275,14 +275,14 @@ { M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGPath ) _destroyPath: %d - begin", aPathHandle); TInt err = KM2GNotOk; - + M2G_DO_LOCK if (aSvgProxyHandle) - { + { MM2GSVGProxy * aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle); TRAP(err, aProxy->DestroyPathL( - STATIC_CAST(TM2GSvgPathHandle, STATIC_CAST(TM2GSvgPathHandle, aPathHandle))); ); - } + STATIC_CAST(TM2GSvgPathHandle, STATIC_CAST(TM2GSvgPathHandle, aPathHandle)));); + } M2G_DO_UNLOCK(aJni) M2GGeneral::CheckErrorCode(aJni, err); @@ -309,17 +309,17 @@ M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGPath ) _getNumberOfSegments - begin"); TInt err = KM2GNotOk; TInt numberOfSegments = 0; - + M2G_DO_LOCK if (aSvgProxyHandle) - { + { MM2GSVGProxy * aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle); TRAP(err, aProxy->GetNumberOfSegmentsL( - STATIC_CAST(TM2GSvgPathHandle, aPathHandle), - numberOfSegments); ); - } + STATIC_CAST(TM2GSvgPathHandle, aPathHandle), + numberOfSegments);); + } M2G_DO_UNLOCK(aJni) - + M2GGeneral::CheckErrorCode(aJni, err); M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGPath ) _getNumberOfSegments: %d - end", numberOfSegments); return STATIC_CAST(jint, numberOfSegments); @@ -347,14 +347,14 @@ M2G_DEBUG_2("M2G_DEBUG: JNI ( M2GSVGPath ) _getSegmentParameter: seg index=%d, param index=%d - begin", aSegmentIndex, aParamIndex); TInt err = KM2GNotOk; TReal32 segmentParam = 0; - + M2G_DO_LOCK if (aSvgProxyHandle) - { + { MM2GSVGProxy * aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle); TRAP(err, aProxy->GetSegmentParameterL( - STATIC_CAST(TM2GSvgPathHandle, aPathHandle), aSegmentIndex,aParamIndex, segmentParam); ); - } + STATIC_CAST(TM2GSvgPathHandle, aPathHandle), aSegmentIndex,aParamIndex, segmentParam);); + } M2G_DO_UNLOCK(aJni) M2GGeneral::CheckErrorCode(aJni, err); @@ -386,14 +386,14 @@ M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGPath ) _getSegmentType: index=%d - begin", aIndex); TInt err = KM2GNotOk; TInt16 aSegmentType = 0; - + M2G_DO_LOCK if (aSvgProxyHandle) - { + { MM2GSVGProxy * aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle); TRAP(err, aProxy->GetSegmentTypeL( - STATIC_CAST(TM2GSvgPathHandle, aPathHandle), aIndex,aSegmentType); ); - } + STATIC_CAST(TM2GSvgPathHandle, aPathHandle), aIndex,aSegmentType);); + } M2G_DO_UNLOCK(aJni) M2GGeneral::CheckErrorCode(aJni, err); diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/src/jni/M2GSVGSVGElement.cpp --- a/javauis/m2g_qt/src/jni/M2GSVGSVGElement.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/src/jni/M2GSVGSVGElement.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -61,17 +61,17 @@ M2G_DEBUG_0("JNI ( M2GSVGSVGElement ) _getMediaTime - begin"); TReal32 seconds = 0; TInt err = KM2GNotOk; - + M2G_DO_LOCK if (aSvgProxyHandle) - { + { MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); - TRAP(err, aProxy->GetMediaTimeL(STATIC_CAST(TM2GSvgDocumentHandle, aDocumentHandle),seconds); ); - } + TRAP(err, aProxy->GetMediaTimeL(STATIC_CAST(TM2GSvgDocumentHandle, aDocumentHandle),seconds);); + } M2G_DO_UNLOCK(aJni) M2GGeneral::CheckErrorCode(aJni, err); - + M2G_DEBUG_1("JNI ( M2GSVGSVGElement ) _getMediaTime: %f - end", seconds); return STATIC_CAST(jfloat, seconds); } @@ -98,19 +98,19 @@ { M2G_DEBUG_0("JNI ( M2GSVGSVGElement ) _setMediaTime - begin"); TInt err = KM2GNotOk; - + TReal32* lseconds = REINTERPRET_CAST(TReal32*, &aSeconds); - + M2G_DO_LOCK if (aSvgProxyHandle) - { + { MM2GSVGProxy* aProxy = JavaUnhand(aSvgProxyHandle); TRAP(err, aProxy->SetMediaTimeL( - STATIC_CAST(TM2GSvgDocumentHandle, aDocumentHandle), - *lseconds); ); - } + STATIC_CAST(TM2GSvgDocumentHandle, aDocumentHandle), + *lseconds);); + } M2G_DO_UNLOCK(aJni) - + M2GGeneral::CheckErrorCode(aJni, err); M2G_DEBUG_1("JNI ( M2GSVGSVGElement ) _setMediaTime: %f - end", aSeconds); diff -r d6dafc5d983f -r 1627c337e51e javauis/m2g_qt/src/jni/M2GScalableGraphics.cpp --- a/javauis/m2g_qt/src/jni/M2GScalableGraphics.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m2g_qt/src/jni/M2GScalableGraphics.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -53,53 +53,33 @@ * @param aRenderContextHandle Render context handle. * @param aTargetHandle Target graphics handle * @throws exception if not ok - -LOCAL_C void DoBindL(TInt aRenderContextHandle, TInt aTargetHandle, TBool aUiToolkit) -{ - MM2GRenderContext* rc = JavaUnhand(aRenderContextHandle); - rc->BindL(aTargetHandle, aUiToolkit); -} -*/ -/** - * JNI method - -JNIEXPORT jint JNICALL -Java_com_nokia_microedition_m2g_M2GScalableGraphics__1bind( - JNIEnv* aJni, - jobject, - jint aEventSourceHandle, - jint aRenderContextHandle, - jint aTargetHandle, - jboolean aUiToolkit) */ - - JNIEXPORT jint JNICALL Java_com_nokia_microedition_m2g_M2GScalableGraphics__1bind( JNIEnv* aJni, jobject, jint aRenderContextHandle, - jint aTargetHandle ) + jint aTargetHandle) { M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GScalableGraphics ) _bind - begin"); - + TInt err = KM2GNotOk; - + M2G_DO_LOCK - + if (aRenderContextHandle) - { + { MM2GRenderContext* rc = JavaUnhand(aRenderContextHandle); TRAP(err,rc->BindL(aTargetHandle);); - } + } M2G_DO_UNLOCK(aJni) - + M2GGeneral::CheckErrorCode(aJni, err); M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GScalableGraphics ) _bind: %d - end", err); - return err; + return err; } @@ -115,32 +95,28 @@ * @throws exception if not ok */ - - JNIEXPORT jint JNICALL Java_com_nokia_microedition_m2g_M2GScalableGraphics__1createRenderContext( JNIEnv* aJni, jobject, - jint aSvgProxyHandle ) + jint aSvgProxyHandle) { M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GScalableGraphics ) _createRenderContext - begin"); TInt handle = M2G_INVALID_HANDLE; TInt err = KM2GNotOk; - + M2G_DO_LOCK - + if (aSvgProxyHandle) - { - TRAP(err, MM2GRenderContext* rchandle = CM2GRenderContext::NewL(JavaUnhand (aSvgProxyHandle)); handle = JavaMakeHandle(rchandle); ); - } + { + TRAP(err, MM2GRenderContext* rchandle = CM2GRenderContext::NewL(JavaUnhand (aSvgProxyHandle)); handle = JavaMakeHandle(rchandle);); + } M2G_DO_UNLOCK(aJni) - + handle = M2GGeneral::CheckErrorCodeAndHandle(aJni, err, handle, err); M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GScalableGraphics ) _createRenderContext: %d - end", handle); - - return handle; } @@ -159,16 +135,16 @@ jint aRenderContextHandle) { M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GScalableGraphics ) _deleteRenderContext - begin"); - + M2G_DO_LOCK - + if (aRenderContextHandle) - { + { MM2GRenderContext* rc = JavaUnhand(aRenderContextHandle); delete rc; - } + } M2G_DO_UNLOCK(aJni) - + M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GScalableGraphics ) _deleteRenderContext - end"); } @@ -182,37 +158,30 @@ * @return KM2GOk if ok */ - -/** - * JNI method - */ JNIEXPORT jint JNICALL Java_com_nokia_microedition_m2g_M2GScalableGraphics__1release( JNIEnv* aJni, jobject, - jint aSurfaceHandle, + jint /*aSurfaceHandle*/, jint aRenderContextHandle) { - + // Release used target surface M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GScalableGraphics ) _release - begin"); TInt err = KM2GNotOk; M2G_DO_LOCK - + if (aRenderContextHandle) - { + { MM2GRenderContext* rc = JavaUnhand(aRenderContextHandle); TRAP(err,rc->ReleaseL();); - - } - M2G_DO_UNLOCK(aJni)//TODO Check for M2G_DO_LOCK M2G_DO_UNLOCK -//TODO just check it pankaj 8/9/2010 -// Java::GFX::WindowSurface* surf = reinterpret_cast(aSurfaceHandle); -// surf->release(); //TODO check This windows surface call detected from Graphics3d.inl + } + M2G_DO_UNLOCK(aJni) + M2GGeneral::CheckErrorCode(aJni, err); - - return err; - + + return err; + } // ----------------------------------------------------------------------------- // Java_com_nokia_microedition_m2g_M2GScalableGraphics::_render @@ -228,10 +197,6 @@ * @throws Exception if not ok */ - -/** - * JNI method - */ JNIEXPORT jint JNICALL Java_com_nokia_microedition_m2g_M2GScalableGraphics__1renderLCDUI( JNIEnv* aJni, @@ -249,15 +214,15 @@ TInt err = KM2GNotOk; M2G_DO_LOCK - + if (aRenderContextHandle && aDocumentHandle) - { - MM2GRenderContext* rc = JavaUnhand(aRenderContextHandle); - TRAP(err,rc->RenderLCDUIL(aDocumentHandle, aCurrentTime, aSvgW, aSvgH, rr);); - } + { + MM2GRenderContext* rc = JavaUnhand(aRenderContextHandle); + TRAP(err,rc->RenderLCDUIL(aDocumentHandle, aCurrentTime, aSvgW, aSvgH, rr);); + } M2G_DO_UNLOCK(aJni) - - M2GGeneral::CheckErrorCode(aJni, err); + + M2GGeneral::CheckErrorCode(aJni, err); M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GScalableGraphics ) _render: %d - end", err); return err; } @@ -280,23 +245,23 @@ TM2GRenderRect rr(aX, aY, aClipX, aClipY, aClipW, aClipH); TInt err = KM2GNotOk; jintArray returnDataJava = aJni->NewIntArray(10); - + M2G_DO_LOCK - + TInt returnData[10]; - + if (aRenderContextHandle && aDocumentHandle) - { + { MM2GRenderContext* rc = JavaUnhand(aRenderContextHandle); - TRAP(err,rc->RenderESWTL(aDocumentHandle,aCurrentTime,aSvgW,aSvgH,rr,aUseNativeClear,returnData);); - } + TRAP(err,rc->RenderESWTL(aDocumentHandle,aCurrentTime,aSvgW,aSvgH,rr,aUseNativeClear,returnData);); + } M2G_DO_UNLOCK(aJni) - + if (returnDataJava != NULL) aJni->SetIntArrayRegion(returnDataJava, 0, 10, const_cast(returnData)); - - M2GGeneral::CheckErrorCode(aJni, err); + + M2GGeneral::CheckErrorCode(aJni, err); M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GScalableGraphics ) _render: %d - end", err); return returnDataJava; } @@ -318,16 +283,16 @@ { M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GScalableGraphics ) _setRenderingQuality - begin"); TInt err = KM2GNotOk; - + M2G_DO_LOCK - - if ( aRenderContextHandle) - { + + if (aRenderContextHandle) + { MM2GRenderContext* rc = JavaUnhand(aRenderContextHandle); TRAP(err,rc->SetRenderingQualityL(aMode);); - } + } M2G_DO_UNLOCK(aJni) - + M2GGeneral::CheckErrorCode(aJni, err); M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GScalableGraphics ) _setRenderingQuality - end"); @@ -351,16 +316,16 @@ { M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GScalableGraphics ) _setTransparency - begin"); TInt err = KM2GNotOk; - + M2G_DO_LOCK - + if (aRenderContextHandle) - { + { MM2GRenderContext* rc = JavaUnhand(aRenderContextHandle); - TRAP(err,rc->SetTransparency( (TReal32)aAlpha );); - } + TRAP(err,rc->SetTransparency((TReal32)aAlpha);); + } M2G_DO_UNLOCK(aJni) - + M2GGeneral::CheckErrorCode(aJni, err); M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GScalableGraphics ) _setTransparency - end"); diff -r d6dafc5d983f -r 1627c337e51e javauis/m3g_qt/inc/m3g_jsr184.h --- a/javauis/m3g_qt/inc/m3g_jsr184.h Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m3g_qt/inc/m3g_jsr184.h Fri Oct 29 11:49:32 2010 +0300 @@ -27,7 +27,7 @@ # error includes Java dependencies; do not include into the core module. #endif -#include +#include #if defined(__cplusplus) extern "C" diff -r d6dafc5d983f -r 1627c337e51e javauis/m3g_qt/src/jni/image2d.inl --- a/javauis/m3g_qt/src/jni/image2d.inl Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/m3g_qt/src/jni/image2d.inl Fri Oct 29 11:49:32 2010 +0300 @@ -65,20 +65,11 @@ if (aImageHandle != 0) { Java::GFX::Image* cgfxImage = reinterpret_cast(aImageHandle); - QImage qtImage; - - if (!cgfxImage) + QImage qtImage = cgfxImage->toImage(); + if (qtImage.isNull()) { return 0; } - else - { - qtImage = cgfxImage->toImage(); - if (qtImage.isNull()) - { - return 0; - } - } // m3g needs format in 32bpp, i.e. in RGB32 or ARGB32 so // if format is not one of those convert it here @@ -102,6 +93,7 @@ image = m3gCreateImage((M3GInterface)aHM3g, (M3GImageFormat)aFormat, width, height, 0); if (image == NULL) { + M3G_DO_UNLOCK(aEnv) return 0; // exception automatically raised } @@ -109,6 +101,7 @@ if (tempPixels == NULL) { m3gDeleteObject((M3GObject) image); + M3G_DO_UNLOCK(aEnv) return 0; } @@ -186,6 +179,7 @@ if (image == NULL) { M3G_RAISE_EXCEPTION(aEnv, "java/lang/OutOfMemoryError"); + M3G_DO_UNLOCK(aEnv) return 0; } @@ -199,6 +193,7 @@ aEnv->ReleaseByteArrayElements(aImage, image, JNI_ABORT); } M3G_RAISE_EXCEPTION(aEnv, "java/lang/OutOfMemoryError"); + M3G_DO_UNLOCK(aEnv) return 0; } diff -r d6dafc5d983f -r 1627c337e51e javauis/nokiauiapi_qt/inc/CSoftNotification.h --- a/javauis/nokiauiapi_qt/inc/CSoftNotification.h Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/nokiauiapi_qt/inc/CSoftNotification.h Fri Oct 29 11:49:32 2010 +0300 @@ -14,7 +14,7 @@ #include #include -#include +#include #include NONSHARABLE_CLASS(CSoftNotification) : public CBase, diff -r d6dafc5d983f -r 1627c337e51e javauis/nokiauiapi_qt/javasrc/com/nokia/mid/ui/DeviceControl.java --- a/javauis/nokiauiapi_qt/javasrc/com/nokia/mid/ui/DeviceControl.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/nokiauiapi_qt/javasrc/com/nokia/mid/ui/DeviceControl.java Fri Oct 29 11:49:32 2010 +0300 @@ -207,11 +207,9 @@ { public void run() { - System.out.println("Java Nokia UI API flashLights duration = "+duration); OS.MobileDevice_flashLights( Internal_PackageSupport.initializeMobileDevice( Internal_PackageSupport.getDisplayInstance()),duration); - System.out.println("Java Nokia UI API End flashLights "); } }); } @@ -291,11 +289,9 @@ { public void run() { - System.out.println("Java Nokia UI API start vibra with duration = "+vibraDuration); vibraSupported = OS.MobileDevice_vibration( Internal_PackageSupport.initializeMobileDevice( Internal_PackageSupport.getDisplayInstance()),vibraDuration); - System.out.println("Java Nokia UI API End vibra "); } }); } diff -r d6dafc5d983f -r 1627c337e51e javauis/nokiauiapi_qt/javasrc_j2me/com/nokia/mid/ui/TactileFeedback.java --- a/javauis/nokiauiapi_qt/javasrc_j2me/com/nokia/mid/ui/TactileFeedback.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/nokiauiapi_qt/javasrc_j2me/com/nokia/mid/ui/TactileFeedback.java Fri Oct 29 11:49:32 2010 +0300 @@ -100,13 +100,13 @@ */ public static final int FEEDBACK_STYLE_SENSITIVE = 2; - private final String invalidFeedbackStyleMsg = "Invalid feedback style specified"; - private final String invalidControlTypeMsg = "Invalid object provided for tactile feedback registration"; + private static final String MSG_INVALID_FEEDBACK_STYLE = "Invalid feedback style specified"; + private static final String MSG_INVALID_OBJECT_TYPE = "Invalid object provided for tactile feedback registration"; private static final int TYPE_INVALID = 0; private static final int TYPE_ESWT = 1; private static final int TYPE_LCDUI = 2; - private static boolean feedbackEnabled; + private volatile boolean feedbackEnabled; /** * Constructs tactile feedback engine object. The object may be used in both @@ -131,7 +131,7 @@ { if ((style != FEEDBACK_STYLE_BASIC) && (style != FEEDBACK_STYLE_SENSITIVE)) - throw new IllegalArgumentException(invalidFeedbackStyleMsg); + throw new IllegalArgumentException(MSG_INVALID_FEEDBACK_STYLE); if (org.eclipse.swt.widgets.Display.getCurrent() == null) { final int fStyle = style; @@ -241,11 +241,11 @@ { int type = controlType(uiObject); if (type == TYPE_INVALID) - throw new IllegalArgumentException(invalidControlTypeMsg); + throw new IllegalArgumentException(MSG_INVALID_OBJECT_TYPE); if ((style != FEEDBACK_STYLE_BASIC) && (style != FEEDBACK_STYLE_SENSITIVE)) - throw new IllegalArgumentException(invalidFeedbackStyleMsg); + throw new IllegalArgumentException(MSG_INVALID_FEEDBACK_STYLE); int controlHandle = getControlHandle(uiObject); if (type == TYPE_LCDUI) @@ -299,7 +299,7 @@ int type = controlType(uiObject); if (type == TYPE_INVALID) - throw new IllegalArgumentException(invalidControlTypeMsg); + throw new IllegalArgumentException(MSG_INVALID_OBJECT_TYPE); int controlHandle = getControlHandle(uiObject); if (type == TYPE_LCDUI) @@ -343,7 +343,7 @@ int type = controlType(uiObject); if (type == TYPE_INVALID) - throw new IllegalArgumentException(invalidControlTypeMsg); + throw new IllegalArgumentException(MSG_INVALID_OBJECT_TYPE); int controlHandle = getControlHandle(uiObject); @@ -395,7 +395,7 @@ int type = controlType(uiObject); if (type == TYPE_INVALID) - throw new IllegalArgumentException(invalidControlTypeMsg); + throw new IllegalArgumentException(MSG_INVALID_OBJECT_TYPE); int controlHandle = getControlHandle(uiObject); if (type == TYPE_LCDUI) diff -r d6dafc5d983f -r 1627c337e51e javauis/nokiauiapi_qt/softindicatorplugin/src/javasoftindicator.cpp --- a/javauis/nokiauiapi_qt/softindicatorplugin/src/javasoftindicator.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/nokiauiapi_qt/softindicatorplugin/src/javasoftindicator.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -226,7 +226,7 @@ } catch (JavaStorageException& ex) { - LOG1(EJavaStorage, EInfo," JavaSoftNote Exception %s", ex.toString()); + LOG1(EJavaStorage, EInfo," JavaSoftNote Exception %S", ex.toString().c_str()); } } diff -r d6dafc5d983f -r 1627c337e51e javauis/nokiauiapi_qt/softnoteplugin/src/javasoftnotehandler.cpp --- a/javauis/nokiauiapi_qt/softnoteplugin/src/javasoftnotehandler.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/nokiauiapi_qt/softnoteplugin/src/javasoftnotehandler.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -12,7 +12,7 @@ #include #include #include -#include +#include #include #include @@ -110,10 +110,10 @@ // ---------------------------------------------------------------------------- // javasoftnotehandler::amAdded // ---------------------------------------------------------------------------- -void javasoftnotehandler::amAdded(const uids_t& aUids) +void javasoftnotehandler::amAdded(const uids_t& /*aUids*/) { JELOG2(EJavaCaptain); - LOG1(EJavaCaptain, EInfo, "javasoftnotehandler::amAdded, %d uids", aUids.size()); + LOG(EJavaCaptain, EInfo, "javasoftnotehandler::amAdded"); } // ---------------------------------------------------------------------------- @@ -236,7 +236,7 @@ } catch(JavaStorageException& ex) { - LOG1(EJavaStorage, EInfo," JavaSoftNote Exception %s", ex.toString()); + LOG1(EJavaStorage, EInfo," JavaSoftNote Exception %S", ex.toString().c_str()); } } @@ -294,7 +294,7 @@ } catch(JavaStorageException& ex) { - LOG1(EJavaStorage, EInfo," JavaSoftNote Exception %s", ex.toString()); + LOG1(EJavaStorage, EInfo," JavaSoftNote Exception %s", ex.toString().c_str()); } } diff -r d6dafc5d983f -r 1627c337e51e javauis/nokiauiapi_qt/src/CGlobalIndicators.cpp --- a/javauis/nokiauiapi_qt/src/CGlobalIndicators.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/nokiauiapi_qt/src/CGlobalIndicators.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -39,10 +39,10 @@ const TInt KPropertyGlobalIndicatorUninitialized = 0; //com_nokia_mid_ui_GlobalIndicators_INDICATOR_UNINITIALIZED; -const TInt KPropertyGlobalIndicatorHide = 0; +//const TInt KPropertyGlobalIndicatorHide = 0; //com_nokia_mid_ui_GlobalIndicators_INDICATOR_HIDE; -const TInt KPropertyGlobalIndicatorShow = 0; +//const TInt KPropertyGlobalIndicatorShow = 0; //com_nokia_mid_ui_GlobalIndicators_INDICATOR_SHOW; } @@ -57,10 +57,10 @@ // Sets the value for given global indicator. // ----------------------------------------------------------------------------- // -TInt CGlobalIndicators::SetGlobalIndicator(TInt aIndicator, TInt aValue) +TInt CGlobalIndicators::SetGlobalIndicator(TInt /*aIndicator*/, TInt /*aValue*/) { - LOG2(EJavaGlobalInd, EInfo, + /* LOG2(EJavaGlobalInd, EInfo, "GlobalIndicators::SetGlobalIndicator indicator:%d, value:%d", aIndicator, aValue); @@ -76,9 +76,9 @@ { //convertedIndicator = KCoreAppUIsUipInd; } - +*/ TInt readValue = KPropertyGlobalIndicatorUninitialized; - RProperty property; + //RProperty property; /* TInt ret = property.Attach(KPSUidCoreApplicationUIs, convertedIndicator); if (KErrNone == ret) diff -r d6dafc5d983f -r 1627c337e51e javauis/nokiauiapi_qt/src/CSoftNotification.cpp --- a/javauis/nokiauiapi_qt/src/CSoftNotification.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/nokiauiapi_qt/src/CSoftNotification.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -112,7 +112,7 @@ } catch (JavaStorageException& ex) { - LOG1(EJavaStorage, EInfo," JavaSoftNote Exception %s", ex.toString()); + LOG1(EJavaStorage, EInfo," JavaSoftNote Exception %S", ex.toString().c_str()); } if(!iIsNoteExist && iNotificationId == 0) @@ -469,6 +469,6 @@ } catch (JavaStorageException& ex) { - LOG1(EJavaStorage, EInfo," JavaSoftNote Exception %s", ex.toString()); + LOG1(EJavaStorage, EInfo," JavaSoftNote Exception %S", ex.toString().c_str()); } } diff -r d6dafc5d983f -r 1627c337e51e javauis/nokiauiapi_qt/src/os.cpp --- a/javauis/nokiauiapi_qt/src/os.cpp Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/nokiauiapi_qt/src/os.cpp Fri Oct 29 11:49:32 2010 +0300 @@ -14,7 +14,7 @@ #include #include #include "autorelease.h" -#include "csoftnotification.h" +#include "CSoftNotification.h" static CCoeControl* convertToSymbian(QWidget* window) { @@ -172,29 +172,31 @@ Java_com_nokia_mj_impl_nokiauiapi_OS_setText(JNIEnv* aJniEnv, jclass /*aPeer*/, jint aSoftNotificationHandle, jstring aPrimaryText, jstring aSecondaryText) { + if (aPrimaryText == NULL || aSecondaryText == NULL) + { + // These arguments are checked already on Java side, no need to try + // to recover from NULL strings. + return KErrArgument; + } + CSoftNotification* softNotification = reinterpret_cast (aSoftNotificationHandle); // Convert from java string to Symbian descriptor HBufC* bufferPrimaryText = NULL; - if (aPrimaryText != NULL) + bufferPrimaryText = JavaStringToSymbianString(aJniEnv, aPrimaryText); + if (bufferPrimaryText == NULL) { - bufferPrimaryText = JavaStringToSymbianString(aJniEnv, aPrimaryText); - if (bufferPrimaryText == NULL) - { - return KErrNoMemory; - } + return KErrNoMemory; } HBufC* bufferSecondaryText = NULL; - if (aSecondaryText != NULL) + bufferSecondaryText = JavaStringToSymbianString(aJniEnv, + aSecondaryText); + if (bufferSecondaryText == NULL) { - bufferSecondaryText = JavaStringToSymbianString(aJniEnv, - aSecondaryText); - if (bufferSecondaryText == NULL) - { - return KErrNoMemory; - } + return KErrNoMemory; } + TRAPD(err,softNotification->SetTextL(*bufferPrimaryText, *bufferSecondaryText)); return err; } @@ -232,18 +234,21 @@ Java_com_nokia_mj_impl_nokiauiapi_OS_setImagePath(JNIEnv* aJniEnv, jclass /*aPeer*/, jint aSoftNotificationHandle, jstring aImagePath ) { + if (aImagePath == NULL) + { + return KErrArgument; + } + CSoftNotification* softNotification = reinterpret_cast (aSoftNotificationHandle); // Convert from java string to Symbian descriptor HBufC* bufferImagePath = NULL; - if (aImagePath != NULL) + bufferImagePath = JavaStringToSymbianString(aJniEnv, aImagePath); + if (bufferImagePath == NULL) { - bufferImagePath = JavaStringToSymbianString(aJniEnv, aImagePath); - if (bufferImagePath == NULL) - { - return KErrNoMemory; - } + return KErrNoMemory; } + TRAPD(err,softNotification->SetImagePathL(*bufferImagePath)); return err; } diff -r d6dafc5d983f -r 1627c337e51e javauis/tsrc/fute/doc/LCDUI_Functional_Test_Cases.xls Binary file javauis/tsrc/fute/doc/LCDUI_Functional_Test_Cases.xls has changed diff -r d6dafc5d983f -r 1627c337e51e javauis/tsrc/fute/doc/eSWT_Functional_Test_Cases.xls Binary file javauis/tsrc/fute/doc/eSWT_Functional_Test_Cases.xls has changed diff -r d6dafc5d983f -r 1627c337e51e javauis/tsrc/fute/lcdui/Midp_StringItem_01/build.xml --- a/javauis/tsrc/fute/lcdui/Midp_StringItem_01/build.xml Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/tsrc/fute/lcdui/Midp_StringItem_01/build.xml Fri Oct 29 11:49:32 2010 +0300 @@ -25,13 +25,47 @@ + + + + + + - + - - + + + + + + + + + + + + + + + + + \ No newline at end of file diff -r d6dafc5d983f -r 1627c337e51e javauis/tsrc/fute/lcdui/Midp_StringItem_01/src/FormStringItemTests.java --- a/javauis/tsrc/fute/lcdui/Midp_StringItem_01/src/FormStringItemTests.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/tsrc/fute/lcdui/Midp_StringItem_01/src/FormStringItemTests.java Fri Oct 29 11:49:32 2010 +0300 @@ -155,13 +155,13 @@ */ public void commandAction(Command c, Displayable s) { - if (c == cmdBack) + if(c == cmdBack) { label.setString(null); text.setString(null); Display.getDisplay(m).setCurrent(this); } - else if (c == cmdLongText) + else if(c == cmdLongText) { String longString = "This is a really long string. Check that you can successfully" + " read the last line (congratulations).\n" + @@ -208,69 +208,69 @@ stringItemForm.append(si); Display.getDisplay(m).setCurrent(stringItemForm); } - else if (c == cmdNext) + else if(c == cmdNext) { change++; changeForm(); } - else if (c == cmdRemoveCommand) + else if(c == cmdRemoveCommand) { Item item = null; item = stringItemForm.get(0); item.removeCommand(cmdUnlock); item.removeCommand(cmdItem); } - else if (c == cmdRestoreCommand) + else if(c == cmdRestoreCommand) { Item item = null; item = stringItemForm.get(0); item.addCommand(cmdUnlock); item.setDefaultCommand(cmdItem); } - else if (c == cmdRemoveItem) + else if(c == cmdRemoveItem) { stringItemForm.delete(0); } - else if (c == cmdLayout) + else if(c == cmdLayout) { layoutTest(Item.PLAIN); } - else if (c == cmdLayoutHL) + else if(c == cmdLayoutHL) { layoutTest(Item.HYPERLINK); } - else if (c == cmdLayoutButton) + else if(c == cmdLayoutButton) { layoutTest(Item.BUTTON); } - else if (c == cmdVLayout) + else if(c == cmdVLayout) { verticalLayoutTest(Item.PLAIN); } - else if (c == cmdVLayoutHL) + else if(c == cmdVLayoutHL) { verticalLayoutTest(Item.HYPERLINK); } - else if (c == cmdVLayoutButton) + else if(c == cmdVLayoutButton) { verticalLayoutTest(Item.BUTTON); } - else if (c == cmdAddListeners) + else if(c == cmdAddListeners) { int size = stringItemForm.size(); - for (int i = 0; i < size; i++) + for(int i = 0; i < size; i++) { Item item = null; item = stringItemForm.get(i); item.setItemCommandListener(this); } } - else if (c == cmdExit) + else if(c == cmdExit) { m.destroyApp(false); m.notifyDestroyed(); } - else if (c == cmdScreenF) + else if(c == cmdScreenF) { stringItemForm.addCommand(cmdItemF); stringItemForm.addCommand(cmdOkF); @@ -283,68 +283,68 @@ String lo = cg.getString(index); int layout = 0; - if (c == cmdCreate) + if(c == cmdCreate) si = new StringItem(l, t); - else if (c == cmdCreateHL || c == cmdCreateHLM) + else if(c == cmdCreateHL || c == cmdCreateHLM) { si = new StringItem(l, t, Item.HYPERLINK); si.setDefaultCommand(cmdItem); } - else if (c == cmdCreateButton || c == cmdCreateButtonM) + else if(c == cmdCreateButton || c == cmdCreateButtonM) { si = new StringItem(l, t, Item.BUTTON); si.setDefaultCommand(cmdItem); } - if (lo.equals(cgTypes[0])) + if(lo.equals(cgTypes[0])) { layout = Item.LAYOUT_DEFAULT; } - else if (lo.equals(cgTypes[1])) + else if(lo.equals(cgTypes[1])) { layout = Item.LAYOUT_LEFT; } - else if (lo.equals(cgTypes[2])) + else if(lo.equals(cgTypes[2])) { layout = Item.LAYOUT_RIGHT; } - else if (lo.equals(cgTypes[3])) + else if(lo.equals(cgTypes[3])) { layout = Item.LAYOUT_CENTER; } - else if (lo.equals(cgTypes[4])) + else if(lo.equals(cgTypes[4])) { layout = Item.LAYOUT_TOP; } - else if (lo.equals(cgTypes[5])) + else if(lo.equals(cgTypes[5])) { layout = Item.LAYOUT_BOTTOM; } - else if (lo.equals(cgTypes[6])) + else if(lo.equals(cgTypes[6])) { layout = Item.LAYOUT_VCENTER; } - else if (lo.equals(cgTypes[7])) + else if(lo.equals(cgTypes[7])) { layout = Item.LAYOUT_NEWLINE_BEFORE; } - else if (lo.equals(cgTypes[8])) + else if(lo.equals(cgTypes[8])) { layout = Item.LAYOUT_NEWLINE_AFTER; } - else if (lo.equals(cgTypes[9])) + else if(lo.equals(cgTypes[9])) { layout = Item.LAYOUT_SHRINK; } - else if (lo.equals(cgTypes[10])) + else if(lo.equals(cgTypes[10])) { layout = Item.LAYOUT_VSHRINK; } - else if (lo.equals(cgTypes[11])) + else if(lo.equals(cgTypes[11])) { layout = Item.LAYOUT_EXPAND; } - else if (lo.equals(cgTypes[12])) + else if(lo.equals(cgTypes[12])) { layout = Item.LAYOUT_VEXPAND; } @@ -355,7 +355,7 @@ stringItemForm.addCommand(cmdRemoveCommand); stringItemForm.addCommand(cmdRestoreCommand); stringItemForm.addCommand(cmdRemoveItem); - if (c == cmdCreateButtonM || c == cmdCreateHLM) + if(c == cmdCreateButtonM || c == cmdCreateHLM) { si.addCommand(cmdBack); } @@ -364,32 +364,32 @@ } public void commandAction(Command c, Item i) { - if (c == cmdBack) + if(c == cmdBack) { label.setString(null); text.setString(null); Display.getDisplay(m).setCurrent(this); } - else if (c == cmdUnlock) + else if(c == cmdUnlock) { i.setPreferredSize(-1,-1); } - else if (c == cmdItem) + else if(c == cmdItem) { i.setLabel(i.getLabel() + "."); } } private void setSize(String width, String height) { - if (width.equals("") && height.equals("")) + if(width.equals("") && height.equals("")) { si.setPreferredSize(-1,-1); } - else if (height.equals("")) + else if(height.equals("")) { si.setPreferredSize(Integer.parseInt(width),-1); } - else if (width.equals("")) + else if(width.equals("")) { si.setPreferredSize(-1,Integer.parseInt(height)); } @@ -417,7 +417,7 @@ si5.setLayout(StringItem.LAYOUT_EXPAND | StringItem.LAYOUT_NEWLINE_BEFORE); si5.setDefaultCommand(cmdBack); - if (mode != Item.PLAIN) + if(mode != Item.PLAIN) { si.setDefaultCommand(cmdBack); si2.setDefaultCommand(cmdBack); @@ -438,7 +438,7 @@ stringItemForm.deleteAll(); si = new StringItem("Default","String",mode); Spacer sp = new Spacer(10, this.getHeight()); - if (mode != Item.PLAIN) + if(mode != Item.PLAIN) { si.setDefaultCommand(cmdBack); } @@ -451,7 +451,7 @@ private void changeForm() { - switch (change) + switch(change) { case -1: stringItemForm.setTitle("Default"); diff -r d6dafc5d983f -r 1627c337e51e javauis/tsrc/fute/lcdui/Midp_StringItem_01/src/StringItemTests1.java --- a/javauis/tsrc/fute/lcdui/Midp_StringItem_01/src/StringItemTests1.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/tsrc/fute/lcdui/Midp_StringItem_01/src/StringItemTests1.java Fri Oct 29 11:49:32 2010 +0300 @@ -54,6 +54,8 @@ // Commands for the StringItems private Command cmdItem1 = new Command("Itemcommand1", Command.ITEM, 1); private Command cmdItem2 = new Command("Itemcommand2", Command.ITEM, 1); + // Command to exit the MIDlet + private Command cmdExit = new Command("Exit", Command.EXIT, 1); /** * Signals the MIDlet to start and enter the Active state. @@ -75,6 +77,7 @@ stringItemForm.addCommand(cmd07); stringItemForm.addCommand(cmd08); stringItemForm.addCommand(cmd09); + stringItemForm.addCommand(cmdExit); stringItemForm.setCommandListener(this); Display.getDisplay(this).setCurrent(stringItemForm); } @@ -103,14 +106,14 @@ */ public void commandAction(Command c, Displayable s) { - if (c == cmdSI1) + if(c == cmdSI1) { // Plain type stringItemForm.deleteAll(); si = new StringItem("Label", "Text"); stringItemForm.append(si); } - else if (c == cmdSI2) + else if(c == cmdSI2) { // Hyperlink type stringItemForm.deleteAll(); @@ -120,7 +123,7 @@ si.addCommand(cmdItem2); si.setItemCommandListener(this); } - else if (c == cmdSI3) + else if(c == cmdSI3) { // Button type stringItemForm.deleteAll(); @@ -130,22 +133,22 @@ si.addCommand(cmdItem2); si.setItemCommandListener(this); } - else if (c == cmd01) + else if(c == cmd01) { si.setLabel("This is the label"); si.setText("This is the text."); } - else if (c == cmd02) + else if(c == cmd02) { si.setLabel(""); si.setText("This is the text."); } - else if (c == cmd03) + else if(c == cmd03) { si.setLabel(" "); si.setText("This is the text."); } - else if (c == cmd04) + else if(c == cmd04) { si.setLabel("This is the label"); si.setText("This is a very long text. " + @@ -156,27 +159,27 @@ "This is a very long text. " + "This is a very long text."); } - else if (c == cmd05) + else if(c == cmd05) { si.setLabel("Label with 1\nnewline char"); si.setText("This is the text."); } - else if (c == cmd06) + else if(c == cmd06) { si.setLabel("Label with 2\n\nnewline chars"); si.setText("This is the text."); } - else if (c == cmd07) + else if(c == cmd07) { si.setLabel("This is the label"); si.setText("Text with 1\nnewline char."); } - else if (c == cmd08) + else if(c == cmd08) { si.setLabel("This is the label"); si.setText("Text with 2\n\nnewline chars."); } - else if (c == cmd09) + else if(c == cmd09) { si.setText("This is the text."); si.setLabel("This is a very long label. " + @@ -187,6 +190,10 @@ "This is a very long label. " + "This is a very long label."); } + else if(c == cmdExit) + { + this.notifyDestroyed(); + } } public void commandAction(Command c, Item i) diff -r d6dafc5d983f -r 1627c337e51e javauis/tsrc/fute/lcdui/Midp_StringItem_01/src/StringItemTests2.java --- a/javauis/tsrc/fute/lcdui/Midp_StringItem_01/src/StringItemTests2.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/tsrc/fute/lcdui/Midp_StringItem_01/src/StringItemTests2.java Fri Oct 29 11:49:32 2010 +0300 @@ -63,6 +63,8 @@ // Commands for the StringItems private Command cmdItem1 = new Command("Itemcommand1", Command.ITEM, 1); private Command cmdItem2 = new Command("Itemcommand2", Command.ITEM, 1); + // Command to exit the MIDlet + private Command cmdExit = new Command("Exit", Command.EXIT, 1); /** * Signals the MIDlet to start and enter the Active state. @@ -81,6 +83,7 @@ mainForm.addCommand(cmdAdd); mainForm.addCommand(cmdForward); + mainForm.addCommand(cmdExit); mainForm.setCommandListener(this); stringItemForm.addCommand(cmdBack); stringItemForm.addCommand(cmdClear); @@ -112,17 +115,17 @@ */ public void commandAction(Command c, Displayable s) { - if (c == cmdAdd) + if(c == cmdAdd) { // Create correct type of stringitem int index = cgType.getSelectedIndex(); - if (index == 0) + if(index == 0) si = new StringItem("", "", Item.PLAIN); else { - if (index == 1) + if(index == 1) si = new StringItem("", "", Item.HYPERLINK); - else if (index == 2) + else if(index == 2) si = new StringItem("", "", Item.BUTTON); si.addCommand(cmdItem1); si.addCommand(cmdItem2); @@ -131,7 +134,7 @@ // Set the label index = cgLabel.getSelectedIndex(); - if (index == 0) + if(index == 0) si.setLabel(""); else si.setLabel(cgLabel.getString(index)); @@ -142,18 +145,22 @@ Display.getDisplay(this).setCurrent(stringItemForm); } - else if (c == cmdBack) + else if(c == cmdBack) { Display.getDisplay(this).setCurrent(mainForm); } - else if (c == cmdClear) + else if(c == cmdClear) { stringItemForm.deleteAll(); } - else if (c == cmdForward) + else if(c == cmdForward) { Display.getDisplay(this).setCurrent(stringItemForm); } + else if(c == cmdExit) + { + this.notifyDestroyed(); + } } public void commandAction(Command c, Item i) diff -r d6dafc5d983f -r 1627c337e51e javauis/tsrc/fute/lcdui/Midp_TextBox_01/build.xml --- a/javauis/tsrc/fute/lcdui/Midp_TextBox_01/build.xml Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/tsrc/fute/lcdui/Midp_TextBox_01/build.xml Fri Oct 29 11:49:32 2010 +0300 @@ -28,10 +28,65 @@ - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff -r d6dafc5d983f -r 1627c337e51e javauis/tsrc/fute/lcdui/Midp_TextBox_01/src/ScreenTextBoxTests.java --- a/javauis/tsrc/fute/lcdui/Midp_TextBox_01/src/ScreenTextBoxTests.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/tsrc/fute/lcdui/Midp_TextBox_01/src/ScreenTextBoxTests.java Fri Oct 29 11:49:32 2010 +0300 @@ -226,6 +226,7 @@ listConstraints.setCommandListener(this); listConstraints.addCommand(cmdBack); listConstraints.addCommand(cmdOk); + listConstraints.setSelectCommand(cmdOk); Display.getDisplay(parent).setCurrent(listConstraints); } diff -r d6dafc5d983f -r 1627c337e51e javauis/tsrc/fute/lcdui/Midp_TextField_05/build.xml --- a/javauis/tsrc/fute/lcdui/Midp_TextField_05/build.xml Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/tsrc/fute/lcdui/Midp_TextField_05/build.xml Fri Oct 29 11:49:32 2010 +0300 @@ -28,7 +28,7 @@ - + diff -r d6dafc5d983f -r 1627c337e51e javauis/tsrc/fute/lcdui/Midp_TextField_05/src/TextFieldTests.java --- a/javauis/tsrc/fute/lcdui/Midp_TextField_05/src/TextFieldTests.java Fri Oct 15 12:29:39 2010 +0300 +++ b/javauis/tsrc/fute/lcdui/Midp_TextField_05/src/TextFieldTests.java Fri Oct 29 11:49:32 2010 +0300 @@ -150,10 +150,10 @@ tf4.setInitialInputMode("UCB_HEBREW"); tf5.setLabel("UCB_ARABIC"); - tf4.setInitialInputMode("UCB_ARABIC"); + tf5.setInitialInputMode("UCB_ARABIC"); tf6.setLabel("UCB_THAI"); - tf4.setInitialInputMode("UCB_THAI"); + tf6.setInitialInputMode("UCB_THAI"); append(tf1); append(tf2); append(tf3); @@ -188,10 +188,10 @@ tf4.setInitialInputMode("IS_FULLWIDTH_LATIN"); tf5.setLabel("IS_HALFWIDTH_KATAKANA"); - tf4.setInitialInputMode("IS_HALFWIDTH_KATAKANA"); + tf5.setInitialInputMode("IS_HALFWIDTH_KATAKANA"); tf6.setLabel("IS_KANJI"); - tf4.setInitialInputMode("IS_KANJI"); + tf6.setInitialInputMode("IS_KANJI"); append(tf1); append(tf2); diff -r d6dafc5d983f -r 1627c337e51e rom/java_2_2_S60_50.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rom/java_2_2_S60_50.iby Fri Oct 29 11:49:32 2010 +0300 @@ -0,0 +1,421 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - Initial contribution +* +* Contributors: +* +* Description: +* Image-description file of the Java package for ROFS1. +* This version is for making S60 5.0 image that contains Jrt 2.2 +*/ + +#ifndef __JAVA_IBY__ +#define __JAVA_IBY__ + +#include + +// Helper defines +define JAVA_RES_BLD ABI_DIR\BUILD_DIR\z\resource\java +define JAVA_RES_IMG RESOURCE_FILES_DIR\java +define JAVA_VM_RES_BLD JAVA_RES_BLD\jvm\lib\jrt +define JAVA_VM_RES_IMG JAVA_RES_IMG\jvm\lib\jrt +define JAVA_POLICY_BLD ABI_DIR\BUILD_DIR\z\resource\java\security\policies +define JAVA_POLICY_IMG RESOURCE_FILES_DIR\java\security\policies + + +/////////////////////////////////////////////////////////// +// 5.0 binaries needed by 3D, we must put these to ROM // +/////////////////////////////////////////////////////////// + +#include +#include + + +//////////////////////////// +// Java Manager collection// +//////////////////////////// + +// stub sis +data=ZSYSTEM\install\java.sis System\Install\java.sis + + +// Captain +file=ABI_DIR\BUILD_DIR\javacaptain_ext_autostarter.dll SHARED_LIB_DIR\javacaptain_ext_autostarter.dll +file=ABI_DIR\BUILD_DIR\javacaptain_ext_btdeviceclassmanager.dll SHARED_LIB_DIR\javacaptain_ext_btdeviceclassmanager.dll +file=ABI_DIR\BUILD_DIR\javacaptain_ext_config.dll SHARED_LIB_DIR\javacaptain_ext_config.dll +// file=ABI_DIR\BUILD_DIR\javacaptain_ext_ondemand_2.dll SHARED_LIB_DIR\javacaptain_ext_ondemand_2.dll +file=ABI_DIR\BUILD_DIR\javacaptain_ext_ondemand_7.dll SHARED_LIB_DIR\javacaptain_ext_ondemand_7.dll +file=ABI_DIR\BUILD_DIR\javacaptain_ext_preinstallerstarter.dll SHARED_LIB_DIR\javacaptain_ext_preinstallerstarter.dll +file=ABI_DIR\BUILD_DIR\javacaptain_ext_pushregistryplugin.dll SHARED_LIB_DIR\javacaptain_ext_pushregistryplugin.dll +file=ABI_DIR\BUILD_DIR\javacaptain_ext_storageserverplugin.dll SHARED_LIB_DIR\javacaptain_ext_storageserverplugin.dll +file=ABI_DIR\BUILD_DIR\javacaptain_ext_settingslistener.dll SHARED_LIB_DIR\javacaptain_ext_settingslistener.dll +file=ABI_DIR\BUILD_DIR\javacaptain.exe PROGRAMS_DIR\javacaptain.exe + +// Registry +file=ABI_DIR\BUILD_DIR\javaregistryclient.dll SHARED_LIB_DIR\javaregistryclient.dll +file=ABI_DIR\BUILD_DIR\javasizehelperclient.dll SHARED_LIB_DIR\javasizehelperclient.dll +file=ABI_DIR\BUILD_DIR\javasizehelperserver.dll SHARED_LIB_DIR\javasizehelperserver.dll + +// Installer +ECOM_PLUGIN(ifeui.dll,ifeui.rsc) +data=ZRESOURCE\plugins\ifeui.rsc ECOM_RESOURCE_DIR\ifeui.rsc +data=ZPRIVATE\10003a3f\apps\javainstaller_reg.rsc \private\10003a3f\import\apps\javainstaller_reg.rsc +data=ZRESOURCE\apps\javainstaller_loc.rsc APP_RESOURCE_DIR\javainstaller_loc.rsc +data=ZRESOURCE\apps\javainstaller_icon.mif APP_BITMAP_DIR\javainstaller_icon.mif +file=ABI_DIR\BUILD_DIR\javainstaller.dll SHARED_LIB_DIR\javainstaller.dll +data=JAVA_VM_RES_BLD\javainstallerui.odc JAVA_VM_RES_IMG\javainstallerui.odc +file=ABI_DIR\BUILD_DIR\javainstallerui.dll SHARED_LIB_DIR\javainstallerui.dll +data=JAVA_VM_RES_BLD\javainstaller.odc JAVA_VM_RES_IMG\javainstaller.odc +file=ABI_DIR\BUILD_DIR\javainstallerstarter.dll PROGRAMS_DIR\javainstallerstarter.dll +file=ABI_DIR\BUILD_DIR\javapreinstaller.dll PROGRAMS_DIR\javapreinstaller.dll +data=ZRESOURCE\java\java_app.mif JAVA_RES_IMG\java_app.mif +data=ZRESOURCE\java\java_trusted.png JAVA_RES_IMG\java_trusted.png +data=ZRESOURCE\java\java_untrusted.png JAVA_RES_IMG\java_untrusted.png +data=DATAZ_\private\102033E6\installer\inst_plugins.cfg \private\102033E6\installer\inst_plugins.cfg + +// Launchers +file=ABI_DIR\BUILD_DIR\javalauncher.exe PROGRAMS_DIR\javalauncher.exe +ECOM_PLUGIN(javaappschemeplugin.dll,javaappschemeplugin.rsc) +data=ZRESOURCE\plugins\javaappschemeplugin.rsc ECOM_RESOURCE_DIR\javaappschemeplugin.rsc + +// SID Checker +ECOM_PLUGIN(javasidchecker.dll,10281FBE.rsc) +data=ZRESOURCE\plugins\javasidchecker.rsc ECOM_RESOURCE_DIR\javasidchecker.rsc + +// Recognizers +ECOM_PLUGIN(recjar.dll, 102031FB.rsc) +data=ZRESOURCE\plugins\recjar.rsc ECOM_RESOURCE_DIR\recjar.rsc + +// Backup & Restore +file=ABI_DIR\BUILD_DIR\javabackup.exe PROGRAMS_DIR\javabackup.exe +ECOM_PLUGIN(midp2backupplugin.dll,10282474.rsc) +data=ZRESOURCE\plugins\midp2backupplugin.rsc ECOM_RESOURCE_DIR\midp2backupplugin.rsc +data=DATAZ_\private\1028246F\backup_registration.xml \private\1028246F\backup_registration.xml +data=DATAZ_\private\102033E6\backup_registration.xml \private\102033E6\backup_registration.xml + + +///////////////////////// +// Java UIs collection // +///////////////////////// + +// CoreUi +file=ABI_DIR\BUILD_DIR\javacoreui.dll SHARED_LIB_DIR\javacoreui.dll +data=JAVA_VM_RES_BLD\javacoreui.odc JAVA_VM_RES_IMG\javacoreui.odc + +// eSWT +file=ABI_DIR\BUILD_DIR\eswt.dll SHARED_LIB_DIR\eswt.dll +data=JAVA_VM_RES_BLD\eswt.odc JAVA_VM_RES_IMG\eswt.odc +file=ABI_DIR\BUILD_DIR\eswtphysics.dll SHARED_LIB_DIR\eswtphysics.dll +file=ABI_DIR\BUILD_DIR\eswtapifacade.dll SHARED_LIB_DIR\eswtapifacade.dll +file=ABI_DIR\BUILD_DIR\eswtdirectcontent.dll SHARED_LIB_DIR\eswtdirectcontent.dll +data=JAVA_VM_RES_BLD\eswtdirectcontent.odc JAVA_VM_RES_IMG\eswtdirectcontent.odc +data=ZPRIVATE\10003a3f\apps\eswt_reg.rsc \private\10003a3f\import\apps\eswt_reg.rsc + +// LCDUI +file=ABI_DIR\BUILD_DIR\javalcdui.dll SHARED_LIB_DIR\javalcdui.dll +data=JAVA_VM_RES_BLD\javalcdui.odc JAVA_VM_RES_IMG\javalcdui.odc +file=ABI_DIR\BUILD_DIR\lcdui.dll SHARED_LIB_DIR\lcdui.dll +file=ABI_DIR\BUILD_DIR\lcdgr.dll SHARED_LIB_DIR\lcdgr.dll +file=ABI_DIR\BUILD_DIR\lcdgdrv.dll SHARED_LIB_DIR\lcdgdrv.dll +file=ABI_DIR\BUILD_DIR\lcdgdrvi.dll SHARED_LIB_DIR\lcdgdrvi.dll +file=ABI_DIR\BUILD_DIR\lcduiphysicswrap.dll SHARED_LIB_DIR\lcduiphysicswrap.dll +ECOM_PLUGIN(LCDC4K.dll, 10208164.rsc) +ECOM_PLUGIN(LCDC64K.dll, 10208162.rsc) +ECOM_PLUGIN(LCDC16MU.dll, 10208166.rsc) +ECOM_PLUGIN(LCDC16MA.dll, 10208168.rsc) +data=ZRESOURCE\java\lcdgr.rsc JAVA_RES_IMG\lcdgr.rsc +data=ZPRIVATE\10003a3f\apps\lcdui_reg.rsc \private\10003a3f\import\apps\lcdui_reg.rsc + +SCALABLE_IMAGE(APP_BITMAP_DIR,APP_BITMAP_DIR,lcdui) + +// AMMS API +file=ABI_DIR\BUILD_DIR\javaamms.dll SHARED_LIB_DIR\javaamms.dll +data=JAVA_VM_RES_BLD\javaamms.odc JAVA_VM_RES_IMG\javaamms.odc + +// Mobile Media API +file=ABI_DIR\BUILD_DIR\javamobilemedia.dll SHARED_LIB_DIR\javamobilemedia.dll +data=JAVA_VM_RES_BLD\javamobilemedia.odc JAVA_VM_RES_IMG\javamobilemedia.odc +data=ABI_DIR\BUILD_DIR\z\system\sounds\digital\CamcorderJavaCapture.wav \System\Sounds\Digital\CamcorderJavaCapture.wav +data=ABI_DIR\BUILD_DIR\z\system\sounds\digital\CamcorderJavaStart.wav \System\Sounds\Digital\CamcorderJavaStart.wav + +// MobInfo API +file=ABI_DIR\BUILD_DIR\javamobinfo.dll SHARED_LIB_DIR\javamobinfo.dll +data=JAVA_VM_RES_BLD\javamobinfo.odc JAVA_VM_RES_IMG\javamobinfo.odc + +// GlobalIndicators API +file=ABI_DIR\BUILD_DIR\javaglobalindicators.dll SHARED_LIB_DIR\javaglobalindicators.dll +data=JAVA_VM_RES_BLD\javaglobalindicators.odc JAVA_VM_RES_IMG\javaglobalindicators.odc + +// SoftNotification API +file=ABI_DIR\BUILD_DIR\javasoftnotification.dll SHARED_LIB_DIR\javasoftnotification.dll +data=JAVA_VM_RES_BLD\javasoftnotification.odc JAVA_VM_RES_IMG\javasoftnotification.odc + +// 2G API +file=ABI_DIR\BUILD_DIR\javam2g.dll SHARED_LIB_DIR\javam2g.dll +data=JAVA_VM_RES_BLD\javam2g.odc JAVA_VM_RES_IMG\javam2g.odc + +// 3G API +file=ABI_DIR\BUILD_DIR\javam3g.dll SHARED_LIB_DIR\javam3g.dll +data=JAVA_VM_RES_BLD\javam3g.odc JAVA_VM_RES_IMG\javam3g.odc + +// Nokia Sound API +file=ABI_DIR\BUILD_DIR\javanokiasound.dll SHARED_LIB_DIR\javanokiasound.dll +data=JAVA_VM_RES_BLD\javanokiasound.odc JAVA_VM_RES_IMG\javanokiasound.odc + +// Remote Connection Observer +file=ABI_DIR\BUILD_DIR\javaremconobserver.dll SHARED_LIB_DIR\javaremconobserver.dll + +// Legacy utilities +file=ABI_DIR\BUILD_DIR\javalegacyutils.dll SHARED_LIB_DIR\javalegacyutils.dll +data=JAVA_VM_RES_BLD\javalegacyutils.odc JAVA_VM_RES_IMG\javalegacyutils.odc + + +///////////////////////////// +// Java Runtimes collection // +///////////////////////////// + +// Runtime utilities +file=ABI_DIR\BUILD_DIR\javaruntimeui.dll SHARED_LIB_DIR\javaruntimeui.dll +data=JAVA_VM_RES_BLD\javaruntimeui.odc JAVA_VM_RES_IMG\javaruntimeui.odc +file=ABI_DIR\BUILD_DIR\javaruntimestarterutils.dll SHARED_LIB_DIR\javaruntimestarterutils.dll +file=ABI_DIR\BUILD_DIR\javastarter.dll SHARED_LIB_DIR\javastarter.dll + +// MIDP runtime +//file=ABI_DIR\BUILD_DIR\javamidp.exe PROGRAMS_DIR\javamidp.exe +file=ABI_DIR\BUILD_DIR\j9midps60.exe PROGRAMS_DIR\j9midps60.exe +file=ABI_DIR\BUILD_DIR\javamidpstarter.dll SHARED_LIB_DIR\javamidpstarter.dll +file=ABI_DIR\BUILD_DIR\javamidpruntime.dll SHARED_LIB_DIR\javamidpruntime.dll +data=JAVA_VM_RES_BLD\javamidpruntime.odc JAVA_VM_RES_IMG\javamidpruntime.odc + +// An empty JVM argument modifier (to prevent 3rd parties from installing a DLL with this name) +// To enable JVM argument modifier - comment 1st line below and uncomment 2nd line below +file=ABI_DIR\BUILD_DIR\javajvmargsmodifier.dll SHARED_LIB_DIR\javajvmargsmodifier.dll +//file=ABI_DIR\BUILD_DIR\javajvmargsmodifierfile.dll SHARED_LIB_DIR\javajvmargsmodifier.dll + + +///////////////////////////// +// Java Commons collection // +///////////////////////////// + +// J9 JVM +file=ABI_DIR\BUILD_DIR\j9.dll SHARED_LIB_DIR\j9.dll +file=ABI_DIR\BUILD_DIR\j9vmall23.dll SHARED_LIB_DIR\j9vmall23.dll +file=ABI_DIR\BUILD_DIR\j9mjit23.dll SHARED_LIB_DIR\j9mjit23.dll +file=ABI_DIR\BUILD_DIR\jclcldc11_23.dll SHARED_LIB_DIR\jclcldc11_23.dll +file=ABI_DIR\BUILD_DIR\jclcdc11_23.dll SHARED_LIB_DIR\jclcdc11_23.dll +file=ABI_DIR\BUILD_DIR\j9fdm23.dll SHARED_LIB_DIR\j9fdm23.dll +file=ABI_DIR\BUILD_DIR\JvmNativePort.dll SHARED_LIB_DIR\JvmNativePort.dll +data=JAVA_RES_BLD\jvm\bin\java.properties JAVA_RES_IMG\jvm\bin\java.properties +data=JAVA_RES_BLD\jvm\lib\security\java.policy JAVA_RES_IMG\jvm\lib\security\java.policy +data=JAVA_RES_BLD\jvm\lib\security\java.security JAVA_RES_IMG\jvm\lib\security\java.security + +// Utilities +file=ABI_DIR\BUILD_DIR\javautils.dll SHARED_LIB_DIR\javautils.dll +data=JAVA_VM_RES_BLD\javautils.odc JAVA_VM_RES_IMG\javautils.odc +file=ABI_DIR\BUILD_DIR\javacomms.dll SHARED_LIB_DIR\javacomms.dll +data=JAVA_VM_RES_BLD\javacomms.odc JAVA_VM_RES_IMG\javacomms.odc +file=ABI_DIR\BUILD_DIR\javaipc.dll SHARED_LIB_DIR\javaipc.dll +file=ABI_DIR\BUILD_DIR\javafileutils.dll SHARED_LIB_DIR\javafileutils.dll +data=JAVA_VM_RES_BLD\javafileutils.odc JAVA_VM_RES_IMG\javafileutils.odc +file=ABI_DIR\BUILD_DIR\javadebugapi.dll SHARED_LIB_DIR\javadebugapi.dll + +// Security dlls +file=ABI_DIR\BUILD_DIR\javasecurity.dll SHARED_LIB_DIR\javasecurity.dll +data=JAVA_VM_RES_BLD\javasecurity.odc JAVA_VM_RES_IMG\javasecurity.odc +ECOM_PLUGIN(javaunicertstoreplugin.dll,200213A3.rsc) +data=ZRESOURCE\plugins\javaunicertstoreplugin.rsc ECOM_RESOURCE_DIR\javaunicertstoreplugin.rsc + +// Security certs & policies +data=JAVA_POLICY_BLD\s60_manufacturer.ser JAVA_POLICY_IMG\s60_manufacturer.ser +data=JAVA_POLICY_BLD\s60_operator.ser JAVA_POLICY_IMG\s60_operator.ser +data=JAVA_POLICY_BLD\s60_trustedthirdparty.ser JAVA_POLICY_IMG\s60_trustedthirdparty.ser +data=JAVA_POLICY_BLD\s60_untrusted.ser JAVA_POLICY_IMG\s60_untrusted.ser +data=JAVA_POLICY_BLD\msa_manufacturer.ser JAVA_POLICY_IMG\msa_manufacturer.ser +data=JAVA_POLICY_BLD\msa_operator.ser JAVA_POLICY_IMG\msa_operator.ser +data=JAVA_POLICY_BLD\msa_trustedthirdparty.ser JAVA_POLICY_IMG\msa_trustedthirdparty.ser +data=JAVA_POLICY_BLD\msa_untrusted.ser JAVA_POLICY_IMG\msa_untrusted.ser +data=JAVA_POLICY_BLD\att_manufacturer.ser JAVA_POLICY_IMG\att_manufacturer.ser +data=JAVA_POLICY_BLD\att_operator.ser JAVA_POLICY_IMG\att_operator.ser +data=JAVA_POLICY_BLD\att_operatorextra.ser JAVA_POLICY_IMG\att_operatorextra.ser +data=JAVA_POLICY_BLD\att_trustedthirdparty.ser JAVA_POLICY_IMG\att_trustedthirdparty.ser +data=JAVA_POLICY_BLD\att_untrusted.ser JAVA_POLICY_IMG\att_untrusted.ser +data=JAVA_POLICY_BLD\all.ser JAVA_POLICY_IMG\all.ser + + +// Java environment info +file=ABI_DIR\BUILD_DIR\javaenvinfo.dll SHARED_LIB_DIR\javaenvinfo.dll +data=ABI_DIR\BUILD_DIR\Z\Resource\versions\java.txt RESOURCE_FILES_DIR\versions\java.txt + +// Storage +file=ABI_DIR\BUILD_DIR\javastorage.dll SHARED_LIB_DIR\javastorage.dll +data=JAVA_VM_RES_BLD\javastorage.odc JAVA_VM_RES_IMG\javastorage.odc + +// GCF base +file=ABI_DIR\BUILD_DIR\javagcf.dll SHARED_LIB_DIR\javagcf.dll +data=JAVA_VM_RES_BLD\javagcf.odc JAVA_VM_RES_IMG\javagcf.odc + +// Connection Manager +file=ABI_DIR\BUILD_DIR\javaconnectionmanager.dll SHARED_LIB_DIR\javaconnectionmanager.dll +data=JAVA_VM_RES_BLD\javaconnectionmanager.odc JAVA_VM_RES_IMG\javaconnectionmanager.odc + +// Http & https protocols +file=ABI_DIR\BUILD_DIR\javahttp.dll SHARED_LIB_DIR\javahttp.dll +file=ABI_DIR\BUILD_DIR\javahttps.dll SHARED_LIB_DIR\javahttps.dll +data=JAVA_VM_RES_BLD\javahttp.odc JAVA_VM_RES_IMG\javahttp.odc +data=JAVA_VM_RES_BLD\javahttps.odc JAVA_VM_RES_IMG\javahttps.odc + +// Socket protocol +file=ABI_DIR\BUILD_DIR\javasocket.dll SHARED_LIB_DIR\javasocket.dll +file=ABI_DIR\BUILD_DIR\javasocketscplugin.dll SHARED_LIB_DIR\javasocketscplugin.dll +data=JAVA_VM_RES_BLD\javasocket.odc JAVA_VM_RES_IMG\javasocket.odc + +// Secure socket protocol +file=ABI_DIR\BUILD_DIR\javassl.dll SHARED_LIB_DIR\javassl.dll +data=JAVA_VM_RES_BLD\javassl.odc JAVA_VM_RES_IMG\javassl.odc + + +//////////////////////////////// +// Java Extensions collection // +//////////////////////////////// + +// Push +file=ABI_DIR\BUILD_DIR\javapushcontroller.dll SHARED_LIB_DIR\javapushcontroller.dll +file=ABI_DIR\BUILD_DIR\javapushregistry.dll SHARED_LIB_DIR\javapushregistry.dll +data=JAVA_VM_RES_BLD\javapushregistry.odc JAVA_VM_RES_IMG\javapushregistry.odc + +// Bluetooth +file=ABI_DIR\BUILD_DIR\javabluecove.dll SHARED_LIB_DIR\javabluecove.dll +file=ABI_DIR\BUILD_DIR\javabluetooth.dll SHARED_LIB_DIR\javabluetooth.dll +file=ABI_DIR\BUILD_DIR\javabluetoothcommons.dll SHARED_LIB_DIR\javabluetoothcommons.dll +file=ABI_DIR\BUILD_DIR\javabtgoepscplugin.dll SHARED_LIB_DIR\javabtgoepscplugin.dll +file=ABI_DIR\BUILD_DIR\javabtl2capscplugin.dll SHARED_LIB_DIR\javabtl2capscplugin.dll +file=ABI_DIR\BUILD_DIR\javabtsppscplugin.dll SHARED_LIB_DIR\javabtsppscplugin.dll +data=JAVA_VM_RES_BLD\javabluecove.odc JAVA_VM_RES_IMG\javabluecove.odc +data=JAVA_VM_RES_BLD\javabluetooth.odc JAVA_VM_RES_IMG\javabluetooth.odc +data=JAVA_VM_RES_BLD\javabluetoothcommons.odc JAVA_VM_RES_IMG\javabluetoothcommons.odc + +// WMA +file=ABI_DIR\BUILD_DIR\javawma.dll SHARED_LIB_DIR\javawma.dll +file=ABI_DIR\BUILD_DIR\javawmamms.dll SHARED_LIB_DIR\javawmamms.dll +file=ABI_DIR\BUILD_DIR\javacbsscplugin.dll SHARED_LIB_DIR\javacbsscplugin.dll +file=ABI_DIR\BUILD_DIR\javammsscplugin.dll SHARED_LIB_DIR\javammsscplugin.dll +file=ABI_DIR\BUILD_DIR\javasmsscplugin.dll SHARED_LIB_DIR\javasmsscplugin.dll +data=JAVA_VM_RES_BLD\javawma.odc JAVA_VM_RES_IMG\javawma.odc +data=JAVA_VM_RES_BLD\javawmamms.odc JAVA_VM_RES_IMG\javawmamms.odc + +// Comm +file=ABI_DIR\BUILD_DIR\javacomm.dll SHARED_LIB_DIR\javacomm.dll +data=JAVA_VM_RES_BLD\javacomm.odc JAVA_VM_RES_IMG\javacomm.odc + +// Datagram +file=ABI_DIR\BUILD_DIR\javadatagram.dll SHARED_LIB_DIR\javadatagram.dll +file=ABI_DIR\BUILD_DIR\javadatagramscplugin.dll SHARED_LIB_DIR\javadatagramscplugin.dll +data=JAVA_VM_RES_BLD\javadatagram.odc JAVA_VM_RES_IMG\javadatagram.odc + +// Location API +file=ABI_DIR\BUILD_DIR\javalocation.dll SHARED_LIB_DIR\javalocation.dll +data=JAVA_VM_RES_BLD\javalocation.odc JAVA_VM_RES_IMG\javalocation.odc + +// Sensor API +file=ABI_DIR\BUILD_DIR\javasensor.dll SHARED_LIB_DIR\javasensor.dll +data=JAVA_VM_RES_BLD\javasensor.odc JAVA_VM_RES_IMG\javasensor.odc + +// Web services API +file=ABI_DIR\BUILD_DIR\javawebservices.dll SHARED_LIB_DIR\javawebservices.dll +data=JAVA_VM_RES_BLD\javawebservices.odc JAVA_VM_RES_IMG\javawebservices.odc + +// PIM API +file=ABI_DIR\BUILD_DIR\javapim.dll SHARED_LIB_DIR\javapim.dll +data=JAVA_VM_RES_BLD\javapim.odc JAVA_VM_RES_IMG\javapim.odc + +// RMS API +file=ABI_DIR\BUILD_DIR\javarms.dll SHARED_LIB_DIR\javarms.dll +data=JAVA_VM_RES_BLD\javarms.odc JAVA_VM_RES_IMG\javarms.odc + +// SATSA API +file=ABI_DIR\BUILD_DIR\javasatsa.dll SHARED_LIB_DIR\javasatsa.dll +data=JAVA_VM_RES_BLD\javasatsa.odc JAVA_VM_RES_IMG\javasatsa.odc + +// File API +file=ABI_DIR\BUILD_DIR\javafile.dll SHARED_LIB_DIR\javafile.dll +data=JAVA_VM_RES_BLD\javafile.odc JAVA_VM_RES_IMG\javafile.odc + +// IAP Info API +file=ABI_DIR\BUILD_DIR\javaiapinfo.dll SHARED_LIB_DIR\javaiapinfo.dll +data=JAVA_VM_RES_BLD\javaiapinfo.odc JAVA_VM_RES_IMG\javaiapinfo.odc + + +/////////////////// +// Miscellaneous // +/////////////////// + +// Generated localization file resources +data=JAVA_VM_RES_BLD\resources.jar JAVA_VM_RES_IMG\resources.jar + +// ODC list files +data=ZRESOURCE\java\midpOdcList JAVA_RES_IMG\midpodclist +data=ZRESOURCE\java\installerOdcList JAVA_RES_IMG\installerodclist +data=ZRESOURCE\java\tckRunnerOdcList JAVA_RES_IMG\tckrunnerodclist +data=ZRESOURCE\java\javacontrolpanelodclist JAVA_RES_IMG\javacontrolpanelodclist + +// trust roots list +data=ZRESOURCE\java\security\trustroots\midprootslist JAVA_RES_IMG\security\trustroots\midprootslist + +// Utility for Services team +// file=ABI_DIR\BUILD_DIR\javaupgradeapp.exe PROGRAMS_DIR\javaupgradeapp.exe + + +//////////////////////////////// +// Old Java binaries // +//////////////////////////////// + +file=ABI_DIR\BUILD_DIR\JcfUtils.dll SHARED_LIB_DIR\JcfUtils.dll +file=ABI_DIR\BUILD_DIR\javadrmutils.dll SHARED_LIB_DIR\javadrmutils.dll +file=ABI_DIR\BUILD_DIR\javalogger.dll SHARED_LIB_DIR\javalogger.dll + +file=ABI_DIR\BUILD_DIR\javareader.dll SHARED_LIB_DIR\javareader.dll +file=ABI_DIR\BUILD_DIR\jcfjadjarmatcher.dll SHARED_LIB_DIR\jcfjadjarmatcher.dll +file=ABI_DIR\BUILD_DIR\jarfiledecoder.dll SHARED_LIB_DIR\jarfiledecoder.dll +file=ABI_DIR\BUILD_DIR\javaregistrymidpclient.dll SHARED_LIB_DIR\javaregistrymidpclient.dll + +//////////////////////////////// +// 5.0 specific binaries // +//////////////////////////////// + +file=ABI_DIR\BUILD_DIR\javaafterflashconverter.exe PROGRAMS_DIR\javaafterflashconverter.exe +file=ABI_DIR\BUILD_DIR\javausersettingsconfigurator.exe PROGRAMS_DIR\javausersettingsconfigurator.exe + +file=ABI_DIR\BUILD_DIR\Systemams.exe PROGRAMS_DIR\Systemams.exe + +file=ABI_DIR\BUILD_DIR\InstalledAppsRegistry.dll SHARED_LIB_DIR\InstalledAppsRegistry.dll +file=ABI_DIR\BUILD_DIR\javaregistry.dll SHARED_LIB_DIR\javaregistry.dll + +file=ABI_DIR\BUILD_DIR\midp2cenrep.dll SHARED_LIB_DIR\midp2cenrep.dll + +file=ABI_DIR\BUILD_DIR\javaptivariation.dll SHARED_LIB_DIR\javaptivariation.dll + +file=ABI_DIR\BUILD_DIR\midp2permissiondb.dll SHARED_LIB_DIR\midp2permissiondb.dll +file=ABI_DIR\BUILD_DIR\midp2userpreferences.dll SHARED_LIB_DIR\midp2userpreferences.dll + +file=ABI_DIR\BUILD_DIR\midp2securitypolicyV2.dll SHARED_LIB_DIR\midp2securitypolicyV2.dll + + +// Needed by AppMngr +#include + +// The Java 1.x security policy files formerly exported by MIDP20.iby +data=ZRESOURCE\java\midp2securitypolicy\s60_rp.xpf \RESOURCE_FILES_DIR\java\midp2securitypolicy\s60_rp.xpf +data=ZRESOURCE\java\midp2securitypolicy\msa_rp.xpf \RESOURCE_FILES_DIR\java\midp2securitypolicy\msa_rp.xpf + +// SystemAMS DBMS policy file +data=ZPRIVATE\100012A5\policy\102045FE.spd \private\100012A5\policy\102045FE.spd + + +#endif