/** * Return nodes to level 2 * @return {@link List} of {@link JMeterTreeNode}s */ public List<JMeterTreeNode> getPathToThreadGroup() { if (treeModel == null) { return new ArrayList<>(); } return Arrays.stream(treeModel.getPathToRoot(this)) .map(node -> (JMeterTreeNode) node) .filter(node -> node.getLevel() >= TEST_PLAN_LEVEL) .collect(Collectors.toList()); }
/** * This method performs the actual command processing. * * @param e the generic UI action event */ @Override public void doAction(ActionEvent e) { JMeterTreeListener treeListener = GuiPackage.getInstance().getTreeListener(); JTree jTree = GuiPackage.getInstance().getMainFrame().getTree(); JMeterTreeNode[] selectedNodes = treeListener.getSelectedNodes(); for (JMeterTreeNode currentNode : selectedNodes) { if (!currentNode.isLeaf()) { TreeNode[] nodes = GuiPackage.getInstance().getTreeModel().getPathToRoot(currentNode); TreePath path = new TreePath(nodes); boolean collapse = ActionNames.COLLAPSE.equals(e.getActionCommand()); expandCollapseNode(jTree, path, collapse); } } }
private static void moveAndSelectNode( JMeterTreeNode currentNode, JMeterTreeNode parentNode, int newIndx) { GuiPackage guiInstance = GuiPackage.getInstance(); guiInstance.getTreeModel().removeNodeFromParent(currentNode); guiInstance.getTreeModel().insertNodeInto(currentNode, parentNode, newIndx); // select the node TreeNode[] nodes = guiInstance.getTreeModel() .getPathToRoot(currentNode); JTree jTree = guiInstance.getMainFrame().getTree(); jTree.setSelectionPath(new TreePath(nodes)); }
pathsToSelect[pathPosition++] = new TreePath(treeModel.getPathToRoot(copy));
private void changeParent(TestElement newParent, GuiPackage guiPackage, JMeterTreeNode currentNode) { // keep the old name if it was not the default one Controller currentController = (Controller) currentNode.getUserObject(); JMeterGUIComponent currentGui = guiPackage.getCurrentGui(); String defaultName = JMeterUtils.getResString(currentGui.getLabelResource()); if(StringUtils.isNotBlank(currentController.getName()) && !currentController.getName().equals(defaultName)){ newParent.setName(currentController.getName()); } JMeterTreeModel treeModel = guiPackage.getTreeModel(); JMeterTreeNode newNode = new JMeterTreeNode(newParent, treeModel); JMeterTreeNode parentNode = (JMeterTreeNode) currentNode.getParent(); int index = parentNode.getIndex(currentNode); treeModel.insertNodeInto(newNode, parentNode, index); treeModel.removeNodeFromParent(currentNode); int childCount = currentNode.getChildCount(); for (int i = 0; i < childCount; i++) { // Using index 0 is voluntary as child is removed in next step and added to new parent JMeterTreeNode node = (JMeterTreeNode) currentNode.getChildAt(0); treeModel.removeNodeFromParent(node); treeModel.insertNodeInto(node, newNode, newNode.getChildCount()); } // select the node TreeNode[] nodes = treeModel.getPathToRoot(newNode); JTree tree = guiPackage.getTreeListener().getJTree(); tree.setSelectionPath(new TreePath(nodes)); }