Java tutorial
/******************************************************************************* * Copyright (c) 2014 Salesforce.com, inc.. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Salesforce.com, inc. - initial API and implementation ******************************************************************************/ package com.salesforce.ide.ui.editors.apex.preferences; import org.eclipse.jface.preference.BooleanFieldEditor; import org.eclipse.jface.preference.PreferencePage; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.swt.SWT; 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.Group; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchPreferencePage; import com.salesforce.ide.ui.editors.ForceIdeEditorsPlugin; import com.salesforce.ide.ui.editors.internal.utils.EditorMessages; import com.salesforce.ide.ui.internal.utils.UIUtils; public class ApexEditorPreferencePage extends PreferencePage implements IWorkbenchPreferencePage { // Package access for testing purposes BooleanFieldEditor enableNewParser; Group startupGroup; public ApexEditorPreferencePage() { } public ApexEditorPreferencePage(String title) { super(title); } public ApexEditorPreferencePage(String title, ImageDescriptor image) { super(title, image); } @Override protected Control createContents(Composite parent) { Composite entryTable = new Composite(parent, 0); GridData data = new GridData(768); data.grabExcessHorizontalSpace = true; entryTable.setLayoutData(data); GridLayout layout = new GridLayout(); entryTable.setLayout(layout); startupGroup = new Group(entryTable, SWT.NONE); startupGroup.setText(EditorMessages.getString("ApexEditorPreferencePage.ApexParserGroup")); //$NON-NLS-1$ startupGroup.setLayout(new GridLayout()); startupGroup.setLayoutData(new GridData(768)); enableNewParser = instantiateBooleanFieldEditor(startupGroup); enableNewParser.setPage(this); enableNewParser.setPreferenceStore(getPreferenceStore()); enableNewParser.load(); return entryTable; } protected BooleanFieldEditor instantiateBooleanFieldEditor(Composite parent) { return new BooleanFieldEditor(PreferenceConstants.EDITOR_PARSE_WITH_NEW_COMPILER, EditorMessages.getString("ApexEditorPreferencePage.EnableNewParserOption"), parent); //$NON-NLS-1$ } @Override public void init(IWorkbench workbench) { setPreferenceStore(ForceIdeEditorsPlugin.getDefault().getPreferenceStore()); } @Override public void createControl(Composite parent) { super.createControl(parent); UIUtils.setHelpContext(getControl(), this.getClass().getSimpleName()); } @Override protected void performDefaults() { enableNewParser.loadDefault(); } @Override public boolean performOk() { enableNewParser.store(); return super.performOk(); } }