diff options
author | david_williams | 2005-05-25 21:11:11 +0000 |
---|---|---|
committer | david_williams | 2005-05-25 21:11:11 +0000 |
commit | d3484c7460a56ed05ad2eff8096d312d1a107b84 (patch) | |
tree | 177c0ba11ce26410fedcf7dd9da5792b1fc9e556 /bundles | |
parent | 6d01c05d4b484610b30ea98f43c970f4be5fe7d2 (diff) | |
download | webtools.sourceediting-d3484c7460a56ed05ad2eff8096d312d1a107b84.tar.gz webtools.sourceediting-d3484c7460a56ed05ad2eff8096d312d1a107b84.tar.xz webtools.sourceediting-d3484c7460a56ed05ad2eff8096d312d1a107b84.zip |
[88846] Make indentation customizable
Diffstat (limited to 'bundles')
77 files changed, 1798 insertions, 2120 deletions
diff --git a/bundles/org.eclipse.jst.jsp.core/plugin.xml b/bundles/org.eclipse.jst.jsp.core/plugin.xml index f1ad265a98..e5cfeb359e 100644 --- a/bundles/org.eclipse.jst.jsp.core/plugin.xml +++ b/bundles/org.eclipse.jst.jsp.core/plugin.xml @@ -145,4 +145,9 @@ content-type="org.eclipse.core.runtime.xml" file-extensions="tld"/> </extension> + + <!-- initialize jsp core preferences --> + <extension point="org.eclipse.core.runtime.preferences"> + <initializer class="org.eclipse.jst.jsp.core.internal.preferences.JSPCorePreferenceInitializer"/> + </extension> </plugin> diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPCorePlugin.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPCorePlugin.java index 579bb56180..3905b7bc96 100644 --- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPCorePlugin.java +++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPCorePlugin.java @@ -14,13 +14,9 @@ import org.eclipse.core.resources.IResourceChangeEvent; import org.eclipse.core.resources.IWorkspace; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.Plugin; -import org.eclipse.core.runtime.Preferences; import org.eclipse.jst.jsp.core.internal.contentmodel.TaglibController; import org.eclipse.jst.jsp.core.internal.java.search.JSPIndexManager; import org.eclipse.jst.jsp.core.internal.java.search.JSPSearchSupport; -import org.eclipse.wst.sse.core.internal.encoding.CommonCharsetNames; -import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames; -import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames; import org.osgi.framework.BundleContext; /** @@ -53,42 +49,6 @@ public class JSPCorePlugin extends Plugin { } /* (non-Javadoc) - * @see org.eclipse.core.runtime.Plugin#initializeDefaultPluginPreferences() - */ - protected void initializeDefaultPluginPreferences() { - Preferences prefs = getDefault().getPluginPreferences(); - // set model preference defaults - prefs.setDefault(CommonModelPreferenceNames.CLEANUP_TAG_NAME_CASE, CommonModelPreferenceNames.ASIS); - prefs.setDefault(CommonModelPreferenceNames.CLEANUP_ATTR_NAME_CASE, CommonModelPreferenceNames.ASIS); - prefs.setDefault(CommonModelPreferenceNames.INSERT_MISSING_TAGS, true); - prefs.setDefault(CommonModelPreferenceNames.QUOTE_ATTR_VALUES, true); - prefs.setDefault(CommonModelPreferenceNames.FORMAT_SOURCE, true); - prefs.setDefault(CommonModelPreferenceNames.CONVERT_EOL_CODES, false); - - prefs.setDefault(CommonEncodingPreferenceNames.INPUT_CODESET, ""); //$NON-NLS-1$ - - String defaultEnc = CommonModelPreferenceNames.UTF_8; - String systemEnc = System.getProperty("file.encoding"); //$NON-NLS-1$ - if (systemEnc != null) { - defaultEnc = CommonCharsetNames.getPreferredDefaultIanaName(systemEnc, CommonModelPreferenceNames.UTF_8); - } - prefs.setDefault(CommonEncodingPreferenceNames.OUTPUT_CODESET, defaultEnc); - - prefs.setDefault(CommonEncodingPreferenceNames.END_OF_LINE_CODE, ""); //$NON-NLS-1$ - prefs.setDefault(CommonModelPreferenceNames.TAB_WIDTH, CommonModelPreferenceNames.DEFAULT_TAB_WIDTH); - - prefs.setDefault(CommonModelPreferenceNames.FORMATTING_SUPPORTED, true); - prefs.setDefault(CommonModelPreferenceNames.LINE_WIDTH, 72); - prefs.setDefault(CommonModelPreferenceNames.SPLIT_MULTI_ATTRS, false); - prefs.setDefault(CommonModelPreferenceNames.INDENT_USING_TABS, true); - prefs.setDefault(CommonModelPreferenceNames.CLEAR_ALL_BLANK_LINES, false); - - prefs.setDefault(CommonModelPreferenceNames.PREFERRED_MARKUP_CASE_SUPPORTED, true); - prefs.setDefault(CommonModelPreferenceNames.TAG_NAME_CASE, CommonModelPreferenceNames.UPPER); - prefs.setDefault(CommonModelPreferenceNames.ATTR_NAME_CASE, CommonModelPreferenceNames.LOWER); - } - - /* (non-Javadoc) * @see org.eclipse.core.runtime.Plugin#start(org.osgi.framework.BundleContext) */ public void start(BundleContext context) throws Exception { diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/preferences/JSPCorePreferenceInitializer.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/preferences/JSPCorePreferenceInitializer.java new file mode 100644 index 0000000000..762af18836 --- /dev/null +++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/preferences/JSPCorePreferenceInitializer.java @@ -0,0 +1,38 @@ +/******************************************************************************* + * Copyright (c) 2005 IBM Corporation and others. + * 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: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.jst.jsp.core.internal.preferences; + +import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer; +import org.eclipse.core.runtime.preferences.DefaultScope; +import org.eclipse.core.runtime.preferences.IEclipsePreferences; +import org.eclipse.jst.jsp.core.internal.JSPCorePlugin; +import org.eclipse.wst.sse.core.internal.encoding.CommonCharsetNames; +import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames; + +/** + * Sets default values for JSP Core preferences + */ +public class JSPCorePreferenceInitializer extends AbstractPreferenceInitializer { + + public void initializeDefaultPreferences() { + IEclipsePreferences node = new DefaultScope().getNode(JSPCorePlugin.getDefault().getBundle().getSymbolicName()); + + // code generation preferences + node.put(CommonEncodingPreferenceNames.INPUT_CODESET, ""); //$NON-NLS-1$ + String defaultEnc = "ISO-8859-1";//$NON-NLS-1$ + String systemEnc = System.getProperty("file.encoding"); //$NON-NLS-1$ + if (systemEnc != null) { + defaultEnc = CommonCharsetNames.getPreferredDefaultIanaName(systemEnc, "ISO-8859-1");//$NON-NLS-1$ + } + node.put(CommonEncodingPreferenceNames.OUTPUT_CODESET, defaultEnc); + node.put(CommonEncodingPreferenceNames.END_OF_LINE_CODE, ""); //$NON-NLS-1$ + } +} diff --git a/bundles/org.eclipse.wst.css.core/plugin.xml b/bundles/org.eclipse.wst.css.core/plugin.xml index 0441d260d8..ef6e09bc73 100644 --- a/bundles/org.eclipse.wst.css.core/plugin.xml +++ b/bundles/org.eclipse.wst.css.core/plugin.xml @@ -92,4 +92,8 @@ </content-type> </extension> + <!-- initialize css core preferences --> + <extension point="org.eclipse.core.runtime.preferences"> + <initializer class="org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceInitializer"/> + </extension> </plugin> diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/CSSCorePlugin.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/CSSCorePlugin.java index de3169a6de..710b39a528 100644 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/CSSCorePlugin.java +++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/CSSCorePlugin.java @@ -13,11 +13,6 @@ package org.eclipse.wst.css.core.internal; import org.eclipse.core.resources.IWorkspace; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.Plugin; -import org.eclipse.core.runtime.Preferences; -import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper; -import org.eclipse.wst.sse.core.internal.encoding.CommonCharsetNames; -import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames; -import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames; /** * The main plugin class to be used in the desktop. @@ -47,46 +42,4 @@ public class CSSCorePlugin extends Plugin { public static IWorkspace getWorkspace() { return ResourcesPlugin.getWorkspace(); } - - /* - * (non-Javadoc) - * - * @see org.eclipse.core.runtime.Plugin#initializeDefaultPluginPreferences() - */ - protected void initializeDefaultPluginPreferences() { - Preferences prefs = getDefault().getPluginPreferences(); - - CSSPreferenceHelper.createDefaultPreferences(prefs); - - // set model preference defaults - prefs.setDefault(CommonModelPreferenceNames.CLEANUP_TAG_NAME_CASE, CommonModelPreferenceNames.ASIS); - prefs.setDefault(CommonModelPreferenceNames.CLEANUP_ATTR_NAME_CASE, CommonModelPreferenceNames.ASIS); - prefs.setDefault(CommonModelPreferenceNames.INSERT_MISSING_TAGS, true); - prefs.setDefault(CommonModelPreferenceNames.QUOTE_ATTR_VALUES, true); - prefs.setDefault(CommonModelPreferenceNames.FORMAT_SOURCE, true); - prefs.setDefault(CommonModelPreferenceNames.CONVERT_EOL_CODES, false); - - prefs.setDefault(CommonEncodingPreferenceNames.INPUT_CODESET, ""); //$NON-NLS-1$ - - String defaultEnc = CommonModelPreferenceNames.UTF_8; - String systemEnc = System.getProperty("file.encoding"); //$NON-NLS-1$ - if (systemEnc != null) { - defaultEnc = CommonCharsetNames.getPreferredDefaultIanaName(systemEnc, CommonModelPreferenceNames.UTF_8); - } - prefs.setDefault(CommonEncodingPreferenceNames.OUTPUT_CODESET, defaultEnc); - - prefs.setDefault(CommonEncodingPreferenceNames.END_OF_LINE_CODE, ""); //$NON-NLS-1$ - - prefs.setDefault(CommonModelPreferenceNames.TAB_WIDTH, 4); - - prefs.setDefault(CommonModelPreferenceNames.FORMATTING_SUPPORTED, true); - prefs.setDefault(CommonModelPreferenceNames.LINE_WIDTH, 72); - prefs.setDefault(CommonModelPreferenceNames.SPLIT_MULTI_ATTRS, false); - prefs.setDefault(CommonModelPreferenceNames.INDENT_USING_TABS, true); - prefs.setDefault(CommonModelPreferenceNames.CLEAR_ALL_BLANK_LINES, false); - - prefs.setDefault(CommonModelPreferenceNames.PREFERRED_MARKUP_CASE_SUPPORTED, false); - prefs.setDefault(CommonModelPreferenceNames.TAG_NAME_CASE, CommonModelPreferenceNames.LOWER); - prefs.setDefault(CommonModelPreferenceNames.ATTR_NAME_CASE, CommonModelPreferenceNames.LOWER); - } } diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/cleanup/CSSCleanupStrategyImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/cleanup/CSSCleanupStrategyImpl.java index 5c6e8259f8..06e3e62f45 100644 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/cleanup/CSSCleanupStrategyImpl.java +++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/cleanup/CSSCleanupStrategyImpl.java @@ -12,8 +12,7 @@ package org.eclipse.wst.css.core.internal.cleanup; import org.eclipse.core.runtime.Preferences; import org.eclipse.wst.css.core.internal.CSSCorePlugin; -import org.eclipse.wst.css.core.internal.provisional.preferences.CSSModelPreferenceNames; -import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames; +import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames; @@ -83,12 +82,12 @@ public class CSSCleanupStrategyImpl implements CSSCleanupStrategy { */ private void initialize() { Preferences prefs = CSSCorePlugin.getDefault().getPluginPreferences(); - fIdentCase = getCleanupCaseValue(prefs.getInt(CSSModelPreferenceNames.CLEANUP_CASE_IDENTIFIER)); - fPropNameCase = getCleanupCaseValue(prefs.getInt(CSSModelPreferenceNames.CLEANUP_CASE_PROPERTY_NAME)); - fPropValueCase = getCleanupCaseValue(prefs.getInt(CSSModelPreferenceNames.CLEANUP_CASE_PROPERTY_VALUE)); - fSelectorTagCase = getCleanupCaseValue(prefs.getInt(CSSModelPreferenceNames.CLEANUP_CASE_SELECTOR)); - fQuoteValues = prefs.getBoolean(CommonModelPreferenceNames.QUOTE_ATTR_VALUES); - fFormatSource = prefs.getBoolean(CommonModelPreferenceNames.FORMAT_SOURCE); + fIdentCase = getCleanupCaseValue(prefs.getInt(CSSCorePreferenceNames.CLEANUP_CASE_IDENTIFIER)); + fPropNameCase = getCleanupCaseValue(prefs.getInt(CSSCorePreferenceNames.CLEANUP_CASE_PROPERTY_NAME)); + fPropValueCase = getCleanupCaseValue(prefs.getInt(CSSCorePreferenceNames.CLEANUP_CASE_PROPERTY_VALUE)); + fSelectorTagCase = getCleanupCaseValue(prefs.getInt(CSSCorePreferenceNames.CLEANUP_CASE_SELECTOR)); + fQuoteValues = prefs.getBoolean(CSSCorePreferenceNames.QUOTE_ATTR_VALUES); + fFormatSource = prefs.getBoolean(CSSCorePreferenceNames.FORMAT_SOURCE); } /** @@ -100,9 +99,9 @@ public class CSSCleanupStrategyImpl implements CSSCleanupStrategy { */ private short getCleanupCaseValue(int value) { switch (value) { - case CommonModelPreferenceNames.LOWER : + case CSSCorePreferenceNames.LOWER : return LOWER; - case CommonModelPreferenceNames.UPPER : + case CSSCorePreferenceNames.UPPER : return UPPER; } return ASIS; @@ -180,12 +179,12 @@ public class CSSCleanupStrategyImpl implements CSSCleanupStrategy { // TODO: a saveOptions should be added to CSSCleanupStrategy interface public void saveOptions() { - CSSCorePlugin.getDefault().getPluginPreferences().setValue(CSSModelPreferenceNames.CLEANUP_CASE_IDENTIFIER, fIdentCase); - CSSCorePlugin.getDefault().getPluginPreferences().setValue(CSSModelPreferenceNames.CLEANUP_CASE_PROPERTY_NAME, fPropNameCase); - CSSCorePlugin.getDefault().getPluginPreferences().setValue(CSSModelPreferenceNames.CLEANUP_CASE_PROPERTY_VALUE, fPropValueCase); - CSSCorePlugin.getDefault().getPluginPreferences().setValue(CSSModelPreferenceNames.CLEANUP_CASE_SELECTOR, fSelectorTagCase); - CSSCorePlugin.getDefault().getPluginPreferences().setValue(CommonModelPreferenceNames.QUOTE_ATTR_VALUES, fQuoteValues); - CSSCorePlugin.getDefault().getPluginPreferences().setValue(CommonModelPreferenceNames.FORMAT_SOURCE, fFormatSource); + CSSCorePlugin.getDefault().getPluginPreferences().setValue(CSSCorePreferenceNames.CLEANUP_CASE_IDENTIFIER, fIdentCase); + CSSCorePlugin.getDefault().getPluginPreferences().setValue(CSSCorePreferenceNames.CLEANUP_CASE_PROPERTY_NAME, fPropNameCase); + CSSCorePlugin.getDefault().getPluginPreferences().setValue(CSSCorePreferenceNames.CLEANUP_CASE_PROPERTY_VALUE, fPropValueCase); + CSSCorePlugin.getDefault().getPluginPreferences().setValue(CSSCorePreferenceNames.CLEANUP_CASE_SELECTOR, fSelectorTagCase); + CSSCorePlugin.getDefault().getPluginPreferences().setValue(CSSCorePreferenceNames.QUOTE_ATTR_VALUES, fQuoteValues); + CSSCorePlugin.getDefault().getPluginPreferences().setValue(CSSCorePreferenceNames.FORMAT_SOURCE, fFormatSource); CSSCorePlugin.getDefault().savePluginPreferences(); } }
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSCharsetRuleImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSCharsetRuleImpl.java index 7748a0b9d8..a16d26a675 100644 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSCharsetRuleImpl.java +++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSCharsetRuleImpl.java @@ -12,9 +12,10 @@ package org.eclipse.wst.css.core.internal.document; +import org.eclipse.wst.css.core.internal.CSSCorePlugin; +import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames; import org.eclipse.wst.css.core.internal.provisional.document.ICSSCharsetRule; import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper; import org.eclipse.wst.css.core.internal.util.CSSUtil; @@ -85,7 +86,7 @@ class CSSCharsetRuleImpl extends CSSRuleImpl implements ICSSCharsetRule { // pa_TODO css pref // String quote = // com.ibm.sse.editor.css.preferences.CSSPreferenceHelper.getInstance().getQuoteString((ICSSModel)getOwnerDocument().getModel()); - String quote = CSSPreferenceHelper.getInstance().getQuoteString(null); + String quote = CSSCorePlugin.getDefault().getPluginPreferences().getString(CSSCorePreferenceNames.FORMAT_QUOTE); String enc = CSSUtil.extractStringContents(encoding); quote = CSSUtil.detectQuote(enc, quote); setAttribute(ENCODING, quote + enc + quote); diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/AbstractCSSSourceFormatter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/AbstractCSSSourceFormatter.java index d1c40d7a60..ba40786c46 100644 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/AbstractCSSSourceFormatter.java +++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/AbstractCSSSourceFormatter.java @@ -13,12 +13,15 @@ package org.eclipse.wst.css.core.internal.formatter; import java.util.ArrayList; import java.util.Iterator; +import org.eclipse.core.runtime.Preferences; import org.eclipse.jface.text.DefaultLineTracker; import org.eclipse.jface.text.IRegion; import org.eclipse.jface.text.TextUtilities; +import org.eclipse.wst.css.core.internal.CSSCorePlugin; import org.eclipse.wst.css.core.internal.cleanup.CSSCleanupStrategy; import org.eclipse.wst.css.core.internal.cleanup.CSSCleanupStrategyImpl; import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts; +import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames; import org.eclipse.wst.css.core.internal.provisional.document.ICSSAttr; import org.eclipse.wst.css.core.internal.provisional.document.ICSSDocument; import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel; @@ -26,7 +29,6 @@ import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleDeclItem; import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleDeclaration; import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleSheet; -import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper; import org.eclipse.wst.css.core.internal.util.CSSLinkConverter; import org.eclipse.wst.css.core.internal.util.CSSUtil; import org.eclipse.wst.css.core.internal.util.RegionIterator; @@ -64,15 +66,14 @@ public abstract class AbstractCSSSourceFormatter implements CSSSourceGenerator { if (isCleanup() && !getCleanupStrategy(node).isFormatSource()) return; // for not formatting case on cleanup action String delim = getLineDelimiter(node); - CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance(); + boolean needIndent = !(node instanceof ICSSStyleSheet); if (toAppend == null) { source.append(delim); source.append(getIndent(node)); if (needIndent) - source.append(mgr.getIndentString()); - } - else { + source.append(getIndentString()); + } else { String type = toAppend.getType(); if (type == CSSRegionContexts.CSS_COMMENT) { RegionIterator it = new RegionIterator(toAppend.getDocumentRegion(), toAppend.getTextRegion()); @@ -82,42 +83,40 @@ public abstract class AbstractCSSSourceFormatter implements CSSSourceGenerator { source.append(delim); source.append(getIndent(node)); if (needIndent) - source.append(mgr.getIndentString()); - } - else { + source.append(getIndentString()); + } else { appendSpaceBefore(node, toAppend.getText(), source); } - } - else if (type == CSSRegionContexts.CSS_DELIMITER || type == CSSRegionContexts.CSS_DECLARATION_DELIMITER) { + } else if (type == CSSRegionContexts.CSS_DELIMITER || type == CSSRegionContexts.CSS_DECLARATION_DELIMITER) { RegionIterator it = new RegionIterator(toAppend.getDocumentRegion(), toAppend.getTextRegion()); it.prev(); ITextRegion prev = it.prev(); + + Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences(); + if (prev.getType() == CSSRegionContexts.CSS_S && TextUtilities.indexOf(DefaultLineTracker.DELIMITERS, it.getStructuredDocumentRegion().getText(prev), 0)[0] >= 0) { source.append(delim); source.append(getIndent(node)); if (needIndent) - source.append(mgr.getIndentString()); - } - else if (mgr.getMaxLineWidth() > 0 && (!mgr.isProhibitWrapOnAttr() || node.getOwnerDocument().getNodeType() != ICSSNode.STYLEDECLARATION_NODE)) { + source.append(getIndentString()); + } else if (preferences.getInt(CSSCorePreferenceNames.LINE_WIDTH) > 0 && (!preferences.getBoolean(CSSCorePreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR) || node.getOwnerDocument().getNodeType() != ICSSNode.STYLEDECLARATION_NODE)) { int length = getLastLineLength(node, source); int append = 1; - if (length + append > mgr.getMaxLineWidth()) { + if (length + append > preferences.getInt(CSSCorePreferenceNames.LINE_WIDTH)) { source.append(getLineDelimiter(node)); source.append(getIndent(node)); if (needIndent) - source.append(mgr.getIndentString()); + source.append(getIndentString()); } } - } - else if (type == CSSRegionContexts.CSS_RBRACE || type == CSSRegionContexts.CSS_LBRACE) { + } else if (type == CSSRegionContexts.CSS_RBRACE || type == CSSRegionContexts.CSS_LBRACE) { source.append(delim); source.append(getIndent(node)); - } - else { + } else { source.append(delim); source.append(getIndent(node)); if (needIndent) - source.append(mgr.getIndentString()); + source.append(getIndentString()); } } } @@ -131,7 +130,9 @@ public abstract class AbstractCSSSourceFormatter implements CSSSourceGenerator { if (isCleanup() && !getCleanupStrategy(node).isFormatSource()) return; // for not formatting case on cleanup action String type = toAppend.getType(); - CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance(); + + Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences(); + boolean needIndent = !(node instanceof ICSSStyleSheet); if (type == CSSRegionContexts.CSS_COMMENT) { // check whether previous region is 'S' and has CR-LF @@ -143,50 +144,45 @@ public abstract class AbstractCSSSourceFormatter implements CSSSourceGenerator { source.append(delim); source.append(getIndent(node)); if (needIndent) - source.append(mgr.getIndentString()); - } - else { + source.append(getIndentString()); + } else { appendSpaceBefore(node, toAppend.getText(), source); } - } - else if (type == CSSRegionContexts.CSS_LBRACE && mgr.isNewLineOnOpenBrace()) { + } else if (type == CSSRegionContexts.CSS_LBRACE && preferences.getBoolean(CSSCorePreferenceNames.WRAPPING_NEWLINE_ON_OPEN_BRACE)) { String delim = getLineDelimiter(node); source.append(delim); source.append(getIndent(node)); // } else if (type == CSSRegionContexts.CSS_CURLY_BRACE_CLOSE) { // } else if (type == CSSRegionContexts.CSS_INCLUDES || type == // CSSRegionContexts.CSS_DASHMATCH) { - } - else if (type == CSSRegionContexts.CSS_DECLARATION_SEPARATOR && node instanceof ICSSStyleDeclItem) { - int n = mgr.getSpacesPreDelimiter(); - if (mgr.getMaxLineWidth() > 0 && (!mgr.isProhibitWrapOnAttr() || node.getOwnerDocument().getNodeType() != ICSSNode.STYLEDECLARATION_NODE)) { + } else if (type == CSSRegionContexts.CSS_DECLARATION_SEPARATOR && node instanceof ICSSStyleDeclItem) { + int n = preferences.getInt(CSSCorePreferenceNames.FORMAT_PROP_PRE_DELIM); + if (preferences.getInt(CSSCorePreferenceNames.LINE_WIDTH) > 0 && (!preferences.getBoolean(CSSCorePreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR) || node.getOwnerDocument().getNodeType() != ICSSNode.STYLEDECLARATION_NODE)) { int length = getLastLineLength(node, source); int append = 1; - if (length + n + append > mgr.getMaxLineWidth()) { + if (length + n + append > preferences.getInt(CSSCorePreferenceNames.LINE_WIDTH)) { source.append(getLineDelimiter(node)); source.append(getIndent(node)); if (needIndent) - source.append(mgr.getIndentString()); + source.append(getIndentString()); n = 0; // no space is necessary } } // no delimiter case while (n-- > 0) source.append(" ");//$NON-NLS-1$ - } - else if (type == CSSRegionContexts.CSS_DECLARATION_DELIMITER || type == CSSRegionContexts.CSS_DECLARATION_VALUE_OPERATOR || type == CSSRegionContexts.CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE) { - if (mgr.getMaxLineWidth() > 0 && (!mgr.isProhibitWrapOnAttr() || node.getOwnerDocument().getNodeType() != ICSSNode.STYLEDECLARATION_NODE)) { + } else if (type == CSSRegionContexts.CSS_DECLARATION_DELIMITER || type == CSSRegionContexts.CSS_DECLARATION_VALUE_OPERATOR || type == CSSRegionContexts.CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE) { + if (preferences.getInt(CSSCorePreferenceNames.LINE_WIDTH) > 0 && (!preferences.getBoolean(CSSCorePreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR) || node.getOwnerDocument().getNodeType() != ICSSNode.STYLEDECLARATION_NODE)) { int length = getLastLineLength(node, source); int append = 1; - if (length + append > mgr.getMaxLineWidth()) { + if (length + append > preferences.getInt(CSSCorePreferenceNames.LINE_WIDTH)) { source.append(getLineDelimiter(node)); source.append(getIndent(node)); if (needIndent) - source.append(mgr.getIndentString()); + source.append(getIndentString()); } } - } - else + } else appendSpaceBefore(node, toAppend.getText(), source); } @@ -198,21 +194,21 @@ public abstract class AbstractCSSSourceFormatter implements CSSSourceGenerator { return; if (isCleanup() && !getCleanupStrategy(node).isFormatSource()) return; // for not formatting case on cleanup action - CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance(); - if (toAppend != null && toAppend.startsWith("{") && mgr.isNewLineOnOpenBrace()) {//$NON-NLS-1$ + + Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences(); + if (toAppend != null && toAppend.startsWith("{") && preferences.getBoolean(CSSCorePreferenceNames.WRAPPING_NEWLINE_ON_OPEN_BRACE)) {//$NON-NLS-1$ source.append(getLineDelimiter(node)); source.append(getIndent(node)); return; - } - else if (/* ! mgr.isOnePropertyPerLine() && */mgr.getMaxLineWidth() > 0 && (!mgr.isProhibitWrapOnAttr() || node.getOwnerDocument().getNodeType() != ICSSNode.STYLEDECLARATION_NODE)) { + } else if (/* ! mgr.isOnePropertyPerLine() && */preferences.getInt(CSSCorePreferenceNames.LINE_WIDTH) > 0 && (!preferences.getBoolean(CSSCorePreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR) || node.getOwnerDocument().getNodeType() != ICSSNode.STYLEDECLARATION_NODE)) { int n = getLastLineLength(node, source); int append = (toAppend != null) ? TextUtilities.indexOf(DefaultLineTracker.DELIMITERS, toAppend, 0)[0] : 0; if (toAppend != null) append = (append < 0) ? toAppend.length() : append; - if (n + append + 1 > mgr.getMaxLineWidth()) { + if (n + append + 1 > preferences.getInt(CSSCorePreferenceNames.LINE_WIDTH)) { source.append(getLineDelimiter(node)); source.append(getIndent(node)); - source.append(mgr.getIndentString()); + source.append(getIndentString()); return; } } @@ -262,16 +258,14 @@ public abstract class AbstractCSSSourceFormatter implements CSSSourceGenerator { else return text.toLowerCase(); } - else { - CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance(); - if (mgr.isPreserveCase() || region.getType() == CSSRegionContexts.CSS_COMMENT) - return text; - else if (mgr.isIdentUpperCase()) - return text.toUpperCase(); - else - return text.toLowerCase(); - } + Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences(); + if (region.getType() == CSSRegionContexts.CSS_COMMENT) + return text; + else if (preferences.getInt(CSSCorePreferenceNames.CASE_IDENTIFIER) == CSSCorePreferenceNames.UPPER) + return text.toUpperCase(); + else + return text.toLowerCase(); } /** @@ -292,16 +286,14 @@ public abstract class AbstractCSSSourceFormatter implements CSSSourceGenerator { else return text.toLowerCase(); } - else { - CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance(); + Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences(); - if (mgr.isPreserveCase() || region.getType() != CSSRegionContexts.CSS_DECLARATION_PROPERTY) - return text; - else if (mgr.isPropNameUpperCase()) - return text.toUpperCase(); - else - return text.toLowerCase(); - } + if (region.getType() != CSSRegionContexts.CSS_DECLARATION_PROPERTY) + return text; + else if (preferences.getInt(CSSCorePreferenceNames.CASE_PROPERTY_NAME) == CSSCorePreferenceNames.UPPER) + return text.toUpperCase(); + else + return text.toLowerCase(); } /** @@ -318,8 +310,7 @@ public abstract class AbstractCSSSourceFormatter implements CSSSourceGenerator { if (isCleanup()) { if (stgy.getPropValueCase() != CSSCleanupStrategy.ASIS) { if (type == CSSRegionContexts.CSS_COMMENT) { - } - else { + } else { if (stgy.getPropValueCase() == CSSCleanupStrategy.UPPER) text = text.toUpperCase(); else @@ -327,20 +318,6 @@ public abstract class AbstractCSSSourceFormatter implements CSSSourceGenerator { } } } - else { - CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance(); - - if (!mgr.isPreserveCase()) { - if (type == CSSRegionContexts.CSS_COMMENT) { - } - else { - if (mgr.isPropValueUpperCase()) - text = text.toUpperCase(); - else - text = text.toLowerCase(); - } - } - } return text; } @@ -351,30 +328,29 @@ public abstract class AbstractCSSSourceFormatter implements CSSSourceGenerator { if (isFormat()) return region.getText(); - CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance(); + Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences(); String text = region.getText(); if (region.getType() == CSSRegionContexts.CSS_URI) { String uri = CSSLinkConverter.stripFunc(text); - boolean upper = (type == 0) ? mgr.isIdentUpperCase() : ((type == 1) ? mgr.isPropNameUpperCase() : mgr.isPropValueUpperCase()); - String func = mgr.isPreserveCase() ? text.substring(0, 4) : (upper ? "URL(" : "url(");//$NON-NLS-2$//$NON-NLS-1$ + + boolean prefIsUpper = preferences.getInt(CSSCorePreferenceNames.CASE_IDENTIFIER) == CSSCorePreferenceNames.UPPER; + boolean upper = (type == 0) ? prefIsUpper : ((type == 1) ? preferences.getInt(CSSCorePreferenceNames.CASE_PROPERTY_NAME) == CSSCorePreferenceNames.UPPER : preferences.getInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.UPPER); + String func = text.substring(0, 4); if (isCleanup()) { upper = ((type == 0) ? stgy.getIdentCase() : ((type == 1) ? stgy.getPropNameCase() : stgy.getPropValueCase())) == CSSCleanupStrategy.UPPER; func = ((type == 0) ? stgy.getIdentCase() : ((type == 1) ? stgy.getPropNameCase() : stgy.getPropValueCase())) == CSSCleanupStrategy.ASIS ? text.substring(0, 4) : (upper ? "URL(" : "url(");//$NON-NLS-2$//$NON-NLS-1$ } - if ((!isCleanup() && mgr.isQuoteInURI()) || (isCleanup() && stgy.isQuoteValues())) { - String quote = mgr.getQuoteString(null /* reserved parameter */); + if ((!isCleanup() && preferences.getBoolean(CSSCorePreferenceNames.FORMAT_QUOTE_IN_URI)) || (isCleanup() && stgy.isQuoteValues())) { + String quote = preferences.getString(CSSCorePreferenceNames.FORMAT_QUOTE); quote = CSSUtil.detectQuote(uri, quote); text = func + quote + uri + quote + ")";//$NON-NLS-1$ - } - else if (isCleanup() && !stgy.isQuoteValues()) { + } else if (isCleanup() && !stgy.isQuoteValues()) { text = func + CSSLinkConverter.removeFunc(text) + ")";//$NON-NLS-1$ - } - else { + } else { text = func + uri + ")";//$NON-NLS-1$ } - } - else if (region.getType() == CSSRegionContexts.CSS_STRING && (!isCleanup() || stgy.isQuoteValues())) { - String quote = mgr.getQuoteString(null /* reserved parameter */); + } else if (region.getType() == CSSRegionContexts.CSS_STRING && (!isCleanup() || stgy.isQuoteValues())) { + String quote = preferences.getString(CSSCorePreferenceNames.FORMAT_QUOTE); // begginning if (!text.startsWith(quote)) { if (text.startsWith("\"") || text.startsWith("\'")) //$NON-NLS-1$ //$NON-NLS-2$ @@ -494,15 +470,14 @@ public abstract class AbstractCSSSourceFormatter implements CSSSourceGenerator { childSource = ((AbstractCSSSourceFormatter) formatter).formatProc(child); else childSource = ((AbstractCSSSourceFormatter) formatter).formatProc(child, overlappedRegion(region, curStart, curEnd)); - } - else + } else toFinish = true; } // append between children if (!first) { curEnd = ((IndexedRegion) child).getStartOffset(); // change - // only - // start + // only + // start if (start < curEnd) { int curStart = ((IndexedRegion) child.getPreviousSibling()).getEndOffset(); if (curStart < end) { @@ -598,8 +573,7 @@ public abstract class AbstractCSSSourceFormatter implements CSSSourceGenerator { else formatPost(node, overlappedRegion(region, curStart, curEnd), source); } - } - else { + } else { curEnd = getChildInsertPos(node); if (overlaps(region, curStart, curEnd)) { if (includes(region, curStart, curEnd)) @@ -634,20 +608,20 @@ public abstract class AbstractCSSSourceFormatter implements CSSSourceGenerator { * org.eclipse.wst.css.core.model.interfaces.ICSSNode */ protected CSSCleanupStrategy getCleanupStrategy(ICSSNode node) { - CSSCleanupStrategy strategy = CSSCleanupStrategyImpl.getInstance(); + CSSCleanupStrategy currentStrategy = CSSCleanupStrategyImpl.getInstance(); ICSSDocument doc = node.getOwnerDocument(); if (doc == null) - return strategy; + return currentStrategy; ICSSModel model = doc.getModel(); if (model == null) - return strategy; + return currentStrategy; if (model.getStyleSheetType() != ICSSModel.EXTERNAL) { // TODO - TRANSITION Nakamori-san, or Kit, how can we move to // "HTML" plugin? // can we subclass? - // strategy = CSSInHTMLCleanupStrategyImpl.getInstance(); + // currentStrategy = CSSInHTMLCleanupStrategyImpl.getInstance(); } - return strategy; + return currentStrategy; } /** @@ -666,12 +640,11 @@ public abstract class AbstractCSSSourceFormatter implements CSSSourceGenerator { if (parent == null) return "";//$NON-NLS-1$ - CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance(); String parentIndent = getIndent(parent); if (parent instanceof org.w3c.dom.css.CSSRule) - return parentIndent + mgr.getIndentString(); + return parentIndent + getIndentString(); if (node.getParentNode() instanceof ICSSStyleDeclaration) - return parentIndent + mgr.getIndentString(); + return parentIndent + getIndentString(); return parentIndent; } @@ -686,8 +659,8 @@ public abstract class AbstractCSSSourceFormatter implements CSSSourceGenerator { int n = str.lastIndexOf(delim); if (n < 0) return str.length(); - else - return str.length() - n - delim.length(); + + return str.length() - n - delim.length(); } /** @@ -798,8 +771,7 @@ public abstract class AbstractCSSSourceFormatter implements CSSSourceGenerator { ITextRegion textRegion = it.prev(); IStructuredDocumentRegion documentRegion = it.getStructuredDocumentRegion(); ret[0] = new CompoundRegion(documentRegion, textRegion); - } - else { + } else { ret[0] = null; } it.reset(model, reg.getOffset() + reg.getLength()); @@ -807,8 +779,7 @@ public abstract class AbstractCSSSourceFormatter implements CSSSourceGenerator { ITextRegion textRegion = it.next(); IStructuredDocumentRegion documentRegion = it.getStructuredDocumentRegion(); ret[1] = new CompoundRegion(documentRegion, textRegion); - } - else { + } else { ret[1] = null; } return ret; @@ -865,8 +836,7 @@ public abstract class AbstractCSSSourceFormatter implements CSSSourceGenerator { list.toArray(regions); return regions; } - else - return new CompoundRegion[0]; + return new CompoundRegion[0]; } /** @@ -887,12 +857,12 @@ public abstract class AbstractCSSSourceFormatter implements CSSSourceGenerator { if (end < flatNode.getStartOffset(region)) break; if (region.getType() != CSSRegionContexts.CSS_S || (isCleanup() && !stgy.isFormatSource())) // for - // not - // formatting - // case - // on - // cleanup - // action + // not + // formatting + // case + // on + // cleanup + // action list.add(new CompoundRegion(flatNode, region)); } flatNode = flatNode.getNext(); @@ -902,8 +872,7 @@ public abstract class AbstractCSSSourceFormatter implements CSSSourceGenerator { list.toArray(regions); return regions; } - else - return new CompoundRegion[0]; + return new CompoundRegion[0]; } /** @@ -912,8 +881,8 @@ public abstract class AbstractCSSSourceFormatter implements CSSSourceGenerator { public static boolean includes(IRegion region, int start, int end) { if (region == null) return false; - else - return (region.getOffset() <= start) && (end <= region.getOffset() + region.getLength()); + + return (region.getOffset() <= start) && (end <= region.getOffset() + region.getLength()); } /** @@ -964,8 +933,26 @@ public abstract class AbstractCSSSourceFormatter implements CSSSourceGenerator { public static boolean overlaps(IRegion region, int start, int end) { if (region == null) return false; - else - return (start < region.getOffset() + region.getLength()) && (region.getOffset() < end); + + return (start < region.getOffset() + region.getLength()) && (region.getOffset() < end); } + private String getIndentString() { + String indent = ""; //$NON-NLS-1$ + + Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences(); + if (preferences != null) { + String indentChar = " "; //$NON-NLS-1$ + String indentCharPref = preferences.getString(CSSCorePreferenceNames.INDENTATION_CHAR); + if (CSSCorePreferenceNames.TAB.equals(indentCharPref)) { + indentChar = "\t"; //$NON-NLS-1$ + } + int indentationWidth = preferences.getInt(CSSCorePreferenceNames.INDENTATION_SIZE); + + for (int i = 0; i < indentationWidth; i++) { + indent += indentChar; + } + } + return indent; + } }
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/AttrFormatter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/AttrFormatter.java index 1aa4ff0773..6401d4111d 100644 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/AttrFormatter.java +++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/AttrFormatter.java @@ -12,8 +12,11 @@ package org.eclipse.wst.css.core.internal.formatter; +import org.eclipse.core.runtime.Preferences; import org.eclipse.jface.text.IRegion; +import org.eclipse.wst.css.core.internal.CSSCorePlugin; import org.eclipse.wst.css.core.internal.cleanup.CSSCleanupStrategy; +import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames; import org.eclipse.wst.css.core.internal.provisional.document.ICSSAttr; import org.eclipse.wst.css.core.internal.provisional.document.ICSSCharsetRule; import org.eclipse.wst.css.core.internal.provisional.document.ICSSImportRule; @@ -21,7 +24,6 @@ import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; import org.eclipse.wst.css.core.internal.provisional.document.ICSSPageRule; import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleDeclItem; import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleRule; -import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper; import org.eclipse.wst.css.core.internal.util.CSSUtil; import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion; import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; @@ -99,7 +101,8 @@ public class AttrFormatter extends DefaultCSSSourceFormatter { } } else { // generate source - CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance(); + Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences(); + String value = attr.getValue(); if (value == null) value = "";//$NON-NLS-1$ @@ -107,9 +110,9 @@ public class AttrFormatter extends DefaultCSSSourceFormatter { } else if (attr.getName().equals(ICSSImportRule.HREF)) { String uri = org.eclipse.wst.css.core.internal.util.CSSLinkConverter.stripFunc(value); - String func = mgr.isPropValueUpperCase() ? "URL(" : "url(";//$NON-NLS-2$//$NON-NLS-1$ - if (mgr.isQuoteInURI()) { - String quote = mgr.getQuoteString(attr.getOwnerDocument().getModel()); + String func = preferences.getInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.UPPER ? "URL(" : "url(";//$NON-NLS-2$//$NON-NLS-1$ + if (preferences.getBoolean(CSSCorePreferenceNames.FORMAT_QUOTE_IN_URI)) { + String quote = preferences.getString(CSSCorePreferenceNames.FORMAT_QUOTE); quote = CSSUtil.detectQuote(uri, quote); value = func + quote + uri + quote + ")";//$NON-NLS-1$ } @@ -118,26 +121,26 @@ public class AttrFormatter extends DefaultCSSSourceFormatter { } } else if (attr.getName().equals(ICSSCharsetRule.ENCODING)) { - String quote = mgr.getQuoteString(attr.getOwnerDocument().getModel()); + String quote = preferences.getString(CSSCorePreferenceNames.FORMAT_QUOTE); if (!value.startsWith("\"") && !value.startsWith("\'"))//$NON-NLS-2$//$NON-NLS-1$ value = quote + value; if (!value.endsWith("\"") && !value.endsWith("\'"))//$NON-NLS-2$//$NON-NLS-1$ value = value + quote; } else if (attr.getName().equals(ICSSStyleDeclItem.IMPORTANT)) { - if (mgr.isPropValueUpperCase()) + if (preferences.getInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.UPPER) value = value.toUpperCase(); else value = value.toLowerCase(); } else if (attr.getName() == null || attr.getName().length() == 0) { - if (mgr.isIdentUpperCase()) + if (CSSCorePlugin.getDefault().getPluginPreferences().getInt(CSSCorePreferenceNames.CASE_IDENTIFIER) == CSSCorePreferenceNames.UPPER) value = value.toUpperCase(); else value = value.toLowerCase(); } else { - if (mgr.isPropValueUpperCase()) + if (preferences.getInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.UPPER) value = value.toUpperCase(); else value = value.toLowerCase(); diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/CharsetRuleFormatter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/CharsetRuleFormatter.java index e25c767215..7190fc9880 100644 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/CharsetRuleFormatter.java +++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/CharsetRuleFormatter.java @@ -12,13 +12,15 @@ package org.eclipse.wst.css.core.internal.formatter; +import org.eclipse.core.runtime.Preferences; import org.eclipse.jface.text.IRegion; +import org.eclipse.wst.css.core.internal.CSSCorePlugin; import org.eclipse.wst.css.core.internal.cleanup.CSSCleanupStrategy; import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts; +import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames; import org.eclipse.wst.css.core.internal.provisional.document.ICSSAttr; import org.eclipse.wst.css.core.internal.provisional.document.ICSSCharsetRule; import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper; import org.eclipse.wst.css.core.internal.util.CSSUtil; import org.eclipse.wst.css.core.internal.util.RegionIterator; import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion; @@ -66,19 +68,16 @@ public class CharsetRuleFormatter extends DefaultCSSSourceFormatter { context.start = it.getStructuredDocumentRegion().getStartOffset(prev); else context.start = it.getStructuredDocumentRegion().getStartOffset(region); - } - else + } else context.start = it.getStructuredDocumentRegion().getStartOffset(region); context.end = it.getStructuredDocumentRegion().getEndOffset(region); - } - else { + } else { IStructuredDocumentRegion flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(((IndexedRegion) node).getEndOffset() - 1); ITextRegion region = flatNode.getRegionAtCharacterOffset(((IndexedRegion) node).getEndOffset() - 1); if (region.getType() == CSSRegionContexts.CSS_S) { context.start = flatNode.getStartOffset(region); context.end = flatNode.getStartOffset(region); - } - else { + } else { context.start = flatNode.getEndOffset() + 1; context.end = flatNode.getEndOffset(); } @@ -100,17 +99,17 @@ public class CharsetRuleFormatter extends DefaultCSSSourceFormatter { if (end > 0) { // format source int start = ((IndexedRegion) node).getStartOffset(); formatPre(node, new FormatRegion(start, end - start), source); - } - else { // generate source - CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance(); - String quote = mgr.getQuoteString(node.getOwnerDocument().getModel()); + } else { // generate source + Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences(); + + String quote = preferences.getString(CSSCorePreferenceNames.FORMAT_QUOTE); String str = CHARSET; - if (mgr.isIdentUpperCase()) + if (preferences.getInt(CSSCorePreferenceNames.CASE_IDENTIFIER) == CSSCorePreferenceNames.UPPER) str = CHARSET.toUpperCase(); source.append(str); String enc = ((ICSSCharsetRule) node).getEncoding(); quote = CSSUtil.detectQuote(enc, quote); - str = quote + ((enc != null) ? enc : "") + quote;//$NON-NLS-1$ + str = quote + ((enc != null) ? enc : "") + quote + ";";//$NON-NLS-1$ //$NON-NLS-2$ appendSpaceBefore(node, str, source); source.append(str); } @@ -126,7 +125,7 @@ public class CharsetRuleFormatter extends DefaultCSSSourceFormatter { CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, region, stgy); CompoundRegion[] outside = getOutsideRegions(structuredDocument, region); for (int i = 0; i < regions.length; i++) { - if (i != 0 || needS(outside[0])) + if ((i != 0 || needS(outside[0])) && !regions[i].getType().equals(CSSRegionContexts.CSS_DELIMITER)) appendSpaceBefore(node, regions[i], source); source.append(decoratedIdentRegion(regions[i], stgy)); } @@ -148,18 +147,16 @@ public class CharsetRuleFormatter extends DefaultCSSSourceFormatter { ICSSAttr attr = (ICSSAttr) node.getAttributes().getNamedItem(ICSSCharsetRule.ENCODING); if (attr != null && ((IndexedRegion) attr).getEndOffset() > 0) return ((IndexedRegion) attr).getStartOffset(); - else { - IndexedRegion iNode = (IndexedRegion) node; - if (iNode.getEndOffset() <= 0) - return -1; - - CompoundRegion regions[] = getRegionsWithoutWhiteSpaces(node.getOwnerDocument().getModel().getStructuredDocument(), new FormatRegion(iNode.getStartOffset(), iNode.getEndOffset() - iNode.getStartOffset()), stgy); - for (int i = regions.length - 1; i >= 0; i--) { - if (regions[i].getType() != CSSRegionContexts.CSS_COMMENT) - return regions[i].getStartOffset(); - } - return iNode.getEndOffset(); + IndexedRegion iNode = (IndexedRegion) node; + if (iNode.getEndOffset() <= 0) + return -1; + + CompoundRegion regions[] = getRegionsWithoutWhiteSpaces(node.getOwnerDocument().getModel().getStructuredDocument(), new FormatRegion(iNode.getStartOffset(), iNode.getEndOffset() - iNode.getStartOffset()), stgy); + for (int i = regions.length - 1; i >= 0; i--) { + if (regions[i].getType() != CSSRegionContexts.CSS_COMMENT) + return regions[i].getStartOffset(); } + return iNode.getEndOffset(); } /** @@ -171,8 +168,7 @@ public class CharsetRuleFormatter extends DefaultCSSSourceFormatter { IStructuredDocumentRegion flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(n - 1); if (flatNode.getRegionAtCharacterOffset(n - 1).getType() == CSSRegionContexts.CSS_DELIMITER) return n - 1; - else - return n; + return n; } return -1; } diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/CounterFormatter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/CounterFormatter.java index dc013e4b5d..331dd1b0dd 100644 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/CounterFormatter.java +++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/CounterFormatter.java @@ -12,13 +12,15 @@ package org.eclipse.wst.css.core.internal.formatter; +import org.eclipse.core.runtime.Preferences; import org.eclipse.jface.text.IRegion; +import org.eclipse.wst.css.core.internal.CSSCorePlugin; import org.eclipse.wst.css.core.internal.cleanup.CSSCleanupStrategy; import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts; +import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames; import org.eclipse.wst.css.core.internal.provisional.document.ICSSAttr; import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; import org.eclipse.wst.css.core.internal.provisional.document.ICounter; -import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper; import org.eclipse.wst.css.core.internal.util.CSSUtil; import org.eclipse.wst.css.core.internal.util.RegionIterator; import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion; @@ -45,6 +47,8 @@ public class CounterFormatter extends DefaultCSSSourceFormatter { * */ public StringBuffer formatAttrChanged(ICSSNode node, ICSSAttr attr, boolean insert, AttrChangeContext context) { + Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences(); + StringBuffer source = new StringBuffer(); if (node == null || attr == null) return source; @@ -57,10 +61,8 @@ public class CounterFormatter extends DefaultCSSSourceFormatter { context.start = iNode.getStartOffset(); context.end = iNode.getEndOffset(); - CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance(); - ICounter counter = (ICounter) node; - String quote = mgr.getQuoteString(node.getOwnerDocument().getModel()); + String quote = preferences.getString(CSSCorePreferenceNames.FORMAT_QUOTE); String sep = counter.getSeparator(); String ident = counter.getIdentifier(); String style = counter.getListStyle(); @@ -88,7 +90,7 @@ public class CounterFormatter extends DefaultCSSSourceFormatter { sep = (sep == null || sep.length() == 0) ? null : (quote + sep + quote); String func = (sep == null || sep.length() == 0) ? "counter(" : "counters(";//$NON-NLS-2$//$NON-NLS-1$ - if (mgr.isPropValueUpperCase()) { + if (preferences.getInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.UPPER) { ident = ident.toUpperCase(); style = style.toUpperCase(); func = func.toUpperCase(); @@ -160,7 +162,8 @@ public class CounterFormatter extends DefaultCSSSourceFormatter { protected void formatPre(ICSSNode node, StringBuffer source) { int start = ((IndexedRegion) node).getStartOffset(); int end = ((IndexedRegion) node).getEndOffset(); - CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance(); + + Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences(); CSSCleanupStrategy stgy = getCleanupStrategy(node); if (end > 0) { // format source @@ -178,7 +181,7 @@ public class CounterFormatter extends DefaultCSSSourceFormatter { } else { // generate source ICounter counter = (ICounter) node; - String quote = mgr.getQuoteString(node.getOwnerDocument().getModel()); + String quote = preferences.getString(CSSCorePreferenceNames.FORMAT_QUOTE); String separator = counter.getSeparator(); quote = CSSUtil.detectQuote(separator, quote); String sep = (separator == null || separator.length() == 0) ? null : (quote + separator + quote); @@ -191,7 +194,7 @@ public class CounterFormatter extends DefaultCSSSourceFormatter { if (style == null) style = "";//$NON-NLS-1$ - if (mgr.isPropValueUpperCase()) { + if (preferences.getInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.UPPER) { ident = ident.toUpperCase(); style = style.toUpperCase(); func = func.toUpperCase(); diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/FontFaceRuleFormatter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/FontFaceRuleFormatter.java index 5a1437f4fc..65a67d3dbf 100644 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/FontFaceRuleFormatter.java +++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/FontFaceRuleFormatter.java @@ -13,9 +13,10 @@ package org.eclipse.wst.css.core.internal.formatter; import org.eclipse.jface.text.IRegion; +import org.eclipse.wst.css.core.internal.CSSCorePlugin; import org.eclipse.wst.css.core.internal.cleanup.CSSCleanupStrategy; +import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames; import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper; import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion; import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; @@ -53,9 +54,8 @@ public class FontFaceRuleFormatter extends DeclContainerFormatter { } } else { - CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance(); String str = FONT_FACE; - if (mgr.isIdentUpperCase()) + if (CSSCorePlugin.getDefault().getPluginPreferences().getInt(CSSCorePreferenceNames.CASE_IDENTIFIER) == CSSCorePreferenceNames.UPPER) str = FONT_FACE.toUpperCase(); source.append(str); appendSpaceBefore(node, "{", source);//$NON-NLS-1$ diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/FunctionFormatter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/FunctionFormatter.java index 691a7aded9..29499ba05f 100644 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/FunctionFormatter.java +++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/FunctionFormatter.java @@ -13,10 +13,11 @@ package org.eclipse.wst.css.core.internal.formatter; import org.eclipse.jface.text.IRegion; +import org.eclipse.wst.css.core.internal.CSSCorePlugin; import org.eclipse.wst.css.core.internal.cleanup.CSSCleanupStrategy; import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts; +import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames; import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper; import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion; import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; @@ -60,9 +61,8 @@ abstract public class FunctionFormatter extends AbstractCSSSourceFormatter { appendSpaceBefore(node, regions[i], source); source.append(decoratedRegion(regions[i], 2, stgy)); } - } - else if (prev != null && child != null) { // generate source between - // parameters + } else if (prev != null && child != null) { // generate source between + // parameters source.append(",");//$NON-NLS-1$ } appendSpaceBefore(node, toAppend, source); @@ -99,8 +99,7 @@ abstract public class FunctionFormatter extends AbstractCSSSourceFormatter { appendSpaceBefore(node, regions[i], source); source.append(decoratedRegion(regions[i], 2, stgy)); } - } - else { // generate source + } else { // generate source source.append(")");//$NON-NLS-1$ } } @@ -127,7 +126,7 @@ abstract public class FunctionFormatter extends AbstractCSSSourceFormatter { protected void formatPre(ICSSNode node, StringBuffer source) { int start = ((IndexedRegion) node).getStartOffset(); int end = (node.getFirstChild() != null && ((IndexedRegion) node.getFirstChild()).getEndOffset() > 0) ? ((IndexedRegion) node.getFirstChild()).getStartOffset() : getChildInsertPos(node); - CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance(); + if (end > 0) { // format source CSSCleanupStrategy stgy = getCleanupStrategy(node); @@ -138,10 +137,9 @@ abstract public class FunctionFormatter extends AbstractCSSSourceFormatter { appendSpaceBefore(node, regions[i], source); source.append(decoratedPropValueRegion(regions[i], stgy)); } - } - else { // generate source + } else { // generate source String func = getFunc(); - if (mgr.isPropValueUpperCase()) + if (CSSCorePlugin.getDefault().getPluginPreferences().getInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.UPPER) func = func.toUpperCase(); source.append(func); } @@ -174,8 +172,7 @@ abstract public class FunctionFormatter extends AbstractCSSSourceFormatter { IStructuredDocumentRegion flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(n - 1); if (flatNode.getRegionAtCharacterOffset(n - 1).getType() == CSSRegionContexts.CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE) return n - 1; - else - return n; + return n; } return -1; } diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/ImportRuleFormatter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/ImportRuleFormatter.java index 5326f58240..d5d3ef7849 100644 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/ImportRuleFormatter.java +++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/ImportRuleFormatter.java @@ -12,13 +12,15 @@ package org.eclipse.wst.css.core.internal.formatter; +import org.eclipse.core.runtime.Preferences; import org.eclipse.jface.text.IRegion; +import org.eclipse.wst.css.core.internal.CSSCorePlugin; import org.eclipse.wst.css.core.internal.cleanup.CSSCleanupStrategy; import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts; +import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames; import org.eclipse.wst.css.core.internal.provisional.document.ICSSAttr; import org.eclipse.wst.css.core.internal.provisional.document.ICSSImportRule; import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper; import org.eclipse.wst.css.core.internal.util.CSSUtil; import org.eclipse.wst.css.core.internal.util.RegionIterator; import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion; @@ -67,8 +69,7 @@ public class ImportRuleFormatter extends AbstractCSSSourceFormatter { else context.start = it.getStructuredDocumentRegion().getStartOffset(region); it.next(); - } - else + } else context.start = it.getStructuredDocumentRegion().getStartOffset(region); it.next(); it.next(); @@ -78,27 +79,23 @@ public class ImportRuleFormatter extends AbstractCSSSourceFormatter { context.end = it.getStructuredDocumentRegion().getEndOffset(next); else context.end = it.getStructuredDocumentRegion().getEndOffset(region); - } - else + } else context.end = it.getStructuredDocumentRegion().getEndOffset(region); - } - else { + } else { ICSSNode child = node.getFirstChild(); IStructuredDocumentRegion flatNode = null; ITextRegion region = null; if (child == null) { flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(((IndexedRegion) node).getEndOffset() - 1); region = flatNode.getRegionAtCharacterOffset(((IndexedRegion) node).getEndOffset() - 1); - } - else { + } else { flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(((IndexedRegion) child).getStartOffset() - 1); region = flatNode.getRegionAtCharacterOffset(((IndexedRegion) child).getStartOffset() - 1); } if (region.getType() == CSSRegionContexts.CSS_S) { context.start = flatNode.getStartOffset(region); context.end = flatNode.getEndOffset(region); - } - else { + } else { context.start = flatNode.getEndOffset(); context.end = flatNode.getEndOffset(); } @@ -139,17 +136,15 @@ public class ImportRuleFormatter extends AbstractCSSSourceFormatter { for (int i = 0; i < regions.length; i++) { appendSpaceBefore(node, regions[i], source); source.append(decoratedRegion(regions[i], 0, stgy)); // must - // be - // comments + // be + // comments } appendSpaceBefore(node, toAppend, source); - } - else if (prev != null && child != null) { // generate source : ???? + } else if (prev != null && child != null) { // generate source : ???? source.append(",");//$NON-NLS-1$ appendSpaceBefore(node, toAppend, source); - } - else if (child != null) { // generate source : between 'url()' and - // media types + } else if (child != null) { // generate source : between 'url()' and + // media types appendSpaceBefore(node, toAppend, source); } } @@ -167,7 +162,7 @@ public class ImportRuleFormatter extends AbstractCSSSourceFormatter { if (i != 0 || needS(outside[0])) appendSpaceBefore(node, regions[i], source); source.append(decoratedRegion(regions[i], 0, stgy)); // must be - // comments + // comments } if (needS(outside[1])) { if (((IndexedRegion) child).getStartOffset() == region.getOffset() + region.getLength()) @@ -192,6 +187,8 @@ public class ImportRuleFormatter extends AbstractCSSSourceFormatter { appendDelimBefore(node, regions[i], source); source.append(decoratedRegion(regions[i], 0, stgy)); } + } else { + source.append(";"); //$NON-NLS-1$ } } @@ -205,7 +202,7 @@ public class ImportRuleFormatter extends AbstractCSSSourceFormatter { CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, region, stgy); CompoundRegion[] outside = getOutsideRegions(structuredDocument, region); for (int i = 0; i < regions.length; i++) { - if (i != 0 || needS(outside[0])) + if ((i != 0 || needS(outside[0])) && !regions[i].getType().equals(CSSRegionContexts.CSS_DELIMITER)) appendDelimBefore(node, regions[i], source); source.append(decoratedRegion(regions[i], 0, stgy)); } @@ -217,7 +214,7 @@ public class ImportRuleFormatter extends AbstractCSSSourceFormatter { protected void formatPre(ICSSNode node, StringBuffer source) { int start = ((IndexedRegion) node).getStartOffset(); int end = (node.getFirstChild() != null && ((IndexedRegion) node.getFirstChild()).getEndOffset() > 0) ? ((IndexedRegion) node.getFirstChild()).getStartOffset() : getChildInsertPos(node); - CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance(); + if (end > 0) { // format source CSSCleanupStrategy stgy = getCleanupStrategy(node); @@ -233,15 +230,16 @@ public class ImportRuleFormatter extends AbstractCSSSourceFormatter { appendSpaceBefore(node, regions[i], source); source.append(str); } - } - else { // generate source + } else { // generate source + Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences(); + String str = IMPORT; - if (mgr.isIdentUpperCase()) + if (preferences.getInt(CSSCorePreferenceNames.CASE_IDENTIFIER) == CSSCorePreferenceNames.UPPER) str = IMPORT.toUpperCase(); - String quote = mgr.getQuoteString(node.getOwnerDocument().getModel()); + String quote = preferences.getString(CSSCorePreferenceNames.FORMAT_QUOTE); source.append(str); str = "url(";//$NON-NLS-1$ - if (mgr.isPropValueUpperCase()) + if (preferences.getInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.UPPER) str = str.toUpperCase(); String href = ((ICSSImportRule) node).getHref(); quote = CSSUtil.detectQuote(href, quote); @@ -291,32 +289,29 @@ public class ImportRuleFormatter extends AbstractCSSSourceFormatter { ICSSAttr attr = (ICSSAttr) node.getAttributes().getNamedItem(ICSSImportRule.HREF); if (attr != null && ((IndexedRegion) attr).getEndOffset() > 0) return ((IndexedRegion) attr).getStartOffset(); - else { - IndexedRegion iNode = (IndexedRegion) node; - if (iNode.getEndOffset() <= 0) - return -1; + IndexedRegion iNode = (IndexedRegion) node; + if (iNode.getEndOffset() <= 0) + return -1; - FormatRegion formatRegion = null; - ICSSNode child = node.getFirstChild(); - if (child != null && ((IndexedRegion) child).getEndOffset() > 0) - formatRegion = new FormatRegion(iNode.getStartOffset(), ((IndexedRegion) child).getStartOffset() - iNode.getStartOffset()); - else - formatRegion = new FormatRegion(iNode.getStartOffset(), iNode.getEndOffset() - iNode.getStartOffset()); - CompoundRegion regions[] = getRegionsWithoutWhiteSpaces(node.getOwnerDocument().getModel().getStructuredDocument(), formatRegion, getCleanupStrategy(node)); + FormatRegion formatRegion = null; + ICSSNode child = node.getFirstChild(); + if (child != null && ((IndexedRegion) child).getEndOffset() > 0) + formatRegion = new FormatRegion(iNode.getStartOffset(), ((IndexedRegion) child).getStartOffset() - iNode.getStartOffset()); + else + formatRegion = new FormatRegion(iNode.getStartOffset(), iNode.getEndOffset() - iNode.getStartOffset()); + CompoundRegion regions[] = getRegionsWithoutWhiteSpaces(node.getOwnerDocument().getModel().getStructuredDocument(), formatRegion, getCleanupStrategy(node)); - boolean atrule = false; - for (int i = 0; i < regions.length; i++) { - if (regions[i].getType() == CSSRegionContexts.CSS_IMPORT) { - atrule = true; - continue; - } - else if (!atrule) - continue; - if (regions[i].getType() != CSSRegionContexts.CSS_COMMENT) - return regions[i].getStartOffset(); - } - return (child != null && ((IndexedRegion) child).getEndOffset() > 0) ? ((IndexedRegion) child).getStartOffset() : iNode.getEndOffset(); + boolean atrule = false; + for (int i = 0; i < regions.length; i++) { + if (regions[i].getType() == CSSRegionContexts.CSS_IMPORT) { + atrule = true; + continue; + } else if (!atrule) + continue; + if (regions[i].getType() != CSSRegionContexts.CSS_COMMENT) + return regions[i].getStartOffset(); } + return (child != null && ((IndexedRegion) child).getEndOffset() > 0) ? ((IndexedRegion) child).getStartOffset() : iNode.getEndOffset(); } /** @@ -328,8 +323,7 @@ public class ImportRuleFormatter extends AbstractCSSSourceFormatter { IStructuredDocumentRegion flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(n - 1); if (flatNode.getRegionAtCharacterOffset(n - 1).getType() == CSSRegionContexts.CSS_DELIMITER) return n - 1; - else - return n; + return n; } return -1; } diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/MediaListFormatter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/MediaListFormatter.java index 98f1e05085..fa526f224c 100644 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/MediaListFormatter.java +++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/MediaListFormatter.java @@ -13,11 +13,12 @@ package org.eclipse.wst.css.core.internal.formatter; import org.eclipse.jface.text.IRegion; +import org.eclipse.wst.css.core.internal.CSSCorePlugin; import org.eclipse.wst.css.core.internal.cleanup.CSSCleanupStrategy; import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts; +import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames; import org.eclipse.wst.css.core.internal.provisional.document.ICSSAttr; import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper; import org.eclipse.wst.css.core.internal.util.RegionIterator; import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion; import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; @@ -82,8 +83,7 @@ public class MediaListFormatter extends DefaultCSSSourceFormatter { context.end = ((IndexedRegion) node).getEndOffset(); last = true; } - } - else { + } else { last = true; IStructuredDocumentRegion flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(((IndexedRegion) node).getEndOffset() - 1); ITextRegion region = flatNode.getRegionAtCharacterOffset(((IndexedRegion) node).getEndOffset() - 1); @@ -113,8 +113,7 @@ public class MediaListFormatter extends DefaultCSSSourceFormatter { buf.append(","); //$NON-NLS-1$ appendSpaceBefore(node, "", buf); //$NON-NLS-1$ } - } - else if (!first && !last) { + } else if (!first && !last) { buf.append(","); //$NON-NLS-1$ appendSpaceBefore(node, "", buf); //$NON-NLS-1$ } @@ -129,7 +128,7 @@ public class MediaListFormatter extends DefaultCSSSourceFormatter { int start = ((IndexedRegion) node).getStartOffset(); int end = ((IndexedRegion) node).getEndOffset(); - CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance(); + if (end > 0) { // format source IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, new FormatRegion(start, end - start), stgy); @@ -138,13 +137,12 @@ public class MediaListFormatter extends DefaultCSSSourceFormatter { appendSpaceBefore(node, regions[i], source); source.append(decoratedIdentRegion(regions[i], stgy)); } - } - else { // generate source + } else { // generate source MediaList list = (MediaList) node; int n = list.getLength(); for (int i = 0; i < n; i++) { String medium = list.item(i); - if (mgr.isIdentUpperCase()) + if (CSSCorePlugin.getDefault().getPluginPreferences().getInt(CSSCorePreferenceNames.CASE_IDENTIFIER) == CSSCorePreferenceNames.UPPER) medium = medium.toUpperCase(); else medium = medium.toLowerCase(); @@ -187,22 +185,19 @@ public class MediaListFormatter extends DefaultCSSSourceFormatter { if (attr != null && ((IndexedRegion) attr).getEndOffset() > 0) return ((IndexedRegion) attr).getStartOffset(); - else { - IndexedRegion iNode = (IndexedRegion) node; - if (iNode.getEndOffset() <= 0) - return -1; - - /* - * ITextRegion regions[] = - * getRegionsWithoutWhiteSpaces(node.getOwnerDocument().getModel().getStructuredDocument(), - * new FormatRegion(iNode.getStartOffset(), iNode.getEndOffset() - - * iNode.getStartOffset() + 1)); for(int i=regions.length - 1; i >= - * 0; i--) { if (regions[i].getType() == - * CSSRegionContexts.IMPORTANT_SYM) return - * regions[i].getStartOffset(); } - */ - return iNode.getEndOffset(); - } + IndexedRegion iNode = (IndexedRegion) node; + if (iNode.getEndOffset() <= 0) + return -1; + + /* + * ITextRegion regions[] = + * getRegionsWithoutWhiteSpaces(node.getOwnerDocument().getModel().getStructuredDocument(), + * new FormatRegion(iNode.getStartOffset(), iNode.getEndOffset() - + * iNode.getStartOffset() + 1)); for(int i=regions.length - 1; i >= 0; + * i--) { if (regions[i].getType() == CSSRegionContexts.IMPORTANT_SYM) + * return regions[i].getStartOffset(); } + */ + return iNode.getEndOffset(); } /** diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/MediaRuleFormatter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/MediaRuleFormatter.java index 8fe50bbcc7..b7525322bf 100644 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/MediaRuleFormatter.java +++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/MediaRuleFormatter.java @@ -13,10 +13,11 @@ package org.eclipse.wst.css.core.internal.formatter; import org.eclipse.jface.text.IRegion; +import org.eclipse.wst.css.core.internal.CSSCorePlugin; import org.eclipse.wst.css.core.internal.cleanup.CSSCleanupStrategy; import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts; +import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames; import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper; import org.eclipse.wst.css.core.internal.util.RegionIterator; import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion; import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; @@ -63,71 +64,65 @@ public class MediaRuleFormatter extends AbstractCSSSourceFormatter { } // extract source if (child != null && child.getNodeType() == ICSSNode.MEDIALIST_NODE) { // between - // "@media" - // and - // mediatype + // "@media" + // and + // mediatype for (int i = 0; i < regions.length; i++) { appendSpaceBefore(node, regions[i], source); source.append(decoratedRegion(regions[i], 0, stgy)); // must - // be - // comments + // be + // comments } appendSpaceBefore(node, toAppend, source); - } - else if (child != null && (child.getPreviousSibling() == null || child.getPreviousSibling().getNodeType() == ICSSNode.MEDIALIST_NODE)) { // between - // mediatype - // and - // the - // first - // style - // rule + } else if (child != null && (child.getPreviousSibling() == null || child.getPreviousSibling().getNodeType() == ICSSNode.MEDIALIST_NODE)) { // between + // mediatype + // and + // the + // first + // style + // rule for (int i = 0; i < regions.length; i++) { appendSpaceBefore(node, regions[i], source); source.append(decoratedRegion(regions[i], 0, stgy)); // must - // be - // comments + // be + // comments } appendDelimBefore(node, null, source); - } - else { // between styles + } else { // between styles for (int i = 0; i < regions.length; i++) { appendDelimBefore(node, regions[i], source); source.append(decoratedRegion(regions[i], 0, stgy)); // must - // be - // comments + // be + // comments } appendDelimBefore(node, null, source); } - } - else { // source generation + } else { // source generation if (child == null && prev != null && prev.getNodeType() != ICSSNode.MEDIALIST_NODE) { // after - // the - // last - // style - // rule + // the + // last + // style + // rule appendDelimBefore(node.getParentNode(), null, source); - } - else if (child != null && child.getNodeType() == ICSSNode.MEDIALIST_NODE) { // between - // "@media" - // and - // mediatype + } else if (child != null && child.getNodeType() == ICSSNode.MEDIALIST_NODE) { // between + // "@media" + // and + // mediatype appendSpaceBefore(node, toAppend, source); - } - else if (prev != null && prev.getNodeType() == ICSSNode.MEDIALIST_NODE) { // between - // mediatype - // and - // the - // first - // style - // rule + } else if (prev != null && prev.getNodeType() == ICSSNode.MEDIALIST_NODE) { // between + // mediatype + // and + // the + // first + // style + // rule appendSpaceBefore(node, "{", source);//$NON-NLS-1$ source.append("{");//$NON-NLS-1$ if (child != null) appendDelimBefore(node, null, source); else appendDelimBefore(node.getParentNode(), null, source); - } - else { // normal case + } else { // normal case appendDelimBefore(node, null, source); } } @@ -144,45 +139,43 @@ public class MediaRuleFormatter extends AbstractCSSSourceFormatter { CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, region, stgy); CompoundRegion[] outside = getOutsideRegions(structuredDocument, region); if (child != null && child.getNodeType() == ICSSNode.MEDIALIST_NODE) { // between - // "@media" - // and - // mediatype + // "@media" + // and + // mediatype for (int i = 0; i < regions.length; i++) { if (i != 0 || needS(outside[0])) appendSpaceBefore(node, regions[i], source); source.append(decoratedRegion(regions[i], 0, stgy)); // must - // be - // comments + // be + // comments } if (needS(outside[1]) && ((IndexedRegion) child).getStartOffset() == region.getOffset() + region.getLength()) { appendSpaceBefore(node, toAppend, source); } - } - else if (child != null && (child.getPreviousSibling() == null || child.getPreviousSibling().getNodeType() == ICSSNode.MEDIALIST_NODE)) { // between - // mediatype - // and - // the - // first - // style - // rule + } else if (child != null && (child.getPreviousSibling() == null || child.getPreviousSibling().getNodeType() == ICSSNode.MEDIALIST_NODE)) { // between + // mediatype + // and + // the + // first + // style + // rule for (int i = 0; i < regions.length; i++) { if (i != 0 || needS(outside[0])) appendSpaceBefore(node, regions[i], source); source.append(decoratedRegion(regions[i], 0, stgy)); // must - // be - // comments + // be + // comments } if (needS(outside[1]) && ((IndexedRegion) child).getStartOffset() == region.getOffset() + region.getLength()) { appendDelimBefore(node, null, source); } - } - else { // between styles + } else { // between styles for (int i = 0; i < regions.length; i++) { if (i != 0 || needS(outside[0])) appendDelimBefore(node, regions[i], source); source.append(decoratedRegion(regions[i], 0, stgy)); // must - // be - // comments + // be + // comments } if (needS(outside[1]) && ((IndexedRegion) child).getStartOffset() == region.getOffset() + region.getLength()) { appendDelimBefore(node, null, source); @@ -206,8 +199,7 @@ public class MediaRuleFormatter extends AbstractCSSSourceFormatter { appendDelimBefore(node, regions[i], source); source.append(decoratedRegion(regions[i], 0, stgy)); } - } - else { + } else { boolean bInCurlyBrace = false; for (int i = 0; i < regions.length; i++) { if (!bInCurlyBrace) @@ -219,8 +211,7 @@ public class MediaRuleFormatter extends AbstractCSSSourceFormatter { bInCurlyBrace = true; } } - } - else { // source generation + } else { // source generation String delim = getLineDelimiter(node); if (node.getLastChild() != null && node.getLastChild().getNodeType() == ICSSNode.MEDIALIST_NODE) { appendSpaceBefore(node, "{", source);//$NON-NLS-1$ @@ -255,7 +246,7 @@ public class MediaRuleFormatter extends AbstractCSSSourceFormatter { protected void formatPre(ICSSNode node, StringBuffer source) { int start = ((IndexedRegion) node).getStartOffset(); int end = (node.getFirstChild() != null && ((IndexedRegion) node.getFirstChild()).getEndOffset() > 0) ? ((IndexedRegion) node.getFirstChild()).getStartOffset() : getChildInsertPos(node); - CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance(); + if (end > 0) { // source formatting CSSCleanupStrategy stgy = getCleanupStrategy(node); @@ -266,10 +257,9 @@ public class MediaRuleFormatter extends AbstractCSSSourceFormatter { appendSpaceBefore(node, regions[i], source); source.append(decoratedIdentRegion(regions[i], stgy)); } - } - else { // source generation + } else { // source generation String str = MEDIA; - if (mgr.isIdentUpperCase()) + if (CSSCorePlugin.getDefault().getPluginPreferences().getInt(CSSCorePreferenceNames.CASE_IDENTIFIER) == CSSCorePreferenceNames.UPPER) str = MEDIA.toUpperCase(); source.append(str); } @@ -306,8 +296,7 @@ public class MediaRuleFormatter extends AbstractCSSSourceFormatter { IStructuredDocumentRegion flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(n - 1); if (flatNode.getRegionAtCharacterOffset(n - 1).getType() == CSSRegionContexts.CSS_LBRACE) return n - 1; - else - return n; + return n; } return -1; } @@ -337,9 +326,9 @@ public class MediaRuleFormatter extends AbstractCSSSourceFormatter { return 0; if (node.getFirstChild().getNextSibling() == node.getLastChild()) { // inserted - // first - // style - // rule + // first + // style + // rule IStructuredDocumentRegion flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(insertPos); if (flatNode == null) return 0; @@ -377,9 +366,9 @@ public class MediaRuleFormatter extends AbstractCSSSourceFormatter { return 0; if (node.getFirstChild().getNextSibling() == node.getLastChild()) { // inserted - // first - // style - // rule + // first + // style + // rule int pos = ((IndexedRegion) node.getFirstChild()).getEndOffset(); if (pos <= 0) pos = ((IndexedRegion) node).getStartOffset() + 6 /* diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/PageRuleFormatter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/PageRuleFormatter.java index be7c72e778..63de94e368 100644 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/PageRuleFormatter.java +++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/PageRuleFormatter.java @@ -13,12 +13,13 @@ package org.eclipse.wst.css.core.internal.formatter; import org.eclipse.jface.text.IRegion; +import org.eclipse.wst.css.core.internal.CSSCorePlugin; import org.eclipse.wst.css.core.internal.cleanup.CSSCleanupStrategy; import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts; +import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames; import org.eclipse.wst.css.core.internal.provisional.document.ICSSAttr; import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; import org.eclipse.wst.css.core.internal.provisional.document.ICSSPageRule; -import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper; import org.eclipse.wst.css.core.internal.util.RegionIterator; import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion; import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; @@ -105,7 +106,7 @@ public class PageRuleFormatter extends DeclContainerFormatter { int start = ((IndexedRegion) node).getStartOffset(); int end = (node.getFirstChild() != null && ((IndexedRegion) node.getFirstChild()).getEndOffset() > 0) ? ((IndexedRegion) node.getFirstChild()).getStartOffset() : getChildInsertPos(node); - CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance(); + if (end > 0) { // format source IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, new FormatRegion(start, end - start), stgy); @@ -117,7 +118,7 @@ public class PageRuleFormatter extends DeclContainerFormatter { } else { // generate source String str = PAGE; - if (mgr.isIdentUpperCase()) + if (CSSCorePlugin.getDefault().getPluginPreferences().getInt(CSSCorePreferenceNames.CASE_IDENTIFIER) == CSSCorePreferenceNames.UPPER) str = PAGE.toUpperCase(); source.append(str); str = ((ICSSPageRule) node).getSelectorText(); diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/PrimitiveValueFormatter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/PrimitiveValueFormatter.java index 1957e78c25..1855e9d0c4 100644 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/PrimitiveValueFormatter.java +++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/PrimitiveValueFormatter.java @@ -12,14 +12,16 @@ package org.eclipse.wst.css.core.internal.formatter; +import org.eclipse.core.runtime.Preferences; import org.eclipse.jface.text.IRegion; +import org.eclipse.wst.css.core.internal.CSSCorePlugin; import org.eclipse.wst.css.core.internal.cleanup.CSSCleanupStrategy; import org.eclipse.wst.css.core.internal.contentmodel.PropCMProperty; import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts; +import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames; import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; import org.eclipse.wst.css.core.internal.provisional.document.ICSSPrimitiveValue; import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleDeclItem; -import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper; import org.eclipse.wst.css.core.internal.util.CSSUtil; import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion; import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; @@ -46,14 +48,14 @@ public class PrimitiveValueFormatter extends DefaultCSSSourceFormatter { protected void formatPre(ICSSNode node, StringBuffer source) { int start = ((IndexedRegion) node).getStartOffset(); int end = ((IndexedRegion) node).getEndOffset(); - CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance(); + Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences(); CSSCleanupStrategy stgy = getCleanupStrategy(node); if (end > 0) { // format source IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, new FormatRegion(start, end - start), stgy); boolean appendQuote = regions.length > 1 && node.getParentNode() instanceof ICSSStyleDeclItem && isCleanup() && getCleanupStrategy(node).isQuoteValues() && (((ICSSStyleDeclItem) node.getParentNode()).getPropertyName().equals(PropCMProperty.P_FONT) || ((ICSSStyleDeclItem) node.getParentNode()).getPropertyName().equals(PropCMProperty.P_FONT_FAMILY) || ((ICSSStyleDeclItem) node.getParentNode()).getPropertyName().equals(PropCMProperty.P_VOICE_FAMILY)); - String quote = mgr.getQuoteString(node.getOwnerDocument().getModel()); + String quote = preferences.getString(CSSCorePreferenceNames.FORMAT_QUOTE); StringBuffer strBuf = new StringBuffer(); boolean skipSpace = false; @@ -82,7 +84,7 @@ public class PrimitiveValueFormatter extends DefaultCSSSourceFormatter { else { // generate source ICSSPrimitiveValue value = (ICSSPrimitiveValue) node; short type = value.getPrimitiveType(); - String quote = mgr.getQuoteString(node.getOwnerDocument().getModel()); + String quote = preferences.getString(CSSCorePreferenceNames.FORMAT_QUOTE); String str = null; switch (type) { @@ -117,7 +119,7 @@ public class PrimitiveValueFormatter extends DefaultCSSSourceFormatter { case ICSSPrimitiveValue.CSS_INHERIT_PRIMITIVE : str = value.getStringValue(); if (str != null) { - if (mgr.isPropValueUpperCase()) + if (preferences.getInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.UPPER) str = str.toUpperCase(); else str.toLowerCase(); @@ -227,7 +229,7 @@ public class PrimitiveValueFormatter extends DefaultCSSSourceFormatter { postStr = quote + ")";//$NON-NLS-1$ break; } - if (mgr.isPropValueUpperCase()) { + if (preferences.getInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.UPPER) { if (preStr != null) preStr = preStr.toUpperCase(); if (postStr != null) diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/StyleDeclItemFormatter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/StyleDeclItemFormatter.java index 5c11484dd0..5d62b29aad 100644 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/StyleDeclItemFormatter.java +++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/StyleDeclItemFormatter.java @@ -12,14 +12,16 @@ package org.eclipse.wst.css.core.internal.formatter; +import org.eclipse.core.runtime.Preferences; import org.eclipse.jface.text.IRegion; +import org.eclipse.wst.css.core.internal.CSSCorePlugin; import org.eclipse.wst.css.core.internal.cleanup.CSSCleanupStrategy; import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts; +import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames; import org.eclipse.wst.css.core.internal.provisional.document.ICSSAttr; import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; import org.eclipse.wst.css.core.internal.provisional.document.ICSSPrimitiveValue; import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleDeclItem; -import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper; import org.eclipse.wst.css.core.internal.util.RegionIterator; import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion; import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; @@ -45,16 +47,16 @@ public class StyleDeclItemFormatter extends DefaultCSSSourceFormatter { * */ private void appendAfterColonSpace(ICSSNode node, StringBuffer source) { - CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance(); - int n = mgr.getSpacesPostDelimiter(); + Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences(); + int n = preferences.getInt(CSSCorePreferenceNames.FORMAT_PROP_POST_DELIM); - if (mgr.getMaxLineWidth() > 0 && (!mgr.isProhibitWrapOnAttr() || node.getOwnerDocument().getNodeType() != ICSSNode.STYLEDECLARATION_NODE)) { + if (preferences.getInt(CSSCorePreferenceNames.LINE_WIDTH) > 0 && (!preferences.getBoolean(CSSCorePreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR) || node.getOwnerDocument().getNodeType() != ICSSNode.STYLEDECLARATION_NODE)) { int length = getLastLineLength(node, source); int append = getFirstChildRegionLength(node); - if (length + n + append > mgr.getMaxLineWidth()) { + if (length + n + append > preferences.getInt(CSSCorePreferenceNames.LINE_WIDTH)) { source.append(getLineDelimiter(node)); source.append(getIndent(node)); - source.append(mgr.getIndentString()); + source.append(getIndentString()); n = 0; // no space is necessary } } @@ -104,19 +106,16 @@ public class StyleDeclItemFormatter extends DefaultCSSSourceFormatter { context.start = it.getStructuredDocumentRegion().getStartOffset(prev); else context.start = it.getStructuredDocumentRegion().getStartOffset(region); - } - else + } else context.start = it.getStructuredDocumentRegion().getStartOffset(region); context.end = it.getStructuredDocumentRegion().getEndOffset(region); - } - else { + } else { IStructuredDocumentRegion flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(((IndexedRegion) node).getEndOffset() - 1); ITextRegion region = flatNode.getRegionAtCharacterOffset(((IndexedRegion) node).getEndOffset() - 1); if (region.getType() == CSSRegionContexts.CSS_S) { context.start = flatNode.getStartOffset(region); context.end = flatNode.getEndOffset(region); - } - else { + } else { context.start = flatNode.getEndOffset(); context.end = flatNode.getEndOffset(); } @@ -152,8 +151,8 @@ public class StyleDeclItemFormatter extends DefaultCSSSourceFormatter { for (int i = 0; i < regions.length; i++) { appendSpaceBefore(node, regions[i], source); source.append(decoratedRegion(regions[i], 2, stgy)); // must - // be - // comments + // be + // comments } } if (child != null && child instanceof ICSSPrimitiveValue) { @@ -179,7 +178,7 @@ public class StyleDeclItemFormatter extends DefaultCSSSourceFormatter { if (i != 0 || needS(outside[0])) appendSpaceBefore(node, regions[i], source); source.append(decoratedRegion(regions[i], 2, stgy)); // must be - // comments + // comments } if (needS(outside[1])) { if (((IndexedRegion) child).getStartOffset() == region.getOffset() + region.getLength()) { @@ -204,18 +203,10 @@ public class StyleDeclItemFormatter extends DefaultCSSSourceFormatter { appendSpaceBefore(node, regions[i], source); source.append(decoratedIdentRegion(regions[i], stgy)); } - } - else { // generate source + } else { // generate source // append "!important" String priority = ((ICSSStyleDeclItem) node).getPriority(); if (priority != null && priority.length() > 0) { - CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance(); - if (!mgr.isPreserveCase()) { - if (mgr.isIdentUpperCase()) - priority = priority.toUpperCase(); - else - priority = priority.toLowerCase(); - } appendSpaceBefore(node, priority, source); source.append(priority); } @@ -244,7 +235,7 @@ public class StyleDeclItemFormatter extends DefaultCSSSourceFormatter { protected void formatPre(ICSSNode node, StringBuffer source) { int start = ((IndexedRegion) node).getStartOffset(); int end = (node.getFirstChild() != null && ((IndexedRegion) node.getFirstChild()).getEndOffset() > 0) ? ((IndexedRegion) node.getFirstChild()).getStartOffset() : getChildInsertPos(node); - CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance(); + Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences(); if (end > 0) { // format source CSSCleanupStrategy stgy = getCleanupStrategy(node); @@ -255,22 +246,21 @@ public class StyleDeclItemFormatter extends DefaultCSSSourceFormatter { appendSpaceBefore(node, regions[i], source); source.append(decoratedPropNameRegion(regions[i], stgy)); } - } - else { // generatoe source + } else { // generatoe source ICSSStyleDeclItem item = (ICSSStyleDeclItem) node; - if (mgr.isPropNameUpperCase()) + if (preferences.getInt(CSSCorePreferenceNames.CASE_PROPERTY_NAME) == CSSCorePreferenceNames.UPPER) source.append(item.getPropertyName().toUpperCase()); else source.append(item.getPropertyName()); - int k = mgr.getSpacesPreDelimiter(); - if (mgr.getMaxLineWidth() > 0 && (!mgr.isProhibitWrapOnAttr() || node.getOwnerDocument().getNodeType() != ICSSNode.STYLEDECLARATION_NODE)) { + int k = preferences.getInt(CSSCorePreferenceNames.FORMAT_PROP_PRE_DELIM); + if (preferences.getInt(CSSCorePreferenceNames.LINE_WIDTH) > 0 && (!preferences.getBoolean(CSSCorePreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR) || node.getOwnerDocument().getNodeType() != ICSSNode.STYLEDECLARATION_NODE)) { int length = getLastLineLength(node, source); int append = 1; - if (length + k + append > mgr.getMaxLineWidth()) { + if (length + k + append > preferences.getInt(CSSCorePreferenceNames.LINE_WIDTH)) { source.append(getLineDelimiter(node)); source.append(getIndent(node)); - source.append(mgr.getIndentString()); + source.append(getIndentString()); k = 0; // no space is necessary } } @@ -301,8 +291,7 @@ public class StyleDeclItemFormatter extends DefaultCSSSourceFormatter { if (needS(outside[1])) { if (isIncludesPreEnd(node, region) && (!isCleanup() || getCleanupStrategy(node).isFormatSource())) { appendAfterColonSpace(node, source); - } - else + } else appendSpaceBefore(node, outside[1], source); } } @@ -330,18 +319,16 @@ public class StyleDeclItemFormatter extends DefaultCSSSourceFormatter { ICSSAttr attr = (ICSSAttr) node.getAttributes().getNamedItem(ICSSStyleDeclItem.IMPORTANT); if (attr != null && ((IndexedRegion) attr).getEndOffset() > 0) return ((IndexedRegion) attr).getStartOffset(); - else { - IndexedRegion iNode = (IndexedRegion) node; - if (iNode.getEndOffset() <= 0) - return -1; - - CompoundRegion regions[] = getRegionsWithoutWhiteSpaces(node.getOwnerDocument().getModel().getStructuredDocument(), new FormatRegion(iNode.getStartOffset(), iNode.getEndOffset() - iNode.getStartOffset()), getCleanupStrategy(node)); - for (int i = regions.length - 1; i >= 0; i--) { - if (regions[i].getType() == CSSRegionContexts.CSS_DECLARATION_VALUE_IMPORTANT) - return regions[i].getStartOffset(); - } - return iNode.getEndOffset(); + IndexedRegion iNode = (IndexedRegion) node; + if (iNode.getEndOffset() <= 0) + return -1; + + CompoundRegion regions[] = getRegionsWithoutWhiteSpaces(node.getOwnerDocument().getModel().getStructuredDocument(), new FormatRegion(iNode.getStartOffset(), iNode.getEndOffset() - iNode.getStartOffset()), getCleanupStrategy(node)); + for (int i = regions.length - 1; i >= 0; i--) { + if (regions[i].getType() == CSSRegionContexts.CSS_DECLARATION_VALUE_IMPORTANT) + return regions[i].getStartOffset(); } + return iNode.getEndOffset(); } /** @@ -379,8 +366,7 @@ public class StyleDeclItemFormatter extends DefaultCSSSourceFormatter { return n; } - else - return -1; + return -1; } /** @@ -391,4 +377,23 @@ public class StyleDeclItemFormatter extends DefaultCSSSourceFormatter { instance = new StyleDeclItemFormatter(); return instance; } + + private String getIndentString() { + String indent = ""; //$NON-NLS-1$ + + Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences(); + if (preferences != null) { + String indentChar = " "; //$NON-NLS-1$ + String indentCharPref = preferences.getString(CSSCorePreferenceNames.INDENTATION_CHAR); + if (CSSCorePreferenceNames.TAB.equals(indentCharPref)) { + indentChar = "\t"; //$NON-NLS-1$ + } + int indentationWidth = preferences.getInt(CSSCorePreferenceNames.INDENTATION_SIZE); + + for (int i = 0; i < indentationWidth; i++) { + indent += indentChar; + } + } + return indent; + } }
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/StyleDeclarationFormatter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/StyleDeclarationFormatter.java index e5a962adde..ad06635a9f 100644 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/StyleDeclarationFormatter.java +++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/StyleDeclarationFormatter.java @@ -12,11 +12,13 @@ package org.eclipse.wst.css.core.internal.formatter; +import org.eclipse.core.runtime.Preferences; import org.eclipse.jface.text.IRegion; +import org.eclipse.wst.css.core.internal.CSSCorePlugin; import org.eclipse.wst.css.core.internal.cleanup.CSSCleanupStrategy; import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts; +import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames; import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper; import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion; import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; @@ -51,7 +53,6 @@ public class StyleDeclarationFormatter extends DefaultCSSSourceFormatter { if (child == null && prev == null) return; - CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance(); if (start > 0 && start < end) { // format source IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); // get meaning regions @@ -68,23 +69,20 @@ public class StyleDeclarationFormatter extends DefaultCSSSourceFormatter { for (int i = 0; i < regions.length; i++) { appendSpaceBefore(node, regions[i], source); source.append(decoratedRegion(regions[i], 0, stgy)); // must - // be - // comments + // be + // comments } - } - else if (prev != null && child != null) { // generate source : - // between two - // declarations + } else if (prev != null && child != null) { // generate source : + // between two + // declarations source.append(";");//$NON-NLS-1$ - } - else if (prev == null) { // generate source : before the first - // declaration + } else if (prev == null) { // generate source : before the first + // declaration org.eclipse.wst.css.core.internal.util.RegionIterator it = null; if (end > 0) { IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); it = new org.eclipse.wst.css.core.internal.util.RegionIterator(structuredDocument, end - 1); - } - else { + } else { int pos = getChildInsertPos(node); if (pos >= 0) { IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); @@ -105,15 +103,13 @@ public class StyleDeclarationFormatter extends DefaultCSSSourceFormatter { break; } } - } - else if (child == null) { // generate source : after the last - // declaration + } else if (child == null) { // generate source : after the last + // declaration org.eclipse.wst.css.core.internal.util.RegionIterator it = null; if (start > 0) { IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); it = new org.eclipse.wst.css.core.internal.util.RegionIterator(structuredDocument, start); - } - else { + } else { int pos = getChildInsertPos(node); if (pos >= 0) { IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); @@ -147,9 +143,10 @@ public class StyleDeclarationFormatter extends DefaultCSSSourceFormatter { } appendDelimBefore(node.getParentNode(), toAppendRegion, source); } - } - else if ((prev != null || ((IndexedRegion) node).getEndOffset() <= 0)) { - if (mgr.isOnePropertyPerLine() && (node.getOwnerDocument() != node || !mgr.isProhibitWrapOnAttr())) + } else if ((prev != null || ((IndexedRegion) node).getEndOffset() <= 0)) { + Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences(); + + if (preferences.getBoolean(CSSCorePreferenceNames.WRAPPING_ONE_PER_LINE) && (node.getOwnerDocument() != node || !preferences.getBoolean(CSSCorePreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR))) appendDelimBefore(node, null, source); else if (prev != null || node.getOwnerDocument() != node) appendSpaceBefore(node, toAppend, source); @@ -165,18 +162,18 @@ public class StyleDeclarationFormatter extends DefaultCSSSourceFormatter { IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, region, stgy); CompoundRegion[] outside = getOutsideRegions(structuredDocument, region); - CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance(); + for (int i = 0; i < regions.length; i++) { if (i != 0 || needS(outside[0])) appendSpaceBefore(node, regions[i], source); source.append(decoratedRegion(regions[i], 0, stgy)); // must be - // comments + // comments } + Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences(); if (needS(outside[1])) { - if (((IndexedRegion) child).getStartOffset() == region.getOffset() + region.getLength() && mgr.isOnePropertyPerLine() && (node.getOwnerDocument() != node || !mgr.isProhibitWrapOnAttr())) { + if (((IndexedRegion) child).getStartOffset() == region.getOffset() + region.getLength() && preferences.getBoolean(CSSCorePreferenceNames.WRAPPING_ONE_PER_LINE) && (node.getOwnerDocument() != node || !preferences.getBoolean(CSSCorePreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR))) { appendDelimBefore(node, null, source); - } - else + } else appendSpaceBefore(node, toAppend, source); } } @@ -192,8 +189,7 @@ public class StyleDeclarationFormatter extends DefaultCSSSourceFormatter { CSSSourceGenerator formatter = getParentFormatter(node); return (formatter != null) ? formatter.getChildInsertPos(node.getParentNode()) : -1; } - else - return pos; + return pos; } /** diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/StyleSheetFormatter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/StyleSheetFormatter.java index db02fa4598..5bc1984233 100644 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/StyleSheetFormatter.java +++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/StyleSheetFormatter.java @@ -83,8 +83,6 @@ public class StyleSheetFormatter extends AbstractCSSSourceFormatter { } else if (prev != null && child != null) { // source generation : // between two rules - if (prev.getNodeType() == ICSSNode.IMPORTRULE_NODE || prev.getNodeType() == ICSSNode.CHARSETRULE_NODE || prev.getNodeType() == ICSSNode.UNKNOWNRULE_NODE) - source.append(";");//$NON-NLS-1$ source.append(delim); source.append(delim); } @@ -103,8 +101,6 @@ public class StyleSheetFormatter extends AbstractCSSSourceFormatter { } else if (child == null) { // source formatting : after the last // rule - if (prev.getNodeType() == ICSSNode.IMPORTRULE_NODE || prev.getNodeType() == ICSSNode.CHARSETRULE_NODE || prev.getNodeType() == ICSSNode.UNKNOWNRULE_NODE) - source.append(";");//$NON-NLS-1$ if (start > 0 && start <= ((IndexedRegion) node).getEndOffset()) { appendDelimBefore(node, null, source); } @@ -116,11 +112,6 @@ public class StyleSheetFormatter extends AbstractCSSSourceFormatter { } } } - else if (prev != null && child == null) { // source generation : - // after the last rule - if (prev.getNodeType() == ICSSNode.IMPORTRULE_NODE || prev.getNodeType() == ICSSNode.CHARSETRULE_NODE || prev.getNodeType() == ICSSNode.UNKNOWNRULE_NODE) - source.append(";");//$NON-NLS-1$ - } } /** @@ -163,10 +154,6 @@ public class StyleSheetFormatter extends AbstractCSSSourceFormatter { appendDelimBefore(node, null, source); } else { // source generation - ICSSNode lastChild = node.getLastChild(); - if (lastChild != null && (lastChild.getNodeType() == ICSSNode.CHARSETRULE_NODE || lastChild.getNodeType() == ICSSNode.IMPORTRULE_NODE || lastChild.getNodeType() == ICSSNode.UNKNOWNRULE_NODE)) { - source.append(";");//$NON-NLS-1$ - } if (node.getOwnerDocument().getModel() != null && node.getOwnerDocument().getModel().getStyleSheetType() == ICSSModel.EMBEDDED) appendDelimBefore(node, null, source); return; // nothing diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/preferences/CSSCorePreferenceInitializer.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/preferences/CSSCorePreferenceInitializer.java new file mode 100644 index 0000000000..fc3997d99e --- /dev/null +++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/preferences/CSSCorePreferenceInitializer.java @@ -0,0 +1,68 @@ +/******************************************************************************* + * Copyright (c) 2005 IBM Corporation and others. + * 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: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.wst.css.core.internal.preferences; + +import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer; +import org.eclipse.core.runtime.preferences.DefaultScope; +import org.eclipse.core.runtime.preferences.IEclipsePreferences; +import org.eclipse.wst.css.core.internal.CSSCorePlugin; +import org.eclipse.wst.sse.core.internal.encoding.CommonCharsetNames; +import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames; + +/** + * Sets default values for CSS Core preferences + */ +public class CSSCorePreferenceInitializer extends AbstractPreferenceInitializer { + + public void initializeDefaultPreferences() { + IEclipsePreferences node = new DefaultScope().getNode(CSSCorePlugin.getDefault().getBundle().getSymbolicName()); + + // formatting preferences + node.putInt(CSSCorePreferenceNames.LINE_WIDTH, 72); + node.putBoolean(CSSCorePreferenceNames.CLEAR_ALL_BLANK_LINES, false); + node.put(CSSCorePreferenceNames.INDENTATION_CHAR, CSSCorePreferenceNames.TAB); + node.putInt(CSSCorePreferenceNames.INDENTATION_SIZE, 1); + + // cleanup preferences + node.putBoolean(CSSCorePreferenceNames.QUOTE_ATTR_VALUES, true); + node.putBoolean(CSSCorePreferenceNames.FORMAT_SOURCE, true); + + // code generation preferences + node.put(CommonEncodingPreferenceNames.INPUT_CODESET, ""); //$NON-NLS-1$ + String defaultEnc = "UTF-8";//$NON-NLS-1$ + String systemEnc = System.getProperty("file.encoding"); //$NON-NLS-1$ + if (systemEnc != null) { + defaultEnc = CommonCharsetNames.getPreferredDefaultIanaName(systemEnc, "UTF-8");//$NON-NLS-1$ + } + node.put(CommonEncodingPreferenceNames.OUTPUT_CODESET, defaultEnc); + node.put(CommonEncodingPreferenceNames.END_OF_LINE_CODE, ""); //$NON-NLS-1$ + + // additional css core preferences + node.putInt(CSSCorePreferenceNames.FORMAT_PROP_PRE_DELIM, 0); + node.putInt(CSSCorePreferenceNames.FORMAT_PROP_POST_DELIM, 1); + node.put(CSSCorePreferenceNames.FORMAT_QUOTE, "\"");//$NON-NLS-1$ + node.put(CSSCorePreferenceNames.FORMAT_BETWEEN_VALUE, " ");//$NON-NLS-1$ + node.putBoolean(CSSCorePreferenceNames.FORMAT_QUOTE_IN_URI, true); + node.putBoolean(CSSCorePreferenceNames.WRAPPING_ONE_PER_LINE, true); + node.putBoolean(CSSCorePreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR, true); + node.putBoolean(CSSCorePreferenceNames.WRAPPING_NEWLINE_ON_OPEN_BRACE, false); + node.putInt(CSSCorePreferenceNames.CASE_IDENTIFIER, CSSCorePreferenceNames.UPPER); + node.putInt(CSSCorePreferenceNames.CASE_PROPERTY_NAME, CSSCorePreferenceNames.LOWER); + node.putInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE, CSSCorePreferenceNames.LOWER); + + // CSS cleanup preferences + node.putInt(CSSCorePreferenceNames.CLEANUP_CASE_IDENTIFIER, CSSCorePreferenceNames.ASIS); + node.putInt(CSSCorePreferenceNames.CLEANUP_CASE_PROPERTY_NAME, CSSCorePreferenceNames.ASIS); + node.putInt(CSSCorePreferenceNames.CLEANUP_CASE_PROPERTY_VALUE, CSSCorePreferenceNames.ASIS); + node.putInt(CSSCorePreferenceNames.CLEANUP_CASE_SELECTOR, CSSCorePreferenceNames.ASIS); + } + +} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/preferences/CSSCorePreferenceNames.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/preferences/CSSCorePreferenceNames.java new file mode 100644 index 0000000000..d5b39fca5e --- /dev/null +++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/preferences/CSSCorePreferenceNames.java @@ -0,0 +1,134 @@ +/******************************************************************************* + * Copyright (c) 2005 IBM Corporation and others. + * 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: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.wst.css.core.internal.preferences; + +/** + * CSS core preference keys. + * + * @since 1.0 + */ +public class CSSCorePreferenceNames { + private CSSCorePreferenceNames() { + // empty private constructor so users cannot instantiate class + } + + public static final String CASE_IDENTIFIER = "identifierCase"; //$NON-NLS-1$ + public static final String CASE_PROPERTY_NAME = "propNameCase"; //$NON-NLS-1$ + public static final String CASE_PROPERTY_VALUE = "propValueCase"; //$NON-NLS-1$ + public static final String FORMAT_BETWEEN_VALUE = "betweenValue"; //$NON-NLS-1$ + public static final String FORMAT_PROP_POST_DELIM = "postDelim"; //$NON-NLS-1$ + public static final String FORMAT_PROP_PRE_DELIM = "preDelim"; //$NON-NLS-1$ + public static final String FORMAT_QUOTE = "quote"; //$NON-NLS-1$ + public static final String FORMAT_QUOTE_IN_URI = "quoteInURI"; //$NON-NLS-1$ + public static final String WRAPPING_NEWLINE_ON_OPEN_BRACE = "newLineOnOpenBrace"; //$NON-NLS-1$ + public static final String WRAPPING_ONE_PER_LINE = "onePropertyPerLine"; //$NON-NLS-1$ + public static final String WRAPPING_PROHIBIT_WRAP_ON_ATTR = "prohibitWrapOnAttr"; //$NON-NLS-1$ + + // CSS cleanup preference names + public static final String CLEANUP_CASE_IDENTIFIER = "cleanupIdentifierCase"; //$NON-NLS-1$ + public static final String CLEANUP_CASE_PROPERTY_NAME = "cleanupPropNameCase"; //$NON-NLS-1$ + public static final String CLEANUP_CASE_PROPERTY_VALUE = "cleanupPropValueCase"; //$NON-NLS-1$ + public static final String CLEANUP_CASE_SELECTOR = "cleanupSelectorCase"; //$NON-NLS-1$ + + /** + * The maximum width of a line before a line split is needed. + * <p> + * Value is of type <code>Integer</code>. + * </p> + */ + public static final String LINE_WIDTH = "lineWidth";//$NON-NLS-1$ + + /** + * Indicates if all blanks lines should be cleared during formatting. + * Blank lines will be kept when false. + * <p> + * Value is of type <code>Boolean</code>. + * </p> + */ + public static final String CLEAR_ALL_BLANK_LINES = "clearAllBlankLines";//$NON-NLS-1$ + + /** + * The number of #INDENTATION_CHAR for 1 indentation. + * <p> + * Value is of type <code>Integer</code>. + * </p> + */ + public static final String INDENTATION_SIZE = "indentationSize";//$NON-NLS-1$ + + /** + * The character used for indentation. + * <p> + * Value is of type <code>String</code>.<br /> + * Possible values: {TAB, SPACE} + * </p> + */ + public static final String INDENTATION_CHAR = "indentationChar";//$NON-NLS-1$ + + /** + * Possible value for the preference #INDENTATION_CHAR. Indicates to use + * tab character when formatting. + * + * @see #SPACE + * @see #INDENTATION_CHAR + */ + public static final String TAB = "tab"; //$NON-NLS-1$ + + /** + * Possible value for the preference #INDENTATION_CHAR. Indicates to use + * space character when formatting. + * + * @see #TAB + * @see #INDENTATION_CHAR + */ + public static final String SPACE = "space"; //$NON-NLS-1$ + + /** + * Indicates whether or not to quote all attribute values during cleanup. + * <p> + * Value is of type <code>Boolean</code>. + * </p> + */ + public static final String QUOTE_ATTR_VALUES = "quoteAttrValues";//$NON-NLS-1$ + + /** + * Indicates whether or not cleanup processor should format source. + * <p> + * Value is of type <code>Boolean</code>. + * </p> + */ + public static final String FORMAT_SOURCE = "formatSource";//$NON-NLS-1$ + + /** + * Possible value for the case preferences Indicates to leave case as is. + * + * @see #LOWER + * @see #UPPER + */ + public static final int ASIS = 0; + + /** + * Possible value for the case preferences Indicates to make name + * lowercase. + * + * @see #ASIS + * @see #UPPER + */ + public static final int LOWER = 1; + + /** + * Possible value for the case preferences Indicates to make name + * uppercase. + * + * @see #LOWER + * @see #ASIS + */ + public static final int UPPER = 2; +} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/preferences/CSSModelPreferenceNames.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/preferences/CSSModelPreferenceNames.java deleted file mode 100644 index 6027fe61be..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/preferences/CSSModelPreferenceNames.java +++ /dev/null @@ -1,32 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004 IBM Corporation and others. - * 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: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.css.core.internal.provisional.preferences; - -public interface CSSModelPreferenceNames { - public static final String CASE_IDENTIFIER = "identifierCase"; //$NON-NLS-1$ - public static final String CASE_PRESERVE_CASE = "preserveCase"; //$NON-NLS-1$ - public static final String CASE_PROPERTY_NAME = "propNameCase"; //$NON-NLS-1$ - public static final String CASE_PROPERTY_VALUE = "propValueCase"; //$NON-NLS-1$ - public static final String FORMAT_BETWEEN_VALUE = "betweenValue"; //$NON-NLS-1$ - public static final String FORMAT_PROP_POST_DELIM = "postDelim"; //$NON-NLS-1$ - public static final String FORMAT_PROP_PRE_DELIM = "preDelim"; //$NON-NLS-1$ - public static final String FORMAT_QUOTE = "quote"; //$NON-NLS-1$ - public static final String FORMAT_QUOTE_IN_URI = "quoteInURI"; //$NON-NLS-1$ - public static final String WRAPPING_NEWLINE_ON_OPEN_BRACE = "newLineOnOpenBrace"; //$NON-NLS-1$ - public static final String WRAPPING_ONE_PER_LINE = "onePropertyPerLine"; //$NON-NLS-1$ - public static final String WRAPPING_PROHIBIT_WRAP_ON_ATTR = "prohibitWrapOnAttr"; //$NON-NLS-1$ - - // CSS cleanup preference names - public static final String CLEANUP_CASE_IDENTIFIER = "cleanupIdentifierCase"; //$NON-NLS-1$ - public static final String CLEANUP_CASE_PROPERTY_NAME = "cleanupPropNameCase"; //$NON-NLS-1$ - public static final String CLEANUP_CASE_PROPERTY_VALUE = "cleanupPropValueCase"; //$NON-NLS-1$ - public static final String CLEANUP_CASE_SELECTOR = "cleanupSelectorCase"; //$NON-NLS-1$ -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/preferences/CSSPreferenceHelper.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/preferences/CSSPreferenceHelper.java index 5fe7ac56fc..0aa3a4a9a2 100644 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/preferences/CSSPreferenceHelper.java +++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/preferences/CSSPreferenceHelper.java @@ -12,12 +12,11 @@ package org.eclipse.wst.css.core.internal.provisional.preferences; import org.eclipse.core.runtime.Preferences; import org.eclipse.wst.css.core.internal.CSSCorePlugin; +import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames; import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel; -import org.eclipse.wst.sse.core.internal.SSECorePlugin; -import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames; /** - * this a temp dummy class to map to ModelPreferences + * @deprecated just access preferences directly */ public class CSSPreferenceHelper { @@ -34,53 +33,30 @@ public class CSSPreferenceHelper { /** * */ - public static void createDefaultPreferences(Preferences prefs) { - // setBooleanAttribute(COLOR_ENABLED, true); - prefs.setDefault(CSSModelPreferenceNames.FORMAT_PROP_PRE_DELIM, 0); - prefs.setDefault(CSSModelPreferenceNames.FORMAT_PROP_POST_DELIM, 1); - prefs.setDefault(CSSModelPreferenceNames.FORMAT_QUOTE, "\"");//$NON-NLS-1$ - prefs.setDefault(CSSModelPreferenceNames.FORMAT_BETWEEN_VALUE, " ");//$NON-NLS-1$ - prefs.setDefault(CSSModelPreferenceNames.FORMAT_QUOTE_IN_URI, true); - prefs.setDefault(CSSModelPreferenceNames.WRAPPING_ONE_PER_LINE, true); - prefs.setDefault(CSSModelPreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR, true); - prefs.setDefault(CSSModelPreferenceNames.WRAPPING_NEWLINE_ON_OPEN_BRACE, false); - prefs.setDefault(CSSModelPreferenceNames.CASE_IDENTIFIER, CommonModelPreferenceNames.UPPER); - prefs.setDefault(CSSModelPreferenceNames.CASE_PROPERTY_NAME, CommonModelPreferenceNames.LOWER); - prefs.setDefault(CSSModelPreferenceNames.CASE_PROPERTY_VALUE, CommonModelPreferenceNames.LOWER); - prefs.setDefault(CSSModelPreferenceNames.CASE_PRESERVE_CASE, true); - // setBooleanAttribute(ASSIST_CATEGORIZE, true); - - // CSS cleanup preferences - prefs.setDefault(CSSModelPreferenceNames.CLEANUP_CASE_IDENTIFIER, CommonModelPreferenceNames.ASIS); - prefs.setDefault(CSSModelPreferenceNames.CLEANUP_CASE_PROPERTY_NAME, CommonModelPreferenceNames.ASIS); - prefs.setDefault(CSSModelPreferenceNames.CLEANUP_CASE_PROPERTY_VALUE, CommonModelPreferenceNames.ASIS); - prefs.setDefault(CSSModelPreferenceNames.CLEANUP_CASE_SELECTOR, CommonModelPreferenceNames.ASIS); - } - - /** - * - */ public String getBetweenValueString() { - return getPreferences().getString(CSSModelPreferenceNames.FORMAT_BETWEEN_VALUE); + return getPreferences().getString(CSSCorePreferenceNames.FORMAT_BETWEEN_VALUE); } /** * */ public String getIndentString() { - Preferences prefs = getPreferences(); - boolean bUseTab = prefs.getBoolean(CommonModelPreferenceNames.INDENT_USING_TABS); - if (bUseTab) { - return "\t"; //$NON-NLS-1$ - } - else { - int n = SSECorePlugin.getDefault().getPluginPreferences().getInt(CommonModelPreferenceNames.TAB_WIDTH); - StringBuffer buf = new StringBuffer(); - while (0 < n--) { - buf.append(" "); //$NON-NLS-1$ + String indent = ""; //$NON-NLS-1$ + + Preferences preferences = getPreferences(); + if (preferences != null) { + String indentChar = " "; //$NON-NLS-1$ + String indentCharPref = preferences.getString(CSSCorePreferenceNames.INDENTATION_CHAR); + if (CSSCorePreferenceNames.TAB.equals(indentCharPref)) { + indentChar = "\t"; //$NON-NLS-1$ + } + int indentationWidth = preferences.getInt(CSSCorePreferenceNames.INDENTATION_SIZE); + + for (int i = 0; i < indentationWidth; i++) { + indent += indentChar; } - return buf.toString(); } + return indent; } /** @@ -88,7 +64,7 @@ public class CSSPreferenceHelper { */ public int getMaxLineWidth() { Preferences prefs = getPreferences(); - return prefs.getInt(CommonModelPreferenceNames.LINE_WIDTH); + return prefs.getInt(CSSCorePreferenceNames.LINE_WIDTH); } /** @@ -96,165 +72,148 @@ public class CSSPreferenceHelper { */ public String getQuoteString(ICSSModel model) { // nakamori_TODO css pref transition - return getPreferences().getString(CSSModelPreferenceNames.FORMAT_QUOTE); + return getPreferences().getString(CSSCorePreferenceNames.FORMAT_QUOTE); } /** * */ public int getSpacesPostDelimiter() { - return getPreferences().getInt(CSSModelPreferenceNames.FORMAT_PROP_POST_DELIM); + return getPreferences().getInt(CSSCorePreferenceNames.FORMAT_PROP_POST_DELIM); } /** * */ public int getSpacesPreDelimiter() { - return getPreferences().getInt(CSSModelPreferenceNames.FORMAT_PROP_PRE_DELIM); + return getPreferences().getInt(CSSCorePreferenceNames.FORMAT_PROP_PRE_DELIM); } /** * */ public boolean isIdentUpperCase() { - if (getPreferences().getInt(CSSModelPreferenceNames.CASE_IDENTIFIER) == CommonModelPreferenceNames.UPPER) + if (getPreferences().getInt(CSSCorePreferenceNames.CASE_IDENTIFIER) == CSSCorePreferenceNames.UPPER) return true; - else - return false; + return false; } /** * */ public boolean isNewLineOnOpenBrace() { - return getPreferences().getBoolean(CSSModelPreferenceNames.WRAPPING_NEWLINE_ON_OPEN_BRACE); + return getPreferences().getBoolean(CSSCorePreferenceNames.WRAPPING_NEWLINE_ON_OPEN_BRACE); } /** * */ public boolean isOnePropertyPerLine() { - return getPreferences().getBoolean(CSSModelPreferenceNames.WRAPPING_ONE_PER_LINE); - } - - /** - * - */ - public boolean isPreserveCase() { - return getPreferences().getBoolean(CSSModelPreferenceNames.CASE_PRESERVE_CASE); + return getPreferences().getBoolean(CSSCorePreferenceNames.WRAPPING_ONE_PER_LINE); } /** * */ public boolean isProhibitWrapOnAttr() { - return getPreferences().getBoolean(CSSModelPreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR); + return getPreferences().getBoolean(CSSCorePreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR); } /** * */ public boolean isPropNameUpperCase() { - if (getPreferences().getInt(CSSModelPreferenceNames.CASE_PROPERTY_NAME) == CommonModelPreferenceNames.UPPER) + if (getPreferences().getInt(CSSCorePreferenceNames.CASE_PROPERTY_NAME) == CSSCorePreferenceNames.UPPER) return true; - else - return false; + return false; } /** * */ public boolean isPropValueUpperCase() { - if (getPreferences().getInt(CSSModelPreferenceNames.CASE_PROPERTY_VALUE) == CommonModelPreferenceNames.UPPER) + if (getPreferences().getInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.UPPER) return true; - else - return false; + return false; } /** * */ public boolean isQuoteInURI() { - return getPreferences().getBoolean(CSSModelPreferenceNames.FORMAT_QUOTE_IN_URI); + return getPreferences().getBoolean(CSSCorePreferenceNames.FORMAT_QUOTE_IN_URI); } /** * */ protected void setBetweenValueString(String newBetweenValueString) { - getPreferences().setValue(CSSModelPreferenceNames.FORMAT_BETWEEN_VALUE, newBetweenValueString); + getPreferences().setValue(CSSCorePreferenceNames.FORMAT_BETWEEN_VALUE, newBetweenValueString); } /** * */ protected void setIdentUpperCase(boolean newIdentUpperCase) { - int theCase = CommonModelPreferenceNames.LOWER; + int theCase = CSSCorePreferenceNames.LOWER; if (newIdentUpperCase) - theCase = CommonModelPreferenceNames.UPPER; - getPreferences().setValue(CSSModelPreferenceNames.CASE_IDENTIFIER, theCase); + theCase = CSSCorePreferenceNames.UPPER; + getPreferences().setValue(CSSCorePreferenceNames.CASE_IDENTIFIER, theCase); } /** * */ protected void setOnePropertyPerLine(boolean newOnePropertyPerLine) { - getPreferences().setValue(CSSModelPreferenceNames.WRAPPING_ONE_PER_LINE, newOnePropertyPerLine); - } - - /** - * - */ - protected void setPreserveCase(boolean newPreserveCase) { - getPreferences().setValue(CSSModelPreferenceNames.CASE_PRESERVE_CASE, newPreserveCase); + getPreferences().setValue(CSSCorePreferenceNames.WRAPPING_ONE_PER_LINE, newOnePropertyPerLine); } /** * */ protected void setProhibitWrapOnAttr(boolean newProhibitWrapOnAttr) { - getPreferences().setValue(CSSModelPreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR, newProhibitWrapOnAttr); + getPreferences().setValue(CSSCorePreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR, newProhibitWrapOnAttr); } /** * */ protected void setPropNameUpperCase(boolean newPropNameUpperCase) { - int theCase = CommonModelPreferenceNames.LOWER; + int theCase = CSSCorePreferenceNames.LOWER; if (newPropNameUpperCase) - theCase = CommonModelPreferenceNames.UPPER; - getPreferences().setValue(CSSModelPreferenceNames.CASE_PROPERTY_NAME, theCase); + theCase = CSSCorePreferenceNames.UPPER; + getPreferences().setValue(CSSCorePreferenceNames.CASE_PROPERTY_NAME, theCase); } /** * */ protected void setPropValueUpperCase(boolean newPropValueUpperCase) { - int theCase = CommonModelPreferenceNames.LOWER; + int theCase = CSSCorePreferenceNames.LOWER; if (newPropValueUpperCase) - theCase = CommonModelPreferenceNames.UPPER; - getPreferences().setValue(CSSModelPreferenceNames.CASE_PROPERTY_VALUE, theCase); + theCase = CSSCorePreferenceNames.UPPER; + getPreferences().setValue(CSSCorePreferenceNames.CASE_PROPERTY_VALUE, theCase); } /** * */ public void setQuoteString(String quote) { - getPreferences().setValue(CSSModelPreferenceNames.FORMAT_QUOTE, quote); + getPreferences().setValue(CSSCorePreferenceNames.FORMAT_QUOTE, quote); } /** * */ public void setSpacesPostDelimiter(int num) { - getPreferences().setValue(CSSModelPreferenceNames.FORMAT_PROP_POST_DELIM, num); + getPreferences().setValue(CSSCorePreferenceNames.FORMAT_PROP_POST_DELIM, num); } /** * */ public void setSpacesPreDelimiter(int num) { - getPreferences().setValue(CSSModelPreferenceNames.FORMAT_PROP_PRE_DELIM, num); + getPreferences().setValue(CSSCorePreferenceNames.FORMAT_PROP_PRE_DELIM, num); } private Preferences getPreferences() { diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/CSSLinkConverter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/CSSLinkConverter.java index 6890679bb8..e5d3690a3f 100644 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/CSSLinkConverter.java +++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/CSSLinkConverter.java @@ -12,11 +12,13 @@ package org.eclipse.wst.css.core.internal.util; +import org.eclipse.core.runtime.Preferences; +import org.eclipse.wst.css.core.internal.CSSCorePlugin; +import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames; import org.eclipse.wst.css.core.internal.provisional.document.ICSSImportRule; import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel; import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; import org.eclipse.wst.css.core.internal.provisional.document.ICSSPrimitiveValue; -import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper; import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; import org.w3c.dom.css.CSSPrimitiveValue; @@ -53,12 +55,13 @@ public class CSSLinkConverter extends org.eclipse.wst.css.core.internal.util.Abs public static String addFunc(String value) { if (!value.trim().toLowerCase().startsWith(URL_BEGIN)) { // pa_TODO css pref - CSSPreferenceHelper mgr = CSSPreferenceHelper.getInstance(); - String quote = mgr.getQuoteString(null); + Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences(); + + String quote = preferences.getString(CSSCorePreferenceNames.FORMAT_QUOTE); value = CSSUtil.stripQuotes(value); quote = CSSUtil.detectQuote(value, quote); String str = URL_BEGIN; - if (mgr.isPropValueUpperCase()) + if (preferences.getInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.UPPER) str = str.toUpperCase(); StringBuffer buf = new StringBuffer(str); buf.append(quote); @@ -67,8 +70,7 @@ public class CSSLinkConverter extends org.eclipse.wst.css.core.internal.util.Abs buf.append(URL_END); return buf.toString(); } - else - return value; + return value; } @@ -102,8 +104,7 @@ public class CSSLinkConverter extends org.eclipse.wst.css.core.internal.util.Abs protected short preNode(ICSSNode node) { if (node.getNodeType() == ICSSNode.PRIMITIVEVALUE_NODE) { toAbsolute((CSSValue) node); - } - else if (node.getNodeType() == ICSSNode.IMPORTRULE_NODE) { + } else if (node.getNodeType() == ICSSNode.IMPORTRULE_NODE) { ICSSImportRule iRule = (ICSSImportRule) node; iRule.setHref(toAbsolute(addFunc(iRule.getHref()))); } @@ -126,8 +127,7 @@ public class CSSLinkConverter extends org.eclipse.wst.css.core.internal.util.Abs int endParenthesis = field.lastIndexOf(URL_END); if (endParenthesis > url) { field = field.substring(url + 4, endParenthesis); - } - else + } else field = field.substring(url + 4); } return field.trim(); @@ -147,17 +147,14 @@ public class CSSLinkConverter extends org.eclipse.wst.css.core.internal.util.Abs int end = field.lastIndexOf(D_QUOTE); if (end > quote) { field = field.substring(quote + 1, end); - } - else + } else field = field.substring(quote + 1); - } - else if (field.toLowerCase().startsWith(S_QUOTE)) { + } else if (field.toLowerCase().startsWith(S_QUOTE)) { int quote = field.indexOf(S_QUOTE); int end = field.lastIndexOf(S_QUOTE); if (end > quote) { field = field.substring(quote + 1, end); - } - else + } else field = field.substring(quote + 1); } diff --git a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/CSSUIMessages.java b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/CSSUIMessages.java index 7f03969a2d..2abfcedfb4 100644 --- a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/CSSUIMessages.java +++ b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/CSSUIMessages.java @@ -72,6 +72,9 @@ public class CSSUIMessages extends NLS { public static String Formatting_UI_; public static String Line_width__UI_; public static String Indent_using_tabs_; + public static String Indent_using_spaces; + public static String Indentation_size; + public static String Indentation_size_tip; public static String StructureSelectEnclosing_label; public static String StructureSelectEnclosing_tooltip; public static String StructureSelectEnclosing_description; diff --git a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/CSSUIPluginResources.properties b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/CSSUIPluginResources.properties index 264368be74..c3ed334284 100644 --- a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/CSSUIPluginResources.properties +++ b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/CSSUIPluginResources.properties @@ -77,6 +77,9 @@ SourceMenu_label=&Source Formatting_UI_=Formatting Line_width__UI_=Line &width: Indent_using_tabs_=&Indent using tabs +Indent_using_spaces=I&ndent using spaces +Indentation_size=In&dentation size: +Indentation_size_tip=Indentation size StructureSelectEnclosing_label=&Enclosing Element StructureSelectEnclosing_tooltip=Expand selection to include enclosing element StructureSelectEnclosing_description=Expand selection to include enclosing element diff --git a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/autoedit/StructuredAutoEditStrategyCSS.java b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/autoedit/StructuredAutoEditStrategyCSS.java index 23d1e2a91c..76ac043c3b 100644 --- a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/autoedit/StructuredAutoEditStrategyCSS.java +++ b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/autoedit/StructuredAutoEditStrategyCSS.java @@ -8,12 +8,14 @@ ****************************************************************************/ package org.eclipse.wst.css.ui.internal.autoedit; +import org.eclipse.core.runtime.Preferences; import org.eclipse.jface.text.BadLocationException; import org.eclipse.jface.text.DocumentCommand; import org.eclipse.jface.text.IDocument; import org.eclipse.ui.texteditor.ITextEditorExtension3; +import org.eclipse.wst.css.core.internal.CSSCorePlugin; import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts; -import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper; +import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames; import org.eclipse.wst.css.core.internal.util.RegionIterator; import org.eclipse.wst.css.ui.internal.Logger; import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; @@ -123,7 +125,7 @@ public class StructuredAutoEditStrategyCSS extends BasicAutoEditStrategy { if (str != null) buf.append(str); while (shift-- != 0) - buf.append(CSSPreferenceHelper.getInstance().getIndentString()); + buf.append(getIndentString()); command.text = buf.toString(); } @@ -135,8 +137,8 @@ public class StructuredAutoEditStrategyCSS extends BasicAutoEditStrategy { if (!(textEditor instanceof ITextEditorExtension3 && ((ITextEditorExtension3) textEditor).getInsertMode() == ITextEditorExtension3.SMART_INSERT)) return; - //return; - ///* + // return; + // /* structuredDocument = (IStructuredDocument) document; if (command.length == 0 && command.text != null) { @@ -150,7 +152,7 @@ public class StructuredAutoEditStrategyCSS extends BasicAutoEditStrategy { autoIndentAfterClose(command, CSSRegionContexts.CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE); } } - //*/ + // */ } /** @@ -181,7 +183,7 @@ public class StructuredAutoEditStrategyCSS extends BasicAutoEditStrategy { int end = findEndOfWhiteSpace(structuredDocument, start, position); return structuredDocument.get(start, end - start); } else if (region.getType() == CSSRegionContexts.CSS_SELECTOR_ATTRIBUTE_START || - //region.getType() == CSSRegionContexts.CSS_PARENTHESIS_OPEN || + // region.getType() == CSSRegionContexts.CSS_PARENTHESIS_OPEN || region.getType() == CSSRegionContexts.CSS_DECLARATION_VALUE_FUNCTION || region.getType() == CSSRegionContexts.CSS_DECLARATION_SEPARATOR) { int position = flatNode.getStart() + region.getStart(); int line = structuredDocument.getLineOfOffset(position); @@ -225,17 +227,17 @@ public class StructuredAutoEditStrategyCSS extends BasicAutoEditStrategy { ITextRegion r = it.prev(); CompoundRegion region = new CompoundRegion(it.getStructuredDocumentRegion(), r); if (region.getType() == CSSRegionContexts.CSS_LBRACE || - // region.getType() == CSSRegionContexts.CSS_RBRACE || + // region.getType() == CSSRegionContexts.CSS_RBRACE || region.getType() == CSSRegionContexts.CSS_SELECTOR_ATTRIBUTE_START || - // region.getType() == + // region.getType() == // CSSRegionContexts.CSS_BRACKET_CLOSE || - //// region.getType() == + // // region.getType() == // CSSRegionContexts.CSS_PARENTHESIS_OPEN || - // region.getType() == + // region.getType() == // CSSRegionContexts.CSS_PARENTHESIS_CLOSE || region.getType() == CSSRegionContexts.CSS_DELIMITER || region.getType() == CSSRegionContexts.CSS_DECLARATION_DELIMITER || - // region.getType() == CSSRegionContexts.CSS_COLON || - // region.getType() == CSSRegionContexts.CSS_COMMENT + // region.getType() == CSSRegionContexts.CSS_COLON || + // region.getType() == CSSRegionContexts.CSS_COMMENT // || region.getType() == CSSRegionContexts.CSS_DECLARATION_VALUE_FUNCTION) { return region; @@ -360,8 +362,8 @@ public class StructuredAutoEditStrategyCSS extends BasicAutoEditStrategy { // skip to PARENTHESIS_OPEN while (it.hasPrev()) { region = it.prev(); - if (//region.getType() == - // CSSRegionContexts.CSS_PARENTHESIS_OPEN || + if (// region.getType() == + // CSSRegionContexts.CSS_PARENTHESIS_OPEN || region.getType() == CSSRegionContexts.CSS_DECLARATION_VALUE_FUNCTION) nest--; else if (region.getType() == CSSRegionContexts.CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE) @@ -497,5 +499,23 @@ public class StructuredAutoEditStrategyCSS extends BasicAutoEditStrategy { return end; } -} + private String getIndentString() { + String indent = ""; //$NON-NLS-1$ + + Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences(); + if (preferences != null) { + String indentChar = " "; //$NON-NLS-1$ + String indentCharPref = preferences.getString(CSSCorePreferenceNames.INDENTATION_CHAR); + if (CSSCorePreferenceNames.TAB.equals(indentCharPref)) { + indentChar = "\t"; //$NON-NLS-1$ + } + int indentationWidth = preferences.getInt(CSSCorePreferenceNames.INDENTATION_SIZE); + + for (int i = 0; i < indentationWidth; i++) { + indent += indentChar; + } + } + return indent; + } +} diff --git a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/contentassist/CSSProposalGenerator.java b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/contentassist/CSSProposalGenerator.java index 7b247e6c04..13113b901d 100644 --- a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/contentassist/CSSProposalGenerator.java +++ b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/contentassist/CSSProposalGenerator.java @@ -14,11 +14,13 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import org.eclipse.core.runtime.Preferences; import org.eclipse.jface.text.contentassist.CompletionProposal; import org.eclipse.jface.text.contentassist.ICompletionProposal; import org.eclipse.swt.graphics.Image; +import org.eclipse.wst.css.core.internal.CSSCorePlugin; import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts; -import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper; +import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames; import org.eclipse.wst.css.core.internal.util.RegionIterator; import org.eclipse.wst.css.ui.internal.image.CSSImageHelper; import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; @@ -79,20 +81,20 @@ abstract class CSSProposalGenerator { protected StringAndOffset generateBraces() { StringBuffer buf = new StringBuffer(); String lineDelimiter = fContext.getStructuredDocument().getLineDelimiter(); - CSSPreferenceHelper prefs = CSSPreferenceHelper.getInstance(); - String indentStr = prefs.getIndentString(); - if (prefs.isNewLineOnOpenBrace()) { + Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences(); + String indentStr = getIndentString(); + if (preferences.getBoolean(CSSCorePreferenceNames.WRAPPING_NEWLINE_ON_OPEN_BRACE)) { buf.append(lineDelimiter); } buf.append("{");//$NON-NLS-1$ - if (prefs.isOnePropertyPerLine()) { + if (preferences.getBoolean(CSSCorePreferenceNames.WRAPPING_ONE_PER_LINE)) { buf.append(lineDelimiter); buf.append(indentStr); } else { buf.append(" ");//$NON-NLS-1$ } int offset = buf.length(); - if (prefs.isOnePropertyPerLine()) { + if (preferences.getBoolean(CSSCorePreferenceNames.WRAPPING_ONE_PER_LINE)) { buf.append(lineDelimiter); } else { buf.append(" ");//$NON-NLS-1$ @@ -140,14 +142,15 @@ abstract class CSSProposalGenerator { */ protected StringAndOffset generateURI() { StringBuffer buf = new StringBuffer(); - CSSPreferenceHelper prefs = CSSPreferenceHelper.getInstance(); + + boolean isQuoteInURI = CSSCorePlugin.getDefault().getPluginPreferences().getBoolean(CSSCorePreferenceNames.FORMAT_QUOTE_IN_URI); char quoteChar = getQuoteChar(); buf.append("url(");//$NON-NLS-1$ - if (prefs.isQuoteInURI()) { + if (isQuoteInURI) { buf.append(quoteChar); } int offset = buf.length(); - if (prefs.isQuoteInURI()) { + if (isQuoteInURI) { buf.append(quoteChar); } buf.append(")");//$NON-NLS-1$ @@ -176,8 +179,8 @@ abstract class CSSProposalGenerator { * @return char */ private char getQuoteChar() { - CSSPreferenceHelper prefs = CSSPreferenceHelper.getInstance(); - String quoteStr = prefs.getQuoteString(fContext.getModel()); + + String quoteStr = CSSCorePlugin.getDefault().getPluginPreferences().getString(CSSCorePreferenceNames.FORMAT_QUOTE); char quoteChar = (quoteStr != null && 0 < quoteStr.length()) ? quoteStr.charAt(0) : '"'; char attrQuote = fContext.getQuoteOfStyleAttribute(); if (attrQuote != 0) { @@ -206,4 +209,24 @@ abstract class CSSProposalGenerator { * (text.toUpperCase().indexOf(textToReplace.toUpperCase()) == 0); } */ } + + + private String getIndentString() { + String indent = ""; //$NON-NLS-1$ + + Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences(); + if (preferences != null) { + String indentChar = " "; //$NON-NLS-1$ + String indentCharPref = preferences.getString(CSSCorePreferenceNames.INDENTATION_CHAR); + if (CSSCorePreferenceNames.TAB.equals(indentCharPref)) { + indentChar = "\t"; //$NON-NLS-1$ + } + int indentationWidth = preferences.getInt(CSSCorePreferenceNames.INDENTATION_SIZE); + + for (int i = 0; i < indentationWidth; i++) { + indent += indentChar; + } + } + return indent; + } }
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/contentassist/CSSProposalGeneratorForAtmarkRule.java b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/contentassist/CSSProposalGeneratorForAtmarkRule.java index 6164c95258..06a18ba34c 100644 --- a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/contentassist/CSSProposalGeneratorForAtmarkRule.java +++ b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/contentassist/CSSProposalGeneratorForAtmarkRule.java @@ -14,15 +14,16 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import org.eclipse.wst.css.core.internal.CSSCorePlugin; import org.eclipse.wst.css.core.internal.metamodel.CSSMMNode; import org.eclipse.wst.css.core.internal.metamodel.util.CSSMetaModelUtil; import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts; +import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames; import org.eclipse.wst.css.core.internal.provisional.document.ICSSCharsetRule; import org.eclipse.wst.css.core.internal.provisional.document.ICSSDocument; import org.eclipse.wst.css.core.internal.provisional.document.ICSSImportRule; import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel; import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper; import org.eclipse.wst.css.core.internal.util.SelectionCollector; import org.eclipse.wst.css.ui.internal.image.CSSImageType; import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; @@ -44,7 +45,7 @@ class CSSProposalGeneratorForAtmarkRule extends CSSProposalGenerator { */ CSSProposalGeneratorForAtmarkRule(CSSContentAssistContext context) { super(context); - fUseUpperCase = CSSPreferenceHelper.getInstance().isIdentUpperCase(); + fUseUpperCase = CSSCorePlugin.getDefault().getPluginPreferences().getInt(CSSCorePreferenceNames.CASE_IDENTIFIER) == CSSCorePreferenceNames.UPPER; } /** diff --git a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/contentassist/CSSProposalGeneratorForDeclarationName.java b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/contentassist/CSSProposalGeneratorForDeclarationName.java index 296c948e41..ce496eb6fd 100644 --- a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/contentassist/CSSProposalGeneratorForDeclarationName.java +++ b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/contentassist/CSSProposalGeneratorForDeclarationName.java @@ -16,14 +16,15 @@ import java.util.Comparator; import java.util.Iterator; import java.util.List; +import org.eclipse.core.runtime.Preferences; +import org.eclipse.wst.css.core.internal.CSSCorePlugin; import org.eclipse.wst.css.core.internal.metamodel.CSSMMNode; import org.eclipse.wst.css.core.internal.metamodel.util.CSSMetaModelUtil; import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts; +import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames; import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleDeclItem; -import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper; import org.eclipse.wst.css.ui.internal.image.CSSImageType; -import org.eclipse.wst.css.ui.internal.preferences.CSSPreferenceManager; class CSSProposalGeneratorForDeclarationName extends CSSProposalGenerator { @@ -42,14 +43,13 @@ class CSSProposalGeneratorForDeclarationName extends CSSProposalGenerator { */ protected Iterator getCandidates() { List candidates = new ArrayList(); - - CSSPreferenceHelper prefs = CSSPreferenceHelper.getInstance(); + Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences(); String preDelim = "";//$NON-NLS-1$ - for (int i = 0; i < prefs.getSpacesPreDelimiter(); i++) { + for (int i = 0; i < preferences.getInt(CSSCorePreferenceNames.FORMAT_PROP_PRE_DELIM); i++) { preDelim += ' ';//$NON-NLS-1$ } String postDelim = "";//$NON-NLS-1$ - for (int i = 0; i < prefs.getSpacesPostDelimiter(); i++) { + for (int i = 0; i < preferences.getInt(CSSCorePreferenceNames.FORMAT_PROP_POST_DELIM); i++) { postDelim += ' ';//$NON-NLS-1$ } @@ -70,7 +70,7 @@ class CSSProposalGeneratorForDeclarationName extends CSSProposalGenerator { names.add(node); } sortNames(names); - //Collections.sort(names); + // Collections.sort(names); boolean bAddColon = true; if (targetNode instanceof ICSSStyleDeclItem && fContext.targetHas(CSSRegionContexts.CSS_DECLARATION_SEPARATOR)) { @@ -81,7 +81,7 @@ class CSSProposalGeneratorForDeclarationName extends CSSProposalGenerator { while (i.hasNext()) { CSSMMNode node = (CSSMMNode) i.next(); String text = node.getName(); - text = (prefs.isPropNameUpperCase()) ? text.toUpperCase() : text.toLowerCase(); + text = (preferences.getInt(CSSCorePreferenceNames.CASE_PROPERTY_NAME) == CSSCorePreferenceNames.UPPER) ? text.toUpperCase() : text.toLowerCase(); if (!isMatch(text)) { continue; } @@ -96,9 +96,9 @@ class CSSProposalGeneratorForDeclarationName extends CSSProposalGenerator { buf.append(postDelim); cursorPos += 1 + postDelim.length(); } - // if (! (targetNode instanceof ICSSStyleDeclItem)) { - // buf.append(';');//$NON-NLS-1$ - // } + // if (! (targetNode instanceof ICSSStyleDeclItem)) { + // buf.append(';');//$NON-NLS-1$ + // } CSSCACandidate item = new CSSCACandidate(); item.setReplacementString(buf.toString()); @@ -112,9 +112,6 @@ class CSSProposalGeneratorForDeclarationName extends CSSProposalGenerator { } void sortNames(List names) { - CSSPreferenceManager prefMan = CSSPreferenceManager.getInstance(); - final boolean categorize = prefMan.getContentAssistCategorize(); - Collections.sort(names, new Comparator() { public int compare(Object o1, Object o2) { CSSMMNode node1 = (CSSMMNode) o1; @@ -125,20 +122,18 @@ class CSSProposalGeneratorForDeclarationName extends CSSProposalGenerator { return -1; } int diff = 0; - if (categorize) { - String category1 = node1.getAttribute("category"); //$NON-NLS-1$ - String category2 = node2.getAttribute("category"); //$NON-NLS-1$ - if (category1 == null) { - if (category2 == null) { - diff = 0; - } else { - return 1; - } - } else if (category2 == null) { - return -1; + String category1 = node1.getAttribute("category"); //$NON-NLS-1$ + String category2 = node2.getAttribute("category"); //$NON-NLS-1$ + if (category1 == null) { + if (category2 == null) { + diff = 0; } else { - diff = category1.compareTo(category2); + return 1; } + } else if (category2 == null) { + return -1; + } else { + diff = category1.compareTo(category2); } if (diff == 0) { String name = node1.getName(); diff --git a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/contentassist/CSSProposalGeneratorForDeclarationValue.java b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/contentassist/CSSProposalGeneratorForDeclarationValue.java index 08a3a30e7d..e81b779e17 100644 --- a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/contentassist/CSSProposalGeneratorForDeclarationValue.java +++ b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/contentassist/CSSProposalGeneratorForDeclarationValue.java @@ -15,6 +15,7 @@ import java.util.Collections; import java.util.Iterator; import java.util.List; +import org.eclipse.wst.css.core.internal.CSSCorePlugin; import org.eclipse.wst.css.core.internal.metamodel.CSSMMDescriptor; import org.eclipse.wst.css.core.internal.metamodel.CSSMMFunction; import org.eclipse.wst.css.core.internal.metamodel.CSSMMNode; @@ -24,10 +25,10 @@ import org.eclipse.wst.css.core.internal.metamodel.CSSMMUnit; import org.eclipse.wst.css.core.internal.metamodel.util.CSSFunctionID; import org.eclipse.wst.css.core.internal.metamodel.util.CSSMetaModelUtil; import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts; +import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames; import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; import org.eclipse.wst.css.core.internal.provisional.document.ICSSPrimitiveValue; import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleDeclItem; -import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper; import org.eclipse.wst.css.core.internal.util.CSSUtil; import org.eclipse.wst.css.core.internal.util.RegionIterator; import org.eclipse.wst.css.ui.internal.image.CSSImageType; @@ -50,7 +51,7 @@ class CSSProposalGeneratorForDeclarationValue extends CSSProposalGenerator { */ CSSProposalGeneratorForDeclarationValue(CSSContentAssistContext context) { super(context); - fUseUpperCase = CSSPreferenceHelper.getInstance().isPropValueUpperCase(); + fUseUpperCase = CSSCorePlugin.getDefault().getPluginPreferences().getInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.UPPER; } /** diff --git a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/contentassist/CSSProposalGeneratorForPseudoSelector.java b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/contentassist/CSSProposalGeneratorForPseudoSelector.java index ecc68dbbb6..30ec915622 100644 --- a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/contentassist/CSSProposalGeneratorForPseudoSelector.java +++ b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/contentassist/CSSProposalGeneratorForPseudoSelector.java @@ -17,15 +17,16 @@ import java.util.Collections; import java.util.Iterator; import java.util.List; +import org.eclipse.wst.css.core.internal.CSSCorePlugin; import org.eclipse.wst.css.core.internal.metamodel.CSSMMNode; import org.eclipse.wst.css.core.internal.metamodel.CSSMMSelector; import org.eclipse.wst.css.core.internal.metamodel.util.CSSMMTypeCollector; import org.eclipse.wst.css.core.internal.parser.CSSRegionUtil; import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts; +import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames; import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; import org.eclipse.wst.css.core.internal.provisional.document.ICSSPageRule; import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleRule; -import org.eclipse.wst.css.core.internal.provisional.preferences.CSSPreferenceHelper; import org.eclipse.wst.css.ui.internal.image.CSSImageType; import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; @@ -64,7 +65,7 @@ class CSSProposalGeneratorForPseudoSelector extends CSSProposalGenerator { } } - boolean useUpperCase = CSSPreferenceHelper.getInstance().isIdentUpperCase(); + boolean useUpperCase = CSSCorePlugin.getDefault().getPluginPreferences().getInt(CSSCorePreferenceNames.CASE_IDENTIFIER) == CSSCorePreferenceNames.UPPER; List tags = getSelectorTags(); Collections.sort(tags); diff --git a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/preferences/CSSPreferenceManager.java b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/preferences/CSSPreferenceManager.java deleted file mode 100644 index c6f0d49b7a..0000000000 --- a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/preferences/CSSPreferenceManager.java +++ /dev/null @@ -1,184 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004 IBM Corporation and others. - * 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: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.css.ui.internal.preferences; - -import org.eclipse.core.runtime.Platform; -import org.eclipse.wst.sse.ui.internal.provisional.preferences.PreferenceManager; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - -/** - * @deprecated preference management has moved to base preferences - */ -public class CSSPreferenceManager extends PreferenceManager { - - private static CSSPreferenceManager fInstance = null; - // - private final static String GROUP_COLOR = "color";//$NON-NLS-1$ - private final static String COLOR_ENABLED = "useColor";//$NON-NLS-1$ - // - private final static String GROUP_ASSIST = "contentAssist"; //$NON-NLS-1$ - private final static String ASSIST_CATEGORIZE = "categorize"; //$NON-NLS-1$ - - protected Document fallbackDocument = null; - - /** - * - */ - protected CSSPreferenceManager() { - super(); - } - - /** - * - */ - public Document createDefaultPreferences() { - Document doc = super.createDefaultPreferences(); - if (doc == null) { - return doc; - } - - Node preference = doc.getFirstChild(); - - Element color = doc.createElement(GROUP_COLOR); - setBooleanAttribute(color, COLOR_ENABLED, true); - preference.appendChild(color); - - Element contentAssist = doc.createElement(GROUP_ASSIST); - setBooleanAttribute(contentAssist, ASSIST_CATEGORIZE, true); - preference.appendChild(contentAssist); - - return doc; - } - - public boolean getContentAssistCategorize() { - return getBooleanAttribute(getGroupElement(GROUP_ASSIST), ASSIST_CATEGORIZE); - } - - public void setContentAssistCategorize(boolean categorize) { - setBooleanAttribute(getGroupElement(GROUP_ASSIST), ASSIST_CATEGORIZE, categorize); - } - - /** - * - */ - protected boolean getBooleanAttribute(Element element, String name) { - String str = element.getAttribute(name); - if (str == null || str.length() <= 0) { - element = getDefaultGroupElement(element.getTagName()); - if (element != null) - str = element.getAttribute(name); - } - return (str == null) ? false : str.equals(Boolean.TRUE.toString()); - } - - /** - * - */ - public boolean getColorEnabled() { - return getBooleanAttribute(getGroupElement(GROUP_COLOR), COLOR_ENABLED); - } - - /** - * - */ - protected String getFilename() { - if (fileName == null) { - fileName = Platform.getStateLocation(Platform.getBundle("org.eclipse.wst.sse.core")).toString() + "/cssprefs.xml";//$NON-NLS-1$ //$NON-NLS-2$ - } - return fileName; - } - - /** - * - */ - protected Element getGroupElement(String name) { - Node node = getNamedChild(getRootElement(), name); - return (node instanceof Element) ? (Element) node : getDefaultGroupElement(name); - } - - /** - * - */ - protected Element getDefaultGroupElement(String name) { - Node node = getNamedChild(getDefaultRootElement(), name); - return (node instanceof Element) ? (Element) node : null; - } - - /** - * - */ - protected Node getDefaultRootElement() { - if (fallbackDocument == null) - fallbackDocument = createDefaultPreferences(); - return getRootElement(fallbackDocument); - } - - /** - * - */ - public synchronized static CSSPreferenceManager getInstance() { - if (fInstance == null) { - fInstance = new CSSPreferenceManager(); - } - return fInstance; - } - - /** - * - */ - protected int getIntAttribute(Element element, String name) { - int value = 0; - try { - value = Integer.parseInt(element.getAttribute(name)); - } catch (NumberFormatException e) { - element = getDefaultGroupElement(element.getTagName()); - try { - value = Integer.parseInt(element.getAttribute(name)); - } catch (NumberFormatException ee) { - } - } - return value; - } - - /** - * - */ - protected String getStringAttribute(Element element, String name) { - if (element.getAttributeNode(name) == null) { - element = getDefaultGroupElement(element.getTagName()); - } - return element.getAttribute(name); - } - - /** - * - */ - protected void setBooleanAttribute(Element element, String name, boolean value) { - element.setAttribute(name, new Boolean(value).toString()); - } - - /** - * - */ - public void setColorEnabled(boolean enabled) { - setBooleanAttribute(getGroupElement(GROUP_COLOR), COLOR_ENABLED, enabled); - } - - /** - * - */ - protected void setStringAttribute(Element element, String name, String value) { - element.setAttribute(name, value); - } - -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/preferences/ui/CSSColorManager.java b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/preferences/ui/CSSColorManager.java deleted file mode 100644 index 477d47e0be..0000000000 --- a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/preferences/ui/CSSColorManager.java +++ /dev/null @@ -1,204 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004 IBM Corporation and others. - * 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: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.css.ui.internal.preferences.ui; - - - -import org.eclipse.core.runtime.Platform; -import org.eclipse.swt.SWT; -import org.eclipse.swt.graphics.RGB; -import org.eclipse.wst.css.ui.internal.Logger; -import org.eclipse.wst.css.ui.internal.style.IStyleConstantsCSS; -import org.eclipse.wst.sse.ui.internal.preferences.ui.ColorNames; -import org.eclipse.wst.sse.ui.internal.provisional.preferences.PreferenceManager; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -/** - * @deprecated color preference management has moved to base preferences - */ -public class CSSColorManager extends PreferenceManager { - - private static CSSColorManager fInstance = null; - - // names for preference elements ... non-NLS - public static final String FOREGROUND = "foreground";//$NON-NLS-1$ - public static final String BACKGROUND = "background";//$NON-NLS-1$ - public static final String BOLD = "bold";//$NON-NLS-1$ - public static final String ITALIC = "italic";//$NON-NLS-1$ - public static final String NAME = "name";//$NON-NLS-1$ - public static final String COLOR = "color";//$NON-NLS-1$ - - private CSSColorManager() { - super(); - } - - protected Element addColor(Node colors, String name, String foreground, String background) { - Element newColor = newColor(colors.getOwnerDocument(), name, foreground, background); - colors.appendChild(newColor); - return newColor; - } - - /** - * <!ELEMENT colors (color) > <!ELEMENT color EMPTY > <!ATTLIST color name - * CDATA #REQUIRED foreground CDATA #IMPLIED background CDATA #IMPLIED - * bold CDATA #REQUIRED > - * - */ - public Document createDefaultPreferences() { - Document prefDocument = super.createDefaultPreferences(); - if (prefDocument == null) - return prefDocument; - - while (prefDocument.getChildNodes().getLength() > 0) - prefDocument.removeChild(prefDocument.getLastChild()); - Element colors = prefDocument.createElement(getRootElementName()); - prefDocument.appendChild(colors); - - // current as of 2001-8-13 - addColor(colors, IStyleConstantsCSS.NORMAL, null, null); - addColor(colors, IStyleConstantsCSS.ATMARK_RULE, getColorString(63, 127, 127), null); - addColor(colors, IStyleConstantsCSS.SELECTOR, getColorString(63, 127, 127), null); - addColor(colors, IStyleConstantsCSS.MEDIA, getColorString(42, 0, 225), null); - addColor(colors, IStyleConstantsCSS.COMMENT, getColorString(63, 95, 191), null); - addColor(colors, IStyleConstantsCSS.PROPERTY_NAME, getColorString(127, 0, 127), null); - addColor(colors, IStyleConstantsCSS.PROPERTY_VALUE, getColorString(42, 0, 225), null); - addColor(colors, IStyleConstantsCSS.URI, getColorString(42, 0, 225), null); - addColor(colors, IStyleConstantsCSS.STRING, getColorString(42, 0, 225), null); - addColor(colors, IStyleConstantsCSS.COLON, null, null); - addColor(colors, IStyleConstantsCSS.SEMI_COLON, null, null); - addColor(colors, IStyleConstantsCSS.CURLY_BRACE, null, null); - addColor(colors, IStyleConstantsCSS.ERROR, getColorString(191, 63, 63), null); - - return prefDocument; - } - - public RGB getBackgroundRGB(String name) { - Element element = getColorElement(name); - if (element != null) { - return getRGB(element.getAttribute(BACKGROUND)); - } - else { - return new RGB(255, 255, 255); - } - } - - private Element getColorElement(String name) { - Node colorsElement = getRootElement(); - NodeList colors = colorsElement.getChildNodes(); - for (int i = 0; i < colors.getLength(); i++) { - Node node = colors.item(i); - if (node.getNodeType() == Node.ELEMENT_NODE && ((Element) node).getAttribute(NAME).equals(name)) { - return (Element) node; - } - } - return null; - } - - public static String getColorString(int r, int g, int b) { - return "#" + getHexString(r, 2) + getHexString(g, 2) + getHexString(b, 2);//$NON-NLS-1$ - } - - public String getFilename() { - if (fileName == null) { - fileName = Platform.getStateLocation(Platform.getBundle("org.eclipse.sse.core")).toString() + "/csssourcecolors.xml";//$NON-NLS-1$ //$NON-NLS-2$ - } - return fileName; - } - - public RGB getForegroundRGB(String name) { - Element element = getColorElement(name); - if (element != null) { - return getRGB(element.getAttribute(FOREGROUND)); - } - else { - return new RGB(0, 0, 0); - } - } - - public static String getHexString(int value, int minWidth) { - String hexString = Integer.toHexString(value); - for (int i = hexString.length(); i < minWidth; i++) { - hexString = "0" + hexString;//$NON-NLS-1$ - } - return hexString; - } - - public synchronized static CSSColorManager getInstance() { - if (fInstance == null) { - fInstance = new CSSColorManager(); - } - return fInstance; - } - - private RGB getRGB(String rgbStr) { - RGB result = null; - if (6 < rgbStr.length() && rgbStr.charAt(0) == '#') { - try { - int r = Integer.valueOf(rgbStr.substring(1, 3), 16).intValue(); - int g = Integer.valueOf(rgbStr.substring(3, 5), 16).intValue(); - int b = Integer.valueOf(rgbStr.substring(5, 7), 16).intValue(); - result = new RGB(r, g, b); - } - catch (NumberFormatException e) { - Logger.logException("Invalid color string " + rgbStr, e); //$NON-NLS-1$ - } - } - return result; - } - - /** - * The intended name for the root Element of the Document; what is also - * listed within the DOCTYPE declaration. - * - * @return String - */ - public String getRootElementName() { - return ColorNames.COLORS; - } - - public int getStyle(String name) { - int style = SWT.NORMAL; - Element element = getColorElement(name); - if (element != null) { - if (Boolean.valueOf(element.getAttribute(BOLD)).booleanValue()) { - style |= SWT.BOLD; - } - if (Boolean.valueOf(element.getAttribute(ITALIC)).booleanValue()) { - style |= SWT.ITALIC; - } - } - return style; - } - - protected Element newColor(Document doc, String name, String foreground, String background) { - if (doc == null || name == null || name.length() < 1) - return null; - Element newColor = doc.createElement(ColorNames.COLOR); - newColor.setAttribute(ColorNames.NAME, name); - if (foreground != null) - newColor.setAttribute(ColorNames.FOREGROUND, foreground); - if (background != null) - newColor.setAttribute(ColorNames.BACKGROUND, background); - return newColor; - } - - protected Element newColor(Document doc, String name, String foreground, String background, boolean bold, boolean italic) { - Element newColor = newColor(doc, name, foreground, background); - if (newColor == null) - return null; - newColor.setAttribute(ColorNames.BOLD, String.valueOf(bold)); - newColor.setAttribute(ColorNames.ITALIC, String.valueOf(italic)); - return newColor; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/preferences/ui/CSSSourcePreferencePage.java b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/preferences/ui/CSSSourcePreferencePage.java index 6e6cae0f7b..3ba95e70ff 100644 --- a/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/preferences/ui/CSSSourcePreferencePage.java +++ b/bundles/org.eclipse.wst.css.ui/src/org/eclipse/wst/css/ui/internal/preferences/ui/CSSSourcePreferencePage.java @@ -18,110 +18,75 @@ import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Group; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Spinner; import org.eclipse.swt.widgets.Text; import org.eclipse.ui.help.WorkbenchHelp; import org.eclipse.wst.css.core.internal.CSSCorePlugin; -import org.eclipse.wst.css.core.internal.provisional.preferences.CSSModelPreferenceNames; +import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames; import org.eclipse.wst.css.ui.internal.CSSUIMessages; import org.eclipse.wst.css.ui.internal.CSSUIPlugin; import org.eclipse.wst.css.ui.internal.editor.IHelpContextIds; -import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames; -import org.eclipse.wst.xml.ui.internal.preferences.XMLSourcePreferencePage; +import org.eclipse.wst.sse.ui.internal.preferences.ui.AbstractPreferencePage; /** */ -public class CSSSourcePreferencePage extends XMLSourcePreferencePage { - // Formatting - private final static String FORMATTING_GROUP = CSSUIMessages.Formatting_UI_; - private final static String FORMATTING_LINE_WIDTH = CSSUIMessages.Line_width__UI_; - private final static String FORMATTING_INDENT_USING_TABS = CSSUIMessages.Indent_using_tabs_; - // CSS Formatting - private final static String FORMATTING_INSERT_LINE_BREAK = CSSUIMessages.PrefsLabel_WrappingInsertLineBreak; //$NON-NLS-1$ - private final static String FORMATTING_WRAPPING_WITHOUT_ATTR = CSSUIMessages.PrefsLabel_WrappingWithoutAttr;//$NON-NLS-1$ - - // Case - private final static String CASE_GROUP = CSSUIMessages.PrefsLabel_CaseGroup; //$NON-NLS-1$ - private final static String CASE_IDENT = CSSUIMessages.PrefsLabel_CaseIdent; //$NON-NLS-1$ - private final static String CASE_PROP_NAME = CSSUIMessages.PrefsLabel_CasePropName; //$NON-NLS-1$ - private final static String CASE_PROP_VALUE = CSSUIMessages.PrefsLabel_CasePropValue; //$NON-NLS-1$ - private final static String CASE_IDENT_UPPER = CSSUIMessages.PrefsLabel_CaseIdentUpper; //$NON-NLS-1$ - private final static String CASE_IDENT_LOWER = CSSUIMessages.PrefsLabel_CaseIdentLower; //$NON-NLS-1$ - private final static String CASE_PROP_NAME_UPPER = CSSUIMessages.PrefsLabel_CasePropNameUpper; //$NON-NLS-1$ - private final static String CASE_PROP_NAME_LOWER = CSSUIMessages.PrefsLabel_CasePropNameLower; //$NON-NLS-1$ - private final static String CASE_PROP_VALUE_UPPER = CSSUIMessages.PrefsLabel_CasePropValueUpper; //$NON-NLS-1$ - private final static String CASE_PROP_VALUE_LOWER = CSSUIMessages.PrefsLabel_CasePropValueLower; //$NON-NLS-1$ - - // one property per one line - protected Button fPropertyPerLine; - // prohibit wrapping if style attribute - protected Button fNowrapAttr; +public class CSSSourcePreferencePage extends AbstractPreferencePage { + // Content Assist + protected Button fAutoPropose; + protected Label fAutoProposeLabel; + protected Text fAutoProposeText; + protected Button fClearAllBlankLines; + protected Button fIdentLower; // case of output character // case of identifier protected Button fIdentUpper; - protected Button fIdentLower; + private Spinner fIndentationSize; + private Button fIndentUsingSpaces; + + private Button fIndentUsingTabs; + // Formatting + protected Label fLineWidthLabel; + + protected Text fLineWidthText; + // prohibit wrapping if style attribute + protected Button fNowrapAttr; + // one property per one line + protected Button fPropertyPerLine; + protected Button fPropNameLower; + // case of property name protected Button fPropNameUpper; - protected Button fPropNameLower; + protected Button fPropValueLower; // case of property value protected Button fPropValueUpper; - protected Button fPropValueLower; - - protected void createContentsForFormattingGroup(Composite parent) { - Group formattingGroup = createGroup(parent, 2); - formattingGroup.setText(FORMATTING_GROUP); - // // assigning one help for whole group - // WorkbenchHelp.setHelp(formattingGroup, - // "com.ibm.etools.webedit.core.cssp1200"); //$NON-NLS-1$ - - fLineWidthLabel = createLabel(formattingGroup, FORMATTING_LINE_WIDTH); - fLineWidthText = new Text(formattingGroup, SWT.SINGLE | SWT.BORDER); - GridData gData = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.BEGINNING); - gData.widthHint = 25; - fLineWidthText.setLayoutData(gData); - fLineWidthText.addModifyListener(this); - - fPropertyPerLine = createCheckBox(formattingGroup, FORMATTING_INSERT_LINE_BREAK); - ((GridData) fPropertyPerLine.getLayoutData()).horizontalSpan = 2; + protected Button fSplitMultiAttrs; + private final int MAX_INDENTATION_SIZE = 16; + private final int MIN_INDENTATION_SIZE = 0; - fIndentUsingTabs = createCheckBox(formattingGroup, FORMATTING_INDENT_USING_TABS); - ((GridData) fIndentUsingTabs.getLayoutData()).horizontalSpan = 2; - fNowrapAttr = createCheckBox(formattingGroup, FORMATTING_WRAPPING_WITHOUT_ATTR); - ((GridData) fNowrapAttr.getLayoutData()).horizontalSpan = 2; - } + /* + * (non-Javadoc) + * + * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite) + */ + protected Control createContents(Composite parent) { + Composite composite = (Composite) super.createContents(parent); + WorkbenchHelp.setHelp(composite, IHelpContextIds.CSS_PREFWEBX_SOURCE_HELPID); - protected void performDefaultsForFormattingGroup() { - // Formatting - Preferences prefs = getModelPreferences(); - fLineWidthText.setText(prefs.getDefaultString(CommonModelPreferenceNames.LINE_WIDTH)); - fPropertyPerLine.setSelection(prefs.getDefaultBoolean(CSSModelPreferenceNames.WRAPPING_ONE_PER_LINE)); - fIndentUsingTabs.setSelection(prefs.getDefaultBoolean(CommonModelPreferenceNames.INDENT_USING_TABS)); - fNowrapAttr.setSelection(prefs.getDefaultBoolean(CSSModelPreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR)); - } + createContentsForFormattingGroup(composite); + createContentsForContentAssistGroup(composite); + setSize(composite); + loadPreferences(); - protected void initializeValuesForFormattingGroup() { - // Formatting - Preferences prefs = getModelPreferences(); - fLineWidthText.setText(prefs.getString(CommonModelPreferenceNames.LINE_WIDTH)); - fPropertyPerLine.setSelection(prefs.getBoolean(CSSModelPreferenceNames.WRAPPING_ONE_PER_LINE)); - fIndentUsingTabs.setSelection(prefs.getBoolean(CommonModelPreferenceNames.INDENT_USING_TABS)); - fNowrapAttr.setSelection(prefs.getBoolean(CSSModelPreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR)); + return composite; } - protected void storeValuesForFormattingGroup() { - // Formatting - Preferences prefs = getModelPreferences(); - prefs.setValue(CommonModelPreferenceNames.LINE_WIDTH, fLineWidthText.getText()); - prefs.setValue(CSSModelPreferenceNames.WRAPPING_ONE_PER_LINE, fPropertyPerLine.getSelection()); - prefs.setValue(CommonModelPreferenceNames.INDENT_USING_TABS, fIndentUsingTabs.getSelection()); - prefs.setValue(CSSModelPreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR, fNowrapAttr.getSelection()); - } - - protected void createContentsForContentAssistGroup(Composite parent) { + private void createContentsForContentAssistGroup(Composite parent) { // not content assist, but preferred case Group caseGroup = createGroup(parent, 3); - caseGroup.setText(CASE_GROUP); + caseGroup.setText(CSSUIMessages.PrefsLabel_CaseGroup); // WorkbenchHelp.setHelp(caseGroup, // "com.ibm.etools.webedit.core.cssp1400"); //$NON-NLS-1$ @@ -132,89 +97,79 @@ public class CSSSourcePreferencePage extends XMLSourcePreferencePage { // use group for radio buttons so that associated label is read // Composite identGroup = createComposite(caseGroup, 1); Group identGroup = createGroup(caseGroup, 1); - identGroup.setText(CASE_IDENT); - fIdentUpper = createRadioButton(identGroup, CASE_IDENT_UPPER); - fIdentLower = createRadioButton(identGroup, CASE_IDENT_LOWER); + identGroup.setText(CSSUIMessages.PrefsLabel_CaseIdent); + fIdentUpper = createRadioButton(identGroup, CSSUIMessages.PrefsLabel_CaseIdentUpper); + fIdentLower = createRadioButton(identGroup, CSSUIMessages.PrefsLabel_CaseIdentLower); // use group for radio buttons so that associated label is read // Composite propNameGroup = createComposite(caseGroup, 1); Group propNameGroup = createGroup(caseGroup, 1); - propNameGroup.setText(CASE_PROP_NAME); - fPropNameUpper = createRadioButton(propNameGroup, CASE_PROP_NAME_UPPER); - fPropNameLower = createRadioButton(propNameGroup, CASE_PROP_NAME_LOWER); + propNameGroup.setText(CSSUIMessages.PrefsLabel_CasePropName); + fPropNameUpper = createRadioButton(propNameGroup, CSSUIMessages.PrefsLabel_CasePropNameUpper); + fPropNameLower = createRadioButton(propNameGroup, CSSUIMessages.PrefsLabel_CasePropNameLower); // use group for radio buttons so that associated label is read // Composite propValueGroup = createComposite(caseGroup, 1); Group propValueGroup = createGroup(caseGroup, 1); - propValueGroup.setText(CASE_PROP_VALUE); - fPropValueUpper = createRadioButton(propValueGroup, CASE_PROP_VALUE_UPPER); - fPropValueLower = createRadioButton(propValueGroup, CASE_PROP_VALUE_LOWER); - } - - protected void performDefaultsForContentAssistGroup() { - // not content assist, but preferred case - Preferences prefs = getModelPreferences(); - fIdentUpper.setSelection(prefs.getDefaultInt(CSSModelPreferenceNames.CASE_IDENTIFIER) == CommonModelPreferenceNames.UPPER); - fIdentLower.setSelection(prefs.getDefaultInt(CSSModelPreferenceNames.CASE_IDENTIFIER) == CommonModelPreferenceNames.LOWER); - fPropNameUpper.setSelection(prefs.getDefaultInt(CSSModelPreferenceNames.CASE_PROPERTY_NAME) == CommonModelPreferenceNames.UPPER); - fPropNameLower.setSelection(prefs.getDefaultInt(CSSModelPreferenceNames.CASE_PROPERTY_NAME) == CommonModelPreferenceNames.LOWER); - fPropValueUpper.setSelection(prefs.getDefaultInt(CSSModelPreferenceNames.CASE_PROPERTY_VALUE) == CommonModelPreferenceNames.UPPER); - fPropValueLower.setSelection(prefs.getDefaultInt(CSSModelPreferenceNames.CASE_PROPERTY_VALUE) == CommonModelPreferenceNames.LOWER); + propValueGroup.setText(CSSUIMessages.PrefsLabel_CasePropValue); + fPropValueUpper = createRadioButton(propValueGroup, CSSUIMessages.PrefsLabel_CasePropValueUpper); + fPropValueLower = createRadioButton(propValueGroup, CSSUIMessages.PrefsLabel_CasePropValueLower); } - protected void initializeValuesForContentAssistGroup() { - // not content assist, but preferred case - Preferences prefs = getModelPreferences(); - fIdentUpper.setSelection(prefs.getInt(CSSModelPreferenceNames.CASE_IDENTIFIER) == CommonModelPreferenceNames.UPPER); - fIdentLower.setSelection(prefs.getInt(CSSModelPreferenceNames.CASE_IDENTIFIER) == CommonModelPreferenceNames.LOWER); - fPropNameUpper.setSelection(prefs.getInt(CSSModelPreferenceNames.CASE_PROPERTY_NAME) == CommonModelPreferenceNames.UPPER); - fPropNameLower.setSelection(prefs.getInt(CSSModelPreferenceNames.CASE_PROPERTY_NAME) == CommonModelPreferenceNames.LOWER); - fPropValueUpper.setSelection(prefs.getInt(CSSModelPreferenceNames.CASE_PROPERTY_VALUE) == CommonModelPreferenceNames.UPPER); - fPropValueLower.setSelection(prefs.getInt(CSSModelPreferenceNames.CASE_PROPERTY_VALUE) == CommonModelPreferenceNames.LOWER); - } - - protected void storeValuesForContentAssistGroup() { - // not content assist, but preferred case - Preferences prefs = getModelPreferences(); - prefs.setValue(CSSModelPreferenceNames.CASE_IDENTIFIER, (fIdentUpper.getSelection()) ? CommonModelPreferenceNames.UPPER : CommonModelPreferenceNames.LOWER); - prefs.setValue(CSSModelPreferenceNames.CASE_PROPERTY_NAME, (fPropNameUpper.getSelection()) ? CommonModelPreferenceNames.UPPER : CommonModelPreferenceNames.LOWER); - prefs.setValue(CSSModelPreferenceNames.CASE_PROPERTY_VALUE, (fPropValueUpper.getSelection()) ? CommonModelPreferenceNames.UPPER : CommonModelPreferenceNames.LOWER); - } - - protected void createContentsForGrammarConstraintsGroup(Composite parent) { - // do nothing - } + private void createContentsForFormattingGroup(Composite parent) { + Group formattingGroup = createGroup(parent, 2); + formattingGroup.setText(CSSUIMessages.Formatting_UI_); + // // assigning one help for whole group + // WorkbenchHelp.setHelp(formattingGroup, + // "com.ibm.etools.webedit.core.cssp1200"); //$NON-NLS-1$ - protected void performDefaultsForGrammarConstraintsGroup() { - // do nothing - } + fLineWidthLabel = createLabel(formattingGroup, CSSUIMessages.Line_width__UI_); + fLineWidthText = new Text(formattingGroup, SWT.SINGLE | SWT.BORDER); + GridData gData = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.BEGINNING); + gData.widthHint = 25; + fLineWidthText.setLayoutData(gData); + fLineWidthText.addModifyListener(this); - protected void initializeValuesForGrammarConstraintsGroup() { - // do nothing - } + fPropertyPerLine = createCheckBox(formattingGroup, CSSUIMessages.PrefsLabel_WrappingInsertLineBreak); + ((GridData) fPropertyPerLine.getLayoutData()).horizontalSpan = 2; - protected void storeValuesForGrammarConstraintsGroup() { - // do nothing + fNowrapAttr = createCheckBox(formattingGroup, CSSUIMessages.PrefsLabel_WrappingWithoutAttr); + ((GridData) fNowrapAttr.getLayoutData()).horizontalSpan = 2; + + fIndentUsingTabs = createRadioButton(formattingGroup, CSSUIMessages.Indent_using_tabs_); + ((GridData) fIndentUsingTabs.getLayoutData()).horizontalSpan = 2; + fIndentUsingSpaces = createRadioButton(formattingGroup, CSSUIMessages.Indent_using_spaces); + ((GridData) fIndentUsingSpaces.getLayoutData()).horizontalSpan = 2; + + createLabel(formattingGroup, CSSUIMessages.Indentation_size); + fIndentationSize = new Spinner(formattingGroup, SWT.READ_ONLY | SWT.BORDER); + GridData gd= new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING); + fIndentationSize.setLayoutData(gd); + fIndentationSize.setToolTipText(CSSUIMessages.Indentation_size_tip); + fIndentationSize.setMinimum(MIN_INDENTATION_SIZE); + fIndentationSize.setMaximum(MAX_INDENTATION_SIZE); + fIndentationSize.setIncrement(1); + fIndentationSize.setPageIncrement(4); + fIndentationSize.addModifyListener(this); } - /* - * (non-Javadoc) - * + /* (non-Javadoc) * @see org.eclipse.jface.preference.PreferencePage#doGetPreferenceStore() */ - // protected IPreferenceStore doGetPreferenceStore() { - // return CSSUIPlugin.getDefault().getPreferenceStore(); - // } + protected IPreferenceStore doGetPreferenceStore() { + return CSSUIPlugin.getDefault().getPreferenceStore(); + } + /* * (non-Javadoc) * * @see com.ibm.sse.editor.xml.preferences.ui.XMLFilesPreferencePage#doSavePreferenceStore() */ - protected void doSavePreferenceStore() { + private void doSavePreferenceStore() { CSSUIPlugin.getDefault().savePluginPreferences(); CSSCorePlugin.getDefault().savePluginPreferences(); // model } - + /* * (non-Javadoc) * @@ -224,20 +179,110 @@ public class CSSSourcePreferencePage extends XMLSourcePreferencePage { return CSSCorePlugin.getDefault().getPluginPreferences(); } - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite) - */ - protected Control createContents(Composite parent) { - Control c = super.createContents(parent); - WorkbenchHelp.setHelp(c, IHelpContextIds.CSS_PREFWEBX_SOURCE_HELPID); - return c; + protected void initializeValues() { + initializeValuesForFormattingGroup(); + initializeValuesForContentAssistGroup(); } - /* (non-Javadoc) - * @see org.eclipse.jface.preference.PreferencePage#doGetPreferenceStore() - */ - protected IPreferenceStore doGetPreferenceStore() { - return CSSUIPlugin.getDefault().getPreferenceStore(); + + private void initializeValuesForContentAssistGroup() { + // not content assist, but preferred case + Preferences prefs = getModelPreferences(); + fIdentUpper.setSelection(prefs.getInt(CSSCorePreferenceNames.CASE_IDENTIFIER) == CSSCorePreferenceNames.UPPER); + fIdentLower.setSelection(prefs.getInt(CSSCorePreferenceNames.CASE_IDENTIFIER) == CSSCorePreferenceNames.LOWER); + fPropNameUpper.setSelection(prefs.getInt(CSSCorePreferenceNames.CASE_PROPERTY_NAME) == CSSCorePreferenceNames.UPPER); + fPropNameLower.setSelection(prefs.getInt(CSSCorePreferenceNames.CASE_PROPERTY_NAME) == CSSCorePreferenceNames.LOWER); + fPropValueUpper.setSelection(prefs.getInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.UPPER); + fPropValueLower.setSelection(prefs.getInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.LOWER); + } + + private void initializeValuesForFormattingGroup() { + // Formatting + Preferences prefs = getModelPreferences(); + fLineWidthText.setText(prefs.getString(CSSCorePreferenceNames.LINE_WIDTH)); + fPropertyPerLine.setSelection(prefs.getBoolean(CSSCorePreferenceNames.WRAPPING_ONE_PER_LINE)); + fNowrapAttr.setSelection(prefs.getBoolean(CSSCorePreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR)); + + if (CSSCorePreferenceNames.TAB.equals(getModelPreferences().getString(CSSCorePreferenceNames.INDENTATION_CHAR))) { + fIndentUsingTabs.setSelection(true); + fIndentUsingSpaces.setSelection(false); + } else { + fIndentUsingSpaces.setSelection(true); + fIndentUsingTabs.setSelection(false); + } + + fIndentationSize.setSelection(getModelPreferences().getInt(CSSCorePreferenceNames.INDENTATION_SIZE)); + } + + protected void performDefaults() { + performDefaultsForFormattingGroup(); + performDefaultsForContentAssistGroup(); + + validateValues(); + enableValues(); + + super.performDefaults(); + } + + private void performDefaultsForContentAssistGroup() { + // not content assist, but preferred case + Preferences prefs = getModelPreferences(); + fIdentUpper.setSelection(prefs.getDefaultInt(CSSCorePreferenceNames.CASE_IDENTIFIER) == CSSCorePreferenceNames.UPPER); + fIdentLower.setSelection(prefs.getDefaultInt(CSSCorePreferenceNames.CASE_IDENTIFIER) == CSSCorePreferenceNames.LOWER); + fPropNameUpper.setSelection(prefs.getDefaultInt(CSSCorePreferenceNames.CASE_PROPERTY_NAME) == CSSCorePreferenceNames.UPPER); + fPropNameLower.setSelection(prefs.getDefaultInt(CSSCorePreferenceNames.CASE_PROPERTY_NAME) == CSSCorePreferenceNames.LOWER); + fPropValueUpper.setSelection(prefs.getDefaultInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.UPPER); + fPropValueLower.setSelection(prefs.getDefaultInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.LOWER); + } + + private void performDefaultsForFormattingGroup() { + // Formatting + Preferences prefs = getModelPreferences(); + fLineWidthText.setText(prefs.getDefaultString(CSSCorePreferenceNames.LINE_WIDTH)); + fPropertyPerLine.setSelection(prefs.getDefaultBoolean(CSSCorePreferenceNames.WRAPPING_ONE_PER_LINE)); + fNowrapAttr.setSelection(prefs.getDefaultBoolean(CSSCorePreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR)); + + if (CSSCorePreferenceNames.TAB.equals(getModelPreferences().getDefaultString(CSSCorePreferenceNames.INDENTATION_CHAR))) { + fIndentUsingTabs.setSelection(true); + fIndentUsingSpaces.setSelection(false); + } else { + fIndentUsingSpaces.setSelection(true); + fIndentUsingTabs.setSelection(false); + } + fIndentationSize.setSelection(getModelPreferences().getDefaultInt(CSSCorePreferenceNames.INDENTATION_SIZE)); + } + + public boolean performOk() { + boolean result = super.performOk(); + + doSavePreferenceStore(); + + return result; + } + + protected void storeValues() { + storeValuesForFormattingGroup(); + storeValuesForContentAssistGroup(); + } + + private void storeValuesForContentAssistGroup() { + // not content assist, but preferred case + Preferences prefs = getModelPreferences(); + prefs.setValue(CSSCorePreferenceNames.CASE_IDENTIFIER, (fIdentUpper.getSelection()) ? CSSCorePreferenceNames.UPPER : CSSCorePreferenceNames.LOWER); + prefs.setValue(CSSCorePreferenceNames.CASE_PROPERTY_NAME, (fPropNameUpper.getSelection()) ? CSSCorePreferenceNames.UPPER : CSSCorePreferenceNames.LOWER); + prefs.setValue(CSSCorePreferenceNames.CASE_PROPERTY_VALUE, (fPropValueUpper.getSelection()) ? CSSCorePreferenceNames.UPPER : CSSCorePreferenceNames.LOWER); + } + private void storeValuesForFormattingGroup() { + // Formatting + Preferences prefs = getModelPreferences(); + prefs.setValue(CSSCorePreferenceNames.LINE_WIDTH, fLineWidthText.getText()); + prefs.setValue(CSSCorePreferenceNames.WRAPPING_ONE_PER_LINE, fPropertyPerLine.getSelection()); + prefs.setValue(CSSCorePreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR, fNowrapAttr.getSelection()); + + if (fIndentUsingTabs.getSelection()) { + getModelPreferences().setValue(CSSCorePreferenceNames.INDENTATION_CHAR, CSSCorePreferenceNames.TAB); + } else { + getModelPreferences().setValue(CSSCorePreferenceNames.INDENTATION_CHAR, CSSCorePreferenceNames.SPACE); + } + getModelPreferences().setValue(CSSCorePreferenceNames.INDENTATION_SIZE, fIndentationSize.getSelection()); } }
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.html.core/plugin.xml b/bundles/org.eclipse.wst.html.core/plugin.xml index 5dfccbebef..7aada526cd 100644 --- a/bundles/org.eclipse.wst.html.core/plugin.xml +++ b/bundles/org.eclipse.wst.html.core/plugin.xml @@ -210,4 +210,9 @@ systemID="http://www.wapforum.org/DTD/wml13.dtd"> </documentType> </extension> + + <!-- initialize html core preferences --> + <extension point="org.eclipse.core.runtime.preferences"> + <initializer class="org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceInitializer"/> + </extension> </plugin> diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLContentBuilder.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLContentBuilder.java index 55ebe6b741..7f612fb364 100644 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLContentBuilder.java +++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLContentBuilder.java @@ -13,8 +13,8 @@ package org.eclipse.wst.html.core.internal; import org.eclipse.core.runtime.Preferences; +import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames; import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties; -import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames; import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; import org.eclipse.wst.xml.core.internal.contentmodel.util.DOMContentBuilderImpl; import org.w3c.dom.Document; @@ -32,8 +32,8 @@ public class HTMLContentBuilder extends DOMContentBuilderImpl { public HTMLContentBuilder(Document document) { super(document); Preferences prefs = HTMLCorePlugin.getDefault().getPluginPreferences(); - fTagCase = prefs.getInt(CommonModelPreferenceNames.TAG_NAME_CASE); - fAttrCase = prefs.getInt(CommonModelPreferenceNames.ATTR_NAME_CASE); + fTagCase = prefs.getInt(HTMLCorePreferenceNames.TAG_NAME_CASE); + fAttrCase = prefs.getInt(HTMLCorePreferenceNames.ATTR_NAME_CASE); // Element caseSettings = HTMLPreferenceManager.getHTMLInstance().getElement(PreferenceNames.PREFERRED_CASE); // fTagCase = caseSettings.getAttribute(PreferenceNames.TAGNAME); // fAttrCase = caseSettings.getAttribute(PreferenceNames.ATTRIBUTENAME); @@ -45,16 +45,16 @@ public class HTMLContentBuilder extends DOMContentBuilderImpl { // if (cmnode instanceof HTMLCMNode && ((HTMLCMNode) cmnode).shouldIgnoreCase()) { if (shouldIgnoreCase(cmnode)) { if (cmnode.getNodeType() == CMNode.ELEMENT_DECLARATION) { - if (fTagCase == CommonModelPreferenceNames.LOWER) + if (fTagCase == HTMLCorePreferenceNames.LOWER) name = name.toLowerCase(); - else if (fTagCase == CommonModelPreferenceNames.UPPER) + else if (fTagCase == HTMLCorePreferenceNames.UPPER) name = name.toUpperCase(); // else do nothing } else if (cmnode.getNodeType() == CMNode.ATTRIBUTE_DECLARATION) { - if (fAttrCase == CommonModelPreferenceNames.LOWER) + if (fAttrCase == HTMLCorePreferenceNames.LOWER) name = name.toLowerCase(); - else if (fAttrCase == CommonModelPreferenceNames.UPPER) + else if (fAttrCase == HTMLCorePreferenceNames.UPPER) name = name.toUpperCase(); // else do nothing } diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLCorePlugin.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLCorePlugin.java index f564c3bf0b..fc73123c95 100644 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLCorePlugin.java +++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLCorePlugin.java @@ -13,11 +13,6 @@ package org.eclipse.wst.html.core.internal; import org.eclipse.core.resources.IWorkspace; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.Plugin; -import org.eclipse.core.runtime.Preferences; -import org.eclipse.wst.html.core.internal.provisional.HTMLFilesPreferenceNames; -import org.eclipse.wst.sse.core.internal.encoding.CommonCharsetNames; -import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames; -import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames; /** * The main plugin class to be used in the desktop. @@ -47,45 +42,4 @@ public class HTMLCorePlugin extends Plugin { public static IWorkspace getWorkspace() { return ResourcesPlugin.getWorkspace(); } - - /* (non-Javadoc) - * @see org.eclipse.core.runtime.Plugin#initializeDefaultPluginPreferences() - */ - protected void initializeDefaultPluginPreferences() { - Preferences prefs = getDefault().getPluginPreferences(); - // set model preference defaults - prefs.setDefault(CommonModelPreferenceNames.CLEANUP_TAG_NAME_CASE, CommonModelPreferenceNames.ASIS); - prefs.setDefault(CommonModelPreferenceNames.CLEANUP_ATTR_NAME_CASE, CommonModelPreferenceNames.ASIS); - prefs.setDefault(CommonModelPreferenceNames.INSERT_REQUIRED_ATTRS, true); - prefs.setDefault(CommonModelPreferenceNames.INSERT_MISSING_TAGS, true); - prefs.setDefault(CommonModelPreferenceNames.QUOTE_ATTR_VALUES, true); - prefs.setDefault(CommonModelPreferenceNames.FORMAT_SOURCE, true); - prefs.setDefault(CommonModelPreferenceNames.CONVERT_EOL_CODES, false); - - prefs.setDefault(CommonEncodingPreferenceNames.INPUT_CODESET, ""); //$NON-NLS-1$ - - String defaultEnc = CommonModelPreferenceNames.UTF_8; - String systemEnc = System.getProperty("file.encoding"); //$NON-NLS-1$ - if (systemEnc != null) { - defaultEnc = CommonCharsetNames.getPreferredDefaultIanaName(systemEnc, CommonModelPreferenceNames.UTF_8); - } - prefs.setDefault(CommonEncodingPreferenceNames.OUTPUT_CODESET, defaultEnc); - - prefs.setDefault(CommonEncodingPreferenceNames.END_OF_LINE_CODE, ""); //$NON-NLS-1$ - prefs.setDefault(CommonModelPreferenceNames.TAB_WIDTH, CommonModelPreferenceNames.DEFAULT_TAB_WIDTH); - - prefs.setDefault(CommonModelPreferenceNames.FORMATTING_SUPPORTED, true); - prefs.setDefault(CommonModelPreferenceNames.LINE_WIDTH, 72); - prefs.setDefault(CommonModelPreferenceNames.SPLIT_MULTI_ATTRS, false); - prefs.setDefault(CommonModelPreferenceNames.INDENT_USING_TABS, true); - prefs.setDefault(CommonModelPreferenceNames.CLEAR_ALL_BLANK_LINES, false); - - prefs.setDefault(CommonModelPreferenceNames.PREFERRED_MARKUP_CASE_SUPPORTED, true); - prefs.setDefault(CommonModelPreferenceNames.TAG_NAME_CASE, CommonModelPreferenceNames.LOWER); - prefs.setDefault(CommonModelPreferenceNames.ATTR_NAME_CASE, CommonModelPreferenceNames.LOWER); - - prefs.setDefault(HTMLFilesPreferenceNames.DEFAULT_SUFFIX, HTMLFilesPreferenceNames.HTML_SUFFIX); - prefs.setDefault(HTMLFilesPreferenceNames.GENERATE_DOCUMENT_TYPE, true); - prefs.setDefault(HTMLFilesPreferenceNames.GENERATE_GENERATOR, true); - } } diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/AbstractNodeCleanupHandler.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/AbstractNodeCleanupHandler.java index 26c6b90620..ea0244ed05 100644 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/AbstractNodeCleanupHandler.java +++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/AbstractNodeCleanupHandler.java @@ -13,10 +13,10 @@ package org.eclipse.wst.html.core.internal.cleanup; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.Preferences; import org.eclipse.wst.html.core.internal.HTMLCorePlugin; +import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames; import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupHandler; import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupPreferences; import org.eclipse.wst.sse.core.internal.cleanup.StructuredCleanupPreferences; -import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames; import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentEvent; import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; @@ -40,15 +40,13 @@ abstract class AbstractNodeCleanupHandler implements IStructuredCleanupHandler { Preferences preferences = getModelPreferences(); if (preferences != null) { - fCleanupPreferences.setTagNameCase(preferences.getInt(CommonModelPreferenceNames.CLEANUP_TAG_NAME_CASE)); - fCleanupPreferences.setAttrNameCase(preferences.getInt(CommonModelPreferenceNames.CLEANUP_ATTR_NAME_CASE)); - fCleanupPreferences.setCompressEmptyElementTags(preferences.getBoolean(CommonModelPreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS)); - fCleanupPreferences.setInsertRequiredAttrs(preferences.getBoolean(CommonModelPreferenceNames.INSERT_REQUIRED_ATTRS)); - fCleanupPreferences.setInsertMissingTags(preferences.getBoolean(CommonModelPreferenceNames.INSERT_MISSING_TAGS)); - fCleanupPreferences.setQuoteAttrValues(preferences.getBoolean(CommonModelPreferenceNames.QUOTE_ATTR_VALUES)); - fCleanupPreferences.setFormatSource(preferences.getBoolean(CommonModelPreferenceNames.FORMAT_SOURCE)); - fCleanupPreferences.setConvertEOLCodes(preferences.getBoolean(CommonModelPreferenceNames.CONVERT_EOL_CODES)); - fCleanupPreferences.setEOLCode(preferences.getString(CommonModelPreferenceNames.CLEANUP_EOL_CODE)); + fCleanupPreferences.setCompressEmptyElementTags(preferences.getBoolean(HTMLCorePreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS)); + fCleanupPreferences.setInsertRequiredAttrs(preferences.getBoolean(HTMLCorePreferenceNames.INSERT_REQUIRED_ATTRS)); + fCleanupPreferences.setInsertMissingTags(preferences.getBoolean(HTMLCorePreferenceNames.INSERT_MISSING_TAGS)); + fCleanupPreferences.setQuoteAttrValues(preferences.getBoolean(HTMLCorePreferenceNames.QUOTE_ATTR_VALUES)); + fCleanupPreferences.setFormatSource(preferences.getBoolean(HTMLCorePreferenceNames.FORMAT_SOURCE)); + fCleanupPreferences.setConvertEOLCodes(preferences.getBoolean(HTMLCorePreferenceNames.CONVERT_EOL_CODES)); + fCleanupPreferences.setEOLCode(preferences.getString(HTMLCorePreferenceNames.CLEANUP_EOL_CODE)); } } diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/ElementNodeCleanupHandler.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/ElementNodeCleanupHandler.java index 356d54b479..70a79f0a43 100644 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/ElementNodeCleanupHandler.java +++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/ElementNodeCleanupHandler.java @@ -24,8 +24,8 @@ import org.eclipse.wst.css.core.internal.format.CSSSourceFormatter; import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleDeclarationAdapter; import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel; import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; +import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames; import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupHandler; -import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames; import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter; import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; import org.eclipse.wst.sse.core.internal.provisional.exceptions.SourceEditingRuntimeException; @@ -133,7 +133,7 @@ public class ElementNodeCleanupHandler extends AbstractNodeCleanupHandler { if (element.isCommentTag()) return; // do nothing - int attrNameCase = CommonModelPreferenceNames.ASIS; + int attrNameCase = HTMLCorePreferenceNames.ASIS; if (shouldIgnoreCase(element)) attrNameCase = getCleanupPreferences().getAttrNameCase(); @@ -150,9 +150,9 @@ public class ElementNodeCleanupHandler extends AbstractNodeCleanupHandler { // English locale should be used to convert between uppercase and lowercase // (otherwise "link" would be converted to "LÝNK" in Turkish, where '?' in "LÝNK" // is the "I Overdot Capital" in Turkish). - if (attrNameCase == CommonModelPreferenceNames.LOWER) + if (attrNameCase == HTMLCorePreferenceNames.LOWER) newAttrName = oldAttrName.toLowerCase(Locale.US); - else if (attrNameCase == CommonModelPreferenceNames.UPPER) + else if (attrNameCase == HTMLCorePreferenceNames.UPPER) newAttrName = oldAttrName.toUpperCase(Locale.US); if (newAttrName.compareTo(oldAttrName) != 0) { @@ -171,7 +171,7 @@ public class ElementNodeCleanupHandler extends AbstractNodeCleanupHandler { if (element.isCommentTag()) return node; // do nothing - int tagNameCase = CommonModelPreferenceNames.ASIS; + int tagNameCase = HTMLCorePreferenceNames.ASIS; if (shouldIgnoreCase(element)) tagNameCase = getCleanupPreferences().getTagNameCase(); @@ -185,9 +185,9 @@ public class ElementNodeCleanupHandler extends AbstractNodeCleanupHandler { // English locale should be used to convert between uppercase and lowercase // (otherwise "link" would be converted to "LÝNK" in Turkish, where '?' in "LÝNK" // is the "I Overdot Capital" in Turkish). - if (tagNameCase == CommonModelPreferenceNames.LOWER) + if (tagNameCase == HTMLCorePreferenceNames.LOWER) newTagName = oldTagName.toLowerCase(Locale.US); - else if (tagNameCase == CommonModelPreferenceNames.UPPER) + else if (tagNameCase == HTMLCorePreferenceNames.UPPER) newTagName = oldTagName.toUpperCase(Locale.US); IDOMModel structuredModel = node.getModel(); diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLConverter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLConverter.java index 0c93f35bce..4207f6f43e 100644 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLConverter.java +++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLConverter.java @@ -19,8 +19,8 @@ import java.io.UnsupportedEncodingException; import org.eclipse.core.resources.IFile; import org.eclipse.core.runtime.CoreException; import org.eclipse.wst.html.core.internal.cleanup.HTMLCleanupProcessorImpl; +import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames; import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupPreferences; -import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames; import org.eclipse.wst.sse.core.internal.provisional.IModelManager; import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; import org.eclipse.wst.sse.core.internal.provisional.StructuredModelManager; @@ -68,12 +68,12 @@ public class HTMLConverter { pref.setQuoteAttrValues(true); pref.setFormatSource(false); if (model.getDocument().isXMLType()) { // XHTML - pref.setTagNameCase(CommonModelPreferenceNames.LOWER); - pref.setAttrNameCase(CommonModelPreferenceNames.LOWER); + pref.setTagNameCase(HTMLCorePreferenceNames.LOWER); + pref.setAttrNameCase(HTMLCorePreferenceNames.LOWER); } else { - pref.setTagNameCase(CommonModelPreferenceNames.ASIS); - pref.setAttrNameCase(CommonModelPreferenceNames.ASIS); + pref.setTagNameCase(HTMLCorePreferenceNames.ASIS); + pref.setAttrNameCase(HTMLCorePreferenceNames.ASIS); } processor.cleanupModel(model); diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeAdapterFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeAdapterFactory.java index 3bb28b2ebb..840f8cc9d0 100644 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeAdapterFactory.java +++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeAdapterFactory.java @@ -14,7 +14,7 @@ package org.eclipse.wst.html.core.internal.document; import org.eclipse.core.runtime.Preferences; import org.eclipse.wst.html.core.internal.HTMLCorePlugin; -import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames; +import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames; import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter; import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory; import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; @@ -23,7 +23,7 @@ import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument; /** */ -public class HTMLDocumentTypeAdapterFactory implements INodeAdapterFactory, Preferences.IPropertyChangeListener, CommonModelPreferenceNames { +public class HTMLDocumentTypeAdapterFactory implements INodeAdapterFactory, Preferences.IPropertyChangeListener { private int tagNameCase = DocumentTypeAdapter.UPPER_CASE; private int attrNameCase = DocumentTypeAdapter.LOWER_CASE; @@ -97,7 +97,7 @@ public class HTMLDocumentTypeAdapterFactory implements INodeAdapterFactory, Pref if (property == null) return; - if (property.equals(TAG_NAME_CASE) || property.equals(ATTR_NAME_CASE)) { + if (property.equals(HTMLCorePreferenceNames.TAG_NAME_CASE) || property.equals(HTMLCorePreferenceNames.ATTR_NAME_CASE)) { updateCases(); } } @@ -111,10 +111,10 @@ public class HTMLDocumentTypeAdapterFactory implements INodeAdapterFactory, Pref if (this.preferences == null) return; - if (this.preferences.getInt(TAG_NAME_CASE) == LOWER) { + if (this.preferences.getInt(HTMLCorePreferenceNames.TAG_NAME_CASE) == HTMLCorePreferenceNames.LOWER) { this.tagNameCase = DocumentTypeAdapter.LOWER_CASE; } - if (this.preferences.getInt(ATTR_NAME_CASE) == UPPER) { + if (this.preferences.getInt(HTMLCorePreferenceNames.ATTR_NAME_CASE) == HTMLCorePreferenceNames.UPPER) { this.attrNameCase = DocumentTypeAdapter.UPPER_CASE; } } diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatProcessorImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatProcessorImpl.java index 3b4afe689e..4a8da5dc43 100644 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatProcessorImpl.java +++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatProcessorImpl.java @@ -12,10 +12,9 @@ package org.eclipse.wst.html.core.internal.format; import org.eclipse.core.runtime.Preferences; import org.eclipse.wst.html.core.internal.HTMLCorePlugin; -import org.eclipse.wst.sse.core.internal.SSECorePlugin; +import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames; import org.eclipse.wst.sse.core.internal.format.IStructuredFormatPreferences; import org.eclipse.wst.sse.core.internal.format.IStructuredFormatter; -import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames; import org.eclipse.wst.xml.core.internal.provisional.format.FormatProcessorXML; import org.eclipse.wst.xml.core.internal.provisional.format.IStructuredFormatPreferencesXML; import org.eclipse.wst.xml.core.internal.provisional.format.StructuredFormatPreferencesXML; @@ -38,20 +37,22 @@ public class HTMLFormatProcessorImpl extends FormatProcessorXML { Preferences preferences = HTMLCorePlugin.getDefault().getPluginPreferences(); if (preferences != null) { - fFormatPreferences.setLineWidth(preferences.getInt(CommonModelPreferenceNames.LINE_WIDTH)); - ((IStructuredFormatPreferencesXML) fFormatPreferences).setSplitMultiAttrs(preferences.getBoolean(CommonModelPreferenceNames.SPLIT_MULTI_ATTRS)); - fFormatPreferences.setClearAllBlankLines(preferences.getBoolean(CommonModelPreferenceNames.CLEAR_ALL_BLANK_LINES)); - - if (preferences.getBoolean(CommonModelPreferenceNames.INDENT_USING_TABS)) - fFormatPreferences.setIndent("\t"); //$NON-NLS-1$ - else { - int tabWidth = SSECorePlugin.getDefault().getPluginPreferences().getInt(CommonModelPreferenceNames.TAB_WIDTH); - String indent = ""; //$NON-NLS-1$ - for (int i = 0; i < tabWidth; i++) { - indent += " "; //$NON-NLS-1$ - } - fFormatPreferences.setIndent(indent); + fFormatPreferences.setLineWidth(preferences.getInt(HTMLCorePreferenceNames.LINE_WIDTH)); + ((IStructuredFormatPreferencesXML) fFormatPreferences).setSplitMultiAttrs(preferences.getBoolean(HTMLCorePreferenceNames.SPLIT_MULTI_ATTRS)); + fFormatPreferences.setClearAllBlankLines(preferences.getBoolean(HTMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES)); + + String indentChar = " "; //$NON-NLS-1$ + String indentCharPref = preferences.getString(HTMLCorePreferenceNames.INDENTATION_CHAR); + if (HTMLCorePreferenceNames.TAB.equals(indentCharPref)) { + indentChar = "\t"; //$NON-NLS-1$ } + int indentationWidth = preferences.getInt(HTMLCorePreferenceNames.INDENTATION_SIZE); + + String indent = ""; //$NON-NLS-1$ + for (int i = 0; i < indentationWidth; i++) { + indent += indentChar; + } + fFormatPreferences.setIndent(indent); } } diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatter.java index daee7dcd64..a026d6644a 100644 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatter.java +++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatter.java @@ -14,13 +14,12 @@ import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.Preferences; import org.eclipse.jface.text.BadLocationException; import org.eclipse.wst.html.core.internal.HTMLCorePlugin; +import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames; import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties; import org.eclipse.wst.html.core.internal.provisional.HTMLFormatContraints; -import org.eclipse.wst.sse.core.internal.SSECorePlugin; import org.eclipse.wst.sse.core.internal.format.IStructuredFormatContraints; import org.eclipse.wst.sse.core.internal.format.IStructuredFormatPreferences; import org.eclipse.wst.sse.core.internal.format.IStructuredFormatter; -import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames; import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; @@ -613,20 +612,22 @@ public class HTMLFormatter implements IStructuredFormatter { Preferences preferences = HTMLCorePlugin.getDefault().getPluginPreferences(); if (preferences != null) { - fFormatPreferences.setLineWidth(preferences.getInt(CommonModelPreferenceNames.LINE_WIDTH)); - ((IStructuredFormatPreferencesXML) fFormatPreferences).setSplitMultiAttrs(preferences.getBoolean(CommonModelPreferenceNames.SPLIT_MULTI_ATTRS)); - fFormatPreferences.setClearAllBlankLines(preferences.getBoolean(CommonModelPreferenceNames.CLEAR_ALL_BLANK_LINES)); + fFormatPreferences.setLineWidth(preferences.getInt(HTMLCorePreferenceNames.LINE_WIDTH)); + ((IStructuredFormatPreferencesXML) fFormatPreferences).setSplitMultiAttrs(preferences.getBoolean(HTMLCorePreferenceNames.SPLIT_MULTI_ATTRS)); + fFormatPreferences.setClearAllBlankLines(preferences.getBoolean(HTMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES)); + + String indentChar = " "; //$NON-NLS-1$ + String indentCharPref = preferences.getString(HTMLCorePreferenceNames.INDENTATION_CHAR); + if (HTMLCorePreferenceNames.TAB.equals(indentCharPref)) { + indentChar = "\t"; //$NON-NLS-1$ + } + int indentationWidth = preferences.getInt(HTMLCorePreferenceNames.INDENTATION_SIZE); - if (preferences.getBoolean(CommonModelPreferenceNames.INDENT_USING_TABS)) - fFormatPreferences.setIndent("\t"); //$NON-NLS-1$ - else { - int tabWidth = SSECorePlugin.getDefault().getPluginPreferences().getInt(CommonModelPreferenceNames.TAB_WIDTH); - String indent = ""; //$NON-NLS-1$ - for (int i = 0; i < tabWidth; i++) { - indent += " "; //$NON-NLS-1$ - } - fFormatPreferences.setIndent(indent); + String indent = ""; //$NON-NLS-1$ + for (int i = 0; i < indentationWidth; i++) { + indent += indentChar; } + fFormatPreferences.setIndent(indent); } } diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatterFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatterFactory.java index 4c4b9d9a4d..eff9cd9b48 100644 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatterFactory.java +++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatterFactory.java @@ -12,10 +12,9 @@ package org.eclipse.wst.html.core.internal.format; import org.eclipse.core.runtime.Preferences; import org.eclipse.wst.html.core.internal.HTMLCorePlugin; -import org.eclipse.wst.sse.core.internal.SSECorePlugin; +import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames; import org.eclipse.wst.sse.core.internal.format.IStructuredFormatPreferences; import org.eclipse.wst.sse.core.internal.format.IStructuredFormatter; -import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames; import org.eclipse.wst.xml.core.internal.provisional.format.IStructuredFormatPreferencesXML; import org.eclipse.wst.xml.core.internal.provisional.format.StructuredFormatPreferencesXML; import org.w3c.dom.Node; @@ -86,20 +85,22 @@ class HTMLFormatterFactory { Preferences preferences = HTMLCorePlugin.getDefault().getPluginPreferences(); if (preferences != null) { - fFormatPreferences.setLineWidth(preferences.getInt(CommonModelPreferenceNames.LINE_WIDTH)); - fFormatPreferences.setSplitMultiAttrs(preferences.getBoolean(CommonModelPreferenceNames.SPLIT_MULTI_ATTRS)); - fFormatPreferences.setClearAllBlankLines(preferences.getBoolean(CommonModelPreferenceNames.CLEAR_ALL_BLANK_LINES)); + fFormatPreferences.setLineWidth(preferences.getInt(HTMLCorePreferenceNames.LINE_WIDTH)); + fFormatPreferences.setSplitMultiAttrs(preferences.getBoolean(HTMLCorePreferenceNames.SPLIT_MULTI_ATTRS)); + fFormatPreferences.setClearAllBlankLines(preferences.getBoolean(HTMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES)); - if (preferences.getBoolean(CommonModelPreferenceNames.INDENT_USING_TABS)) - fFormatPreferences.setIndent("\t"); //$NON-NLS-1$ - else { - int tabWidth = SSECorePlugin.getDefault().getPluginPreferences().getInt(CommonModelPreferenceNames.TAB_WIDTH); - String indent = ""; //$NON-NLS-1$ - for (int i = 0; i < tabWidth; i++) { - indent += " "; //$NON-NLS-1$ - } - fFormatPreferences.setIndent(indent); + String indentChar = " "; //$NON-NLS-1$ + String indentCharPref = preferences.getString(HTMLCorePreferenceNames.INDENTATION_CHAR); + if (HTMLCorePreferenceNames.TAB.equals(indentCharPref)) { + indentChar = "\t"; //$NON-NLS-1$ + } + int indentationWidth = preferences.getInt(HTMLCorePreferenceNames.INDENTATION_SIZE); + + String indent = ""; //$NON-NLS-1$ + for (int i = 0; i < indentationWidth; i++) { + indent += indentChar; } + fFormatPreferences.setIndent(indent); } } diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/preferences/HTMLCorePreferenceInitializer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/preferences/HTMLCorePreferenceInitializer.java new file mode 100644 index 0000000000..1683e1c84d --- /dev/null +++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/preferences/HTMLCorePreferenceInitializer.java @@ -0,0 +1,59 @@ +/******************************************************************************* + * Copyright (c) 2005 IBM Corporation and others. + * 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: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.wst.html.core.internal.preferences; + +import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer; +import org.eclipse.core.runtime.preferences.DefaultScope; +import org.eclipse.core.runtime.preferences.IEclipsePreferences; +import org.eclipse.wst.html.core.internal.HTMLCorePlugin; +import org.eclipse.wst.sse.core.internal.encoding.CommonCharsetNames; +import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames; + +/** + * Sets default values for HTML Core preferences + */ +public class HTMLCorePreferenceInitializer extends AbstractPreferenceInitializer { + + public void initializeDefaultPreferences() { + IEclipsePreferences node = new DefaultScope().getNode(HTMLCorePlugin.getDefault().getBundle().getSymbolicName()); + + // formatting preferences + node.putInt(HTMLCorePreferenceNames.LINE_WIDTH, 72); + node.putBoolean(HTMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES, false); + node.put(HTMLCorePreferenceNames.INDENTATION_CHAR, HTMLCorePreferenceNames.TAB); + node.putInt(HTMLCorePreferenceNames.INDENTATION_SIZE, 1); + node.putBoolean(HTMLCorePreferenceNames.SPLIT_MULTI_ATTRS, false); + + // cleanup preferences + node.putInt(HTMLCorePreferenceNames.CLEANUP_TAG_NAME_CASE, HTMLCorePreferenceNames.ASIS); + node.putInt(HTMLCorePreferenceNames.CLEANUP_ATTR_NAME_CASE, HTMLCorePreferenceNames.ASIS); + // node.putBoolean(HTMLCorePreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS, + // true); + node.putBoolean(HTMLCorePreferenceNames.INSERT_REQUIRED_ATTRS, true); + node.putBoolean(HTMLCorePreferenceNames.INSERT_MISSING_TAGS, true); + node.putBoolean(HTMLCorePreferenceNames.QUOTE_ATTR_VALUES, true); + node.putBoolean(HTMLCorePreferenceNames.FORMAT_SOURCE, true); + node.putBoolean(HTMLCorePreferenceNames.CONVERT_EOL_CODES, false); + + // code generation preferences + node.put(CommonEncodingPreferenceNames.INPUT_CODESET, ""); //$NON-NLS-1$ + String defaultEnc = "UTF-8";//$NON-NLS-1$ + String systemEnc = System.getProperty("file.encoding"); //$NON-NLS-1$ + if (systemEnc != null) { + defaultEnc = CommonCharsetNames.getPreferredDefaultIanaName(systemEnc, "UTF-8");//$NON-NLS-1$ + } + node.put(CommonEncodingPreferenceNames.OUTPUT_CODESET, defaultEnc); + node.put(CommonEncodingPreferenceNames.END_OF_LINE_CODE, ""); //$NON-NLS-1$ + + node.putInt(HTMLCorePreferenceNames.TAG_NAME_CASE, HTMLCorePreferenceNames.LOWER); + node.putInt(HTMLCorePreferenceNames.ATTR_NAME_CASE, HTMLCorePreferenceNames.LOWER); + } +} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/preferences/HTMLCorePreferenceNames.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/preferences/HTMLCorePreferenceNames.java new file mode 100644 index 0000000000..e424d5561e --- /dev/null +++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/preferences/HTMLCorePreferenceNames.java @@ -0,0 +1,214 @@ +/******************************************************************************* + * Copyright (c) 2005 IBM Corporation and others. + * 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: + * IBM Corporation - initial API and implementation + * Jens Lukowski/Innoopract - initial renaming/restructuring + * + *******************************************************************************/ +package org.eclipse.wst.html.core.internal.preferences; + +/** + * Common preference keys used by HTML core + * + * @since 1.0 + */ +public class HTMLCorePreferenceNames { + private HTMLCorePreferenceNames() { + // empty private constructor so users cannot instantiate class + } + + /** + * The maximum width of a line before a line split is needed. + * <p> + * Value is of type <code>Integer</code>. + * </p> + */ + public static final String LINE_WIDTH = "lineWidth";//$NON-NLS-1$ + + /** + * Indicates if all blanks lines should be cleared during formatting. + * Blank lines will be kept when false. + * <p> + * Value is of type <code>Boolean</code>. + * </p> + */ + public static final String CLEAR_ALL_BLANK_LINES = "clearAllBlankLines";//$NON-NLS-1$ + + /** + * The number of #INDENTATION_CHAR for 1 indentation. + * <p> + * Value is of type <code>Integer</code>. + * </p> + */ + public static final String INDENTATION_SIZE = "indentationSize";//$NON-NLS-1$ + + /** + * The character used for indentation. + * <p> + * Value is of type <code>String</code>.<br /> + * Possible values: {TAB, SPACE} + * </p> + */ + public static final String INDENTATION_CHAR = "indentationChar";//$NON-NLS-1$ + + /** + * Possible value for the preference #INDENTATION_CHAR. Indicates to use + * tab character when formatting. + * + * @see #SPACE + * @see #INDENTATION_CHAR + */ + public static final String TAB = "tab"; //$NON-NLS-1$ + + /** + * Possible value for the preference #INDENTATION_CHAR. Indicates to use + * space character when formatting. + * + * @see #TAB + * @see #INDENTATION_CHAR + */ + public static final String SPACE = "space"; //$NON-NLS-1$ + + /** + * Indicates if tags with multiple attributes should be formatted + * (splitting each attr on a new line). + * <p> + * Value is of type <code>Boolean</code>. + * </p> + */ + public static final String SPLIT_MULTI_ATTRS = "splitMultiAttrs";//$NON-NLS-1$ + + /** + * Indicates whether or not cleanup processor should format source. + * <p> + * Value is of type <code>Boolean</code>. + * </p> + */ + public static final String FORMAT_SOURCE = "formatSource";//$NON-NLS-1$ + + /** + * Indicates whether or not empty elements should be compressed during + * cleanup. + * <p> + * Value is of type <code>Boolean</code>. + * </p> + */ + public static final String COMPRESS_EMPTY_ELEMENT_TAGS = "compressEmptyElementTags";//$NON-NLS-1$ + + /** + * Indicates whether or not to insert required attributes during cleanup. + * <p> + * Value is of type <code>Boolean</code>. + * </p> + */ + public static final String INSERT_REQUIRED_ATTRS = "insertRequiredAttrs";//$NON-NLS-1$ + + /** + * Indicates whether or not to insert missing tags during cleanup. + * <p> + * Value is of type <code>Boolean</code>. + * </p> + */ + public static final String INSERT_MISSING_TAGS = "insertMissingTags";//$NON-NLS-1$ + + /** + * Indicates whether or not to quote all attribute values during cleanup. + * <p> + * Value is of type <code>Boolean</code>. + * </p> + */ + public static final String QUOTE_ATTR_VALUES = "quoteAttrValues";//$NON-NLS-1$ + + /** + * Indicates whether or not to convert all line delimiters during cleanup. + * <p> + * Value is of type <code>Boolean</code>. + * </p> + */ + public static final String CONVERT_EOL_CODES = "convertEOLCodes";//$NON-NLS-1$ + + /** + * Indicates the line delimiter to use during cleanup if converting line + * delimiters. + * <p> + * Value is of type <code>String</code>.<br /> + * Possible values: {CR, CRLF, LF, NO_TRANSLATION} + * </p> + * + */ + public static final String CLEANUP_EOL_CODE = "cleanupEOLCode";//$NON-NLS-1$ + + /** + * Indicates case to use on all tag names during cleanup. + * <p> + * Value is of type <code>Integer</code>.<br /> + * Possible values: {LOWER, UPPER, ASIS} + * </p> + */ + public static final String CLEANUP_TAG_NAME_CASE = "cleanupTagNameCase";//$NON-NLS-1$ + + /** + * Indicates case to use on all attribute names during cleanup. + * <p> + * Value is of type <code>Integer</code>.<br /> + * Possible values: {LOWER, UPPER, ASIS} + * </p> + */ + public static final String CLEANUP_ATTR_NAME_CASE = "cleanupAttrNameCase";//$NON-NLS-1$ + + /** + * Preferred markup case for tag names in code generation + * <p> + * Value is of type <code>Integer</code>.<br /> + * Possible values: {LOWER, UPPER} + * </p> + */ + public static final String TAG_NAME_CASE = "tagNameCase";//$NON-NLS-1$ + + /** + * Preferred markup case for attribute names in code generation + * <p> + * Value is of type <code>Integer</code>.<br /> + * Possible values: {LOWER, UPPER} + * </p> + */ + public static final String ATTR_NAME_CASE = "attrNameCase";//$NON-NLS-1$ + + /** + * Possible value for the preference #TAG_NAME_CASE or #ATTR_NAME_CASE. + * Indicates to leave case as is. + * + * @see #LOWER + * @see #UPPER + * @see #TAG_NAME_CASE + * @see #ATTR_NAME_CASE + */ + public static final int ASIS = 0; + + /** + * Possible value for the preference #TAG_NAME_CASE or #ATTR_NAME_CASE. + * Indicates to make name lowercase. + * + * @see #ASIS + * @see #UPPER + * @see #TAG_NAME_CASE + * @see #ATTR_NAME_CASE + */ + public static final int LOWER = 1; + + /** + * Possible value for the preference #TAG_NAME_CASE or #ATTR_NAME_CASE. + * Indicates to make name uppercase. + * + * @see #LOWER + * @see #ASIS + * @see #TAG_NAME_CASE + * @see #ATTR_NAME_CASE + */ + public static final int UPPER = 2; +} diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTMLFilesPreferenceNames.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTMLFilesPreferenceNames.java index 8bb687058e..fe2b4ea9df 100644 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTMLFilesPreferenceNames.java +++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTMLFilesPreferenceNames.java @@ -12,12 +12,11 @@ package org.eclipse.wst.html.core.internal.provisional; import org.eclipse.core.runtime.IProduct; import org.eclipse.core.runtime.Platform; -import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames; /** - * Additional preferences for new HTML Files generation + * @deprecated not used in WTP */ -public interface HTMLFilesPreferenceNames extends CommonModelPreferenceNames { +public interface HTMLFilesPreferenceNames { static final String DEFAULT_SUFFIX = "defaultSuffix";//$NON-NLS-1$ static final String HTML_SUFFIX = "html";//$NON-NLS-1$ diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/HTMLUIMessages.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/HTMLUIMessages.java index c55dba5cbc..0c12e6710e 100644 --- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/HTMLUIMessages.java +++ b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/HTMLUIMessages.java @@ -25,9 +25,6 @@ public class HTMLUIMessages extends NLS { public static String Sample_HTML_doc; public static String HTMLFilesPreferencePage_0; - public static String HTMLFilesPreferencePage_1; - public static String HTMLFilesPreferencePage_2; - public static String HTMLFilesPreferencePage_3; public static String _UI_WIZARD_NEW_TITLE; public static String _UI_WIZARD_NEW_HEADING; public static String _UI_WIZARD_NEW_DESCRIPTION; @@ -85,6 +82,12 @@ public class HTMLUIMessages extends NLS { public static String EOL_Unix_UI; public static String EOL_Mac_UI; + // below are possibly unused strings that may be deleted + public static String HTMLFilesPreferencePage_1; + public static String HTMLFilesPreferencePage_2; + public static String HTMLFilesPreferencePage_3; + // above are possibly unused strings that may be deleted + static { // load message values from bundle file NLS.initializeMessages(BUNDLE_NAME, HTMLUIMessages.class); diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/HTMLUIPluginResources.properties b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/HTMLUIPluginResources.properties index 0f36192784..0853392710 100644 --- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/HTMLUIPluginResources.properties +++ b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/HTMLUIPluginResources.properties @@ -14,9 +14,6 @@ Sample_HTML_doc=<!DOCTYPE HTML\n\tPUBLIC \"-//W3C/DTD/ HTML 4.01 Transitional//EN\"\n\t\"http://www.w3.org/TR/html4/loose.dtd\">\n<HTML>\n\t<HEAD>\n\t\t<META content=\"text/html\">\n\t\t<TITLE>HTML Highlighting Preferences</TITLE>\n\t</HEAD>\n<BODY>\n\t<!--\n\t\twe need a flaming logo!\n\t-->\n</BODY>\n</HTML> HTMLFilesPreferencePage_0=Loading files... -HTMLFilesPreferencePage_1=Add this suffix (if not specified): -HTMLFilesPreferencePage_2=Insert DOCTYPE declaration -HTMLFilesPreferencePage_3=Insert GENERATOR with META tag # _UI_WIZARD_NEW_TITLE = New HTML Page _UI_WIZARD_NEW_HEADING = HTML Page @@ -77,4 +74,10 @@ EOL_Mac_UI=&Mac UI_Description_of_role_of_following_DOCTYPE=Use the following default document type when no DOCTYPE is declared in a file: UI_Public_ID=Public ID: UI_System_ID=System ID: -UI_none=none
\ No newline at end of file +UI_none=none + +# below are possibly unused strings that may be deleted +HTMLFilesPreferencePage_1=Add this suffix (if not specified): +HTMLFilesPreferencePage_2=Insert DOCTYPE declaration +HTMLFilesPreferencePage_3=Insert GENERATOR with META tag +# above are possibly unused strings that may be deleted diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/HTMLMinimalContentModelGenerator.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/HTMLMinimalContentModelGenerator.java index 7d58e15b57..f3daa1ae65 100644 --- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/HTMLMinimalContentModelGenerator.java +++ b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/HTMLMinimalContentModelGenerator.java @@ -13,8 +13,8 @@ package org.eclipse.wst.html.ui.internal.contentassist; import org.eclipse.core.runtime.Preferences; import org.eclipse.wst.html.core.internal.HTMLCorePlugin; import org.eclipse.wst.html.core.internal.contentmodel.HTMLElementDeclaration; +import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames; import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties; -import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames; import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; import org.eclipse.wst.xml.ui.internal.contentassist.XMLContentModelGenerator; @@ -36,8 +36,8 @@ public class HTMLMinimalContentModelGenerator extends XMLContentModelGenerator { private void init() { //IPreferenceStore prefs = CommonPreferencesPlugin.getDefault().getPreferenceStore(ContentType.ContentTypeID_HTML); Preferences prefs = HTMLCorePlugin.getDefault().getPluginPreferences(); - fTagCase = prefs.getInt(CommonModelPreferenceNames.TAG_NAME_CASE); - fAttrCase = prefs.getInt(CommonModelPreferenceNames.ATTR_NAME_CASE); + fTagCase = prefs.getInt(HTMLCorePreferenceNames.TAG_NAME_CASE); + fAttrCase = prefs.getInt(HTMLCorePreferenceNames.ATTR_NAME_CASE); } protected void generateEndTag(String tagName, Node parentNode, CMElementDeclaration elementDecl, StringBuffer buffer) { @@ -78,12 +78,12 @@ public class HTMLMinimalContentModelGenerator extends XMLContentModelGenerator { else if (cmnode.getNodeType() == CMNode.ATTRIBUTE_DECLARATION) caseVal = fAttrCase; switch (caseVal) { - case CommonModelPreferenceNames.LOWER : + case HTMLCorePreferenceNames.LOWER : { name = name.toLowerCase(); } break; - case CommonModelPreferenceNames.UPPER : + case HTMLCorePreferenceNames.UPPER : { name = name.toUpperCase(); } diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentoutline/HTMLNodeActionManager.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentoutline/HTMLNodeActionManager.java index d8ff788ed1..10d8f5d460 100644 --- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentoutline/HTMLNodeActionManager.java +++ b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentoutline/HTMLNodeActionManager.java @@ -15,10 +15,10 @@ import org.eclipse.jface.viewers.Viewer; import org.eclipse.wst.html.core.internal.HTMLContentBuilder; import org.eclipse.wst.html.core.internal.HTMLCorePlugin; import org.eclipse.wst.html.core.internal.format.HTMLFormatProcessorImpl; +import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames; import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties; import org.eclipse.wst.html.core.internal.provisional.contenttype.ContentTypeIdForHTML; import org.eclipse.wst.sse.core.internal.format.IStructuredFormatProcessor; -import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames; import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; import org.eclipse.wst.xml.core.internal.contentmodel.util.DOMContentBuilder; @@ -69,16 +69,16 @@ public class HTMLNodeActionManager extends XMLNodeActionManager { if (shouldIgnoreCase(cmnode)) { String name = cmnode.getNodeName(); if (cmnode.getNodeType() == CMNode.ELEMENT_DECLARATION) { - if (fTagCase == CommonModelPreferenceNames.LOWER) + if (fTagCase == HTMLCorePreferenceNames.LOWER) name = name.toLowerCase(); - else if (fTagCase == CommonModelPreferenceNames.UPPER) + else if (fTagCase == HTMLCorePreferenceNames.UPPER) name = name.toUpperCase(); // else do nothing } else if (cmnode.getNodeType() == CMNode.ATTRIBUTE_DECLARATION) { - if (fAttrCase == CommonModelPreferenceNames.LOWER) + if (fAttrCase == HTMLCorePreferenceNames.LOWER) name = name.toLowerCase(); - else if (fAttrCase == CommonModelPreferenceNames.UPPER) + else if (fAttrCase == HTMLCorePreferenceNames.UPPER) name = name.toUpperCase(); // else do nothing } @@ -97,8 +97,8 @@ public class HTMLNodeActionManager extends XMLNodeActionManager { protected void updateCase() { if (model.getModelHandler().getAssociatedContentTypeId().equals(ContentTypeIdForHTML.ContentTypeID_HTML)) { Preferences prefs = HTMLCorePlugin.getDefault().getPluginPreferences(); //$NON-NLS-1$ - fTagCase = prefs.getInt(CommonModelPreferenceNames.TAG_NAME_CASE); - fAttrCase = prefs.getInt(CommonModelPreferenceNames.ATTR_NAME_CASE); + fTagCase = prefs.getInt(HTMLCorePreferenceNames.TAG_NAME_CASE); + fAttrCase = prefs.getInt(HTMLCorePreferenceNames.ATTR_NAME_CASE); // Element caseSettings = HTMLPreferenceManager.getHTMLInstance().getElement(PreferenceNames.PREFERRED_CASE); // fTagCase = caseSettings.getAttribute(PreferenceNames.TAGNAME); // fAttrCase = caseSettings.getAttribute(PreferenceNames.ATTRIBUTENAME); diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/edit/ui/CleanupDialogHTML.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/edit/ui/CleanupDialogHTML.java index 0bfbee1b82..bab0c0d084 100644 --- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/edit/ui/CleanupDialogHTML.java +++ b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/edit/ui/CleanupDialogHTML.java @@ -23,12 +23,12 @@ import org.eclipse.swt.widgets.Group; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.help.WorkbenchHelp; import org.eclipse.wst.html.core.internal.HTMLCorePlugin; +import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames; import org.eclipse.wst.html.core.internal.provisional.contenttype.ContentTypeIdForHTML; import org.eclipse.wst.html.ui.internal.HTMLUIMessages; import org.eclipse.wst.html.ui.internal.editor.IHelpContextIds; import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames; import org.eclipse.wst.sse.core.internal.ltk.modelhandler.IModelHandler; -import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames; import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; import org.eclipse.wst.xml.core.internal.cleanup.XMLCleanupPreferencesImpl; import org.eclipse.wst.xml.core.internal.provisional.contenttype.ContentTypeIdForXML; @@ -159,18 +159,18 @@ public class CleanupDialogHTML extends Dialog implements SelectionListener { } protected void initializeOptionsForHTML() { - int tagNameCase = getModelPreferences().getInt(CommonModelPreferenceNames.CLEANUP_TAG_NAME_CASE); - if (tagNameCase == CommonModelPreferenceNames.UPPER) + int tagNameCase = getModelPreferences().getInt(HTMLCorePreferenceNames.CLEANUP_TAG_NAME_CASE); + if (tagNameCase == HTMLCorePreferenceNames.UPPER) fRadioButtonTagNameCaseUpper.setSelection(true); - else if (tagNameCase == CommonModelPreferenceNames.LOWER) + else if (tagNameCase == HTMLCorePreferenceNames.LOWER) fRadioButtonTagNameCaseLower.setSelection(true); else fRadioButtonTagNameCaseAsis.setSelection(true); - int attrNameCase = getModelPreferences().getInt(CommonModelPreferenceNames.CLEANUP_ATTR_NAME_CASE); - if (attrNameCase == CommonModelPreferenceNames.UPPER) + int attrNameCase = getModelPreferences().getInt(HTMLCorePreferenceNames.CLEANUP_ATTR_NAME_CASE); + if (attrNameCase == HTMLCorePreferenceNames.UPPER) fRadioButtonAttrNameCaseUpper.setSelection(true); - else if (attrNameCase == CommonModelPreferenceNames.LOWER) + else if (attrNameCase == HTMLCorePreferenceNames.LOWER) fRadioButtonAttrNameCaseLower.setSelection(true); else fRadioButtonAttrNameCaseAsis.setSelection(true); @@ -180,13 +180,13 @@ public class CleanupDialogHTML extends Dialog implements SelectionListener { if (isHTMLType()) initializeOptionsForHTML(); - fCheckBoxInsertRequiredAttrs.setSelection(getModelPreferences().getBoolean(CommonModelPreferenceNames.INSERT_REQUIRED_ATTRS)); - fCheckBoxInsertMissingTags.setSelection(getModelPreferences().getBoolean(CommonModelPreferenceNames.INSERT_MISSING_TAGS)); - fCheckBoxQuoteAttrValues.setSelection(getModelPreferences().getBoolean(CommonModelPreferenceNames.QUOTE_ATTR_VALUES)); - fCheckBoxFormatSource.setSelection(getModelPreferences().getBoolean(CommonModelPreferenceNames.FORMAT_SOURCE)); - fCheckBoxConvertEOLCodes.setSelection(getModelPreferences().getBoolean(CommonModelPreferenceNames.CONVERT_EOL_CODES)); + fCheckBoxInsertRequiredAttrs.setSelection(getModelPreferences().getBoolean(HTMLCorePreferenceNames.INSERT_REQUIRED_ATTRS)); + fCheckBoxInsertMissingTags.setSelection(getModelPreferences().getBoolean(HTMLCorePreferenceNames.INSERT_MISSING_TAGS)); + fCheckBoxQuoteAttrValues.setSelection(getModelPreferences().getBoolean(HTMLCorePreferenceNames.QUOTE_ATTR_VALUES)); + fCheckBoxFormatSource.setSelection(getModelPreferences().getBoolean(HTMLCorePreferenceNames.FORMAT_SOURCE)); + fCheckBoxConvertEOLCodes.setSelection(getModelPreferences().getBoolean(HTMLCorePreferenceNames.CONVERT_EOL_CODES)); if (fCheckBoxConvertEOLCodes.getSelection()) { - String EOLCode = getModelPreferences().getString(CommonModelPreferenceNames.CLEANUP_EOL_CODE); + String EOLCode = getModelPreferences().getString(HTMLCorePreferenceNames.CLEANUP_EOL_CODE); if (EOLCode == CommonEncodingPreferenceNames.LF) fRadioButtonConvertEOLUnix.setSelection(true); else if (EOLCode == CommonEncodingPreferenceNames.CR) @@ -199,18 +199,18 @@ public class CleanupDialogHTML extends Dialog implements SelectionListener { protected void storeOptionsForHTML() { if (fRadioButtonTagNameCaseUpper.getSelection()) - getModelPreferences().setValue(CommonModelPreferenceNames.CLEANUP_TAG_NAME_CASE, CommonModelPreferenceNames.UPPER); + getModelPreferences().setValue(HTMLCorePreferenceNames.CLEANUP_TAG_NAME_CASE, HTMLCorePreferenceNames.UPPER); else if (fRadioButtonTagNameCaseLower.getSelection()) - getModelPreferences().setValue(CommonModelPreferenceNames.CLEANUP_TAG_NAME_CASE, CommonModelPreferenceNames.LOWER); + getModelPreferences().setValue(HTMLCorePreferenceNames.CLEANUP_TAG_NAME_CASE, HTMLCorePreferenceNames.LOWER); else - getModelPreferences().setValue(CommonModelPreferenceNames.CLEANUP_TAG_NAME_CASE, CommonModelPreferenceNames.ASIS); + getModelPreferences().setValue(HTMLCorePreferenceNames.CLEANUP_TAG_NAME_CASE, HTMLCorePreferenceNames.ASIS); if (fRadioButtonAttrNameCaseUpper.getSelection()) - getModelPreferences().setValue(CommonModelPreferenceNames.CLEANUP_ATTR_NAME_CASE, CommonModelPreferenceNames.UPPER); + getModelPreferences().setValue(HTMLCorePreferenceNames.CLEANUP_ATTR_NAME_CASE, HTMLCorePreferenceNames.UPPER); else if (fRadioButtonAttrNameCaseLower.getSelection()) - getModelPreferences().setValue(CommonModelPreferenceNames.CLEANUP_ATTR_NAME_CASE, CommonModelPreferenceNames.LOWER); + getModelPreferences().setValue(HTMLCorePreferenceNames.CLEANUP_ATTR_NAME_CASE, HTMLCorePreferenceNames.LOWER); else - getModelPreferences().setValue(CommonModelPreferenceNames.CLEANUP_ATTR_NAME_CASE, CommonModelPreferenceNames.ASIS); + getModelPreferences().setValue(HTMLCorePreferenceNames.CLEANUP_ATTR_NAME_CASE, HTMLCorePreferenceNames.ASIS); // explicitly save plugin preferences so values are stored HTMLCorePlugin.getDefault().savePluginPreferences(); @@ -219,34 +219,34 @@ public class CleanupDialogHTML extends Dialog implements SelectionListener { protected void storeOptions() { if (isHTMLType()) { storeOptionsForHTML(); - XMLCleanupPreferencesImpl.getInstance().setTagNameCase(getModelPreferences().getInt(CommonModelPreferenceNames.CLEANUP_TAG_NAME_CASE)); - XMLCleanupPreferencesImpl.getInstance().setAttrNameCase(getModelPreferences().getInt(CommonModelPreferenceNames.CLEANUP_ATTR_NAME_CASE)); + XMLCleanupPreferencesImpl.getInstance().setTagNameCase(getModelPreferences().getInt(HTMLCorePreferenceNames.CLEANUP_TAG_NAME_CASE)); + XMLCleanupPreferencesImpl.getInstance().setAttrNameCase(getModelPreferences().getInt(HTMLCorePreferenceNames.CLEANUP_ATTR_NAME_CASE)); } else { - XMLCleanupPreferencesImpl.getInstance().setTagNameCase(CommonModelPreferenceNames.ASIS); - XMLCleanupPreferencesImpl.getInstance().setAttrNameCase(CommonModelPreferenceNames.ASIS); + XMLCleanupPreferencesImpl.getInstance().setTagNameCase(HTMLCorePreferenceNames.ASIS); + XMLCleanupPreferencesImpl.getInstance().setAttrNameCase(HTMLCorePreferenceNames.ASIS); } - getModelPreferences().setValue(CommonModelPreferenceNames.INSERT_REQUIRED_ATTRS, fCheckBoxInsertRequiredAttrs.getSelection()); - getModelPreferences().setValue(CommonModelPreferenceNames.INSERT_MISSING_TAGS, fCheckBoxInsertMissingTags.getSelection()); - getModelPreferences().setValue(CommonModelPreferenceNames.QUOTE_ATTR_VALUES, fCheckBoxQuoteAttrValues.getSelection()); - getModelPreferences().setValue(CommonModelPreferenceNames.FORMAT_SOURCE, fCheckBoxFormatSource.getSelection()); - getModelPreferences().setValue(CommonModelPreferenceNames.CONVERT_EOL_CODES, fCheckBoxConvertEOLCodes.getSelection()); + getModelPreferences().setValue(HTMLCorePreferenceNames.INSERT_REQUIRED_ATTRS, fCheckBoxInsertRequiredAttrs.getSelection()); + getModelPreferences().setValue(HTMLCorePreferenceNames.INSERT_MISSING_TAGS, fCheckBoxInsertMissingTags.getSelection()); + getModelPreferences().setValue(HTMLCorePreferenceNames.QUOTE_ATTR_VALUES, fCheckBoxQuoteAttrValues.getSelection()); + getModelPreferences().setValue(HTMLCorePreferenceNames.FORMAT_SOURCE, fCheckBoxFormatSource.getSelection()); + getModelPreferences().setValue(HTMLCorePreferenceNames.CONVERT_EOL_CODES, fCheckBoxConvertEOLCodes.getSelection()); XMLCleanupPreferencesImpl.getInstance().setInsertMissingTags(fCheckBoxInsertMissingTags.getSelection()); XMLCleanupPreferencesImpl.getInstance().setQuoteAttrValues(fCheckBoxQuoteAttrValues.getSelection()); XMLCleanupPreferencesImpl.getInstance().setFormatSource(fCheckBoxFormatSource.getSelection()); XMLCleanupPreferencesImpl.getInstance().setConvertEOLCodes(fCheckBoxConvertEOLCodes.getSelection()); if (fCheckBoxConvertEOLCodes.getSelection()) { if (fRadioButtonConvertEOLUnix.getSelection()) { - getModelPreferences().setValue(CommonModelPreferenceNames.CLEANUP_EOL_CODE, CommonEncodingPreferenceNames.LF); + getModelPreferences().setValue(HTMLCorePreferenceNames.CLEANUP_EOL_CODE, CommonEncodingPreferenceNames.LF); XMLCleanupPreferencesImpl.getInstance().setEOLCode(CommonEncodingPreferenceNames.LF); } else if (fRadioButtonConvertEOLMac.getSelection()) { - getModelPreferences().setValue(CommonModelPreferenceNames.CLEANUP_EOL_CODE, CommonEncodingPreferenceNames.CR); + getModelPreferences().setValue(HTMLCorePreferenceNames.CLEANUP_EOL_CODE, CommonEncodingPreferenceNames.CR); XMLCleanupPreferencesImpl.getInstance().setEOLCode(CommonEncodingPreferenceNames.CR); } else { - getModelPreferences().setValue(CommonModelPreferenceNames.CLEANUP_EOL_CODE, CommonEncodingPreferenceNames.CRLF); + getModelPreferences().setValue(HTMLCorePreferenceNames.CLEANUP_EOL_CODE, CommonEncodingPreferenceNames.CRLF); XMLCleanupPreferencesImpl.getInstance().setEOLCode(CommonEncodingPreferenceNames.CRLF); } } diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/preferences/ui/HTMLFilesPreferencePage.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/preferences/ui/HTMLFilesPreferencePage.java index 4d29f5c817..1166434969 100644 --- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/preferences/ui/HTMLFilesPreferencePage.java +++ b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/preferences/ui/HTMLFilesPreferencePage.java @@ -13,15 +13,12 @@ package org.eclipse.wst.html.ui.internal.preferences.ui; import org.eclipse.core.runtime.Preferences; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Group; import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Text; import org.eclipse.ui.help.WorkbenchHelp; import org.eclipse.wst.html.core.internal.HTMLCorePlugin; -import org.eclipse.wst.html.core.internal.provisional.HTMLFilesPreferenceNames; import org.eclipse.wst.html.ui.internal.HTMLUIMessages; import org.eclipse.wst.html.ui.internal.HTMLUIPlugin; import org.eclipse.wst.html.ui.internal.editor.IHelpContextIds; @@ -32,9 +29,6 @@ import org.eclipse.wst.xml.ui.internal.preferences.XMLFilesPreferencePage; public class HTMLFilesPreferencePage extends XMLFilesPreferencePage { private WorkbenchDefaultEncodingSettings fInputEncodingSettings = null; - private Text fHtmlext_Field; - private Button fDoctype_Button; - private Button fGenerator_Button; /* (non-Javadoc) * @see com.ibm.sse.editor.preferences.ui.AbstractPreferencePage#getModelPreferences() @@ -126,65 +120,11 @@ public class HTMLFilesPreferencePage extends XMLFilesPreferencePage { protected void createContentsForCreatingGroup(Composite parent) { Group creatingGroup = createGroup(parent, 2); creatingGroup.setText(HTMLUIMessages.Creating_files); - - // Add this suffix.. - createLabel(creatingGroup, HTMLUIMessages.HTMLFilesPreferencePage_1); - fHtmlext_Field = createTextField(creatingGroup); // Encoding.. Label label = createLabel(creatingGroup, HTMLUIMessages.Encoding_desc); ((GridData)label.getLayoutData()).horizontalSpan = 2; fEncodingSettings = new EncodingSettings(creatingGroup); ((GridData)fEncodingSettings.getLayoutData()).horizontalSpan = 2; - - // Insert DOCTYPE declaration - fDoctype_Button = createCheckBox(creatingGroup, HTMLUIMessages.HTMLFilesPreferencePage_2); - ((GridData)fDoctype_Button.getLayoutData()).horizontalSpan = 2; - - // Insert GENERATOR with META tag - fGenerator_Button = createCheckBox(creatingGroup, HTMLUIMessages.HTMLFilesPreferencePage_3); - ((GridData)fGenerator_Button.getLayoutData()).horizontalSpan = 2; - } - /* (non-Javadoc) - * @see com.ibm.sse.editor.xml.preferences.ui.XMLFilesPreferencePage#initializeValuesForCreatingGroup() - */ - protected void initializeValuesForCreatingGroup() { - super.initializeValuesForCreatingGroup(); - - String defaultSuffix = getModelPreferences().getString(HTMLFilesPreferenceNames.DEFAULT_SUFFIX); - if (defaultSuffix.length() > 0) { - fHtmlext_Field.setText(defaultSuffix); - } - - boolean bCheck; - bCheck = getModelPreferences().getBoolean(HTMLFilesPreferenceNames.GENERATE_DOCUMENT_TYPE); - fDoctype_Button.setSelection(bCheck); - - bCheck = getModelPreferences().getBoolean(HTMLFilesPreferenceNames.GENERATE_GENERATOR); - fGenerator_Button.setSelection(bCheck); - } - /* (non-Javadoc) - * @see com.ibm.sse.editor.xml.preferences.ui.XMLFilesPreferencePage#performDefaultsForCreatingGroup() - */ - protected void performDefaultsForCreatingGroup() { - super.performDefaultsForCreatingGroup(); - - fHtmlext_Field.setText(getModelPreferences().getDefaultString(HTMLFilesPreferenceNames.DEFAULT_SUFFIX)); - - fDoctype_Button.setSelection(getModelPreferences().getDefaultBoolean(HTMLFilesPreferenceNames.GENERATE_DOCUMENT_TYPE)); - fGenerator_Button.setSelection(getModelPreferences().getDefaultBoolean(HTMLFilesPreferenceNames.GENERATE_GENERATOR)); - } - /* (non-Javadoc) - * @see com.ibm.sse.editor.xml.preferences.ui.XMLFilesPreferencePage#storeValuesForCreatingGroup() - */ - protected void storeValuesForCreatingGroup() { - super.storeValuesForCreatingGroup(); - - String str_ext = fHtmlext_Field.getText(); - getModelPreferences().setValue(HTMLFilesPreferenceNames.DEFAULT_SUFFIX, str_ext); - - getModelPreferences().setValue(HTMLFilesPreferenceNames.GENERATE_DOCUMENT_TYPE, fDoctype_Button.getSelection()); - - getModelPreferences().setValue(HTMLFilesPreferenceNames.GENERATE_GENERATOR, fGenerator_Button.getSelection()); } }
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/preferences/ui/HTMLSourcePreferencePage.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/preferences/ui/HTMLSourcePreferencePage.java index d6d37f9147..386ef700db 100644 --- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/preferences/ui/HTMLSourcePreferencePage.java +++ b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/preferences/ui/HTMLSourcePreferencePage.java @@ -18,10 +18,10 @@ import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Group; import org.eclipse.ui.help.WorkbenchHelp; import org.eclipse.wst.html.core.internal.HTMLCorePlugin; +import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames; import org.eclipse.wst.html.ui.internal.HTMLUIMessages; import org.eclipse.wst.html.ui.internal.HTMLUIPlugin; import org.eclipse.wst.html.ui.internal.editor.IHelpContextIds; -import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames; import org.eclipse.wst.xml.ui.internal.preferences.XMLSourcePreferencePage; public class HTMLSourcePreferencePage extends XMLSourcePreferencePage { @@ -77,32 +77,32 @@ public class HTMLSourcePreferencePage extends XMLSourcePreferencePage { } protected void performDefaults() { - fTagNameUpper.setSelection(getModelPreferences().getDefaultInt(CommonModelPreferenceNames.TAG_NAME_CASE) == CommonModelPreferenceNames.UPPER); - fTagNameLower.setSelection(getModelPreferences().getDefaultInt(CommonModelPreferenceNames.TAG_NAME_CASE) == CommonModelPreferenceNames.LOWER); - fAttrNameUpper.setSelection(getModelPreferences().getDefaultInt(CommonModelPreferenceNames.ATTR_NAME_CASE) == CommonModelPreferenceNames.UPPER); - fAttrNameLower.setSelection(getModelPreferences().getDefaultInt(CommonModelPreferenceNames.ATTR_NAME_CASE) == CommonModelPreferenceNames.LOWER); + fTagNameUpper.setSelection(getModelPreferences().getDefaultInt(HTMLCorePreferenceNames.TAG_NAME_CASE) == HTMLCorePreferenceNames.UPPER); + fTagNameLower.setSelection(getModelPreferences().getDefaultInt(HTMLCorePreferenceNames.TAG_NAME_CASE) == HTMLCorePreferenceNames.LOWER); + fAttrNameUpper.setSelection(getModelPreferences().getDefaultInt(HTMLCorePreferenceNames.ATTR_NAME_CASE) == HTMLCorePreferenceNames.UPPER); + fAttrNameLower.setSelection(getModelPreferences().getDefaultInt(HTMLCorePreferenceNames.ATTR_NAME_CASE) == HTMLCorePreferenceNames.LOWER); super.performDefaults(); } protected void initializeValues() { - fTagNameUpper.setSelection(getModelPreferences().getInt(CommonModelPreferenceNames.TAG_NAME_CASE) == CommonModelPreferenceNames.UPPER); - fTagNameLower.setSelection(getModelPreferences().getInt(CommonModelPreferenceNames.TAG_NAME_CASE) == CommonModelPreferenceNames.LOWER); - fAttrNameUpper.setSelection(getModelPreferences().getInt(CommonModelPreferenceNames.ATTR_NAME_CASE) == CommonModelPreferenceNames.UPPER); - fAttrNameLower.setSelection(getModelPreferences().getInt(CommonModelPreferenceNames.ATTR_NAME_CASE) == CommonModelPreferenceNames.LOWER); + fTagNameUpper.setSelection(getModelPreferences().getInt(HTMLCorePreferenceNames.TAG_NAME_CASE) == HTMLCorePreferenceNames.UPPER); + fTagNameLower.setSelection(getModelPreferences().getInt(HTMLCorePreferenceNames.TAG_NAME_CASE) == HTMLCorePreferenceNames.LOWER); + fAttrNameUpper.setSelection(getModelPreferences().getInt(HTMLCorePreferenceNames.ATTR_NAME_CASE) == HTMLCorePreferenceNames.UPPER); + fAttrNameLower.setSelection(getModelPreferences().getInt(HTMLCorePreferenceNames.ATTR_NAME_CASE) == HTMLCorePreferenceNames.LOWER); super.initializeValues(); } protected void storeValues() { if (fTagNameUpper.getSelection()) - getModelPreferences().setValue(CommonModelPreferenceNames.TAG_NAME_CASE, CommonModelPreferenceNames.UPPER); + getModelPreferences().setValue(HTMLCorePreferenceNames.TAG_NAME_CASE, HTMLCorePreferenceNames.UPPER); else - getModelPreferences().setValue(CommonModelPreferenceNames.TAG_NAME_CASE, CommonModelPreferenceNames.LOWER); + getModelPreferences().setValue(HTMLCorePreferenceNames.TAG_NAME_CASE, HTMLCorePreferenceNames.LOWER); if (fAttrNameUpper.getSelection()) - getModelPreferences().setValue(CommonModelPreferenceNames.ATTR_NAME_CASE, CommonModelPreferenceNames.UPPER); + getModelPreferences().setValue(HTMLCorePreferenceNames.ATTR_NAME_CASE, HTMLCorePreferenceNames.UPPER); else - getModelPreferences().setValue(CommonModelPreferenceNames.ATTR_NAME_CASE, CommonModelPreferenceNames.LOWER); + getModelPreferences().setValue(HTMLCorePreferenceNames.ATTR_NAME_CASE, HTMLCorePreferenceNames.LOWER); super.storeValues(); } diff --git a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/CommonEncodingPreferenceNames.java b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/CommonEncodingPreferenceNames.java index 072666513c..70354d505d 100644 --- a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/CommonEncodingPreferenceNames.java +++ b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/CommonEncodingPreferenceNames.java @@ -16,6 +16,11 @@ package org.eclipse.wst.sse.core.internal.encoding; * Common preference keys used to specify encoding and end of line. */ public class CommonEncodingPreferenceNames { + + private CommonEncodingPreferenceNames() { + // empty private constructor so users cannot instantiate class + } + /** * Constant to be used when referring to CR/MAC line delimiter */ diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/SSECorePlugin.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/SSECorePlugin.java index 3871288322..fd4a755a5b 100644 --- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/SSECorePlugin.java +++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/SSECorePlugin.java @@ -45,36 +45,12 @@ public class SSECorePlugin extends Plugin { protected void initializeDefaultPluginPreferences() { Preferences prefs = getDefault().getPluginPreferences(); // set model preference defaults - prefs.setDefault(CommonModelPreferenceNames.CLEANUP_TAG_NAME_CASE, CommonModelPreferenceNames.ASIS); - prefs.setDefault(CommonModelPreferenceNames.CLEANUP_ATTR_NAME_CASE, CommonModelPreferenceNames.ASIS); - prefs.setDefault(CommonModelPreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS, true); - prefs.setDefault(CommonModelPreferenceNames.INSERT_REQUIRED_ATTRS, true); - prefs.setDefault(CommonModelPreferenceNames.INSERT_MISSING_TAGS, true); - prefs.setDefault(CommonModelPreferenceNames.QUOTE_ATTR_VALUES, true); - prefs.setDefault(CommonModelPreferenceNames.FORMAT_SOURCE, true); - prefs.setDefault(CommonModelPreferenceNames.CONVERT_EOL_CODES, false); - prefs.setDefault(CommonEncodingPreferenceNames.INPUT_CODESET, ""); //$NON-NLS-1$ - prefs.setDefault(CommonEncodingPreferenceNames.OUTPUT_CODESET, CommonModelPreferenceNames.UTF_8); - prefs.setDefault(CommonEncodingPreferenceNames.END_OF_LINE_CODE, ""); //$NON-NLS-1$ - prefs.setDefault(CommonModelPreferenceNames.TAB_WIDTH, CommonModelPreferenceNames.DEFAULT_TAB_WIDTH); - prefs.setDefault(CommonModelPreferenceNames.FORMATTING_SUPPORTED, false); - prefs.setDefault(CommonModelPreferenceNames.LINE_WIDTH, 72); - prefs.setDefault(CommonModelPreferenceNames.SPLIT_MULTI_ATTRS, false); - prefs.setDefault(CommonModelPreferenceNames.INDENT_USING_TABS, true); - prefs.setDefault(CommonModelPreferenceNames.CLEAR_ALL_BLANK_LINES, false); - prefs.setDefault(CommonModelPreferenceNames.PREFERRED_MARKUP_CASE_SUPPORTED, false); - prefs.setDefault(CommonModelPreferenceNames.TAG_NAME_CASE, CommonModelPreferenceNames.UPPER); - prefs.setDefault(CommonModelPreferenceNames.ATTR_NAME_CASE, CommonModelPreferenceNames.LOWER); + + prefs.setDefault(CommonEncodingPreferenceNames.USE_3BYTE_BOM_WITH_UTF8, false); + prefs.setDefault(CommonModelPreferenceNames.TASK_TAG_ENABLE, false); prefs.setDefault(CommonModelPreferenceNames.TASK_TAG_TAGS, "TODO,FIXME,XXX"); //$NON-NLS-1$ prefs.setDefault(CommonModelPreferenceNames.TASK_TAG_PRIORITIES, "1,2,1"); //$NON-NLS-1$ - - initializeDefaultPluginPreferencesForEncoding(prefs); - - } - - private void initializeDefaultPluginPreferencesForEncoding(Preferences prefs) { - prefs.setDefault(CommonEncodingPreferenceNames.USE_3BYTE_BOM_WITH_UTF8, false); } /* diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/preferences/CommonModelPreferenceNames.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/preferences/CommonModelPreferenceNames.java index 5a1274c685..61a513bfa5 100644 --- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/preferences/CommonModelPreferenceNames.java +++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/preferences/CommonModelPreferenceNames.java @@ -12,49 +12,10 @@ *******************************************************************************/ package org.eclipse.wst.sse.core.internal.preferences; - /** - * Here is a description of how each common model file preference is used. - * - * tabWidth The number of spaces representing a tab. This number is also used - * as number of spaces to indent during formatting when indentUsingTabs is - * false. - * - * splitLines Indicates if long lines should be splitted. - * - * splitLinesUsingEditorsWidth Indicates if long lines should be splitted - * using the editor's current width. The editor's current width will be used - * when splitting long lines if splitLinesUsingEditorWidth is true. lineWidth - * will be used when splitting long lines if splitLinesUsingEditorWidth is - * false. - * - * lineWidth The maximum width of a line before a line split is needed. This - * number is only used when lineSplitting is true, otherwise it's ignored. - * - * splitMultiAttrs Indicates if tags with multiple attributes should be - * formatted (splitting each attr on a new line). - * - * indentUsingTabs Indicates if tabs should be used for indentation during - * formatting. The same number of spaces specified by tabWidth will be used - * for indentation if indentUsingTabs is false. - * - * clearAllBlankLines Indicates if all blanks lines should be cleared during - * formatting. Blanks lines will be kept when clearAllBlankLines is false. - * - * formattingSupported Indicates if the current content type supports - * formatting. The splitLines, splitLinesUsingEditorsWidth, lineWidth, - * splitMultiAttrs, and indentUsingTabs preferences will be meaningless if - * formattingSupported is false. - * - * contentAssistSupported Indicates if the current content type supports - * content assist. The autoPropose, and autoProposeCode preferences will be - * meaningless if contentAssistSupported is false. + * @deprecated CommonModelPreferenceNames are now managed by each individual + * content type. (XXCorePreferenceNames) * - * preferredMarkupCaseSupported Indicates if the current content type supports - * "preferred markup case for content assist, and code generation". The - * tagNameCase, and attrNameCase preferences will be meaningless if - * preferredMarkupCaseSupported is false. - * */ public interface CommonModelPreferenceNames { String TAB_WIDTH = "tabWidth";//$NON-NLS-1$ diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/preferences/PreferenceChangeListener.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/preferences/PreferenceChangeListener.java deleted file mode 100644 index e6956d9e2d..0000000000 --- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/preferences/PreferenceChangeListener.java +++ /dev/null @@ -1,24 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 2004 IBM Corporation and others. - * 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: - * IBM Corporation - initial API and implementation - * Jens Lukowski/Innoopract - initial renaming/restructuring - * - *******************************************************************************/ -package org.eclipse.wst.sse.core.internal.preferences; - -/** - * @deprecated This used to be used by our own PreferenceManager but since - * that class is no longer needed, this class should also no - * longer be needed. Use the base's IPreferenceChangeListener or - * IPropertyChangeListener instead. - */ -public interface PreferenceChangeListener { - - void preferencesChanged(); -} diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/StructuredTextViewerConfiguration.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/StructuredTextViewerConfiguration.java index 67f96f7f7e..c34425cc46 100644 --- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/StructuredTextViewerConfiguration.java +++ b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/StructuredTextViewerConfiguration.java @@ -89,7 +89,6 @@ public class StructuredTextViewerConfiguration extends TextSourceViewerConfigura */ public StructuredTextViewerConfiguration(IPreferenceStore store) { super(store); - fPreferenceStore = store; fContentAssistProcessors = new ArrayList(); } diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/preferences/PreferenceManager.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/preferences/PreferenceManager.java deleted file mode 100644 index 6534f88cf0..0000000000 --- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/preferences/PreferenceManager.java +++ /dev/null @@ -1,372 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 2004 IBM Corporation and others. - * 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: - * IBM Corporation - initial API and implementation - * Jens Lukowski/Innoopract - initial renaming/restructuring - * - *******************************************************************************/ -package org.eclipse.wst.sse.ui.internal.provisional.preferences; - -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.FileWriter; -import java.io.IOException; -import java.io.Reader; -import java.io.Writer; -import java.util.ArrayList; -import java.util.List; -import java.util.StringTokenizer; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.transform.OutputKeys; -import javax.xml.transform.Source; -import javax.xml.transform.Transformer; -import javax.xml.transform.TransformerConfigurationException; -import javax.xml.transform.TransformerException; -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.TransformerFactoryConfigurationError; -import javax.xml.transform.dom.DOMSource; -import javax.xml.transform.stream.StreamResult; - -import org.eclipse.wst.sse.core.internal.preferences.PreferenceChangeListener; -import org.eclipse.wst.sse.ui.internal.Logger; -import org.eclipse.wst.sse.ui.internal.SSEUIMessages; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; -import org.xml.sax.InputSource; -import org.xml.sax.SAXException; - -/** - * @deprecated no longer need a special PreferenceManager for our component. - * All preferences should be accessible using the base preference - * manager. - */ -public abstract class PreferenceManager { - - class EmptyNodeList implements NodeList { - protected EmptyNodeList() { - super(); - } - - public int getLength() { - return 0; - } - - public Node item(int param1) { - return null; - } - } - - /** - * The PreferenceRuntimeException is often thrown by methods when a - * service we use throws a checked exception, but we want to convert and - * treat as a runtime exception. - */ - class PreferenceRuntimeException extends RuntimeException { - /** - * Comment for <code>serialVersionUID</code> - */ - private static final long serialVersionUID = 1L; - private Throwable originalException; - - public PreferenceRuntimeException() { - super(); - } - - /** - * This form of the constructor is used to wrapper another exception. - */ - public PreferenceRuntimeException(Throwable t) { - this(); - originalException = t; - } - - public String getMessage() { - String result = super.getMessage(); - if ((result != null) && (!result.endsWith("."))) //$NON-NLS-1$ - result = result + "."; //$NON-NLS-1$ - if (originalException != null) { - String embeddedMessage = originalException.getMessage(); - embeddedMessage = originalException.getClass().getName() + ": " + originalException.getMessage(); //$NON-NLS-1$ - // not all exceptions have messages (e.g. many - // NullPointerException) - String originalError = SSEUIMessages.PreferenceManager_0; //$NON-NLS-1$ - if (result == null) - result = ""; //$NON-NLS-1$ - if (embeddedMessage != null) - result = result + " " + originalError + " " + embeddedMessage; //$NON-NLS-2$//$NON-NLS-1$ - else - result = result + " " + originalError + " " + originalException.toString(); //$NON-NLS-2$//$NON-NLS-1$ - } - return result; - } - - public Throwable getOriginalException() { - return originalException; - } - - public String toString() { - // we don't put super.toString or getClass to "hide" that it was a - // SourceEditing exception (otherwise, focus goes on that, - // instead of original exception. - String message = getMessage(); - // message should never be null ... but just in case - return (message != null) ? message : super.toString(); - } - } - - protected Document document = null; - - protected String fileName = null; - private List preferenceChangeListeners = new ArrayList(1); - - protected Document _getNewDocumentDOM2() { - Document result = null; - // settings - DocumentBuilder builder = getDocumentBuilder(); - result = builder.newDocument(); - Element settings = result.createElement(getRootElementName()); - result.appendChild(settings); - return result; - - } - - protected Document _getParsedDocumentDOM2(String filename) { - Document result = null; - DocumentBuilder builder = getDocumentBuilder(); - try { - Reader inputReader = new FileReader(getFilename()); - InputSource inputSource = new InputSource(inputReader); - result = builder.parse(inputSource); - } - catch (FileNotFoundException e) { - // file not found is "ok" ... it'll be created if we return null - result = null; - } - catch (IOException e) { - result = null; - } - catch (SAXException e) { - result = null; - } - - return result; - - } - - public void addPreferenceChangeListener(PreferenceChangeListener l) { - if (!preferenceChangeListeners.contains(l)) - preferenceChangeListeners.add(l); - } - - /** - * Returns a new document containing the defaults for this manager. This - * SHOULD NOT overwrite the actual document stored within this manager, - * and while a root element MAY BE created by the DOM implementation, it - * is recommended that subclasses NOT RELY upon it being there. - * - * @return org.w3c.dom.Document - */ - public Document createDefaultPreferences() { - Document txobj = null; - txobj = _getNewDocumentDOM2(); - return txobj; - } - - protected void firePreferenceChangeListeners() { - if (preferenceChangeListeners != null) - for (int i = 0; i < preferenceChangeListeners.size(); ++i) - ((PreferenceChangeListener) preferenceChangeListeners.get(i)).preferencesChanged(); - } - - /** - * - * @return Document - */ - public Document getDocument() { - if (document == null) - load(); - return document; - } - - private DocumentBuilder getDocumentBuilder() { - DocumentBuilder result = null; - try { - result = DocumentBuilderFactory.newInstance().newDocumentBuilder(); - } - catch (ParserConfigurationException e) { - Logger.logException(e); - } - return result; - } - - /************************************************************************* - * Takes a single string of the form "a/b/c" and ensures that that - * structure exists below the head element, down through 'c', and returns - * a <em>single</em> element 'c'. For multiple elements (such as - * multiple <macro> elements contained within a single - * <macros> element, full DOM access is required for searching and - * child element manipulation. - ************************************************************************/ - public Element getElement(String name) { - if (document == null) - load(); - if (document != null) - return (Element) getNode(getRootElement(), name); - else - return null; - } - - protected abstract String getFilename(); - - protected Node getNamedChild(Node parent, String childName) { - if (parent == null) { - return null; - } - NodeList childList = parent.getChildNodes(); - for (int i = 0; i < childList.getLength(); i++) { - if (childList.item(i).getNodeName().equals(childName)) - return childList.item(i); - } - return null; - } - - /************************************************************************* - * Takes a single string of the form "a/b/c" and ensures that that - * structure exists below the head element, down through 'c', and returns - * the element 'c'. - ************************************************************************/ - public Node getNode(Node node, String name) { - StringTokenizer tokenizer = new StringTokenizer(name, "/"); //$NON-NLS-1$ - String token = null; - while (tokenizer.hasMoreTokens()) { - token = tokenizer.nextToken(); - if (getNamedChild(node, token) == null) { - Document localDocument = node.getOwnerDocument(); - node.appendChild(localDocument.createElement(token)); - } - node = getNamedChild(node, token); - } - return node; - } - - protected Document getParsedDocument(String filename) { - Document result = null; - // file name is almost never null, - // but can be if preferences are being ran - // outside of a workbench application - if (filename != null) { - File existenceTester = new File(filename); - if (!existenceTester.exists()) - result = null; - else - result = _getParsedDocumentDOM2(filename); - } - return result; - - } - - /** - * Returns the root element of the current document - * - * @return org.w3c.dom.Element - */ - public Node getRootElement() { - return getRootElement(getDocument()); - } - - /** - * Returns the root element of the current document - * - * @return org.w3c.dom.Element - */ - public Node getRootElement(Document doc) { - if (doc == null) - return null; - Node rootElement = doc.getFirstChild(); - while (rootElement != null && rootElement.getNodeType() != Node.ELEMENT_NODE && !rootElement.getNodeName().equals(getRootElementName())) { - rootElement = rootElement.getNextSibling(); - } - return rootElement; - } - - /** - * The intended name for the root Element of the Document; what is also - * listed within the DOCTYPE declaration. - * - * @return String - */ - public String getRootElementName() { - return "settings"; //$NON-NLS-1$ - } - - public void load() { - document = getParsedDocument(getFilename()); - - if (document == null) { - document = createDefaultPreferences(); - } - } - - public void removePreferenceChangeListener(PreferenceChangeListener l) { - preferenceChangeListeners.remove(l); - } - - public void save() { - if (document == null) { - document = createDefaultPreferences(); - } - try { - // pa_TODO is this still going to be done like this? - FileWriter output = new FileWriter(getFilename()); - saveDocument(document, output); - output.flush(); - output.close(); - } - catch (IOException e) { - Logger.logException("Program Error: PreferenceManager::save. Exception saving preferences ", e); //$NON-NLS-1$ - throw new PreferenceRuntimeException(e); - } - firePreferenceChangeListeners(); - } - - public void saveDocument(Document document, Writer writer) throws IOException { - - serialize(document, writer); - } - - private void serialize(Document sourceDocument, Writer writer) throws IOException { - Source domSource = new DOMSource(sourceDocument); - try { - Transformer serializer = TransformerFactory.newInstance().newTransformer(); - try { - serializer.setOutputProperty(OutputKeys.INDENT, "yes"); //$NON-NLS-1$ - serializer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4"); //$NON-NLS-1$ //$NON-NLS-2$ - } - catch (IllegalArgumentException e) { - // unsupported properties - } - serializer.transform(domSource, new StreamResult(writer)); - } - catch (TransformerConfigurationException e) { - throw new IOException(e.getMessage()); - } - catch (TransformerFactoryConfigurationError e) { - throw new IOException(e.getMessage()); - } - catch (TransformerException e) { - throw new IOException(e.getMessage()); - } - } - -} diff --git a/bundles/org.eclipse.wst.xml.core/plugin.xml b/bundles/org.eclipse.wst.xml.core/plugin.xml index 89b2a7aaad..1f11fce43c 100644 --- a/bundles/org.eclipse.wst.xml.core/plugin.xml +++ b/bundles/org.eclipse.wst.xml.core/plugin.xml @@ -119,6 +119,11 @@ </content-type> </extension> + <!-- initialize xml core preferences --> + <extension point="org.eclipse.core.runtime.preferences"> + <initializer class="org.eclipse.wst.xml.core.internal.preferences.XMLCorePreferenceInitializer"/> + </extension> + <!-- added following from content model plugin.xml --> diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/XMLCorePlugin.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/XMLCorePlugin.java index 962b707466..5d7fea07cf 100644 --- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/XMLCorePlugin.java +++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/XMLCorePlugin.java @@ -15,9 +15,6 @@ package org.eclipse.wst.xml.core.internal; import org.eclipse.core.resources.IWorkspace; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.Plugin; -import org.eclipse.core.runtime.Preferences; -import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames; -import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames; /** @@ -48,38 +45,4 @@ public class XMLCorePlugin extends Plugin { super(); plugin = this; } - - /* - * (non-Javadoc) - * - * @see org.eclipse.core.runtime.Plugin#initializeDefaultPluginPreferences() - */ - protected void initializeDefaultPluginPreferences() { - Preferences prefs = getDefault().getPluginPreferences(); - // set model preference defaults - prefs.setDefault(CommonModelPreferenceNames.CLEANUP_TAG_NAME_CASE, CommonModelPreferenceNames.ASIS); - prefs.setDefault(CommonModelPreferenceNames.CLEANUP_ATTR_NAME_CASE, CommonModelPreferenceNames.ASIS); - prefs.setDefault(CommonModelPreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS, true); - prefs.setDefault(CommonModelPreferenceNames.INSERT_REQUIRED_ATTRS, true); - prefs.setDefault(CommonModelPreferenceNames.INSERT_MISSING_TAGS, true); - prefs.setDefault(CommonModelPreferenceNames.QUOTE_ATTR_VALUES, true); - prefs.setDefault(CommonModelPreferenceNames.FORMAT_SOURCE, true); - prefs.setDefault(CommonModelPreferenceNames.CONVERT_EOL_CODES, false); - - prefs.setDefault(CommonEncodingPreferenceNames.INPUT_CODESET, ""); //$NON-NLS-1$ - prefs.setDefault(CommonEncodingPreferenceNames.OUTPUT_CODESET, CommonModelPreferenceNames.UTF_8); - prefs.setDefault(CommonEncodingPreferenceNames.END_OF_LINE_CODE, ""); //$NON-NLS-1$ - - prefs.setDefault(CommonModelPreferenceNames.TAB_WIDTH, 4); - - prefs.setDefault(CommonModelPreferenceNames.FORMATTING_SUPPORTED, true); - prefs.setDefault(CommonModelPreferenceNames.LINE_WIDTH, 72); - prefs.setDefault(CommonModelPreferenceNames.SPLIT_MULTI_ATTRS, false); - prefs.setDefault(CommonModelPreferenceNames.INDENT_USING_TABS, true); - prefs.setDefault(CommonModelPreferenceNames.CLEAR_ALL_BLANK_LINES, false); - - prefs.setDefault(CommonModelPreferenceNames.PREFERRED_MARKUP_CASE_SUPPORTED, false); - prefs.setDefault(CommonModelPreferenceNames.TAG_NAME_CASE, CommonModelPreferenceNames.LOWER); - prefs.setDefault(CommonModelPreferenceNames.ATTR_NAME_CASE, CommonModelPreferenceNames.LOWER); - } } diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/CleanupProcessorXML.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/CleanupProcessorXML.java index 53a3da814a..97bf41cdf8 100644 --- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/CleanupProcessorXML.java +++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/CleanupProcessorXML.java @@ -18,8 +18,8 @@ import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupHandler; import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupPreferences; import org.eclipse.wst.sse.core.internal.cleanup.StructuredCleanupPreferences; import org.eclipse.wst.sse.core.internal.format.IStructuredFormatProcessor; -import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames; import org.eclipse.wst.xml.core.internal.XMLCorePlugin; +import org.eclipse.wst.xml.core.internal.preferences.XMLCorePreferenceNames; import org.eclipse.wst.xml.core.internal.provisional.contenttype.ContentTypeIdForXML; import org.eclipse.wst.xml.core.internal.provisional.format.FormatProcessorXML; import org.w3c.dom.Node; @@ -57,15 +57,13 @@ public class CleanupProcessorXML extends AbstractStructuredCleanupProcessor { Preferences preferences = getModelPreferences(); if (preferences != null) { - fCleanupPreferences.setTagNameCase(preferences.getInt(CommonModelPreferenceNames.CLEANUP_TAG_NAME_CASE)); - fCleanupPreferences.setAttrNameCase(preferences.getInt(CommonModelPreferenceNames.CLEANUP_ATTR_NAME_CASE)); - fCleanupPreferences.setCompressEmptyElementTags(preferences.getBoolean(CommonModelPreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS)); - fCleanupPreferences.setInsertRequiredAttrs(preferences.getBoolean(CommonModelPreferenceNames.INSERT_REQUIRED_ATTRS)); - fCleanupPreferences.setInsertMissingTags(preferences.getBoolean(CommonModelPreferenceNames.INSERT_MISSING_TAGS)); - fCleanupPreferences.setQuoteAttrValues(preferences.getBoolean(CommonModelPreferenceNames.QUOTE_ATTR_VALUES)); - fCleanupPreferences.setFormatSource(preferences.getBoolean(CommonModelPreferenceNames.FORMAT_SOURCE)); - fCleanupPreferences.setConvertEOLCodes(preferences.getBoolean(CommonModelPreferenceNames.CONVERT_EOL_CODES)); - fCleanupPreferences.setEOLCode(preferences.getString(CommonModelPreferenceNames.CLEANUP_EOL_CODE)); + fCleanupPreferences.setCompressEmptyElementTags(preferences.getBoolean(XMLCorePreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS)); + fCleanupPreferences.setInsertRequiredAttrs(preferences.getBoolean(XMLCorePreferenceNames.INSERT_REQUIRED_ATTRS)); + fCleanupPreferences.setInsertMissingTags(preferences.getBoolean(XMLCorePreferenceNames.INSERT_MISSING_TAGS)); + fCleanupPreferences.setQuoteAttrValues(preferences.getBoolean(XMLCorePreferenceNames.QUOTE_ATTR_VALUES)); + fCleanupPreferences.setFormatSource(preferences.getBoolean(XMLCorePreferenceNames.FORMAT_SOURCE)); + fCleanupPreferences.setConvertEOLCodes(preferences.getBoolean(XMLCorePreferenceNames.CONVERT_EOL_CODES)); + fCleanupPreferences.setEOLCode(preferences.getString(XMLCorePreferenceNames.CLEANUP_EOL_CODE)); } } diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/NodeCleanupHandler.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/NodeCleanupHandler.java index d8775a0f4e..444ff50e31 100644 --- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/NodeCleanupHandler.java +++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/NodeCleanupHandler.java @@ -17,8 +17,8 @@ import org.eclipse.core.runtime.Preferences; import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupHandler; import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupPreferences; import org.eclipse.wst.sse.core.internal.cleanup.StructuredCleanupPreferences; -import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames; import org.eclipse.wst.xml.core.internal.XMLCorePlugin; +import org.eclipse.wst.xml.core.internal.preferences.XMLCorePreferenceNames; import org.w3c.dom.Node; @@ -44,15 +44,13 @@ public class NodeCleanupHandler implements IStructuredCleanupHandler { Preferences preferences = getModelPreferences(); if (preferences != null) { - fCleanupPreferences.setTagNameCase(preferences.getInt(CommonModelPreferenceNames.CLEANUP_TAG_NAME_CASE)); - fCleanupPreferences.setAttrNameCase(preferences.getInt(CommonModelPreferenceNames.CLEANUP_ATTR_NAME_CASE)); - fCleanupPreferences.setCompressEmptyElementTags(preferences.getBoolean(CommonModelPreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS)); - fCleanupPreferences.setInsertRequiredAttrs(preferences.getBoolean(CommonModelPreferenceNames.INSERT_REQUIRED_ATTRS)); - fCleanupPreferences.setInsertMissingTags(preferences.getBoolean(CommonModelPreferenceNames.INSERT_MISSING_TAGS)); - fCleanupPreferences.setQuoteAttrValues(preferences.getBoolean(CommonModelPreferenceNames.QUOTE_ATTR_VALUES)); - fCleanupPreferences.setFormatSource(preferences.getBoolean(CommonModelPreferenceNames.FORMAT_SOURCE)); - fCleanupPreferences.setConvertEOLCodes(preferences.getBoolean(CommonModelPreferenceNames.CONVERT_EOL_CODES)); - fCleanupPreferences.setEOLCode(preferences.getString(CommonModelPreferenceNames.CLEANUP_EOL_CODE)); + fCleanupPreferences.setCompressEmptyElementTags(preferences.getBoolean(XMLCorePreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS)); + fCleanupPreferences.setInsertRequiredAttrs(preferences.getBoolean(XMLCorePreferenceNames.INSERT_REQUIRED_ATTRS)); + fCleanupPreferences.setInsertMissingTags(preferences.getBoolean(XMLCorePreferenceNames.INSERT_MISSING_TAGS)); + fCleanupPreferences.setQuoteAttrValues(preferences.getBoolean(XMLCorePreferenceNames.QUOTE_ATTR_VALUES)); + fCleanupPreferences.setFormatSource(preferences.getBoolean(XMLCorePreferenceNames.FORMAT_SOURCE)); + fCleanupPreferences.setConvertEOLCodes(preferences.getBoolean(XMLCorePreferenceNames.CONVERT_EOL_CODES)); + fCleanupPreferences.setEOLCode(preferences.getString(XMLCorePreferenceNames.CLEANUP_EOL_CODE)); } } diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/preferences/XMLCorePreferenceInitializer.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/preferences/XMLCorePreferenceInitializer.java new file mode 100644 index 0000000000..7211076f7e --- /dev/null +++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/preferences/XMLCorePreferenceInitializer.java @@ -0,0 +1,51 @@ +/******************************************************************************* + * Copyright (c) 2005 IBM Corporation and others. + * 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: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.wst.xml.core.internal.preferences; + +import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer; +import org.eclipse.core.runtime.preferences.DefaultScope; +import org.eclipse.core.runtime.preferences.IEclipsePreferences; +import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames; +import org.eclipse.wst.xml.core.internal.XMLCorePlugin; + +/** + * Sets default values for XML Core preferences + */ +public class XMLCorePreferenceInitializer extends AbstractPreferenceInitializer { + + /* + * (non-Javadoc) + * + * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences() + */ + public void initializeDefaultPreferences() { + IEclipsePreferences node = new DefaultScope().getNode(XMLCorePlugin.getDefault().getBundle().getSymbolicName()); + + // formatting preferences + node.putInt(XMLCorePreferenceNames.LINE_WIDTH, 72); + node.putBoolean(XMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES, false); + node.put(XMLCorePreferenceNames.INDENTATION_CHAR, XMLCorePreferenceNames.TAB); + node.putInt(XMLCorePreferenceNames.INDENTATION_SIZE, 1); + node.putBoolean(XMLCorePreferenceNames.SPLIT_MULTI_ATTRS, false); + + // cleanup preferences + node.putBoolean(XMLCorePreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS, true); + node.putBoolean(XMLCorePreferenceNames.INSERT_REQUIRED_ATTRS, true); + node.putBoolean(XMLCorePreferenceNames.INSERT_MISSING_TAGS, true); + node.putBoolean(XMLCorePreferenceNames.QUOTE_ATTR_VALUES, true); + node.putBoolean(XMLCorePreferenceNames.FORMAT_SOURCE, true); + node.putBoolean(XMLCorePreferenceNames.CONVERT_EOL_CODES, false); + + node.put(CommonEncodingPreferenceNames.INPUT_CODESET, ""); //$NON-NLS-1$ + node.put(CommonEncodingPreferenceNames.OUTPUT_CODESET, "UTF-8");//$NON-NLS-1$ + node.put(CommonEncodingPreferenceNames.END_OF_LINE_CODE, ""); //$NON-NLS-1$ + } +} diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/preferences/XMLCorePreferenceNames.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/preferences/XMLCorePreferenceNames.java new file mode 100644 index 0000000000..308b8ae0cc --- /dev/null +++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/preferences/XMLCorePreferenceNames.java @@ -0,0 +1,144 @@ +/******************************************************************************* + * Copyright (c) 2005 IBM Corporation and others. + * 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: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +package org.eclipse.wst.xml.core.internal.preferences; + +/** + * Common preference keys used by XML core + * + * @since 1.0 + */ +public class XMLCorePreferenceNames { + private XMLCorePreferenceNames() { + // empty private constructor so users cannot instantiate class + } + + /** + * The maximum width of a line before a line split is needed. + * <p> + * Value is of type <code>Integer</code>. + * </p> + */ + public static final String LINE_WIDTH = "lineWidth";//$NON-NLS-1$ + + /** + * Indicates if all blanks lines should be cleared during formatting. + * Blank lines will be kept when false. + * <p> + * Value is of type <code>Boolean</code>. + * </p> + */ + public static final String CLEAR_ALL_BLANK_LINES = "clearAllBlankLines";//$NON-NLS-1$ + + /** + * The number of #INDENTATION_CHAR for 1 indentation. + * <p> + * Value is of type <code>Integer</code>. + * </p> + */ + public static final String INDENTATION_SIZE = "indentationSize";//$NON-NLS-1$ + + /** + * The character used for indentation. + * <p> + * Value is of type <code>String</code>.<br /> + * Possible values: {TAB, SPACE} + * </p> + */ + public static final String INDENTATION_CHAR = "indentationChar";//$NON-NLS-1$ + + /** + * Possible value for the preference #INDENTATION_CHAR. Indicates to use + * tab character when formatting. + * + * @see #SPACE + * @see #INDENTATION_CHAR + */ + public static final String TAB = "tab"; //$NON-NLS-1$ + + /** + * Possible value for the preference #INDENTATION_CHAR. Indicates to use + * space character when formatting. + * + * @see #TAB + * @see #INDENTATION_CHAR + */ + public static final String SPACE = "space"; //$NON-NLS-1$ + + /** + * Indicates if tags with multiple attributes should be formatted + * (splitting each attr on a new line). + * <p> + * Value is of type <code>Boolean</code>. + * </p> + */ + public static final String SPLIT_MULTI_ATTRS = "splitMultiAttrs";//$NON-NLS-1$ + + /** + * Indicates whether or not cleanup processor should format source. + * <p> + * Value is of type <code>Boolean</code>. + * </p> + */ + public static final String FORMAT_SOURCE = "formatSource";//$NON-NLS-1$ + + /** + * Indicates whether or not empty elements should be compressed during + * cleanup. + * <p> + * Value is of type <code>Boolean</code>. + * </p> + */ + public static final String COMPRESS_EMPTY_ELEMENT_TAGS = "compressEmptyElementTags";//$NON-NLS-1$ + + /** + * Indicates whether or not to insert required attributes during cleanup. + * <p> + * Value is of type <code>Boolean</code>. + * </p> + */ + public static final String INSERT_REQUIRED_ATTRS = "insertRequiredAttrs";//$NON-NLS-1$ + + /** + * Indicates whether or not to insert missing tags during cleanup. + * <p> + * Value is of type <code>Boolean</code>. + * </p> + */ + public static final String INSERT_MISSING_TAGS = "insertMissingTags";//$NON-NLS-1$ + + /** + * Indicates whether or not to quote all attribute values during cleanup. + * <p> + * Value is of type <code>Boolean</code>. + * </p> + */ + public static final String QUOTE_ATTR_VALUES = "quoteAttrValues";//$NON-NLS-1$ + + /** + * Indicates whether or not to convert all line delimiters during cleanup. + * <p> + * Value is of type <code>Boolean</code>. + * </p> + */ + public static final String CONVERT_EOL_CODES = "convertEOLCodes";//$NON-NLS-1$ + + /** + * Indicates the line delimiter to use during cleanup if converting line + * delimiters. + * <p> + * Value is of type <code>String</code>.<br /> + * Possible values: {CR, CRLF, LF, NO_TRANSLATION} + * </p> + * + */ + public static final String CLEANUP_EOL_CODE = "cleanupEOLCode";//$NON-NLS-1$ +} diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/FormatProcessorXML.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/FormatProcessorXML.java index 54b84b5a2f..c6ab4bae06 100644 --- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/FormatProcessorXML.java +++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/FormatProcessorXML.java @@ -13,13 +13,12 @@ package org.eclipse.wst.xml.core.internal.provisional.format; import org.eclipse.core.runtime.Preferences; -import org.eclipse.wst.sse.core.internal.SSECorePlugin; import org.eclipse.wst.sse.core.internal.format.AbstractStructuredFormatProcessor; import org.eclipse.wst.sse.core.internal.format.IStructuredFormatPreferences; import org.eclipse.wst.sse.core.internal.format.IStructuredFormatter; -import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames; import org.eclipse.wst.xml.core.internal.XMLCorePlugin; import org.eclipse.wst.xml.core.internal.document.CDATASectionImpl; +import org.eclipse.wst.xml.core.internal.preferences.XMLCorePreferenceNames; import org.w3c.dom.Node; public class FormatProcessorXML extends AbstractStructuredFormatProcessor { @@ -35,20 +34,22 @@ public class FormatProcessorXML extends AbstractStructuredFormatProcessor { Preferences preferences = getModelPreferences(); if (preferences != null) { - fFormatPreferences.setLineWidth(preferences.getInt(CommonModelPreferenceNames.LINE_WIDTH)); - ((IStructuredFormatPreferencesXML) fFormatPreferences).setSplitMultiAttrs(preferences.getBoolean(CommonModelPreferenceNames.SPLIT_MULTI_ATTRS)); - fFormatPreferences.setClearAllBlankLines(preferences.getBoolean(CommonModelPreferenceNames.CLEAR_ALL_BLANK_LINES)); + fFormatPreferences.setLineWidth(preferences.getInt(XMLCorePreferenceNames.LINE_WIDTH)); + ((IStructuredFormatPreferencesXML) fFormatPreferences).setSplitMultiAttrs(preferences.getBoolean(XMLCorePreferenceNames.SPLIT_MULTI_ATTRS)); + fFormatPreferences.setClearAllBlankLines(preferences.getBoolean(XMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES)); - if (preferences.getBoolean(CommonModelPreferenceNames.INDENT_USING_TABS)) - fFormatPreferences.setIndent("\t"); //$NON-NLS-1$ - else { - int tabWidth = SSECorePlugin.getDefault().getPluginPreferences().getInt(CommonModelPreferenceNames.TAB_WIDTH); - String indent = ""; //$NON-NLS-1$ - for (int i = 0; i < tabWidth; i++) { - indent += " "; //$NON-NLS-1$ - } - fFormatPreferences.setIndent(indent); + String indentChar = " "; //$NON-NLS-1$ + String indentCharPref = preferences.getString(XMLCorePreferenceNames.INDENTATION_CHAR); + if (XMLCorePreferenceNames.TAB.equals(indentCharPref)) { + indentChar = "\t"; //$NON-NLS-1$ } + int indentationWidth = preferences.getInt(XMLCorePreferenceNames.INDENTATION_SIZE); + + String indent = ""; //$NON-NLS-1$ + for (int i = 0; i < indentationWidth; i++) { + indent += indentChar; + } + fFormatPreferences.setIndent(indent); } } diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/NodeFormatter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/NodeFormatter.java index 349e373968..d8832e83bc 100644 --- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/NodeFormatter.java +++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/NodeFormatter.java @@ -15,13 +15,11 @@ package org.eclipse.wst.xml.core.internal.provisional.format; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.Preferences; import org.eclipse.jface.text.BadLocationException; -import org.eclipse.wst.sse.core.internal.SSECorePlugin; import org.eclipse.wst.sse.core.internal.format.IStructuredFormatContraints; import org.eclipse.wst.sse.core.internal.format.IStructuredFormatPreferences; import org.eclipse.wst.sse.core.internal.format.IStructuredFormatter; import org.eclipse.wst.sse.core.internal.format.StructuredFormatContraints; import org.eclipse.wst.sse.core.internal.parser.ContextRegion; -import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames; import org.eclipse.wst.sse.core.internal.provisional.exceptions.SourceEditingRuntimeException; import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; @@ -33,6 +31,7 @@ import org.eclipse.wst.xml.core.internal.document.CDATASectionImpl; import org.eclipse.wst.xml.core.internal.document.CharacterDataImpl; import org.eclipse.wst.xml.core.internal.document.CommentImpl; import org.eclipse.wst.xml.core.internal.parser.regions.TagNameRegion; +import org.eclipse.wst.xml.core.internal.preferences.XMLCorePreferenceNames; import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext; @@ -416,20 +415,22 @@ public class NodeFormatter implements IStructuredFormatter { Preferences preferences = getModelPreferences(); if (preferences != null) { - fFormatPreferences.setLineWidth(preferences.getInt(CommonModelPreferenceNames.LINE_WIDTH)); - ((IStructuredFormatPreferencesXML) fFormatPreferences).setSplitMultiAttrs(preferences.getBoolean(CommonModelPreferenceNames.SPLIT_MULTI_ATTRS)); - fFormatPreferences.setClearAllBlankLines(preferences.getBoolean(CommonModelPreferenceNames.CLEAR_ALL_BLANK_LINES)); + fFormatPreferences.setLineWidth(preferences.getInt(XMLCorePreferenceNames.LINE_WIDTH)); + ((IStructuredFormatPreferencesXML) fFormatPreferences).setSplitMultiAttrs(preferences.getBoolean(XMLCorePreferenceNames.SPLIT_MULTI_ATTRS)); + fFormatPreferences.setClearAllBlankLines(preferences.getBoolean(XMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES)); + + String indentChar = " "; //$NON-NLS-1$ + String indentCharPref = preferences.getString(XMLCorePreferenceNames.INDENTATION_CHAR); + if (XMLCorePreferenceNames.TAB.equals(indentCharPref)) { + indentChar = "\t"; //$NON-NLS-1$ + } + int indentationWidth = preferences.getInt(XMLCorePreferenceNames.INDENTATION_SIZE); - if (preferences.getBoolean(CommonModelPreferenceNames.INDENT_USING_TABS)) - fFormatPreferences.setIndent("\t"); //$NON-NLS-1$ - else { - int tabWidth = SSECorePlugin.getDefault().getPluginPreferences().getInt(CommonModelPreferenceNames.TAB_WIDTH); - String indent = ""; //$NON-NLS-1$ - for (int i = 0; i < tabWidth; i++) { - indent += " "; //$NON-NLS-1$ - } - fFormatPreferences.setIndent(indent); + String indent = ""; //$NON-NLS-1$ + for (int i = 0; i < indentationWidth; i++) { + indent += indentChar; } + fFormatPreferences.setIndent(indent); } } diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIMessages.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIMessages.java index 8264ae27bc..ec0d3426bf 100644 --- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIMessages.java +++ b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIMessages.java @@ -219,6 +219,9 @@ public class XMLUIMessages extends NLS { public static String Line_width__UI_; public static String Split_multiple_attributes; public static String Indent_using_tabs; + public static String Indent_using_spaces; + public static String Indentation_size; + public static String Indentation_size_tip; public static String Clear_all_blank_lines_UI_; public static String Grammar_Constraints; public static String Use_inferred_grammar_in_absence_of; diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIPluginResources.properties b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIPluginResources.properties index 106240e60a..cc3084bbce 100644 --- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIPluginResources.properties +++ b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIPluginResources.properties @@ -247,6 +247,9 @@ Formatting_UI_=Formatting Line_width__UI_=Line &width: Split_multiple_attributes=Split &multiple attributes each on a new line Indent_using_tabs=&Indent using tabs +Indent_using_spaces=I&ndent using spaces +Indentation_size=In&dentation size: +Indentation_size_tip=Indentation size Clear_all_blank_lines_UI_=Clear all &blank lines Grammar_Constraints=Grammar Constraints Use_inferred_grammar_in_absence_of=Use inferred grammar in absence of DTD/Schema diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/CleanupDialogXML.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/CleanupDialogXML.java index 97054a2562..3df538010d 100644 --- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/CleanupDialogXML.java +++ b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/CleanupDialogXML.java @@ -24,9 +24,9 @@ import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.help.WorkbenchHelp; import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames; -import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames; import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; import org.eclipse.wst.xml.core.internal.XMLCorePlugin; +import org.eclipse.wst.xml.core.internal.preferences.XMLCorePreferenceNames; import org.eclipse.wst.xml.ui.internal.XMLUIMessages; import org.eclipse.wst.xml.ui.internal.editor.IHelpContextIds; @@ -137,13 +137,13 @@ public class CleanupDialogXML extends Dialog implements SelectionListener { protected void initializeOptions() { - fCheckBoxCompressEmptyElementTags.setSelection(getModelPreferences().getBoolean(CommonModelPreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS)); - fCheckBoxInsertRequiredAttrs.setSelection(getModelPreferences().getBoolean(CommonModelPreferenceNames.INSERT_REQUIRED_ATTRS)); - fCheckBoxInsertMissingTags.setSelection(getModelPreferences().getBoolean(CommonModelPreferenceNames.INSERT_MISSING_TAGS)); - fCheckBoxQuoteAttrValues.setSelection(getModelPreferences().getBoolean(CommonModelPreferenceNames.QUOTE_ATTR_VALUES)); - fCheckBoxFormatSource.setSelection(getModelPreferences().getBoolean(CommonModelPreferenceNames.FORMAT_SOURCE)); - fCheckBoxConvertEOLCodes.setSelection(getModelPreferences().getBoolean(CommonModelPreferenceNames.CONVERT_EOL_CODES)); - String EOLCode = getModelPreferences().getString(CommonModelPreferenceNames.CLEANUP_EOL_CODE); + fCheckBoxCompressEmptyElementTags.setSelection(getModelPreferences().getBoolean(XMLCorePreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS)); + fCheckBoxInsertRequiredAttrs.setSelection(getModelPreferences().getBoolean(XMLCorePreferenceNames.INSERT_REQUIRED_ATTRS)); + fCheckBoxInsertMissingTags.setSelection(getModelPreferences().getBoolean(XMLCorePreferenceNames.INSERT_MISSING_TAGS)); + fCheckBoxQuoteAttrValues.setSelection(getModelPreferences().getBoolean(XMLCorePreferenceNames.QUOTE_ATTR_VALUES)); + fCheckBoxFormatSource.setSelection(getModelPreferences().getBoolean(XMLCorePreferenceNames.FORMAT_SOURCE)); + fCheckBoxConvertEOLCodes.setSelection(getModelPreferences().getBoolean(XMLCorePreferenceNames.CONVERT_EOL_CODES)); + String EOLCode = getModelPreferences().getString(XMLCorePreferenceNames.CLEANUP_EOL_CODE); if (EOLCode.compareTo(CommonEncodingPreferenceNames.LF) == 0) fRadioButtonConvertEOLUnix.setSelection(true); else if (EOLCode.compareTo(CommonEncodingPreferenceNames.CR) == 0) @@ -166,18 +166,18 @@ public class CleanupDialogXML extends Dialog implements SelectionListener { protected void storeOptions() { - getModelPreferences().setValue(CommonModelPreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS, fCheckBoxCompressEmptyElementTags.getSelection()); - getModelPreferences().setValue(CommonModelPreferenceNames.INSERT_REQUIRED_ATTRS, fCheckBoxInsertRequiredAttrs.getSelection()); - getModelPreferences().setValue(CommonModelPreferenceNames.INSERT_MISSING_TAGS, fCheckBoxInsertMissingTags.getSelection()); - getModelPreferences().setValue(CommonModelPreferenceNames.QUOTE_ATTR_VALUES, fCheckBoxQuoteAttrValues.getSelection()); - getModelPreferences().setValue(CommonModelPreferenceNames.FORMAT_SOURCE, fCheckBoxFormatSource.getSelection()); - getModelPreferences().setValue(CommonModelPreferenceNames.CONVERT_EOL_CODES, fCheckBoxConvertEOLCodes.getSelection()); + getModelPreferences().setValue(XMLCorePreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS, fCheckBoxCompressEmptyElementTags.getSelection()); + getModelPreferences().setValue(XMLCorePreferenceNames.INSERT_REQUIRED_ATTRS, fCheckBoxInsertRequiredAttrs.getSelection()); + getModelPreferences().setValue(XMLCorePreferenceNames.INSERT_MISSING_TAGS, fCheckBoxInsertMissingTags.getSelection()); + getModelPreferences().setValue(XMLCorePreferenceNames.QUOTE_ATTR_VALUES, fCheckBoxQuoteAttrValues.getSelection()); + getModelPreferences().setValue(XMLCorePreferenceNames.FORMAT_SOURCE, fCheckBoxFormatSource.getSelection()); + getModelPreferences().setValue(XMLCorePreferenceNames.CONVERT_EOL_CODES, fCheckBoxConvertEOLCodes.getSelection()); if (fRadioButtonConvertEOLUnix.getSelection()) { - getModelPreferences().setValue(CommonModelPreferenceNames.CLEANUP_EOL_CODE, CommonEncodingPreferenceNames.LF); + getModelPreferences().setValue(XMLCorePreferenceNames.CLEANUP_EOL_CODE, CommonEncodingPreferenceNames.LF); } else if (fRadioButtonConvertEOLMac.getSelection()) { - getModelPreferences().setValue(CommonModelPreferenceNames.CLEANUP_EOL_CODE, CommonEncodingPreferenceNames.CR); + getModelPreferences().setValue(XMLCorePreferenceNames.CLEANUP_EOL_CODE, CommonEncodingPreferenceNames.CR); } else { - getModelPreferences().setValue(CommonModelPreferenceNames.CLEANUP_EOL_CODE, CommonEncodingPreferenceNames.CRLF); + getModelPreferences().setValue(XMLCorePreferenceNames.CLEANUP_EOL_CODE, CommonEncodingPreferenceNames.CRLF); } // explicitly save plugin preferences so values are stored XMLCorePlugin.getDefault().savePluginPreferences(); diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/AbstractContentAssistProcessor.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/AbstractContentAssistProcessor.java index e49cff38ee..7564f14f5d 100644 --- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/AbstractContentAssistProcessor.java +++ b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/AbstractContentAssistProcessor.java @@ -2202,7 +2202,7 @@ abstract public class AbstractContentAssistProcessor implements IContentAssistPr } protected ContentAssistRequest newContentAssistRequest(Node node, Node possibleParent, IStructuredDocumentRegion documentRegion, ITextRegion completionRegion, int begin, int length, String filter) { - return new ContentAssistRequest(node, possibleParent, documentRegion, completionRegion, begin, length, filter, null); + return new ContentAssistRequest(node, possibleParent, documentRegion, completionRegion, begin, length, filter); } public void release() { diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/ContentAssistRequest.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/ContentAssistRequest.java index 908bc4f396..2e193b1ed9 100644 --- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/ContentAssistRequest.java +++ b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/ContentAssistRequest.java @@ -23,15 +23,11 @@ import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentReg import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionCollection; import org.eclipse.wst.sse.core.internal.util.StringUtils; -import org.eclipse.wst.sse.ui.internal.provisional.preferences.PreferenceManager; import org.w3c.dom.Node; public class ContentAssistRequest { protected IStructuredDocumentRegion documentRegion = null; - - - protected PreferenceManager fPreferenceManager = null; protected List macros = new ArrayList(); protected String matchString; protected Node node = null; @@ -46,7 +42,7 @@ public class ContentAssistRequest { /** * XMLContentAssistRequest constructor comment. */ - public ContentAssistRequest(Node node, Node parent, IStructuredDocumentRegion documentRegion, ITextRegion completionRegion, int begin, int length, String filter, PreferenceManager preferencesManager) { + public ContentAssistRequest(Node node, Node parent, IStructuredDocumentRegion documentRegion, ITextRegion completionRegion, int begin, int length, String filter) { super(); setNode(node); setParent(parent); @@ -55,7 +51,6 @@ public class ContentAssistRequest { setMatchString(filter); setReplacementBeginPosition(begin); setReplacementLength(length); - fPreferenceManager = preferencesManager; } public void addMacro(ICompletionProposal newProposal) { diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/preferences/XMLSourcePreferencePage.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/preferences/XMLSourcePreferencePage.java index 4dadbe9cec..31a8fdff6b 100644 --- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/preferences/XMLSourcePreferencePage.java +++ b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/preferences/XMLSourcePreferencePage.java @@ -23,27 +23,35 @@ import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Group; import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Spinner; import org.eclipse.swt.widgets.Text; import org.eclipse.ui.IWorkbenchPreferencePage; import org.eclipse.ui.help.WorkbenchHelp; -import org.eclipse.wst.sse.core.internal.preferences.CommonModelPreferenceNames; import org.eclipse.wst.sse.ui.internal.preferences.ui.AbstractPreferencePage; import org.eclipse.wst.xml.core.internal.XMLCorePlugin; +import org.eclipse.wst.xml.core.internal.preferences.XMLCorePreferenceNames; import org.eclipse.wst.xml.ui.internal.XMLUIMessages; import org.eclipse.wst.xml.ui.internal.XMLUIPlugin; import org.eclipse.wst.xml.ui.internal.editor.IHelpContextIds; public class XMLSourcePreferencePage extends AbstractPreferencePage implements ModifyListener, SelectionListener, IWorkbenchPreferencePage { + private final int MIN_INDENTATION_SIZE = 0; + private final int MAX_INDENTATION_SIZE = 16; + // Content Assist protected Button fAutoPropose; protected Label fAutoProposeLabel; protected Text fAutoProposeText; protected Button fClearAllBlankLines; - protected Button fIndentUsingTabs; + // Formatting protected Label fLineWidthLabel; protected Text fLineWidthText; protected Button fSplitMultiAttrs; + private Button fIndentUsingTabs; + private Button fIndentUsingSpaces; + private Spinner fIndentationSize; + // grammar constraints protected Button fUseInferredGrammar; @@ -85,12 +93,25 @@ public class XMLSourcePreferencePage extends AbstractPreferencePage implements M fSplitMultiAttrs = createCheckBox(formattingGroup, XMLUIMessages.Split_multiple_attributes); ((GridData) fSplitMultiAttrs.getLayoutData()).horizontalSpan = 2; - - fIndentUsingTabs = createCheckBox(formattingGroup, XMLUIMessages.Indent_using_tabs); - ((GridData) fIndentUsingTabs.getLayoutData()).horizontalSpan = 2; - fClearAllBlankLines = createCheckBox(formattingGroup, XMLUIMessages.Clear_all_blank_lines_UI_); ((GridData) fClearAllBlankLines.getLayoutData()).horizontalSpan = 2; + + fIndentUsingTabs = createRadioButton(formattingGroup, XMLUIMessages.Indent_using_tabs); + ((GridData) fIndentUsingTabs.getLayoutData()).horizontalSpan = 2; + + fIndentUsingSpaces = createRadioButton(formattingGroup, XMLUIMessages.Indent_using_spaces); + ((GridData) fIndentUsingSpaces.getLayoutData()).horizontalSpan = 2; + + createLabel(formattingGroup, XMLUIMessages.Indentation_size); + fIndentationSize = new Spinner(formattingGroup, SWT.READ_ONLY | SWT.BORDER); + GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING); + fIndentationSize.setLayoutData(gd); + fIndentationSize.setToolTipText(XMLUIMessages.Indentation_size_tip); + fIndentationSize.setMinimum(MIN_INDENTATION_SIZE); + fIndentationSize.setMaximum(MAX_INDENTATION_SIZE); + fIndentationSize.setIncrement(1); + fIndentationSize.setPageIncrement(4); + fIndentationSize.addModifyListener(this); } protected void createContentsForGrammarConstraintsGroup(Composite parent) { @@ -122,15 +143,6 @@ public class XMLSourcePreferencePage extends AbstractPreferencePage implements M } } - /** - * @deprecated key no longer needed (preference should be stored in their own preference store) - */ - protected String getKey(String key) { -// String contentTypeId = IContentTypeIdentifier.ContentTypeID_SSEXML; -// return PreferenceKeyGenerator.generateKey(key, contentTypeId); - return key; - } - protected Preferences getModelPreferences() { return XMLCorePlugin.getDefault().getPluginPreferences(); } @@ -149,10 +161,19 @@ public class XMLSourcePreferencePage extends AbstractPreferencePage implements M protected void initializeValuesForFormattingGroup() { // Formatting - fLineWidthText.setText(getModelPreferences().getString(CommonModelPreferenceNames.LINE_WIDTH)); - fSplitMultiAttrs.setSelection(getModelPreferences().getBoolean(CommonModelPreferenceNames.SPLIT_MULTI_ATTRS)); - fIndentUsingTabs.setSelection(getModelPreferences().getBoolean(CommonModelPreferenceNames.INDENT_USING_TABS)); - fClearAllBlankLines.setSelection(getModelPreferences().getBoolean(CommonModelPreferenceNames.CLEAR_ALL_BLANK_LINES)); + fLineWidthText.setText(getModelPreferences().getString(XMLCorePreferenceNames.LINE_WIDTH)); + fSplitMultiAttrs.setSelection(getModelPreferences().getBoolean(XMLCorePreferenceNames.SPLIT_MULTI_ATTRS)); + fClearAllBlankLines.setSelection(getModelPreferences().getBoolean(XMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES)); + + if (XMLCorePreferenceNames.TAB.equals(getModelPreferences().getString(XMLCorePreferenceNames.INDENTATION_CHAR))) { + fIndentUsingTabs.setSelection(true); + fIndentUsingSpaces.setSelection(false); + } else { + fIndentUsingSpaces.setSelection(true); + fIndentUsingTabs.setSelection(false); + } + + fIndentationSize.setSelection(getModelPreferences().getInt(XMLCorePreferenceNames.INDENTATION_SIZE)); } protected void initializeValuesForGrammarConstraintsGroup() { @@ -178,10 +199,18 @@ public class XMLSourcePreferencePage extends AbstractPreferencePage implements M protected void performDefaultsForFormattingGroup() { // Formatting - fLineWidthText.setText(getModelPreferences().getDefaultString(CommonModelPreferenceNames.LINE_WIDTH)); - fSplitMultiAttrs.setSelection(getModelPreferences().getDefaultBoolean(CommonModelPreferenceNames.SPLIT_MULTI_ATTRS)); - fIndentUsingTabs.setSelection(getModelPreferences().getDefaultBoolean(CommonModelPreferenceNames.INDENT_USING_TABS)); - fClearAllBlankLines.setSelection(getModelPreferences().getDefaultBoolean(CommonModelPreferenceNames.CLEAR_ALL_BLANK_LINES)); + fLineWidthText.setText(getModelPreferences().getDefaultString(XMLCorePreferenceNames.LINE_WIDTH)); + fSplitMultiAttrs.setSelection(getModelPreferences().getDefaultBoolean(XMLCorePreferenceNames.SPLIT_MULTI_ATTRS)); + fClearAllBlankLines.setSelection(getModelPreferences().getDefaultBoolean(XMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES)); + + if (XMLCorePreferenceNames.TAB.equals(getModelPreferences().getDefaultString(XMLCorePreferenceNames.INDENTATION_CHAR))) { + fIndentUsingTabs.setSelection(true); + fIndentUsingSpaces.setSelection(false); + } else { + fIndentUsingSpaces.setSelection(true); + fIndentUsingTabs.setSelection(false); + } + fIndentationSize.setSelection(getModelPreferences().getDefaultInt(XMLCorePreferenceNames.INDENTATION_SIZE)); } protected void performDefaultsForGrammarConstraintsGroup() { @@ -210,10 +239,16 @@ public class XMLSourcePreferencePage extends AbstractPreferencePage implements M protected void storeValuesForFormattingGroup() { // Formatting - getModelPreferences().setValue(CommonModelPreferenceNames.LINE_WIDTH, fLineWidthText.getText()); - getModelPreferences().setValue(CommonModelPreferenceNames.SPLIT_MULTI_ATTRS, fSplitMultiAttrs.getSelection()); - getModelPreferences().setValue(CommonModelPreferenceNames.INDENT_USING_TABS, fIndentUsingTabs.getSelection()); - getModelPreferences().setValue(CommonModelPreferenceNames.CLEAR_ALL_BLANK_LINES, fClearAllBlankLines.getSelection()); + getModelPreferences().setValue(XMLCorePreferenceNames.LINE_WIDTH, fLineWidthText.getText()); + getModelPreferences().setValue(XMLCorePreferenceNames.SPLIT_MULTI_ATTRS, fSplitMultiAttrs.getSelection()); + getModelPreferences().setValue(XMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES, fClearAllBlankLines.getSelection()); + + if (fIndentUsingTabs.getSelection()) { + getModelPreferences().setValue(XMLCorePreferenceNames.INDENTATION_CHAR, XMLCorePreferenceNames.TAB); + } else { + getModelPreferences().setValue(XMLCorePreferenceNames.INDENTATION_CHAR, XMLCorePreferenceNames.SPACE); + } + getModelPreferences().setValue(XMLCorePreferenceNames.INDENTATION_SIZE, fIndentationSize.getSelection()); } protected void storeValuesForGrammarConstraintsGroup() { @@ -237,6 +272,19 @@ public class XMLSourcePreferencePage extends AbstractPreferencePage implements M } } + int indentSize = 0; + if (fIndentationSize != null) { + try { + indentSize = fIndentationSize.getSelection(); + if ((indentSize < MIN_INDENTATION_SIZE) || (indentSize > MAX_INDENTATION_SIZE)) + throw new NumberFormatException(); + } catch (NumberFormatException nfexc) { + setInvalidInputMessage(Integer.toString(indentSize)); + setValid(false); + isError = true; + } + } + if (!isError) { setErrorMessage(null); setValid(true); |