package edu.usc.cssl.tacit.common.ui.preferencepage; import org.eclipse.jface.layout.GridDataFactory; import org.eclipse.jface.layout.GridLayoutFactory; import org.eclipse.jface.preference.PreferencePage; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Label; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchPreferencePage; import edu.usc.cssl.tacit.common.ui.CommonUiActivator; import edu.usc.cssl.tacit.common.ui.ICommonUiConstants; public class MainPreferencePage extends PreferencePage implements IWorkbenchPreferencePage,ICommonUiConstants { private Button readMe; public MainPreferencePage() { // TODO Auto-generated constructor stub } public MainPreferencePage(String title) { super(title); // TODO Auto-generated constructor stub } public MainPreferencePage(String title, ImageDescriptor image) { super(title, image); // TODO Auto-generated constructor stub } @Override public void init(IWorkbench workbench) { setPreferenceStore(CommonUiActivator.getDefault().getPreferenceStore()); } @Override protected Control createContents(Composite parent) { Composite sectionClient = new Composite(parent, SWT.NONE); GridLayoutFactory.fillDefaults().numColumns(3).equalWidth(false) .applyTo(sectionClient); Label dummy = new Label(sectionClient, SWT.NONE); GridDataFactory.fillDefaults().grab(false, false).span(3, 0) .applyTo(dummy); readMe = createReadMeSection(sectionClient); initializeDefaultValues(); loadValues(); if (Boolean.valueOf(load(INITIAL))) { performDefaults(); } return sectionClient; } @Override protected void performApply() { performOk(); super.performApply(); } @Override protected void performDefaults() { setDefaultValues(); super.performDefaults(); } private void initializeDefaultValues(){ getPreferenceStore().setDefault(INITIAL, "true"); getPreferenceStore().setDefault(CREATE_RUNREPORT, "true"); } private void setDefaultValues() { readMe.setSelection(Boolean.valueOf(getPreferenceStore().getDefaultString(CREATE_RUNREPORT))); } private void loadValues(){ readMe.setSelection(Boolean.valueOf(load(CREATE_RUNREPORT))); } private String load(String name) { return getPreferenceStore().getString(name); } private Button createReadMeSection(Composite sectionClient) { final Button readMe = new Button(sectionClient, SWT.CHECK); GridDataFactory.fillDefaults().grab(false, false).span(1, 0) .applyTo(readMe); readMe.setText("Generate README file"); readMe.setSelection(true); return readMe; } @Override public boolean performOk() { store(INITIAL, Boolean.toString(false)); store(CREATE_RUNREPORT, Boolean.toString(readMe.getSelection())); return super.performOk(); } private void store(String name, String value) { getPreferenceStore().setValue(name, value); } }