jsalvata    2004/02/11 06:40:51

  Modified:    src/core/org/apache/jmeter/testbeans BeanInfoSupport.java
               src/core/org/apache/jmeter/gui/tree JMeterTreeNode.java
  Log:
  Added icon support to TestBeans.
  
  Revision  Changes    Path
  1.4       +22 -11    
jakarta-jmeter/src/core/org/apache/jmeter/testbeans/BeanInfoSupport.java
  
  Index: BeanInfoSupport.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/testbeans/BeanInfoSupport.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- BeanInfoSupport.java      10 Feb 2004 21:24:01 -0000      1.3
  +++ BeanInfoSupport.java      11 Feb 2004 14:40:51 -0000      1.4
  @@ -24,6 +24,7 @@
   import java.beans.Introspector;
   import java.beans.MethodDescriptor;
   import java.beans.PropertyDescriptor;
  +import java.beans.SimpleBeanInfo;
   import java.util.MissingResourceException;
   import java.util.ResourceBundle;
   
  @@ -62,8 +63,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]">Jordi Salvat i Alabart</a>
    * @version $Revision$ updated on $Date$
    */
  -public abstract class BeanInfoSupport 
  -        implements BeanInfo
  +public abstract class BeanInfoSupport extends SimpleBeanInfo
   {
   
        private static transient Logger log = LoggingManager.getLoggerForClass();
  @@ -82,16 +82,15 @@
       public static final String RESOURCE_BUNDLE=
               GenericTestBeanCustomizer.RESOURCE_BUNDLE;
   
  -     /**
  -      * The class for which we're providing the bean info.
  -      */
  +     /** The class for which we're providing the bean info. */
        private Class beanClass;
   
  -     /**
  -      * The BeanInfo for our class as obtained by the introspector.
  -      */
  +     /** The BeanInfo for our class as obtained by the introspector. */
        private BeanInfo rootBeanInfo;
   
  +    /** The icons for this bean. */
  +    private Image[] icons= new Image[5];
  +
        /**
         * Construct a BeanInfo for the given class.
         */
  @@ -184,6 +183,18 @@
                return null;
        }
   
  +    /**
  +     * Set the bean's 16x16 colour icon.
  +     * 
  +     * @param resourceName A pathname relative to the directory holding the
  +     *                      class file of the current class.
  +     */
  +    protected void setIcon(String resourceName)
  +    {
  +        icons[ICON_COLOR_16x16]= loadImage(resourceName);
  +    }
  +    
  +    /** Number of groups created so far by createPropertyGroup. */
        private int numCreatedGroups= 0;
        
        /**
  @@ -233,7 +244,7 @@
        }
   
        public Image getIcon(int iconKind) {
  -             return rootBeanInfo.getIcon(iconKind);
  +        return icons[iconKind];
        }
   
        public MethodDescriptor[] getMethodDescriptors() {
  
  
  
  1.17      +26 -5     
jakarta-jmeter/src/core/org/apache/jmeter/gui/tree/JMeterTreeNode.java
  
  Index: JMeterTreeNode.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/tree/JMeterTreeNode.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- JMeterTreeNode.java       29 Jan 2004 01:21:45 -0000      1.16
  +++ JMeterTreeNode.java       11 Feb 2004 14:40:51 -0000      1.17
  @@ -54,6 +54,9 @@
    */
   package org.apache.jmeter.gui.tree;
   
  +import java.beans.BeanInfo;
  +import java.beans.IntrospectionException;
  +import java.beans.Introspector;
   import java.util.Collection;
   
   import javax.swing.ImageIcon;
  @@ -63,6 +66,7 @@
   import org.apache.jmeter.gui.GUIFactory;
   import org.apache.jmeter.gui.GuiPackage;
   import org.apache.jmeter.gui.JMeterGUIComponent;
  +import org.apache.jmeter.testbeans.TestBean;
   import org.apache.jmeter.testelement.AbstractTestElement;
   import org.apache.jmeter.testelement.TestElement;
   import org.apache.jmeter.testelement.property.BooleanProperty;
  @@ -113,10 +117,27 @@
       {
           try
           {
  -            return GUIFactory.getIcon(
  -                Class.forName(
  -                    createTestElement().getPropertyAsString(
  -                        TestElement.GUI_CLASS)));
  +            if (createTestElement() instanceof TestBean)
  +            {
  +                try
  +                {
  +                    return new ImageIcon(Introspector.getBeanInfo(
  +                        createTestElement().getClass())
  +                            .getIcon(BeanInfo.ICON_COLOR_16x16));
  +                }
  +                catch (IntrospectionException e1)
  +                {
  +                    log.error("Can't obtain icon", e1);
  +                    throw new Error(e1);
  +                }
  +            }
  +            else
  +            {
  +                return GUIFactory.getIcon(
  +                    Class.forName(
  +                        createTestElement().getPropertyAsString(
  +                            TestElement.GUI_CLASS)));
  +            }
           }
           catch (ClassNotFoundException e)
           {
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to