Philippe Mouawad
14 years ago
Hello,
Is there a reason for making IconToolbarBean getter methods synchronized ?
Regards
Philippe
Is there a reason for making IconToolbarBean getter methods synchronized ?
Regards
Philippe
Author: milamber
Date: Sun Oct 23 18:41:08 2011
New Revision: 1187947
URL: http://svn.apache.org/viewvc?rev=1187947&view=rev
Bug 52040 - Add a toolbar in JMeter main window
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ToolBar.java
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/IconToolbarBean.java
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterToolBar.java
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/clear.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/clearall.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/close.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/collapse.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/copy.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/cut.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/expand.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/function.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/help.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/icons-toolbar.properties
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/new.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/open.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/paste.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/save.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/saveastp.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/search.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/searchreset.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/shutdown.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/shutdownremoteall.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/start.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/startremoteall.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/stop.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/stopremoteall.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/toggle.png
(with props)
jakarta/jmeter/trunk/bin/jmeter.properties
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/GuiPackage.java
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/MainFrame.java
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ActionNames.java
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterMenuBar.java
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
jakarta/jmeter/trunk/xdocs/changes.xml
Modified: jakarta/jmeter/trunk/bin/jmeter.properties
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/bin/jmeter.properties?rev=1187947&r1=1187946&r2=1187947&view=diff
==============================================================================
--- jakarta/jmeter/trunk/bin/jmeter.properties (original)
+++ jakarta/jmeter/trunk/bin/jmeter.properties Sun Oct 23 18:41:08 2011
@@ -115,6 +115,12 @@ jmeter.laf.mac=System
# See https://issues.apache.org/bugzilla/show_bug.cgi?id=52026 for
details
# N.B. the laf can be defined in user.properties.
+# Toolbar display
+#jmeter.toolbar.display=true
+# Toolbar icon definitions
+#jmeter.toolbar.icons=org/apache/jmeter/images/toolbar/icons-toolbar.properties
+
# Icon definitions
#jmeter.icons=org/apache/jmeter/images/icon.properties
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/GuiPackage.java
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/GuiPackage.java?rev=1187947&r1=1187946&r2=1187947&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/GuiPackage.java
(original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/GuiPackage.java Sun
Oct 23 18:41:08 2011
@@ -29,8 +29,10 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import javax.swing.JCheckBoxMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPopupMenu;
+import javax.swing.JToolBar;
import javax.swing.SwingUtilities;
import org.apache.jmeter.engine.util.ValueReplacer;
@@ -103,7 +105,13 @@ public final class GuiPackage implements
/** The main JMeter frame. */
private MainFrame mainFrame;
+
+ /** The main JMeter toolbar. */
+ private JToolBar toolbar;
+ /** The menu item toolbar. */
+ private JCheckBoxMenuItem menuToolBar;
+
/**
* Private constructor to permit instantiation only from within this
class.
@@ -513,6 +521,44 @@ public final class GuiPackage implements
public JMeterTreeListener getTreeListener() {
return treeListener;
}
+
+ /**
+ * Set the main JMeter toolbar.
+ *
+ * the new JMeter main toolbar
+ */
+ public void setMainToolbar(JToolBar newToolbar) {
+ toolbar = newToolbar;
+ }
+
+ /**
+ * Get the main JMeter toolbar.
+ *
+ */
+ public JToolBar getMainToolbar() {
+ return toolbar;
+ }
+
+ /**
+ * Set the menu item toolbar.
+ *
+ * the new menu item toolbar
+ */
+ public void setMenuItemToolbar(JCheckBoxMenuItem newMenuToolBar) {
+ menuToolBar = newMenuToolBar;
+ }
+
+ /**
+ * Get the menu item toolbar.
+ *
+ */
+ public JCheckBoxMenuItem getMenuItemToolbar() {
+ return menuToolBar;
+ }
/**
* Display the specified popup menu with the source component and
location
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/MainFrame.java
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/MainFrame.java?rev=1187947&r1=1187946&r2=1187947&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/MainFrame.java
(original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/MainFrame.java Sun
Oct 23 18:41:08 2011
@@ -45,6 +45,7 @@ import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
+import javax.swing.JToolBar;
import javax.swing.JTree;
import javax.swing.MenuElement;
import javax.swing.SwingUtilities;
@@ -60,6 +61,7 @@ import org.apache.jmeter.gui.action.Acti
import org.apache.jmeter.gui.tree.JMeterCellRenderer;
import org.apache.jmeter.gui.tree.JMeterTreeListener;
import org.apache.jmeter.gui.util.JMeterMenuBar;
+import org.apache.jmeter.gui.util.JMeterToolBar;
import org.apache.jmeter.samplers.Remoteable;
import org.apache.jmeter.testelement.TestElement;
import org.apache.jmeter.testelement.TestListener;
@@ -83,6 +85,10 @@ public class MainFrame extends JFrame im
// The default title for the Menu bar
private static final String DEFAULT_TITLE =
"Apache JMeter ("+JMeterUtils.getJMeterVersion()+")"; //
$NON-NLS-1$ $NON-NLS-2$
+
+ // Allow display/hide toolbar
+ private static final boolean DISPLAY_TOOLBAR =
+ JMeterUtils.getPropDefault("jmeter.toolbar.display", true); //
$NON-NLS-1$
/** The menu bar. */
private JMeterMenuBar menuBar;
@@ -428,6 +434,13 @@ public class MainFrame extends JFrame im
*/
private Component createToolBar() {
Box toolPanel = new Box(BoxLayout.X_AXIS);
+ // add the toolbar
+ JToolBar toolbar = JMeterToolBar.createToolbar(DISPLAY_TOOLBAR);
+ GuiPackage guiInstance = GuiPackage.getInstance();
+ guiInstance.setMainToolbar(toolbar);
+
guiInstance.getMenuItemToolbar().getModel().setSelected(DISPLAY_TOOLBAR);
+ toolPanel.add(toolbar);
+
toolPanel.add(Box.createRigidArea(new Dimension(10, 15)));
toolPanel.add(Box.createGlue());
toolPanel.add(activeThreads);
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ActionNames.java
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ActionNames.java?rev=1187947&r1=1187946&r2=1187947&view=diff
==============================================================================
---
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ActionNames.java
(original)
+++
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ActionNames.java
Sun Oct 23 18:41:08 2011
@@ -83,6 +83,7 @@ public class ActionNames {
public static final String SUB_TREE_MERGED = "sub_tree_merged"; //
$NON-NLS-1$
public static final String SUB_TREE_SAVED = "sub_tree_saved"; //
$NON-NLS-1$
public static final String TOGGLE = "toggle"; // $NON-NLS-1$
enable/disable
+ public static final String TOOLBAR = "toolbar"; //
$NON-NLS-1$
public static final String WHAT_CLASS = "what_class"; //
$NON-NLS-1$
public static final String SEARCH_TREE = "search_tree"; //
$NON-NLS-1$
public static final String SEARCH_RESET = "search_reset"; //
$NON-NLS-1$
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ToolBar.java
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ToolBar.java?rev=1187947&view=auto
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ToolBar.java
(added)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ToolBar.java
Sun Oct 23 18:41:08 2011
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.jmeter.gui.action;
+
+import java.awt.event.ActionEvent;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.apache.jmeter.gui.GuiPackage;
+
+/**
+ * Hide / unhide toolbar.
+ *
+ */
+public class ToolBar implements Command {
+
+ private static final Set<String> commands = new HashSet<String>();
+
+ static {
+ commands.add(ActionNames.TOOLBAR);
+ }
+
+ /**
+ * Constructor for object.
+ */
+ public ToolBar() {
+ }
+
+ /**
+ * Gets the ActionNames attribute of the action
+ *
+ */
+ public Set<String> getActionNames() {
+ return commands;
+ }
+
+ /**
+ * This method performs the actual command processing.
+ *
+ * the generic UI action event
+ */
+ public void doAction(ActionEvent e) {
+ if (ActionNames.TOOLBAR.equals(e.getActionCommand())) {
+ GuiPackage guiInstance = GuiPackage.getInstance();
+ if (guiInstance.getMenuItemToolbar().getModel().isSelected())
{
+ guiInstance.getMainToolbar().setVisible(true);
+ } else {
+ guiInstance.getMainToolbar().setVisible(false);
+ }
+ }
+ }
+}
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ToolBar.java
------------------------------------------------------------------------------
svn:eol-style = native
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ToolBar.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/IconToolbarBean.java
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/IconToolbarBean.java?rev=1187947&view=auto
==============================================================================
---
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/IconToolbarBean.java
(added)
+++
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/IconToolbarBean.java
Sun Oct 23 18:41:08 2011
@@ -0,0 +1,103 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jmeter.gui.util;
+
+import org.apache.jmeter.gui.action.ActionNames;
+import org.apache.jorphan.logging.LoggingManager;
+import org.apache.jorphan.util.JMeterException;
+import org.apache.log.Logger;
+
+public final class IconToolbarBean {
+
+ private static final Logger log = LoggingManager.getLoggerForClass();
+
+ private final String i18nKey;
+
+ private final String actionName;
+
+ private final String iconPath;
+
+ private final String iconPathPressed;
+
+ /**
+ * Constructor to transform a line value (from icon set file) to a
icon bean for toolbar.
path, optional icon pressed path)
+ */
+ public IconToolbarBean(final String strToSplit) throws JMeterException
{
+ if (strToSplit == null) {
+ throw new JMeterException("No icon definition"); //$NON-NLS-1$
+ }
+ final String tmp[] = strToSplit.split(";"); //$NON-NLS-1$
+ if (tmp.length > 2) {
+ this.i18nKey = tmp[0];
+ this.actionName = tmp[1];
+ final String icons[] = tmp[2].split(" "); //$NON-NLS-1$
+ this.iconPath = icons[0];
icons[0];
+ } else {
+ throw new JMeterException();
+ }
+ }
+
+ /**
+ * Resolve action name ID declared in icon set file to ActionNames
value
+ */
+ public synchronized String getActionNameResolve() {
+ final String aName;
+ try {
+ aName = (String)
(ActionNames.class.getField(this.actionName).get(null));
+ } catch (Exception e) {
+ log.warn("Toolbar icon Action names error: " + this.actionName
+ ", use unknown action."); //$NON-NLS-1$
+ return this.actionName; // return unknown action names for
display error msg
+ }
+ return aName;
+ }
+
+ /**
+ */
+ public synchronized String getI18nKey() {
+ return i18nKey;
+ }
+
+ /**
+ */
+ public synchronized String getActionName() {
+ return actionName;
+ }
+
+ /**
+ */
+ public synchronized String getIconPath() {
+ return iconPath;
+ }
+
+ /**
+ */
+ public synchronized String getIconPathPressed() {
+ return iconPathPressed;
+ }
+
+}
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/IconToolbarBean.java
------------------------------------------------------------------------------
svn:eol-style = native
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/IconToolbarBean.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterMenuBar.java
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterMenuBar.java?rev=1187947&r1=1187946&r2=1187947&view=diff
==============================================================================
---
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterMenuBar.java
(original)
+++
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterMenuBar.java
Sun Oct 23 18:41:08 2011
@@ -26,6 +26,8 @@ import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Locale;
+
+import javax.swing.JCheckBoxMenuItem;
import javax.swing.JComponent;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
@@ -36,6 +38,7 @@ import javax.swing.MenuElement;
import javax.swing.UIManager;
import javax.swing.UIManager.LookAndFeelInfo;
+import org.apache.jmeter.gui.GuiPackage;
import org.apache.jmeter.gui.action.ActionNames;
import org.apache.jmeter.gui.action.ActionRouter;
import org.apache.jmeter.gui.action.KeyStrokes;
@@ -44,8 +47,8 @@ import org.apache.jmeter.util.JMeterUtil
import org.apache.jmeter.util.LocaleChangeEvent;
import org.apache.jmeter.util.LocaleChangeListener;
import org.apache.jmeter.util.SSLManager;
-import org.apache.jorphan.util.JOrphanUtils;
import org.apache.jorphan.logging.LoggingManager;
+import org.apache.jorphan.util.JOrphanUtils;
import org.apache.log.Logger;
public class JMeterMenuBar extends JMenuBar implements
LocaleChangeListener {
@@ -310,6 +313,14 @@ public class JMeterMenuBar extends JMenu
}
optionsMenu.add(functionHelper);
optionsMenu.add(lafMenu);
+
+ JCheckBoxMenuItem menuToolBar =
makeCheckBoxMenuItemRes("menu_toolbar", ActionNames.TOOLBAR); //$NON-NLS-1$
+ GuiPackage guiInstance = GuiPackage.getInstance();
+ if (guiInstance != null) { //avoid error in ant task tests (good
way?)
+ guiInstance.setMenuItemToolbar(menuToolBar);
+ }
+ optionsMenu.add(menuToolBar);
+
if (SSLManager.isSSLSupported()) {
sslManager = makeMenuItemRes("sslmanager", 'S',
ActionNames.SSL_MANAGER, KeyStrokes.SSL_MANAGER); //$NON-NLS-1$
optionsMenu.add(sslManager);
@@ -750,4 +761,18 @@ public class JMeterMenuBar extends JMenu
menuItem.addActionListener(ActionRouter.getInstance());
return menuItem;
}
+
+ private static JCheckBoxMenuItem makeCheckBoxMenuItemRes(String
resource, String actionCommand) {
+ return makeCheckBoxMenuItemRes(resource, actionCommand, null);
+ }
+
+ private static JCheckBoxMenuItem makeCheckBoxMenuItemRes(String
resource,
+ String actionCommand, KeyStroke keyStroke){
+ JCheckBoxMenuItem cbkMenuItem = new
JCheckBoxMenuItem(JMeterUtils.getResString(resource));
+ cbkMenuItem.setName(resource);
+ cbkMenuItem.setActionCommand(actionCommand);
+ cbkMenuItem.setAccelerator(keyStroke);
+ cbkMenuItem.addActionListener(ActionRouter.getInstance());
+ return cbkMenuItem;
+ }
}
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterToolBar.java
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterToolBar.java?rev=1187947&view=auto
==============================================================================
---
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterToolBar.java
(added)
+++
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterToolBar.java
Sun Oct 23 18:41:08 2011
@@ -0,0 +1,134 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jmeter.gui.util;
+
+import java.net.URL;
+import java.util.Collection;
+import java.util.LinkedHashMap;
+import java.util.Properties;
+
+import javax.swing.ImageIcon;
+import javax.swing.JButton;
+import javax.swing.JOptionPane;
+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;
+
+/**
+ * The JMeter main toolbar class
+ *
+ */
+public class JMeterToolBar {
+
+ private static final Logger log = LoggingManager.getLoggerForClass();
+
+ // 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 keyIconProp = "jmeter.toolbar.icons";
//$NON-NLS-1$
+
+ /**
+ * Create the default JMeter toolbar
+ */
+ public static JToolBar createToolbar(boolean visible) {
+ JToolBar toolBar = new JToolBar();
+ toolBar.setFloatable(false);
+ toolBar.setVisible(visible);
+
+ LinkedHashMap<String, IconToolbarBean> icons = getIconMappings();
+ if (icons != null) {
+ Collection<IconToolbarBean> enumIcons = icons.values();
+ for (IconToolbarBean iconToolbarBean : enumIcons) {
+ if (iconToolbarBean == null) {
+ toolBar.addSeparator();
+ } else {
+ toolBar.add(makeButtonItemRes(iconToolbarBean));
+ }
+ }
+ }
+ // implicit return empty toolbar if icons == null
+ return toolBar;
+ }
+
+ /**
+ * Generate a button component from icon bean
icon path pressed
+ */
+ private static JButton makeButtonItemRes(IconToolbarBean iconBean) {
+ final URL imageURL =
JMeterUtils.class.getClassLoader().getResource(iconBean.getIconPath());
+ JButton button = new JButton(new ImageIcon(imageURL));
+
button.setToolTipText(JMeterUtils.getResString(iconBean.getI18nKey()));
+ final URL imageURLPressed =
JMeterUtils.class.getClassLoader().getResource(iconBean.getIconPathPressed());
+ button.setPressedIcon(new ImageIcon(imageURLPressed));
+ button.addActionListener(ActionRouter.getInstance());
+ button.setActionCommand(iconBean.getActionNameResolve());
+ return button;
+ }
+
+ /**
+ * Parse icon set file.
+ */
+ private static LinkedHashMap<String, 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);
+ }
+ if (p == 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;
+ }
+ log.info("Loading toolbar icons properties from " + iconProp);
//$NON-NLS-1$
+
+ String order = p.getProperty("toolbar"); //$NON-NLS-1$
+ p.remove("toolbar"); //$NON-NLS-1$
+ String[] oList = order.split(","); //$NON-NLS-1$
+
+ LinkedHashMap<String, IconToolbarBean> listIcons = new
LinkedHashMap<String, IconToolbarBean>();
+ int ctr = 1;
+ for (String key : oList) {
+ log.debug("Toolbar icon key: " + key); //$NON-NLS-1$
+ if (key.trim().equals("|")) { //$NON-NLS-1$
+ listIcons.put("space" + ctr++, null); //$NON-NLS-1$
+ } else {
+ try {
+ IconToolbarBean itb = new
IconToolbarBean(p.getProperty(key));
+ listIcons.put(key, itb);
+ } catch (JMeterException je) {
+ log.error("Toolbar icon loading error - key: " + key);
//$NON-NLS-1$
+ }
+ }
+ }
+ return listIcons;
+ }
+
+}
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterToolBar.java
------------------------------------------------------------------------------
svn:eol-style = native
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterToolBar.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/clear.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/clear.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/clear.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/clearall.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/clearall.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/clearall.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/close.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/close.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/close.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/collapse.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/collapse.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/collapse.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/copy.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/copy.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/copy.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/cut.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/cut.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/cut.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/expand.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/expand.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/expand.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/function.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/function.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/function.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/help.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/help.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/help.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/icons-toolbar.properties
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/icons-toolbar.properties?rev=1187947&view=auto
==============================================================================
---
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/icons-toolbar.properties
(added)
+++
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/icons-toolbar.properties
Sun Oct 23 18:41:08 2011
@@ -0,0 +1,44 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version
2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Icons order. Keys separate by comma. Use a pipe | to have a space
between two icons.
+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 / action definition file.
+# Key: button names
+# Value: I18N key in messages.properties; ActionNames key field;
icon path, optionally followed by space and then the pressed icon name
+new=new;CLOSE;org/apache/jmeter/images/toolbar/new.png
+open=menu_open;OPEN;org/apache/jmeter/images/toolbar/open.png
+close=menu_close;CLOSE;org/apache/jmeter/images/toolbar/close.png
+save=save;SAVE;org/apache/jmeter/images/toolbar/save.png
+save_as_testplan=save_as;SAVE_AS;org/apache/jmeter/images/toolbar/saveastp.png
+cut=cut;CUT;org/apache/jmeter/images/toolbar/cut.png
+copy=copy;COPY;org/apache/jmeter/images/toolbar/copy.png
+paste=paste;PASTE;org/apache/jmeter/images/toolbar/paste.png
+test_start=start;ACTION_START;org/apache/jmeter/images/toolbar/start.png
+test_stop=stop;ACTION_STOP;org/apache/jmeter/images/toolbar/stop.png
+test_shutdown=shutdown;ACTION_SHUTDOWN;org/apache/jmeter/images/toolbar/shutdown.png
+test_start_remote_all=remote_start_all;REMOTE_START_ALL;org/apache/jmeter/images/toolbar/startremoteall.png
+test_stop_remote_all=remote_stop_all;REMOTE_STOP_ALL;org/apache/jmeter/images/toolbar/stopremoteall.png
+test_shutdown_remote_all=remote_shut_all;REMOTE_SHUT_ALL;org/apache/jmeter/images/toolbar/shutdownremoteall.png
+test_clear=clear;CLEAR;org/apache/jmeter/images/toolbar/clear.png
+test_clear_all=clear_all;CLEAR_ALL;org/apache/jmeter/images/toolbar/clearall.png
+toggle=toggle;TOGGLE;org/apache/jmeter/images/toolbar/toggle.png
+expand=menu_expand_all;EXPAND_ALL;org/apache/jmeter/images/toolbar/expand.png
+collapse=menu_collapse_all;COLLAPSE_ALL;org/apache/jmeter/images/toolbar/collapse.png
+search=menu_search;SEARCH_TREE;org/apache/jmeter/images/toolbar/search.png
+search_reset=menu_search_reset;SEARCH_RESET;org/apache/jmeter/images/toolbar/searchreset.png
+function_helper=function_dialog_menu_item;FUNCTIONS;org/apache/jmeter/images/toolbar/function.png
+help=help;HELP;org/apache/jmeter/images/toolbar/help.png
\ No newline at end of file
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/icons-toolbar.properties
------------------------------------------------------------------------------
svn:eol-style = native
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/icons-toolbar.properties
------------------------------------------------------------------------------
svn:mime-type = text/plain
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/new.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/new.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/new.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/open.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/open.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/open.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/paste.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/paste.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/paste.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/save.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/save.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/save.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/saveastp.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/saveastp.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/saveastp.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/search.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/search.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/search.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/searchreset.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/searchreset.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/searchreset.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/shutdown.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/shutdown.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/shutdown.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/shutdownremoteall.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/shutdownremoteall.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/shutdownremoteall.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/start.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/start.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/start.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/startremoteall.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/startremoteall.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/startremoteall.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/stop.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/stop.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/stop.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/stopremoteall.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/stopremoteall.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/stopremoteall.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/toggle.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/toggle.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/toggle.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties?rev=1187947&r1=1187946&r2=1187947&view=diff
==============================================================================
---
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
(original)
+++
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
Sun Oct 23 18:41:08 2011
@@ -512,6 +512,7 @@ menu_search_reset=Reset Search
menu_tables=Table
menu_threads=Threads (Users)
menu_timer=Timer
+menu_toolbar=Toolbar
metadata=MetaData
mimetype=Mimetype
@@ -944,6 +945,7 @@ throughput_control_tplabel=Throughput
time_format=Format string for SimpleDateFormat (optional)
timelim=Time limit
toggle=Toggle
+toolbar_icon_set_not_found=The file description of toolbar icon set is not
found. See logs.
tr=Turkish
transaction_controller_include_timers=Include timer duration in generated
sample
transaction_controller_parent=Generate parent sample
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties?rev=1187947&r1=1187946&r2=1187947&view=diff
==============================================================================
---
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
(original)
+++
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
Sun Oct 23 18:41:08 2011
@@ -469,6 +469,7 @@ menu_search=Rechercher
menu_search_reset=Effacer la recherche
menu_threads=Moteurs d'utilisateurs
menu_timer=Compteurs de temps
+menu_toolbar=Barre d'outils
metadata=M\u00E9ta-donn\u00E9es
mimetype=Type MIME
time_format=Chaine de formatage sur le mod\u00E8le SimpleDateFormat
(optionnel)
timelim=Limiter le temps de r\u00E9ponses \u00E0 (ms)
toggle=Permuter
+toolbar_icon_set_not_found=Le fichier de description des ic\u00F4nes de la
barre d'outils n'est pas trouv\u00E9. Voir les journaux.
tr=Turc
transaction_controller_include_timers=Inclure la dur\u00E9e des compteurs
de temps dans le calcul du temps
transaction_controller_parent=G\u00E9n\u00E9rer en \u00E9chantillon parent
Modified: jakarta/jmeter/trunk/xdocs/changes.xml
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=1187947&r1=1187946&r2=1187947&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/changes.xml (original)
+++ jakarta/jmeter/trunk/xdocs/changes.xml Sun Oct 23 18:41:08 2011
@@ -178,6 +178,7 @@ Mirror server now uses default port 8081
<li>Bug 52027 - Allow System or CrossPlatform LAF to be set from options
menu</li>
<li>Bug 52037 - Remember user-set LaF over restarts.</li>
<li>Bug 51861 - Improve HTTP Request GUI to better show parameters without
name (GWT RPC requests for example) (UNDER DEVELOPMENT)</li>
+<li>Bug 52040 - Add a toolbar in JMeter main window</li>
</ul>
<h2>Non-functional changes</h2>
---------------------------------------------------------------------
Date: Sun Oct 23 18:41:08 2011
New Revision: 1187947
URL: http://svn.apache.org/viewvc?rev=1187947&view=rev
Bug 52040 - Add a toolbar in JMeter main window
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ToolBar.java
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/IconToolbarBean.java
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterToolBar.java
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/clear.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/clearall.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/close.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/collapse.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/copy.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/cut.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/expand.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/function.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/help.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/icons-toolbar.properties
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/new.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/open.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/paste.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/save.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/saveastp.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/search.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/searchreset.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/shutdown.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/shutdownremoteall.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/start.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/startremoteall.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/stop.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/stopremoteall.png
(with props)
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/toggle.png
(with props)
jakarta/jmeter/trunk/bin/jmeter.properties
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/GuiPackage.java
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/MainFrame.java
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ActionNames.java
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterMenuBar.java
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
jakarta/jmeter/trunk/xdocs/changes.xml
Modified: jakarta/jmeter/trunk/bin/jmeter.properties
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/bin/jmeter.properties?rev=1187947&r1=1187946&r2=1187947&view=diff
==============================================================================
--- jakarta/jmeter/trunk/bin/jmeter.properties (original)
+++ jakarta/jmeter/trunk/bin/jmeter.properties Sun Oct 23 18:41:08 2011
@@ -115,6 +115,12 @@ jmeter.laf.mac=System
# See https://issues.apache.org/bugzilla/show_bug.cgi?id=52026 for
details
# N.B. the laf can be defined in user.properties.
+# Toolbar display
+#jmeter.toolbar.display=true
+# Toolbar icon definitions
+#jmeter.toolbar.icons=org/apache/jmeter/images/toolbar/icons-toolbar.properties
+
# Icon definitions
#jmeter.icons=org/apache/jmeter/images/icon.properties
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/GuiPackage.java
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/GuiPackage.java?rev=1187947&r1=1187946&r2=1187947&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/GuiPackage.java
(original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/GuiPackage.java Sun
Oct 23 18:41:08 2011
@@ -29,8 +29,10 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import javax.swing.JCheckBoxMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPopupMenu;
+import javax.swing.JToolBar;
import javax.swing.SwingUtilities;
import org.apache.jmeter.engine.util.ValueReplacer;
@@ -103,7 +105,13 @@ public final class GuiPackage implements
/** The main JMeter frame. */
private MainFrame mainFrame;
+
+ /** The main JMeter toolbar. */
+ private JToolBar toolbar;
+ /** The menu item toolbar. */
+ private JCheckBoxMenuItem menuToolBar;
+
/**
* Private constructor to permit instantiation only from within this
class.
@@ -513,6 +521,44 @@ public final class GuiPackage implements
public JMeterTreeListener getTreeListener() {
return treeListener;
}
+
+ /**
+ * Set the main JMeter toolbar.
+ *
+ * the new JMeter main toolbar
+ */
+ public void setMainToolbar(JToolBar newToolbar) {
+ toolbar = newToolbar;
+ }
+
+ /**
+ * Get the main JMeter toolbar.
+ *
+ */
+ public JToolBar getMainToolbar() {
+ return toolbar;
+ }
+
+ /**
+ * Set the menu item toolbar.
+ *
+ * the new menu item toolbar
+ */
+ public void setMenuItemToolbar(JCheckBoxMenuItem newMenuToolBar) {
+ menuToolBar = newMenuToolBar;
+ }
+
+ /**
+ * Get the menu item toolbar.
+ *
+ */
+ public JCheckBoxMenuItem getMenuItemToolbar() {
+ return menuToolBar;
+ }
/**
* Display the specified popup menu with the source component and
location
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/MainFrame.java
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/MainFrame.java?rev=1187947&r1=1187946&r2=1187947&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/MainFrame.java
(original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/MainFrame.java Sun
Oct 23 18:41:08 2011
@@ -45,6 +45,7 @@ import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
+import javax.swing.JToolBar;
import javax.swing.JTree;
import javax.swing.MenuElement;
import javax.swing.SwingUtilities;
@@ -60,6 +61,7 @@ import org.apache.jmeter.gui.action.Acti
import org.apache.jmeter.gui.tree.JMeterCellRenderer;
import org.apache.jmeter.gui.tree.JMeterTreeListener;
import org.apache.jmeter.gui.util.JMeterMenuBar;
+import org.apache.jmeter.gui.util.JMeterToolBar;
import org.apache.jmeter.samplers.Remoteable;
import org.apache.jmeter.testelement.TestElement;
import org.apache.jmeter.testelement.TestListener;
@@ -83,6 +85,10 @@ public class MainFrame extends JFrame im
// The default title for the Menu bar
private static final String DEFAULT_TITLE =
"Apache JMeter ("+JMeterUtils.getJMeterVersion()+")"; //
$NON-NLS-1$ $NON-NLS-2$
+
+ // Allow display/hide toolbar
+ private static final boolean DISPLAY_TOOLBAR =
+ JMeterUtils.getPropDefault("jmeter.toolbar.display", true); //
$NON-NLS-1$
/** The menu bar. */
private JMeterMenuBar menuBar;
@@ -428,6 +434,13 @@ public class MainFrame extends JFrame im
*/
private Component createToolBar() {
Box toolPanel = new Box(BoxLayout.X_AXIS);
+ // add the toolbar
+ JToolBar toolbar = JMeterToolBar.createToolbar(DISPLAY_TOOLBAR);
+ GuiPackage guiInstance = GuiPackage.getInstance();
+ guiInstance.setMainToolbar(toolbar);
+
guiInstance.getMenuItemToolbar().getModel().setSelected(DISPLAY_TOOLBAR);
+ toolPanel.add(toolbar);
+
toolPanel.add(Box.createRigidArea(new Dimension(10, 15)));
toolPanel.add(Box.createGlue());
toolPanel.add(activeThreads);
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ActionNames.java
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ActionNames.java?rev=1187947&r1=1187946&r2=1187947&view=diff
==============================================================================
---
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ActionNames.java
(original)
+++
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ActionNames.java
Sun Oct 23 18:41:08 2011
@@ -83,6 +83,7 @@ public class ActionNames {
public static final String SUB_TREE_MERGED = "sub_tree_merged"; //
$NON-NLS-1$
public static final String SUB_TREE_SAVED = "sub_tree_saved"; //
$NON-NLS-1$
public static final String TOGGLE = "toggle"; // $NON-NLS-1$
enable/disable
+ public static final String TOOLBAR = "toolbar"; //
$NON-NLS-1$
public static final String WHAT_CLASS = "what_class"; //
$NON-NLS-1$
public static final String SEARCH_TREE = "search_tree"; //
$NON-NLS-1$
public static final String SEARCH_RESET = "search_reset"; //
$NON-NLS-1$
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ToolBar.java
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ToolBar.java?rev=1187947&view=auto
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ToolBar.java
(added)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ToolBar.java
Sun Oct 23 18:41:08 2011
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.jmeter.gui.action;
+
+import java.awt.event.ActionEvent;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.apache.jmeter.gui.GuiPackage;
+
+/**
+ * Hide / unhide toolbar.
+ *
+ */
+public class ToolBar implements Command {
+
+ private static final Set<String> commands = new HashSet<String>();
+
+ static {
+ commands.add(ActionNames.TOOLBAR);
+ }
+
+ /**
+ * Constructor for object.
+ */
+ public ToolBar() {
+ }
+
+ /**
+ * Gets the ActionNames attribute of the action
+ *
+ */
+ public Set<String> getActionNames() {
+ return commands;
+ }
+
+ /**
+ * This method performs the actual command processing.
+ *
+ * the generic UI action event
+ */
+ public void doAction(ActionEvent e) {
+ if (ActionNames.TOOLBAR.equals(e.getActionCommand())) {
+ GuiPackage guiInstance = GuiPackage.getInstance();
+ if (guiInstance.getMenuItemToolbar().getModel().isSelected())
{
+ guiInstance.getMainToolbar().setVisible(true);
+ } else {
+ guiInstance.getMainToolbar().setVisible(false);
+ }
+ }
+ }
+}
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ToolBar.java
------------------------------------------------------------------------------
svn:eol-style = native
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ToolBar.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/IconToolbarBean.java
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/IconToolbarBean.java?rev=1187947&view=auto
==============================================================================
---
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/IconToolbarBean.java
(added)
+++
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/IconToolbarBean.java
Sun Oct 23 18:41:08 2011
@@ -0,0 +1,103 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jmeter.gui.util;
+
+import org.apache.jmeter.gui.action.ActionNames;
+import org.apache.jorphan.logging.LoggingManager;
+import org.apache.jorphan.util.JMeterException;
+import org.apache.log.Logger;
+
+public final class IconToolbarBean {
+
+ private static final Logger log = LoggingManager.getLoggerForClass();
+
+ private final String i18nKey;
+
+ private final String actionName;
+
+ private final String iconPath;
+
+ private final String iconPathPressed;
+
+ /**
+ * Constructor to transform a line value (from icon set file) to a
icon bean for toolbar.
path, optional icon pressed path)
+ */
+ public IconToolbarBean(final String strToSplit) throws JMeterException
{
+ if (strToSplit == null) {
+ throw new JMeterException("No icon definition"); //$NON-NLS-1$
+ }
+ final String tmp[] = strToSplit.split(";"); //$NON-NLS-1$
+ if (tmp.length > 2) {
+ this.i18nKey = tmp[0];
+ this.actionName = tmp[1];
+ final String icons[] = tmp[2].split(" "); //$NON-NLS-1$
+ this.iconPath = icons[0];
icons[0];
+ } else {
+ throw new JMeterException();
+ }
+ }
+
+ /**
+ * Resolve action name ID declared in icon set file to ActionNames
value
+ */
+ public synchronized String getActionNameResolve() {
+ final String aName;
+ try {
+ aName = (String)
(ActionNames.class.getField(this.actionName).get(null));
+ } catch (Exception e) {
+ log.warn("Toolbar icon Action names error: " + this.actionName
+ ", use unknown action."); //$NON-NLS-1$
+ return this.actionName; // return unknown action names for
display error msg
+ }
+ return aName;
+ }
+
+ /**
+ */
+ public synchronized String getI18nKey() {
+ return i18nKey;
+ }
+
+ /**
+ */
+ public synchronized String getActionName() {
+ return actionName;
+ }
+
+ /**
+ */
+ public synchronized String getIconPath() {
+ return iconPath;
+ }
+
+ /**
+ */
+ public synchronized String getIconPathPressed() {
+ return iconPathPressed;
+ }
+
+}
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/IconToolbarBean.java
------------------------------------------------------------------------------
svn:eol-style = native
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/IconToolbarBean.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterMenuBar.java
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterMenuBar.java?rev=1187947&r1=1187946&r2=1187947&view=diff
==============================================================================
---
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterMenuBar.java
(original)
+++
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterMenuBar.java
Sun Oct 23 18:41:08 2011
@@ -26,6 +26,8 @@ import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Locale;
+
+import javax.swing.JCheckBoxMenuItem;
import javax.swing.JComponent;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
@@ -36,6 +38,7 @@ import javax.swing.MenuElement;
import javax.swing.UIManager;
import javax.swing.UIManager.LookAndFeelInfo;
+import org.apache.jmeter.gui.GuiPackage;
import org.apache.jmeter.gui.action.ActionNames;
import org.apache.jmeter.gui.action.ActionRouter;
import org.apache.jmeter.gui.action.KeyStrokes;
@@ -44,8 +47,8 @@ import org.apache.jmeter.util.JMeterUtil
import org.apache.jmeter.util.LocaleChangeEvent;
import org.apache.jmeter.util.LocaleChangeListener;
import org.apache.jmeter.util.SSLManager;
-import org.apache.jorphan.util.JOrphanUtils;
import org.apache.jorphan.logging.LoggingManager;
+import org.apache.jorphan.util.JOrphanUtils;
import org.apache.log.Logger;
public class JMeterMenuBar extends JMenuBar implements
LocaleChangeListener {
@@ -310,6 +313,14 @@ public class JMeterMenuBar extends JMenu
}
optionsMenu.add(functionHelper);
optionsMenu.add(lafMenu);
+
+ JCheckBoxMenuItem menuToolBar =
makeCheckBoxMenuItemRes("menu_toolbar", ActionNames.TOOLBAR); //$NON-NLS-1$
+ GuiPackage guiInstance = GuiPackage.getInstance();
+ if (guiInstance != null) { //avoid error in ant task tests (good
way?)
+ guiInstance.setMenuItemToolbar(menuToolBar);
+ }
+ optionsMenu.add(menuToolBar);
+
if (SSLManager.isSSLSupported()) {
sslManager = makeMenuItemRes("sslmanager", 'S',
ActionNames.SSL_MANAGER, KeyStrokes.SSL_MANAGER); //$NON-NLS-1$
optionsMenu.add(sslManager);
@@ -750,4 +761,18 @@ public class JMeterMenuBar extends JMenu
menuItem.addActionListener(ActionRouter.getInstance());
return menuItem;
}
+
+ private static JCheckBoxMenuItem makeCheckBoxMenuItemRes(String
resource, String actionCommand) {
+ return makeCheckBoxMenuItemRes(resource, actionCommand, null);
+ }
+
+ private static JCheckBoxMenuItem makeCheckBoxMenuItemRes(String
resource,
+ String actionCommand, KeyStroke keyStroke){
+ JCheckBoxMenuItem cbkMenuItem = new
JCheckBoxMenuItem(JMeterUtils.getResString(resource));
+ cbkMenuItem.setName(resource);
+ cbkMenuItem.setActionCommand(actionCommand);
+ cbkMenuItem.setAccelerator(keyStroke);
+ cbkMenuItem.addActionListener(ActionRouter.getInstance());
+ return cbkMenuItem;
+ }
}
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterToolBar.java
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterToolBar.java?rev=1187947&view=auto
==============================================================================
---
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterToolBar.java
(added)
+++
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterToolBar.java
Sun Oct 23 18:41:08 2011
@@ -0,0 +1,134 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jmeter.gui.util;
+
+import java.net.URL;
+import java.util.Collection;
+import java.util.LinkedHashMap;
+import java.util.Properties;
+
+import javax.swing.ImageIcon;
+import javax.swing.JButton;
+import javax.swing.JOptionPane;
+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;
+
+/**
+ * The JMeter main toolbar class
+ *
+ */
+public class JMeterToolBar {
+
+ private static final Logger log = LoggingManager.getLoggerForClass();
+
+ // 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 keyIconProp = "jmeter.toolbar.icons";
//$NON-NLS-1$
+
+ /**
+ * Create the default JMeter toolbar
+ */
+ public static JToolBar createToolbar(boolean visible) {
+ JToolBar toolBar = new JToolBar();
+ toolBar.setFloatable(false);
+ toolBar.setVisible(visible);
+
+ LinkedHashMap<String, IconToolbarBean> icons = getIconMappings();
+ if (icons != null) {
+ Collection<IconToolbarBean> enumIcons = icons.values();
+ for (IconToolbarBean iconToolbarBean : enumIcons) {
+ if (iconToolbarBean == null) {
+ toolBar.addSeparator();
+ } else {
+ toolBar.add(makeButtonItemRes(iconToolbarBean));
+ }
+ }
+ }
+ // implicit return empty toolbar if icons == null
+ return toolBar;
+ }
+
+ /**
+ * Generate a button component from icon bean
icon path pressed
+ */
+ private static JButton makeButtonItemRes(IconToolbarBean iconBean) {
+ final URL imageURL =
JMeterUtils.class.getClassLoader().getResource(iconBean.getIconPath());
+ JButton button = new JButton(new ImageIcon(imageURL));
+
button.setToolTipText(JMeterUtils.getResString(iconBean.getI18nKey()));
+ final URL imageURLPressed =
JMeterUtils.class.getClassLoader().getResource(iconBean.getIconPathPressed());
+ button.setPressedIcon(new ImageIcon(imageURLPressed));
+ button.addActionListener(ActionRouter.getInstance());
+ button.setActionCommand(iconBean.getActionNameResolve());
+ return button;
+ }
+
+ /**
+ * Parse icon set file.
+ */
+ private static LinkedHashMap<String, 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);
+ }
+ if (p == 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;
+ }
+ log.info("Loading toolbar icons properties from " + iconProp);
//$NON-NLS-1$
+
+ String order = p.getProperty("toolbar"); //$NON-NLS-1$
+ p.remove("toolbar"); //$NON-NLS-1$
+ String[] oList = order.split(","); //$NON-NLS-1$
+
+ LinkedHashMap<String, IconToolbarBean> listIcons = new
LinkedHashMap<String, IconToolbarBean>();
+ int ctr = 1;
+ for (String key : oList) {
+ log.debug("Toolbar icon key: " + key); //$NON-NLS-1$
+ if (key.trim().equals("|")) { //$NON-NLS-1$
+ listIcons.put("space" + ctr++, null); //$NON-NLS-1$
+ } else {
+ try {
+ IconToolbarBean itb = new
IconToolbarBean(p.getProperty(key));
+ listIcons.put(key, itb);
+ } catch (JMeterException je) {
+ log.error("Toolbar icon loading error - key: " + key);
//$NON-NLS-1$
+ }
+ }
+ }
+ return listIcons;
+ }
+
+}
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterToolBar.java
------------------------------------------------------------------------------
svn:eol-style = native
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterToolBar.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/clear.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/clear.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/clear.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/clearall.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/clearall.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/clearall.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/close.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/close.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/close.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/collapse.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/collapse.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/collapse.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/copy.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/copy.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/copy.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/cut.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/cut.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/cut.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/expand.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/expand.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/expand.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/function.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/function.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/function.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/help.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/help.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/help.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/icons-toolbar.properties
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/icons-toolbar.properties?rev=1187947&view=auto
==============================================================================
---
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/icons-toolbar.properties
(added)
+++
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/icons-toolbar.properties
Sun Oct 23 18:41:08 2011
@@ -0,0 +1,44 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version
2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Icons order. Keys separate by comma. Use a pipe | to have a space
between two icons.
+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 / action definition file.
+# Key: button names
+# Value: I18N key in messages.properties; ActionNames key field;
icon path, optionally followed by space and then the pressed icon name
+new=new;CLOSE;org/apache/jmeter/images/toolbar/new.png
+open=menu_open;OPEN;org/apache/jmeter/images/toolbar/open.png
+close=menu_close;CLOSE;org/apache/jmeter/images/toolbar/close.png
+save=save;SAVE;org/apache/jmeter/images/toolbar/save.png
+save_as_testplan=save_as;SAVE_AS;org/apache/jmeter/images/toolbar/saveastp.png
+cut=cut;CUT;org/apache/jmeter/images/toolbar/cut.png
+copy=copy;COPY;org/apache/jmeter/images/toolbar/copy.png
+paste=paste;PASTE;org/apache/jmeter/images/toolbar/paste.png
+test_start=start;ACTION_START;org/apache/jmeter/images/toolbar/start.png
+test_stop=stop;ACTION_STOP;org/apache/jmeter/images/toolbar/stop.png
+test_shutdown=shutdown;ACTION_SHUTDOWN;org/apache/jmeter/images/toolbar/shutdown.png
+test_start_remote_all=remote_start_all;REMOTE_START_ALL;org/apache/jmeter/images/toolbar/startremoteall.png
+test_stop_remote_all=remote_stop_all;REMOTE_STOP_ALL;org/apache/jmeter/images/toolbar/stopremoteall.png
+test_shutdown_remote_all=remote_shut_all;REMOTE_SHUT_ALL;org/apache/jmeter/images/toolbar/shutdownremoteall.png
+test_clear=clear;CLEAR;org/apache/jmeter/images/toolbar/clear.png
+test_clear_all=clear_all;CLEAR_ALL;org/apache/jmeter/images/toolbar/clearall.png
+toggle=toggle;TOGGLE;org/apache/jmeter/images/toolbar/toggle.png
+expand=menu_expand_all;EXPAND_ALL;org/apache/jmeter/images/toolbar/expand.png
+collapse=menu_collapse_all;COLLAPSE_ALL;org/apache/jmeter/images/toolbar/collapse.png
+search=menu_search;SEARCH_TREE;org/apache/jmeter/images/toolbar/search.png
+search_reset=menu_search_reset;SEARCH_RESET;org/apache/jmeter/images/toolbar/searchreset.png
+function_helper=function_dialog_menu_item;FUNCTIONS;org/apache/jmeter/images/toolbar/function.png
+help=help;HELP;org/apache/jmeter/images/toolbar/help.png
\ No newline at end of file
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/icons-toolbar.properties
------------------------------------------------------------------------------
svn:eol-style = native
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/icons-toolbar.properties
------------------------------------------------------------------------------
svn:mime-type = text/plain
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/new.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/new.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/new.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/open.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/open.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/open.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/paste.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/paste.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/paste.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/save.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/save.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/save.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/saveastp.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/saveastp.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/saveastp.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/search.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/search.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/search.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/searchreset.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/searchreset.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/searchreset.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/shutdown.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/shutdown.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/shutdown.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/shutdownremoteall.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/shutdownremoteall.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/shutdownremoteall.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/start.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/start.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/start.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/startremoteall.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/startremoteall.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/startremoteall.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/stop.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/stop.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/stop.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/stopremoteall.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/stopremoteall.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/stopremoteall.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/toggle.png
Failed to load image: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/toggle.png?rev=1187947&view=auto
==============================================================================
Binary file - no diff available.
jakarta/jmeter/trunk/src/core/org/apache/jmeter/images/toolbar/toggle.png
------------------------------------------------------------------------------
svn:mime-type = image/png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties?rev=1187947&r1=1187946&r2=1187947&view=diff
==============================================================================
---
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
(original)
+++
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
Sun Oct 23 18:41:08 2011
@@ -512,6 +512,7 @@ menu_search_reset=Reset Search
menu_tables=Table
menu_threads=Threads (Users)
menu_timer=Timer
+menu_toolbar=Toolbar
metadata=MetaData
mimetype=Mimetype
@@ -944,6 +945,7 @@ throughput_control_tplabel=Throughput
time_format=Format string for SimpleDateFormat (optional)
timelim=Time limit
toggle=Toggle
+toolbar_icon_set_not_found=The file description of toolbar icon set is not
found. See logs.
tr=Turkish
transaction_controller_include_timers=Include timer duration in generated
sample
transaction_controller_parent=Generate parent sample
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties?rev=1187947&r1=1187946&r2=1187947&view=diff
==============================================================================
---
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
(original)
+++
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
Sun Oct 23 18:41:08 2011
@@ -469,6 +469,7 @@ menu_search=Rechercher
menu_search_reset=Effacer la recherche
menu_threads=Moteurs d'utilisateurs
menu_timer=Compteurs de temps
+menu_toolbar=Barre d'outils
metadata=M\u00E9ta-donn\u00E9es
mimetype=Type MIME
time_format=Chaine de formatage sur le mod\u00E8le SimpleDateFormat
(optionnel)
timelim=Limiter le temps de r\u00E9ponses \u00E0 (ms)
toggle=Permuter
+toolbar_icon_set_not_found=Le fichier de description des ic\u00F4nes de la
barre d'outils n'est pas trouv\u00E9. Voir les journaux.
tr=Turc
transaction_controller_include_timers=Inclure la dur\u00E9e des compteurs
de temps dans le calcul du temps
transaction_controller_parent=G\u00E9n\u00E9rer en \u00E9chantillon parent
Modified: jakarta/jmeter/trunk/xdocs/changes.xml
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=1187947&r1=1187946&r2=1187947&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/changes.xml (original)
+++ jakarta/jmeter/trunk/xdocs/changes.xml Sun Oct 23 18:41:08 2011
@@ -178,6 +178,7 @@ Mirror server now uses default port 8081
<li>Bug 52027 - Allow System or CrossPlatform LAF to be set from options
menu</li>
<li>Bug 52037 - Remember user-set LaF over restarts.</li>
<li>Bug 51861 - Improve HTTP Request GUI to better show parameters without
name (GWT RPC requests for example) (UNDER DEVELOPMENT)</li>
+<li>Bug 52040 - Add a toolbar in JMeter main window</li>
</ul>
<h2>Non-functional changes</h2>
---------------------------------------------------------------------
...
--
Cordialement.
Philippe Mouawad.
Cordialement.
Philippe Mouawad.