refactory: added UI removed from core plugin.
[phpeclipse.git] / net.sourceforge.phpeclipse.ui / src / net / sourceforge / phpeclipse / xml / ui / internal / preferences / XMLPreferenceInitializer.java
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 (file)
index 0000000..4b6aefb
--- /dev/null
@@ -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);
+       }
+}