Overview Package Class Use Source Tree Index Deprecated About
GNU Classpath (0.95)
Frames | No Frames

Source for java.beans.PropertyEditorSupport

 1:  /* java.beans.PropertyEditorSupport
 2:  Copyright (C) 1998, 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 java.beans;
 40: 
 41: 
 42:  /**
 43:  * PropertyEditorSupport helps with PropertyEditors,
 44:  * implementing base functionality that they usually must
 45:  * have but which is a pain to implement. You may extend
 46:  * from this class or use it as a standalone.<P>
 47:  *
 48:  * This class does not do any painting or actual editing.
 49:  * For that, you must use or extend it. See the
 50:  * PropertyEditor class for better descriptions of what
 51:  * the various methods do.
 52:  *
 53:  * @author John Keiser
 54:  * @author Robert Schuster
 55:  * @since 1.1
 56:  * @status updated to 1.5
 57:  */
 58:  public class PropertyEditorSupport implements PropertyEditor
 59: {
 60:  Object eventSource;
 61:  Object value;
 62:  PropertyChangeSupport pSupport;
 63: 
 64:  /** Call this constructor when you are deriving from
 65:  * PropertyEditorSupport.
 66:  *
 67:  * Using this constructor the event source is this PropertyEditorSupport
 68:  * instance itself.
 69:  *
 70:  * @since 1.5
 71:  * @specnote this was <code>protected</code> prior to 1.5
 72:  */
 73:  public PropertyEditorSupport()
 74:  {
 75:  eventSource = this;
 76:  pSupport = new PropertyChangeSupport(this);
 77:  }
 78: 
 79:  /** Call this constructor when you are using
 80:  * PropertyEditorSupport as a helper object.
 81:  *
 82:  * This constructor throws a NullPointerException when <code>source</code> is <code>null</code>,
 83:  * for compatibility reasons with J2SDK 1.5.0 .
 84:  *
 85:  * @param source The source to use when firing
 86:  * property change events.
 87:  * @since 1.5
 88:  * @specnote this was <code>protected</code> prior to 1.5
 89:  */
 90:  public PropertyEditorSupport(Object source)
 91:  {
 92:  // note: constructor rejects source being null for the sake of compatibility
 93:  // with official 1.5.0 implementation
 94:  if (source == null)
 95:  throw new NullPointerException("Event source must not be null.");
 96: 
 97:  eventSource = source;
 98:  pSupport = new PropertyChangeSupport(eventSource);
 99:  }
 100: 
 101:  /** Sets the current value of the property and a property change
 102:  * event is fired to all registered PropertyChangeListener instances.
 103:  *
 104:  * @param newValue The new value for the property.
 105:  */
 106:  public void setValue(Object newValue)
 107:  {
 108:  value = newValue;
 109: 
 110:  // specification in java.beans.PropertyChangeEvent says
 111:  // that without a property name (first argument) the
 112:  // new and the old value should always be null
 113:  pSupport.firePropertyChange(null, null, null);
 114:  }
 115: 
 116:  /** Gets the current value of the property.
 117:  *
 118:  * @return the current value of the property.
 119:  */
 120:  public Object getValue()
 121:  {
 122:  return value;
 123:  }
 124: 
 125:  /** Gets whether this object is paintable or not.
 126:  *
 127:  * @return <CODE>false</CODE>
 128:  */
 129:  public boolean isPaintable()
 130:  {
 131:  return false;
 132:  }
 133: 
 134:  /** Paints this object. This class does nothing in
 135:  * this method.
 136:  */
 137:  public void paintValue(java.awt.Graphics g, java.awt.Rectangle r)
 138:  {
 139:  }
 140: 
 141:  /** Gets the Java initialization String for the current
 142:  * value of the Object. This class returns gibberish or
 143:  * null (though the spec does not say which).<P>
 144:  * <STRONG>Implementation Note:</STRONG> This class
 145:  * returns the string "@$#^" to make sure the code will
 146:  * be broken, so that you will know to override it when
 147:  * you create your own property editor.
 148:  *
 149:  * @return the Java initialization string.
 150:  */
 151:  public String getJavaInitializationString()
 152:  {
 153:  return "@$#^";
 154:  }
 155: 
 156:  /** Gets the value as text.
 157:  * In this class, you cannot count on getAsText() doing
 158:  * anything useful, although in this implementation I
 159:  * do toString().
 160:  *
 161:  * @return the value as text.
 162:  */
 163:  public String getAsText()
 164:  {
 165:  return value != null ? value.toString() : "null";
 166:  }
 167: 
 168:  /** Sets the value as text.
 169:  * In this class, you cannot count on setAsText() doing
 170:  * anything useful across implementations.
 171:  * <STRONG>Implementation Note:</STRONG> In this
 172:  * implementation it checks if the String is "null", and
 173:  * if it is, sets the value to null, otherwise it throws
 174:  * an IllegalArgumentException.
 175:  *
 176:  * @param s the text to convert to a new value.
 177:  * @exception IllegalArgumentException if the text is
 178:  * malformed.
 179:  */
 180:  public void setAsText(String s) throws IllegalArgumentException
 181:  {
 182:  if (s.equals("null"))
 183:  setValue(null);
 184:  else
 185:  throw new IllegalArgumentException();
 186:  }
 187: 
 188:  /** Returns a list of possible choices for the value.
 189:  *
 190:  * @return <CODE>null</CODE>
 191:  */
 192:  public String[] getTags()
 193:  {
 194:  return null;
 195:  }
 196: 
 197:  /** Returns a custom component to edit the value.
 198:  *
 199:  * @return <CODE>null</CODE> in this class.
 200:  */
 201:  public java.awt.Component getCustomEditor()
 202:  {
 203:  return null;
 204:  }
 205: 
 206:  /** Finds out whether this property editor supports a
 207:  * custom component to edit its value.
 208:  *
 209:  * @return <CODE>false</CODE> in this class.
 210:  */
 211:  public boolean supportsCustomEditor()
 212:  {
 213:  return false;
 214:  }
 215: 
 216:  /** Adds a property change listener to this property editor.
 217:  *
 218:  * @param l the listener to add.
 219:  */
 220:  public void addPropertyChangeListener(PropertyChangeListener l)
 221:  {
 222:  pSupport.addPropertyChangeListener(l);
 223:  }
 224: 
 225:  /** Removes a property change listener from this property editor.
 226:  *
 227:  * @param l the listener to remove.
 228:  */
 229:  public void removePropertyChangeListener(PropertyChangeListener l)
 230:  {
 231:  pSupport.removePropertyChangeListener(l);
 232:  }
 233: 
 234:  /** Notifies people that we've changed, although we don't
 235:  * tell them just how.
 236:  */
 237:  public void firePropertyChange()
 238:  {
 239:  pSupport.firePropertyChange(null, null, null);
 240:  }
 241: 
 242:  /** Returns the bean that is used as the source of events.
 243:  *
 244:  * @return The event source object
 245:  * @since 1.5
 246:  */
 247:  public Object getSource()
 248:  {
 249:  return eventSource;
 250:  }
 251: 
 252:  /** Sets the bean that is used as the source of events
 253:  * when property changes occur.
 254:  *
 255:  * The event source bean is for informational purposes only
 256:  * and should not be changed by the <code>PropertyEditor</code>.
 257:  *
 258:  * @param source
 259:  * @since 1.5
 260:  */
 261:  public void setSource(Object source)
 262:  {
 263:  eventSource = source;
 264:  }
 265: }
Overview Package Class Use Source Tree Index Deprecated About
GNU Classpath (0.95)

AltStyle によって変換されたページ (->オリジナル) /