Commit 6ea123ce by Robert Schuster Committed by Mark Wielaard

Fixes documentation and indentation

2004-11-06  Robert Schuster <thebohemian@gmx.net>

       Fixes documentation and indentation
       * java/beans/PropertyEditorSupport.java:
       reworked initial API doc
       (value): changed name from val

2004-11-06  Robert Schuster <thebohemian@gmx.net>

       Updates to 1.5
       * java/beans/PropertyEditorSupport.java
       (PropertyEditorSupport()): Changed modifier to public
       (PropertyEditorSupport(Object): Changed modifier to public
       (setSource): New method
       (getSource): New method

2004-11-06  Robert Schuster <thebohemian@gmx.net>

       Fixes bug #10799
       * java/beans/PropertyEditorSupport.java
       (setValue): Fire property change event

From-SVN: r90170
parent c1df75d1
2004-11-06 Robert Schuster <thebohemian@gmx.net>
Fixes documentation and indentation
* java/beans/PropertyEditorSupport.java:
reworked initial API doc
(value): changed name from val
2004-11-06 Robert Schuster <thebohemian@gmx.net>
Updates to 1.5
* java/beans/PropertyEditorSupport.java
(PropertyEditorSupport()): Changed modifier to public
(PropertyEditorSupport(Object): Changed modifier to public
(setSource): New method
(getSource): New method
2004-11-06 Robert Schuster <thebohemian@gmx.net>
Fixes bug #10799
* java/beans/PropertyEditorSupport.java
(setValue): Fire property change event
2004-11-03 Tom Tromey <tromey@redhat.com> 2004-11-03 Tom Tromey <tromey@redhat.com>
* jni.cc (_Jv_JNI_NewObjectArray): Fixed return type. * jni.cc (_Jv_JNI_NewObjectArray): Fixed return type.
......
/* java.beans.PropertyEditorSupport /* java.beans.PropertyEditorSupport
Copyright (C) 1998 Free Software Foundation, Inc. Copyright (C) 1998, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath. This file is part of GNU Classpath.
...@@ -7,7 +7,7 @@ GNU Classpath is free software; you can redistribute it and/or modify ...@@ -7,7 +7,7 @@ GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option) the Free Software Foundation; either version 2, or (at your option)
any later version. any later version.
GNU Classpath is distributed in the hope that it will be useful, but GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
...@@ -38,169 +38,228 @@ exception statement from your version. */ ...@@ -38,169 +38,228 @@ exception statement from your version. */
package java.beans; package java.beans;
/** /**
** PropertyEditorSupport helps with PropertyEditors, * PropertyEditorSupport helps with PropertyEditors,
** implementing base functionality that they usually must * implementing base functionality that they usually must
** have but which is a pain to implement. You may extend * have but which is a pain to implement. You may extend
** from this class or use it as a standalone.<P> * from this class or use it as a standalone.<P>
** *
** This class does not do any painting or actual editing. * This class does not do any painting or actual editing.
** For that, you must use or extend it. See the * For that, you must use or extend it. See the
** PropertyEditor class for better descriptions of what * PropertyEditor class for better descriptions of what
** the various methods do. * the various methods do.
** *
** @author John Keiser * @author John Keiser
** @since JDK1.1 * @author Robert Schuster
** @version 1.1.0, 29 Jul 1998 * @since 1.1
**/ * @status updated to 1.5
*/
public class PropertyEditorSupport implements PropertyEditor { public class PropertyEditorSupport implements PropertyEditor
Object eventSource; {
Object val; Object eventSource;
PropertyChangeSupport pSupport; Object value;
PropertyChangeSupport pSupport;
/** Call this constructor when you are deriving from
** PropertyEditorSupport. /** Call this constructor when you are deriving from
**/ * PropertyEditorSupport.
protected PropertyEditorSupport() { *
this.eventSource = this; * Using this constructor the event source is this PropertyEditorSupport
this.pSupport = new PropertyChangeSupport(this); * instance itself.
} *
* @since 1.5
/** Call this constructor when you are using * @status this was <code>protected</code> prior to 1.5
** PropertyEditorSupport as a helper object. */
** @param eventSource the source to use when firing public PropertyEditorSupport()
** property change events. {
**/ eventSource = this;
protected PropertyEditorSupport(Object eventSource) { pSupport = new PropertyChangeSupport(this);
this.eventSource = eventSource; }
this.pSupport = new PropertyChangeSupport(this);
} /** Call this constructor when you are using
* PropertyEditorSupport as a helper object.
/** Set the current value of the property. *
** <STRONG>Implementation Note</STRONG> Sun does not * This constructor throws a NullPointerException when <code>source</code> is <code>null</code>,
** state what exactly this version of the method does. * for compatibility reasons with J2SDK 1.5.0 .
** Thus, in this implementation, it sets the value, and *
** then if the old and new values are different, it * @param source The source to use when firing
** fires a property change event with no property name * property change events.
** and the old and new values. * @since 1.5
** @param val the new value for the property. * @status this was <code>protected</code> prior to 1.5
**/ */
public void setValue(Object val) { public PropertyEditorSupport(Object source)
Object oldVal = val; {
this.val = val; // note: constructor rejects source being null for the sake of compatibility
if(!oldVal.equals(val)) { // with official 1.5.0 implementation
pSupport.firePropertyChange(null,oldVal,val); if (source == null)
} throw new NullPointerException("Event source must not be null.");
}
eventSource = source;
/** Get the current value of the property. pSupport = new PropertyChangeSupport(eventSource);
** @return the current value of the property. }
**/
public Object getValue() { /** Sets the current value of the property and a property change
return val; * event is fired to all registered PropertyChangeListener instances.
} *
* @param newValue The new value for the property.
/** Get whether this object is paintable or not. */
** @return <CODE>false</CODE> public void setValue(Object newValue)
**/ {
public boolean isPaintable() { value = newValue;
return false;
} // specification in java.beans.PropertyChangeEvent says
// that without a property name (first argument) the
/** Paint this object. This class does nothing in // new and the old value should always be null
** this method. pSupport.firePropertyChange(null, null, null);
**/ }
public void paintValue(java.awt.Graphics g, java.awt.Rectangle r) {
} /** Gets the current value of the property.
*
/** Get the Java initialization String for the current * @return the current value of the property.
** value of the Object. This class returns gibberish or */
** null (though the spec does not say which).<P> public Object getValue()
** <STRONG>Implementation Note:</STRONG> This class {
** returns the string "@$#^" to make sure the code will return value;
** be broken, so that you will know to override it when }
** you create your own property editor.
** @return the Java initialization string. /** Gets whether this object is paintable or not.
**/ *
public String getJavaInitializationString() { * @return <CODE>false</CODE>
return "@$#^"; */
} public boolean isPaintable()
{
/** Get the value as text. return false;
** In this class, you cannot count on getAsText() doing }
** anything useful, although in this implementation I
** do toString(). /** Paints this object. This class does nothing in
** @return the value as text. * this method.
**/ */
public String getAsText() { public void paintValue(java.awt.Graphics g, java.awt.Rectangle r)
return val != null ? val.toString() : "null"; {
} }
/** Set the value as text.
** In this class, you cannot count on setAsText() doing
** anything useful across implementations.
** <STRONG>Implementation Note:</STRONG> In this
** implementation it checks if the String is "null", and
** if it is, sets the value to null, otherwise it throws
** an IllegalArgumentException.
** @param s the text to convert to a new value.
** @exception IllegalArgumentException if the text is
** malformed.
**/
public void setAsText(String s) throws IllegalArgumentException {
if(s.equals("null")) {
setValue(null);
} else {
throw new IllegalArgumentException();
}
}
/** Returns a list of possible choices for the value.
** @return <CODE>null</CODE>
**/
public String[] getTags() {
return null;
}
/** Return a custom component to edit the value.
** @return <CODE>null</CODE> in this class.
**/
public java.awt.Component getCustomEditor() {
return null;
}
/** Find out whether this property editor supports a
** custom component to edit its value.
** @return <CODE>false</CODE> in this class.
**/
public boolean supportsCustomEditor() {
return false;
}
/** Add a property change listener to this property editor.
** @param l the listener to add.
**/
public void addPropertyChangeListener(PropertyChangeListener l) {
pSupport.addPropertyChangeListener(l);
}
/** Remove a property change listener from this property editor.
** @param l the listener to remove.
**/
public void removePropertyChangeListener(PropertyChangeListener l) {
pSupport.removePropertyChangeListener(l);
}
/** Notify people that we've changed, although we don't
** tell them just how. The only thing I can think of to
** send in the event is the new value (since the old value
** is unavailable and there is no property name).
** I confess I do not understand the point of this method.
**/
public void firePropertyChange() {
pSupport.firePropertyChange(null,null,val);
}
}
/** Gets the Java initialization String for the current
* value of the Object. This class returns gibberish or
* null (though the spec does not say which).<P>
* <STRONG>Implementation Note:</STRONG> This class
* returns the string "@$#^" to make sure the code will
* be broken, so that you will know to override it when
* you create your own property editor.
*
* @return the Java initialization string.
*/
public String getJavaInitializationString()
{
return "@$#^";
}
/** Gets the value as text.
* In this class, you cannot count on getAsText() doing
* anything useful, although in this implementation I
* do toString().
*
* @return the value as text.
*/
public String getAsText()
{
return value != null ? value.toString() : "null";
}
/** Sets the value as text.
* In this class, you cannot count on setAsText() doing
* anything useful across implementations.
* <STRONG>Implementation Note:</STRONG> In this
* implementation it checks if the String is "null", and
* if it is, sets the value to null, otherwise it throws
* an IllegalArgumentException.
*
* @param s the text to convert to a new value.
* @exception IllegalArgumentException if the text is
* malformed.
*/
public void setAsText(String s) throws IllegalArgumentException
{
if (s.equals("null"))
setValue(null);
else
throw new IllegalArgumentException();
}
/** Returns a list of possible choices for the value.
*
* @return <CODE>null</CODE>
*/
public String[] getTags()
{
return null;
}
/** Returns a custom component to edit the value.
*
* @return <CODE>null</CODE> in this class.
*/
public java.awt.Component getCustomEditor()
{
return null;
}
/** Finds out whether this property editor supports a
* custom component to edit its value.
*
* @return <CODE>false</CODE> in this class.
*/
public boolean supportsCustomEditor()
{
return false;
}
/** Adds a property change listener to this property editor.
*
* @param l the listener to add.
*/
public void addPropertyChangeListener(PropertyChangeListener l)
{
pSupport.addPropertyChangeListener(l);
}
/** Removes a property change listener from this property editor.
*
* @param l the listener to remove.
*/
public void removePropertyChangeListener(PropertyChangeListener l)
{
pSupport.removePropertyChangeListener(l);
}
/** Notifies people that we've changed, although we don't
* tell them just how.
*/
public void firePropertyChange()
{
pSupport.firePropertyChange(null, null, null);
}
/** Returns the bean that is used as the source of events.
*
* @return The event source object
* @since 1.5
*/
public Object getSource()
{
return eventSource;
}
/** Sets the bean that is used as the source of events
* when property changes occur.
*
* The event source bean is for informational purposes only
* and should not be changed by the <code>PropertyEditor</code>.
*
* @param source
* @since 1.5
*/
public void setSource(Object source)
{
eventSource = source;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment