X-Git-Url: http://secure.phpeclipse.com diff --git a/net.sourceforge.phpeclipse.ui/src/net/sourceforge/phpeclipse/xml/ui/internal/preferences/XMLPreferenceInitializer.java b/net.sourceforge.phpeclipse.ui/src/net/sourceforge/phpeclipse/xml/ui/internal/preferences/XMLPreferenceInitializer.java new file mode 100644 index 0000000..4b6aefb --- /dev/null +++ b/net.sourceforge.phpeclipse.ui/src/net/sourceforge/phpeclipse/xml/ui/internal/preferences/XMLPreferenceInitializer.java @@ -0,0 +1,238 @@ +/* + * Copyright (c) 2002-2004 Roberto Gonzalez Rocha and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * Roberto Gonzalez Rocha - Initial version + * Igor Malinin - refactoring, minor changes + * + * $Id: XMLPreferenceInitializer.java,v 1.3 2006-10-21 23:14:13 pombredanne Exp $ + */ +package net.sourceforge.phpeclipse.xml.ui.internal.preferences; + +/*import java.io.InputStream; +import java.util.Enumeration; +import java.util.PropertyResourceBundle; +*/ +import net.sourceforge.phpdt.core.JavaCore; +import net.sourceforge.phpdt.ui.PreferenceConstants; +import net.sourceforge.phpeclipse.ui.IPreferenceConstants; + +import net.sourceforge.phpeclipse.phpeditor.PHPSyntaxRdr; +import net.sourceforge.phpeclipse.phpeditor.util.PHPColorProvider; +import net.sourceforge.phpeclipse.ui.WebUI; +import net.sourceforge.phpeclipse.ui.preferences.ITextStylePreferences; +//import net.sourceforge.phpeclipse.xml.ui.XMLPlugin; +import net.sourceforge.phpeclipse.xml.ui.text.IXMLSyntaxConstants; + +//import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.Platform; +import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer; +import org.eclipse.jface.preference.IPreferenceStore; +import org.eclipse.jface.preference.PreferenceConverter; +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.RGB; +import org.eclipse.swt.widgets.Display; +import org.eclipse.ui.texteditor.AbstractTextEditor; + +/** + * @author Igor Malinin + */ +public class XMLPreferenceInitializer extends AbstractPreferenceInitializer implements IPreferenceConstants { + /* + * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences() + */ + public void initializeDefaultPreferences() { + final IPreferenceStore store = /*XMLPlugin*/WebUI.getDefault() + .getPreferenceStore(); + final Display display = Display.getDefault(); + + // TODO: ChainedPreferenceStore does not work for preferences preview + + display.syncExec(new Runnable() { + public void run() { + PreferenceConverter.setDefault(store, + AbstractTextEditor.PREFERENCE_COLOR_FOREGROUND, display + .getSystemColor(SWT.COLOR_LIST_FOREGROUND) + .getRGB()); + } + }); + + store.setDefault( + AbstractTextEditor.PREFERENCE_COLOR_FOREGROUND_SYSTEM_DEFAULT, + true); + + display.syncExec(new Runnable() { + public void run() { + PreferenceConverter.setDefault(store, + AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND, display + .getSystemColor(SWT.COLOR_LIST_BACKGROUND) + .getRGB()); + } + }); + + store.setDefault( + AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT, + true); + + // end of common preferences + + setDefault(store, IXMLSyntaxConstants.XML_DEFAULT, "0,0,0", + ITextStylePreferences.STYLE_NORMAL); + + setDefault(store, IXMLSyntaxConstants.XML_TAG, "127,0,127", + ITextStylePreferences.STYLE_NORMAL); + + setDefault(store, IXMLSyntaxConstants.XML_ATT_NAME, "0,127,0", + ITextStylePreferences.STYLE_NORMAL); + + setDefault(store, IXMLSyntaxConstants.XML_ATT_VALUE, "0,0,255", + ITextStylePreferences.STYLE_NORMAL); + + setDefault(store, IXMLSyntaxConstants.XML_ENTITY, "127,127,0", + ITextStylePreferences.STYLE_NORMAL); + + setDefault(store, IXMLSyntaxConstants.XML_CDATA, "127,127,0", + ITextStylePreferences.STYLE_NORMAL); + + setDefault(store, IXMLSyntaxConstants.XML_PI, "127,127,127", + ITextStylePreferences.STYLE_BOLD); + + setDefault(store, IXMLSyntaxConstants.XML_COMMENT, "127,0,0", + ITextStylePreferences.STYLE_NORMAL); + + setDefault(store, IXMLSyntaxConstants.XML_DECL, "127,0,127", + ITextStylePreferences.STYLE_BOLD); + + setDefault(store, IXMLSyntaxConstants.XML_SMARTY, "255,0,127", + ITextStylePreferences.STYLE_BOLD); + + setDefault(store, IXMLSyntaxConstants.DTD_CONDITIONAL, "127,127,0", + ITextStylePreferences.STYLE_BOLD); + + String operatingSystem = Platform.getOS(); + // maxosx, linux, solaris, win32,... + try { + /*InputStream is = getDefault() + .openStream( + new Path("prefs/default_" + operatingSystem + + ".properties")); + PropertyResourceBundle resourceBundle = new PropertyResourceBundle( + is); + Enumeration e = resourceBundle.getKeys(); + String key; + while (e.hasMoreElements()) { + key = (String) e.nextElement(); + store.setDefault(key, resourceBundle.getString(key)); + }*/ + } catch (Exception e) { + // no default properties found + if (operatingSystem.equals(Platform.OS_WIN32)) { + // store.setDefault(PHP_RUN_PREF, "c:\\apache\\php\\php.exe"); + // store.setDefault(EXTERNAL_PARSER_PREF, "c:\\apache\\php\\php + // -l -f {0}"); + // store.setDefault(MYSQL_RUN_PREF, + // "c:\\apache\\mysql\\bin\\mysqld-nt.exe"); + // store.setDefault(APACHE_RUN_PREF, "c:\\apache\\apache.exe"); + // store.setDefault(XAMPP_START_PREF, + // "c:\\xampp\\xampp_start.exe"); + // store.setDefault(XAMPP_STOP_PREF, + // "c:\\xampp\\xampp_stop.exe"); + // store.setDefault( + // ETC_HOSTS_PATH_PREF, + // "c:\\windows\\system32\\drivers\\etc\\hosts"); + } else { + // store.setDefault(PHP_RUN_PREF, "/apache/php/php"); + // store.setDefault(EXTERNAL_PARSER_PREF, "/apache/php/php -l -f + // {0}"); + // store.setDefault(MYSQL_RUN_PREF, "/apache/mysql/bin/mysqld"); + // store.setDefault(APACHE_RUN_PREF, "/apache/apache"); + // store.setDefault(XAMPP_START_PREF, "xamp/xampp_start"); + // store.setDefault(XAMPP_STOP_PREF, "xampp/xampp_stop"); + } + // store.setDefault(MYSQL_PREF, "--standalone"); + // store.setDefault(APACHE_START_PREF, "-c \"DocumentRoot + // \"{0}\"\""); + // store.setDefault(APACHE_STOP_PREF, "-k shutdown"); + // store.setDefault(APACHE_RESTART_PREF, "-k restart"); + // store.setDefault(MYSQL_START_BACKGROUND, "true"); + // store.setDefault(APACHE_START_BACKGROUND, "true"); + // store.setDefault(APACHE_STOP_BACKGROUND, "true"); + // store.setDefault(APACHE_RESTART_BACKGROUND, "true"); + } + store.setDefault(PHP_USERDEF_XMLFILE, ""); + PreferenceConverter.setDefault(store, PHP_TAG, PHPColorProvider.TAG); + PreferenceConverter.setDefault(store, PHP_KEYWORD, + PHPColorProvider.KEYWORD); + PreferenceConverter.setDefault(store, PHP_VARIABLE, + PHPColorProvider.VARIABLE); + PreferenceConverter.setDefault(store, PHP_VARIABLE_DOLLAR, + PHPColorProvider.VARIABLE); + /*PreferenceConverter.setDefault(store, PHP_FUNCTIONNAME, + PHPColorProvider.FUNCTION_NAME);*/ + + setDefault(store, PHP_FUNCTIONNAME, PHPColorProvider.FUNCTION_NAME, + ITextStylePreferences.STYLE_BOLD); + + PreferenceConverter.setDefault(store, PHP_CONSTANT, + PHPColorProvider.CONSTANT); + PreferenceConverter.setDefault(store, PHP_TYPE, PHPColorProvider.TYPE); + PreferenceConverter.setDefault(store, PHP_DEFAULT, + PHPColorProvider.DEFAULT); + PreferenceConverter.setDefault(store, PHPDOC_KEYWORD, + PHPColorProvider.PHPDOC_KEYWORD); + + PreferenceConverter.setDefault(store, PHPDOC_TAG, + PHPColorProvider.PHPDOC_TAG); + PreferenceConverter.setDefault(store, PHPDOC_LINK, + PHPColorProvider.PHPDOC_LINK); + PreferenceConverter.setDefault(store, PHPDOC_DEFAULT, + PHPColorProvider.PHPDOC_DEFAULT); + + PreferenceConverter.setDefault(store, EDITOR_PHP_KEYWORD_RETURN_COLOR, + new RGB(127, 0, 85)); + store.setDefault(EDITOR_PHP_KEYWORD_RETURN_BOLD, true); + store.setDefault(EDITOR_PHP_KEYWORD_RETURN_ITALIC, false); + + PreferenceConverter.setDefault(store, EDITOR_PHP_OPERATOR_COLOR, + new RGB(0, 0, 0)); + store.setDefault(EDITOR_PHP_OPERATOR_BOLD, false); + store.setDefault(EDITOR_PHP_OPERATOR_ITALIC, false); + + PreferenceConverter.setDefault(store, EDITOR_PHP_BRACE_OPERATOR_COLOR, + new RGB(0, 0, 0)); + store.setDefault(EDITOR_PHP_BRACE_OPERATOR_BOLD, false); + store.setDefault(EDITOR_PHP_BRACE_OPERATOR_ITALIC, false); + + + PreferenceConverter.setDefault(store, EDITOR_PHP_KEYWORD_RETURN_COLOR, + new RGB(127, 0, 85)); + store.setDefault(EDITOR_PHP_KEYWORD_RETURN_BOLD, true); + store.setDefault(EDITOR_PHP_KEYWORD_RETURN_ITALIC, false); + + PreferenceConverter.setDefault(store, EDITOR_PHP_OPERATOR_COLOR, + new RGB(0, 0, 0)); + store.setDefault(EDITOR_PHP_OPERATOR_BOLD, false); + store.setDefault(EDITOR_PHP_OPERATOR_ITALIC, false); + + PreferenceConverter.setDefault(store, EDITOR_PHP_BRACE_OPERATOR_COLOR, + new RGB(0, 0, 0)); + store.setDefault(EDITOR_PHP_BRACE_OPERATOR_BOLD, false); + store.setDefault(EDITOR_PHP_BRACE_OPERATOR_ITALIC, false); + + // this will initialize the static fields in the syntaxrdr class + new PHPSyntaxRdr(); + JavaCore.initializeDefaultPluginPreferences(); + PreferenceConstants.initializeDefaultValues(store); + } + + private static void setDefault(IPreferenceStore store, String constant, + String color, String style) { + store.setDefault(constant + ITextStylePreferences.SUFFIX_FOREGROUND, + color); + store.setDefault(constant + ITextStylePreferences.SUFFIX_STYLE, style); + } +}