Source for javax.swing.JPasswordField

   1: /* JPasswordField.java --
   2:    Copyright (C) 2002, 2004 Free Software Foundation, Inc.
   3: 
   4: This file is part of GNU Classpath.
   5: 
   6: GNU Classpath is free software; you can redistribute it and/or modify
   7: it under the terms of the GNU General Public License as published by
   8: the Free Software Foundation; either version 2, or (at your option)
   9: any later version.
  10: 
  11: GNU Classpath is distributed in the hope that it will be useful, but
  12: WITHOUT ANY WARRANTY; without even the implied warranty of
  13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  14: General Public License for more details.
  15: 
  16: You should have received a copy of the GNU General Public License
  17: along with GNU Classpath; see the file COPYING.  If not, write to the
  18: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  19: 02110-1301 USA.
  20: 
  21: Linking this library statically or dynamically with other modules is
  22: making a combined work based on this library.  Thus, the terms and
  23: conditions of the GNU General Public License cover the whole
  24: combination.
  25: 
  26: As a special exception, the copyright holders of this library give you
  27: permission to link this library with independent modules to produce an
  28: executable, regardless of the license terms of these independent
  29: modules, and to copy and distribute the resulting executable under
  30: terms of your choice, provided that you also meet, for each linked
  31: independent module, the terms and conditions of the license of that
  32: module.  An independent module is a module which is not derived from
  33: or based on this library.  If you modify this library, you may extend
  34: this exception to your version of the library, but you are not
  35: obligated to do so.  If you do not wish to do so, delete this
  36: exception statement from your version. */
  37: 
  38: 
  39: package javax.swing;
  40: 
  41: import java.io.IOException;
  42: import java.io.ObjectOutputStream;
  43: 
  44: import javax.accessibility.AccessibleContext;
  45: import javax.accessibility.AccessibleRole;
  46: import javax.swing.text.BadLocationException;
  47: import javax.swing.text.Document;
  48: 
  49: /**
  50:  * class JPasswordField
  51:  * 
  52:  * @author Andrew Selkirk
  53:  * @version 1.0
  54:  */
  55: public class JPasswordField extends JTextField
  56: {
  57:   /**
  58:    * AccessibleJPasswordField
  59:    */
  60:   protected class AccessibleJPasswordField extends AccessibleJTextField
  61:   {
  62:     private static final long serialVersionUID = -8477039424200681086L;
  63: 
  64:     /**
  65:      * Constructor AccessibleJPasswordField
  66:      */
  67:     protected AccessibleJPasswordField()
  68:     {
  69:     }
  70: 
  71:     /**
  72:      * getAccessibleRole
  73:      * 
  74:      * @return AccessibleRole
  75:      */
  76:     public AccessibleRole getAccessibleRole()
  77:     {
  78:       return AccessibleRole.PASSWORD_TEXT;
  79:     }
  80:   }
  81: 
  82:   /**
  83:    * echoChar.  Default is 0.
  84:    */
  85:   private char echoChar = 0;
  86: 
  87:   /**
  88:    * Creates a <code>JPasswordField</code> object.
  89:    */
  90:   public JPasswordField()
  91:   {
  92:     this(null, null, 0);
  93:   }
  94: 
  95:   /**
  96:    * Creates a <code>JPasswordField</code> object.
  97:    * 
  98:    * @param text the initial text
  99:    */
 100:   public JPasswordField(String text)
 101:   {
 102:     this(null, text, 0);
 103:   }
 104: 
 105:   /**
 106:    * Creates a <code>JPasswordField</code> object.
 107:    * 
 108:    * @param columns the number of columns
 109:    */
 110:   public JPasswordField(int columns)
 111:   {
 112:     this(null, null, columns);
 113:   }
 114: 
 115:   /**
 116:    * Creates a <code>JPasswordField</code> object.
 117:    * 
 118:    * @param text the initial text
 119:    * @param columns the number of columns
 120:    */
 121:   public JPasswordField(String text, int columns)
 122:   {
 123:     this(null, text, columns);
 124:   }
 125: 
 126:   /**
 127:    * Creates a <code>JPasswordField</code> object.
 128:    * 
 129:    * @param document the document to use
 130:    * @param text the initial text
 131:    * @param columns the number of columns
 132:    */
 133:   public JPasswordField(Document document, String text, int columns)
 134:   {
 135:     super(document, text, columns);
 136:   }
 137: 
 138:   /**
 139:    * writeObject
 140:    * 
 141:    * @param stream the stream to write to
 142:    * 
 143:    * @exception IOException if an error occurs
 144:    */
 145:   private void writeObject(ObjectOutputStream stream) throws IOException
 146:   {
 147:     // TODO: Implement me.
 148:   }
 149: 
 150:   /**
 151:    * Returns the <code>UIClassID</code>
 152:    * 
 153:    * @return the string "PasswordFieldUI"
 154:    */
 155:   public String getUIClassID()
 156:   {
 157:     return "PasswordFieldUI";
 158:   }
 159: 
 160:   /**
 161:    * getEchoChar
 162:    * 
 163:    * @return the echo char
 164:    */
 165:   public char getEchoChar()
 166:   {
 167:     return echoChar;
 168:   }
 169: 
 170:   /**
 171:    * setEchoChar
 172:    * 
 173:    * @param echo the echo char
 174:    */
 175:   public void setEchoChar(char echo)
 176:   {
 177:     this.echoChar = echo;
 178:   }
 179: 
 180:   /**
 181:    * echoCharIsSet
 182:    * 
 183:    * @return <code>true</code> if the echo char is set,
 184:    * <code>false</code> otherwise.
 185:    */
 186:   public boolean echoCharIsSet()
 187:   {
 188:     return echoChar == 0;
 189:   }
 190: 
 191:   /**
 192:    * Copies the selected text into the clipboard. This operation is not
 193:    * allowed in a password input field.
 194:    */
 195:   public void copy()
 196:   {
 197:     UIManager.getLookAndFeel().provideErrorFeedback(this);
 198:   }
 199: 
 200:   /**
 201:    * Cuts the selected text and puts it into the clipboard. This operation
 202:    * is not allowed in a password input field.
 203:    */
 204:   public void cut()
 205:   {
 206:     UIManager.getLookAndFeel().provideErrorFeedback(this);
 207:   }
 208: 
 209:   /**
 210:    * getText
 211:    * 
 212:    * @return String
 213:    * 
 214:    * @deprecated
 215:    */
 216:   public String getText()
 217:   {
 218:     return null; // TODO
 219:   }
 220: 
 221:   /**
 222:    * getText
 223:    * 
 224:    * @param offset TODO
 225:    * @param length TODO
 226:    * 
 227:    * @return String
 228:    * 
 229:    * @exception BadLocationException TODO
 230:    *
 231:    * @deprecated
 232:    */
 233:   public String getText(int offset, int length) throws BadLocationException
 234:   {
 235:     return null; // TODO
 236:   }
 237: 
 238:   /**
 239:    * getPassword
 240:    * 
 241:    * @return char[]
 242:    */
 243:   public char[] getPassword()
 244:   {
 245:     return new char[0]; // TODO
 246:   }
 247: 
 248:   /**
 249:    * paramString
 250:    * 
 251:    * @return String
 252:    */
 253:   protected String paramString()
 254:   {
 255:     return null; // TODO
 256:   }
 257: 
 258:   /**
 259:    * getAccessibleContext
 260:    * 
 261:    * @return the <code>AccessibleContext</code> object
 262:    */
 263:   public AccessibleContext getAccessibleContext()
 264:   {
 265:     if (accessibleContext == null)
 266:       accessibleContext = new AccessibleJPasswordField();
 267: 
 268:     return accessibleContext;
 269:   }
 270: }