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