Class BeanInfoSupport

java.lang.Object
java.beans.SimpleBeanInfo
org.jdesktop.beans.BeanInfoSupport
All Implemented Interfaces:
BeanInfo
Direct Known Subclasses:
AbstractAreaPainterBeanInfo, AbstractLayoutPainterBeanInfo, AbstractPainterBeanInfo, AbstractPathEffectBeanInfo, AlphaPainterBeanInfo, BusyPainterBeanInfo, CheckerboardPainterBeanInfo, CompoundPainterBeanInfo, DropShadowBorderBeanInfo, GlossPainterBeanInfo, HorizontalLayoutBeanInfo, IconBorderBeanInfo, ImagePainterBeanInfo, JXBusyLabelBeanInfo, JXButtonBeanInfo, JXCollapsiblePaneBeanInfo, JXDatePickerBeanInfo, JXDialogBeanInfo, JXEditorPaneBeanInfo, JXErrorPaneBeanInfo, JXFindBarBeanInfo, JXFindPanelBeanInfo, JXFrameBeanInfo, JXGraphBeanInfo, JXHeaderBeanInfo, JXHyperlinkBeanInfo, JXImageViewBeanInfo, JXLabelBeanInfo, JXListBeanInfo, JXMonthViewBeanInfo, JXMultiSplitPaneBeanInfo, JXPanelBeanInfo, JXPromptBeanInfo, JXRadioGroupBeanInfo, JXSearchPanelBeanInfo, JXTableBeanInfo, JXTaskPaneBeanInfo, JXTaskPaneContainerBeanInfo, JXTitledPanelBeanInfo, JXTitledSeparatorBeanInfo, JXTreeBeanInfo, JXTreeTableBeanInfo, MattePainterBeanInfo, PinstripePainterBeanInfo, RectanglePainterBeanInfo, ShapePainterBeanInfo, TextPainterBeanInfo, VerticalLayoutBeanInfo

public abstract class BeanInfoSupport extends SimpleBeanInfo
Useful baseclass for BeanInfos. With this class, normal introspection occurs and then you are given the opportunity to reconfigure portions of the bean info in the initialize method.
  • Field Details

    • LOG

      private static Logger LOG
    • introspectingState

      private static Map<Class<?>,Boolean> introspectingState
      Indicates whether I am introspecting state for the give class. This helps prevent infinite loops
    • beanClass

      private Class<?> beanClass
      The class of the bean that this BeanInfoSupport is for
    • defaultPropertyIndex

      private int defaultPropertyIndex
      See Also:
    • defaultEventIndex

      private int defaultEventIndex
      See Also:
    • iconColor16

      private Image iconColor16
      The 16x16 color icon
    • iconColor32

      private Image iconColor32
      The 32x32 color icon
    • iconMono16

      private Image iconMono16
      The 16x16 monochrome icon
    • iconMono32

      private Image iconMono32
      The 32x32 monochrome icon
    • iconNameC16

      private String iconNameC16
      A reference to the icon. This String must be of a form that ImageIO can use to locate and load the icon image
    • iconNameC32

      private String iconNameC32
      A reference to the icon. This String must be of a form that ImageIO can use to locate and load the icon image
    • iconNameM16

      private String iconNameM16
      A reference to the icon. This String must be of a form that ImageIO can use to locate and load the icon image
    • iconNameM32

      private String iconNameM32
      A reference to the icon. This String must be of a form that ImageIO can use to locate and load the icon image
    • beanDescriptor

      private BeanDescriptor beanDescriptor
    • properties

      private Map<String,PropertyDescriptor> properties
    • events

      private Map<String,EventSetDescriptor> events
    • methods

      private Map<String,MethodDescriptor> methods
  • Constructor Details

    • BeanInfoSupport

      public BeanInfoSupport(Class<?> beanClass)
      Creates a new instance of BeanInfoSupport.
      Parameters:
      beanClass - class of the bean.
  • Method Details

    • isIntrospecting

      private boolean isIntrospecting()
    • loadStandardImage

      private Image loadStandardImage(BeanInfo info, int size)
      attempts to load a png icon from the resource directory beneath beaninfo, named like: JXTaskPaneContainer16.png JXTaskPaneContainer16-mono.png JXTaskPaneContainer32.png JXTaskPaneContainer32-mono.png if any of the icons is missing, an attempt is made to get an icon via introspection. If that fails, the icon will be set to placeholder16.png or one of the derivatives
    • loadImage

      public Image loadImage(String resourceName)
      Overrides:
      loadImage in class SimpleBeanInfo
    • initialize

      protected abstract void initialize()
      Called by the constructor during the proper time so that subclasses can override the settings/values for the various beaninfo properties. For example, you could call setDisplayName("Foo Name", "foo") to change the foo properties display name
    • getCustomizerClass

      protected Class<?> getCustomizerClass()
      Override this method if you want to return a custom customizer class for the bean
      Returns:
      null.
    • setSmallColorIconName

      protected void setSmallColorIconName(String name)
      Specify the name/url/path to the small 16x16 color icon
      Parameters:
      name - name of the icon.
    • setColorIconName

      protected void setColorIconName(String name)
      Specify the name/url/path to the 32x32 color icon
      Parameters:
      name - name of the icon.
    • setSmallMonoIconName

      protected void setSmallMonoIconName(String name)
      Specify the name/url/path to the small 16x16 monochrome icon
      Parameters:
      name - name of the icon.
    • setMonoIconName

      protected void setMonoIconName(String name)
      Specify the name/url/path to the 32x32 monochrome icon
      Parameters:
      name - name of the icon.
    • setDisplayName

      protected void setDisplayName(String displayName, String propertyName)
      Changes the display name of the given named property. Property names are always listed last to allow for varargs
      Parameters:
      displayName - display name of the property.
      propertyName - name of the property.
    • setTransient

      protected void setTransient(boolean trans, String... propertyNames)
      Sets the given named properties to be "transient".
      Parameters:
      trans - determines whether the properties should be encoded.
      propertyNames - name of properties.
      See Also:
    • setHidden

      protected void setHidden(boolean hidden, String... propertyNames)
      Sets the given named properties to be "hidden".
      Parameters:
      hidden - determines whether the properties should be marked as hidden or not.
      propertyNames - name of properties.
      See Also:
    • setExpert

      protected void setExpert(boolean expert, String... propertyNames)
    • setPreferred

      protected void setPreferred(boolean preferred, String... propertyNames)
    • setBound

      protected void setBound(boolean bound, String... propertyNames)
    • setConstrained

      protected void setConstrained(boolean constrained, String... propertyNames)
    • setCategory

      protected void setCategory(String categoryName, String... propertyNames)
    • setPropertyEditor

      protected void setPropertyEditor(Class<?> editorClass, String... propertyNames)
    • setEnumerationValues

      protected void setEnumerationValues(EnumerationValue[] values, String... propertyNames)
    • getBeanDescriptor

      public BeanDescriptor getBeanDescriptor()
      Gets the bean's BeanDescriptors.
      Specified by:
      getBeanDescriptor in interface BeanInfo
      Overrides:
      getBeanDescriptor in class SimpleBeanInfo
      Returns:
      BeanDescriptor describing the editable properties of this bean. May return null if the information should be obtained by automatic analysis.
    • getPropertyDescriptors

      public PropertyDescriptor[] getPropertyDescriptors()
      Gets the bean's PropertyDescriptors.
      Specified by:
      getPropertyDescriptors in interface BeanInfo
      Overrides:
      getPropertyDescriptors in class SimpleBeanInfo
      Returns:
      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.

    • getEventSetDescriptors

      public EventSetDescriptor[] getEventSetDescriptors()
      Gets the bean's EventSetDescriptors.
      Specified by:
      getEventSetDescriptors in interface BeanInfo
      Overrides:
      getEventSetDescriptors in class SimpleBeanInfo
      Returns:
      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.
    • getMethodDescriptors

      public MethodDescriptor[] getMethodDescriptors()
      Gets the bean's MethodDescriptors.
      Specified by:
      getMethodDescriptors in interface BeanInfo
      Overrides:
      getMethodDescriptors in class SimpleBeanInfo
      Returns:
      An array of MethodDescriptors describing the methods implemented by this bean. May return null if the information should be obtained by automatic analysis.
    • getDefaultPropertyIndex

      public int getDefaultPropertyIndex()
      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.
      Specified by:
      getDefaultPropertyIndex in interface BeanInfo
      Overrides:
      getDefaultPropertyIndex in class SimpleBeanInfo
      Returns:
      Index of default property in the PropertyDescriptor array returned by getPropertyDescriptors.

      Returns -1 if there is no default property.

    • getDefaultEventIndex

      public int getDefaultEventIndex()
      A bean may have a "default" event that is the event that will mostly commonly be used by human's when using the bean.
      Specified by:
      getDefaultEventIndex in interface BeanInfo
      Overrides:
      getDefaultEventIndex in class SimpleBeanInfo
      Returns:
      Index of default event in the EventSetDescriptor array returned by getEventSetDescriptors.

      Returns -1 if there is no default event.

    • getIcon

      public 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.

      Specified by:
      getIcon in interface BeanInfo
      Overrides:
      getIcon in class SimpleBeanInfo
      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.
    • getImage

      private Image getImage(String name, Image img)