/** * Update the GUI for the currently selected node. The GUI component is * configured to reflect the settings in the current tree node. */ public void updateCurrentGui() { updateCurrentNode(); refreshCurrentGui(); }
@Override public void doAction(ActionEvent e) { String name = ((Component) e.getSource()).getName(); GuiPackage guiPackage = GuiPackage.getInstance(); try { guiPackage.updateCurrentNode(); TestElement controller = guiPackage.createTestElement(name); addParentToTree(controller); } catch (Exception err) { log.error("Exception while adding a TestElement.", 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); } }
/** * Apply the naming policy of currentNode children * @param guiPackage {@link GuiPackage} * @param currentNode Parent node of elements on which we apply naming policy */ private void applyNamingPolicyToCurrentNode(GuiPackage guiPackage, JMeterTreeNode currentNode) { TreeNodeNamingPolicy namingPolicy = guiPackage.getNamingPolicy(); guiPackage.updateCurrentNode(); Enumeration<?> enumeration = currentNode.children(); int index = 0; namingPolicy.resetState(currentNode); while(enumeration.hasMoreElements()) { JMeterTreeNode childNode = (JMeterTreeNode)enumeration.nextElement(); namingPolicy.rename(currentNode, childNode, index); index++; } }
@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); } } } }
/** * */ private void doReplace() { GuiPackage.getInstance().updateCurrentNode(); JMeterTreeNode currentNode = lastSearchResult.get(currentSearchIndex); if(currentNode != null) { String wordToSearch = searchTF.getText(); String wordToReplace = replaceTF.getText(); String regex = isRegexpCB.isSelected() ? wordToSearch : Pattern.quote(wordToSearch); boolean caseSensitiveReplacement = isCaseSensitiveCB.isSelected(); Pair<Integer, JMeterTreeNode> pair = doReplacementInCurrentNode(currentNode, regex, wordToReplace, caseSensitiveReplacement); int nbReplacements = 0; if(pair != null) { nbReplacements = pair.getLeft(); GuiPackage.getInstance().updateCurrentGui(); GuiPackage.getInstance().getMainFrame().repaint(); } statusLabel.setText(MessageFormat.format("Replaced {0} occurrences", nbReplacements)); } }
/** * Convenience method for grabbing the gui for the current node. * * @return the GUI component associated with the currently selected node */ public JMeterGUIComponent getCurrentGui() { try { updateCurrentNode(); TestElement curNode = treeListener.getCurrentNode().getTestElement(); JMeterGUIComponent comp = getGui(curNode); if (comp == null) { log.debug("No Component found for {}.", treeListener.getCurrentNode().getName()); return null; } comp.clearGui(); log.debug("Updating gui to new node"); comp.configure(curNode); currentNodeUpdated = false; return comp; } catch (Exception e) { log.error("Problem retrieving current gui", e); return null; } }
/** * {@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()); } }
GuiPackage.getInstance().updateCurrentNode();
/** * Adds the specified class to the current node of the tree. */ @Override public void doAction(ActionEvent e) { GuiPackage guiPackage = GuiPackage.getInstance(); try { guiPackage.updateCurrentNode(); TestElement testElement = guiPackage.createTestElement(((JComponent) e.getSource()).getName()); JMeterTreeNode parentNode = guiPackage.getCurrentNode(); JMeterTreeNode node = guiPackage.getTreeModel().addComponent(testElement, parentNode); guiPackage.getNamingPolicy().nameOnCreation(node); guiPackage.getMainFrame().getTree().setSelectionPath(new TreePath(node.getPath())); } catch (Exception err) { log.error("Exception while adding a component to tree.", err); // $NON-NLS-1$ String msg = err.getMessage(); if (msg == null) { msg = err.toString(); } JMeterUtils.reportErrorToUser(msg); } } }
@Override public void actionPerformed(ActionEvent actionEvent) { String propname = "gui.quick_" + actionEvent.getActionCommand(); String comp = JMeterUtils.getProperty(propname); log.debug("Event {}: {}", propname, comp); if (comp == null) { log.warn("No component set through property: {}", propname); return; } GuiPackage guiPackage = GuiPackage.getInstance(); try { guiPackage.updateCurrentNode(); TestElement testElement = guiPackage.createTestElement(SaveService.aliasToClass(comp)); JMeterTreeNode parentNode = guiPackage.getCurrentNode(); while (!MenuFactory.canAddTo(parentNode, testElement)) { parentNode = (JMeterTreeNode) parentNode.getParent(); } if (parentNode.getParent() == null) { log.debug("Cannot add element on very top level"); } else { JMeterTreeNode node = guiPackage.getTreeModel().addComponent(testElement, parentNode); guiPackage.getMainFrame().getTree().setSelectionPath(new TreePath(node.getPath())); } } catch (Exception err) { log.warn("Failed to perform quick component add: {}", comp, err); // $NON-NLS-1$ } } };
guiPackage.updateCurrentNode(); boolean insertThinkTime; try {
if (guiPackage != null) { guiPackage.updateCurrentNode(); JMeterGUIComponent guicomp = guiPackage.getGui(component); guicomp.clearGui();