Author: pmouawad
Date: Tue Oct 11 19:46:59 2011
New Revision: 1182051
URL: http://svn.apache.org/viewvc?rev=1182051&view=rev
Log:
Bug 51876 - Functionnality to search in Samplers TreeView
Highlight all nodes up to ThreadGroup node to make search result visible if
nodes are not expanded
Modified:
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/SearchTreeCommand.java
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/tree/JMeterTreeNode.java
Modified:
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/SearchTreeCommand.java
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/SearchTreeCommand.java?rev=1182051&r1=1182050&r2=1182051&view=diff
==============================================================================
---
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/SearchTreeCommand.java
(original)
+++
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/SearchTreeCommand.java
Tue Oct 11 19:46:59 2011
@@ -21,6 +21,7 @@ package org.apache.jmeter.gui.action;
import java.awt.event.ActionEvent;
import java.util.HashSet;
import java.util.Iterator;
+import java.util.List;
import java.util.Set;
import javax.swing.JOptionPane;
@@ -39,6 +40,7 @@ import org.apache.log.Logger;
*/
public class SearchTreeCommand extends AbstractAction {
private Logger logger = LoggingManager.getLoggerForClass();
+
private static final Set<String> commands = new HashSet<String>();
static {
@@ -58,6 +60,7 @@ public class SearchTreeCommand extends A
GuiPackage guiPackage = GuiPackage.getInstance();
JMeterTreeModel jMeterTreeModel = guiPackage.getTreeModel();
Iterator<?> iter =
jMeterTreeModel.getNodesOfType(Searchable.class).iterator();
+ Set<JMeterTreeNode> nodes = new HashSet<JMeterTreeNode>();
while (iter.hasNext()) {
try {
JMeterTreeNode jMeterTreeNode = (JMeterTreeNode) iter.next();
@@ -65,17 +68,20 @@ public class SearchTreeCommand extends A
Searchable searchable = (Searchable)
jMeterTreeNode.getUserObject();
boolean result = searchable.searchContent(wordToSearch);
+ jMeterTreeNode.setMarkedBySearch(false);
if(result) {
- jMeterTreeNode.setMarkedBySearch(true);
- }
- else {
- jMeterTreeNode.setMarkedBySearch(false);
+ List<JMeterTreeNode> matchingNodes =
jMeterTreeNode.getPathToThreadGroup();
+ nodes.addAll(matchingNodes);
}
}
} catch (Exception ex) {
logger.error("Error occured searching for word:"+
wordToSearch, ex);
}
}
+ for (Iterator<JMeterTreeNode> iterator = nodes.iterator();
iterator.hasNext();) {
+ JMeterTreeNode jMeterTreeNode = iterator.next();
+ jMeterTreeNode.setMarkedBySearch(true);
+ }
GuiPackage.getInstance().getMainFrame().repaint();
}
Modified:
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/tree/JMeterTreeNode.java
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/tree/JMeterTreeNode.java?rev=1182051&r1=1182050&r2=1182051&view=diff
==============================================================================
---
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/tree/JMeterTreeNode.java
(original)
+++
jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/tree/JMeterTreeNode.java
Tue Oct 11 19:46:59 2011
@@ -22,12 +22,15 @@ import java.awt.Image;
import java.beans.BeanInfo;
import java.beans.IntrospectionException;
import java.beans.Introspector;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.Enumeration;
+import java.util.List;
import javax.swing.ImageIcon;
import javax.swing.JPopupMenu;
import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.TreeNode;
import org.apache.jmeter.gui.GUIFactory;
import org.apache.jmeter.gui.GuiPackage;
@@ -43,6 +46,8 @@ public class JMeterTreeNode extends Defa
private static final Logger log = LoggingManager.getLoggerForClass();
+ private static final int TEST_PLAN_LEVEL = 2;
+
private final JMeterTreeModel treeModel;
private boolean markedBySearch;
@@ -68,6 +73,27 @@ public class JMeterTreeNode extends Defa
}
/**
+ * Return nodes to level 2
+ * @return {@link List}<JMeterTreeNode>
+ */
+ public List<JMeterTreeNode> getPathToThreadGroup() {
+ List<JMeterTreeNode> nodes = new ArrayList<JMeterTreeNode>();
+ if(treeModel != null) {
+ TreeNode[] nodesToRoot = treeModel.getPathToRoot(this);
+ for (int i = 0; i < nodesToRoot.length; i++) {
+ JMeterTreeNode jMeterTreeNode = (JMeterTreeNode)
nodesToRoot[i];
+ int level = jMeterTreeNode.getLevel();
+ if(level<TEST_PLAN_LEVEL) {
+ continue;
+ } else {
+ nodes.add(jMeterTreeNode);
+ }
+ }
+ }
+ return nodes;
+ }
+
+ /**
* Tag Node as result of a search
* @return
*/
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]