/** * Copyright (c) 2005-2011 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.jython.ui; import java.io.File; import org.eclipse.jface.preference.BooleanFieldEditor; import org.eclipse.jface.preference.DirectoryFieldEditor; import org.eclipse.jface.preference.FieldEditorPreferencePage; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchPreferencePage; import org.python.pydev.jython.JythonPlugin; public class JyScriptingPreferencesPage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage { public static final String SHOW_SCRIPTING_OUTPUT = "SHOW_SCRIPTING_OUTPUT"; public static final boolean DEFAULT_SHOW_SCRIPTING_OUTPUT = false; public static final String LOG_SCRIPTING_ERRORS = "LOG_SCRIPTING_ERRORS"; public static final boolean DEFAULT_LOG_SCRIPTING_ERRORS = true; public static final String ADDITIONAL_SCRIPTING_LOCATION = "ADDITIONAL_SCRIPTING_LOCATION"; public JyScriptingPreferencesPage() { super(GRID); //Set the preference store for the preference page. setPreferenceStore(JythonPlugin.getDefault().getPreferenceStore()); } public void init(IWorkbench workbench) { } @Override public void createFieldEditors() { Composite p = getFieldEditorParent(); addField(new BooleanFieldEditor(SHOW_SCRIPTING_OUTPUT, "Show the output given from the scripting to some console?", p)); addField(new BooleanFieldEditor(LOG_SCRIPTING_ERRORS, "Show errors from scripting in the Error Log?", p)); DirectoryFieldEditor fileField = new DirectoryFieldEditor(ADDITIONAL_SCRIPTING_LOCATION, "Location of additional jython scripts:", p); addField(fileField); } /** * @return if we should show the scripting output in a shell. */ public static boolean getShowScriptingOutput() { JythonPlugin plugin = JythonPlugin.getDefault(); if (plugin == null) { //we're in test mode return true; // always show output } return plugin.getPreferenceStore().getBoolean(SHOW_SCRIPTING_OUTPUT); } /** * @return if we should show the scripting output in a shell. */ public static boolean getLogScriptingErrors() { return JythonPlugin.getDefault().getPreferenceStore().getBoolean(LOG_SCRIPTING_ERRORS); } /** * @return a directory that has additional scripts for pydev (besides the jysrc in org.python.pydev.jython). May * return null if none is specified or if one that is not a directory is specified. */ public static File getAdditionalScriptingLocation() { String loc = JythonPlugin.getDefault().getPreferenceStore().getString(ADDITIONAL_SCRIPTING_LOCATION); if (loc != null && loc.trim().length() > 0) { File file = new File(loc); if (file.exists() && file.isDirectory()) { return file; } } return null; } }