blob: 04f6ed183048bf8431146be489999b9718b03b04 [file] [log] [blame]
package org.eclipse.epsilon.evl.dt.launching.tabs;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.debug.core.ILaunchConfiguration;
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
import org.eclipse.debug.ui.AbstractLaunchConfigurationTab;
import org.eclipse.epsilon.common.dt.util.LogUtil;
import org.eclipse.epsilon.evl.dt.EvlPlugin;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.FillLayout;
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.Group;
import org.eclipse.ui.PlatformUI;
public class EvlAdvanceOptionsTab extends AbstractLaunchConfigurationTab {
public static final String OPTIMIZE_CONSTRAINTS = "optimizeConstraints";
private Button optimizeConstraintsBtn;
@Override
public void createControl(Composite parent) {
final FillLayout parentLayout = new FillLayout();
parent.setLayout(parentLayout);
final Composite control = new Composite(parent, SWT.NONE);
setControl(control);
control.setLayout(new GridLayout(1, false));
PlatformUI.getWorkbench().getHelpSystem().setHelp(control, "org.eclipse.epsilon.help.egl_generated_text_tab");
createOptimizationGroup(control);
control.setBounds(0, 0, 300, 300);
control.layout();
control.pack();
}
private void createOptimizationGroup(Composite control) {
final Group group = new Group(control, SWT.SHADOW_ETCHED_IN);
group.setLayout(new GridLayout(2, false));
group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
group.setText("Advanced");
optimizeConstraintsBtn = new Button(group, SWT.CHECK);
optimizeConstraintsBtn.setText("Optimize Constraints to Select Operations");
optimizeConstraintsBtn.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent e) {
updateLaunchConfigurationDialog();
}
@Override
public void widgetDefaultSelected(SelectionEvent e) {
updateLaunchConfigurationDialog();
}
});
}
@Override
public void setDefaults(ILaunchConfigurationWorkingCopy configuration) {
}
@Override
public void initializeFrom(ILaunchConfiguration configuration) {
try {
initializeOptimizationGroupFrom(configuration);
} catch (CoreException e) {
LogUtil.log("Error encountered whilst attempting to restore selection of default formatters from launch configuration", e);
}
}
private void initializeOptimizationGroupFrom(ILaunchConfiguration configuration) throws CoreException {
boolean optimizeConstraints = configuration.getAttribute(OPTIMIZE_CONSTRAINTS, false);
optimizeConstraintsBtn.setSelection(optimizeConstraints);
}
@Override
public void performApply(ILaunchConfigurationWorkingCopy configuration) {
saveOptimizationOptionsTo(configuration);
}
private void saveOptimizationOptionsTo(ILaunchConfigurationWorkingCopy configuration) {
configuration.setAttribute(OPTIMIZE_CONSTRAINTS, optimizeConstraintsBtn.getSelection());
}
@Override
public String getName() {
return "Advanced";
}
@Override
public Image getImage() {
return EvlPlugin.getDefault().createImage("icons/advanced.gif");
}
}