aboutsummaryrefslogtreecommitdiff
path: root/libjava/doc/java-beans.texi
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/doc/java-beans.texi')
-rw-r--r--libjava/doc/java-beans.texi810
1 files changed, 810 insertions, 0 deletions
diff --git a/libjava/doc/java-beans.texi b/libjava/doc/java-beans.texi
new file mode 100644
index 0000000..2b88871
--- /dev/null
+++ b/libjava/doc/java-beans.texi
@@ -0,0 +1,810 @@
+@deftypemethod BeanDescriptor {public Class} getBeanClass ()
+Get the Bean's class.
+@end deftypemethod
+@deftypemethod BeanDescriptor {public Class} getCustomizerClass ()
+Get the Bean's customizer's class.
+@end deftypemethod
+@deftypemethod BeanInfo {public BeanDescriptor} getBeanDescriptor ()
+Get the general description of this Bean type.
+@end deftypemethod
+@deftypemethod BeanInfo {public EventSetDescriptor} getEventSetDescriptors ()
+Get the events this Bean type fires.
+@end deftypemethod
+@deftypemethod BeanInfo {public int} getDefaultEventIndex ()
+Get the "default" event, basically the one a RAD tool
+ user is most likely to select.
+@end deftypemethod
+@deftypemethod BeanInfo {public PropertyDescriptor} getPropertyDescriptors ()
+Get the properties (get/set method pairs) this Bean
+ type supports.
+@end deftypemethod
+@deftypemethod BeanInfo {public int} getDefaultPropertyIndex ()
+Get the "default" property, basically the one a RAD
+ tool user is most likely to select.
+@end deftypemethod
+@deftypemethod BeanInfo {public MethodDescriptor} getMethodDescriptors ()
+Get the methods this Bean type supports.
+@end deftypemethod
+@deftypemethod BeanInfo {public BeanInfo} getAdditionalBeanInfo ()
+Get additional BeanInfos representing this Bean.
+ In this version of JavaBeans, this method is used so
+ that space and time can be saved by reading a BeanInfo
+ for each class in the hierarchy (super, super(super),
+ and so on).
+
+
+
+ The order of precedence when two pieces of BeanInfo
+ conflict (such as two PropertyDescriptors that have
+ the same name), in order from highest precedence to
+ lowest, is:
+
+@itemize @bullet
+
+
+@item
+This BeanInfo object.
+
+
+@item
+@code{getAdditionalBeanInfo()[getAdditionalBeanInfo().length]}
+
+
+@item
+ ...
+
+
+@item
+@code{getAdditionalBeanInfo()[1]}
+
+
+@item
+@code{getAdditionalBeanInfo()[0]}
+
+
+@end itemize
+
+
+
+
+ <STRONG>Spec Note:</STRONG> It is possible that
+ returning @code{null} from this method could
+ stop Introspection in its tracks, but it is unclear
+ from the spec whether this is the case.
+@end deftypemethod
+@deftypemethod BeanInfo {public Image} getIcon (int@w{ }@var{iconType})
+Get a visual icon for this Bean.
+ A Bean does not have to support icons, and if it does
+ support icons, it does not have to support every single
+ type. Sun recommends that if you only support one
+ type, you support 16x16 color. Sun also notes that you
+ should try to use a type (like GIF) that allows for
+ transparent pixels, so that the background of the RAD
+ tool can show through.
+
+
+
+ <STRONG>Spec Note:</STRONG> If you do not support the
+ type of icon that is being asked for, but you do
+ support another type, it is unclear whether you should
+ return the other type or not. I would presume not.
+@end deftypemethod
+@deftypemethod Beans {public static Object} instantiate (java.lang.ClassLoader@w{ }@var{cl}, java.lang.String@w{ }@var{beanName}) @*throws IOException, ClassNotFoundException
+Allows you to instantiate a Bean. This method takes
+ a ClassLoader from which to read the Bean and the
+ name of the Bean.
+
+
+
+ The Bean name should be a dotted name, like a class.
+ It can represent several things. Beans will search
+ for the Bean using the name like this:
+
+
+
+@itemize @bullet
+
+
+@item
+Searches for a serialized instance of the Bean
+ using getResource(), mangling the Bean name by
+ replacing the dots with slashes and appending .ser
+ (for example, gnu.beans.BlahDeBlah would cause
+ Beans to search for gnu/beans/BlahDeBlah.ser using
+ getResource()).
+
+
+@item
+Searches for the Bean class using the beanName,
+ and then instantiates it with the no-arg constructor.
+ At that point, if it is an Applet, it provides it
+ with AppletContext and AppletStub, and then calls
+ init().
+
+
+@end itemize
+
+@end deftypemethod
+@deftypemethod Beans {public static Object} getInstanceOf (java.lang.Object@w{ }@var{bean}, java.lang.Class@w{ }@var{newClass})
+Get the Bean as a different class type.
+ This should be used instead of casting to get a new
+ type view of a Bean, because in the future there may
+ be new types of Bean, even Beans spanning multiple
+ Objects.
+@end deftypemethod
+@deftypemethod Beans {public static boolean} isInstanceOf (java.lang.Object@w{ }@var{bean}, java.lang.Class@w{ }@var{newBeanClass})
+Determine whether the Bean can be cast to a different
+ class type.
+ This should be used instead of instanceof to determine
+ a Bean's castability, because in the future there may
+ be new types of Bean, even Beans spanning multiple
+ Objects.
+@end deftypemethod
+@deftypemethod Beans {public static boolean} isGuiAvailable ()
+Find out whether the GUI is available to use.
+ Defaults to true.
+@end deftypemethod
+@deftypemethod Beans {public static boolean} isDesignTime ()
+Find out whether it is design time. Design time means
+ we are in a RAD tool.
+ Defaults to false.
+@end deftypemethod
+@deftypemethod Beans {public static void} setGuiAvailable (boolean@w{ }@var{guiAvailable}) @*throws SecurityException
+Set whether the GUI is available to use.
+@end deftypemethod
+@deftypemethod Beans {public static void} setDesignTime (boolean@w{ }@var{designTime}) @*throws SecurityException
+Set whether it is design time. Design time means we
+ are in a RAD tool.
+@end deftypemethod
+@deftypemethod Customizer {public void} setObject (java.lang.Object@w{ }@var{bean})
+Set the object to Customize. This will always be a
+ Bean that had a BeanDescriptor indicating this
+ Customizer.
+@end deftypemethod
+@deftypemethod Customizer {public void} addPropertyChangeListener (java.beans.PropertyChangeListener@w{ }@var{l})
+Add a PropertyChangeListener.
+@end deftypemethod
+@deftypemethod Customizer {public void} removePropertyChangeListener (java.beans.PropertyChangeListener@w{ }@var{l})
+Remove a PropertyChangeListener.
+@end deftypemethod
+@deftypemethod DesignMode {public void} setDesignTime (boolean@w{ }@var{designTime})
+The environment will call this method on your
+ @code{BeanContextChild} when it is registered in a parent
+ @code{BeanContext} or when behavior needs to switch from
+ design time to runtime behavior (or vice versa).
+
+
+
+
+ @code{BeanContext}s are required to fire
+ @code{PropertyChangeEvent}s when properties change.
+ @code{designTime} is a property, and therefore when you
+ implement @code{setDesignTime()}, you need to fire a
+ @code{PropertyChangeEvent} with the old value, the new
+ value and using @code{PROPERTYNAME} as the property name.
+@end deftypemethod
+@deftypemethod DesignMode {public boolean} isDesignTime ()
+This method should tell whether it is design time or runtime.
+@end deftypemethod
+@deftypemethod EventSetDescriptor {public Class} getListenerType ()
+Get the class that contains the event firing methods.
+@end deftypemethod
+@deftypemethod EventSetDescriptor {public Method} getListenerMethods ()
+Get the event firing methods.
+@end deftypemethod
+@deftypemethod EventSetDescriptor {public MethodDescriptor} getListenerMethodDescriptors ()
+Get the event firing methods as MethodDescriptors.
+@end deftypemethod
+@deftypemethod EventSetDescriptor {public Method} getAddListenerMethod ()
+Get the add listener method.
+@end deftypemethod
+@deftypemethod EventSetDescriptor {public Method} getRemoveListenerMethod ()
+Get the remove listener method.
+@end deftypemethod
+@deftypemethod EventSetDescriptor {public void} setUnicast (boolean@w{ }@var{unicast})
+Set whether or not multiple listeners may be added.
+@end deftypemethod
+@deftypemethod EventSetDescriptor {public boolean} isUnicast ()
+Get whether or not multiple listeners may be added. (Defaults to false.)
+@end deftypemethod
+@deftypemethod EventSetDescriptor {public void} setInDefaultEventSet (boolean@w{ }@var{inDefaultEventSet})
+Set whether or not this is in the default event set.
+@end deftypemethod
+@deftypemethod EventSetDescriptor {public boolean} isInDefaultEventSet ()
+Get whether or not this is in the default event set. (Defaults to true.)
+@end deftypemethod
+@deftypemethod FeatureDescriptor {public String} getName ()
+Get the programmatic name of this feature.
+@end deftypemethod
+@deftypemethod FeatureDescriptor {public void} setName (java.lang.String@w{ }@var{name})
+Set the programmatic name of this feature.
+@end deftypemethod
+@deftypemethod FeatureDescriptor {public String} getDisplayName ()
+Get the localized (display) name of this feature.
+@end deftypemethod
+@deftypemethod FeatureDescriptor {public void} setDisplayName (java.lang.String@w{ }@var{displayName})
+Set the localized (display) name of this feature.
+@end deftypemethod
+@deftypemethod FeatureDescriptor {public String} getShortDescription ()
+Get the localized short description for this feature.
+@end deftypemethod
+@deftypemethod FeatureDescriptor {public void} setShortDescription (java.lang.String@w{ }@var{shortDescription})
+Set the localized short description for this feature.
+@end deftypemethod
+@deftypemethod FeatureDescriptor {public boolean} isExpert ()
+Indicates whether this feature is for expert use only.
+@end deftypemethod
+@deftypemethod FeatureDescriptor {public void} setExpert (boolean@w{ }@var{expert})
+Set whether this feature is for expert use only.
+@end deftypemethod
+@deftypemethod FeatureDescriptor {public boolean} isHidden ()
+Indicates whether this feature is for use by tools only.
+ If it is for use by tools only, then it should not be displayed.
+@end deftypemethod
+@deftypemethod FeatureDescriptor {public void} setHidden (boolean@w{ }@var{hidden})
+Set whether this feature is for use by tools only.
+ If it is for use by tools only, then it should not be displayed.
+@end deftypemethod
+@deftypemethod FeatureDescriptor {public Object} getValue (java.lang.String@w{ }@var{name})
+Get an arbitrary value set with setValue().
+@end deftypemethod
+@deftypemethod FeatureDescriptor {public void} setValue (java.lang.String@w{ }@var{name}, java.lang.Object@w{ }@var{value})
+Set an arbitrary string-value pair with this feature.
+@end deftypemethod
+@deftypemethod FeatureDescriptor {public Enumeration} attributeNames ()
+Get a list of the programmatic key names set with setValue().
+@end deftypemethod
+@deftypemethod IndexedPropertyDescriptor {public Class} getIndexedPropertyType ()
+
+@end deftypemethod
+@deftypemethod IndexedPropertyDescriptor {public Method} getIndexedReadMethod ()
+
+@end deftypemethod
+@deftypemethod IndexedPropertyDescriptor {public Method} getIndexedWriteMethod ()
+
+@end deftypemethod
+@deftypemethod Introspector {public static BeanInfo} getBeanInfo (java.lang.Class@w{ }@var{beanClass}) @*throws IntrospectionException
+Get the BeanInfo for class @code{beanClass},
+ first by looking for explicit information, next by
+ using standard design patterns to determine
+ information about the class.
+@end deftypemethod
+@deftypemethod Introspector {public static BeanInfo} getBeanInfo (java.lang.Class@w{ }@var{beanClass}, java.lang.Class@w{ }@var{stopClass}) @*throws IntrospectionException
+Get the BeanInfo for class @code{beanClass},
+ first by looking for explicit information, next by
+ using standard design patterns to determine
+ information about the class. It crawls up the
+ inheritance tree until it hits @code{topClass}.
+@end deftypemethod
+@deftypemethod Introspector {public static String} getBeanInfoSearchPath ()
+Get the search path for BeanInfo classes.
+@end deftypemethod
+@deftypemethod Introspector {public static void} setBeanInfoSearchPath (java.lang.String[]@w{ }@var{beanInfoSearchPath})
+Set the search path for BeanInfo classes.
+@end deftypemethod
+@deftypemethod Introspector {public static String} decapitalize (java.lang.String@w{ }@var{name})
+A helper method to convert a name to standard Java
+ naming conventions: anything with two capitals as the
+ first two letters remains the same, otherwise the
+ first letter is decapitalized. URL = URL, I = i,
+ MyMethod = myMethod.
+@end deftypemethod
+@deftypemethod MethodDescriptor {public ParameterDescriptor} getParameterDescriptors ()
+Get the parameter descriptors from this method.
+ Since MethodDescriptor has no way of determining what
+ the parameter names were, this defaults to null.
+@end deftypemethod
+@deftypemethod MethodDescriptor {public Method} getMethod ()
+Get the method this MethodDescriptor represents.
+@end deftypemethod
+@deftypemethod PropertyChangeEvent {public String} getPropertyName ()
+Get the property name.
+@end deftypemethod
+@deftypemethod PropertyChangeEvent {public Object} getOldValue ()
+Get the property's old value.
+@end deftypemethod
+@deftypemethod PropertyChangeEvent {public Object} getNewValue ()
+Get the property's new value.
+@end deftypemethod
+@deftypemethod PropertyChangeEvent {public void} setPropagationId (java.lang.Object@w{ }@var{propagationId})
+Set the propagation ID. This is a way for the event
+ to be passed from hand to hand and retain a little
+ extra state. Right now it is unused, but it should
+ be propagated anyway so that future versions of
+ JavaBeans can use it, for God knows what.
+@end deftypemethod
+@deftypemethod PropertyChangeEvent {public Object} getPropagationId ()
+Get the propagation ID.
+@end deftypemethod
+@deftypemethod PropertyChangeListener {public void} propertyChange (java.beans.PropertyChangeEvent@w{ }@var{e})
+Fired after a Bean's property has changed.
+@end deftypemethod
+@deftypemethod PropertyChangeSupport {public void} addPropertyChangeListener (java.beans.PropertyChangeListener@w{ }@var{l})
+Adds a PropertyChangeListener to the list of listeners.
+ All property change events will be sent to this listener.
+
+
+
+
+ The listener add is not unique: that is, <em>n</em> adds with
+ the same listener will result in <em>n</em> events being sent
+ to that listener for every property change.
+
+
+
+
+ Adding a null listener will cause undefined behavior.
+@end deftypemethod
+@deftypemethod PropertyChangeSupport {public void} addPropertyChangeListener (java.lang.String@w{ }@var{propertyName}, java.beans.PropertyChangeListener@w{ }@var{l})
+Adds a PropertyChangeListener listening on the specified property.
+ Events will be sent to the listener for that particular property.
+
+
+
+
+ The listener add is not unique; that is, <em>n</em> adds on a
+ particular property for a particular listener will result in
+ <em>n</em> events being sent to that listener when that
+ property is changed.
+
+
+
+
+ The effect is cumulative, too; if you are registered to listen
+ to receive events on all property changes, and then you
+ register on a particular property, you will receive change
+ events for that property twice.
+
+
+
+
+ Adding a null listener will cause undefined behavior.
+@end deftypemethod
+@deftypemethod PropertyChangeSupport {public void} removePropertyChangeListener (java.beans.PropertyChangeListener@w{ }@var{l})
+Removes a PropertyChangeListener from the list of listeners.
+ If any specific properties are being listened on, they must
+ be deregistered by themselves; this will only remove the
+ general listener to all properties.
+
+
+
+
+ If @code{add()} has been called multiple times for a
+ particular listener, @code{remove()} will have to be
+ called the same number of times to deregister it.
+@end deftypemethod
+@deftypemethod PropertyChangeSupport {public void} removePropertyChangeListener (java.lang.String@w{ }@var{propertyName}, java.beans.PropertyChangeListener@w{ }@var{l})
+Removes a PropertyChangeListener from listening to a specific property.
+
+
+
+
+ If @code{add()} has been called multiple times for a
+ particular listener on a property, @code{remove()} will
+ have to be called the same number of times to deregister it.
+@end deftypemethod
+@deftypemethod PropertyChangeSupport {public void} firePropertyChange (java.beans.PropertyChangeEvent@w{ }@var{event})
+Fire a PropertyChangeEvent to all the listeners.
+@end deftypemethod
+@deftypemethod PropertyChangeSupport {public void} firePropertyChange (java.lang.String@w{ }@var{propertyName}, java.lang.Object@w{ }@var{oldVal}, java.lang.Object@w{ }@var{newVal})
+Fire a PropertyChangeEvent containing the old and new values of the property to all the listeners.
+@end deftypemethod
+@deftypemethod PropertyChangeSupport {public void} firePropertyChange (java.lang.String@w{ }@var{propertyName}, boolean@w{ }@var{oldVal}, boolean@w{ }@var{newVal})
+Fire a PropertyChangeEvent containing the old and new values of the property to all the listeners.
+@end deftypemethod
+@deftypemethod PropertyChangeSupport {public void} firePropertyChange (java.lang.String@w{ }@var{propertyName}, int@w{ }@var{oldVal}, int@w{ }@var{newVal})
+Fire a PropertyChangeEvent containing the old and new values of the property to all the listeners.
+@end deftypemethod
+@deftypemethod PropertyChangeSupport {public boolean} hasListeners (java.lang.String@w{ }@var{propertyName})
+Tell whether the specified property is being listened on or not.
+ This will only return @code{true} if there are listeners
+ on all properties or if there is a listener specifically on this
+ property.
+@end deftypemethod
+@deftypemethod PropertyDescriptor {public Class} getPropertyType ()
+Get the property type.
+ This is the type the get method returns and the set method
+ takes in.
+@end deftypemethod
+@deftypemethod PropertyDescriptor {public Method} getReadMethod ()
+Get the get method. Why they call it readMethod here and
+ get everywhere else is beyond me.
+@end deftypemethod
+@deftypemethod PropertyDescriptor {public Method} getWriteMethod ()
+Get the set method. Why they call it writeMethod here and
+ set everywhere else is beyond me.
+@end deftypemethod
+@deftypemethod PropertyDescriptor {public boolean} isBound ()
+Get whether the property is bound. Defaults to false.
+@end deftypemethod
+@deftypemethod PropertyDescriptor {public void} setBound (boolean@w{ }@var{bound})
+Set whether the property is bound.
+ As long as the the bean implements addPropertyChangeListener() and
+ removePropertyChangeListener(), setBound(true) may safely be called.
+
+
+ If these things are not true, then the behavior of the system
+ will be undefined.
+
+
+
+ When a property is bound, its set method is required to fire the
+ @code{PropertyChangeListener.propertyChange())} event
+ after the value has changed.
+@end deftypemethod
+@deftypemethod PropertyDescriptor {public boolean} isConstrained ()
+Get whether the property is constrained. Defaults to false.
+@end deftypemethod
+@deftypemethod PropertyDescriptor {public void} setConstrained (boolean@w{ }@var{constrained})
+Set whether the property is constrained.
+ If the set method throws @code{java.beans.PropertyVetoException}
+ (or subclass thereof) and the bean implements addVetoableChangeListener()
+ and removeVetoableChangeListener(), then setConstrained(true) may safely
+ be called. Otherwise, the system behavior is undefined.
+ <B>Spec note:</B> given those strict parameters, it would be nice if it
+ got set automatically by detection, but oh well.
+
+
+ When a property is constrained, its set method is required to:
+
+
+
+@itemize @bullet
+
+
+@item
+Fire the @code{VetoableChangeListener.vetoableChange()}
+ event notifying others of the change and allowing them a chance to
+ say it is a bad thing.
+
+
+@item
+If any of the listeners throws a PropertyVetoException, then
+ it must fire another vetoableChange() event notifying the others
+ of a reversion to the old value (though, of course, the change
+ was never made). Then it rethrows the PropertyVetoException and
+ exits.
+
+
+@item
+If all has gone well to this point, the value may be changed.
+
+
+@end itemize
+
+@end deftypemethod
+@deftypemethod PropertyDescriptor {public Class} getPropertyEditorClass ()
+Get the PropertyEditor class. Defaults to null.
+@end deftypemethod
+@deftypemethod PropertyDescriptor {public void} setPropertyEditorClass (java.lang.Class@w{ }@var{propertyEditorClass})
+Set the PropertyEditor class. If the class does not implement
+ the PropertyEditor interface, you will likely get an exception
+ late in the game.
+@end deftypemethod
+@deftypemethod PropertyEditor {public void} setValue (java.lang.Object@w{ }@var{value})
+Called by the RAD tool to set the value of this property for the PropertyEditor.
+ If the property type is native, it should be wrapped in the appropriate
+ wrapper type.
+@end deftypemethod
+@deftypemethod PropertyEditor {public Object} getValue ()
+Accessor method to get the current value the PropertyEditor is working with.
+ If the property type is native, it will be wrapped in the appropriate
+ wrapper type.
+@end deftypemethod
+@deftypemethod PropertyEditor {public void} setAsText (java.lang.String@w{ }@var{text}) @*throws IllegalArgumentException
+Set the value of this property using a String.
+ Whether or not this PropertyEditor is editing a String type, this converts
+ the String into the type of the PropertyEditor.
+@end deftypemethod
+@deftypemethod PropertyEditor {public String} getAsText ()
+Get the value of this property in String format.
+ Many times this can simply use Object.toString().
+
+
+ Return null if you do not support getAsText()/setAsText().
+ @code{setAsText(getAsText())} should be valid; i.e. the stuff you spit out in
+ getAsText() should be able to go into setAsText().
+@end deftypemethod
+@deftypemethod PropertyEditor {public String} getTags ()
+Get a list of possible Strings which this property type can have.
+ The value of these will be used by the RAD tool to construct some sort
+ of list box or to check text box input, and the resulting String passed
+ to setAsText() should be one of these. Note, however, that like most things
+ with this mammoth, unwieldy interface, this is not guaranteed. Thus, you
+ must check the value in setAsText() anyway.
+@end deftypemethod
+@deftypemethod PropertyEditor {public boolean} isPaintable ()
+The RAD tool calls this to find out whether the PropertyEditor can paint itself.
+@end deftypemethod
+@deftypemethod PropertyEditor {public void} paintValue (java.awt.Graphics@w{ }@var{g}, java.awt.Rectangle@w{ }@var{bounds})
+The RAD tool calls this to paint the actual value of the property.
+ The Graphics context will have the same current font, color, etc. as the
+ parent Container. You may safely change the font, color, etc. and not
+ change them back.
+
+
+ This method should do a silent no-op if isPaintable() is false.
+@end deftypemethod
+@deftypemethod PropertyEditor {public boolean} supportsCustomEditor ()
+The RAD tool calls this to find out whether the PropertyEditor supports a custom component to edit and display itself.
+@end deftypemethod
+@deftypemethod PropertyEditor {public Component} getCustomEditor ()
+The RAD tool calls this to grab the component that can edit this type.
+ The component may be painted anywhere the RAD tool wants to paint it--
+ even in its own window.
+
+
+ The component must hook up with the PropertyEditor and, whenever a
+ change to the value is made, fire a PropertyChangeEvent to the source.
+
+
+@end deftypemethod
+@deftypemethod PropertyEditor {public void} addPropertyChangeListener (java.beans.PropertyChangeListener@w{ }@var{listener})
+Adds a property change listener to this PropertyEditor.
+@end deftypemethod
+@deftypemethod PropertyEditor {public void} removePropertyChangeListener (java.beans.PropertyChangeListener@w{ }@var{listener})
+Removes a property change listener from this PropertyEditor.
+@end deftypemethod
+@deftypemethod PropertyEditor {public String} getJavaInitializationString ()
+Get a Java language-specific String which could be used to create an Object
+ of the specified type. Every PropertyEditor must support this.
+
+
+ The reason for this is that while most RAD tools will serialize the Beans
+ and deserialize them at runtime, some RAD tools will generate code that
+ creates the Beans. Examples of Java initialization strings would be:
+
+
+
+@itemize @bullet
+
+
+@item
+@code{2}
+
+
+@item
+@code{"I am a String"}
+
+
+@item
+@code{new MyObject(2, "String", new StringBuffer())}
+
+
+@end itemize
+
+@end deftypemethod
+@deftypemethod PropertyEditorManager {public static void} registerEditor (java.lang.Class@w{ }@var{editedClass}, java.lang.Class@w{ }@var{editorClass})
+Register an editor for a class. Replaces old editor
+ if there was one registered before.
+@end deftypemethod
+@deftypemethod PropertyEditorManager {public static PropertyEditor} findEditor (java.lang.Class@w{ }@var{editedClass})
+Returns a new instance of the property editor for the
+ specified class.
+@end deftypemethod
+@deftypemethod PropertyEditorManager {public static String} getEditorSearchPath ()
+Get the editor search path.
+ As a minor departure from the spec, the default value
+ for the editor search path is "gnu.java.beans.editors",
+ "sun.beans.editors".
+@end deftypemethod
+@deftypemethod PropertyEditorManager {public static void} setEditorSearchPath (java.lang.String[]@w{ }@var{editorSearchPath})
+Set the editor search path.
+@end deftypemethod
+@deftypemethod PropertyEditorSupport {public void} setValue (java.lang.Object@w{ }@var{val})
+Set the current value of the property.
+ <STRONG>Implementation Note</STRONG> Sun does not
+ state what exactly this version of the method does.
+ Thus, in this implementation, it sets the value, and
+ then if the old and new values are different, it
+ fires a property change event with no property name
+ and the old and new values.
+@end deftypemethod
+@deftypemethod PropertyEditorSupport {public Object} getValue ()
+Get the current value of the property.
+@end deftypemethod
+@deftypemethod PropertyEditorSupport {public boolean} isPaintable ()
+Get whether this object is paintable or not.
+@end deftypemethod
+@deftypemethod PropertyEditorSupport {public void} paintValue (java.awt.Graphics@w{ }@var{g}, java.awt.Rectangle@w{ }@var{r})
+Paint this object. This class does nothing in
+ this method.
+@end deftypemethod
+@deftypemethod PropertyEditorSupport {public String} getJavaInitializationString ()
+Get the Java initialization String for the current
+ value of the Object. This class returns gibberish or
+ null (though the spec does not say which).
+
+
+ <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.
+@end deftypemethod
+@deftypemethod PropertyEditorSupport {public String} getAsText ()
+Get the value as text.
+ In this class, you cannot count on getAsText() doing
+ anything useful, although in this implementation I
+ do toString().
+@end deftypemethod
+@deftypemethod PropertyEditorSupport {public void} setAsText (java.lang.String@w{ }@var{s}) @*throws IllegalArgumentException
+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.
+@end deftypemethod
+@deftypemethod PropertyEditorSupport {public String} getTags ()
+Returns a list of possible choices for the value.
+@end deftypemethod
+@deftypemethod PropertyEditorSupport {public Component} getCustomEditor ()
+Return a custom component to edit the value.
+@end deftypemethod
+@deftypemethod PropertyEditorSupport {public boolean} supportsCustomEditor ()
+Find out whether this property editor supports a
+ custom component to edit its value.
+@end deftypemethod
+@deftypemethod PropertyEditorSupport {public void} addPropertyChangeListener (java.beans.PropertyChangeListener@w{ }@var{l})
+Add a property change listener to this property editor.
+@end deftypemethod
+@deftypemethod PropertyEditorSupport {public void} removePropertyChangeListener (java.beans.PropertyChangeListener@w{ }@var{l})
+Remove a property change listener from this property editor.
+@end deftypemethod
+@deftypemethod PropertyEditorSupport {public void} firePropertyChange ()
+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.
+@end deftypemethod
+@deftypemethod PropertyVetoException {public PropertyChangeEvent} getPropertyChangeEvent ()
+Get the PropertyChange event that was vetoed.
+@end deftypemethod
+@deftypemethod SimpleBeanInfo {public BeanDescriptor} getBeanDescriptor ()
+Force Introspection of the general bean info.
+@end deftypemethod
+@deftypemethod SimpleBeanInfo {public EventSetDescriptor} getEventSetDescriptors ()
+Force Introspection of the events this Bean type
+ fires.
+@end deftypemethod
+@deftypemethod SimpleBeanInfo {public int} getDefaultEventIndex ()
+Say that there is no "default" event set.
+@end deftypemethod
+@deftypemethod SimpleBeanInfo {public PropertyDescriptor} getPropertyDescriptors ()
+Force Introspection of the Bean properties.
+@end deftypemethod
+@deftypemethod SimpleBeanInfo {public int} getDefaultPropertyIndex ()
+Say that there is no "default" property.
+@end deftypemethod
+@deftypemethod SimpleBeanInfo {public MethodDescriptor} getMethodDescriptors ()
+Force Introspection of the Bean's methods.
+@end deftypemethod
+@deftypemethod SimpleBeanInfo {public BeanInfo} getAdditionalBeanInfo ()
+Tell the Introspector to go look for other BeanInfo
+ itself.
+@end deftypemethod
+@deftypemethod SimpleBeanInfo {public Image} getIcon (int@w{ }@var{iconType})
+Say that this Bean has no icons.
+@end deftypemethod
+@deftypemethod SimpleBeanInfo {public Image} loadImage (java.lang.String@w{ }@var{location})
+Helper method to load an image using the Bean class
+ getResource() method on the BeanInfo class (using
+ getClass(), since you'll extend this class to get
+ the BeanInfo). Basically it's assumed that the Bean
+ and its BeanInfo are both loaded by the same
+ ClassLoader, generally a reasonable assumption.
+@end deftypemethod
+@deftypemethod VetoableChangeListener {public void} vetoableChange (java.beans.PropertyChangeEvent@w{ }@var{e}) @*throws PropertyVetoException
+Fired before a Bean's property changes.
+@end deftypemethod
+@deftypemethod VetoableChangeSupport {public void} addVetoableChangeListener (java.beans.VetoableChangeListener@w{ }@var{l})
+Adds a VetoableChangeListener to the list of listeners.
+ All property change events will be sent to this listener.
+
+
+
+
+ The listener add is not unique: that is, <em>n</em> adds with
+ the same listener will result in <em>n</em> events being sent
+ to that listener for every property change.
+
+
+
+
+ Adding a null listener will cause undefined behavior.
+@end deftypemethod
+@deftypemethod VetoableChangeSupport {public void} addVetoableChangeListener (java.lang.String@w{ }@var{propertyName}, java.beans.VetoableChangeListener@w{ }@var{l})
+Adds a VetoableChangeListener listening on the specified property.
+ Events will be sent to the listener for that particular property.
+
+
+
+
+ The listener add is not unique; that is, <em>n</em> adds on a
+ particular property for a particular listener will result in
+ <em>n</em> events being sent to that listener when that
+ property is changed.
+
+
+
+
+ The effect is cumulative, too; if you are registered to listen
+ to receive events on all property changes, and then you
+ register on a particular property, you will receive change
+ events for that property twice.
+
+
+
+
+ Adding a null listener will cause undefined behavior.
+@end deftypemethod
+@deftypemethod VetoableChangeSupport {public void} removeVetoableChangeListener (java.beans.VetoableChangeListener@w{ }@var{l})
+Removes a VetoableChangeListener from the list of listeners.
+ If any specific properties are being listened on, they must
+ be deregistered by themselves; this will only remove the
+ general listener to all properties.
+
+
+
+
+ If @code{add()} has been called multiple times for a
+ particular listener, @code{remove()} will have to be
+ called the same number of times to deregister it.
+@end deftypemethod
+@deftypemethod VetoableChangeSupport {public void} removeVetoableChangeListener (java.lang.String@w{ }@var{propertyName}, java.beans.VetoableChangeListener@w{ }@var{l})
+Removes a VetoableChangeListener from listening to a specific property.
+
+
+
+
+ If @code{add()} has been called multiple times for a
+ particular listener on a property, @code{remove()} will
+ have to be called the same number of times to deregister it.
+@end deftypemethod
+@deftypemethod VetoableChangeSupport {public void} fireVetoableChange (java.beans.PropertyChangeEvent@w{ }@var{proposedChange}) @*throws PropertyVetoException
+Fire a VetoableChangeEvent to all the listeners.
+ If any listener objects, a reversion event will be sent to
+ those listeners who received the initial event.
+@end deftypemethod
+@deftypemethod VetoableChangeSupport {public void} fireVetoableChange (java.lang.String@w{ }@var{propertyName}, java.lang.Object@w{ }@var{oldVal}, java.lang.Object@w{ }@var{newVal}) @*throws PropertyVetoException
+Fire a VetoableChangeEvent containing the old and new values of the property to all the listeners.
+ If any listener objects, a reversion event will be sent to
+ those listeners who received the initial event.
+@end deftypemethod
+@deftypemethod VetoableChangeSupport {public void} fireVetoableChange (java.lang.String@w{ }@var{propertyName}, boolean@w{ }@var{oldVal}, boolean@w{ }@var{newVal}) @*throws PropertyVetoException
+Fire a VetoableChangeEvent containing the old and new values of the property to all the listeners.
+ If any listener objects, a reversion event will be sent to
+ those listeners who received the initial event.
+@end deftypemethod
+@deftypemethod VetoableChangeSupport {public void} fireVetoableChange (java.lang.String@w{ }@var{propertyName}, int@w{ }@var{oldVal}, int@w{ }@var{newVal}) @*throws PropertyVetoException
+Fire a VetoableChangeEvent containing the old and new values of the property to all the listeners.
+ If any listener objects, a reversion event will be sent to
+ those listeners who received the initial event.
+@end deftypemethod
+@deftypemethod VetoableChangeSupport {public boolean} hasListeners (java.lang.String@w{ }@var{propertyName})
+Tell whether the specified property is being listened on or not.
+ This will only return @code{true} if there are listeners
+ on all properties or if there is a listener specifically on this
+ property.
+@end deftypemethod
+@deftypemethod Visibility {public boolean} needsGui ()
+Tells whether the Bean can run without a GUI or not.
+@end deftypemethod
+@deftypemethod Visibility {public boolean} avoidingGui ()
+Tells whether Bean is trying not to use the GUI.
+ If needsGui() is true, this method should always return false.
+@end deftypemethod
+@deftypemethod Visibility {public void} dontUseGui ()
+Tells the Bean not to use GUI methods.
+ If needsGUI() is false, then after this method is called,
+ avoidingGui() should return true.
+@end deftypemethod
+@deftypemethod Visibility {public void} okToUseGui ()
+Tells the Bean it may use the GUI.
+ The Bean is not required to use the GUI in this case, it is
+ merely being <EM>permitted</EM> to use it. If needsGui() is
+ false, avoidingGui() may return true or false after this method
+ is called.
+@end deftypemethod