01: /*
02: #IFNDEF ALT_LICENSE
03: ThinWire(R) RIA Ajax Framework
04: Copyright (C) 2003-2007 Custom Credit Systems
05:
06: This library is free software; you can redistribute it and/or modify it under
07: the terms of the GNU Lesser General Public License as published by the Free
08: Software Foundation; either version 2.1 of the License, or (at your option) any
09: later version.
10:
11: This library is distributed in the hope that it will be useful, but WITHOUT ANY
12: WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
13: PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
14:
15: You should have received a copy of the GNU Lesser General Public License along
16: with this library; if not, write to the Free Software Foundation, Inc., 59
17: Temple Place, Suite 330, Boston, MA 02111-1307 USA
18:
19: Users who would rather have a commercial license, warranty or support should
20: contact the following company who invented, built and supports the technology:
21:
22: Custom Credit Systems, Richardson, TX 75081, USA.
23: email: info@thinwire.com ph: +1 (888) 644-6405
24: http://www.thinwire.com
25: #ENDIF
26: [ v1.2_RC2 ]
27: */
28: package thinwire.render.web;
29:
30: import thinwire.ui.Component;
31: import thinwire.ui.TabFolder;
32: import thinwire.ui.event.PropertyChangeEvent;
33:
34: /**
35: * @author Joshua J. Gertzen
36: */
37: final class TabFolderRenderer extends ContainerRenderer {
38: private static final String TABFOLDER_CLASS = "tw_TabFolder";
39: private static final String SET_CURRENT_INDEX = "setCurrentIndex";
40:
41: void render(WindowRenderer wr, Component c,
42: ComponentRenderer container) {
43: init(TABFOLDER_CLASS, wr, c, container);
44: addClientSideProperty(TabFolder.PROPERTY_CURRENT_INDEX);
45: setPropertyChangeIgnored(TabFolder.PROPERTY_SCROLL_TYPE, true);
46: super .render(wr, c, container);
47: postClientEvent(SET_CURRENT_INDEX, new Integer(((TabFolder) c)
48: .getCurrentIndex()));
49: }
50:
51: public void propertyChange(PropertyChangeEvent pce) {
52: if (pce.getPropertyName().equals(
53: TabFolder.PROPERTY_CURRENT_INDEX)) {
54: if (isPropertyChangeIgnored(TabFolder.PROPERTY_CURRENT_INDEX))
55: return;
56: postClientEvent(SET_CURRENT_INDEX, pce.getNewValue());
57: } else {
58: super .propertyChange(pce);
59: }
60: }
61:
62: public void componentChange(WebComponentEvent event) {
63: String name = event.getName();
64: String value = (String) event.getValue();
65: TabFolder tf = (TabFolder) comp;
66:
67: if (name.equals(TabFolder.PROPERTY_CURRENT_INDEX)) {
68: setPropertyChangeIgnored(name, true);
69: tf.setCurrentIndex(Integer.valueOf(value).intValue());
70: setPropertyChangeIgnored(name, false);
71: } else {
72: super.componentChange(event);
73: }
74: }
75: }
|