public class Remove implements Command { private static final Set commands = new HashSet(); static { commands.add(ActionNames.REMOVE); } /** * Constructor for the Remove object */ public Remove() { } /** * Gets the ActionNames attribute of the Remove object. * * @return the ActionNames value */ public Set getActionNames() { return commands; } public void doAction(ActionEvent e) { 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(); } public static void removeNode(JMeterTreeNode node) { TestElement testElement = node.getTestElement(); if (testElement.canRemove()) { GuiPackage.getInstance().getTreeModel().removeNodeFromParent(node); GuiPackage.getInstance().removeNode(testElement); } else { String message = testElement.getClass().getName() + " is busy"; JOptionPane.showMessageDialog(null, message, "Cannot remove item", JOptionPane.ERROR_MESSAGE);
public class ReportRemove implements Command { private static final Set commands = new HashSet(); static { commands.add("remove"); } /** * Constructor for the Remove object */ public ReportRemove() { } /** * Gets the ActionNames attribute of the Remove object. * * @return the ActionNames value */ public Set getActionNames() { return commands; } public void doAction(ActionEvent e) { ReportActionRouter.getInstance().actionPerformed( new ActionEvent(e.getSource(), e.getID(), ReportCheckDirty.REMOVE)); ReportGuiPackage guiPackage = ReportGuiPackage.getInstance(); ReportTreeNode[] 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(); } public static void removeNode(ReportTreeNode node) { TestElement testElement = node.getTestElement(); if (testElement.canRemove()) { ReportGuiPackage.getInstance().getTreeModel().removeNodeFromParent( node); ReportGuiPackage.getInstance().removeNode(testElement); } else { String message = testElement.getClass().getName() + " is busy"; JOptionPane.showMessageDialog(null, message, "Cannot remove item", JOptionPane.ERROR_MESSAGE);
Clone fragments detected by clone detection tool
File path: /jakarta-jmeter-2.3.2/src/org/apache/jmeter/gui/action/Remove.java File path: /jakarta-jmeter-2.3.2/src/org/apache/jmeter/report/gui/action/ReportRemove.java
Method name: Method name:
Number of AST nodes: 0 Number of AST nodes: 0
1
public class Remove implements Command {
1
public class ReportRemove implements Command {
2
	
2
	
3
    private static final Set commands = new HashSet();
3
private static final Set commands = new HashSet();
4
    static {
4
	static {
5
		commands.add(ActionNames.REMOVE);
5
		commands.add("remove");
6
	}
6
	}
7
	/**
7
	/**
8
	 * Constructor for the Remove object
8
	 * Constructor for the Remove object
9
	 */
9
	 */
10
	public Remove() {
10
	public ReportRemove() {
11
	}
11
	}
12
	/**
12
	/**
13
	 * Gets the ActionNames attribute of the Remove object.
13
	 * Gets the ActionNames attribute of the Remove object.
14
	 * 
14
	 * 
15
	 * @return the ActionNames value
15
	 * @return the ActionNames value
16
	 */
16
	 */
17
	public Set getActionNames() {
17
	public Set getActionNames() {
18
		return commands;
18
		return commands;
19
	}
19
	}
20
	public void doAction(ActionEvent e) {
20
	public void doAction(ActionEvent e) {
21
		ActionRouter.getInstance().actionPerformed(
21
		ReportActionRouter.getInstance().actionPerformed(
22
new ActionEvent(e.getSource(), e.getID(), ActionNames.CHECK_
22
				new ActionEvent(e.getSource(), e.getID(),
23
REMOVE));
23
						ReportCheckDirty.REMOVE));
24
		GuiPackage guiPackage = GuiPackage.getInstance();
24
		ReportGuiPackage guiPackage = ReportGuiPackage.getInstance();
25
		JMeterTreeNode[] nodes = guiPackage.getTreeListener()
25
		ReportTreeNode[] nodes = guiPackage.getTreeListener()
26
.getSelectedNodes();
26
				.getSelectedNodes();
27
		TreePath newTreePath = // Save parent node for later
27
		TreePath newTreePath = // Save parent node for later
28
		guiPackage.getTreeListener().removedSelectedNode();
28
		guiPackage.getTreeListener().removedSelectedNode();
29
		for (int i = nodes.length - 1; i >= 0; i--) {
29
		for (int i = nodes.length - 1; i >= 0; i--) {
30
			removeNode(nodes[i]);
30
			removeNode(nodes[i]);
31
		}
31
		}
32
		guiPackage.getTreeListener().getJTree().setSelectionPath(newTreePath);
32
		guiPackage.getTreeListener().getJTree().setSelectionPath(newTreePath);
33
		guiPackage.updateCurrentGui();
33
		guiPackage.updateCurrentGui();
34
	}
34
	}
35
	public static void removeNode(JMeterTreeNode node) {
35
	public static void removeNode(ReportTreeNode node) {
36
		TestElement testElement = node.getTestElement();
36
		TestElement testElement = node.getTestElement();
37
		if (testElement.canRemove()) {
37
		if (testElement.canRemove()) {
38
			GuiPackage.getInstance().getTreeModel().removeNodeFromParent(
38
			ReportGuiPackage.getInstance().getTreeModel().removeNodeFromParent(
39
node);
39
					node);
40
			GuiPackage.getInstance().removeNode(testElement);
40
			ReportGuiPackage.getInstance().removeNode(testElement);
41
		} else {
41
		} else {
42
			String message = testElement.getClass().getName() + " is busy";
42
			String message = testElement.getClass().getName() + " is busy";
43
			JOptionPane.showMessageDialog(null, message, "Cannot remove item", 
43
			JOptionPane.showMessageDialog(null, message, "Cannot remove item",
44
JOptionPane.ERROR_MESSAGE);
44
					JOptionPane.ERROR_MESSAGE);
45
		
45
		
Summary
Number of common nesting structure subtrees0
Number of refactorable cases0
Number of non-refactorable cases0
Time elapsed for finding largest common nesting structure subtrees (ms)0.0
Clones location
Number of node comparisons0