Author: pmouawad
Date: Sat Sep  1 21:32:06 2018
New Revision: 1839858

URL: http://svn.apache.org/viewvc?rev=1839858&view=rev
Log:
Bug 61635 - Add a menu to restart JMeter
Fix issue when restarting (nightly) there's no pop up ask to save test plan (if 
there's an unsaved change) and changes are deleted after restart

Contributed by orimarko
Bugzilla Id: 61635

Modified:
    jmeter/trunk/src/core/org/apache/jmeter/gui/action/Restart.java

Modified: jmeter/trunk/src/core/org/apache/jmeter/gui/action/Restart.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/action/Restart.java?rev=1839858&r1=1839857&r2=1839858&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/gui/action/Restart.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/gui/action/Restart.java Sat Sep  1 
21:32:06 2018
@@ -43,7 +43,7 @@ import org.slf4j.LoggerFactory;
  * Based on https://dzone.com/articles/programmatically-restart-java
  * @since 5.0
  */
-public class Restart extends AbstractAction implements MenuCreator {
+public class Restart extends AbstractActionWithNoRunningTest implements 
MenuCreator {
     private static final Logger log = LoggerFactory.getLogger(Restart.class);
 
     private static final String RESTART = "restart";
@@ -60,12 +60,30 @@ public class Restart extends AbstractAct
     }
 
     /**
-     * @see Command#doAction(ActionEvent)
+     * @see Command#doActionAfterCheck(ActionEvent)
      */
     @Override
-    public void doAction(ActionEvent e) {
+    public void doActionAfterCheck(ActionEvent e) {
         try {
-            restartApplication(null);
+            GuiPackage guiPackage = GuiPackage.getInstance();
+            ActionRouter.getInstance().doActionNow(new 
ActionEvent(e.getSource(), e.getID(), ActionNames.CHECK_DIRTY));
+            if (guiPackage.isDirty()) {
+                int chosenOption = 
+                        
JOptionPane.showConfirmDialog(guiPackage.getMainFrame(), JMeterUtils
+                                .getResString("cancel_exit_to_save"), // 
$NON-NLS-1$
+                                JMeterUtils.getResString("save?"), // 
$NON-NLS-1$
+                                JOptionPane.YES_NO_CANCEL_OPTION, 
JOptionPane.QUESTION_MESSAGE);
+                if (chosenOption == JOptionPane.NO_OPTION) {
+                    restartApplication(null);
+                } else if (chosenOption == JOptionPane.YES_OPTION) {
+                    ActionRouter.getInstance().doActionNow(new 
ActionEvent(e.getSource(), e.getID(), ActionNames.SAVE));
+                    if (!guiPackage.isDirty()) {
+                        restartApplication(null);
+                    }
+                }
+            } else {
+                restartApplication(null);
+            }
         } catch (Exception ex) {
             log.error("Error trying to restart: {}", ex.getMessage(), ex);
             
JOptionPane.showMessageDialog(GuiPackage.getInstance().getMainFrame(), 


Reply via email to