001 // Copyright (c) 2001 Hursh Jain (http://www.mollypages.org)
002 // The Molly framework is freely distributable under the terms of an
003 // MIT-style license. For details, see the molly pages web site at:
004 // http://www.mollypages.org/. Use, modify, have fun !
005
006 package fc.web.forms;
007
008 import javax.servlet.*;
009 import javax.servlet.http.*;
010 import java.io.*;
011 import java.util.*;
012
013 import fc.jdbc.*;
014 import fc.io.*;
015 import fc.util.*;
016
017 /**
018 Encapsulates a password field.
019 */
020 public final class Password extends MaxSizable
021 {
022 boolean remember = false;
023
024 /**
025 Creates a new password element with the initial value set to
026 an empty string.
027 **/
028 public Password(String name)
029 {
030 this(name, "");
031 }
032
033 /**
034 Creates a new password element with the specified initial
035 value. Note, in most cases the intial value should be and
036 will be an empty string. If the specified value is
037 <tt>null</tt>, then the initial value is set to "" (the
038 empty string).
039 **/
040 public Password(String name, String initialValue)
041 {
042 super(name, initialValue);
043 }
044
045 public Field.Type getType() {
046 return Field.Type.PASSWORD;
047 }
048
049 public void renderImpl(FormData fd, Writer writer) throws IOException
050 {
051 String value = getRenderValue(fd);
052
053 writer.write("<input type='");
054 writer.write(getType().toString());
055
056 writer.write("' name='");
057 writer.write(name);
058 writer.write("'");
059
060 if (value != null) {
061 writer.write("' value='");
062 writer.write(value);
063 writer.write("'");
064 }
065
066 if (! enabled || ! isEnabled(fd)) {
067 writer.write(" disabled");
068 }
069
070 if (size > 0) {
071 writer.write(" size='");
072 writer.write(String.valueOf(size));
073 writer.write("'");
074 }
075
076 if (maxlen > 0) {
077 writer.write(" maxlength='");
078 writer.write(String.valueOf(maxlen));
079 writer.write("'");
080 }
081
082 if (renderStyleTag) {
083 writer.write(" style='");
084 writer.write(styleTag);
085 writer.write("'");
086 }
087
088 final int arlen = arbitraryString.size();
089 for (int n = 0; n < arlen; n++) {
090 writer.write(" ");
091 writer.write(arbitraryString.get(n).toString());
092 }
093
094 writer.write("</input>");
095 }
096
097 } //~class Password