package rtt.ui.handlers.testcase; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; import org.eclipse.core.commands.IHandler; import org.eclipse.jface.dialogs.Dialog; import rtt.core.archive.testsuite.Testcase; import rtt.ui.content.ReloadInfo; import rtt.ui.content.ReloadInfo.Content; import rtt.ui.content.main.ProjectContent; import rtt.ui.content.testsuite.TestcaseContent; import rtt.ui.dialogs.ParametersDialog; import rtt.ui.handlers.AbstractSelectionHandler; import rtt.ui.model.RttProject; /** * This handler is used to modify parameters of the selected {@link Testcase}. * @author Christian Oelsner <C.Oelsner@gmail.com> * */ public class ParametersHandler extends AbstractSelectionHandler implements IHandler { @Override public Object doExecute(ExecutionEvent event) throws ExecutionException { ProjectContent projectContent = this.getProjectContent(event); TestcaseContent testcaseContent = getSelectedObject(TestcaseContent.class, event); String suiteName = testcaseContent.getSuiteName(); String caseName = testcaseContent.getCaseName(); ParametersDialog parametersDialog = new ParametersDialog(getParentShell(event), testcaseContent); parametersDialog.setTitle("Modify Parameters ..."); parametersDialog.setMessage("Modify parameters of the test case '" + suiteName + "/" + caseName + "'."); RttProject project = projectContent.getProject(); if (parametersDialog.open() == Dialog.OK) { try { project.addParameters(suiteName, caseName, parametersDialog.getParameters()); projectContent.reload(new ReloadInfo(Content.TESTCASE)); } catch (Exception exception) { throw new ExecutionException("Could not modify test case.", exception); } } return null; } }