/** * Get the {@link TestPlan} from the root of this tree * @return The {@link TestPlan} found at the root of this tree */ public HashTree getTestPlan() { return getCurrentSubTree((JMeterTreeNode) ((JMeterTreeNode) this.getRoot()).getChildAt(0)); }
/** * Get the currently selected subtree. * * @return the subtree of the currently selected node */ public HashTree getCurrentSubTree() { return treeModel.getCurrentSubTree(treeListener.getCurrentNode()); }
/** * Initialize the model with nodes for testplan. * * @param tp the element to use as testplan */ private void initTree(TestElement tp) { // Insert the test plan node insertNodeInto(new JMeterTreeNode(tp, this), (JMeterTreeNode) getRoot(), 0); // Let others know that the tree content has changed. // This should not be necessary, but without it, nodes are not shown when the user // uses the Close menu item nodeStructureChanged((JMeterTreeNode)getRoot()); }
private JMeterTreeNode getParentNode(JMeterTreeNode currentNode) { JMeterTreeNode parentNode = (JMeterTreeNode) currentNode.getParent(); TestElement te = currentNode.getTestElement(); if (te instanceof TestPlan) { parentNode = null; // So elements can only be added as children } return parentNode; }
protected void addParentToTree(TestElement newParent) { GuiPackage guiPackage = GuiPackage.getInstance(); JMeterTreeNode newNode = new JMeterTreeNode(newParent, guiPackage.getTreeModel()); JMeterTreeNode currentNode = guiPackage.getTreeListener().getCurrentNode(); JMeterTreeNode parentNode = (JMeterTreeNode) currentNode.getParent(); int index = parentNode.getIndex(currentNode); guiPackage.getTreeModel().insertNodeInto(newNode, parentNode, index); JMeterTreeNode[] nodes = guiPackage.getTreeListener().getSelectedNodes(); for (JMeterTreeNode node : nodes) { moveNode(guiPackage, node, newNode); } }
private void moveNode(GuiPackage guiPackage, JMeterTreeNode node, JMeterTreeNode newParentNode) { guiPackage.getTreeModel().removeNodeFromParent(node); guiPackage.getTreeModel().insertNodeInto(node, newParentNode, newParentNode.getChildCount()); } }
/** * Get the node for a given TestElement object. * @param userObject The object to be found in this tree * @return the node corresponding to the <code>userObject</code> */ public JMeterTreeNode getNodeOf(TestElement userObject) { return traverseAndFind(userObject, (JMeterTreeNode) getRoot()); }
private JMeterTreeNode traverseAndFind(TestElement userObject, JMeterTreeNode node) { if (userObject == node.getUserObject()) { return node; } Enumeration<?> enumNode = node.children(); while (enumNode.hasMoreElements()) { JMeterTreeNode child = (JMeterTreeNode)enumNode.nextElement(); JMeterTreeNode result = traverseAndFind(userObject, child); if (result != null) { return result; } } return null; }
public void setEnabled(boolean enabled) { getTestElement().setEnabled(enabled); treeModel.nodeChanged(this); }
private void displayPopUp(MouseEvent e) { JPopupMenu pop = getCurrentNode().createPopupMenu(); GuiPackage.getInstance().displayPopUp(e, pop); } }
public JMeterTreeModel(TestElement tp) { super(new JMeterTreeNode(tp, null)); initTree(tp); }
public TestElement getTestElement() { return (TestElement) getUserObject(); }
/** * Tag Node as result of a search * @param tagged The flag to be used for tagging */ public void setMarkedBySearch(boolean tagged) { if (this.markedBySearch == tagged) { return; } this.markedBySearch = tagged; List<JMeterTreeNode> nodesToParent = getPathToThreadGroup(); for (JMeterTreeNode jMeterTreeNode : nodesToParent) { // Ignore me if(jMeterTreeNode != this) { jMeterTreeNode.setChildrenNodesHaveMatched(true); } } treeModel.nodeChanged(this); }
/** * Find the JMeterTreeNode for a certain TestElement object. * * @param userObject * the test element to search for * @return the tree node associated with the test element */ public JMeterTreeNode getNodeOf(TestElement userObject) { return treeModel.getNodeOf(userObject); }
public JMeterTreeNode getCurrentNode() { return treeListener.getCurrentNode(); }
public ImageIcon getIcon() { return getIcon(true); }
/** * One of the children of this node have matched a search * @param tagged true if we must tag */ public void setChildrenNodesHaveMatched(boolean tagged) { if (childrenMarkedBySearch == tagged) { return; } this.childrenMarkedBySearch = tagged; treeModel.nodeChanged(this); } /**
/** * Create the tree cell renderer used to draw the nodes in the test tree. * * @return a renderer to draw the test tree nodes */ private TreeCellRenderer getCellRenderer() { return new JMeterCellRenderer(); }
@Override public void doAction(ActionEvent e) { GuiPackage guiPackage = GuiPackage.getInstance(); JMeterGUIComponent currentGui = guiPackage.getCurrentGui(); guiPackage.getMainFrame().setMainPanel((javax.swing.JComponent) currentGui); guiPackage.getMainFrame().setEditMenu(guiPackage.getTreeListener().getCurrentNode().createPopupMenu()); guiPackage.getMainFrame().setFileLoadEnabled(true); guiPackage.getMainFrame().setFileSaveEnabled(true); }
/** {@inheritDoc} */ @Override public void nameChanged() { if (treeModel != null) { // may be null during startup treeModel.nodeChanged(this); } }