package edu.ualberta.med.biobank.preferences; import org.eclipse.jface.preference.PreferencePage; import org.eclipse.swt.custom.ScrolledComposite; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Text; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchPreferencePage; /** * Not used at the moment. Only here for an example. * * Similar to Eclipse Preferences for XML. * */ public class DefaultTopPreferencePage extends PreferencePage implements IWorkbenchPreferencePage { private Composite createComposite(Composite parent, int numColumns) { noDefaultAndApplyButton(); Composite composite = new Composite(parent, 0); GridLayout layout = new GridLayout(); layout.numColumns = numColumns; composite.setLayout(layout); GridData data = new GridData(4); data.horizontalIndent = 0; data.verticalAlignment = 4; data.horizontalAlignment = 4; composite.setLayoutData(data); return composite; } @Override protected Control createContents(Composite parent) { Composite composite = createScrolledComposite(parent); String description = Messages.DefaultTopPreferencePage_description; Text text = new Text(composite, 8); text.setBackground(composite.getBackground()); text.setText(description); setSize(composite); return composite; } private Composite createScrolledComposite(Composite parent) { ScrolledComposite sc1 = new ScrolledComposite(parent, 768); sc1.setLayoutData(new GridData(1808)); Composite composite = createComposite(sc1, 1); sc1.setContent(composite); setSize(composite); return composite; } @Override public void init(IWorkbench workbench) { // } private void setSize(Composite composite) { if (composite != null) { applyDialogFont(composite); Point minSize = composite.computeSize(-1, -1); composite.setSize(minSize); if (composite.getParent() instanceof ScrolledComposite) { ScrolledComposite sc1 = (ScrolledComposite) composite .getParent(); sc1.setMinSize(minSize); sc1.setExpandHorizontal(true); sc1.setExpandVertical(true); } } } }