package org.xmind.ui.internal.prefs;
import org.eclipse.jface.preference.IPreferenceStore;
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.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Group;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
import org.xmind.ui.internal.MindMapUIPlugin;
import org.xmind.ui.prefs.PrefConstants;
public class ThemeApplyPrefPage extends PreferencePage implements
IWorkbenchPreferencePage {
private IPreferenceStore pref = MindMapUIPlugin.getDefault()
.getPreferenceStore();
private Button override;
private Button keep;
private Button ask;
public ThemeApplyPrefPage() {
super(PrefMessages.ThemePrefPage_title);
}
public void init(IWorkbench workbench) {
}
@Override
protected Control createContents(Composite parent) {
initializeDialogUnits(parent);
Composite group = createGroup(parent);
override = new Button(group, SWT.RADIO);
override.setText(PrefMessages.ThemePrefPage_OverrideButton);
GridData data = new GridData(SWT.FILL, SWT.NONE, true, false);
data.horizontalSpan = 3;
override.setLayoutData(data);
keep = new Button(group, SWT.RADIO);
keep.setText(PrefMessages.ThemePrefPage_KeepButton);
data = new GridData(SWT.FILL, SWT.NONE, true, false);
data.horizontalSpan = 3;
keep.setLayoutData(data);
ask = new Button(group, SWT.RADIO);
ask.setText(PrefMessages.ThemePrefPage_AskButton);
data = new GridData(SWT.FILL, SWT.NONE, true, true);
data.horizontalSpan = 3;
ask.setLayoutData(data);
updateStatus();
return parent;
}
private void updateStatus() {
String themeOverride = pref.getString(PrefConstants.THEME_APPLY);
override.setSelection(PrefConstants.THEME_OVERRIDE
.equals(themeOverride));
keep.setSelection(PrefConstants.THEME_KEEP.equals(themeOverride));
ask.setSelection(PrefConstants.ASK_USER.equals(themeOverride)
|| IPreferenceStore.STRING_DEFAULT_DEFAULT
.equals(themeOverride));
}
private Composite createGroup(Composite parent) {
Composite composite = new Composite(parent, SWT.NONE);
GridLayout gridLayout = new GridLayout(1, false);
gridLayout.marginWidth = 0;
gridLayout.marginHeight = 0;
gridLayout.verticalSpacing = 0;
gridLayout.horizontalSpacing = 0;
composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
composite.setLayout(gridLayout);
Group group = new Group(composite, SWT.NONE);
group.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
group.setLayout(new GridLayout(1, false));
group.setText(PrefMessages.ThemePrefPage_Group_text);
return group;
}
@Override
protected void performDefaults() {
override.setSelection(false);
keep.setSelection(false);
ask.setSelection(true);
pref.setValue(PrefConstants.THEME_APPLY, PrefConstants.ASK_USER);
super.performDefaults();
}
@Override
public boolean performOk() {
if (override.getSelection())
pref.setValue(PrefConstants.THEME_APPLY,
PrefConstants.THEME_OVERRIDE);
else if (keep.getSelection())
pref.setValue(PrefConstants.THEME_APPLY, PrefConstants.THEME_KEEP);
else if (ask.getSelection())
pref.setValue(PrefConstants.THEME_APPLY, PrefConstants.ASK_USER);
updateStatus();
return true;
}
}