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.gui;
017:
018: import org.directwebremoting.ScriptBuffer;
019: import org.directwebremoting.proxy.ScriptProxy;
020: import org.directwebremoting.proxy.io.Context;
021:
022: /**
023: * similar to how a tabbed pane manages a collection of tabs, the stack group is a parent container that manages JSXStack instances
024: * @author Joe Walker [joe at getahead dot org]
025: * @author DRAPGEN - Dwr Reverse Ajax Proxy GENerator
026: */
027: public class StackGroup extends jsx3.gui.LayoutGrid {
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 StackGroup(Context context, String extension,
034: ScriptProxy scriptProxy) {
035: super (context, extension, scriptProxy);
036: }
037:
038: /**
039: * The instance initializer.
040: * @param strName unique name distinguishing this object from all other JSX GUI objects in the JSX application
041: */
042: public StackGroup(String strName) {
043: super ((Context) null, (String) null, (ScriptProxy) null);
044: ScriptBuffer script = new ScriptBuffer();
045: script.appendCall("new StackGroup", strName);
046: setInitScript(script);
047: }
048:
049: /**
050: * 0 : top-over (--) layout (default)
051: */
052: public static final int ORIENTATIONV = 0;
053:
054: /**
055: * 1 : side-by-side (|) layout
056: */
057: public static final int ORIENTATIONH = 1;
058:
059: /**
060: * 27 (default)
061: */
062: public static final int DEFAULTBARSIZE = 27;
063:
064: /**
065: * Returns the size of the handle common to all child stack instances (in pixels). Default: jsx3.gui.StackGroup.DEFAULTBARSIZE
066: * @param callback size in pixels
067: */
068: @SuppressWarnings("unchecked")
069: public void getBarSize(
070: org.directwebremoting.proxy.Callback<Integer> callback) {
071: ScriptBuffer script = new ScriptBuffer();
072: String callbackPrefix = "";
073:
074: if (callback != null) {
075: callbackPrefix = "var reply = ";
076: }
077:
078: script.appendCall(callbackPrefix + getContextPath()
079: + "getBarSize");
080:
081: if (callback != null) {
082: String key = org.directwebremoting.extend.CallbackHelper
083: .saveCallback(callback, Integer.class);
084: script
085: .appendCall("__System.activateCallback", key,
086: "reply");
087: }
088:
089: getScriptProxy().addScript(script);
090: }
091:
092: /**
093: * Sets the size of the handle for the child stack instances;
094: returns reference to self to facilitate method chaining
095: * @param intBarSize size (in pixels)
096: * @return this object
097: */
098: public jsx3.gui.StackGroup setBarSize(int intBarSize) {
099: ScriptBuffer script = new ScriptBuffer();
100: script.appendCall(getContextPath() + "setBarSize", intBarSize);
101: getScriptProxy().addScript(script);
102: return this ;
103: }
104:
105: /**
106: * Returns zero-based index for the tab that is active per its placement in the child JScript array
107: */
108: @SuppressWarnings("unchecked")
109: public void getSelectedIndex(
110: org.directwebremoting.proxy.Callback<Integer> callback) {
111: ScriptBuffer script = new ScriptBuffer();
112: String callbackPrefix = "";
113:
114: if (callback != null) {
115: callbackPrefix = "var reply = ";
116: }
117:
118: script.appendCall(callbackPrefix + getContextPath()
119: + "getSelectedIndex");
120:
121: if (callback != null) {
122: String key = org.directwebremoting.extend.CallbackHelper
123: .saveCallback(callback, Integer.class);
124: script
125: .appendCall("__System.activateCallback", key,
126: "reply");
127: }
128:
129: getScriptProxy().addScript(script);
130: }
131:
132: }
|