super("Clone TestSuite", "Clones this TestSuite");
}
public void perform(final WsdlTestSuite testSuite, Object param) {
if (dialog == null) {
ActionList actions = new DefaultActionList();
final AbstractAction cloneAction = new AbstractAction("Clone") {
@Override
public void actionPerformed(ActionEvent e) {
if (dialog.validate()) {
dialog.setVisible(false);
String targetProjectName = dialog.getValue(Form.PROJECT);
String name = dialog.getValue(Form.NAME);
WsdlProject project = testSuite.getProject();
// within same project?
boolean move = dialog.getBooleanValue(Form.MOVE);
boolean cloneDescription = dialog.getBooleanValue(Form.CLONE_DESCRIPTION);
String description = testSuite.getDescription();
if (!cloneDescription) {
description = dialog.getValue(Form.DESCRIPTION);
}
TestSuite result;
if (targetProjectName.equals(testSuite.getProject().getName())) {
result = cloneTestSuiteWithinProject(testSuite, name, project, description);
} else {
result = cloneToAnotherProject(testSuite, targetProjectName, name, move, description);
}
if (move && result != null) {
testSuite.getProject().removeTestSuite(testSuite);
}
}
}
};
actions.addAction(cloneAction);
actions.addAction(new AbstractAction("Cancel") {
@Override
public void actionPerformed(ActionEvent e) {
dialog.setVisible(false);
}
});
actions.setDefaultAction(cloneAction);
dialog = ADialogBuilder.buildDialog(Form.class, actions, false);
}