package org.xmind.cathy.internal; import org.eclipse.jface.layout.GridDataFactory; import org.eclipse.jface.layout.GridLayoutFactory; import org.eclipse.jface.preference.ComboFieldEditor; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchPreferencePage; import org.eclipse.ui.internal.IPreferenceConstants; import org.eclipse.ui.internal.WorkbenchPlugin; import org.xmind.ui.preference.PreferenceFieldEditorPageSection; public class RecentFilesPreferencePageSection extends PreferenceFieldEditorPageSection implements IWorkbenchPreferencePage { private String[][] filesList = new String[][] { { "10", "10" }, //$NON-NLS-1$//$NON-NLS-2$ { "20", "20" }, //$NON-NLS-1$ //$NON-NLS-2$ { "50", "50" } }; //$NON-NLS-1$//$NON-NLS-2$ private Composite container; private ComboFieldEditor recentFilesField; @Override protected Control createContents(Composite parent) { if (null == container) this.container = parent; return super.createContents(parent); } @Override protected void createFieldEditors() { addRecentFileCountSection(container); this.initialize(); } protected IPreferenceStore doGetPreferenceStore() { return CathyPlugin.getDefault().getPreferenceStore(); } private void addRecentFileCountSection(Composite parent) { Composite container = new Composite(parent, SWT.NONE); GridDataFactory.fillDefaults().indent(25, 0).applyTo(container); GridLayoutFactory.fillDefaults().numColumns(1).applyTo(container); addField(recentFilesField = new ComboFieldEditor( IPreferenceConstants.RECENT_FILES, WorkbenchMessages.RecentFiles_label, filesList, container)); } @Override protected void initialize() { recentFilesField.setPreferenceStore( WorkbenchPlugin.getDefault().getPreferenceStore()); recentFilesField.load(); } @Override public void init(IWorkbench workbench) { // WorkbenchPlugin.getDefault().getPreferenceStore().setDefault( // IPreferenceConstants.RECENT_FILES, DEFAULT_RECENT_VALUE); super.init(workbench); } }