/* ********************************************************************** * * Use, duplication, or disclosure by the Government is subject to * restricted rights as set forth in the DFARS. * * BBNT Solutions LLC * A Part of * Verizon * 10 Moulton Street * Cambridge, MA 02138 * (617) 873-3000 * * Copyright (C) 2002 by BBNT Solutions, LLC * All Rights Reserved. * ********************************************************************** */ package com.bbn.openmap.tools.beanbox; import java.beans.BeanInfo; import java.beans.PropertyDescriptor; import java.beans.SimpleBeanInfo; import java.util.ArrayList; import java.util.List; /** * BeanInfo for a * {@link com.bbn.openmap.tools.beanbox.BeanLayoutManager}. */ public class BeanLayoutManagerBeanInfo extends SimpleBeanInfo { /** * returns the location of the 16 x 16 bit image icon. */ public String getImage16Location() { return "BeanLayoutManagerIcon16.gif"; } /** * returns the location of the 32 x 32 bit image icon. */ public String getImage32Location() { return "BeanLayoutManagerIcon32.gif"; } /** * subclasses should NOT over-ride this method. Instead, they * should over-ride localProperties to create their own * properties. */ public PropertyDescriptor[] getPropertyDescriptors() { ArrayList<PropertyDescriptor> list = new ArrayList<PropertyDescriptor>(10); localProperties(list); return list.toArray(new PropertyDescriptor[list.size()]); } /** * direct and indirect subclasses of this bean info class should * override this method to add their property descripters to the * list generated by the super-class method. A localProperties * method written in the subclass should include in a call to * super.localProperties in order to get the list of superclass * property descripters. It should then add its own property * descriptors to this list. A subclass does not need to over-ride * this method if it has no property descripters of its own to add * to the list of super-class descriptors. * * @param ps a List containing property descripters of all super * classes. */ protected void localProperties(List ps) {} /** * returns the image associated with the bean. This method calls * getImage16Location() and getImage32Location() to locate the * image file. * * @return An image object containing a 16 x 16 bit image is * returned if found otherwise a 32 x 32 bit image is * returned if found. Else a null is returned. */ public java.awt.Image getIcon(int iconKind) { if (iconKind == BeanInfo.ICON_COLOR_16x16 || iconKind == BeanInfo.ICON_MONO_16x16) { java.awt.Image img = loadImage(getImage16Location()); return img; } else if (iconKind == BeanInfo.ICON_COLOR_32x32 || iconKind == BeanInfo.ICON_MONO_32x32) { java.awt.Image img = loadImage(getImage32Location()); return img; } return null; } /** * A convenience method to create and add a property descriptor to * a list. A subclass of this bean info class can use this method * to add its own property descriptors to the list of super class * property descriptors made available in the localProperties * method. * * @param ps list of property descriptors * @param name the name of the property * @param beanClass the Bean class defining the property */ protected static void property(List ps, String name, Class beanClass) { property(ps, name, beanClass, null); } /** * A convenience method to create and add a property descriptor to * a list and associate an editor class with the property. A * subclass of this bean info class can use this method to add its * own property descriptors to the list of super class property * descriptors made available in the localProperties method. * * @param ps list of property descriptors * @param name the name of the property * @param beanClass the Bean class defining the property * @param editorClass a class to be registered as the editor for * the specified property. */ protected static void property(List ps, String name, Class beanClass, Class editorClass) { try { PropertyDescriptor pd = new PropertyDescriptor(name, beanClass); if (editorClass != null) pd.setPropertyEditorClass(editorClass); ps.add(pd); } catch (Exception e) { } } }