/*******************************************************************************
* Copyright (c) 2008, 2011 Thomas Holland (thomas@innot.de) and others.
* 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:
* Thomas Holland - initial API and implementation
*******************************************************************************/
package de.innot.avreclipse.ui.preferences;
import org.eclipse.jface.preference.BooleanFieldEditor;
import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
import de.innot.avreclipse.core.preferences.AVRPathsPreferences;
/**
* Paths Preference page of the AVR Eclipse plugin.
* <p>
* This page manages two preferences:
* <ul>
* <li>The "no scan at startup" flag to inhibit the background scan for changed system paths.</li>
* <li>The path settings for all paths required by the plugin.</li>
* </ul>
* </p>
* <p>
* Most of the real work of path management is done in the {@link AVRPathsFieldEditor} included on
* this page.
* </p>
*
* @author Thomas Holland
* @since 2.1
*/
public class PathsPreferencePage extends FieldEditorPreferencePage implements
IWorkbenchPreferencePage {
private IPreferenceStore fPreferenceStore = null;
public PathsPreferencePage() {
super(GRID);
// Get the instance scope path preference store
fPreferenceStore = AVRPathsPreferences.getPreferenceStore();
setPreferenceStore(fPreferenceStore);
setDescription("Path Settings for the AVR Eclipse Plugin");
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors()
*/
@Override
public void createFieldEditors() {
// This page has two fields:
// The first one to inhibit the startup search for changed system paths
// The second to edit all paths.
Composite parent = getFieldEditorParent();
Label filler = new Label(parent, SWT.NONE);
filler.setLayoutData(new GridData(SWT.FILL, SWT.NONE, true, false, 2, 1));
// Startup search inhibit
BooleanFieldEditor autoScanBoolean = new BooleanFieldEditor(
AVRPathsPreferences.KEY_NOSTARTUPSCAN,
"Disable search for system paths at startup", BooleanFieldEditor.DEFAULT, parent);
addField(autoScanBoolean);
Composite note = createNoteComposite(JFaceResources.getDialogFont(), parent, "Note:",
"If disabled, a manual rescan may be required when a new avr-gcc toolchain has been installed.\n");
note.setLayoutData(new GridData(SWT.FILL, SWT.NONE, true, false, 2, 1));
filler = new Label(parent, SWT.NONE);
filler.setLayoutData(new GridData(SWT.FILL, SWT.NONE, true, false, 2, 1));
// Path editor field control.
AVRPathsFieldEditor pathEditor = new AVRPathsFieldEditor(parent);
addField(pathEditor);
}
/*
* (non-Javadoc)
*
* @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
*/
public void init(IWorkbench workbench) {
// nothing to init
}
}