package bndtools.launch.ui.internal;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.debug.core.ILaunchConfiguration;
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Group;
import bndtools.launch.LaunchConstants;
import bndtools.launch.ui.AbstractLaunchTabPiece;
public class JUnitTestParamsLaunchTabPiece extends AbstractLaunchTabPiece {
private boolean keepAlive = false;
private Button keepAliveButton;
public Control createControl(Composite parent) {
Group group = new Group(parent, SWT.NONE);
group.setText(Messages.JUnitTestParamsLaunchTabPiece_title);
keepAliveButton = new Button(group, SWT.CHECK);
keepAliveButton.setText(Messages.JUnitTestParamsLaunchTabPiece_labelKeepAlive);
// Listeners
keepAliveButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
setDirty(true);
boolean old = keepAlive;
keepAlive = keepAliveButton.getSelection();
firePropertyChange("keepAlive", old, keepAlive); //$NON-NLS-1$
}
});
// Layout
GridData gd;
GridLayout layout = new GridLayout(1, false);
group.setLayout(layout);
gd = new GridData(SWT.LEFT, SWT.CENTER, false, false);
keepAliveButton.setLayoutData(gd);
return group;
}
public void setDefaults(ILaunchConfigurationWorkingCopy configuration) {
configuration.setAttribute(LaunchConstants.ATTR_JUNIT_KEEP_ALIVE, LaunchConstants.DEFAULT_JUNIT_KEEP_ALIVE);
}
@SuppressWarnings("deprecation")
public void initializeFrom(ILaunchConfiguration configuration) throws CoreException {
keepAlive = configuration.getAttribute(LaunchConstants.ATTR_JUNIT_KEEP_ALIVE, LaunchConstants.DEFAULT_JUNIT_KEEP_ALIVE);
if (keepAlive == LaunchConstants.DEFAULT_JUNIT_KEEP_ALIVE) {
keepAlive = configuration.getAttribute(LaunchConstants.ATTR_OLD_JUNIT_KEEP_ALIVE, LaunchConstants.DEFAULT_JUNIT_KEEP_ALIVE);
}
keepAliveButton.setSelection(keepAlive);
}
@SuppressWarnings("deprecation")
public void performApply(ILaunchConfigurationWorkingCopy configuration) {
configuration.setAttribute(LaunchConstants.ATTR_JUNIT_KEEP_ALIVE, keepAlive);
configuration.removeAttribute(LaunchConstants.ATTR_OLD_JUNIT_KEEP_ALIVE);
}
}