001: /*
002: * Copyright 2005 Joe Walker
003: *
004: * Licensed under the Apache License, Version 2.0 (the "License");
005: * you may not use this file except in compliance with the License.
006: * You may obtain a copy of the License at
007: *
008: * http://www.apache.org/licenses/LICENSE-2.0
009: *
010: * Unless required by applicable law or agreed to in writing, software
011: * distributed under the License is distributed on an "AS IS" BASIS,
012: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013: * See the License for the specific language governing permissions and
014: * limitations under the License.
015: */
016: package jsx3.lang;
017:
018: import org.directwebremoting.ScriptBuffer;
019: import org.directwebremoting.proxy.ScriptProxy;
020: import org.directwebremoting.proxy.io.Context;
021:
022: /**
023: * A collection of GI system related functions.
024: * @author Joe Walker [joe at getahead dot org]
025: * @author DRAPGEN - Dwr Reverse Ajax Proxy GENerator
026: */
027: public class System extends jsx3.lang.Object {
028: /**
029: * All reverse ajax proxies need context to work from
030: * @param scriptProxy The place we are writing scripts to
031: * @param context The script that got us to where we are now
032: */
033: public System(Context context, String extension,
034: ScriptProxy scriptProxy) {
035: super (context, extension, scriptProxy);
036: }
037:
038: /**
039: * Returns a system property as specified by a JSS file loaded by the JSX runtime or an addin.
040: * @param strKey
041: */
042: @SuppressWarnings("unchecked")
043: public void getProperty(String strKey,
044: org.directwebremoting.proxy.Callback<String> callback) {
045: ScriptBuffer script = new ScriptBuffer();
046: String callbackPrefix = "";
047:
048: if (callback != null) {
049: callbackPrefix = "var reply = ";
050: }
051:
052: script.appendCall(callbackPrefix + getContextPath()
053: + "getProperty", strKey);
054:
055: if (callback != null) {
056: String key = org.directwebremoting.extend.CallbackHelper
057: .saveCallback(callback, String.class);
058: script
059: .appendCall("__System.activateCallback", key,
060: "reply");
061: }
062:
063: getScriptProxy().addScript(script);
064: }
065:
066: /**
067: * If the locale has been explicitly set with setLocale(), that locale is returned. Otherwise the
068: locale is determined by introspecting the browser. If all else fails the default locale, en_US, is returned.
069: */
070: public void getLocale() {
071: ScriptBuffer script = new ScriptBuffer();
072: script.appendCall(getContextPath() + "getLocale");
073: getScriptProxy().addScript(script);
074: }
075:
076: /**
077: * Sets the system-wide locale. This in turn affects all applications running under the JSX system.
078: * @param objLocale
079: */
080: public void setLocale(java.lang.Object objLocale) {
081: ScriptBuffer script = new ScriptBuffer();
082: script.appendCall(getContextPath() + "setLocale", objLocale);
083: getScriptProxy().addScript(script);
084: }
085:
086: /**
087: *
088: */
089: public void reloadLocalizedResources() {
090: ScriptBuffer script = new ScriptBuffer();
091: script
092: .appendCall(getContextPath()
093: + "reloadLocalizedResources");
094: getScriptProxy().addScript(script);
095: }
096:
097: /**
098: *
099: * @param strKey
100: * @param strTokens
101: */
102: @SuppressWarnings("unchecked")
103: public void getMessage(String strKey, jsx3.lang.Object strTokens,
104: org.directwebremoting.proxy.Callback<String> callback) {
105: ScriptBuffer script = new ScriptBuffer();
106: String callbackPrefix = "";
107:
108: if (callback != null) {
109: callbackPrefix = "var reply = ";
110: }
111:
112: script.appendCall(callbackPrefix + getContextPath()
113: + "getMessage", strKey, strTokens);
114:
115: if (callback != null) {
116: String key = org.directwebremoting.extend.CallbackHelper
117: .saveCallback(callback, String.class);
118: script
119: .appendCall("__System.activateCallback", key,
120: "reply");
121: }
122:
123: getScriptProxy().addScript(script);
124: }
125:
126: /**
127: * Returns the version number of General Interface.
128: * @param callback <code>"3.1.0"</code>, etc.
129: */
130: @SuppressWarnings("unchecked")
131: public void getVersion(
132: org.directwebremoting.proxy.Callback<String> callback) {
133: ScriptBuffer script = new ScriptBuffer();
134: String callbackPrefix = "";
135:
136: if (callback != null) {
137: callbackPrefix = "var reply = ";
138: }
139:
140: script.appendCall(callbackPrefix + getContextPath()
141: + "getVersion");
142:
143: if (callback != null) {
144: String key = org.directwebremoting.extend.CallbackHelper
145: .saveCallback(callback, String.class);
146: script
147: .appendCall("__System.activateCallback", key,
148: "reply");
149: }
150:
151: getScriptProxy().addScript(script);
152: }
153:
154: }
|