A bean implementor who wishes to provide explicit information about
their bean may provide a BeanInfo class that implements this BeanInfo
interface and provides explicit information about the methods,
properties, events, etc, of their bean.
A bean implementor doesn't need to provide a complete set of
explicit information. You can pick and choose which information
you want to provide and the rest will be obtained by automatic
analysis using low-level reflection of the bean classes' methods
and applying standard design patterns.
You get the opportunity to provide lots and lots of different
information as part of the various XyZDescriptor classes. But
don't panic, you only really need to provide the minimal core
information required by the various constructors.
See also the SimpleBeanInfo class which provides a convenient
"noop" base class for BeanInfo classes, which you can override
for those specific places where you want to return explicit info.
To learn about all the behaviour of a bean see the Introspector class.
This method allows a BeanInfo object to return an arbitrary collection
of other BeanInfo objects that provide additional information on the
current bean.
A bean may have a "default" property that is the property that will
mostly commonly be initially chosen for update by human's who are
customizing the bean.
A BeanDescriptor providing overall information about
the bean, such as its displayName, its customizer, etc. May
return null if the information should be obtained by automatic
analysis.
An array of EventSetDescriptors describing the kinds of
events fired by this bean. May return null if the information
should be obtained by automatic analysis.
An array of PropertyDescriptors describing the editable
properties supported by this bean. May return null if the
information should be obtained by automatic analysis.
If a property is indexed, then its entry in the result array will
belong to the IndexedPropertyDescriptor subclass of PropertyDescriptor.
A client of getPropertyDescriptors can use "instanceof" to check
if a given PropertyDescriptor is an IndexedPropertyDescriptor.
A bean may have a "default" property that is the property that will
mostly commonly be initially chosen for update by human's who are
customizing the bean.
Returns:
Index of default property in the PropertyDescriptor array
returned by getPropertyDescriptors.
An array of MethodDescriptors describing the externally
visible methods supported by this bean. May return null if
the information should be obtained by automatic analysis.
This method allows a BeanInfo object to return an arbitrary collection
of other BeanInfo objects that provide additional information on the
current bean.
If there are conflicts or overlaps between the information provided
by different BeanInfo objects, then the current BeanInfo takes precedence
over the getAdditionalBeanInfo objects, and later elements in the array
take precedence over earlier ones.
Returns:
an array of BeanInfo objects. May return null.
getIcon
public abstract Image getIcon(int iconKind)
This method returns an image object that can be used to
represent the bean in toolboxes, toolbars, etc. Icon images
will typically be GIFs, but may in future include other formats.
Beans aren't required to provide icons and may return null from
this method.
There are four possible flavors of icons (16x16 color,
32x32 color, 16x16 mono, 32x32 mono). If a bean choses to only
support a single icon we recommend supporting 16x16 color.
We recommend that icons have a "transparent" background
so they can be rendered onto an existing background.
Parameters:
iconKind - The kind of icon requested. This should be
one of the constant values ICON_COLOR_16x16, ICON_COLOR_32x32,
ICON_MONO_16x16, or ICON_MONO_32x32.
Returns:
An image object representing the requested icon. May
return null if no suitable icon is available.