You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jmeter-dev@jakarta.apache.org by js...@apache.org on 2004/02/11 15:40:51 UTC

cvs commit: jakarta-jmeter/src/core/org/apache/jmeter/gui/tree JMeterTreeNode.java

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:jsalvata@apache.org">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: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org