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