package org.csstudio.swt.xygraph.preference;
import org.csstudio.swt.xygraph.Activator;
import org.eclipse.jface.preference.PreferencePage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
public class XYPreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
private Combo xyc;
@Override
protected Control createContents(Composite parent) {
Composite comp = new Composite(parent, SWT.NONE);
comp.setLayout(new GridLayout(1, false));
Group xyg = new Group(comp, SWT.NONE);
xyg.setText("XY Graphing");
xyg.setLayout(new GridLayout(2, false));
xyg.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
Label xyl = new Label(xyg, SWT.LEFT);
xyl.setText("Tick provider");
xyc = new Combo(xyg, SWT.RIGHT | SWT.READ_ONLY);
xyc.add("Original");
xyc.add("Mark 2");
if (getPreferenceStore().isDefault(XYPreferences.TICKS_PROVIDER)
|| XYPreferences.TICKS_PROVIDER_MARK_2.equals(getPreferenceStore().getString(XYPreferences.TICKS_PROVIDER)))
xyc.select(1);
else
xyc.select(0);
return comp;
}
@Override
public void init(IWorkbench workbench) {
setPreferenceStore(Activator.getDefault().getPreferenceStore());
}
@Override
public boolean performOk() {
getPreferenceStore().setValue(XYPreferences.TICKS_PROVIDER, xyc.getSelectionIndex() == 0 ? XYPreferences.TICKS_PROVIDER_ORIGINAL :
XYPreferences.TICKS_PROVIDER_MARK_2);
return super.performOk();
}
@Override
protected void performDefaults() {
if (XYPreferences.TICKS_PROVIDER_MARK_2.equals(getPreferenceStore().getDefaultString(XYPreferences.TICKS_PROVIDER)))
xyc.select(1);
else
xyc.select(0);
super.performDefaults();
}
}