ccw.preferences.PreferenceInitializer.java Source code

Java tutorial

Introduction

Here is the source code for ccw.preferences.PreferenceInitializer.java

Source

/*******************************************************************************
 * Copyright (c) 2008 Laurent Petit.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors: 
 *    Laurent PETIT - initial API and implementation
 *    Stephan Muehlstrasser - moved into preferences package
 *    Stephan Muehlstrasser - preference support for syntax coloring
 *******************************************************************************/
package ccw.preferences;

import static ccw.preferences.PreferenceConstants.USE_STRICT_STRUCTURAL_EDITING_MODE_BY_DEFAULT;

import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.resource.StringConverter;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.ui.texteditor.AbstractDecoratedTextEditorPreferenceConstants;

import ccw.CCWPlugin;

public class PreferenceInitializer extends AbstractPreferenceInitializer {

    private class SyntaxColoringDefault {
        String preferenceConstant;
        boolean defaultEnabled;
        RGB defaultColor;
        boolean isBold;
        boolean isItalic;

        SyntaxColoringDefault(String preferenceConstant, boolean defaultEnabled, RGB defaultColor, boolean isBold,
                boolean isItalic) {
            this.preferenceConstant = preferenceConstant;
            this.defaultEnabled = defaultEnabled;
            this.defaultColor = defaultColor;
            this.isBold = isBold;
            this.isItalic = isItalic;
        }

        public String getPreferenceConstant() {
            return preferenceConstant;
        }

        public RGB getDefaultColor() {
            return defaultColor;
        }

        public boolean isDefaultEnabled() {
            return defaultEnabled;
        }

        public boolean isBold() {
            return isBold;
        }

        public boolean isItalic() {
            return isItalic;
        }
    }

    RGB callableRGB = new RGB(127, 0, 85);
    //    RGB literalRGB = new RGB(34, 139, 34);
    RGB literalRGB = new RGB(63, 95, 191);
    RGB metaRGB = new RGB(63, 95, 191);
    RGB commentRGB = new RGB(63, 127, 95);
    RGB stringKeywordLiteralRGB = new RGB(42, 0, 255);
    RGB characterLiteralRGB = new RGB(0, 0, 192);
    private SyntaxColoringDefault[] coloringDefaults = new SyntaxColoringDefault[] {
            new SyntaxColoringDefault(PreferenceConstants.getTokenPreferenceKey(PreferenceConstants.FUNCTION_Token),
                    false, new RGB(0, 0, 0), false, false),
            new SyntaxColoringDefault(
                    PreferenceConstants.getTokenPreferenceKey(PreferenceConstants.callableFUNCTION_Token), true,
                    callableRGB, false, false),
            new SyntaxColoringDefault(
                    PreferenceConstants.getTokenPreferenceKey(PreferenceConstants.SPECIAL_FORM_Token), false,
                    new RGB(0, 0, 0), false, false),
            new SyntaxColoringDefault(
                    PreferenceConstants.getTokenPreferenceKey(PreferenceConstants.callableSPECIAL_FORM_Token), true,
                    callableRGB, true, false),
            new SyntaxColoringDefault(
                    PreferenceConstants.getTokenPreferenceKey(PreferenceConstants.RAW_SYMBOL_Token), false,
                    new RGB(0, 0, 0), false, false),
            new SyntaxColoringDefault(
                    PreferenceConstants.getTokenPreferenceKey(PreferenceConstants.callable_RAW_SYMBOL_Token), true,
                    callableRGB, false, false),
            new SyntaxColoringDefault(PreferenceConstants.getTokenPreferenceKey(PreferenceConstants.commentToken),
                    true, commentRGB, false, true),
            new SyntaxColoringDefault(
                    PreferenceConstants.getTokenPreferenceKey(PreferenceConstants.GLOBAL_VAR_Token), true,
                    literalRGB, false, false), /* rename in earMuffedVar */
            new SyntaxColoringDefault(
                    PreferenceConstants.getTokenPreferenceKey(PreferenceConstants.callableGLOBAL_VAR_Token), true,
                    literalRGB, true, false),
            new SyntaxColoringDefault(PreferenceConstants.getTokenPreferenceKey(PreferenceConstants.keywordToken),
                    true, stringKeywordLiteralRGB, false, false),
            new SyntaxColoringDefault(PreferenceConstants.getTokenPreferenceKey(PreferenceConstants.metaToken),
                    true, metaRGB, false, true),
            new SyntaxColoringDefault(
                    PreferenceConstants.getTokenPreferenceKey(PreferenceConstants.readerLiteralTag), true, metaRGB,
                    false, true),
            new SyntaxColoringDefault(PreferenceConstants.getTokenPreferenceKey(PreferenceConstants.MACRO_Token),
                    false, new RGB(0, 0, 0), false, false),
            new SyntaxColoringDefault(
                    PreferenceConstants.getTokenPreferenceKey(PreferenceConstants.callableMACRO_Token), true,
                    callableRGB, true, false),
            new SyntaxColoringDefault(PreferenceConstants.getTokenPreferenceKey(PreferenceConstants.stringToken),
                    true, stringKeywordLiteralRGB, false, false),
            new SyntaxColoringDefault(
                    PreferenceConstants.getTokenPreferenceKey(PreferenceConstants.otherLiteralsToken), true,
                    literalRGB, false, false),
            new SyntaxColoringDefault(PreferenceConstants.getTokenPreferenceKey(PreferenceConstants.regexToken),
                    true, stringKeywordLiteralRGB, false, false),
            new SyntaxColoringDefault(PreferenceConstants.getTokenPreferenceKey(PreferenceConstants.intToken),
                    false, new RGB(0, 0, 0), false, false),
            new SyntaxColoringDefault(PreferenceConstants.getTokenPreferenceKey(PreferenceConstants.floatToken),
                    false, new RGB(0, 0, 0), false, false),
            new SyntaxColoringDefault(PreferenceConstants.getTokenPreferenceKey(PreferenceConstants.charToken),
                    true, characterLiteralRGB, false, false),
            new SyntaxColoringDefault(
                    PreferenceConstants.getTokenPreferenceKey(PreferenceConstants.JAVA_CLASS_Token), true,
                    new RGB(0, 0, 0), false, true),
            new SyntaxColoringDefault(
                    PreferenceConstants.getTokenPreferenceKey(PreferenceConstants.callableJAVA_CLASS_Token), true,
                    callableRGB, false, true),
            new SyntaxColoringDefault(
                    PreferenceConstants.getTokenPreferenceKey(PreferenceConstants.JAVA_INSTANCE_METHOD_Token), true,
                    new RGB(0, 0, 0), false, true),
            new SyntaxColoringDefault(
                    PreferenceConstants
                            .getTokenPreferenceKey(PreferenceConstants.callableJAVA_INSTANCE_METHOD_Token),
                    true, callableRGB, false, true),
            new SyntaxColoringDefault(
                    PreferenceConstants.getTokenPreferenceKey(PreferenceConstants.JAVA_STATIC_METHOD_Token), true,
                    new RGB(0, 0, 0), false, true),
            new SyntaxColoringDefault(
                    PreferenceConstants.getTokenPreferenceKey(PreferenceConstants.callableJAVA_STATIC_METHOD_Token),
                    true, callableRGB, false, true),
            new SyntaxColoringDefault(
                    PreferenceConstants.getTokenPreferenceKey(PreferenceConstants.deactivatedRainbowParen), true,
                    new RGB(145, 145, 145), false, false),
            new SyntaxColoringDefault(
                    PreferenceConstants.getTokenPreferenceKey(PreferenceConstants.rainbowParenLevel1), true,
                    new RGB(204, 122, 122), false, false),
            new SyntaxColoringDefault(
                    PreferenceConstants.getTokenPreferenceKey(PreferenceConstants.rainbowParenLevel2), true,
                    new RGB(204, 176, 122), false, false),
            new SyntaxColoringDefault(
                    PreferenceConstants.getTokenPreferenceKey(PreferenceConstants.rainbowParenLevel3), true,
                    new RGB(122, 204, 122), false, false),
            new SyntaxColoringDefault(
                    PreferenceConstants.getTokenPreferenceKey(PreferenceConstants.rainbowParenLevel4), true,
                    new RGB(122, 204, 176), false, false),
            new SyntaxColoringDefault(
                    PreferenceConstants.getTokenPreferenceKey(PreferenceConstants.rainbowParenLevel5), true,
                    new RGB(122, 176, 204), false, false),
            new SyntaxColoringDefault(
                    PreferenceConstants.getTokenPreferenceKey(PreferenceConstants.rainbowParenLevel6), true,
                    new RGB(122, 122, 204), false, false),
            new SyntaxColoringDefault(
                    PreferenceConstants.getTokenPreferenceKey(PreferenceConstants.rainbowParenLevel7), true,
                    new RGB(176, 122, 204), false, false),
            new SyntaxColoringDefault(
                    PreferenceConstants.getTokenPreferenceKey(PreferenceConstants.rainbowParenLevel8), true,
                    new RGB(204, 122, 176), false, false),
            new SyntaxColoringDefault(PreferenceConstants.getTokenPreferenceKey(PreferenceConstants.replLogValue),
                    true, new RGB(0, 0x80, 0), false, false),
            new SyntaxColoringDefault(PreferenceConstants.getTokenPreferenceKey(PreferenceConstants.replLogError),
                    true, new RGB(0x80, 0, 0), false, false), };

    @Override
    public void initializeDefaultPreferences() {
        IPreferenceStore store = CCWPlugin.getDefault().getPreferenceStore();

        store.setDefault(PreferenceConstants.CCW_GENERAL_AUTOMATIC_NATURE_ADDITION, true);
        store.setDefault(PreferenceConstants.CCW_GENERAL_AUTO_RELOAD_ON_STARTUP_SAVE, false);
        store.setDefault(PreferenceConstants.CCW_GENERAL_LAUNCH_REPLS_IN_DEBUG_MODE, true);
        store.setDefault(PreferenceConstants.CCW_GENERAL_USE_LEININGEN_LAUNCHER, true);

        store.setDefault(org.eclipse.jdt.ui.PreferenceConstants.EDITOR_MATCHING_BRACKETS, true);
        store.setDefault(org.eclipse.jdt.ui.PreferenceConstants.EDITOR_MATCHING_BRACKETS_COLOR,
                StringConverter.asString(new RGB(150, 150, 150)));
        store.setDefault(PreferenceConstants.EDITOR_ESCAPE_ON_PASTE, false);
        store.setDefault(PreferenceConstants.EDITOR_CODE_COMPLETION_AUTO_ACTIVATE, true);
        store.setDefault(PreferenceConstants.EDITOR_DISPLAY_NAMESPACE_IN_TABS, true);
        store.setDefault(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_TAB_WIDTH, 2);
        store.setDefault(PreferenceConstants.SWITCH_TO_NS_ON_REPL_STARTUP, true);
        store.setDefault(USE_STRICT_STRUCTURAL_EDITING_MODE_BY_DEFAULT, false);
        store.setDefault(PreferenceConstants.SHOW_RAINBOW_PARENS_BY_DEFAULT, true);
        store.setDefault(PreferenceConstants.USE_TAB_FOR_REINDENTING_LINE, true);
        store.setDefault(PreferenceConstants.FORCE_TWO_SPACES_INDENT, false);

        store.setDefault(PreferenceConstants.REPL_VIEW_AUTO_EVAL_ON_ENTER_ACTIVE, true);
        store.setDefault(PreferenceConstants.REPL_VIEW_DISPLAY_HINTS, true);

        store.setDefault(PreferenceConstants.REPL_HISTORY_MAX_SIZE, 1000);
        store.setDefault(PreferenceConstants.REPL_HISTORY_PERSIST_SCHEDULE, 30000);

        for (SyntaxColoringDefault d : coloringDefaults) {
            store.setDefault(d.getPreferenceConstant(), StringConverter.asString(d.getDefaultColor()));
            store.setDefault(SyntaxColoringHelper.getEnabledPreferenceKey(d.getPreferenceConstant()),
                    d.isDefaultEnabled());
            store.setDefault(SyntaxColoringHelper.getBoldPreferenceKey(d.getPreferenceConstant()), d.isBold());
            store.setDefault(SyntaxColoringHelper.getItalicPreferenceKey(d.getPreferenceConstant()), d.isItalic());
        }

        // Experimental Features
        store.setDefault(PreferenceConstants.EXPERIMENTAL_AUTOSHIFT_ENABLED, true);
    }
}