package org.fipro.eclipse.migration.ui.preferences;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.preference.PreferencePage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
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.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
import org.fipro.eclipse.migration.ui.Activator;
public class DescriptionPreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
// Names for preferences
private static final String DESCRIPTION_COLOR = "description_color";
// The checkboxes
private Button checkBoxBlack;
private Button checkBoxBlue;
/**
* Creates the controls for this page
*/
@Override
protected Control createContents(Composite parent) {
Composite composite = new Composite(parent, SWT.NONE);
composite.setLayout(new GridLayout(2, false));
// Get the preference store
IPreferenceStore preferenceStore = getPreferenceStore();
String color = preferenceStore.getString(DESCRIPTION_COLOR);
boolean isBlack = (color != null && !color.isEmpty()) ? "black".equals(color) : true;
// Create the checkboxes
checkBoxBlack = new Button(composite, SWT.RADIO);
checkBoxBlack.setText("Text Color Black");
checkBoxBlack.setSelection(isBlack);
checkBoxBlue = new Button(composite, SWT.RADIO);
checkBoxBlue.setText("Text Color Blue");
checkBoxBlue.setSelection(!isBlack);
checkBoxBlack.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
checkBoxBlack.setSelection(true);
checkBoxBlue.setSelection(false);
}
});
checkBoxBlue.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
checkBoxBlack.setSelection(false);
checkBoxBlue.setSelection(true);
}
});
return composite;
}
/**
* Called when user clicks Restore Defaults
*/
@Override
protected void performDefaults() {
// Get the preference store
IPreferenceStore preferenceStore = getPreferenceStore();
String color = preferenceStore.getString(DESCRIPTION_COLOR);
boolean isBlack = (color != null && !color.isEmpty()) ? "black".equals(color) : true;
// Reset the fields to the defaults
checkBoxBlack.setSelection(isBlack);
checkBoxBlue.setSelection(!isBlack);
}
/**
* Called when user clicks Apply or OK
*
* @return boolean
*/
@Override
public boolean performOk() {
// Get the preference store
IPreferenceStore preferenceStore = getPreferenceStore();
// Set the values from the fields
if (checkBoxBlack != null && checkBoxBlack.getSelection()) {
preferenceStore.setValue(DESCRIPTION_COLOR, "black");
}
else if (checkBoxBlue != null && checkBoxBlue.getSelection()) {
preferenceStore.setValue(DESCRIPTION_COLOR, "blue");
}
// Return true to allow dialog to close
return true;
}
@Override
public void init(IWorkbench workbench) {
setPreferenceStore(Activator.getDefault().getPreferenceStore());
setTitle("Description");
setDescription("The preferences page for the Description view");
}
}