/** * Copyright (c) 2005-2013 by Appcelerator, Inc. All Rights Reserved. * Licensed under the terms of the Eclipse Public License (EPL). * Please see the license.txt included with this distribution for details. * Any modifications to this file must keep this entire header intact. */ package org.python.pydev.plugin.preferences; import org.eclipse.jface.preference.BooleanFieldEditor; import org.eclipse.jface.preference.FieldEditorPreferencePage; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchPreferencePage; import org.python.pydev.plugin.PydevPlugin; import org.python.pydev.plugin.preferences.CheckDefaultPreferencesDialog.CheckInfo; import org.python.pydev.shared_core.string.StringUtils; import org.python.pydev.shared_ui.EditorUtils; import org.python.pydev.shared_ui.dialogs.DialogHelpers; import org.python.pydev.shared_ui.field_editors.ButtonFieldEditor; public class PydevRootPrefs extends FieldEditorPreferencePage implements IWorkbenchPreferencePage { public static final String CHECK_PREFERRED_PYDEV_SETTINGS = "CHECK_PREFERRED_PYDEV_SETTINGS"; public static final boolean DEFAULT_CHECK_PREFERRED_PYDEV_SETTINGS = true; public PydevRootPrefs() { setDescription(StringUtils.format("PyDev version: %s", PydevPlugin.getVersion())); setPreferenceStore(PydevPlugin.getDefault().getPreferenceStore()); } @Override public void init(IWorkbench workbench) { } @Override protected void createFieldEditors() { Composite p = getFieldEditorParent(); final BooleanFieldEditor booleanField = new BooleanFieldEditor(CHECK_PREFERRED_PYDEV_SETTINGS, "Check preferred Eclipse settings for PyDev on editor open", p); addField(booleanField); addField(new ButtonFieldEditor("__UNUSED__", "Check preferred settings now.", p, new SelectionListener() { @Override public void widgetSelected(SelectionEvent e) { CheckInfo[] missing = CheckInfo.getMissing(); if (missing.length == 0) { DialogHelpers.openInfo("Checked", "Preferences in Eclipse already match preferred PyDev settings."); return; } Shell shell = EditorUtils.getShell(); CheckDefaultPreferencesDialog dialog = new CheckDefaultPreferencesDialog(shell, missing); dialog.open(); booleanField.load(); } @Override public void widgetDefaultSelected(SelectionEvent e) { } })); } public static void setCheckPreferredPydevSettings(boolean b) { PydevPlugin.getDefault().getPreferenceStore().setValue(CHECK_PREFERRED_PYDEV_SETTINGS, b); } public static boolean getCheckPreferredPydevSettings() { return PydevPlugin.getDefault().getPreferenceStore().getBoolean(CHECK_PREFERRED_PYDEV_SETTINGS); } }