--- /dev/null
+/*
+ * 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);
+ }
+}