Author: sebb
Date: Mon Oct 24 20:23:44 2011
New Revision: 1188356

URL: http://svn.apache.org/viewvc?rev=1188356&view=rev
Log:
Allo user to override toolbar and toolbar icons

Modified:
    jakarta/jmeter/trunk/bin/jmeter.properties
    
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/IconToolbarBean.java
    jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterToolBar.java

Modified: jakarta/jmeter/trunk/bin/jmeter.properties
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/bin/jmeter.properties?rev=1188356&r1=1188355&r2=1188356&view=diff
==============================================================================
--- jakarta/jmeter/trunk/bin/jmeter.properties (original)
+++ jakarta/jmeter/trunk/bin/jmeter.properties Mon Oct 24 20:23:44 2011
@@ -120,6 +120,8 @@ jmeter.laf.mac=System
 #jmeter.toolbar.display=true
 # Toolbar icon definitions
 #jmeter.toolbar.icons=org/apache/jmeter/images/toolbar/icons-toolbar.properties
+# Toolbar list
+#jmeter.toolbar=new,open,close,save,save_as_testplan,|,cut,copy,paste,|,expand,collapse,toggle,|,test_start,test_stop,test_shutdown,|,test_start_remote_all,test_stop_remote_all,test_shutdown_remote_all,|,test_clear,test_clear_all,|,search,search_reset,|,function_helper,help
 
 # Icon definitions
 # default:

Modified: 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/IconToolbarBean.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/IconToolbarBean.java?rev=1188356&r1=1188355&r2=1188356&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/IconToolbarBean.java 
(original)
+++ 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/IconToolbarBean.java 
Mon Oct 24 20:23:44 2011
@@ -43,7 +43,7 @@ public final class IconToolbarBean {
      * @param strToSplit - the line value (i18n key, ActionNames ID, icon 
path, optional icon pressed path)
      * @throws JMeterException if error in parsing.
      */
-    IconToolbarBean(final String strToSplit) throws JMeterException {
+    IconToolbarBean(final String strToSplit) throws NullPointerException, 
IllegalArgumentException {
         if (strToSplit == null) {
             throw new NullPointerException("Icon definition must not be 
null"); //$NON-NLS-1$
         }

Modified: 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterToolBar.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterToolBar.java?rev=1188356&r1=1188355&r2=1188356&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterToolBar.java 
(original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterToolBar.java 
Mon Oct 24 20:23:44 2011
@@ -32,7 +32,6 @@ import javax.swing.JToolBar;
 import org.apache.jmeter.gui.action.ActionRouter;
 import org.apache.jmeter.util.JMeterUtils;
 import org.apache.jorphan.logging.LoggingManager;
-import org.apache.jorphan.util.JMeterException;
 import org.apache.log.Logger;
 
 /**
@@ -48,9 +47,11 @@ public class JMeterToolBar {
     private static final String TOOLBAR_PROP_NAME = "toolbar"; //$NON-NLS-1$
 
     // protected fields: JMeterToolBar class can be use to create another 
toolbar (plugin, etc.)    
-    protected static final String defaultIconProp = 
"org/apache/jmeter/images/toolbar/icons-toolbar.properties"; //$NON-NLS-1$
+    protected static final String DEFAULT_TOOLBAR_PROPERTY_FILE = 
"org/apache/jmeter/images/toolbar/icons-toolbar.properties"; //$NON-NLS-1$
+
+    protected static final String USER_DEFINED_TOOLBAR_PROPERTY_FILE = 
"jmeter.toolbar.icons"; //$NON-NLS-1$
     
-    protected static final String keyIconProp = "jmeter.toolbar.icons"; 
//$NON-NLS-1$
+    private static final String TOOLBAR_LIST = "jmeter.toolbar";
     
     /**
      * Create the default JMeter toolbar
@@ -96,37 +97,53 @@ public class JMeterToolBar {
      * @return List of icons/action definition
      */
     private static List<IconToolbarBean> getIconMappings() {
-        String iconProp = JMeterUtils.getPropDefault(keyIconProp, 
defaultIconProp); //$NON-NLS-1$
-        Properties p = JMeterUtils.loadProperties(iconProp);
-        if (p == null && !iconProp.equals(defaultIconProp)) {
-            log.info(iconProp + " not found - using " + defaultIconProp);
-            iconProp = defaultIconProp;
-            p = JMeterUtils.loadProperties(defaultIconProp);
+        // Get the standard toolbar properties
+        Properties defaultProps = 
JMeterUtils.loadProperties(DEFAULT_TOOLBAR_PROPERTY_FILE);
+        if (defaultProps == null) {
+            JOptionPane.showMessageDialog(null, 
+                    JMeterUtils.getResString("toolbar_icon_set_not_found"), // 
$NON-NLS-1$
+                    JMeterUtils.getResString("toolbar_icon_set_not_found"), // 
$NON-NLS-1$
+                    JOptionPane.WARNING_MESSAGE);
+            return null;
         }
-        if (p == null) {
+        Properties p;
+        String userProp = 
JMeterUtils.getProperty(USER_DEFINED_TOOLBAR_PROPERTY_FILE); 
+        if (userProp != null){
+            p = JMeterUtils.loadProperties(userProp, defaultProps);
+        } else {
+            p=defaultProps;
+        }
+
+        String order = JMeterUtils.getPropDefault(TOOLBAR_LIST, 
p.getProperty(TOOLBAR_PROP_NAME));
+
+        if (order == null) {
+            log.warn("Could not find toolbar definition list");
             JOptionPane.showMessageDialog(null, 
                     JMeterUtils.getResString("toolbar_icon_set_not_found"), // 
$NON-NLS-1$
                     JMeterUtils.getResString("toolbar_icon_set_not_found"), // 
$NON-NLS-1$
                     JOptionPane.WARNING_MESSAGE);
             return null;
         }
-        log.info("Loading toolbar icons properties from " + iconProp); 
//$NON-NLS-1$
-        
-        String order = p.getProperty(TOOLBAR_PROP_NAME);
-        p.remove(TOOLBAR_PROP_NAME);
+
         String[] oList = order.split(TOOLBAR_ENTRY_SEP);
-        
+
         List<IconToolbarBean> listIcons = new ArrayList<IconToolbarBean>();
         for (String key : oList) {
             log.debug("Toolbar icon key: " + key); //$NON-NLS-1$
-            if (key.trim().equals("|")) { //$NON-NLS-1$
+            String trimmed = key.trim();
+            if (trimmed.equals("|")) { //$NON-NLS-1$
                 listIcons.add(null);
             } else {
-                try {
-                    IconToolbarBean itb = new 
IconToolbarBean(p.getProperty(key));
-                    listIcons.add(itb);
-                } catch (JMeterException je) {
-                    log.error("Toolbar icon loading error - key: " + key); 
//$NON-NLS-1$
+                String property = p.getProperty(trimmed);
+                if (property == null) {
+                    log.warn("No definition for toolbar entry: " + key);
+                } else {
+                    try {
+                        IconToolbarBean itb = new IconToolbarBean(property);
+                        listIcons.add(itb);
+                    } catch (IllegalArgumentException e) {
+                        // already reported by IconToolbarBean
+                    }
                 }
             }
         }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to