You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jmeter-dev@jakarta.apache.org by al...@apache.org on 2007/09/15 14:12:02 UTC
svn commit: r575909 - in /jakarta/jmeter/trunk: src/core/org/apache/jmeter/
src/core/org/apache/jmeter/gui/ src/core/org/apache/jmeter/gui/action/
src/core/org/apache/jmeter/gui/util/ src/core/org/apache/jmeter/resources/
src/core/org/apache/jmeter/uti...
Author: alf
Date: Sat Sep 15 05:12:00 2007
New Revision: 575909
URL: http://svn.apache.org/viewvc?rev=575909&view=rev
Log:
Add File->Revert action, to drop changes and reload current project.
Added:
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/RevertProject.java
Modified:
jakarta/jmeter/trunk/src/core/org/apache/jmeter/JMeter.java
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/action/Close.java
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/Load.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/util/JMeterVersion.java
jakarta/jmeter/trunk/xdocs/changes.xml
Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/JMeter.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/JMeter.java?rev=575909&r1=575908&r2=575909&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/JMeter.java (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/JMeter.java Sat Sep 15 05:12:00 2007
@@ -228,7 +228,7 @@
GuiPackage.getInstance().setTestPlanFile(f.getAbsolutePath());
- new Load().insertLoadedTree(1, tree);
+ Load.insertLoadedTree(1, tree);
} catch (ConversionException e) {
log.error("Failure loading test file", e);
JMeterUtils.reportErrorToUser(SaveService.CEtoString(e));
Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/GuiPackage.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/GuiPackage.java?rev=575909&r1=575908&r2=575909&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 Sat Sep 15 05:12:00 2007
@@ -603,7 +603,10 @@
*/
public void setTestPlanFile(String f) {
testPlanFile = f;
- GuiPackage.getInstance().getMainFrame().setTitle(JMeterUtils.getExtendedFrameTitle(testPlanFile));
+ getMainFrame().setTitle(JMeterUtils.getExtendedFrameTitle(testPlanFile));
+ // Enable file revert action if a file is used
+ getMainFrame().setFileRevertEnabled(f != null);
+
try {
FileServer.getFileServer().setBasedir(testPlanFile);
} catch (IOException e1) {
Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/MainFrame.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/MainFrame.java?rev=575909&r1=575908&r2=575909&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 Sat Sep 15 05:12:00 2007
@@ -176,6 +176,16 @@
}
/**
+ * Specify whether or not the File|Revert item should be enabled.
+ *
+ * @param enabled
+ * true if the menu item should be enabled, false otherwise
+ */
+ public void setFileRevertEnabled(boolean enabled) {
+ menuBar.setFileRevertEnabled(enabled);
+ }
+
+ /**
* Set the menu that should be used for the Edit menu.
*
* @param menu
Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ActionNames.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ActionNames.java?rev=575909&r1=575908&r2=575909&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 Sat Sep 15 05:12:00 2007
@@ -64,7 +64,8 @@
public static final String REMOTE_STOP = "remote_stop"; // $NON-NLS-1$
public static final String REMOTE_STOP_ALL = "remote_stop_all"; // $NON-NLS-1$
public static final String REMOVE = "remove"; // $NON-NLS-1$
- public static final String RESET_GUI = "reset_gui"; // $NON-NLS-1$
+ public static final String RESET_GUI = "reset_gui"; // $NON-NLS-1$
+ public static final String REVERT_PROJECT = "revert_project"; // $NON-NLS-1$
public final static String SAVE = "save"; // $NON-NLS-1$
public final static String SAVE_ALL_AS = "save_all_as"; // $NON-NLS-1$
public final static String SAVE_AS = "save_as"; // $NON-NLS-1$
Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/Close.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/Close.java?rev=575909&r1=575908&r2=575909&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/Close.java (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/Close.java Sat Sep 15 05:12:00 2007
@@ -88,13 +88,20 @@
return false; // Don't clear the plan
}
}
+
+ closeProject(e);
+ return true;
+ }
+
+ static void closeProject(ActionEvent e) {
+ GuiPackage guiPackage = GuiPackage.getInstance();
+
guiPackage.getTreeModel().clearTestPlan();
guiPackage.getTreeListener().getJTree().setSelectionRow(1);
// Clear the name of the test plan file
- GuiPackage.getInstance().setTestPlanFile(null);
+ guiPackage.setTestPlanFile(null);
ActionRouter.getInstance().actionPerformed(new ActionEvent(e.getSource(), e.getID(), ActionNames.ADD_ALL));
- return true;
}
}
Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/Load.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/Load.java?rev=575909&r1=575908&r2=575909&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/Load.java (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/Load.java Sat Sep 15 05:12:00 2007
@@ -73,20 +73,28 @@
if (chooser == null) {
return;
}
+ File selectedFile = chooser.getSelectedFile();
+ if(selectedFile != null) {
+ boolean merging = e.getActionCommand().equals(ActionNames.MERGE);
+ // We must ask the user if it is ok to close current project
+ if(!merging) {
+ if (!Close.performAction(e)) return;
+ }
+ loadProjectFile(e, selectedFile, merging);
+ }
+ }
+
+ static void loadProjectFile(ActionEvent e, File f, boolean merging) {
+ GuiPackage guiPackage = GuiPackage.getInstance();
InputStream reader = null;
try {
- File f = chooser.getSelectedFile();
if (f != null) {
boolean isTestPlan = false;
- boolean merging = e.getActionCommand().equals(ActionNames.MERGE);
if (merging) {
log.info("Merging file: " + f);
} else {
log.info("Loading file: " + f);
- // Close the test plan currently open
- if (!Close.performAction(e)) return;
-
FileServer.getFileServer().setBasedir(f.getAbsolutePath());
}
reader = new FileInputStream(f);
@@ -95,7 +103,7 @@
// don't change name if merging
if (!merging && isTestPlan) {
- GuiPackage.getInstance().setTestPlanFile(f.getAbsolutePath());
+ guiPackage.setTestPlanFile(f.getAbsolutePath());
}
}
} catch (NoClassDefFoundError ex) // Allow for missing optional jars
@@ -118,15 +126,15 @@
JMeterUtils.reportErrorToUser(msg);
} finally {
JOrphanUtils.closeQuietly(reader);
- GuiPackage.getInstance().updateCurrentGui();
- GuiPackage.getInstance().getMainFrame().repaint();
+ guiPackage.updateCurrentGui();
+ guiPackage.getMainFrame().repaint();
}
}
/**
* Returns a boolean indicating whether the loaded tree was a full test plan
*/
- public boolean insertLoadedTree(int id, HashTree tree, boolean merging) throws Exception, IllegalUserActionException {
+ public static boolean insertLoadedTree(int id, HashTree tree, boolean merging) throws Exception, IllegalUserActionException {
// convertTree(tree);
if (tree == null) {
throw new Exception("Error in TestPlan - see log file");
@@ -164,7 +172,7 @@
return isTestPlan;
}
- public boolean insertLoadedTree(int id, HashTree tree) throws Exception, IllegalUserActionException {
+ public static boolean insertLoadedTree(int id, HashTree tree) throws Exception, IllegalUserActionException {
return insertLoadedTree(id, tree, false);
}
}
Added: jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/RevertProject.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/RevertProject.java?rev=575909&view=auto
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/RevertProject.java (added)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/RevertProject.java Sat Sep 15 05:12:00 2007
@@ -0,0 +1,74 @@
+/*
+ * 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.io.File;
+import java.util.HashSet;
+import java.util.Set;
+import javax.swing.JOptionPane;
+
+import org.apache.jmeter.gui.GuiPackage;
+import org.apache.jmeter.util.JMeterUtils;
+
+/**
+ * Handles the Revert Project command.
+ *
+ */
+public class RevertProject implements Command {
+ private static Set commands = new HashSet();
+ static {
+ commands.add(ActionNames.REVERT_PROJECT);
+ }
+
+ public RevertProject() {
+ super();
+ }
+
+ public Set getActionNames() {
+ return commands;
+ }
+
+ public void doAction(ActionEvent e) {
+ // Get the file name of the current project
+ String projectFile = GuiPackage.getInstance().getTestPlanFile();
+ // Check if the user has loaded any file
+ if(projectFile == null) {
+ return;
+ }
+
+ // Check if the user wants to drop any changes
+ ActionRouter.getInstance().doActionNow(new ActionEvent(e.getSource(), e.getID(), ActionNames.CHECK_DIRTY));
+ GuiPackage guiPackage = GuiPackage.getInstance();
+ if (guiPackage.isDirty()) {
+ // Check if the user wants to revert
+ int response = JOptionPane.showConfirmDialog(GuiPackage.getInstance().getMainFrame(),
+ JMeterUtils.getResString("cancel_revert_project"), // $NON-NLS-1$
+ JMeterUtils.getResString("revert_project?"), // $NON-NLS-1$
+ JOptionPane.YES_NO_OPTION,
+ JOptionPane.QUESTION_MESSAGE);
+ if(response == JOptionPane.YES_OPTION) {
+ // Close the current project
+ Close.closeProject(e);
+ // Reload the project
+ Load.loadProjectFile(e, new File(projectFile), false);
+ }
+ }
+ }
+}
Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterMenuBar.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterMenuBar.java?rev=575909&r1=575908&r2=575909&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 Sat Sep 15 05:12:00 2007
@@ -49,6 +49,8 @@
private JMenuItem file_save_as;
+ private JMenuItem file_revert;
+
private JMenuItem file_load;
private JMenuItem file_merge;
@@ -121,7 +123,9 @@
}
public void setFileSaveEnabled(boolean enabled) {
- file_save_as.setEnabled(enabled);
+ if(file_save_as != null) {
+ file_save_as.setEnabled(enabled);
+ }
}
public void setFileLoadEnabled(boolean enabled) {
@@ -133,6 +137,12 @@
}
}
+ public void setFileRevertEnabled(boolean enabled) {
+ if(file_revert != null) {
+ file_revert.setEnabled(enabled);
+ }
+ }
+
public void setEditEnabled(boolean enabled) {
if (editMenu != null) {
editMenu.setEnabled(enabled);
@@ -439,6 +449,11 @@
file_save_as.addActionListener(ActionRouter.getInstance());
file_save_as.setEnabled(true);
+ file_revert = new JMenuItem(JMeterUtils.getResString("revert_project"), 'R'); //$NON-NLS-1$
+ file_revert.setActionCommand(ActionNames.REVERT_PROJECT);
+ file_revert.addActionListener(ActionRouter.getInstance());
+ file_revert.setEnabled(false);
+
file_load = new JMenuItem(JMeterUtils.getResString("menu_open"), 'O'); //$NON-NLS-1$
file_load.setAccelerator(KeyStrokes.OPEN);
file_load.addActionListener(ActionRouter.getInstance());
@@ -469,8 +484,10 @@
fileMenu.add(file_close);
fileMenu.add(file_load);
fileMenu.add(file_merge);
+ fileMenu.addSeparator();
fileMenu.add(file_save);
fileMenu.add(file_save_as);
+ fileMenu.add(file_revert);
fileMenu.addSeparator();
fileMenu.add(file_exit);
}
Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties?rev=575909&r1=575908&r2=575909&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 Sat Sep 15 05:12:00 2007
@@ -84,6 +84,7 @@
busy_testing=I'm busy testing, please stop the test before changing settings
cache_session_id=Cache Session Id?
cancel=Cancel
+cancel_revert_project=There are test items that have not been saved. Do you wish to revert to the previously saved test plan?
cancel_exit_to_save=There are test items that have not been saved. Do you wish to save before exiting?
cancel_new_to_save=There are test items that have not been saved. Do you wish to save before clearing the test plan?
choose_function=Choose a function
@@ -595,6 +596,8 @@
resultsaver_title=Save Responses to a file
retobj=Return object
reuseconnection=Re-use connection
+revert_project=Revert
+revert_project?=Revert project?
root=Root
root_title=Root
run=Run
Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/JMeterVersion.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/JMeterVersion.java?rev=575909&r1=575908&r2=575909&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/JMeterVersion.java (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/JMeterVersion.java Sat Sep 15 05:12:00 2007
@@ -44,7 +44,7 @@
* This ensures that JMeterUtils always gets the correct
* version, even if JMeterUtils is not re-compiled during the build.
*/
- private static final String VERSION = "2.3.20070909";
+ private static final String VERSION = "2.3.20070915";
static final String COPYRIGHT = "Copyright (c) 1998-2007 The Apache Software Foundation";
Modified: jakarta/jmeter/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=575909&r1=575908&r2=575909&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/changes.xml (original)
+++ jakarta/jmeter/trunk/xdocs/changes.xml Sat Sep 15 05:12:00 2007
@@ -37,6 +37,7 @@
<h4>Improvements</h4>
<ul>
<li>Add run_gui Ant target, to package and then start the JMeter GUI from Ant</li>
+<li>Add File->Revert to easily drop the current changes and reload the project file currently loaded</li>
</ul>
<!-- =================== -->
---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org