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 se...@apache.org on 2005/05/14 19:29:55 UTC

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

sebb        2005/05/14 10:29:55

  Modified:    src/core/org/apache/jmeter/testbeans/gui TestBeanGUI.java
               src/core/org/apache/jmeter/gui/tree JMeterTreeNode.java
  Log:
  Implement GUI_CLASS for TestBean Gui classes
  
  Revision  Changes    Path
  1.21      +36 -4     jakarta-jmeter/src/core/org/apache/jmeter/testbeans/gui/TestBeanGUI.java
  
  Index: TestBeanGUI.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/testbeans/gui/TestBeanGUI.java,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- TestBeanGUI.java	14 May 2005 16:50:51 -0000	1.20
  +++ TestBeanGUI.java	14 May 2005 17:29:55 -0000	1.21
  @@ -18,6 +18,7 @@
   
   import java.awt.BorderLayout;
   import java.awt.Component;
  +import java.beans.BeanDescriptor;
   import java.beans.BeanInfo;
   import java.beans.Customizer;
   import java.beans.IntrospectionException;
  @@ -35,14 +36,20 @@
   
   import org.apache.commons.collections.LRUMap;
   import org.apache.jmeter.assertions.Assertion;
  +import org.apache.jmeter.assertions.gui.AbstractAssertionGui;
   import org.apache.jmeter.config.ConfigElement;
  +import org.apache.jmeter.config.gui.AbstractConfigGui;
   import org.apache.jmeter.control.Controller;
  +import org.apache.jmeter.control.gui.AbstractControllerGui;
   import org.apache.jmeter.gui.AbstractJMeterGuiComponent;
   import org.apache.jmeter.gui.JMeterGUIComponent;
   import org.apache.jmeter.gui.util.MenuFactory;
   import org.apache.jmeter.processor.PostProcessor;
   import org.apache.jmeter.processor.PreProcessor;
  +import org.apache.jmeter.processor.gui.AbstractPostProcessorGui;
  +import org.apache.jmeter.processor.gui.AbstractPreProcessorGui;
   import org.apache.jmeter.samplers.Sampler;
  +import org.apache.jmeter.samplers.gui.AbstractSamplerGui;
   import org.apache.jmeter.testbeans.BeanInfoSupport;
   import org.apache.jmeter.testbeans.TestBean;
   import org.apache.jmeter.testelement.TestElement;
  @@ -50,8 +57,10 @@
   import org.apache.jmeter.testelement.property.JMeterProperty;
   import org.apache.jmeter.testelement.property.PropertyIterator;
   import org.apache.jmeter.timers.Timer;
  +import org.apache.jmeter.timers.gui.AbstractTimerGui;
   import org.apache.jmeter.util.JMeterUtils;
   import org.apache.jmeter.visualizers.Visualizer;
  +import org.apache.jmeter.visualizers.gui.AbstractVisualizer;
   import org.apache.jorphan.logging.LoggingManager;
   import org.apache.log.Logger;
   
  @@ -342,46 +351,69 @@
      public Collection getMenuCategories()
      {
         List menuCategories = new LinkedList();
  +	  BeanDescriptor bd = beanInfo.getBeanDescriptor();
   
         // We don't want to show expert beans in the menus unless we're
         // in expert mode:
  -      if (beanInfo.getBeanDescriptor().isExpert()
  +      if (bd.isExpert()
               && !JMeterUtils.isExpertMode()) { return null; }
   
  +	  int matches=0; // How many classes can we assign from?
         // TODO: there must be a nicer way...
         if (Assertion.class.isAssignableFrom(testBeanClass))
         {
            menuCategories.add(MenuFactory.ASSERTIONS);
  +		 bd.setValue(TestElement.GUI_CLASS,AbstractAssertionGui.class.getName());
  +		 matches++;
         }
         if (ConfigElement.class.isAssignableFrom(testBeanClass))
         {
            menuCategories.add(MenuFactory.CONFIG_ELEMENTS);
  +		 bd.setValue(TestElement.GUI_CLASS,AbstractConfigGui.class.getName());
  +		 matches++;
         }
         if (Controller.class.isAssignableFrom(testBeanClass))
         {
            menuCategories.add(MenuFactory.CONTROLLERS);
  +		 bd.setValue(TestElement.GUI_CLASS,AbstractControllerGui.class.getName());
  +		 matches++;
         }
         if (Visualizer.class.isAssignableFrom(testBeanClass))
         {
            menuCategories.add(MenuFactory.LISTENERS);
  +		 bd.setValue(TestElement.GUI_CLASS,AbstractVisualizer.class.getName());
  +		 matches++;
         }
         if (PostProcessor.class.isAssignableFrom(testBeanClass))
         {
            menuCategories.add(MenuFactory.POST_PROCESSORS);
  +		 bd.setValue(TestElement.GUI_CLASS,AbstractPostProcessorGui.class.getName());
  +		 matches++;
         }
         if (PreProcessor.class.isAssignableFrom(testBeanClass))
         {
  +		 matches++;
            menuCategories.add(MenuFactory.PRE_PROCESSORS);
  +		 bd.setValue(TestElement.GUI_CLASS,AbstractPreProcessorGui.class.getName());
         }
         if (Sampler.class.isAssignableFrom(testBeanClass))
         {
  +		 matches++;
            menuCategories.add(MenuFactory.SAMPLERS);
  +		 bd.setValue(TestElement.GUI_CLASS,AbstractSamplerGui.class.getName());
         }
         if (Timer.class.isAssignableFrom(testBeanClass))
         {
  +		 matches++;
            menuCategories.add(MenuFactory.TIMERS);
  +		 bd.setValue(TestElement.GUI_CLASS,AbstractTimerGui.class.getName());
         }
  -      return menuCategories;
  +	  if (matches == 0) {
  +		  log.error("Could not assign GUI class to "+testBeanClass.getName());
  +	  } else if (matches > 1) {// may be impossible, but no harm in checking ...
  +		  log.error("More than 1 GUI class found for "+testBeanClass.getName());
  +      }
  +	  return menuCategories;
      }
   
      private void init()
  
  
  
  1.25      +14 -3     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.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- JMeterTreeNode.java	5 Mar 2004 13:18:37 -0000	1.24
  +++ JMeterTreeNode.java	14 May 2005 17:29:55 -0000	1.25
  @@ -85,7 +85,18 @@
                       Image img= Introspector.getBeanInfo(
                           getTestElement().getClass())
                               .getIcon(BeanInfo.ICON_COLOR_16x16);
  -                    if (img == null) return null;
  +					// If icon has not been defined, then use GUI_CLASS property
  +                    if (img == null) {//
  +						Object clazz = Introspector.getBeanInfo(
  +		                        getTestElement().getClass())
  +		                        .getBeanDescriptor().getValue(TestElement.GUI_CLASS);
  +						if (clazz == null) {
  +							log.error("Can't obtain GUI class for "
  +									+getTestElement().getClass().getName());
  +							return null;
  +						}
  +		                return GUIFactory.getIcon(Class.forName((String) clazz));
  +                    }
                       return new ImageIcon(img);
                   }
                   catch (IntrospectionException e1)
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org