/** * @see org.apache.jmeter.gui.action.Command#doAction(ActionEvent) */ @Override public void doAction(ActionEvent e) { JMeterTreeNode[] nodes = GuiPackage.getInstance().getTreeListener().getSelectedNodes(); if (e.getActionCommand().equals(ActionNames.ENABLE)) { log.debug("enabling currently selected gui objects"); enableComponents(nodes, true); } else if (e.getActionCommand().equals(ActionNames.DISABLE)) { log.debug("disabling currently selected gui objects"); enableComponents(nodes, false); } else if (e.getActionCommand().equals(ActionNames.TOGGLE)) { log.debug("toggling currently selected gui objects"); toggleComponents(nodes); } }
@Override public void doAction(ActionEvent e) { GuiPackage guiPackage = GuiPackage.getInstance(); JMeterTreeNode currentNode = guiPackage.getTreeListener().getCurrentNode(); if (!(currentNode.getUserObject() instanceof Controller)) { Toolkit.getDefaultToolkit().beep(); return; } try { applyNamingPolicyToCurrentNode(guiPackage, currentNode); } catch (Exception err) { Toolkit.getDefaultToolkit().beep(); log.error("Failed to apply naming policy", err); JMeterUtils.reportErrorToUser("Failed to apply naming policy", err); } }
@Override public void doAction(ActionEvent e) { String name = ((Component) e.getSource()).getName(); GuiPackage guiPackage = GuiPackage.getInstance(); JMeterTreeNode currentNode = guiPackage.getTreeListener().getCurrentNode(); if (!(currentNode.getUserObject() instanceof Controller)) { Toolkit.getDefaultToolkit().beep(); return; } try { guiPackage.updateCurrentNode(); TestElement controller = guiPackage.createTestElement(name); changeParent(controller, guiPackage, currentNode); } catch (Exception err) { Toolkit.getDefaultToolkit().beep(); log.error("Failed to change parent", err); } }
@Override public void doAction(ActionEvent e) { GuiPackage guiPackage = GuiPackage.getInstance(); JMeterTreeNode currentNode = guiPackage.getTreeListener().getCurrentNode(); if (! (currentNode.getUserObject() instanceof Controller || currentNode.getUserObject() instanceof ThreadGroup) ) { Toolkit.getDefaultToolkit().beep(); return; } try { addThinkTimeToChildren(guiPackage, currentNode); } catch (Exception err) { Toolkit.getDefaultToolkit().beep(); log.error("Failed to add think times", err); JMeterUtils.reportErrorToUser("Failed to add think times", err); } }
/** * Implementation of Expand button: <br> * moves focus to a test plan tree element referenced by selected element in Module to run tree */ @Override public void actionPerformed(ActionEvent e) { if (e.getSource() == expandButton) { DefaultMutableTreeNode currentSelectedNodeInMC = (DefaultMutableTreeNode) this.moduleToRunTreeNodes.getLastSelectedPathComponent(); JMeterTreeNode nodeToExpandInTestPlanTree = null; if (currentSelectedNodeInMC != null && currentSelectedNodeInMC.getUserObject() instanceof JMeterTreeNode){ nodeToExpandInTestPlanTree = (JMeterTreeNode) currentSelectedNodeInMC.getUserObject(); } if (nodeToExpandInTestPlanTree != null){ TreePath treePath = new TreePath(nodeToExpandInTestPlanTree.getPath()); //changing selection in a test plan tree GuiPackage.getInstance().getTreeListener().getJTree() .setSelectionPath(treePath); //expanding tree to make referenced element visible in test plan tree GuiPackage.getInstance().getTreeListener().getJTree() .scrollPathToVisible(treePath); } } }
/** * @see Command#doAction(ActionEvent) */ @Override public void doAction(ActionEvent e) { JMeterTreeNode[] draggedNodes = Copy.getCopiedNodes(); if (draggedNodes == null) { Toolkit.getDefaultToolkit().beep(); return; } JMeterTreeListener treeListener = GuiPackage.getInstance().getTreeListener(); JMeterTreeNode currentNode = treeListener.getCurrentNode(); if (MenuFactory.canAddTo(currentNode, draggedNodes)) { Arrays.stream(draggedNodes) .filter(Objects::nonNull) .forEach(draggedNode -> addNode(currentNode, draggedNode)); } else { Toolkit.getDefaultToolkit().beep(); } GuiPackage.getInstance().getMainFrame().repaint(); }
@Override public void actionPerformed(ActionEvent e) { if(e.getSource() == clearButton) { GuiPackage guiPackage = GuiPackage.getInstance(); JMeterTreeNode currentNode = guiPackage.getTreeListener().getCurrentNode(); if (!(currentNode.getUserObject() instanceof org.apache.jmeter.protocol.http.control.RecordingController)) { Toolkit.getDefaultToolkit().beep(); return; } try { guiPackage.updateCurrentNode(); JMeterTreeModel treeModel = guiPackage.getTreeModel(); int childCount = currentNode.getChildCount(); for (int i = 0; i < childCount; i++) { JMeterTreeNode node = (JMeterTreeNode) currentNode.getChildAt(0); treeModel.removeNodeFromParent(node); } } catch (Exception err) { Toolkit.getDefaultToolkit().beep(); log.error("Error while removing recorded samples", err); } } } }
url.append(source[0]).append('#').append(source[1]); } else { url.append(HELP_COMPONENTS).append('#').append(GuiPackage.getInstance().getTreeListener().getCurrentNode().getDocAnchor()); } else { String[] source = new String[]{ActionNames.LINK_COMP_REF, GuiPackage.getInstance().getTreeListener().getCurrentNode().getDocAnchor()}; ActionRouter.getInstance().doActionNow( new ActionEvent(source, e.getID(),
@Override public void doAction(ActionEvent e) { JMeterTreeListener treeListener = GuiPackage.getInstance().getTreeListener(); JMeterTreeNode[] nodes = treeListener.getSelectedNodes(); nodes = keepOnlyAncestors(nodes); nodes = cloneTreeNodes(nodes); setCopiedNodes(nodes); }
/** * {@inheritDoc} */ @Override public void localeChanged(LocaleChangeEvent event) { // First make sure we save the content of the current GUI (since we // will flush it away): updateCurrentNode(); // Forget about all GUIs we've created so far: we'll need to re-created // them all! guis = new HashMap<>(); nodesToGui = new HashMap<>(); testBeanGUIs = new HashMap<>(); // BeanInfo objects also contain locale-sensitive data -- flush them // away: Introspector.flushCaches(); // Now put the current GUI in place. [This code was copied from the // EditCommand action -- we can't just trigger the action because that // would populate the current node with the contents of the new GUI -- // which is empty.] MainFrame mf = getMainFrame(); // Fetch once if (mf == null) { // Probably caused by unit testing on headless system log.warn("Mainframe is null"); } else { mf.setMainPanel((javax.swing.JComponent) getCurrentGui()); mf.setEditMenu(getTreeListener().getCurrentNode().createPopupMenu()); } }
@Override public void doAction(ActionEvent e) { int isConfirm = SKIP_CONFIRM ? JOptionPane.YES_OPTION : JOptionPane.showConfirmDialog(GuiPackage.getInstance().getMainFrame(), JMeterUtils.getResString("remove_confirm_msg"),// $NON-NLS-1$ JMeterUtils.getResString("remove_confirm_title"), // $NON-NLS-1$ JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); if (isConfirm == JOptionPane.YES_OPTION) { // TODO - removes the nodes from the CheckDirty map - should it be done later, in case some can't be removed? ActionRouter.getInstance().actionPerformed(new ActionEvent(e.getSource(), e.getID(), ActionNames.CHECK_REMOVE)); GuiPackage guiPackage = GuiPackage.getInstance(); JMeterTreeNode[] nodes = guiPackage.getTreeListener().getSelectedNodes(); TreePath newTreePath = // Save parent node for later guiPackage.getTreeListener().removedSelectedNode(); for (int i = nodes.length - 1; i >= 0; i--) { removeNode(nodes[i]); } guiPackage.getTreeListener().getJTree().setSelectionPath(newTreePath); guiPackage.updateCurrentGui(); } }
static void closeProject(ActionEvent e) { GuiPackage guiPackage = GuiPackage.getInstance(); guiPackage.clearTestPlan(); JTree tree = guiPackage.getTreeListener().getJTree(); tree.setSelectionRow(0); FocusRequester.requestFocus(tree); FileServer.getFileServer().setScriptName(null); ActionRouter.getInstance().actionPerformed(new ActionEvent(e.getSource(), e.getID(), ActionNames.ADD_ALL)); } }
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); } }
boolean isEnabled = GuiPackage.getInstance().getTreeListener().getCurrentNode().isEnabled(); disabled.setEnabled(isEnabled); enabled.setEnabled(!isEnabled);
/** * 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); } } }
/** * @see Command#doAction(ActionEvent) */ @Override public void doAction(ActionEvent e) { GuiPackage guiPack = GuiPackage.getInstance(); ActionRouter.getInstance().actionPerformed(new ActionEvent(e.getSource(), e.getID(), ActionNames.CHECK_CUT)); JMeterTreeNode[] currentNodes = guiPack.getTreeListener().getSelectedNodes(); currentNodes = Copy.keepOnlyAncestors(currentNodes); Copy.setCopiedNodes(currentNodes); for (JMeterTreeNode currentNode : currentNodes) { guiPack.getTreeModel().removeNodeFromParent(currentNode); } guiPack.getMainFrame().repaint(); } }
public void doAction(ActionEvent e) { JMeterTreeListener treeListener = GuiPackage.getInstance() .getTreeListener();
@Override public void doAction(ActionEvent e) { GuiPackage instance = GuiPackage.getInstance(); JMeterTreeListener treeListener = instance.getTreeListener(); JMeterTreeNode[] copiedNodes = Copy.cloneTreeNodes(treeListener.getSelectedNodes()); JMeterTreeNode currentNode = treeListener.getCurrentNode(); JMeterTreeNode parentNode = (JMeterTreeNode) currentNode.getParent(); JMeterTreeModel treeModel = instance.getTreeModel(); for (int nodeIndex = copiedNodes.length - 1; nodeIndex >= 0; nodeIndex--) { JMeterTreeNode copiedNode = copiedNodes[nodeIndex]; int index = parentNode.getIndex(currentNode) + 1; treeModel.insertNodeInto(copiedNode, parentNode, index); } instance.getMainFrame().repaint(); } }
@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); }
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)); }