package org.testng.eclipse.launch; import org.eclipse.debug.core.ILaunchConfiguration; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.FileDialog; import org.testng.eclipse.launch.TestNGLaunchConfigurationConstants.LaunchType; import org.testng.eclipse.ui.util.ConfigurationHelper; import org.testng.eclipse.util.ResourceUtil; import org.testng.eclipse.util.StringUtils; import java.util.List; /** * Allow the user to select one or many suite files in this launch configuration. * * @author cbeust */ public class SuiteSelector extends TestngTestSelector { private Button m_suiteBrowseButton; SuiteSelector(TestNGMainTab callback, ButtonHandler handler, Composite comp) { super(callback, handler, LaunchType.SUITE, comp, "TestNGMainTab.label.suiteTest"); Composite fill = new Composite(comp, SWT.NONE); GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL); gd.horizontalSpan = 2; gd.verticalIndent = 0; gd.heightHint = 1; fill.setLayoutData(gd); // // Search button // m_suiteBrowseButton = new Button(comp, SWT.PUSH); m_suiteBrowseButton.setText(ResourceUtil.getString("TestNGMainTab.label.browsefs")); //$NON-NLS-1$ TestngTestSelector.ButtonHandler buttonHandler = new TestngTestSelector.ButtonHandler() { public void handleButton() { FileDialog fileDialog = new FileDialog(m_suiteBrowseButton.getShell(), SWT.OPEN); setText(fileDialog.open()); } }; ButtonAdapter adapter = new ButtonAdapter(getTestngType(), buttonHandler); m_suiteBrowseButton.addSelectionListener(adapter); gd = new GridData(); gd.verticalIndent = 0; m_suiteBrowseButton.setLayoutData(gd); } @Override public void initializeFrom(ILaunchConfiguration configuration) { List<String> suites = ConfigurationHelper.getSuites(configuration); setText(StringUtils.listToString(suites)); } }