import java.awt.event.*; import java.beans.*; /** * PhotonBeanInfo provides bean information for the Photon bean. * * @author Thornton Rose */ public class PhotonBeanInfo extends SimpleBeanInfo { private PropertyDescriptor[] propertyDescriptors; private EventSetDescriptor[] eventSetDescriptors; /** * Construct the bean info. object. */ public PhotonBeanInfo() { // Create property descriptors. try { propertyDescriptors = new PropertyDescriptor[] { createPropertyDescriptor("size", "Size"), createPropertyDescriptor("color", "Color") }; } catch(Exception ex) { System.out.println("PhotonBeanInfo(): " + ex); propertyDescriptors = null; } // Create event descriptors. try { eventSetDescriptors = new EventSetDescriptor[] { createEventSetDescriptor("action", "ActionEvent", ActionListener.class, "actionPerformed") }; } catch(Exception ex) { System.out.println("PhotonBeanInfo(): " + ex); eventSetDescriptors = null; } } /** * Return the property descriptors for the bean. */ public PropertyDescriptor[] getPropertyDescriptors() { return propertyDescriptors; } /** * Return the event set descriptors for the bean. */ public EventSetDescriptor[] getEventSetDescriptors() { return eventSetDescriptors; } private PropertyDescriptor createPropertyDescriptor( String name, String displayName) throws IntrospectionException { PropertyDescriptor pd = new PropertyDescriptor(name, Photon.class); if (displayName != null) { pd.setDisplayName(displayName); } return pd; } private EventSetDescriptor createEventSetDescriptor(String name, String displayName, Class listenerClass, String listenerMethod) throws IntrospectionException { EventSetDescriptor esd = new EventSetDescriptor(Photon.class, name, listenerClass, listenerMethod); if (displayName != null) { esd.setDisplayName(displayName); } return esd; } }