You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by pp...@apache.org on 2013/06/18 18:48:35 UTC
js commit: [CB-3739][Tizen][Tizen SDK 2.1 Nectarine] - globalize API
Updated Branches:
refs/heads/master 3068eff17 -> be7fa3204
[CB-3739][Tizen][Tizen SDK 2.1 Nectarine] - globalize API
provide a partial implementation using Tizen Device API
Using Device API is definitely not the right way as the support is partial
due to a lack of support of globalization from the tizen Web APIs
Tizen Web UI framework is using Globilize.js
So I will go with Globalize.js in order to provide a full support
Globalize.js was originally a jQuery plugin but is now independant as a JavaScript library
Project: http://git-wip-us.apache.org/repos/asf/cordova-js/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-js/commit/be7fa320
Tree: http://git-wip-us.apache.org/repos/asf/cordova-js/tree/be7fa320
Diff: http://git-wip-us.apache.org/repos/asf/cordova-js/diff/be7fa320
Branch: refs/heads/master
Commit: be7fa3204fc993a056e6e1f585e816d98937af95
Parents: 3068eff
Author: pplaquette <pp...@apache.org>
Authored: Tue Jun 18 18:42:53 2013 +0200
Committer: pplaquette <pp...@apache.org>
Committed: Tue Jun 18 18:42:53 2013 +0200
----------------------------------------------------------------------
lib/tizen/plugin/tizen/Globalization.js | 118 +++++++++++++++++++++++++--
1 file changed, 111 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-js/blob/be7fa320/lib/tizen/plugin/tizen/Globalization.js
----------------------------------------------------------------------
diff --git a/lib/tizen/plugin/tizen/Globalization.js b/lib/tizen/plugin/tizen/Globalization.js
index c1c51e6..aa7f94a 100644
--- a/lib/tizen/plugin/tizen/Globalization.js
+++ b/lib/tizen/plugin/tizen/Globalization.js
@@ -19,6 +19,9 @@
*
*/
+
+/*global tizen:false */
+
var argscheck = require('cordova/argscheck'),
exec = require('cordova/exec'),
GlobalizationError = require('cordova/plugin/GlobalizationError');
@@ -43,8 +46,19 @@ var globalization = {
* function () {});
*/
getPreferredLanguage:function(successCB, failureCB) {
- argscheck.checkArgs('fF', 'Globalization.getPreferredLanguage', arguments);
console.log('exec(successCB, failureCB, "Globalization","getPreferredLanguage", []);');
+
+ tizen.systeminfo.getPropertyValue (
+ "LOCALE",
+ function (localeInfo) {
+ console.log("Cordova, getLocaleName, language is " + localeInfo.language);
+ successCB( {"value": localeInfo.language});
+ },
+ function(error) {
+ console.log("Cordova, getLocaleName, An error occurred " + error.message);
+ failureCB(new GlobalizationError(GlobalizationError.UNKNOWN_ERROR , "cannot retrieve language name"));
+ }
+ );
},
/**
@@ -65,8 +79,17 @@ getPreferredLanguage:function(successCB, failureCB) {
* function () {});
*/
getLocaleName:function(successCB, failureCB) {
- argscheck.checkArgs('fF', 'Globalization.getLocaleName', arguments);
- console.log('exec(successCB, failureCB, "Globalization","getLocaleName", []);');
+ tizen.systeminfo.getPropertyValue (
+ "LOCALE",
+ function (localeInfo) {
+ console.log("Cordova, getLocaleName, locale name (country) is " + localeInfo.country);
+ successCB( {"value":localeInfo.language});
+ },
+ function(error) {
+ console.log("Cordova, getLocaleName, An error occurred " + error.message);
+ failureCB(new GlobalizationError(GlobalizationError.UNKNOWN_ERROR , "cannot retrieve locale name"));
+ }
+ );
},
@@ -96,9 +119,31 @@ getLocaleName:function(successCB, failureCB) {
* {formatLength:'short'});
*/
dateToString:function(date, successCB, failureCB, options) {
- argscheck.checkArgs('dfFO', 'Globalization.dateToString', arguments);
var dateValue = date.valueOf();
console.log('exec(successCB, failureCB, "Globalization", "dateToString", [{"date": dateValue, "options": options}]);');
+
+ var tzdate = null;
+ var format = null;
+
+ tzdate = new tizen.TZDate(date);
+
+ if (tzdate) {
+ if (options && (options.formatLength == 'short') ){
+ format = tzdate.toLocaleDateString();
+ }
+ else{
+ format = tzdate.toLocaleString();
+ }
+ console.log('Cordova, globalization, dateToString ' +format);
+ }
+
+ if (format)
+ {
+ successCB ({"value": format});
+ }
+ else {
+ failureCB(new GlobalizationError(GlobalizationError.FORMATTING_ERROR , "cannot format date string"));
+ }
},
@@ -140,6 +185,9 @@ dateToString:function(date, successCB, failureCB, options) {
stringToDate:function(dateString, successCB, failureCB, options) {
argscheck.checkArgs('sfFO', 'Globalization.stringToDate', arguments);
console.log('exec(successCB, failureCB, "Globalization", "stringToDate", [{"dateString": dateString, "options": options}]);');
+
+ //not supported
+ failureCB(new GlobalizationError(GlobalizationError.PARSING_ERROR , "unsupported"));
},
@@ -176,8 +224,30 @@ stringToDate:function(dateString, successCB, failureCB, options) {
* {formatLength:'short'});
*/
getDatePattern:function(successCB, failureCB, options) {
- argscheck.checkArgs('fFO', 'Globalization.getDatePattern', arguments);
console.log(' exec(successCB, failureCB, "Globalization", "getDatePattern", [{"options": options}]);');
+
+ var shortFormat = (options) ? ( options.formatLength === 'short') : true;
+
+ var formatString = tizen.time.getDateFormat ( shortFormat);
+
+
+ var current_datetime = tizen.time.getCurrentDateTime();
+
+ // probably will require some control of operation...
+ if (formatString)
+ {
+ successCB(
+ {
+ "pattern": formatString,
+ "timezone": current_datetime.getTimezoneAbbreviation(),
+ "utc_offset": current_datetime.difference(current_datetime.toUTC()).length,
+ "dst_offset": current_datetime.isDST()
+ }
+ );
+ }
+ else {
+ failureCB(new GlobalizationError(GlobalizationError.PATTERN_ERROR , "cannot get pattern"));
+ }
},
@@ -209,6 +279,8 @@ getDatePattern:function(successCB, failureCB, options) {
getDateNames:function(successCB, failureCB, options) {
argscheck.checkArgs('fFO', 'Globalization.getDateNames', arguments);
console.log('exec(successCB, failureCB, "Globalization", "getDateNames", [{"options": options}]);');
+
+ failureCB(new GlobalizationError(GlobalizationError.UNKNOWN_ERROR , "unsupported"));
},
/**
@@ -232,9 +304,24 @@ getDateNames:function(successCB, failureCB, options) {
* function () {});
*/
isDayLightSavingsTime:function(date, successCB, failureCB) {
- argscheck.checkArgs('dfF', 'Globalization.isDayLightSavingsTime', arguments);
- var dateValue = date.valueOf();
+
+ var tzdate = null,
+ isDLS = false;
+
console.log('exec(successCB, failureCB, "Globalization", "isDayLightSavingsTime", [{"date": dateValue}]);');
+ console.log("date " + date + " value " + date.valueOf()) ;
+
+ tzdate = new tizen.TZDate(date);
+ if (tzdate) {
+ isDLS = false | (tzdate && tzdate.isDST());
+
+ console.log ("Cordova, globalization, isDayLightSavingsTime, " + isDLS);
+
+ successCB({"dst":isDLS});
+ }
+ else {
+ failureCB(new GlobalizationError(GlobalizationError.UNKNOWN_ERROR , "cannot get information"));
+ }
},
/**
@@ -258,6 +345,12 @@ isDayLightSavingsTime:function(date, successCB, failureCB) {
getFirstDayOfWeek:function(successCB, failureCB) {
argscheck.checkArgs('fF', 'Globalization.getFirstDayOfWeek', arguments);
console.log('exec(successCB, failureCB, "Globalization", "getFirstDayOfWeek", []);');
+
+ // there is no API to get the fist day of the week in Tizen Dvice API
+ successCB({value:1});
+
+ // first day of week is a settings in the date book app
+ // what about : getting the settings directly or asking the date book ?
},
@@ -287,6 +380,8 @@ getFirstDayOfWeek:function(successCB, failureCB) {
numberToString:function(number, successCB, failureCB, options) {
argscheck.checkArgs('nfFO', 'Globalization.numberToString', arguments);
console.log('exec(successCB, failureCB, "Globalization", "numberToString", [{"number": number, "options": options}]);');
+ //not supported
+ failureCB(new GlobalizationError(GlobalizationError.UNKNOWN_ERROR , "unsupported"));
},
/**
@@ -315,6 +410,9 @@ numberToString:function(number, successCB, failureCB, options) {
stringToNumber:function(numberString, successCB, failureCB, options) {
argscheck.checkArgs('sfFO', 'Globalization.stringToNumber', arguments);
console.log('exec(successCB, failureCB, "Globalization", "stringToNumber", [{"numberString": numberString, "options": options}]);');
+
+ //not supported
+ failureCB(new GlobalizationError(GlobalizationError.UNKNOWN_ERROR , "unsupported"));
},
/**
@@ -352,6 +450,9 @@ stringToNumber:function(numberString, successCB, failureCB, options) {
getNumberPattern:function(successCB, failureCB, options) {
argscheck.checkArgs('fFO', 'Globalization.getNumberPattern', arguments);
console.log('exec(successCB, failureCB, "Globalization", "getNumberPattern", [{"options": options}]);');
+
+ //not supported
+ failureCB(new GlobalizationError(GlobalizationError.UNKNOWN_ERROR , "unsupported"));
},
/**
@@ -384,6 +485,9 @@ getNumberPattern:function(successCB, failureCB, options) {
getCurrencyPattern:function(currencyCode, successCB, failureCB) {
argscheck.checkArgs('sfF', 'Globalization.getCurrencyPattern', arguments);
console.log('exec(successCB, failureCB, "Globalization", "getCurrencyPattern", [{"currencyCode": currencyCode}]);');
+
+ //not supported
+ failureCB(new GlobalizationError(GlobalizationError.UNKNOWN_ERROR , "unsupported"));
}
};