You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by pm...@apache.org on 2015/12/08 22:56:27 UTC
svn commit: r1718720 - in /jmeter/trunk:
src/core/org/apache/jmeter/gui/action/CheckDirty.java
src/core/org/apache/jmeter/gui/action/Save.java
src/core/org/apache/jmeter/gui/tree/JMeterTreeModel.java xdocs/changes.xml
Author: pmouawad
Date: Tue Dec 8 21:56:27 2015
New Revision: 1718720
URL: http://svn.apache.org/viewvc?rev=1718720&view=rev
Log:
Bug 58699 : Workbench changes neither saved nor prompted for saving upon close
#resolve #45
Bugzilla Id: 58699
Modified:
jmeter/trunk/src/core/org/apache/jmeter/gui/action/CheckDirty.java
jmeter/trunk/src/core/org/apache/jmeter/gui/action/Save.java
jmeter/trunk/src/core/org/apache/jmeter/gui/tree/JMeterTreeModel.java
jmeter/trunk/xdocs/changes.xml
Modified: jmeter/trunk/src/core/org/apache/jmeter/gui/action/CheckDirty.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/action/CheckDirty.java?rev=1718720&r1=1718719&r2=1718720&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/gui/action/CheckDirty.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/gui/action/CheckDirty.java Tue Dec 8 21:56:27 2015
@@ -28,6 +28,7 @@ import java.util.Set;
import org.apache.jmeter.gui.GuiPackage;
import org.apache.jmeter.gui.tree.JMeterTreeNode;
import org.apache.jmeter.testelement.TestElement;
+import org.apache.jmeter.testelement.WorkBench;
import org.apache.jorphan.collections.HashTree;
import org.apache.jorphan.collections.HashTreeTraverser;
import org.apache.jorphan.collections.ListedHashTree;
@@ -87,6 +88,9 @@ public class CheckDirty extends Abstract
} else if (action.equals(ActionNames.ADD_ALL)) {
previousGuiItems.clear();
GuiPackage.getInstance().getTreeModel().getTestPlan().traverse(this);
+ if (isWorkbenchSaveable()) {
+ GuiPackage.getInstance().getTreeModel().getWorkBench().traverse(this);
+ }
} else if (action.equals(ActionNames.CHECK_REMOVE)) {
GuiPackage guiPackage = GuiPackage.getInstance();
JMeterTreeNode[] nodes = guiPackage.getTreeListener().getSelectedNodes();
@@ -99,6 +103,7 @@ public class CheckDirty extends Abstract
removeMode = false;
}
}
+
// If we are merging in another test plan, we know the test plan is dirty now
if(action.equals(ActionNames.SUB_TREE_MERGED)) {
dirty = true;
@@ -109,6 +114,14 @@ public class CheckDirty extends Abstract
try {
HashTree wholeTree = GuiPackage.getInstance().getTreeModel().getTestPlan();
wholeTree.traverse(this);
+
+ // check the workbench for modification
+ if(!dirty) {
+ if (isWorkbenchSaveable()) {
+ HashTree workbench = GuiPackage.getInstance().getTreeModel().getWorkBench();
+ workbench.traverse(this);
+ }
+ }
} finally {
checkMode = false;
}
@@ -117,6 +130,14 @@ public class CheckDirty extends Abstract
}
/**
+ * check if the workbench should be saved
+ */
+ private boolean isWorkbenchSaveable() {
+ JMeterTreeNode workbenchNode = (JMeterTreeNode) ((JMeterTreeNode) GuiPackage.getInstance().getTreeModel().getRoot()).getChildAt(1);
+ return ((WorkBench) workbenchNode.getUserObject()).getSaveWorkBench();
+ }
+
+ /**
* The tree traverses itself depth-first, calling addNode for each
* object it encounters as it goes.
*/
Modified: jmeter/trunk/src/core/org/apache/jmeter/gui/action/Save.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/action/Save.java?rev=1718720&r1=1718719&r2=1718720&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/gui/action/Save.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/gui/action/Save.java Tue Dec 8 21:56:27 2015
@@ -109,8 +109,7 @@ public class Save implements Command {
/**
* Constructor for the Save object.
*/
- public Save() {
- }
+ public Save() {}
/**
* Gets the ActionNames attribute of the Save object.
@@ -167,8 +166,7 @@ public class Save implements Command {
fullSave = true;
HashTree testPlan = GuiPackage.getInstance().getTreeModel().getTestPlan();
// If saveWorkBench
- JMeterTreeNode workbenchNode = (JMeterTreeNode) ((JMeterTreeNode) GuiPackage.getInstance().getTreeModel().getRoot()).getChildAt(1);
- if (((WorkBench)workbenchNode.getUserObject()).getSaveWorkBench()) {
+ if (isWorkbenchSaveable()) {
HashTree workbench = GuiPackage.getInstance().getTreeModel().getWorkBench();
testPlan.add(workbench);
}
@@ -227,6 +225,10 @@ public class Save implements Command {
SaveService.saveTree(subTree, ostream);
if (fullSave) { // Only update the stored copy of the tree for a full save
subTree = GuiPackage.getInstance().getTreeModel().getTestPlan(); // refetch, because convertSubTree affects it
+ if (isWorkbenchSaveable()) {
+ HashTree workbench = GuiPackage.getInstance().getTreeModel().getWorkBench();
+ subTree.add(workbench);
+ }
ActionRouter.getInstance().doActionNow(new ActionEvent(subTree, e.getID(), ActionNames.SUB_TREE_SAVED));
}
@@ -392,6 +394,14 @@ public class Save implements Command {
}
return expiredFiles;
}
+
+ /**
+ * check if the workbench should be saved
+ */
+ private boolean isWorkbenchSaveable() {
+ JMeterTreeNode workbenchNode = (JMeterTreeNode) ((JMeterTreeNode) GuiPackage.getInstance().getTreeModel().getRoot()).getChildAt(1);
+ return ((WorkBench) workbenchNode.getUserObject()).getSaveWorkBench();
+ }
/**
* Check nodes does not contain a node of type TestPlan or ThreadGroup
Modified: jmeter/trunk/src/core/org/apache/jmeter/gui/tree/JMeterTreeModel.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/tree/JMeterTreeModel.java?rev=1718720&r1=1718719&r2=1718720&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/gui/tree/JMeterTreeModel.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/gui/tree/JMeterTreeModel.java Tue Dec 8 21:56:27 2015
@@ -48,9 +48,6 @@ public class JMeterTreeModel extends Def
public JMeterTreeModel() {
this(new TestPlanGui().createTestElement(),new WorkBenchGui().createTestElement());
-// super(new JMeterTreeNode(new WorkBenchGui().createTestElement(), null));
-// TestElement tp = new TestPlanGui().createTestElement();
-// initTree(tp);
}
/**
@@ -62,9 +59,6 @@ public class JMeterTreeModel extends Def
@Deprecated
public JMeterTreeModel(Object o) {
this(new TestPlan(),new WorkBench());
-// super(new JMeterTreeNode(new WorkBench(), null));
-// TestElement tp = new TestPlan();
-// initTree(tp, new WorkBench());
}
/**
Modified: jmeter/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?rev=1718720&r1=1718719&r2=1718720&view=diff
==============================================================================
--- jmeter/trunk/xdocs/changes.xml (original)
+++ jmeter/trunk/xdocs/changes.xml Tue Dec 8 21:56:27 2015
@@ -144,6 +144,7 @@ Summary
<li><bug>58689</bug>Add shortcuts to expand / collapse a part of the tree. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
<li><bug>58696</bug>Create Ant task to setup Eclipse project</li>
<li><bug>58653</bug>New JMeter Dashboard/Report with Dynamic Graphs, Tables to help analyzing load test results. Developed by Ubik-Ingenierie and contributed by Decathlon S.A. and Ubik-Ingenierie/UbikLoadPack</li>
+<li><bug>58699</bug>Workbench changes neither saved nor prompted for saving upon close. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
</ul>
<ch_section>Non-functional changes</ch_section>
<ul>