/** * <copyright> * </copyright> * * */ package org.reuseware.air.language.abstractsyntax.resource.as.ui; /** * A class used to initialize default preference values. */ public class AsPreferenceInitializer extends org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer { private final static org.reuseware.air.language.abstractsyntax.resource.as.ui.AsAntlrTokenHelper tokenHelper = new org.reuseware.air.language.abstractsyntax.resource.as.ui.AsAntlrTokenHelper(); public void initializeDefaultPreferences() { initializeDefaultSyntaxHighlighting(); initializeDefaultBrackets(); org.eclipse.jface.preference.IPreferenceStore store = org.reuseware.air.language.abstractsyntax.resource.as.ui.AsUIPlugin.getDefault().getPreferenceStore(); // Set default value for matching brackets store.setDefault(org.reuseware.air.language.abstractsyntax.resource.as.ui.AsPreferenceConstants.EDITOR_MATCHING_BRACKETS_COLOR, "192,192,192"); store.setDefault(org.reuseware.air.language.abstractsyntax.resource.as.ui.AsPreferenceConstants.EDITOR_MATCHING_BRACKETS_CHECKBOX, true); // Set default value for occurrences store.setDefault(org.reuseware.air.language.abstractsyntax.resource.as.ui.AsPreferenceConstants.EDITOR_OCCURRENCE_CHECKBOX, true); store.setDefault(org.reuseware.air.language.abstractsyntax.resource.as.ui.AsPreferenceConstants.EDITOR_DEFINITION_COLOR, "240,216,168"); store.setDefault(org.reuseware.air.language.abstractsyntax.resource.as.ui.AsPreferenceConstants.EDITOR_PROXY_COLOR, "212,212,212"); // store.setDefault(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_OVERVIEW_ // RULER, true); } private void initializeDefaultBrackets() { org.eclipse.jface.preference.IPreferenceStore store = org.reuseware.air.language.abstractsyntax.resource.as.ui.AsUIPlugin.getDefault().getPreferenceStore(); initializeDefaultBrackets(store, new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsMetaInformation()); } public void initializeDefaultSyntaxHighlighting() { org.eclipse.jface.preference.IPreferenceStore store = org.reuseware.air.language.abstractsyntax.resource.as.ui.AsUIPlugin.getDefault().getPreferenceStore(); initializeDefaultSyntaxHighlighting(store, new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsMetaInformation()); } private void initializeDefaultBrackets(org.eclipse.jface.preference.IPreferenceStore store, org.reuseware.air.language.abstractsyntax.resource.as.IAsMetaInformation metaInformation) { String languageId = metaInformation.getSyntaxName(); // set default brackets for ITextResource bracket set org.reuseware.air.language.abstractsyntax.resource.as.ui.AsBracketSet bracketSet = new org.reuseware.air.language.abstractsyntax.resource.as.ui.AsBracketSet(null, null); final java.util.Collection<org.reuseware.air.language.abstractsyntax.resource.as.IAsBracketPair> bracketPairs = metaInformation.getBracketPairs(); if (bracketPairs != null) { for (org.reuseware.air.language.abstractsyntax.resource.as.IAsBracketPair bracketPair : bracketPairs) { bracketSet.addBracketPair(bracketPair.getOpeningBracket(), bracketPair.getClosingBracket(), bracketPair.isClosingEnabledInside()); } } store.setDefault(languageId + org.reuseware.air.language.abstractsyntax.resource.as.ui.AsPreferenceConstants.EDITOR_BRACKETS_SUFFIX, bracketSet.getBracketString()); } private void initializeDefaultSyntaxHighlighting(org.eclipse.jface.preference.IPreferenceStore store, org.reuseware.air.language.abstractsyntax.resource.as.IAsMetaInformation metaInformation) { String languageId = metaInformation.getSyntaxName(); String[] tokenNames = metaInformation.getTokenNames(); if (tokenNames == null) { return; } for (int i = 0; i < tokenNames.length; i++) { if (!tokenHelper.canBeUsedForSyntaxColoring(i)) { continue; } String tokenName = tokenHelper.getTokenName(tokenNames, i); if (tokenName == null) { continue; } org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenStyle style = metaInformation.getDefaultTokenStyle(tokenName); if (style != null) { String color = getColorString(style.getColorAsRGB()); setProperties(store, languageId, tokenName, color, style.isBold(), true, style.isItalic(), style.isStrikethrough(), style.isUnderline()); } else { setProperties(store, languageId, tokenName, "0,0,0", false, false, false, false, false); } } } private void setProperties(org.eclipse.jface.preference.IPreferenceStore store, String languageID, String tokenName, String color, boolean bold, boolean enable, boolean italic, boolean strikethrough, boolean underline) { store.setDefault(org.reuseware.air.language.abstractsyntax.resource.as.ui.AsSyntaxColoringHelper.getPreferenceKey(languageID, tokenName, org.reuseware.air.language.abstractsyntax.resource.as.ui.AsSyntaxColoringHelper.StyleProperty.BOLD), bold); store.setDefault(org.reuseware.air.language.abstractsyntax.resource.as.ui.AsSyntaxColoringHelper.getPreferenceKey(languageID, tokenName, org.reuseware.air.language.abstractsyntax.resource.as.ui.AsSyntaxColoringHelper.StyleProperty.COLOR), color); store.setDefault(org.reuseware.air.language.abstractsyntax.resource.as.ui.AsSyntaxColoringHelper.getPreferenceKey(languageID, tokenName, org.reuseware.air.language.abstractsyntax.resource.as.ui.AsSyntaxColoringHelper.StyleProperty.ENABLE), enable); store.setDefault(org.reuseware.air.language.abstractsyntax.resource.as.ui.AsSyntaxColoringHelper.getPreferenceKey(languageID, tokenName, org.reuseware.air.language.abstractsyntax.resource.as.ui.AsSyntaxColoringHelper.StyleProperty.ITALIC), italic); store.setDefault(org.reuseware.air.language.abstractsyntax.resource.as.ui.AsSyntaxColoringHelper.getPreferenceKey(languageID, tokenName, org.reuseware.air.language.abstractsyntax.resource.as.ui.AsSyntaxColoringHelper.StyleProperty.STRIKETHROUGH), strikethrough); store.setDefault(org.reuseware.air.language.abstractsyntax.resource.as.ui.AsSyntaxColoringHelper.getPreferenceKey(languageID, tokenName, org.reuseware.air.language.abstractsyntax.resource.as.ui.AsSyntaxColoringHelper.StyleProperty.UNDERLINE), underline); } private String getColorString(int[] colorAsRGB) { if (colorAsRGB == null) { return "0,0,0"; } if (colorAsRGB.length != 3) { return "0,0,0"; } return colorAsRGB[0] + "," +colorAsRGB[1] + ","+ colorAsRGB[2]; } }