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 net.ar.webonswing.ui;
19:
20: import java.util.*;
21:
22: import javax.swing.*;
23:
24: import net.ar.webonswing.helpers.*;
25: import net.ar.webonswing.remote.*;
26: import net.ar.webonswing.render.markup.*;
27: import net.ar.webonswing.render.templates.*;
28: import net.ar.webonswing.render.templates.html.*;
29: import net.ar.webonswing.wrapping.*;
30:
31: public class PasswordFieldUIContributor extends
32: AbstractSwingComponentUIContributor {
33: public void doRenderingContribution(
34: RenderingContributionContainer theContribManager) {
35: JPasswordField aPasswordField = (JPasswordField) getJComponent();
36:
37: Tag theTag = new Tag("input");
38: theTag.setNeedsClosure(false);
39:
40: theTag.addAttribute(new TagAttribute("type", "password"));
41: theTag.addAttribute(new TagAttribute("name", theComponent
42: .getName()));
43: theTag.addAttribute(new TagAttribute("value", new String(
44: aPasswordField.getPassword())));
45:
46: if (aPasswordField.getColumns() > 0)
47: theTag.addAttribute(new TagAttribute("size", aPasswordField
48: .getColumns()));
49:
50: if (aPasswordField.getWidth() > 0
51: && aPasswordField.getHeight() > 0)
52: theTag.addAttribute(new TagAttribute("style",
53: "position:absolute; width:"
54: + aPasswordField.getWidth() + "; height:"
55: + aPasswordField.getHeight()));
56:
57: if (!aPasswordField.isEnabled())
58: theTag.addAttribute(new TagAttribute("DISABLED", ""));
59:
60: Template theTemplate = WosSwingHelper.getTemplateForComponent(
61: "JTextField", aPasswordField);
62: theTemplate.addElement(new IdTagTemplateElement("theTextField",
63: theTag));
64:
65: theContribManager.doContribution(theComponent, theTemplate,
66: theTag, "");
67: }
68:
69: public void dispatchEvents(List anEvents) {
70: for (Iterator i = anEvents.iterator(); i.hasNext();) {
71: RemoteEvent theEvent = (RemoteEvent) i.next();
72:
73: if (theEvent.getType().equals("update")) {
74: JTextField aTextField = (JTextField) ((ComponentWrapper) theEvent
75: .getSource()).getWrappedComponent();
76: aTextField
77: .setText((String) theEvent.getParameters()[0]);
78: }
79: }
80: }
81: }
|