01: //WebOnSwing - Web Application Framework
02: //Copyright (C) 2003 Fernando Damian Petrola
03: //
04: //This library is free software; you can redistribute it and/or
05: //modify it under the terms of the GNU Lesser General Public
06: //License as published by the Free Software Foundation; either
07: //version 2.1 of the License, or (at your option) any later version.
08: //
09: //This library is distributed in the hope that it will be useful,
10: //but WITHOUT ANY WARRANTY; without even the implied warranty of
11: //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12: //Lesser General Public License for more details.
13: //
14: //You should have received a copy of the GNU Lesser General Public
15: //License along with this library; if not, write to the Free Software
16: //Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17:
18: package examples.owncomponents;
19:
20: import java.util.*;
21:
22: import net.ar.webonswing.remote.*;
23: import net.ar.webonswing.render.markup.*;
24: import net.ar.webonswing.ui.*;
25:
26: public class ButtonContributor extends AbstractComponentUIContributor {
27: public void doRenderingContribution(
28: RenderingContributionContainer aRenderingContribManager) {
29: Button theButton = (Button) theComponent;
30:
31: Tag theTag = new Tag("input").addAttribute("type", "button");
32: theTag.addAttribute("value", theButton.getText());
33: theTag.addAttribute("name", theComponent.getName());
34:
35: if (theButton.getEvents().getListenerCount() > 0)
36: theTag.addAttribute(new TagAttribute("onclick",
37: "ed.dispatch(new ActionEvent(this.name, ''));"));
38:
39: String theInitString = "getComponent('"
40: + theComponent.getName()
41: + "').addListener(new ActionListener());";
42:
43: aRenderingContribManager.doContribution(theComponent, theTag,
44: null, theInitString);
45: }
46:
47: public void dispatchEvents(List anEvents) {
48: for (Iterator i = anEvents.iterator(); i.hasNext();) {
49: RemoteEvent theEvent = (RemoteEvent) i.next();
50: Button theButton = (Button) theEvent.getSource();
51:
52: if (theEvent.getType().equals("actionPerformed"))
53: theButton.doClick();
54: }
55: }
56: }
|