package bndtools.launch.ui; 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; public class FrameworkLaunchTabPiece extends AbstractLaunchTabPiece { private boolean dynamicUpdate = true; private boolean clean = false; private Button dynamicUpdateBtn; private Button cleanBtn; public Control createControl(Composite parent) { Group frameworkGroup = new Group(parent, SWT.NONE); frameworkGroup.setText("Framework:"); dynamicUpdateBtn = new Button(frameworkGroup, SWT.CHECK); dynamicUpdateBtn.setText("Update bundles during runtime."); cleanBtn = new Button(frameworkGroup, SWT.CHECK); cleanBtn.setText("Clean storage area before launch."); // LISTENERS dynamicUpdateBtn.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { setDirty(true); boolean oldDynamic = dynamicUpdate; dynamicUpdate = dynamicUpdateBtn.getSelection(); firePropertyChange("dynamicUpdate", oldDynamic, dynamicUpdate); } }); cleanBtn.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { setDirty(true); boolean oldClean = clean; clean = cleanBtn.getSelection(); firePropertyChange("clean", oldClean, clean); } }); // LAYOUT GridLayout layout = new GridLayout(1, false); frameworkGroup.setLayout(layout); dynamicUpdateBtn.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, true, false)); cleanBtn.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); return frameworkGroup; } public void setDefaults(ILaunchConfigurationWorkingCopy configuration) {} public void initializeFrom(ILaunchConfiguration configuration) throws CoreException { dynamicUpdate = configuration.getAttribute(LaunchConstants.ATTR_DYNAMIC_BUNDLES, LaunchConstants.DEFAULT_DYNAMIC_BUNDLES); dynamicUpdateBtn.setSelection(dynamicUpdate); clean = configuration.getAttribute(LaunchConstants.ATTR_CLEAN, LaunchConstants.DEFAULT_CLEAN); cleanBtn.setSelection(clean); } public void performApply(ILaunchConfigurationWorkingCopy configuration) { configuration.setAttribute(LaunchConstants.ATTR_DYNAMIC_BUNDLES, dynamicUpdate); configuration.setAttribute(LaunchConstants.ATTR_CLEAN, clean); } }