diff options
Diffstat (limited to 'bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal')
268 files changed, 0 insertions, 39955 deletions
diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/CSSCoreMessages.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/CSSCoreMessages.java deleted file mode 100644 index 8d79a982fc..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/CSSCoreMessages.java +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2006 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.css.core.internal; - -import org.eclipse.osgi.util.NLS; - -/** - * Strings used by CSS Core - * - * @plannedfor 1.0 - */ -public class CSSCoreMessages extends NLS { - private static final String BUNDLE_NAME = "org.eclipse.wst.css.core.internal.CSSCorePluginResources";//$NON-NLS-1$ - - public static String You_cannot_use_CSSStyleShe_UI_; - public static String _1concat_ERROR_; - public static String _2concat_ERROR_; - public static String _3concat_ERROR_; - public static String _4concat_ERROR_; - public static String _25concat_ERROR_; - public static String _26concat_ERROR_; - public static String _27concat_ERROR_; - public static String _28concat_ERROR_; - public static String _5concat_ERROR_; - public static String _6concat_ERROR_; - public static String _7concat_ERROR_; - public static String _8concat_ERROR_; - public static String CSSContentPropertiesManager_Updating; - public static String CSSContentPropertiesManager_Problems_Updating; - - static { - // load message values from bundle file - NLS.initializeMessages(BUNDLE_NAME, CSSCoreMessages.class); - } -} 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 deleted file mode 100644 index f992edfaca..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/CSSCorePlugin.java +++ /dev/null @@ -1,62 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 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; - -import org.eclipse.core.resources.IWorkspace; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.Plugin; -import org.eclipse.wst.css.core.internal.contentproperties.CSSContentPropertiesManager; -import org.osgi.framework.BundleContext; - -/** - * The main plugin class to be used in the desktop. - */ -public class CSSCorePlugin extends Plugin { - // The shared instance. - private static CSSCorePlugin plugin; - - /** - * The constructor. - */ - public CSSCorePlugin() { - super(); - plugin = this; - } - - /** - * Returns the shared instance. - */ - public static CSSCorePlugin getDefault() { - return plugin; - } - - /** - * Returns the workspace instance. - */ - public static IWorkspace getWorkspace() { - return ResourcesPlugin.getWorkspace(); - } - - public void start(BundleContext context) throws Exception { - super.start(context); - - // listen for resource changes to update content properties keys - CSSContentPropertiesManager.startup(); - } - - public void stop(BundleContext context) throws Exception { - // stop listenning for resource changes to update content properties - // keys - CSSContentPropertiesManager.shutdown(); - - super.stop(context); - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/CSSCorePluginResources.properties b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/CSSCorePluginResources.properties deleted file mode 100644 index c971cd65b4..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/CSSCorePluginResources.properties +++ /dev/null @@ -1,26 +0,0 @@ -############################################################################### -# Copyright (c) 2004, 2006 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 -############################################################################### -You_cannot_use_CSSStyleShe_UI_=You cannot use CSSStyleSheet.getOwnerRule() because of many referencers of this rule\nPlease use getOnwerRules() -_1concat_ERROR_={0}first flat node is null. -_2concat_ERROR_={0}first flat node is not in model. -_3concat_ERROR_={0}last flat node is null. -_4concat_ERROR_={0}last flat node is not in model. -_25concat_ERROR_={0}first region is null. -_26concat_ERROR_={0}first region is not in model. -_27concat_ERROR_={0}last region is null. -_28concat_ERROR_={0}last region is not in model. -_5concat_ERROR_={0}first region is null. -_6concat_ERROR_={0}first region is not in model. -_7concat_ERROR_={0}last region is null. -_8concat_ERROR_={0}last region is not in model. -# -CSSContentPropertiesManager_Updating=Updating CSS Content Settings -CSSContentPropertiesManager_Problems_Updating=Problem saving CSS Content Settings for {0} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/Logger.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/Logger.java deleted file mode 100644 index ebffda092d..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/Logger.java +++ /dev/null @@ -1,156 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 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; - - - -import com.ibm.icu.util.StringTokenizer; - -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Platform; -import org.eclipse.core.runtime.Status; -import org.osgi.framework.Bundle; - -/** - * Small convenience class to log messages to plugin's log file and also, if - * desired, the console. This class should only be used by classes in this - * plugin. Other plugins should make their own copy, with appropriate ID. - */ -public class Logger { - private static final String PLUGIN_ID = "org.eclipse.wst.css.core"; //$NON-NLS-1$ - - private static final String TRACEFILTER_LOCATION = "/debug/tracefilter"; //$NON-NLS-1$ - - public static final int OK = IStatus.OK; // 0 - public static final int INFO = IStatus.INFO; // 1 - public static final int WARNING = IStatus.WARNING; // 2 - public static final int ERROR = IStatus.ERROR; // 4 - - public static final int OK_DEBUG = 200 + OK; - public static final int INFO_DEBUG = 200 + INFO; - public static final int WARNING_DEBUG = 200 + WARNING; - public static final int ERROR_DEBUG = 200 + ERROR; - - /** - * Adds message to log. - * - * @param level - * severity level of the message (OK, INFO, WARNING, ERROR, - * OK_DEBUG, INFO_DEBUG, WARNING_DEBUG, ERROR_DEBUG) - * @param message - * text to add to the log - * @param exception - * exception thrown - */ - protected static void _log(int level, String message, Throwable exception) { - if (level == OK_DEBUG || level == INFO_DEBUG || level == WARNING_DEBUG || level == ERROR_DEBUG) { - if (!isDebugging()) - return; - } - - int severity = IStatus.OK; - switch (level) { - case INFO_DEBUG : - case INFO : - severity = IStatus.INFO; - break; - case WARNING_DEBUG : - case WARNING : - severity = IStatus.WARNING; - break; - case ERROR_DEBUG : - case ERROR : - severity = IStatus.ERROR; - } - message = (message != null) ? message : "null"; //$NON-NLS-1$ - Status statusObj = new Status(severity, PLUGIN_ID, severity, message, exception); - Bundle bundle = Platform.getBundle(PLUGIN_ID); - if (bundle != null) - Platform.getLog(bundle).log(statusObj); - } - - /** - * Prints message to log if category matches /debug/tracefilter option. - * - * @param message - * text to print - * @param category - * category of the message, to be compared with - * /debug/tracefilter - */ - protected static void _trace(String category, String message, Throwable exception) { - if (isTracing(category)) { - message = (message != null) ? message : "null"; //$NON-NLS-1$ - Status statusObj = new Status(IStatus.OK, PLUGIN_ID, IStatus.OK, message, exception); - Bundle bundle = Platform.getBundle(PLUGIN_ID); - if (bundle != null) - Platform.getLog(bundle).log(statusObj); - } - } - - /** - * @return true if the platform is debugging - */ - public static boolean isDebugging() { - return Platform.inDebugMode(); - } - - /** - * Determines if currently tracing a category - * - * @param category - * @return true if tracing category, false otherwise - */ - public static boolean isTracing(String category) { - if (!isDebugging()) - return false; - - String traceFilter = Platform.getDebugOption(PLUGIN_ID + TRACEFILTER_LOCATION); - if (traceFilter != null) { - StringTokenizer tokenizer = new StringTokenizer(traceFilter, ","); //$NON-NLS-1$ - while (tokenizer.hasMoreTokens()) { - String cat = tokenizer.nextToken().trim(); - if (category.equals(cat)) { - return true; - } - } - } - return false; - } - - public static void log(int level, String message) { - _log(level, message, null); - } - - public static void log(int level, String message, Throwable exception) { - _log(level, message, exception); - } - - public static void logException(String message, Throwable exception) { - _log(ERROR, message, exception); - } - - public static void logException(Throwable exception) { - _log(ERROR, exception.getMessage(), exception); - } - - public static void traceException(String category, String message, Throwable exception) { - _trace(category, message, exception); - } - - public static void traceException(String category, Throwable exception) { - _trace(category, exception.getMessage(), exception); - } - - public static void trace(String category, String message) { - _trace(category, message, null); - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/cleanup/CSSCleanupStrategy.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/cleanup/CSSCleanupStrategy.java deleted file mode 100644 index eb6d86e67b..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/cleanup/CSSCleanupStrategy.java +++ /dev/null @@ -1,98 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.cleanup; - - - -public interface CSSCleanupStrategy { - - static final short ASIS = 0; - static final short LOWER = 1; - static final short UPPER = 2; - - /** - * - * @return short - */ - short getIdentCase(); - - /** - * - * @return short - */ - short getPropNameCase(); - - /** - * - * @return short - */ - short getPropValueCase(); - - /** - * - * @return short - */ - short getSelectorTagCase(); - - /** - * - * @return boolean - */ - boolean isFormatSource(); - - /** - * - * @return boolean - */ - boolean isQuoteValues(); - - /** - * - * @param formatSource - * boolean - */ - void setFormatSource(boolean formatSource); - - /** - * - * @param identCase - * short - */ - void setIdentCase(short identCase); - - /** - * - * @param propNameCase - * short - */ - void setPropNameCase(short propNameCase); - - /** - * - * @param propValueCase - * short - */ - void setPropValueCase(short propValueCase); - - /** - * - * @param quoteValues - * boolean - */ - void setQuoteValues(boolean quoteValues); - - /** - * - * @param selectorTagCase - * short - */ - void setSelectorTagCase(short selectorTagCase); -} 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 deleted file mode 100644 index 5b190f4ebc..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/cleanup/CSSCleanupStrategyImpl.java +++ /dev/null @@ -1,190 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.cleanup; - -import org.eclipse.core.runtime.Preferences; -import org.eclipse.wst.css.core.internal.CSSCorePlugin; -import org.eclipse.wst.css.core.internal.preferences.CSSCorePreferenceNames; - - - -public class CSSCleanupStrategyImpl implements CSSCleanupStrategy { - - static private CSSCleanupStrategy instance = null; - // initialize with defaults - protected short fIdentCase = ASIS; - protected short fPropNameCase = ASIS; - protected short fPropValueCase = ASIS; - protected short fSelectorTagCase = UPPER; - protected boolean fQuoteValues = true; - protected boolean fFormatSource = true; - - /** - * CSSCleanupStrategyImpl constructor comment. - */ - protected CSSCleanupStrategyImpl() { - super(); - initialize(); - } - - /** - * - * @return short - */ - public short getIdentCase() { - return fIdentCase; - } - - /** - * - * @return org.eclipse.wst.css.core.internal.cleanup.CSSCleanupStrategy - */ - public synchronized static CSSCleanupStrategy getInstance() { - if (instance == null) - instance = new CSSCleanupStrategyImpl(); - return instance; - } - - /** - * - * @return short - */ - public short getPropNameCase() { - return fPropNameCase; - } - - /** - * - * @return short - */ - public short getPropValueCase() { - return fPropValueCase; - } - - /** - * - * @return short - */ - public short getSelectorTagCase() { - return fSelectorTagCase; - } - - /** - * - */ - private void initialize() { - Preferences prefs = CSSCorePlugin.getDefault().getPluginPreferences(); - 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); - } - - /** - * Return the CSSCleanupStrategy equivalent case short value when given an - * int - * - * @param value - * @return equivalent case short or ASIS if cannot be determined - */ - private short getCleanupCaseValue(int value) { - switch (value) { - case CSSCorePreferenceNames.LOWER : - return LOWER; - case CSSCorePreferenceNames.UPPER : - return UPPER; - } - return ASIS; - } - - /** - * - * @return boolean - */ - public boolean isFormatSource() { - return fFormatSource; - } - - /** - * - * @return boolean - */ - public boolean isQuoteValues() { - return fQuoteValues; - } - - /** - * - * @param formatSource - * boolean - */ - public void setFormatSource(boolean formatSource) { - fFormatSource = formatSource; - } - - /** - * - * @param identCase - * short - */ - public void setIdentCase(short identCase) { - fIdentCase = identCase; - } - - /** - * - * @param propNameCase - * short - */ - public void setPropNameCase(short propNameCase) { - fPropNameCase = propNameCase; - } - - /** - * - * @param propValueCase - * short - */ - public void setPropValueCase(short propValueCase) { - fPropValueCase = propValueCase; - } - - /** - * - * @param quoteValues - * boolean - */ - public void setQuoteValues(boolean quoteValues) { - fQuoteValues = quoteValues; - } - - /** - * - * @param selectorTagCase - * short - */ - public void setSelectorTagCase(short selectorTagCase) { - fSelectorTagCase = selectorTagCase; - } - - // TODO: a saveOptions should be added to CSSCleanupStrategy interface - public void saveOptions() { - 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(); - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/cleanup/CleanupProcessorCSS.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/cleanup/CleanupProcessorCSS.java deleted file mode 100644 index 1fadf348c8..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/cleanup/CleanupProcessorCSS.java +++ /dev/null @@ -1,101 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.cleanup; - -import java.io.IOException; -import java.util.List; - -import org.eclipse.core.runtime.CoreException; -import org.eclipse.jface.text.IDocument; -import org.eclipse.wst.css.core.internal.formatter.CSSFormatUtil; -import org.eclipse.wst.css.core.internal.formatter.CSSSourceFormatter; -import org.eclipse.wst.css.core.internal.formatter.CSSSourceFormatterFactory; -import org.eclipse.wst.css.core.internal.provisional.contenttype.ContentTypeIdForCSS; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSDocument; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.eclipse.wst.sse.core.internal.cleanup.AbstractStructuredCleanupProcessor; -import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupHandler; -import org.eclipse.wst.sse.core.internal.format.IStructuredFormatProcessor; -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; -import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; -import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; -import org.w3c.dom.Node; - - -public class CleanupProcessorCSS extends AbstractStructuredCleanupProcessor { - - public void cleanupModel(IStructuredModel structuredModel, int start, int length) { - CSSFormatUtil formatUtil = CSSFormatUtil.getInstance(); - if (structuredModel instanceof ICSSModel) { - ICSSDocument doc = ((ICSSModel) structuredModel).getDocument(); - CSSSourceFormatter formatter = CSSSourceFormatterFactory.getInstance().getSourceFormatter((INodeNotifier) doc); - StringBuffer buf = formatter.cleanup(doc); - if (buf != null) { - int startOffset = ((IndexedRegion) doc).getStartOffset(); - int endOffset = ((IndexedRegion) doc).getEndOffset(); - formatUtil.replaceSource(doc.getModel(), startOffset, endOffset - startOffset, buf.toString()); - } - } - else if (structuredModel instanceof IDOMModel) { - List cssnodes = formatUtil.collectCSSNodes(structuredModel, start, length); - if (cssnodes != null && !cssnodes.isEmpty()) { - ICSSModel model = null; - for (int i = 0; i < cssnodes.size(); i++) { - ICSSNode node = (ICSSNode) cssnodes.get(i); - CSSSourceFormatter formatter = CSSSourceFormatterFactory.getInstance().getSourceFormatter((INodeNotifier) node); - StringBuffer buf = formatter.cleanup(node); - if (buf != null) { - int startOffset = ((IndexedRegion) node).getStartOffset(); - int endOffset = ((IndexedRegion) node).getEndOffset(); - if (model == null) { - model = node.getOwnerDocument().getModel(); - } - formatUtil.replaceSource(model, startOffset, endOffset - startOffset, buf.toString()); - } - } - } - } - } - - protected String getContentType() { - return ContentTypeIdForCSS.ContentTypeID_CSS; - } - - public void cleanupModel(IStructuredModel structuredModel) { - int start = 0; - int length = structuredModel.getStructuredDocument().getLength(); - - cleanupModel(structuredModel, start, length); - } - - public void cleanupDocument(IDocument document) throws IOException, CoreException { - // TODO should implement, or delete? - - } - - public void cleanupDocument(IDocument document, int start, int length) throws IOException, CoreException { - // TODO should implement, or delete? - - } - - protected IStructuredCleanupHandler getCleanupHandler(Node node) { - return null; - } - - protected IStructuredFormatProcessor getFormatProcessor() { - return null; - } - - protected void refreshCleanupPreferences() { - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contentmodel/IMediaGroupID.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contentmodel/IMediaGroupID.java deleted file mode 100644 index 8d02ac886b..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contentmodel/IMediaGroupID.java +++ /dev/null @@ -1,34 +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.contentmodel; - - - -/** - * - */ -public interface IMediaGroupID { - - public final static String M_CONTINUOUS = "continuous"; //$NON-NLS-1$ - public final static String M_PAGED = "paged"; //$NON-NLS-1$ - - public final static String M_VISUAL = "visual"; //$NON-NLS-1$ - public final static String M_AURAL = "aural"; //$NON-NLS-1$ - public final static String M_TACTILE = "tactile"; //$NON-NLS-1$ - - public final static String M_GRID = "grid"; //$NON-NLS-1$ - public final static String M_BITMAP = "bitmap"; //$NON-NLS-1$ - - public final static String M_INTERACTIVE = "interactive"; //$NON-NLS-1$ - public final static String M_STATIC = "static"; //$NON-NLS-1$ - - public final static String M_ALL = "all"; //$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/contentmodel/IValID.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contentmodel/IValID.java deleted file mode 100644 index f49c1a113e..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contentmodel/IValID.java +++ /dev/null @@ -1,266 +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.contentmodel; - - - -/** - * - */ -public interface IValID { - - public final static String V_100 = "100"; //$NON-NLS-1$ - public final static String V_200 = "200"; //$NON-NLS-1$ - public final static String V_300 = "300"; //$NON-NLS-1$ - public final static String V_400 = "400"; //$NON-NLS-1$ - public final static String V_500 = "500"; //$NON-NLS-1$ - public final static String V_600 = "600"; //$NON-NLS-1$ - public final static String V_700 = "700"; //$NON-NLS-1$ - public final static String V_800 = "800"; //$NON-NLS-1$ - public final static String V_900 = "900"; //$NON-NLS-1$ - public final static String V_ABOVE = "above"; //$NON-NLS-1$ - public final static String V_ABSOLUTE = "absolute"; //$NON-NLS-1$ - public final static String V_ACTIVEBORDER = "ActiveBorder"; //$NON-NLS-1$ - public final static String V_ACTIVECAPTION = "ActiveCaption"; //$NON-NLS-1$ - public final static String V_ALL = "all"; //$NON-NLS-1$ - public final static String V_ALWAYS = "always"; //$NON-NLS-1$ - public final static String V_APPWORKSPACE = "AppWorkspace"; //$NON-NLS-1$ - public final static String V_AQUA = "aqua"; //$NON-NLS-1$ - public final static String V_ARMENIAN = "armenian"; //$NON-NLS-1$ - public final static String V_AUTO = "auto"; //$NON-NLS-1$ - public final static String V_AVOID = "avoid"; //$NON-NLS-1$ - public final static String V_BACKGROUND = "Background"; //$NON-NLS-1$ - public final static String V_BASELINE = "baseline"; //$NON-NLS-1$ - public final static String V_BEHIND = "behind"; //$NON-NLS-1$ - public final static String V_BELOW = "below"; //$NON-NLS-1$ - public final static String V_BIDI_OVERRIDE = "bidi-override"; //$NON-NLS-1$ - public final static String V_BLACK = "black"; //$NON-NLS-1$ - public final static String V_BLINK = "blink"; //$NON-NLS-1$ - public final static String V_BLOCK = "block"; //$NON-NLS-1$ - public final static String V_BLUE = "blue"; //$NON-NLS-1$ - public final static String V_BOLD = "bold"; //$NON-NLS-1$ - public final static String V_BOLDER = "bolder"; //$NON-NLS-1$ - public final static String V_BOTH = "both"; //$NON-NLS-1$ - public final static String V_BOTTOM = "bottom"; //$NON-NLS-1$ - public final static String V_BUTTONFACE = "ButtonFace"; //$NON-NLS-1$ - public final static String V_BUTTONHIGHLIGHT = "ButtonHighlight"; //$NON-NLS-1$ - public final static String V_BUTTONSHADOW = "ButtonShadow"; //$NON-NLS-1$ - public final static String V_BUTTONTEXT = "ButtonText"; //$NON-NLS-1$ - public final static String V_CAPITALIZE = "capitalize"; //$NON-NLS-1$ - public final static String V_CAPTION = "caption"; //$NON-NLS-1$ - public final static String V_CAPTIONTEXT = "CaptionText"; //$NON-NLS-1$ - public final static String V_CENTER = "center"; //$NON-NLS-1$ - public final static String V_CENTER_LEFT = "center-left"; //$NON-NLS-1$ - public final static String V_CENTER_RIGHT = "center-right"; //$NON-NLS-1$ - public final static String V_CHILD = "child"; //$NON-NLS-1$ - public final static String V_CIRCLE = "circle"; //$NON-NLS-1$ - public final static String V_CJK_IDEOGRAPHIC = "cjk-ideographic"; //$NON-NLS-1$ - public final static String V_CLOSE_QUOTE = "close-quote"; //$NON-NLS-1$ - public final static String V_CODE = "code"; //$NON-NLS-1$ - public final static String V_CONDENSED = "condensed"; //$NON-NLS-1$ - public final static String V_COLLAPSE = "collapse"; //$NON-NLS-1$ - public final static String V_COMPACT = "compact"; //$NON-NLS-1$ - public final static String V_CONTINUOUS = "continuous"; //$NON-NLS-1$ - public final static String V_CROP = "crop"; //$NON-NLS-1$ - public final static String V_CROSS = "cross"; //$NON-NLS-1$ - public final static String V_CROSSHAIR = "crosshair"; //$NON-NLS-1$ - public final static String V_CURSIVE = "cursive"; //$NON-NLS-1$ - public final static String V_DASHED = "dashed"; //$NON-NLS-1$ - public final static String V_DECIMAL = "decimal"; //$NON-NLS-1$ - public final static String V_DECIMAL_LEADING_ZERO = "decimal-leading-zero"; //$NON-NLS-1$ - public final static String V_DEFAULT = "default"; //$NON-NLS-1$ - public final static String V_DIGITS = "digits"; //$NON-NLS-1$ - public final static String V_DISC = "disc"; //$NON-NLS-1$ - public final static String V_DOTTED = "dotted"; //$NON-NLS-1$ - public final static String V_DOUBLE = "double"; //$NON-NLS-1$ - public final static String V_E_RESIZE = "e-resize"; //$NON-NLS-1$ - public final static String V_EMBED = "embed"; //$NON-NLS-1$ - public final static String V_EXPANDED = "expanded"; //$NON-NLS-1$ - public final static String V_EXTRA_CONDENSED = "extra-condensed"; //$NON-NLS-1$ - public final static String V_EXTRA_EXPANDED = "extra-expanded"; //$NON-NLS-1$ - public final static String V_FANTASY = "fantasy"; //$NON-NLS-1$ - public final static String V_FAR_LEFT = "far-left"; //$NON-NLS-1$ - public final static String V_FAR_RIGHT = "far-right"; //$NON-NLS-1$ - public final static String V_FAST = "fast"; //$NON-NLS-1$ - public final static String V_FASTER = "faster"; //$NON-NLS-1$ - public final static String V_FEMALE = "female"; //$NON-NLS-1$ - public final static String V_FIXED = "fixed"; //$NON-NLS-1$ - public final static String V_FUCHSIA = "fuchsia"; //$NON-NLS-1$ - public final static String V_GEORGIAN = "georgian"; //$NON-NLS-1$ - public final static String V_GRAY = "gray"; //$NON-NLS-1$ - public final static String V_GRAYTEXT = "GrayText"; //$NON-NLS-1$ - public final static String V_GREEN = "green"; //$NON-NLS-1$ - public final static String V_GROOVE = "groove"; //$NON-NLS-1$ - public final static String V_HEBREW = "hebrew"; //$NON-NLS-1$ - public final static String V_HELP = "help"; //$NON-NLS-1$ - public final static String V_HIDDEN = "hidden"; //$NON-NLS-1$ - public final static String V_HIDE = "hide"; //$NON-NLS-1$ - public final static String V_HIGH = "high"; //$NON-NLS-1$ - public final static String V_HIGHLIGHT = "Highlight"; //$NON-NLS-1$ - public final static String V_HIGHLIGHTTEXT = "HighlightText"; //$NON-NLS-1$ - public final static String V_HIGHER = "higher"; //$NON-NLS-1$ - public final static String V_HIRAGANA = "hiragana"; //$NON-NLS-1$ - public final static String V_HIRAGANA_IROHA = "hiragana-iroha"; //$NON-NLS-1$ - public final static String V_ICON = "icon"; //$NON-NLS-1$ - public final static String V_INACTIVEBORDER = "InactiveBorder"; //$NON-NLS-1$ - public final static String V_INACTIVECAPTION = "InactiveCaption"; //$NON-NLS-1$ - public final static String V_INACTIVECAPTIONTEXT = "InactiveCaptionText"; //$NON-NLS-1$ - public final static String V_INFOBACKGROUND = "InfoBackground"; //$NON-NLS-1$ - public final static String V_INFOTEXT = "InfoText"; //$NON-NLS-1$ - public final static String V_INLINE = "inline"; //$NON-NLS-1$ - public final static String V_INLINE_TABLE = "inline-table"; //$NON-NLS-1$ - public final static String V_INSET = "inset"; //$NON-NLS-1$ - public final static String V_INSIDE = "inside"; //$NON-NLS-1$ - public final static String V_INVERT = "invert"; //$NON-NLS-1$ - public final static String V_ITALIC = "italic"; //$NON-NLS-1$ - public final static String V_JUSTIFY = "justify"; //$NON-NLS-1$ - public final static String V_KATAKANA = "katakana"; //$NON-NLS-1$ - public final static String V_KATAKANA_IROHA = "katakana-iroha"; //$NON-NLS-1$ - public final static String V_LANDSCAPE = "landscape"; //$NON-NLS-1$ - public final static String V_LARGE = "large"; //$NON-NLS-1$ - public final static String V_LARGER = "larger"; //$NON-NLS-1$ - public final static String V_LEFT = "left"; //$NON-NLS-1$ - public final static String V_LEFT_SIDE = "left-side"; //$NON-NLS-1$ - public final static String V_LEFTWARDS = "leftwards"; //$NON-NLS-1$ - public final static String V_LEVEL = "level"; //$NON-NLS-1$ - public final static String V_LIGHTER = "lighter"; //$NON-NLS-1$ - public final static String V_LIME = "lime"; //$NON-NLS-1$ - public final static String V_LINE_THROUGH = "line-through"; //$NON-NLS-1$ - public final static String V_LIST_ITEM = "list-item"; //$NON-NLS-1$ - public final static String V_LOUD = "loud"; //$NON-NLS-1$ - public final static String V_LOW = "low"; //$NON-NLS-1$ - public final static String V_LOWER = "lower"; //$NON-NLS-1$ - public final static String V_LOWER_ALPHA = "lower-alpha"; //$NON-NLS-1$ - public final static String V_LOWER_GREEK = "lower-greek"; //$NON-NLS-1$ - public final static String V_LOWER_LATIN = "lower-latin"; //$NON-NLS-1$ - public final static String V_LOWER_ROMAN = "lower-roman"; //$NON-NLS-1$ - public final static String V_LOWERCASE = "lowercase"; //$NON-NLS-1$ - public final static String V_LTR = "ltr"; //$NON-NLS-1$ - public final static String V_MALE = "male"; //$NON-NLS-1$ - public final static String V_MARKER = "marker"; //$NON-NLS-1$ - public final static String V_MAROON = "maroon"; //$NON-NLS-1$ - public final static String V_MEDIUM = "medium"; //$NON-NLS-1$ - public final static String V_MENU = "menu"; //$NON-NLS-1$ - public final static String V_MENUTEXT = "MenuText"; //$NON-NLS-1$ - public final static String V_MESSAGE_BOX = "message-box"; //$NON-NLS-1$ - public final static String V_MIDDLE = "middle"; //$NON-NLS-1$ - public final static String V_MIX = "mix"; //$NON-NLS-1$ - public final static String V_MONOSPACE = "monospace"; //$NON-NLS-1$ - public final static String V_MOVE = "move"; //$NON-NLS-1$ - public final static String V_N_RESIZE = "n-resize"; //$NON-NLS-1$ - public final static String V_NARROWER = "narrower"; //$NON-NLS-1$ - public final static String V_NAVY = "navy"; //$NON-NLS-1$ - public final static String V_NE_RESIZE = "ne-resize"; //$NON-NLS-1$ - public final static String V_NO_CLOSE_QUOTE = "no-close-quote"; //$NON-NLS-1$ - public final static String V_NO_OPEN_QUOTE = "no-open-quote"; //$NON-NLS-1$ - public final static String V_NO_REPEAT = "no-repeat"; //$NON-NLS-1$ - public final static String V_NONE = "none"; //$NON-NLS-1$ - public final static String V_NORMAL = "normal"; //$NON-NLS-1$ - public final static String V_NOWRAP = "nowrap"; //$NON-NLS-1$ - public final static String V_NW_RESIZE = "nw-resize"; //$NON-NLS-1$ - public final static String V_OBLIQUE = "oblique"; //$NON-NLS-1$ - public final static String V_OLIVE = "olive"; //$NON-NLS-1$ - public final static String V_ONCE = "once"; //$NON-NLS-1$ - public final static String V_OPEN_QUOTE = "open-quote"; //$NON-NLS-1$ - public final static String V_OUTSET = "outset"; //$NON-NLS-1$ - public final static String V_OUTSIDE = "outside"; //$NON-NLS-1$ - public final static String V_OVERLINE = "overline"; //$NON-NLS-1$ - public final static String V_POINTER = "pointer"; //$NON-NLS-1$ - public final static String V_PORTRAIT = "portrait"; //$NON-NLS-1$ - public final static String V_PRE = "pre"; //$NON-NLS-1$ - public final static String V_PURPLE = "purple"; //$NON-NLS-1$ - public final static String V_RED = "red"; //$NON-NLS-1$ - public final static String V_RELATIVE = "relative"; //$NON-NLS-1$ - public final static String V_REPEAT = "repeat"; //$NON-NLS-1$ - public final static String V_REPEAT_X = "repeat-x"; //$NON-NLS-1$ - public final static String V_REPEAT_Y = "repeat-y"; //$NON-NLS-1$ - public final static String V_RIDGE = "ridge"; //$NON-NLS-1$ - public final static String V_RIGHT = "right"; //$NON-NLS-1$ - public final static String V_RIGHT_SIDE = "right-side"; //$NON-NLS-1$ - public final static String V_RIGHTWARDS = "rightwards"; //$NON-NLS-1$ - public final static String V_RTL = "rtl"; //$NON-NLS-1$ - public final static String V_RUN_IN = "run-in"; //$NON-NLS-1$ - public final static String V_S_RESIZE = "s-resize"; //$NON-NLS-1$ - public final static String V_SANS_SERIF = "sans-serif"; //$NON-NLS-1$ - public final static String V_SCROLL = "scroll"; //$NON-NLS-1$ - public final static String V_SCROLLBAR = "Scrollbar"; //$NON-NLS-1$ - public final static String V_SE_RESIZE = "se-resize"; //$NON-NLS-1$ - public final static String V_SEMI_CONDENSED = "semi-condensed"; //$NON-NLS-1$ - public final static String V_SEMI_EXPANDED = "semi-expanded"; //$NON-NLS-1$ - public final static String V_SEPARATE = "separate"; //$NON-NLS-1$ - public final static String V_SERIF = "serif"; //$NON-NLS-1$ - public final static String V_SHOW = "show"; //$NON-NLS-1$ - public final static String V_SILENT = "silent"; //$NON-NLS-1$ - public final static String V_SILVER = "silver"; //$NON-NLS-1$ - public final static String V_SLOW = "slow"; //$NON-NLS-1$ - public final static String V_SLOWER = "slower"; //$NON-NLS-1$ - public final static String V_SMALL = "small"; //$NON-NLS-1$ - public final static String V_SMALL_CAPS = "small-caps"; //$NON-NLS-1$ - public final static String V_SMALL_CAPTION = "small-caption"; //$NON-NLS-1$ - public final static String V_SMALLER = "smaller"; //$NON-NLS-1$ - public final static String V_SOFT = "soft"; //$NON-NLS-1$ - public final static String V_SOLID = "solid"; //$NON-NLS-1$ - public final static String V_SPELL_OUT = "spell-out"; //$NON-NLS-1$ - public final static String V_SQUARE = "square"; //$NON-NLS-1$ - public final static String V_STATIC = "static"; //$NON-NLS-1$ - public final static String V_STATUS_BAR = "status-bar"; //$NON-NLS-1$ - public final static String V_SUB = "sub"; //$NON-NLS-1$ - public final static String V_SUPER = "super"; //$NON-NLS-1$ - public final static String V_SW_RESIZE = "sw-resize"; //$NON-NLS-1$ - public final static String V_TABLE = "table"; //$NON-NLS-1$ - public final static String V_TABLE_CAPTION = "table-caption"; //$NON-NLS-1$ - public final static String V_TABLE_CELL = "table-cell"; //$NON-NLS-1$ - public final static String V_TABLE_COLUMN = "table-column"; //$NON-NLS-1$ - public final static String V_TABLE_COLUMN_GROUP = "table-column-group"; //$NON-NLS-1$ - public final static String V_TABLE_FOOTER_GROUP = "table-footer-group"; //$NON-NLS-1$ - public final static String V_TABLE_HEADER_GROUP = "table-header-group"; //$NON-NLS-1$ - public final static String V_TABLE_ROW = "table-row"; //$NON-NLS-1$ - public final static String V_TABLE_ROW_GROUP = "table-row-group"; //$NON-NLS-1$ - public final static String V_TEAL = "teal"; //$NON-NLS-1$ - public final static String V_TEXT = "text"; //$NON-NLS-1$ - public final static String V_TEXT_TOP = "text-top"; //$NON-NLS-1$ - public final static String V_TEXT_BOTTOM = "text-bottom"; //$NON-NLS-1$ - public final static String V_THICK = "thick"; //$NON-NLS-1$ - public final static String V_THIN = "thin"; //$NON-NLS-1$ - public final static String V_THREEDDARKSHADOW = "ThreeDDarkShadow"; //$NON-NLS-1$ - public final static String V_THREEDFACE = "ThreeDFace"; //$NON-NLS-1$ - public final static String V_THREEDHIGHLIGHT = "ThreeDHighlight"; //$NON-NLS-1$ - public final static String V_THREEDLIGHTSHADOW = "ThreeDLightShadow"; //$NON-NLS-1$ - public final static String V_THREEDSHADOW = "ThreeDShadow"; //$NON-NLS-1$ - public final static String V_TOP = "top"; //$NON-NLS-1$ - public final static String V_TRANSPARENT = "transparent"; //$NON-NLS-1$ - public final static String V_ULTRA_CONDENSED = "ultra-condensed"; //$NON-NLS-1$ - public final static String V_ULTRA_EXPANDED = "ultra-expanded"; //$NON-NLS-1$ - public final static String V_UNDERLINE = "underline"; //$NON-NLS-1$ - public final static String V_UPPER_ALPHA = "upper-alpha"; //$NON-NLS-1$ - public final static String V_UPPER_LATIN = "upper-latin"; //$NON-NLS-1$ - public final static String V_UPPER_ROMAN = "upper-roman"; //$NON-NLS-1$ - public final static String V_UPPERCASE = "uppercase"; //$NON-NLS-1$ - public final static String V_VISIBLE = "visible"; //$NON-NLS-1$ - public final static String V_W_RESIZE = "w-resize"; //$NON-NLS-1$ - public final static String V_WAIT = "wait"; //$NON-NLS-1$ - public final static String V_WHITE = "white"; //$NON-NLS-1$ - public final static String V_WIDER = "wider"; //$NON-NLS-1$ - public final static String V_WINDOW = "Window"; //$NON-NLS-1$ - public final static String V_WINDOWFRAME = "WindowFrame"; //$NON-NLS-1$ - public final static String V_WINDOWTEXT = "WindowText"; //$NON-NLS-1$ - public final static String V_X_FAST = "x-fast"; //$NON-NLS-1$ - public final static String V_X_HIGH = "x-high"; //$NON-NLS-1$ - public final static String V_X_LARGE = "x-large"; //$NON-NLS-1$ - public final static String V_X_LOUD = "x-loud"; //$NON-NLS-1$ - public final static String V_X_LOW = "x-low"; //$NON-NLS-1$ - public final static String V_X_SLOW = "x-slow"; //$NON-NLS-1$ - public final static String V_X_SMALL = "x-small"; //$NON-NLS-1$ - public final static String V_X_SOFT = "x-soft"; //$NON-NLS-1$ - public final static String V_XX_SMALL = "xx-small"; //$NON-NLS-1$ - public final static String V_XX_LARGE = "xx-large"; //$NON-NLS-1$ - public final static String V_YELLOW = "yellow"; //$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/contentmodel/PropCMContainer.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contentmodel/PropCMContainer.java deleted file mode 100644 index d013f7ca6e..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contentmodel/PropCMContainer.java +++ /dev/null @@ -1,164 +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.contentmodel; - - - -import java.util.Collection; -import java.util.Hashtable; -import java.util.Set; -import java.util.Vector; - -/** - * - */ -public class PropCMContainer extends PropCMNode { - - private java.util.Vector nodes = new Vector(); - private static java.util.Hashtable instances = null; - public final static String VAL_ABSOLUTE_SIZE = "absolute-size";//$NON-NLS-1$ - public final static String VAL_BORDER_STYLE = "border-style";//$NON-NLS-1$ - public final static String VAL_BORDER_WIDTH = "border-width";//$NON-NLS-1$ - public final static String VAL_COLOR = "color";//$NON-NLS-1$ - public final static String VAL_SYSTEM_COLOR = "system-color";//$NON-NLS-1$ - public final static String VAL_GENERIC_FAMILY = "generic-family";//$NON-NLS-1$ - public final static String VAL_GENERIC_VOICE = "generic-voice";//$NON-NLS-1$ - public final static String VAL_MARGIN_WIDTH = "margin-width";//$NON-NLS-1$ - public final static String VAL_PADDING_WIDTH = "padding-width";//$NON-NLS-1$ - public final static String VAL_RELATIVE_SIZE = "relative-size";//$NON-NLS-1$ - - /** - * - */ - protected PropCMContainer(String name) { - super(name); - } - - /** - * - */ - Object appendChild(Object node) { - if (!nodes.contains(node)) - nodes.add(node); - return node; - } - - /** - * - */ - public boolean canHave(String identifier) { - int nChild = getNumChild(); - for (int i = 0; i < nChild; i++) { - Object child = getChildAt(i); - if (child instanceof String && identifier.equalsIgnoreCase((String) child)) - return true; - if (child instanceof PropCMContainer && ((PropCMContainer) child).canHave(identifier)) - return true; - } - return false; - } - - /** - * - */ - public Object getChildAt(int index) { - if (nodes == null || index < 0 || nodes.size() <= index) - return null; - return nodes.elementAt(index); - } - - /** - * - */ - static PropCMContainer getContInstanceOf(String name) { - if (name == null) - return null; - - // initialize - if (instances == null) - instances = new Hashtable(20); - - // Initialize of DB - if (isNeedInitialize()) - PropCMNode.initPropertyCM(); - - // query - Object node = instances.get(name); - if (node != null) - return (PropCMContainer) node; - - if (PropCMNode.isLoading()) { - // register - node = new PropCMContainer(name); - instances.put(name, node); - } - - return (PropCMContainer) node; - } - - /** - * - */ - void getIdentifiers(Set idents) { - if (idents == null) - return; - int nChildren = nodes.size(); - for (int i = 0; i < nChildren; i++) { - Object node = nodes.elementAt(i); - if (node instanceof PropCMNode) - ((PropCMNode) node).getIdentifiers(idents); - else if (node instanceof String) - idents.add(node); - } - } - - /** - * - */ - public int getNumChild() { - if (nodes == null) - return 0; - return nodes.size(); - } - - /** - * - */ - public short getType() { - return VAL_CONTAINER; - } - - /** - * - */ - void getValues(Collection values) { - if (values == null) - return; - int nChildren = nodes.size(); - for (int i = 0; i < nChildren; i++) { - Object node = nodes.elementAt(i); - if (node instanceof PropCMNode) - ((PropCMNode) node).getValues(values); - else if (node instanceof String) { - if (!values.contains(node)) - values.add(node); - } - } - } - - /** - * - */ - Object removeChild(Object node) { - nodes.remove(node); - return node; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contentmodel/PropCMFontProperty.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contentmodel/PropCMFontProperty.java deleted file mode 100644 index a28e21da9f..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contentmodel/PropCMFontProperty.java +++ /dev/null @@ -1,198 +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.contentmodel; - - - -import java.util.Collection; -import java.util.Enumeration; -import java.util.HashSet; -import java.util.Hashtable; -import java.util.Iterator; -import java.util.List; -import java.util.Vector; - -/** - * - */ -public class PropCMFontProperty extends PropCMProperty { - - // static fields - private static java.util.Hashtable instances = null; - private static java.util.Hashtable cachedIdMap = null; - // selecting properties - public final static String PF_FONT_FAMILY = "font-family";//$NON-NLS-1$ - public final static String PF_FONT_STYLE = "font-style";//$NON-NLS-1$ - public final static String PF_FONT_VARIANT = "font-variant";//$NON-NLS-1$ - public final static String PF_FONT_WEIGHT = "font-weight";//$NON-NLS-1$ - public final static String PF_FONT_STRETCH = "font-stretch";//$NON-NLS-1$ - public final static String PF_FONT_SIZE = "font-size";//$NON-NLS-1$ - // qualification properties - public final static String PF_UNICODE_RANGE = "unicode-range";//$NON-NLS-1$ - // numeric properties - public final static String PF_UNITS_PER_EM = "units-per-em";//$NON-NLS-1$ - // referencing properties - public final static String PF_SRC = "src";//$NON-NLS-1$ - // matching properties - public final static String PF_PANOSE_1 = "panose-1";//$NON-NLS-1$ - public final static String PF_STEMV = "stemv";//$NON-NLS-1$ - public final static String PF_STEMH = "stemh";//$NON-NLS-1$ - public final static String PF_SLOPE = "slope";//$NON-NLS-1$ - public final static String PF_CAP_HEIGHT = "cap-height";//$NON-NLS-1$ - public final static String PF_X_HEIGHT = "x-height";//$NON-NLS-1$ - public final static String PF_ASCENT = "ascent";//$NON-NLS-1$ - public final static String PF_DESCENT = "descent";//$NON-NLS-1$ - // synthesis properties - public final static String PF_WIDTHS = "widths";//$NON-NLS-1$ - public final static String PF_BBOX = "bbox";//$NON-NLS-1$ - public final static String PF_DEFINITION_SRC = "definition-src";//$NON-NLS-1$ - // alignment properties - public final static String PF_BASELINE = "baseline";//$NON-NLS-1$ - public final static String PF_CENTERLINE = "centerline";//$NON-NLS-1$ - public final static String PF_MATHLINE = "mathline";//$NON-NLS-1$ - public final static String PF_TOPLINE = "topline";//$NON-NLS-1$ - - /** - * - */ - protected PropCMFontProperty(String name) { - super(name); - } - - /** - * - */ - public static PropCMProperty getInstanceOf(String name) { - // initialize - if (instances == null) - instances = new Hashtable(10); - - // Initialize of DB - if (isNeedInitialize()) - PropCMNode.initPropertyCM(); - - // query - Object node = instances.get(name); - if (node != null) - return (PropCMProperty) node; - - // register - if (PropCMNode.isLoading()) { - node = new PropCMFontProperty(name); - instances.put(name, node); - } - - return (PropCMProperty) node; - } - - /** - * - */ - public static Enumeration getNameEnum() { - // Initialize of DB - if (isNeedInitialize()) - PropCMNode.initPropertyCM(); - - return instances.keys(); - } - - /** - * - */ - public static Enumeration getPropertyEnum() { - // Initialize of DB - if (isNeedInitialize()) - PropCMNode.initPropertyCM(); - - return instances.elements(); - } - - /** - * - */ - public short getType() { - return VAL_FONTPROPERTY; - } - - /** - * - */ - public static Vector names() { - // Initialize of DB - if (isNeedInitialize()) - PropCMNode.initPropertyCM(); - - return new Vector(instances.keySet()); - } - - /** - * - */ - public static List names(Object mediaGroup) { - if (mediaGroup == null) - return names(); - - // Initialize of DB - if (isNeedInitialize()) - PropCMNode.initPropertyCM(); - - Vector properties = new Vector(); - - Iterator it = instances.values().iterator(); - while (it.hasNext()) { - PropCMProperty prop = (PropCMProperty) it.next(); - if (prop.getMediaGroups().contains(mediaGroup)) - properties.add(prop.getName()); - } - - return properties; - } - - /** - * If itentifier is null, get all properties - */ - public static Vector propertiesFor(String identifier, boolean shorthands) { - // Initialize of DB - if (isNeedInitialize()) - PropCMNode.initPropertyCM(); - - // if identifier is null, get all properties - if (identifier == null) - return new Vector(instances.values()); - - if (cachedIdMap == null) { - // start cacheing - cachedIdMap = new Hashtable(); - } - else { - // search cached - Object ret = cachedIdMap.get(identifier + String.valueOf(shorthands)); - if (ret != null) - return new Vector((Collection) ret); - } - - // create - Enumeration properties = getPropertyEnum(); - HashSet set = new HashSet(); - while (properties.hasMoreElements()) { - PropCMProperty prop = (PropCMProperty) properties.nextElement(); - if (!shorthands && prop.isShorthand()) - continue; - if (prop.canHave(identifier)) - set.add(prop); - } - - // cache - cachedIdMap.put(identifier + String.valueOf(shorthands), set); - - return new Vector(set); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contentmodel/PropCMFunction.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contentmodel/PropCMFunction.java deleted file mode 100644 index 03efc91c06..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contentmodel/PropCMFunction.java +++ /dev/null @@ -1,89 +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.contentmodel; - - - -import java.util.Collection; -import java.util.Hashtable; -import java.util.Set; - -/** - * - */ -public class PropCMFunction extends PropCMNode { - - private static java.util.Hashtable instances = null; - public final static String VAL_ATTR = "attr";//$NON-NLS-1$ - public final static String VAL_COUNTER = "counter";//$NON-NLS-1$ - public final static String VAL_RGB = "rgb";//$NON-NLS-1$ - public final static String VAL_SHAPE = "rect";//$NON-NLS-1$ - public final static String VAL_URI = "url";//$NON-NLS-1$ - public final static String VAL_FORMAT = "format";//$NON-NLS-1$ - public final static String VAL_LOCAL = "local";//$NON-NLS-1$ - - /** - * - */ - protected PropCMFunction(String name) { - super(name); - } - - /** - * - */ - void getIdentifiers(Set indents) { - } - - /** - * - */ - static public PropCMFunction getInstanceOf(String name) { - if (name == null) - return null; - - // initialize - if (instances == null) - instances = new Hashtable(10); - - // Initialize of DB - if (isNeedInitialize()) - PropCMNode.initPropertyCM(); - - // query - Object node = instances.get(name); - if (node != null) - return (PropCMFunction) node; - - // register - if (PropCMNode.isLoading()) { - node = new PropCMFunction(name); - instances.put(name, node); - } - - return (PropCMFunction) node; - } - - /** - * - */ - public short getType() { - return VAL_FUNC; - } - - /** - * - */ - void getValues(Collection values) { - if (values != null && !values.contains(this)) - values.add(this); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contentmodel/PropCMNode.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contentmodel/PropCMNode.java deleted file mode 100644 index 52a84df134..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contentmodel/PropCMNode.java +++ /dev/null @@ -1,1369 +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.contentmodel; - - - -import java.util.Collection; -import java.util.HashSet; -import java.util.Set; -import java.util.Vector; - -/** - * - */ -public abstract class PropCMNode { - - public final static short VAL_IDENTIFIER = 0; - public final static short VAL_PROPERTY = 1; - public final static short VAL_NUMBER = 2; - public final static short VAL_STRING = 3; - public final static short VAL_FUNC = 4; - public final static short VAL_CONTAINER = 5; - public final static short VAL_SUBPROPERTY = 6; - public final static short VAL_FONTPROPERTY = 7; - public final static short VAL_UNICODE_RANGE = 8; - protected java.lang.String name = null; - private static short LOADING = 0; // 0 : not initialized, 1 : under - // initializing, 2 : initialize-done - // and fix DB - - /** - * - */ - public PropCMNode(String name) { - super(); - this.name = name; - } - - /** - * - */ - public Set getIdentifiers() { - HashSet ids = new HashSet(); - getIdentifiers(ids); - return ids; - } - - /** - * - */ - abstract void getIdentifiers(Set indents); - - /** - * - */ - public String getName() { - return name; - } - - /** - * - */ - public abstract short getType(); - - /** - * - */ - public Collection getValues() { - Vector vals = new Vector(); - getValues(vals); - return vals; - } - - /** - * - */ - abstract void getValues(Collection values); - - /** - * - */ - protected static void initPropertyCM() { - if (!isNeedInitialize()) - return; - LOADING = 1; - - PropCMNumber.initNumberCMDim(); - - // azimuth - PropCMProperty prop = PropCMProperty.getInstanceOf(PropCMProperty.P_AZIMUTH); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_ANGLE)); - prop.appendChild(IValID.V_LEFT_SIDE); - prop.appendChild(IValID.V_FAR_LEFT); - prop.appendChild(IValID.V_LEFT); - prop.appendChild(IValID.V_CENTER_LEFT); - prop.appendChild(IValID.V_CENTER); - prop.appendChild(IValID.V_CENTER_RIGHT); - prop.appendChild(IValID.V_RIGHT); - prop.appendChild(IValID.V_FAR_RIGHT); - prop.appendChild(IValID.V_RIGHT_SIDE); - prop.appendChild(IValID.V_BEHIND); - prop.appendChild(IValID.V_LEFTWARDS); - prop.appendChild(IValID.V_RIGHTWARDS); - prop.appendMediaGroup(IMediaGroupID.M_AURAL); - prop.setMaxValueCount(2); - - // background - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_BG); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_BG_COLOR)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_BG_IMAGE)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_BG_REPEAT)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_BG_ATTACHMENT)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_BG_POSITION)); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - prop.setMaxValueCount(6); - - // background-attachment - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_BG_ATTACHMENT); - prop.appendChild(IValID.V_SCROLL); - prop.appendChild(IValID.V_FIXED); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // background-color - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_BG_COLOR); - prop.appendChild(PropCMContainer.getContInstanceOf(PropCMContainer.VAL_COLOR)); - prop.appendChild(IValID.V_TRANSPARENT); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // background-image - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_BG_IMAGE); - prop.appendChild(PropCMFunction.getInstanceOf(PropCMFunction.VAL_URI)); - prop.appendChild(IValID.V_NONE); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // background-position ---- sub-properties horizontal - prop = PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_BG_POSITION_X); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_LENGTH)); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_PERCENTAGE)); - prop.appendChild(IValID.V_LEFT); - prop.appendChild(IValID.V_CENTER); - prop.appendChild(IValID.V_RIGHT); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // background-position ---- sub-properties vertical - prop = PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_BG_POSITION_Y); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_LENGTH)); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_PERCENTAGE)); - prop.appendChild(IValID.V_TOP); - prop.appendChild(IValID.V_CENTER); - prop.appendChild(IValID.V_BOTTOM); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // background-position - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_BG_POSITION); - prop.appendChild(PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_BG_POSITION_X)); - prop.appendChild(PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_BG_POSITION_Y)); - prop.setMaxValueCount(2); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // background-repeat - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_BG_REPEAT); - prop.appendChild(IValID.V_REPEAT); - prop.appendChild(IValID.V_REPEAT_X); - prop.appendChild(IValID.V_REPEAT_Y); - prop.appendChild(IValID.V_NO_REPEAT); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // border - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_WIDTH)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_STYLE)); - // prop.appendChild(PropCMContainer.getContInstanceOf(PropCMContainer.VAL_COLOR)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_COLOR)); - prop.setMaxValueCount(9); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // border-collapse - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_COLLAPSE); - prop.appendChild(IValID.V_COLLAPSE); - prop.appendChild(IValID.V_SEPARATE); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // border-color - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_COLOR); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_TOP_COLOR)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_RIGHT_COLOR)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_BOTTOM_COLOR)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_LEFT_COLOR)); - // prop.appendChild(PropCMContainer.getContInstanceOf(PropCMContainer.VAL_COLOR)); - prop.appendChild(IValID.V_TRANSPARENT); - prop.setMaxValueCount(4); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // border-spacing - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_SPACING); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_LENGTH)); - prop.setMaxValueCount(2); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // border-style - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_STYLE); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_TOP_STYLE)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_RIGHT_STYLE)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_BOTTOM_STYLE)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_LEFT_STYLE)); - // prop.appendChild(PropCMContainer.getContInstanceOf(PropCMContainer.VAL_BORDER_STYLE)); - prop.setMaxValueCount(4); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // border-top - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_TOP); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_TOP_WIDTH)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_TOP_STYLE)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_TOP_COLOR)); - prop.setMaxValueCount(3); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // border-right - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_RIGHT); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_RIGHT_WIDTH)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_RIGHT_STYLE)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_RIGHT_COLOR)); - prop.setMaxValueCount(3); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // border-bottom - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_BOTTOM); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_BOTTOM_WIDTH)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_BOTTOM_STYLE)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_BOTTOM_COLOR)); - prop.setMaxValueCount(3); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // border-left - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_LEFT); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_LEFT_WIDTH)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_LEFT_STYLE)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_LEFT_COLOR)); - prop.setMaxValueCount(3); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // border-top-color - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_TOP_COLOR); - prop.appendChild(PropCMContainer.getContInstanceOf(PropCMContainer.VAL_COLOR)); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // border-top-style - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_TOP_STYLE); - prop.appendChild(PropCMContainer.getContInstanceOf(PropCMContainer.VAL_BORDER_STYLE)); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // border-top-width - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_TOP_WIDTH); - prop.appendChild(PropCMContainer.getContInstanceOf(PropCMContainer.VAL_BORDER_WIDTH)); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // border-right-color - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_RIGHT_COLOR); - prop.appendChild(PropCMContainer.getContInstanceOf(PropCMContainer.VAL_COLOR)); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // border-right-style - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_RIGHT_STYLE); - prop.appendChild(PropCMContainer.getContInstanceOf(PropCMContainer.VAL_BORDER_STYLE)); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // border-right-width - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_RIGHT_WIDTH); - prop.appendChild(PropCMContainer.getContInstanceOf(PropCMContainer.VAL_BORDER_WIDTH)); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // border-bottom-color - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_BOTTOM_COLOR); - prop.appendChild(PropCMContainer.getContInstanceOf(PropCMContainer.VAL_COLOR)); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // border-bottom-style - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_BOTTOM_STYLE); - prop.appendChild(PropCMContainer.getContInstanceOf(PropCMContainer.VAL_BORDER_STYLE)); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // border-bottom-width - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_BOTTOM_WIDTH); - prop.appendChild(PropCMContainer.getContInstanceOf(PropCMContainer.VAL_BORDER_WIDTH)); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // border-left-color - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_LEFT_COLOR); - prop.appendChild(PropCMContainer.getContInstanceOf(PropCMContainer.VAL_COLOR)); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // border-left-style - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_LEFT_STYLE); - prop.appendChild(PropCMContainer.getContInstanceOf(PropCMContainer.VAL_BORDER_STYLE)); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // border-left-width - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_LEFT_WIDTH); - prop.appendChild(PropCMContainer.getContInstanceOf(PropCMContainer.VAL_BORDER_WIDTH)); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // border-width - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_WIDTH); - // prop.appendChild(PropCMContainer.getContInstanceOf(PropCMContainer.VAL_BORDER_WIDTH)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_TOP_WIDTH)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_RIGHT_WIDTH)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_BOTTOM_WIDTH)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_LEFT_WIDTH)); - prop.setMaxValueCount(4); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // bottom - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_BOTTOM); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_LENGTH)); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_PERCENTAGE)); - prop.appendChild(IValID.V_AUTO); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // caption-side - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_CAPTION_SIDE); - prop.appendChild(IValID.V_TOP); - prop.appendChild(IValID.V_BOTTOM); - prop.appendChild(IValID.V_LEFT); - prop.appendChild(IValID.V_RIGHT); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // clear - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_CLEAR); - prop.appendChild(IValID.V_LEFT); - prop.appendChild(IValID.V_RIGHT); - prop.appendChild(IValID.V_BOTH); - prop.appendChild(IValID.V_STATIC); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // clip ---- sub-properties top - prop = PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_CLIP_TOP); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_LENGTH)); - prop.appendChild(IValID.V_AUTO); - ((PropCMSubProperty) prop).setContainer(PropCMProperty.getInstanceOf(PropCMProperty.P_CLIP)); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // clip ---- sub-properties right - prop = PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_CLIP_RIGHT); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_LENGTH)); - prop.appendChild(IValID.V_AUTO); - ((PropCMSubProperty) prop).setContainer(PropCMProperty.getInstanceOf(PropCMProperty.P_CLIP)); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // clip ---- sub-properties bottom - prop = PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_CLIP_BOTTOM); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_LENGTH)); - prop.appendChild(IValID.V_AUTO); - ((PropCMSubProperty) prop).setContainer(PropCMProperty.getInstanceOf(PropCMProperty.P_CLIP)); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // clip ---- sub-properties left - prop = PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_CLIP_LEFT); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_LENGTH)); - prop.appendChild(IValID.V_AUTO); - ((PropCMSubProperty) prop).setContainer(PropCMProperty.getInstanceOf(PropCMProperty.P_CLIP)); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // clip - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_CLIP); - prop.appendChild(PropCMFunction.getInstanceOf(PropCMFunction.VAL_SHAPE)); - prop.appendChild(IValID.V_AUTO); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // color - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_COLOR); - prop.appendChild(PropCMContainer.getContInstanceOf(PropCMContainer.VAL_COLOR)); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // content - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_CONTENT); - prop.appendChild(PropCMString.getInstanceOf(PropCMString.VAL_ANY)); - prop.appendChild(PropCMFunction.getInstanceOf(PropCMFunction.VAL_URI)); - prop.appendChild(PropCMFunction.getInstanceOf(PropCMFunction.VAL_COUNTER)); - prop.appendChild(PropCMFunction.getInstanceOf(PropCMFunction.VAL_ATTR)); - prop.appendChild(IValID.V_OPEN_QUOTE); - prop.appendChild(IValID.V_CLOSE_QUOTE); - prop.appendChild(IValID.V_NO_OPEN_QUOTE); - prop.appendChild(IValID.V_NO_CLOSE_QUOTE); - prop.setMaxValueCount(-1); // infinite - prop.appendMediaGroup(IMediaGroupID.M_ALL); - - // counter-increment - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_COUNTER_INCREMENT); - prop.appendChild(PropCMString.getInstanceOf(PropCMString.VAL_COUNTER_ID)); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_INTEGER)); - prop.appendChild(IValID.V_NONE); - prop.setMaxValueCount(-1); - prop.appendMediaGroup(IMediaGroupID.M_ALL); - - // counter-reset - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_COUNTER_RESET); - prop.appendChild(PropCMString.getInstanceOf(PropCMString.VAL_COUNTER_ID)); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_INTEGER)); - prop.appendChild(IValID.V_NONE); - prop.setMaxValueCount(-1); - prop.appendMediaGroup(IMediaGroupID.M_ALL); - - // cue - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_CUE); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_CUE_BEFORE)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_CUE_AFTER)); - prop.setMaxValueCount(2); - prop.appendMediaGroup(IMediaGroupID.M_AURAL); - - // cue-after - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_CUE_AFTER); - prop.appendChild(PropCMFunction.getInstanceOf(PropCMFunction.VAL_URI)); - prop.appendChild(IValID.V_NONE); - prop.appendMediaGroup(IMediaGroupID.M_AURAL); - - // cue-before - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_CUE_BEFORE); - prop.appendChild(PropCMFunction.getInstanceOf(PropCMFunction.VAL_URI)); - prop.appendChild(IValID.V_NONE); - prop.appendMediaGroup(IMediaGroupID.M_AURAL); - - // cursor - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_CURSOR); - prop.appendChild(PropCMFunction.getInstanceOf(PropCMFunction.VAL_URI)); - prop.appendChild(IValID.V_AUTO); - prop.appendChild(IValID.V_CROSSHAIR); - prop.appendChild(IValID.V_DEFAULT); - prop.appendChild(IValID.V_POINTER); - prop.appendChild(IValID.V_MOVE); - prop.appendChild(IValID.V_E_RESIZE); - prop.appendChild(IValID.V_NE_RESIZE); - prop.appendChild(IValID.V_NW_RESIZE); - prop.appendChild(IValID.V_N_RESIZE); - prop.appendChild(IValID.V_SE_RESIZE); - prop.appendChild(IValID.V_SW_RESIZE); - prop.appendChild(IValID.V_S_RESIZE); - prop.appendChild(IValID.V_W_RESIZE); - prop.appendChild(IValID.V_TEXT); - prop.appendChild(IValID.V_WAIT); - prop.appendChild(IValID.V_HELP); - prop.setMaxValueCount(-1); // infinite - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - prop.appendMediaGroup(IMediaGroupID.M_INTERACTIVE); - - // direction - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_DIRECTION); - prop.appendChild(IValID.V_LTR); - prop.appendChild(IValID.V_RTL); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // display - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_DISPLAY); - prop.appendChild(IValID.V_INLINE); - prop.appendChild(IValID.V_BLOCK); - prop.appendChild(IValID.V_LIST_ITEM); - prop.appendChild(IValID.V_RUN_IN); - prop.appendChild(IValID.V_COMPACT); - prop.appendChild(IValID.V_MARKER); - prop.appendChild(IValID.V_TABLE); - prop.appendChild(IValID.V_INLINE_TABLE); - prop.appendChild(IValID.V_TABLE_ROW_GROUP); - prop.appendChild(IValID.V_TABLE_HEADER_GROUP); - prop.appendChild(IValID.V_TABLE_FOOTER_GROUP); - prop.appendChild(IValID.V_TABLE_ROW); - prop.appendChild(IValID.V_TABLE_COLUMN_GROUP); - prop.appendChild(IValID.V_TABLE_COLUMN); - prop.appendChild(IValID.V_TABLE_CELL); - prop.appendChild(IValID.V_TABLE_CAPTION); - prop.appendChild(IValID.V_NONE); - prop.appendMediaGroup(IMediaGroupID.M_ALL); - - // elevation - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_ELEVATION); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_ANGLE)); - prop.appendChild(IValID.V_BELOW); - prop.appendChild(IValID.V_LEVEL); - prop.appendChild(IValID.V_ABOVE); - prop.appendChild(IValID.V_HIGHER); - prop.appendChild(IValID.V_LOWER); - prop.appendMediaGroup(IMediaGroupID.M_AURAL); - - // empty-cells - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_EMPTY_CELLS); - prop.appendChild(IValID.V_SHOW); - prop.appendChild(IValID.V_HIDE); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // float - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_FLOAT); - prop.appendChild(IValID.V_LEFT); - prop.appendChild(IValID.V_RIGHT); - prop.appendChild(IValID.V_NONE); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // font - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_FONT); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_FONT_STYLE)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_FONT_VARIANT)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_FONT_WEIGHT)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_FONT_SIZE)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_LINE_HEIGHT)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_FONT_FAMILY)); - prop.appendChild(IValID.V_CAPTION); - prop.appendChild(IValID.V_ICON); - prop.appendChild(IValID.V_MENU); - prop.appendChild(IValID.V_MESSAGE_BOX); - prop.appendChild(IValID.V_SMALL_CAPTION); - prop.appendChild(IValID.V_STATUS_BAR); - prop.setMaxValueCount(-1); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // font-family - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_FONT_FAMILY); - prop.appendChild(PropCMString.getInstanceOf(PropCMString.VAL_FONT)); - prop.appendChild(PropCMContainer.getContInstanceOf(PropCMContainer.VAL_GENERIC_FAMILY)); - prop.setMaxValueCount(-1); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // font-size - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_FONT_SIZE); - prop.appendChild(PropCMContainer.getContInstanceOf(PropCMContainer.VAL_ABSOLUTE_SIZE)); - prop.appendChild(PropCMContainer.getContInstanceOf(PropCMContainer.VAL_RELATIVE_SIZE)); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_LENGTH)); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_PERCENTAGE)); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // font-size-adjust - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_FONT_SIZE_ADJUST); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_NUM)); - prop.appendChild(IValID.V_NONE); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // font-stretch - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_FONT_STRETCH); - prop.appendChild(IValID.V_NORMAL); - prop.appendChild(IValID.V_WIDER); - prop.appendChild(IValID.V_NARROWER); - prop.appendChild(IValID.V_ULTRA_CONDENSED); - prop.appendChild(IValID.V_EXTRA_CONDENSED); - prop.appendChild(IValID.V_CONDENSED); - prop.appendChild(IValID.V_SEMI_CONDENSED); - prop.appendChild(IValID.V_SEMI_EXPANDED); - prop.appendChild(IValID.V_EXPANDED); - prop.appendChild(IValID.V_EXTRA_EXPANDED); - prop.appendChild(IValID.V_ULTRA_EXPANDED); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // font-style - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_FONT_STYLE); - prop.appendChild(IValID.V_ITALIC); - prop.appendChild(IValID.V_OBLIQUE); - prop.appendChild(IValID.V_NORMAL); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // font-variant - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_FONT_VARIANT); - prop.appendChild(IValID.V_SMALL_CAPS); - prop.appendChild(IValID.V_NORMAL); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // font-weight - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_FONT_WEIGHT); - prop.appendChild(IValID.V_BOLD); - prop.appendChild(IValID.V_100); - prop.appendChild(IValID.V_200); - prop.appendChild(IValID.V_300); - prop.appendChild(IValID.V_400); - prop.appendChild(IValID.V_500); - prop.appendChild(IValID.V_600); - prop.appendChild(IValID.V_700); - prop.appendChild(IValID.V_800); - prop.appendChild(IValID.V_900); - prop.appendChild(IValID.V_LIGHTER); - prop.appendChild(IValID.V_BOLDER); - prop.appendChild(IValID.V_NORMAL); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // height - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_HEIGHT); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_LENGTH)); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_PERCENTAGE)); - prop.appendChild(IValID.V_AUTO); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // leftt - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_LEFT); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_LENGTH)); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_PERCENTAGE)); - prop.appendChild(IValID.V_AUTO); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // letter-spacing - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_LETTER_SPACING); - prop.appendChild(IValID.V_NORMAL); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_LENGTH)); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // line-height - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_LINE_HEIGHT); - prop.appendChild(IValID.V_NORMAL); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_NUM)); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_LENGTH)); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_PERCENTAGE)); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // list-style - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_LIST_STYLE); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_LIST_STYLE_TYPE)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_LIST_STYLE_POSITION)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_LIST_STYLE_IMAGE)); - prop.setMaxValueCount(3); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // list-style-image - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_LIST_STYLE_IMAGE); - prop.appendChild(PropCMFunction.getInstanceOf(PropCMFunction.VAL_URI)); - prop.appendChild(IValID.V_NONE); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // list-style-position - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_LIST_STYLE_POSITION); - prop.appendChild(IValID.V_INSIDE); - prop.appendChild(IValID.V_OUTSIDE); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // list-style-type - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_LIST_STYLE_TYPE); - prop.appendChild(IValID.V_DISC); - prop.appendChild(IValID.V_CIRCLE); - prop.appendChild(IValID.V_SQUARE); - prop.appendChild(IValID.V_DECIMAL); - prop.appendChild(IValID.V_DECIMAL_LEADING_ZERO); - prop.appendChild(IValID.V_LOWER_ROMAN); - prop.appendChild(IValID.V_UPPER_ROMAN); - prop.appendChild(IValID.V_LOWER_GREEK); - prop.appendChild(IValID.V_LOWER_ALPHA); - prop.appendChild(IValID.V_LOWER_LATIN); - prop.appendChild(IValID.V_UPPER_ALPHA); - prop.appendChild(IValID.V_UPPER_LATIN); - prop.appendChild(IValID.V_HEBREW); - prop.appendChild(IValID.V_ARMENIAN); - prop.appendChild(IValID.V_GEORGIAN); - prop.appendChild(IValID.V_CJK_IDEOGRAPHIC); - prop.appendChild(IValID.V_HIRAGANA); - prop.appendChild(IValID.V_KATAKANA); - prop.appendChild(IValID.V_HIRAGANA_IROHA); - prop.appendChild(IValID.V_KATAKANA_IROHA); - prop.appendChild(IValID.V_NONE); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // margin - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_MARGIN); - // prop.appendChild(PropCMContainer.getContInstanceOf(PropCMContainer.VAL_MARGIN_WIDTH)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_MARGIN_TOP)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_MARGIN_RIGHT)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_MARGIN_BOTTOM)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_MARGIN_LEFT)); - prop.setMaxValueCount(4); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // margin-top - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_MARGIN_TOP); - prop.appendChild(PropCMContainer.getContInstanceOf(PropCMContainer.VAL_MARGIN_WIDTH)); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // margin-right - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_MARGIN_RIGHT); - prop.appendChild(PropCMContainer.getContInstanceOf(PropCMContainer.VAL_MARGIN_WIDTH)); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // margin-bottom - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_MARGIN_BOTTOM); - prop.appendChild(PropCMContainer.getContInstanceOf(PropCMContainer.VAL_MARGIN_WIDTH)); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // margin-left - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_MARGIN_LEFT); - prop.appendChild(PropCMContainer.getContInstanceOf(PropCMContainer.VAL_MARGIN_WIDTH)); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // marker-offset - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_MARKER_OFFSET); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_LENGTH)); - prop.appendChild(IValID.V_AUTO); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // marks - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_MARKS); - prop.appendChild(IValID.V_CROP); - prop.appendChild(IValID.V_CROSS); - prop.appendChild(IValID.V_NONE); - prop.setMaxValueCount(2); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - prop.appendMediaGroup(IMediaGroupID.M_PAGED); - - // max-height - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_MAX_HEIGHT); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_LENGTH)); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_PERCENTAGE)); - prop.appendChild(IValID.V_NONE); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // max-width - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_MAX_WIDTH); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_LENGTH)); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_PERCENTAGE)); - prop.appendChild(IValID.V_NONE); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // min-height - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_MIN_HEIGHT); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_LENGTH)); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_PERCENTAGE)); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // min-width - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_MIN_WIDTH); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_LENGTH)); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_PERCENTAGE)); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // orphans - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_ORPHANS); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_INTEGER)); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - prop.appendMediaGroup(IMediaGroupID.M_PAGED); - - // outline - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_OUTLINE); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_OUTLINE_COLOR)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_OUTLINE_STYLE)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_OUTLINE_WIDTH)); - prop.setMaxValueCount(3); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - prop.appendMediaGroup(IMediaGroupID.M_INTERACTIVE); - - // outline-color - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_OUTLINE_COLOR); - prop.appendChild(PropCMContainer.getContInstanceOf(PropCMContainer.VAL_COLOR)); - prop.appendChild(IValID.V_INVERT); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - prop.appendMediaGroup(IMediaGroupID.M_INTERACTIVE); - - // outline-style - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_OUTLINE_STYLE); - prop.appendChild(PropCMContainer.getContInstanceOf(PropCMContainer.VAL_BORDER_STYLE)); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - prop.appendMediaGroup(IMediaGroupID.M_INTERACTIVE); - - // outline-width - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_OUTLINE_WIDTH); - prop.appendChild(PropCMContainer.getContInstanceOf(PropCMContainer.VAL_BORDER_WIDTH)); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - prop.appendMediaGroup(IMediaGroupID.M_INTERACTIVE); - - // overflow - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_OVERFLOW); - prop.appendChild(IValID.V_VISIBLE); - prop.appendChild(IValID.V_HIDDEN); - prop.appendChild(IValID.V_SCROLL); - prop.appendChild(IValID.V_AUTO); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // padding - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_PADDING); - // prop.appendChild(PropCMContainer.getContInstanceOf(PropCMContainer.VAL_PADDING_WIDTH)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_PADDING_TOP)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_PADDING_RIGHT)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_PADDING_BOTTOM)); - prop.appendChild(PropCMProperty.getInstanceOf(PropCMProperty.P_PADDING_LEFT)); - prop.setMaxValueCount(4); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // padding-top - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_PADDING_TOP); - prop.appendChild(PropCMContainer.getContInstanceOf(PropCMContainer.VAL_PADDING_WIDTH)); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // padding-right - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_PADDING_RIGHT); - prop.appendChild(PropCMContainer.getContInstanceOf(PropCMContainer.VAL_PADDING_WIDTH)); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // padding-bottom - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_PADDING_BOTTOM); - prop.appendChild(PropCMContainer.getContInstanceOf(PropCMContainer.VAL_PADDING_WIDTH)); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // padding-left - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_PADDING_LEFT); - prop.appendChild(PropCMContainer.getContInstanceOf(PropCMContainer.VAL_PADDING_WIDTH)); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // page - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_PAGE); - prop.appendChild(PropCMString.getInstanceOf(PropCMString.VAL_PAGE_ID)); - prop.appendChild(IValID.V_AUTO); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - prop.appendMediaGroup(IMediaGroupID.M_PAGED); - - // page-break-after - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_PAGE_BREAK_AFTER); - prop.appendChild(IValID.V_AUTO); - prop.appendChild(IValID.V_ALWAYS); - prop.appendChild(IValID.V_AVOID); - prop.appendChild(IValID.V_LEFT); - prop.appendChild(IValID.V_RIGHT); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - prop.appendMediaGroup(IMediaGroupID.M_PAGED); - - // page-break-before - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_PAGE_BREAK_BEFORE); - prop.appendChild(IValID.V_AUTO); - prop.appendChild(IValID.V_ALWAYS); - prop.appendChild(IValID.V_AVOID); - prop.appendChild(IValID.V_LEFT); - prop.appendChild(IValID.V_RIGHT); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - prop.appendMediaGroup(IMediaGroupID.M_PAGED); - - // page-break-inside - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_PAGE_BREAK_INSIDE); - prop.appendChild(IValID.V_AVOID); - prop.appendChild(IValID.V_AUTO); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - prop.appendMediaGroup(IMediaGroupID.M_PAGED); - - // pause - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_PAUSE); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_TIME)); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_PERCENTAGE)); - prop.setMaxValueCount(2); - prop.appendMediaGroup(IMediaGroupID.M_AURAL); - - // pause-after - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_PAUSE_AFTER); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_TIME)); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_PERCENTAGE)); - prop.appendMediaGroup(IMediaGroupID.M_AURAL); - - // pause-before - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_PAUSE_BEFORE); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_TIME)); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_PERCENTAGE)); - prop.appendMediaGroup(IMediaGroupID.M_AURAL); - - // pitch - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_PITCH); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_FREQUENCY)); - prop.appendChild(IValID.V_X_LOW); - prop.appendChild(IValID.V_LOW); - prop.appendChild(IValID.V_MEDIUM); - prop.appendChild(IValID.V_HIGH); - prop.appendChild(IValID.V_X_HIGH); - prop.appendMediaGroup(IMediaGroupID.M_AURAL); - - // pitch-range - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_PITCH_RANGE); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_NUM)); - prop.appendMediaGroup(IMediaGroupID.M_AURAL); - - // play-during - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_PLAY_DURING); - prop.appendChild(PropCMFunction.getInstanceOf(PropCMFunction.VAL_URI)); - prop.appendChild(IValID.V_MIX); - prop.appendChild(IValID.V_REPEAT); - prop.appendChild(IValID.V_AUTO); - prop.appendChild(IValID.V_NONE); - prop.setMaxValueCount(3); - prop.appendMediaGroup(IMediaGroupID.M_AURAL); - - // position - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_POSITION); - prop.appendChild(IValID.V_ABSOLUTE); - prop.appendChild(IValID.V_RELATIVE); - prop.appendChild(IValID.V_FIXED); - prop.appendChild(IValID.V_STATIC); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // quotes - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_QUOTES); - prop.appendChild(PropCMString.getInstanceOf(PropCMString.VAL_ANY)); - prop.appendChild(IValID.V_NONE); - prop.setMaxValueCount(-1); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // richness - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_RICHNESS); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_NUM)); - prop.appendMediaGroup(IMediaGroupID.M_AURAL); - - // right - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_RIGHT); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_LENGTH)); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_PERCENTAGE)); - prop.appendChild(IValID.V_AUTO); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // size - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_SIZE); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_LENGTH)); - prop.appendChild(IValID.V_AUTO); - prop.appendChild(IValID.V_PORTRAIT); - prop.appendChild(IValID.V_LANDSCAPE); - prop.setMaxValueCount(2); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - prop.appendMediaGroup(IMediaGroupID.M_PAGED); - - // speak - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_SPEAK); - prop.appendChild(IValID.V_NORMAL); - prop.appendChild(IValID.V_NONE); - prop.appendChild(IValID.V_SPELL_OUT); - prop.appendMediaGroup(IMediaGroupID.M_AURAL); - - // speak-header - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_SPEAK_HEADER); - prop.appendChild(IValID.V_ONCE); - prop.appendChild(IValID.V_ALWAYS); - prop.appendMediaGroup(IMediaGroupID.M_AURAL); - - // speak-numeral - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_SPEAK_NUMERAL); - prop.appendChild(IValID.V_DIGITS); - prop.appendChild(IValID.V_CONTINUOUS); - prop.appendMediaGroup(IMediaGroupID.M_AURAL); - - // speak-punctuation - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_SPEAK_PUNCTUATION); - prop.appendChild(IValID.V_CODE); - prop.appendChild(IValID.V_NONE); - prop.appendMediaGroup(IMediaGroupID.M_AURAL); - - // speech-rate - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_SPEECH_RATE); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_NUM)); - prop.appendChild(IValID.V_X_SLOW); - prop.appendChild(IValID.V_SLOW); - prop.appendChild(IValID.V_MEDIUM); - prop.appendChild(IValID.V_FAST); - prop.appendChild(IValID.V_X_FAST); - prop.appendMediaGroup(IMediaGroupID.M_AURAL); - - // stress - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_STRESS); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_NUM)); - prop.appendMediaGroup(IMediaGroupID.M_AURAL); - - // table-layout - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_TABLE_LAYOUT); - prop.appendChild(IValID.V_AUTO); - prop.appendChild(IValID.V_FIXED); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // text-align - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_TEXT_ALIGN); - prop.appendChild(IValID.V_LEFT); - prop.appendChild(IValID.V_CENTER); - prop.appendChild(IValID.V_RIGHT); - prop.appendChild(IValID.V_JUSTIFY); - prop.appendChild(PropCMString.getInstanceOf(PropCMString.VAL_ANY)); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // text-decoration - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_TEXT_DECORATION); - prop.appendChild(IValID.V_UNDERLINE); - prop.appendChild(IValID.V_OVERLINE); - prop.appendChild(IValID.V_LINE_THROUGH); - prop.appendChild(IValID.V_BLINK); - prop.appendChild(IValID.V_NONE); - prop.setMaxValueCount(4); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // text-indent - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_TEXT_INDENT); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_LENGTH)); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_PERCENTAGE)); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // text-shadow - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_TEXT_SHADOW); - prop.appendChild(IValID.V_NONE); - prop.appendChild(PropCMContainer.getContInstanceOf(PropCMContainer.VAL_COLOR)); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_LENGTH)); - prop.setMaxValueCount(-1); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // text-transform - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_TEXT_TRANSFORM); - prop.appendChild(IValID.V_CAPITALIZE); - prop.appendChild(IValID.V_UPPERCASE); - prop.appendChild(IValID.V_LOWERCASE); - prop.appendChild(IValID.V_NONE); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // top - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_TOP); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_LENGTH)); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_PERCENTAGE)); - prop.appendChild(IValID.V_AUTO); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // unicode-bidi - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_UNICODE_BIDI); - prop.appendChild(IValID.V_NORMAL); - prop.appendChild(IValID.V_EMBED); - prop.appendChild(IValID.V_BIDI_OVERRIDE); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // vertical-align - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_VERTICAL_ALIGN); - prop.appendChild(IValID.V_BOTTOM); - prop.appendChild(IValID.V_TEXT_BOTTOM); - prop.appendChild(IValID.V_SUB); - prop.appendChild(IValID.V_BASELINE); - prop.appendChild(IValID.V_MIDDLE); - prop.appendChild(IValID.V_SUPER); - prop.appendChild(IValID.V_TEXT_TOP); - prop.appendChild(IValID.V_TOP); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_PERCENTAGE)); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_LENGTH)); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // visibility - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_VISIBILITY); - prop.appendChild(IValID.V_VISIBLE); - prop.appendChild(IValID.V_HIDDEN); - prop.appendChild(IValID.V_COLLAPSE); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // voice-family - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_VOICE_FAMILY); - prop.appendChild(PropCMString.getInstanceOf(PropCMString.VAL_VOICE)); - prop.appendChild(PropCMContainer.getContInstanceOf(PropCMContainer.VAL_GENERIC_VOICE)); - prop.setMaxValueCount(-1); - prop.appendMediaGroup(IMediaGroupID.M_AURAL); - - // volume - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_VOLUME); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_NUM)); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_PERCENTAGE)); - prop.appendChild(IValID.V_SILENT); - prop.appendChild(IValID.V_X_SOFT); - prop.appendChild(IValID.V_SOFT); - prop.appendChild(IValID.V_MEDIUM); - prop.appendChild(IValID.V_LOUD); - prop.appendChild(IValID.V_X_LOUD); - prop.appendMediaGroup(IMediaGroupID.M_AURAL); - - // white-space - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_WHITE_SPACE); - prop.appendChild(IValID.V_NORMAL); - prop.appendChild(IValID.V_PRE); - prop.appendChild(IValID.V_NOWRAP); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // widows - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_WIDOWS); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_INTEGER)); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - prop.appendMediaGroup(IMediaGroupID.M_PAGED); - - // width - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_WIDTH); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_LENGTH)); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_PERCENTAGE)); - prop.appendChild(IValID.V_AUTO); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // word-spacing - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_WORD_SPACING); - prop.appendChild(IValID.V_NORMAL); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_LENGTH)); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - // z-index - prop = PropCMProperty.getInstanceOf(PropCMProperty.P_Z_INDEX); - prop.appendChild(IValID.V_AUTO); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_INTEGER)); - prop.appendMediaGroup(IMediaGroupID.M_VISUAL); - - /** ******** font properties ********* */ - // font-family - prop = PropCMFontProperty.getInstanceOf(PropCMFontProperty.PF_FONT_FAMILY); - prop.appendChild(PropCMString.getInstanceOf(PropCMString.VAL_FONT)); - prop.appendChild(PropCMContainer.getContInstanceOf(PropCMContainer.VAL_GENERIC_FAMILY)); - prop.setMaxValueCount(-1); - - // font-style - prop = PropCMFontProperty.getInstanceOf(PropCMFontProperty.PF_FONT_STYLE); - prop.appendChild(IValID.V_ITALIC); - prop.appendChild(IValID.V_OBLIQUE); - prop.appendChild(IValID.V_NORMAL); - prop.appendChild(IValID.V_ALL); - prop.setMaxValueCount(-1); - - // font-variant - prop = PropCMFontProperty.getInstanceOf(PropCMFontProperty.PF_FONT_VARIANT); - prop.appendChild(IValID.V_SMALL_CAPS); - prop.appendChild(IValID.V_NORMAL); - prop.setMaxValueCount(-1); - - // font-weight - prop = PropCMFontProperty.getInstanceOf(PropCMFontProperty.PF_FONT_WEIGHT); - prop.appendChild(IValID.V_BOLD); - prop.appendChild(IValID.V_100); - prop.appendChild(IValID.V_200); - prop.appendChild(IValID.V_300); - prop.appendChild(IValID.V_400); - prop.appendChild(IValID.V_500); - prop.appendChild(IValID.V_600); - prop.appendChild(IValID.V_700); - prop.appendChild(IValID.V_800); - prop.appendChild(IValID.V_900); - prop.appendChild(IValID.V_NORMAL); - prop.appendChild(IValID.V_ALL); - prop.setMaxValueCount(-1); - - // font-stretch - prop = PropCMFontProperty.getInstanceOf(PropCMFontProperty.PF_FONT_STRETCH); - prop.appendChild(IValID.V_NORMAL); - prop.appendChild(IValID.V_ULTRA_CONDENSED); - prop.appendChild(IValID.V_EXTRA_CONDENSED); - prop.appendChild(IValID.V_CONDENSED); - prop.appendChild(IValID.V_SEMI_CONDENSED); - prop.appendChild(IValID.V_SEMI_EXPANDED); - prop.appendChild(IValID.V_EXPANDED); - prop.appendChild(IValID.V_EXTRA_EXPANDED); - prop.appendChild(IValID.V_ULTRA_EXPANDED); - prop.appendChild(IValID.V_ALL); - prop.setMaxValueCount(-1); - - // font-size - prop = PropCMFontProperty.getInstanceOf(PropCMFontProperty.PF_FONT_SIZE); - prop.appendChild(PropCMContainer.getContInstanceOf(PropCMContainer.VAL_ABSOLUTE_SIZE)); - prop.appendChild(PropCMContainer.getContInstanceOf(PropCMContainer.VAL_RELATIVE_SIZE)); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_LENGTH)); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_PERCENTAGE)); - prop.appendChild(IValID.V_ALL); - prop.setMaxValueCount(-1); - - // unicode-range - prop = PropCMFontProperty.getInstanceOf(PropCMFontProperty.PF_UNICODE_RANGE); - prop.appendChild(PropCMURange.getInstanceOf(PropCMURange.VAL_URANGE)); - prop.setMaxValueCount(-1); - - // units-per-em - prop = PropCMFontProperty.getInstanceOf(PropCMFontProperty.PF_UNITS_PER_EM); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_NUM)); - - // src - prop = PropCMFontProperty.getInstanceOf(PropCMFontProperty.PF_SRC); - prop.appendChild(PropCMFunction.getInstanceOf(PropCMFunction.VAL_URI)); - prop.appendChild(PropCMFunction.getInstanceOf(PropCMFunction.VAL_FORMAT)); - prop.appendChild(PropCMFunction.getInstanceOf(PropCMFunction.VAL_LOCAL)); - prop.setMaxValueCount(-1); - - // panose-1 - prop = PropCMFontProperty.getInstanceOf(PropCMFontProperty.PF_PANOSE_1); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_INTEGER)); - prop.setMaxValueCount(10); - - // stemv - prop = PropCMFontProperty.getInstanceOf(PropCMFontProperty.PF_STEMV); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_NUM)); - - // stemh - prop = PropCMFontProperty.getInstanceOf(PropCMFontProperty.PF_STEMH); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_NUM)); - - // slope - prop = PropCMFontProperty.getInstanceOf(PropCMFontProperty.PF_SLOPE); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_NUM)); - - // cap-height - prop = PropCMFontProperty.getInstanceOf(PropCMFontProperty.PF_CAP_HEIGHT); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_NUM)); - - // x-height - prop = PropCMFontProperty.getInstanceOf(PropCMFontProperty.PF_X_HEIGHT); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_NUM)); - - // ascent - prop = PropCMFontProperty.getInstanceOf(PropCMFontProperty.PF_ASCENT); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_NUM)); - - // descent - prop = PropCMFontProperty.getInstanceOf(PropCMFontProperty.PF_DESCENT); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_NUM)); - - // widths - prop = PropCMFontProperty.getInstanceOf(PropCMFontProperty.PF_WIDTHS); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_NUM)); - prop.appendChild(PropCMURange.getInstanceOf(PropCMURange.VAL_URANGE)); - prop.setMaxValueCount(-1); - - // bbox - prop = PropCMFontProperty.getInstanceOf(PropCMFontProperty.PF_BBOX); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_NUM)); - prop.setMaxValueCount(4); - prop.setMaxValueCount(4); - - // definition-src - prop = PropCMFontProperty.getInstanceOf(PropCMFontProperty.PF_DEFINITION_SRC); - prop.appendChild(PropCMFunction.getInstanceOf(PropCMFunction.VAL_URI)); - - // baseline - prop = PropCMFontProperty.getInstanceOf(PropCMFontProperty.PF_BASELINE); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_NUM)); - - // centerline - prop = PropCMFontProperty.getInstanceOf(PropCMFontProperty.PF_CENTERLINE); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_NUM)); - - // mathline - prop = PropCMFontProperty.getInstanceOf(PropCMFontProperty.PF_MATHLINE); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_NUM)); - - // topline - prop = PropCMFontProperty.getInstanceOf(PropCMFontProperty.PF_TOPLINE); - prop.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_NUM)); - - /** ******** containers ********* */ - - // absolute-size - PropCMContainer cont = PropCMContainer.getContInstanceOf(PropCMContainer.VAL_ABSOLUTE_SIZE); - cont.appendChild(IValID.V_XX_SMALL); - cont.appendChild(IValID.V_X_SMALL); - cont.appendChild(IValID.V_SMALL); - cont.appendChild(IValID.V_MEDIUM); - cont.appendChild(IValID.V_LARGE); - cont.appendChild(IValID.V_X_LARGE); - cont.appendChild(IValID.V_XX_LARGE); - - // border-style - cont = PropCMContainer.getContInstanceOf(PropCMContainer.VAL_BORDER_STYLE); - cont.appendChild(IValID.V_SOLID); - cont.appendChild(IValID.V_DASHED); - cont.appendChild(IValID.V_DOTTED); - cont.appendChild(IValID.V_DOUBLE); - cont.appendChild(IValID.V_GROOVE); - cont.appendChild(IValID.V_RIDGE); - cont.appendChild(IValID.V_INSET); - cont.appendChild(IValID.V_OUTSET); - cont.appendChild(IValID.V_HIDDEN); - cont.appendChild(IValID.V_NONE); - - // border-width - cont = PropCMContainer.getContInstanceOf(PropCMContainer.VAL_BORDER_WIDTH); - cont.appendChild(IValID.V_THIN); - cont.appendChild(IValID.V_MEDIUM); - cont.appendChild(IValID.V_THICK); - cont.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_LENGTH)); - - // color - cont = PropCMContainer.getContInstanceOf(PropCMContainer.VAL_COLOR); - cont.appendChild(IValID.V_AQUA); - cont.appendChild(IValID.V_BLACK); - cont.appendChild(IValID.V_BLUE); - cont.appendChild(IValID.V_FUCHSIA); - cont.appendChild(IValID.V_GRAY); - cont.appendChild(IValID.V_GREEN); - cont.appendChild(IValID.V_LIME); - cont.appendChild(IValID.V_MAROON); - cont.appendChild(IValID.V_NAVY); - cont.appendChild(IValID.V_OLIVE); - cont.appendChild(IValID.V_PURPLE); - cont.appendChild(IValID.V_RED); - cont.appendChild(IValID.V_SILVER); - cont.appendChild(IValID.V_TEAL); - cont.appendChild(IValID.V_WHITE); - cont.appendChild(IValID.V_YELLOW); - cont.appendChild(PropCMContainer.getContInstanceOf(PropCMContainer.VAL_SYSTEM_COLOR)); - cont.appendChild(PropCMFunction.getInstanceOf(PropCMFunction.VAL_RGB)); - cont.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_HASH)); - - // system color - cont = PropCMContainer.getContInstanceOf(PropCMContainer.VAL_SYSTEM_COLOR); - cont.appendChild(IValID.V_ACTIVEBORDER); - cont.appendChild(IValID.V_ACTIVECAPTION); - cont.appendChild(IValID.V_APPWORKSPACE); - cont.appendChild(IValID.V_BACKGROUND); - cont.appendChild(IValID.V_BUTTONFACE); - cont.appendChild(IValID.V_BUTTONHIGHLIGHT); - cont.appendChild(IValID.V_BUTTONSHADOW); - cont.appendChild(IValID.V_BUTTONTEXT); - cont.appendChild(IValID.V_CAPTIONTEXT); - cont.appendChild(IValID.V_GRAYTEXT); - cont.appendChild(IValID.V_HIGHLIGHT); - cont.appendChild(IValID.V_HIGHLIGHTTEXT); - cont.appendChild(IValID.V_INACTIVEBORDER); - cont.appendChild(IValID.V_INACTIVECAPTION); - cont.appendChild(IValID.V_INACTIVECAPTIONTEXT); - cont.appendChild(IValID.V_INFOBACKGROUND); - cont.appendChild(IValID.V_INFOTEXT); - cont.appendChild(IValID.V_MENU); - cont.appendChild(IValID.V_MENUTEXT); - cont.appendChild(IValID.V_SCROLLBAR); - cont.appendChild(IValID.V_THREEDDARKSHADOW); - cont.appendChild(IValID.V_THREEDFACE); - cont.appendChild(IValID.V_THREEDHIGHLIGHT); - cont.appendChild(IValID.V_THREEDLIGHTSHADOW); - cont.appendChild(IValID.V_THREEDSHADOW); - cont.appendChild(IValID.V_WINDOW); - cont.appendChild(IValID.V_WINDOWFRAME); - cont.appendChild(IValID.V_WINDOWTEXT); - - // generic-family - cont = PropCMContainer.getContInstanceOf(PropCMContainer.VAL_GENERIC_FAMILY); - cont.appendChild(IValID.V_SERIF); - cont.appendChild(IValID.V_SANS_SERIF); - cont.appendChild(IValID.V_CURSIVE); - cont.appendChild(IValID.V_FANTASY); - cont.appendChild(IValID.V_MONOSPACE); - - // generic-voice - cont = PropCMContainer.getContInstanceOf(PropCMContainer.VAL_GENERIC_VOICE); - cont.appendChild(IValID.V_MALE); - cont.appendChild(IValID.V_FEMALE); - cont.appendChild(IValID.V_CHILD); - - // margin-width - cont = PropCMContainer.getContInstanceOf(PropCMContainer.VAL_MARGIN_WIDTH); - cont.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_LENGTH)); - cont.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_PERCENTAGE)); - cont.appendChild(IValID.V_AUTO); - - // padding-width - cont = PropCMContainer.getContInstanceOf(PropCMContainer.VAL_PADDING_WIDTH); - cont.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_LENGTH)); - cont.appendChild(PropCMNumber.getInstanceOf(PropCMNumber.VAL_PERCENTAGE)); - - // relative-size - cont = PropCMContainer.getContInstanceOf(PropCMContainer.VAL_RELATIVE_SIZE); - cont.appendChild(IValID.V_SMALLER); - cont.appendChild(IValID.V_LARGER); - - LOADING = 2; - } - - /** - * - */ - protected static boolean isLoading() { - return LOADING == 1; - } - - /** - * - */ - protected static boolean isNeedInitialize() { - return LOADING == 0; - } - - /** - * - */ - public String toString() { - return getName(); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contentmodel/PropCMNumber.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contentmodel/PropCMNumber.java deleted file mode 100644 index 3896bb53c7..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contentmodel/PropCMNumber.java +++ /dev/null @@ -1,219 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.contentmodel; - - - -import java.util.Collection; -import java.util.HashSet; -import java.util.Hashtable; -import java.util.Iterator; -import java.util.Set; -import java.util.Vector; - -import org.eclipse.wst.css.core.internal.provisional.document.ICSSPrimitiveValue; -import org.w3c.dom.css.CSSPrimitiveValue; - - -/** - * - */ -public class PropCMNumber extends PropCMNode { - - private static java.util.Hashtable instances = null; - public final static java.lang.String VAL_ANGLE = "angle";//$NON-NLS-1$ - public final static java.lang.String VAL_FREQUENCY = "frequency";//$NON-NLS-1$ - public final static java.lang.String VAL_INTEGER = "integer";//$NON-NLS-1$ - public final static java.lang.String VAL_LENGTH = "length";//$NON-NLS-1$ - public final static java.lang.String VAL_PERCENTAGE = "percentage";//$NON-NLS-1$ - public final static java.lang.String VAL_TIME = "time";//$NON-NLS-1$ - public final static java.lang.String VAL_HASH = "hash"; //$NON-NLS-1$ - public final static java.lang.String VAL_NUM = "number";//$NON-NLS-1$ - public final static String DIM_CM = "cm";//$NON-NLS-1$ - public final static String DIM_DEG = "deg";//$NON-NLS-1$ - public final static String DIM_EMS = "em";//$NON-NLS-1$ - public final static String DIM_EXS = "ex";//$NON-NLS-1$ - public final static String DIM_GRAD = "grad";//$NON-NLS-1$ - public final static String DIM_HASH = "#";//$NON-NLS-1$ - public final static String DIM_HZ = "Hz";//$NON-NLS-1$ - public final static String DIM_IN = "in";//$NON-NLS-1$ - public final static String DIM_INTEGER = "INTEGER";//$NON-NLS-1$ - public final static String DIM_KHZ = "kHz";//$NON-NLS-1$ - public final static String DIM_MM = "mm";//$NON-NLS-1$ - public final static String DIM_MS = "ms";//$NON-NLS-1$ - public final static String DIM_NUMBER = "NUMBER";//$NON-NLS-1$ - public final static String DIM_PC = "pc";//$NON-NLS-1$ - public final static String DIM_PERCENTAGE = "%";//$NON-NLS-1$ - public final static String DIM_PT = "pt";//$NON-NLS-1$ - public final static String DIM_PX = "px";//$NON-NLS-1$ - public final static String DIM_RAD = "rad";//$NON-NLS-1$ - public final static String DIM_S = "s";//$NON-NLS-1$ - private java.util.Vector fDims = new Vector(); - - /** - * - */ - protected PropCMNumber(String name) { - super(name); - } - - /** - * - */ - public static String getDimension(short primitiveType) { - switch (primitiveType) { - case CSSPrimitiveValue.CSS_CM : - return DIM_CM; - case CSSPrimitiveValue.CSS_DEG : - return DIM_DEG; - case CSSPrimitiveValue.CSS_EMS : - return DIM_EMS; - case CSSPrimitiveValue.CSS_EXS : - return DIM_EXS; - case CSSPrimitiveValue.CSS_GRAD : - return DIM_GRAD; - case ICSSPrimitiveValue.CSS_HASH : - return DIM_HASH; // prefix dimension .... - case CSSPrimitiveValue.CSS_HZ : - return DIM_HZ; - case CSSPrimitiveValue.CSS_IN : - return DIM_IN; - case ICSSPrimitiveValue.CSS_INTEGER : - return "";//$NON-NLS-1$ - case CSSPrimitiveValue.CSS_KHZ : - return DIM_KHZ; - case CSSPrimitiveValue.CSS_MM : - return DIM_MM; - case CSSPrimitiveValue.CSS_MS : - return DIM_MS; - case CSSPrimitiveValue.CSS_NUMBER : - return "";//$NON-NLS-1$ - case CSSPrimitiveValue.CSS_PC : - return DIM_PC; - case CSSPrimitiveValue.CSS_PERCENTAGE : - return DIM_PERCENTAGE; - case CSSPrimitiveValue.CSS_PT : - return DIM_PT; - case CSSPrimitiveValue.CSS_PX : - return DIM_PX; - case CSSPrimitiveValue.CSS_RAD : - return DIM_RAD; - case CSSPrimitiveValue.CSS_S : - return DIM_S; - } - - return null; - } - - /** - * - */ - public Set getDimensions() { - HashSet vals = new HashSet(); - Iterator it = fDims.iterator(); - while (it.hasNext()) { - vals.add(it.next()); - } - - return vals; - } - - /** - * - */ - void getIdentifiers(Set indents) { - } - - /** - * - */ - static public PropCMNumber getInstanceOf(String name) { - if (name == null) - return null; - - // initialize - if (instances == null) - instances = new Hashtable(20); - - // Initialize of DB - if (isNeedInitialize()) - PropCMNode.initPropertyCM(); - - // query - Object node = instances.get(name); - if (node != null) - return (PropCMNumber) node; - - // register - if (PropCMNode.isLoading()) { - node = new PropCMNumber(name); - instances.put(name, node); - } - - return (PropCMNumber) node; - } - - /** - * - */ - public short getType() { - return VAL_NUMBER; - } - - /** - * - */ - void getValues(Collection values) { - if (values != null && !values.contains(this)) - values.add(this); - } - - /** - * - */ - static void initNumberCMDim() { - PropCMNumber num = getInstanceOf(VAL_ANGLE); - num.fDims.add(DIM_DEG); - num.fDims.add(DIM_GRAD); - num.fDims.add(DIM_RAD); - - num = getInstanceOf(VAL_FREQUENCY); - num.fDims.add(DIM_HZ); - num.fDims.add(DIM_KHZ); - - num = getInstanceOf(VAL_HASH); - num.fDims.add(DIM_HASH); - - // num = getInstanceOf(VAL_INTEGER); - // num.fDims.add(DIM_INTEGER); - - num = getInstanceOf(VAL_LENGTH); - num.fDims.add(DIM_CM); - num.fDims.add(DIM_EMS); - num.fDims.add(DIM_EXS); - num.fDims.add(DIM_IN); - num.fDims.add(DIM_MM); - num.fDims.add(DIM_PC); - num.fDims.add(DIM_PT); - num.fDims.add(DIM_PX); - - // num = getInstanceOf(VAL_NUMBER); - // num.fDims.add(DIM_NUMBER); - - num = getInstanceOf(VAL_PERCENTAGE); - num.fDims.add(DIM_PERCENTAGE); - - num = getInstanceOf(VAL_TIME); - num.fDims.add(DIM_MS); - num.fDims.add(DIM_S); - - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contentmodel/PropCMProperty.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contentmodel/PropCMProperty.java deleted file mode 100644 index bbab38f642..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contentmodel/PropCMProperty.java +++ /dev/null @@ -1,417 +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.contentmodel; - - - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Enumeration; -import java.util.HashSet; -import java.util.Hashtable; -import java.util.Iterator; -import java.util.List; -import java.util.Vector; - -/** - * - */ -public class PropCMProperty extends PropCMContainer { - - // static fields - private static java.util.Hashtable instances = null; - private static java.util.Hashtable cachedIdMap = null; - public final static String P_AZIMUTH = "azimuth";//$NON-NLS-1$ - public final static String P_BG = "background";//$NON-NLS-1$ - public final static String P_BG_ATTACHMENT = "background-attachment";//$NON-NLS-1$ - public final static String P_BG_COLOR = "background-color";//$NON-NLS-1$ - public final static String P_BG_IMAGE = "background-image";//$NON-NLS-1$ - public final static String P_BG_POSITION = "background-position";//$NON-NLS-1$ - public final static String P_BG_REPEAT = "background-repeat";//$NON-NLS-1$ - public final static String P_BORDER = "border";//$NON-NLS-1$ - public final static String P_BORDER_COLLAPSE = "border-collapse";//$NON-NLS-1$ - public final static String P_BORDER_COLOR = "border-color";//$NON-NLS-1$ - public final static String P_BORDER_SPACING = "border-spacing";//$NON-NLS-1$ - public final static String P_BORDER_STYLE = "border-style";//$NON-NLS-1$ - public final static String P_BORDER_TOP = "border-top";//$NON-NLS-1$ - public final static String P_BORDER_RIGHT = "border-right";//$NON-NLS-1$ - public final static String P_BORDER_BOTTOM = "border-bottom";//$NON-NLS-1$ - public final static String P_BORDER_LEFT = "border-left";//$NON-NLS-1$ - public final static String P_BORDER_TOP_COLOR = "border-top-color";//$NON-NLS-1$ - public final static String P_BORDER_RIGHT_COLOR = "border-right-color";//$NON-NLS-1$ - public final static String P_BORDER_BOTTOM_COLOR = "border-bottom-color";//$NON-NLS-1$ - public final static String P_BORDER_LEFT_COLOR = "border-left-color";//$NON-NLS-1$ - public final static String P_BORDER_TOP_STYLE = "border-top-style";//$NON-NLS-1$ - public final static String P_BORDER_RIGHT_STYLE = "border-right-style";//$NON-NLS-1$ - public final static String P_BORDER_BOTTOM_STYLE = "border-bottom-style";//$NON-NLS-1$ - public final static String P_BORDER_LEFT_STYLE = "border-left-style";//$NON-NLS-1$ - public final static String P_BORDER_TOP_WIDTH = "border-top-width";//$NON-NLS-1$ - public final static String P_BORDER_RIGHT_WIDTH = "border-right-width";//$NON-NLS-1$ - public final static String P_BORDER_BOTTOM_WIDTH = "border-bottom-width";//$NON-NLS-1$ - public final static String P_BORDER_LEFT_WIDTH = "border-left-width";//$NON-NLS-1$ - public final static String P_BORDER_WIDTH = "border-width";//$NON-NLS-1$ - public final static String P_BOTTOM = "bottom";//$NON-NLS-1$ - public final static String P_CAPTION_SIDE = "caption-side";//$NON-NLS-1$ - public final static String P_CLEAR = "clear";//$NON-NLS-1$ - public final static String P_CLIP = "clip";//$NON-NLS-1$ - public final static String P_COLOR = "color";//$NON-NLS-1$ - public final static String P_CONTENT = "content";//$NON-NLS-1$ - public final static String P_COUNTER_INCREMENT = "counter-increment";//$NON-NLS-1$ - public final static String P_COUNTER_RESET = "counter-reset";//$NON-NLS-1$ - public final static String P_CUE = "cue";//$NON-NLS-1$ - public final static String P_CUE_AFTER = "cue-after";//$NON-NLS-1$ - public final static String P_CUE_BEFORE = "cue-before";//$NON-NLS-1$ - public final static String P_CURSOR = "cursor";//$NON-NLS-1$ - public final static String P_DIRECTION = "direction";//$NON-NLS-1$ - public final static String P_DISPLAY = "display";//$NON-NLS-1$ - public final static String P_ELEVATION = "elevation";//$NON-NLS-1$ - public final static String P_EMPTY_CELLS = "empty-cells";//$NON-NLS-1$ - public final static String P_FLOAT = "float";//$NON-NLS-1$ - public final static String P_FONT = "font";//$NON-NLS-1$ - public final static String P_FONT_FAMILY = "font-family";//$NON-NLS-1$ - public final static String P_FONT_SIZE = "font-size";//$NON-NLS-1$ - public final static String P_FONT_SIZE_ADJUST = "font-size-adjust";//$NON-NLS-1$ - public final static String P_FONT_STRETCH = "font-stretch";//$NON-NLS-1$ - public final static String P_FONT_STYLE = "font-style";//$NON-NLS-1$ - public final static String P_FONT_VARIANT = "font-variant";//$NON-NLS-1$ - public final static String P_FONT_WEIGHT = "font-weight";//$NON-NLS-1$ - public final static String P_HEIGHT = "height";//$NON-NLS-1$ - public final static String P_LEFT = "left";//$NON-NLS-1$ - public final static String P_LETTER_SPACING = "letter-spacing";//$NON-NLS-1$ - public final static String P_LINE_HEIGHT = "line-height";//$NON-NLS-1$ - public final static String P_LIST_STYLE = "list-style";//$NON-NLS-1$ - public final static String P_LIST_STYLE_IMAGE = "list-style-image";//$NON-NLS-1$ - public final static String P_LIST_STYLE_POSITION = "list-style-position";//$NON-NLS-1$ - public final static String P_LIST_STYLE_TYPE = "list-style-type";//$NON-NLS-1$ - public final static String P_MARGIN = "margin";//$NON-NLS-1$ - public final static String P_MARGIN_TOP = "margin-top";//$NON-NLS-1$ - public final static String P_MARGIN_RIGHT = "margin-right";//$NON-NLS-1$ - public final static String P_MARGIN_BOTTOM = "margin-bottom";//$NON-NLS-1$ - public final static String P_MARGIN_LEFT = "margin-left";//$NON-NLS-1$ - public final static String P_MARKER_OFFSET = "marker-offset";//$NON-NLS-1$ - public final static String P_MARKS = "marks";//$NON-NLS-1$ - public final static String P_MAX_HEIGHT = "max-height";//$NON-NLS-1$ - public final static String P_MAX_WIDTH = "max-width";//$NON-NLS-1$ - public final static String P_MIN_HEIGHT = "min-height";//$NON-NLS-1$ - public final static String P_MIN_WIDTH = "min-width";//$NON-NLS-1$ - public final static String P_ORPHANS = "orphans";//$NON-NLS-1$ - public final static String P_OUTLINE = "outline";//$NON-NLS-1$ - public final static String P_OUTLINE_COLOR = "outline-color";//$NON-NLS-1$ - public final static String P_OUTLINE_STYLE = "outline-style";//$NON-NLS-1$ - public final static String P_OUTLINE_WIDTH = "outline-width";//$NON-NLS-1$ - public final static String P_OVERFLOW = "overflow";//$NON-NLS-1$ - public final static String P_PADDING = "padding";//$NON-NLS-1$ - public final static String P_PADDING_TOP = "padding-top";//$NON-NLS-1$ - public final static String P_PADDING_RIGHT = "padding-right";//$NON-NLS-1$ - public final static String P_PADDING_BOTTOM = "padding-bottom";//$NON-NLS-1$ - public final static String P_PADDING_LEFT = "padding-left";//$NON-NLS-1$ - public final static String P_PAGE = "page";//$NON-NLS-1$ - public final static String P_PAGE_BREAK_AFTER = "page-break-after";//$NON-NLS-1$ - public final static String P_PAGE_BREAK_BEFORE = "page-break-before";//$NON-NLS-1$ - public final static String P_PAGE_BREAK_INSIDE = "page-break-inside";//$NON-NLS-1$ - public final static String P_PAUSE = "pause";//$NON-NLS-1$ - public final static String P_PAUSE_AFTER = "pause-after";//$NON-NLS-1$ - public final static String P_PAUSE_BEFORE = "pause-before";//$NON-NLS-1$ - public final static String P_PITCH = "pitch";//$NON-NLS-1$ - public final static String P_PITCH_RANGE = "pitch-range";//$NON-NLS-1$ - public final static String P_PLAY_DURING = "play-during";//$NON-NLS-1$ - public final static String P_POSITION = "position";//$NON-NLS-1$ - public final static String P_QUOTES = "quotes";//$NON-NLS-1$ - public final static String P_RICHNESS = "richness";//$NON-NLS-1$ - public final static String P_RIGHT = "right";//$NON-NLS-1$ - public final static String P_SIZE = "size";//$NON-NLS-1$ - public final static String P_SPEAK = "speak";//$NON-NLS-1$ - public final static String P_SPEAK_HEADER = "speak-header";//$NON-NLS-1$ - public final static String P_SPEAK_NUMERAL = "speak-numeral";//$NON-NLS-1$ - public final static String P_SPEAK_PUNCTUATION = "speak-punctuation";//$NON-NLS-1$ - public final static String P_SPEECH_RATE = "speech-rate";//$NON-NLS-1$ - public final static String P_STRESS = "stress";//$NON-NLS-1$ - public final static String P_TABLE_LAYOUT = "table-layout";//$NON-NLS-1$ - public final static String P_TEXT_ALIGN = "text-align";//$NON-NLS-1$ - public final static String P_TEXT_DECORATION = "text-decoration";//$NON-NLS-1$ - public final static String P_TEXT_INDENT = "text-indent";//$NON-NLS-1$ - public final static String P_TEXT_SHADOW = "text-shadow";//$NON-NLS-1$ - public final static String P_TEXT_TRANSFORM = "text-transform";//$NON-NLS-1$ - public final static String P_TOP = "top";//$NON-NLS-1$ - public final static String P_UNICODE_BIDI = "unicode-bidi";//$NON-NLS-1$ - public final static String P_VERTICAL_ALIGN = "vertical-align";//$NON-NLS-1$ - public final static String P_VISIBILITY = "visibility";//$NON-NLS-1$ - public final static String P_VOICE_FAMILY = "voice-family";//$NON-NLS-1$ - public final static String P_VOLUME = "volume";//$NON-NLS-1$ - public final static String P_WHITE_SPACE = "white-space";//$NON-NLS-1$ - public final static String P_WIDOWS = "widows";//$NON-NLS-1$ - public final static String P_WIDTH = "width";//$NON-NLS-1$ - public final static String P_WORD_SPACING = "word-spacing";//$NON-NLS-1$ - public final static String P_Z_INDEX = "z-index";//$NON-NLS-1$ - // instance fields - private int fMinValueCount = 1; - private int fMaxValueCount = 1; - private Object[] mediaGroups; - protected List containers; - - /** - * - */ - protected PropCMProperty(String name) { - super(name); - } - - /** - * - */ - Object appendChild(Object node) { - Object ret = super.appendChild(node); - if (node instanceof PropCMProperty) { - // register shorthand container - PropCMProperty cm = (PropCMProperty) node; - if (cm.containers == null) - cm.containers = new Vector(); - if (!cm.containers.contains(this)) - cm.containers.add(this); - } - return ret; - } - - /** - * - */ - void appendMediaGroup(Object mg) { - if (mediaGroups == null) - mediaGroups = new Object[1]; - else { - Object[] oldMediaGroups = mediaGroups; - mediaGroups = new Object[oldMediaGroups.length + 1]; - System.arraycopy(oldMediaGroups, 0, mediaGroups, 0, oldMediaGroups.length); - } - mediaGroups[mediaGroups.length - 1] = mg; - } - - /** - * - */ - public static PropCMProperty getInstanceOf(String name) { - // initialize - if (instances == null) - instances = new Hashtable(200); - - // Initialize of DB - if (isNeedInitialize()) - PropCMNode.initPropertyCM(); - - // query - Object node = instances.get(name); - if (node != null) - return (PropCMProperty) node; - - // register - if (PropCMNode.isLoading()) { - node = new PropCMProperty(name); - instances.put(name, node); - } - - return (PropCMProperty) node; - } - - /** - * - */ - public int getMaxValueCount() { - return fMaxValueCount; - } - - /** - * - */ - public List getMediaGroups() { - if (mediaGroups != null) - return Arrays.asList(mediaGroups); - else - return new ArrayList(); - } - - /** - * - */ - public int getMinValueCount() { - return fMinValueCount; - } - - /** - * - */ - public static Enumeration getNameEnum() { - // Initialize of DB - if (isNeedInitialize()) - PropCMNode.initPropertyCM(); - - return instances.keys(); - } - - /** - * - */ - public static Enumeration getPropertyEnum() { - // Initialize of DB - if (isNeedInitialize()) - PropCMNode.initPropertyCM(); - - return instances.elements(); - } - - /** - * - */ - public int getShorthandContainerCount() { - return (containers == null) ? 0 : containers.size(); - } - - /** - * - */ - public short getType() { - return VAL_PROPERTY; - } - - /** - * - */ - public boolean isShorthand() { - int nChild = getNumChild(); - for (int i = 0; i < nChild; i++) { - Object obj = getChildAt(i); - if (obj instanceof PropCMProperty && !(obj instanceof PropCMSubProperty)) - return true; - } - return false; - } - - /** - * - */ - public static Vector names() { - // Initialize of DB - if (isNeedInitialize()) - PropCMNode.initPropertyCM(); - - return new Vector(instances.keySet()); - } - - /** - * - */ - public static List names(Object mediaGroup) { - if (mediaGroup == null) - return names(); - - // Initialize of DB - if (isNeedInitialize()) - PropCMNode.initPropertyCM(); - - Vector properties = new Vector(); - - Iterator it = instances.values().iterator(); - while (it.hasNext()) { - PropCMProperty prop = (PropCMProperty) it.next(); - if (prop.getMediaGroups().contains(mediaGroup)) - properties.add(prop.getName()); - } - - return properties; - } - - /** - * If identifier is null, get all properties - */ - public static Vector propertiesFor(String identifier, boolean shorthands) { - // Initialize of DB - if (isNeedInitialize()) - PropCMNode.initPropertyCM(); - - // if identifier is null, get all properties - if (identifier == null) - return new Vector(instances.values()); - - if (cachedIdMap == null) { - // start cacheing - cachedIdMap = new Hashtable(); - } - else { - // search cached - Object ret = cachedIdMap.get(identifier + String.valueOf(shorthands)); - if (ret != null) - return new Vector((Collection) ret); - } - - // create - Enumeration propertyEnum = getPropertyEnum(); - HashSet set = new HashSet(); - while (propertyEnum.hasMoreElements()) { - PropCMProperty prop = (PropCMProperty) propertyEnum.nextElement(); - if (!shorthands && prop.isShorthand()) - continue; - if (prop.canHave(identifier)) - set.add(prop); - } - - // cache - cachedIdMap.put(identifier + String.valueOf(shorthands), set); - - return new Vector(set); - } - - /** - * - */ - protected void setMaxValueCount(int newMaxValueCount) { - fMaxValueCount = newMaxValueCount; - } - - /** - * - */ - protected void setMinValueCount(int newMinValueCount) { - fMinValueCount = newMinValueCount; - } - - /** - * - */ - public PropCMProperty shorthandContainerAt(int i) { - if (containers == null) - return null; - if (i < 0 || containers.size() <= i) - return null; - return (PropCMProperty) containers.get(i); - } - - /** - * - */ - public Iterator shorthandContainerIterator() { - if (containers == null) { - return new Iterator() { - public boolean hasNext() { - return false; - } - - public Object next() { - return null; - } - - public void remove() { - } - }; - } - else - return containers.iterator(); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contentmodel/PropCMString.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contentmodel/PropCMString.java deleted file mode 100644 index 00a1e82008..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contentmodel/PropCMString.java +++ /dev/null @@ -1,85 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.contentmodel; - - - -import java.util.Collection; -import java.util.Hashtable; -import java.util.Set; - -/** - * - */ -public class PropCMString extends PropCMNode { - - private static java.util.Hashtable instances = null; - public final static java.lang.String VAL_FONT = "font";//$NON-NLS-1$ - public final static java.lang.String VAL_COUNTER_ID = "counterId";//$NON-NLS-1$ - public final static java.lang.String VAL_PAGE_ID = "pageId";//$NON-NLS-1$ - public final static java.lang.String VAL_VOICE = "voice";//$NON-NLS-1$ - public final static java.lang.String VAL_ANY = "any"; //$NON-NLS-1$ - - /** - * - */ - protected PropCMString(String name) { - super(name); - } - - /** - * - */ - void getIdentifiers(Set indents) { - } - - /** - * - */ - static public PropCMString getInstanceOf(String name) { - if (name == null) - return null; - - // initialize - if (instances == null) - instances = new Hashtable(10); - - // Initialize of DB - if (isNeedInitialize()) - PropCMNode.initPropertyCM(); - - // query - Object node = instances.get(name); - if (node != null) - return (PropCMString) node; - - // register - node = new PropCMString(name); - instances.put(name, node); - - return (PropCMString) node; - } - - /** - * - */ - public short getType() { - return VAL_STRING; - } - - /** - * - */ - void getValues(Collection values) { - if (values != null && !values.contains(this)) - values.add(this); - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contentmodel/PropCMSubProperty.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contentmodel/PropCMSubProperty.java deleted file mode 100644 index 81ebb3733d..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contentmodel/PropCMSubProperty.java +++ /dev/null @@ -1,122 +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.contentmodel; - - - -import java.util.Enumeration; -import java.util.Hashtable; -import java.util.Vector; - -/** - * - */ -public class PropCMSubProperty extends PropCMProperty { - - // static fields - private static java.util.Hashtable instances = null; - public final static String PSUB_BG_POSITION_X = "background-positionH";//$NON-NLS-1$ - public final static String PSUB_BG_POSITION_Y = "background-positionV";//$NON-NLS-1$ - public final static String PSUB_CLIP_TOP = "clipTop";//$NON-NLS-1$ - public final static String PSUB_CLIP_RIGHT = "clipRight";//$NON-NLS-1$ - public final static String PSUB_CLIP_BOTTOM = "clipBottom";//$NON-NLS-1$ - public final static String PSUB_CLIP_LEFT = "clipLeft";//$NON-NLS-1$ - - /** - * - */ - protected PropCMSubProperty(String name) { - super(name); - } - - /** - * - */ - public PropCMProperty getContainer() { - return shorthandContainerAt(0); - } - - /** - * - */ - public static PropCMProperty getInstanceOf(String name) { - // initialize - if (instances == null) - instances = new Hashtable(10); - - // Initialize of DB - if (isNeedInitialize()) - PropCMNode.initPropertyCM(); - - // query - Object node = instances.get(name); - if (node != null) - return (PropCMProperty) node; - - // register - if (PropCMNode.isLoading()) { - node = new PropCMSubProperty(name); - instances.put(name, node); - } - - return (PropCMProperty) node; - } - - /** - * - */ - public static Enumeration getNameEnum() { - // Initialize of DB - if (isNeedInitialize()) - PropCMNode.initPropertyCM(); - - return instances.keys(); - } - - /** - * - */ - public static Enumeration getPropertyEnum() { - // Initialize of DB - if (isNeedInitialize()) - PropCMNode.initPropertyCM(); - - return instances.elements(); - } - - /** - * - */ - public short getType() { - return VAL_SUBPROPERTY; - } - - /** - * - */ - public static Vector names() { - // Initialize of DB - if (isNeedInitialize()) - PropCMNode.initPropertyCM(); - - return new Vector(instances.keySet()); - } - - /** - * - */ - public void setContainer(PropCMProperty prop) { - if (containers == null) - containers = new Vector(); - containers.clear(); - containers.add(prop); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contentmodel/PropCMURange.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contentmodel/PropCMURange.java deleted file mode 100644 index 3375715d5e..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contentmodel/PropCMURange.java +++ /dev/null @@ -1,81 +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.contentmodel; - - - -import java.util.Collection; -import java.util.Hashtable; -import java.util.Set; - -/** - * - */ -public class PropCMURange extends PropCMNode { - - private static java.util.Hashtable instances = null; - public final static String VAL_URANGE = "urange";//$NON-NLS-1$ - - /** - * - */ - protected PropCMURange(String name) { - super(name); - } - - /** - * - */ - void getIdentifiers(Set indents) { - } - - /** - * - */ - public static PropCMURange getInstanceOf(String name) { - if (name == null) - return null; - - // initialize - if (instances == null) - instances = new Hashtable(10); - - // Initialize of DB - if (isNeedInitialize()) - PropCMNode.initPropertyCM(); - - // query - Object node = instances.get(name); - if (node != null) - return (PropCMURange) node; - - // register - node = new PropCMURange(name); - instances.put(name, node); - - return (PropCMURange) node; - } - - /** - * - */ - public short getType() { - return VAL_UNICODE_RANGE; - } - - /** - * - */ - void getValues(Collection values) { - if (values != null && !values.contains(this)) - values.add(this); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contentmodel/PropCMUtil.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contentmodel/PropCMUtil.java deleted file mode 100644 index 816ba377c6..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contentmodel/PropCMUtil.java +++ /dev/null @@ -1,48 +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.contentmodel; - - - -import java.util.Collection; -import java.util.Iterator; - -/** - * - */ -public class PropCMUtil { - - /** - * - */ - public static void minus(Collection src, Collection ref) { - Iterator it = ref.iterator(); - while (it.hasNext()) { - Object obj = it.next(); - if (src.contains(obj)) - src.remove(obj); - } - return; - } - - /** - * - */ - public static void plus(Collection src, Collection ref) { - Iterator it = ref.iterator(); - while (it.hasNext()) { - Object obj = it.next(); - if (!src.contains(obj)) - src.add(obj); - } - return; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contentproperties/CSSContentProperties.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contentproperties/CSSContentProperties.java deleted file mode 100644 index 3bbc582ac6..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contentproperties/CSSContentProperties.java +++ /dev/null @@ -1,194 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006 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.contentproperties; - -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.resources.ProjectScope; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Platform; -import org.eclipse.core.runtime.Status; -import org.eclipse.wst.css.core.internal.CSSCorePlugin; -import org.eclipse.wst.css.core.internal.Logger; -import org.osgi.service.prefs.BackingStoreException; -import org.osgi.service.prefs.Preferences; - -/** - * Properties constants used by CSS. Clients should only read and modify the - * CSS properties programmatically using this class. - * - * @since 1.1 - */ -public class CSSContentProperties { - static final String CSSCORE_ID = CSSCorePlugin.getDefault().getBundle().getSymbolicName(); - private static final String PROJECT_KEY = "<project>"; //$NON-NLS-1$ - - /** - * The default css profile to use when none is specified. - * <p> - * Value is of type <code>String</code>. - * </p> - */ - public static final String CSS_PROFILE = "css-profile"; //$NON-NLS-1$ - - /** - * Generates a preference key based on resourcePath - * - * @param resourcePath - * the path the key will be based off of - * @return preference key based on resourcePath (basically the - * resourcePath without the filename); PROJECT_KEY if resourcePath - * is null - */ - static String getKeyFor(IPath resourcePath) { - String key = PROJECT_KEY; - if (resourcePath != null && resourcePath.segmentCount() > 1) { - key = resourcePath.removeFirstSegments(1).toString(); - } - return key; - } - - /** - * Get the preferences node associated with the given project scope and - * preference key (subNode) If create is true, the preference node will be - * created if one does not already exist - * - * @param project - * the project the preference node is under - * @param preferenceKey - * the subnode/category the preference node is located in - * @param create - * if true, a preference node will be created if one does not - * already exist - * @return Preferences associated with the given project scope and - * preference key. null if one could not be found and create is - * false - */ - static Preferences getPreferences(IProject project, String preferenceKey, boolean create) { - if (create) - // create all nodes down to the one we are interested in - return new ProjectScope(project).getNode(CSSCORE_ID).node(preferenceKey); - // be careful looking up for our node so not to create any nodes as - // side effect - Preferences node = Platform.getPreferencesService().getRootNode().node(ProjectScope.SCOPE); - try { - // TODO once bug 90500 is fixed, should be as simple as this: - // String path = project.getName() + IPath.SEPARATOR + - // ResourcesPlugin.PI_RESOURCES + IPath.SEPARATOR + - // ENCODING_PREF_NODE; - // return node.nodeExists(path) ? node.node(path) : null; - // for now, take the long way - if (!node.nodeExists(project.getName())) - return null; - node = node.node(project.getName()); - if (!node.nodeExists(CSSCORE_ID)) - return null; - node = node.node(CSSCORE_ID); - if (!node.nodeExists(preferenceKey)) - return null; - return node.node(preferenceKey); - } - catch (BackingStoreException e) { - // nodeExists failed - Logger.log(Logger.WARNING_DEBUG, "Could not retrieve preference node", e); //$NON-NLS-1$ - } - return null; - } - - /** - * Returns the value for the given key in the given context. - * - * @param key - * The property key - * @param resource - * The current context or <code>null</code> if no context is - * available and the workspace setting should be taken. Note - * that passing <code>null</code> should be avoided. - * @param recurse - * whether the parent should be queried till property is found - * @return Returns the current value for the key. - * @since 1.1 - */ - public static String getProperty(String key, IResource resource, boolean recurse) { - String val = null; - // boolean preferenceFound = false; - if (resource != null) { - IProject project = resource.getProject(); - if (project != null) { - Preferences preferences = getPreferences(project, key, false); - if (preferences != null) { - val = internalGetProperty(resource, recurse, preferences); - // preferenceFound = true; - } - } - } - // Workbench preference may not be needed so leave out for now - // // no preferences found - for performance reasons, - // // short-circuit - // // lookup by falling back to workspace's default - // // setting - // if (!preferenceFound) - // val = getWorkbenchPreference(key); - return val; - } - - private static String internalGetProperty(IResource resource, boolean recurse, Preferences preferences) { - String value = preferences.get(getKeyFor(resource.getFullPath()), null); - if (value == null && resource != resource.getProject() && recurse) { - value = preferences.get(getKeyFor(null), null); - } - - // Workbench preference may not be needed so leave out for now - // // ensure we default to the workspace preference if none is found - // return value == null ? getWorkbenchPreference(key) : value; - return value; - } - - /** - * Sets the value for the given key in the given context. - * - * @param key - * The property key - * @param resource - * The current context. Note context cannot be - * <code>null</code>. - * @param value - * The value to set for the key. If value is <code>null</code> - * the key is removed from properties. - * @since 1.1 - */ - public static void setProperty(String key, IResource resource, String value) throws CoreException { - if (resource != null) { - IProject project = resource.getProject(); - if (project != null) { - Preferences preferences = getPreferences(project, key, true); - if (value == null || value.trim().length() == 0) - preferences.remove(getKeyFor(resource.getFullPath())); - else - preferences.put(getKeyFor(resource.getFullPath()), value); - try { - // save changes - preferences.flush(); - } - catch (BackingStoreException e) { - throw new CoreException(new Status(IStatus.ERROR, CSSCORE_ID, IStatus.ERROR, "Unable to set property", e)); //$NON-NLS-1$ - } - } - } - // Workbench preference may not be needed so leave out for now - // just set a preference in the instance scope - // if (!preferenceFound) { - // setWorkbenchPreference(key); - // } - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contentproperties/CSSContentPropertiesManager.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contentproperties/CSSContentPropertiesManager.java deleted file mode 100644 index 25a4b8d9a8..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contentproperties/CSSContentPropertiesManager.java +++ /dev/null @@ -1,239 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006 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.contentproperties; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IResourceChangeEvent; -import org.eclipse.core.resources.IResourceChangeListener; -import org.eclipse.core.resources.IResourceDelta; -import org.eclipse.core.resources.IResourceStatus; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.MultiStatus; -import org.eclipse.core.runtime.NullProgressMonitor; -import org.eclipse.core.runtime.OperationCanceledException; -import org.eclipse.core.runtime.Path; -import org.eclipse.core.runtime.Platform; -import org.eclipse.core.runtime.Status; -import org.eclipse.core.runtime.jobs.Job; -import org.eclipse.osgi.util.NLS; -import org.eclipse.wst.css.core.internal.CSSCoreMessages; -import org.eclipse.wst.css.core.internal.Logger; -import org.osgi.framework.Bundle; -import org.osgi.service.prefs.BackingStoreException; -import org.osgi.service.prefs.Preferences; - -public class CSSContentPropertiesManager { - public CSSContentPropertiesManager() { - super(); - fResourceChangeListener = new ResourceChangeListener(); - fJob = new ContentPropertiesManagerJob(); - } - - private static CSSContentPropertiesManager _instance = null; - private IResourceChangeListener fResourceChangeListener; - ContentPropertiesManagerJob fJob; - - /** - * This job implementation is used to allow the resource change listener - * to schedule operations that need to modify the workspace. - */ - private class ContentPropertiesManagerJob extends Job { - private static final int PROPERTIES_UPDATE_DELAY = 500; - private List asyncChanges = new ArrayList(); - - public ContentPropertiesManagerJob() { - super(CSSCoreMessages.CSSContentPropertiesManager_Updating); - setSystem(true); - setPriority(Job.INTERACTIVE); - } - - public void addChanges(Set newChanges) { - if (newChanges.isEmpty()) - return; - synchronized (asyncChanges) { - asyncChanges.addAll(newChanges); - asyncChanges.notify(); - } - schedule(PROPERTIES_UPDATE_DELAY); - } - - public IProject getNextChange() { - synchronized (asyncChanges) { - return asyncChanges.isEmpty() ? null : (IProject) asyncChanges.remove(asyncChanges.size() - 1); - } - } - - protected IStatus run(IProgressMonitor monitor) { - MultiStatus result = new MultiStatus(CSSContentProperties.CSSCORE_ID, IResourceStatus.FAILED_SETTING_CHARSET, CSSCoreMessages.CSSContentPropertiesManager_Updating, null); - monitor = monitor == null ? new NullProgressMonitor() : monitor; - try { - monitor.beginTask(CSSCoreMessages.CSSContentPropertiesManager_Updating, asyncChanges.size()); - try { - IProject next; - while ((next = getNextChange()) != null) { - // just exit if the system is shutting down or has - // been shut down - // it is too late to change the workspace at this - // point anyway - if (Platform.getBundle("org.eclipse.osgi").getState() != Bundle.ACTIVE) //$NON-NLS-1$ - return Status.OK_STATUS; - try { - // save the preferences nodes - if (next.isAccessible()) { - // save css profile preferences - Preferences projectPrefs = CSSContentProperties.getPreferences(next, CSSContentProperties.CSS_PROFILE, false); - if (projectPrefs != null) - projectPrefs.flush(); - - } - } - catch (BackingStoreException e) { - // we got an error saving - String detailMessage = NLS.bind(CSSCoreMessages.CSSContentPropertiesManager_Problems_Updating, next.getFullPath()); - result.add(new Status(1 << (IResourceStatus.FAILED_SETTING_CHARSET % 100 / 33), ResourcesPlugin.PI_RESOURCES, IResourceStatus.FAILED_SETTING_CHARSET, detailMessage, e)); - } - } - monitor.worked(1); - } - catch (OperationCanceledException e) { - throw e; - } - } - finally { - monitor.done(); - } - return result; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.core.runtime.jobs.Job#shouldRun() - */ - public boolean shouldRun() { - synchronized (asyncChanges) { - return !asyncChanges.isEmpty(); - } - } - } - - class ResourceChangeListener implements IResourceChangeListener { - private void processEntryChanges(IResourceDelta projectDelta, Set projectsToSave) { - // check each resource with css content setting to see if it has - // been moved/deleted - boolean resourceChanges = false; - - // project affected - IProject currentProject = (IProject) projectDelta.getResource(); - - resourceChanges = processPreferences(currentProject, CSSContentProperties.CSS_PROFILE, projectDelta, projectsToSave); - - // if there was a preference key change, need to save preferences - if (resourceChanges) - projectsToSave.add(currentProject); - } - - /** - * Goes through all the resource-dependent preferences associated with - * currentProject & key and updates the preference keys if needed - * based on projectDelta - * - * @param currentProject - * current project of the preferences to be looked at - * @param key - * current key/subcategory of the preferences to be looked - * at - * @param projectDelta - * the changes to process the preference keys against - * @param projectsToSave - * the projects that need to be updated/saved - * @return true if currentProject's preferences were modified - */ - private boolean processPreferences(IProject currentProject, String key, IResourceDelta projectDelta, Set projectsToSave) { - boolean resourceChanges = false; - - // get the project-key preference node - Preferences projectPrefs = CSSContentProperties.getPreferences(currentProject, key, false); - if (projectPrefs == null) - // no preferences for this project-key, just bail - return false; - String[] affectedResources; - try { - affectedResources = projectPrefs.keys(); - } - catch (BackingStoreException e) { - // problems with the project scope... we gonna miss the - // changes (but will log) - Logger.log(Logger.WARNING_DEBUG, "Problem retreiving JSP Fragment preferences", e); //$NON-NLS-1$ - return false; - } - - // go through each preference key (which is really a file name) - for (int i = 0; i < affectedResources.length; i++) { - // see if preference key/file name was file that was changed - IResourceDelta memberDelta = projectDelta.findMember(new Path(affectedResources[i])); - // no changes for the given resource - if (memberDelta == null) - continue; - if (memberDelta.getKind() == IResourceDelta.REMOVED) { - resourceChanges = true; - // remove the setting for the original location - String currentValue = projectPrefs.get(affectedResources[i], null); - projectPrefs.remove(affectedResources[i]); - if ((memberDelta.getFlags() & IResourceDelta.MOVED_TO) != 0) { - // if moving, copy the setting for the new location - IProject targetProject = ResourcesPlugin.getWorkspace().getRoot().getProject(memberDelta.getMovedToPath().segment(0)); - Preferences targetPrefs = CSSContentProperties.getPreferences(targetProject, key, true); - targetPrefs.put(CSSContentProperties.getKeyFor(memberDelta.getMovedToPath()), currentValue); - if (targetProject != currentProject) - projectsToSave.add(targetProject); - } - } - } - return resourceChanges; - } - - /** - * For any change to the encoding file or any resource with encoding - * set, just discard the cache for the corresponding project. - */ - public void resourceChanged(IResourceChangeEvent event) { - IResourceDelta delta = event.getDelta(); - if (delta == null) - return; - IResourceDelta[] projectDeltas = delta.getAffectedChildren(); - // process each project in the delta - Set projectsToSave = new HashSet(); - for (int i = 0; i < projectDeltas.length; i++) - // nothing to do if a project has been added/removed/moved - if (projectDeltas[i].getKind() == IResourceDelta.CHANGED && (projectDeltas[i].getFlags() & IResourceDelta.OPEN) == 0) - processEntryChanges(projectDeltas[i], projectsToSave); - fJob.addChanges(projectsToSave); - } - } - - public synchronized static void startup() { - _instance = new CSSContentPropertiesManager(); - ResourcesPlugin.getWorkspace().addResourceChangeListener(_instance.fResourceChangeListener, IResourceChangeEvent.POST_CHANGE); - } - - public synchronized static void shutdown() { - ResourcesPlugin.getWorkspace().removeResourceChangeListener(_instance.fResourceChangeListener); - _instance = null; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contenttype/ByteReader.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contenttype/ByteReader.java deleted file mode 100644 index 72b876bdd8..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contenttype/ByteReader.java +++ /dev/null @@ -1,109 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 2006 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.css.core.internal.contenttype; - -import java.io.IOException; -import java.io.InputStream; -import java.io.Reader; - -import org.eclipse.wst.sse.core.internal.encoding.CodedIO; - -/** - * This is an "adapter" class, simply to get in input stream to act like a - * reader. We could not use InputStreamReader directly because its internal - * buffers are not controllable, and it sometimes pulls too much out of input - * stream (even when it wasn't needed for our purposes). - * - * The use of this class is highly specialized and by no means meant to be - * general purpose. Its use is restricted to those cases where the input - * stream can be regarded as ascii just long enough to determine what the real - * encoding should be. - */ - -public class ByteReader extends Reader { - - - public static final int DEFAULT_BUFFER_SIZE = CodedIO.MAX_BUF_SIZE; - - protected byte[] fBuffer; - - protected InputStream fInputStream; - - protected ByteReader() { - super(); - } - - public ByteReader(InputStream inputStream) { - this(inputStream, DEFAULT_BUFFER_SIZE); - if (!inputStream.markSupported()) { - throw new IllegalArgumentException("ByteReader is required to have a resettable stream"); //$NON-NLS-1$ - } - } - - public ByteReader(InputStream inputStream, int size) { - this.fInputStream = inputStream; - if (!inputStream.markSupported()) { - throw new IllegalArgumentException("ByteReader is required to have a resettable stream"); //$NON-NLS-1$ - } - this.fBuffer = new byte[size]; - - } - - public void close() throws IOException { - this.fInputStream.close(); - } - - public void mark(int readAheadLimit) { - this.fInputStream.mark(readAheadLimit); - } - - public boolean markSupported() { - return true; - } - - public int read() throws IOException { - int b0 = this.fInputStream.read(); - return (b0 & 0x00FF); - } - - public int read(char ch[], int offset, int length) throws IOException { - if (length > this.fBuffer.length) { - length = this.fBuffer.length; - } - - int count = this.fInputStream.read(this.fBuffer, 0, length); - - for (int i = 0; i < count; i++) { - int b0 = this.fBuffer[i]; - // the 0x00FF is to "lose" the negative bits filled in the byte to - // int conversion - // (and which would be there if cast directly from byte to char). - char c0 = (char) (b0 & 0x00FF); - ch[offset + i] = c0; - } - return count; - } - - public boolean ready() throws IOException { - return this.fInputStream.available() > 0; - } - - public void reset() throws IOException { - this.fInputStream.reset(); - } - - public long skip(long n) throws IOException { - return this.fInputStream.skip(n); - } - -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contenttype/CSSHeadTokenizer.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contenttype/CSSHeadTokenizer.java deleted file mode 100644 index 02c5eaf7e9..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contenttype/CSSHeadTokenizer.java +++ /dev/null @@ -1,1355 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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 - *******************************************************************************/ -/* The following code was generated by JFlex 1.2.2 on 1/27/04 6:42 PM */ - -/*nlsXXX*/ -package org.eclipse.wst.css.core.internal.contenttype; - -import java.io.IOException; -import java.io.Reader; - -import org.eclipse.wst.xml.core.internal.contenttype.EncodingParserConstants; -import org.eclipse.wst.xml.core.internal.contenttype.XMLHeadTokenizerConstants; - - -/** - * This class is a scanner generated by <a - * href="http://www.informatik.tu-muenchen.de/~kleing/jflex/">JFlex </a> 1.2.2 - * on 1/27/04 6:42 PM from the specification file - * <tt>file:/D:/DevTimeSupport/HeadParsers/CSSHeadTokenizer/CSSHeadTokenizer.jflex</tt> - */ -public class CSSHeadTokenizer { - - /** this character denotes the end of file */ - final public static int YYEOF = -1; - - /** lexical states */ - final public static int YYINITIAL = 0; - final public static int UnDelimitedString = 12; - final public static int DQ_STRING = 8; - final public static int SQ_STRING = 10; - final public static int ST_XMLDecl = 2; - final public static int QuotedAttributeValue = 6; - final public static int CHARSET_RULE = 4; - - /** - * YY_LEXSTATE[l] is the state in the DFA for the lexical state l - * YY_LEXSTATE[l+1] is the state in the DFA for the lexical state l at the - * beginning of a line l is of the form l = 2*k, k a non negative integer - */ - private final static int YY_LEXSTATE[] = {0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7}; - - /** - * Translates characters to character classes - */ - final private static String yycmap_packed = "\11\0\1\6\1\11\2\0\1\10\22\0\1\6\1\0\1\36\2\0" + "\1\41\1\0\1\37\7\0\1\40\13\0\1\35\1\12\1\7\1\34" + "\1\13\1\17\1\22\1\0\1\20\1\31\1\25\1\0\1\33\1\21" + "\1\32\2\0\1\16\1\15\1\27\1\30\2\0\1\23\1\24\1\26" + "\3\0\1\14\10\0\1\22\1\0\1\20\1\31\1\25\1\0\1\33" + "\1\21\1\32\2\0\1\16\1\15\1\27\1\30\2\0\1\23\1\24" + "\1\26\3\0\1\14\102\0\1\4\3\0\1\5\17\0\1\3\16\0" + "\1\1\20\0\1\3\16\0\1\1\1\2\170\0\1\2\ufe87\0"; - - /** - * Translates characters to character classes - */ - final private static char[] yycmap = yy_unpack_cmap(yycmap_packed); - - - /* error codes */ - final private static int YY_UNKNOWN_ERROR = 0; - final private static int YY_ILLEGAL_STATE = 1; - final private static int YY_NO_MATCH = 2; - final private static int YY_PUSHBACK_2BIG = 3; - - /* error messages for the codes above */ - final private static String YY_ERROR_MSG[] = {"Unkown internal scanner error", "Internal error: unknown state", "Error: could not match input", "Error: pushback value was too large"}; - - /** the input device */ - private java.io.Reader yy_reader; - - /** the current state of the DFA */ - private int yy_state; - - /** the current lexical state */ - private int yy_lexical_state = YYINITIAL; - - /** - * this buffer contains the current text to be matched and is the source - * of the yytext() string - */ - private char yy_buffer[] = new char[16384]; - - /** the textposition at the last accepting state */ - private int yy_markedPos; - - /** the textposition at the last state to be included in yytext */ - private int yy_pushbackPos; - - /** the current text position in the buffer */ - private int yy_currentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int yy_startRead; - - /** - * endRead marks the last character in the buffer, that has been read from - * input - */ - private int yy_endRead; - - - /** the number of characters up to the start of the matched text */ - private int yychar; - - - /** - * yy_atBOL == true <=>the scanner is currently at the beginning of a - * line - */ - private boolean yy_atBOL; - - /** yy_atEOF == true <=>the scanner has returned a value for EOF */ - private boolean yy_atEOF; - - /** denotes if the user-EOF-code has already been executed */ - private boolean yy_eof_done; - - /* user code: */ - - - private boolean hasMore = true; - private final static int MAX_TO_SCAN = 8000; - StringBuffer string = new StringBuffer(); - // state stack for easier state handling - private IntStack fStateStack = new IntStack(); - private String valueText = null; - - - - public CSSHeadTokenizer() { - super(); - } - - public void reset(Reader in) { - /* the input device */ - yy_reader = in; - - /* the current state of the DFA */ - yy_state = 0; - - /* the current lexical state */ - yy_lexical_state = YYINITIAL; - - /* - * this buffer contains the current text to be matched and is the - * source of the yytext() string - */ - java.util.Arrays.fill(yy_buffer, (char) 0); - - /* the textposition at the last accepting state */ - yy_markedPos = 0; - - /* the textposition at the last state to be included in yytext */ - yy_pushbackPos = 0; - - /* the current text position in the buffer */ - yy_currentPos = 0; - - /* startRead marks the beginning of the yytext() string in the buffer */ - yy_startRead = 0; - - /** - * endRead marks the last character in the buffer, that has been read - * from input - */ - yy_endRead = 0; - - - /* the number of characters up to the start of the matched text */ - yychar = 0; - - - /** - * yy_atBOL == true <=>the scanner is currently at the beginning of a - * line - */ - yy_atBOL = false; - - /* yy_atEOF == true <=> the scanner has returned a value for EOF */ - yy_atEOF = false; - - /* denotes if the user-EOF-code has already been executed */ - yy_eof_done = false; - - - fStateStack.clear(); - - hasMore = true; - - // its a little wasteful to "throw away" first char array generated - // by class init (via auto generated code), but we really do want - // a small buffer for our head parsers. - if (yy_buffer.length != MAX_TO_SCAN) { - yy_buffer = new char[MAX_TO_SCAN]; - } - - - } - - - public final HeadParserToken getNextToken() throws IOException { - String context = null; - context = primGetNextToken(); - HeadParserToken result = null; - if (valueText != null) { - result = createToken(context, yychar, valueText); - valueText = null; - } - else { - result = createToken(context, yychar, yytext()); - } - return result; - } - - public final boolean hasMoreTokens() { - return hasMore && yychar < MAX_TO_SCAN; - } - - private void pushCurrentState() { - fStateStack.push(yystate()); - - } - - private void popState() { - yybegin(fStateStack.pop()); - } - - private HeadParserToken createToken(String context, int start, String text) { - return new HeadParserToken(context, start, text); - } - - - - /** - * Creates a new scanner There is also a java.io.InputStream version of - * this constructor. - * - * @param in - * the java.io.Reader to read input from. - */ - public CSSHeadTokenizer(java.io.Reader in) { - this.yy_reader = in; - } - - /** - * Creates a new scanner. There is also java.io.Reader version of this - * constructor. - * - * @param in - * the java.io.Inputstream to read input from. - */ - public CSSHeadTokenizer(java.io.InputStream in) { - this(new java.io.InputStreamReader(in)); - } - - /** - * Unpacks the compressed character translation table. - * - * @param packed - * the packed character translation table - * @return the unpacked character translation table - */ - private static char[] yy_unpack_cmap(String packed) { - char[] map = new char[0x10000]; - int i = 0; /* index in packed string */ - int j = 0; /* index in unpacked array */ - while (i < 158) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do - map[j++] = value; - while (--count > 0); - } - return map; - } - - - /** - * Gets the next input character. - * - * @return the next character of the input stream, EOF if the end of the - * stream is reached. - * @exception IOException - * if any I/O-Error occurs - */ - private int yy_advance() throws java.io.IOException { - - /* standard case */ - if (yy_currentPos < yy_endRead) - return yy_buffer[yy_currentPos++]; - - /* if the eof is reached, we don't need to work hard */ - if (yy_atEOF) - return YYEOF; - - /* otherwise: need to refill the buffer */ - - /* first: make room (if you can) */ - if (yy_startRead > 0) { - System.arraycopy(yy_buffer, yy_startRead, yy_buffer, 0, yy_endRead - yy_startRead); - - /* translate stored positions */ - yy_endRead -= yy_startRead; - yy_currentPos -= yy_startRead; - yy_markedPos -= yy_startRead; - yy_pushbackPos -= yy_startRead; - yy_startRead = 0; - } - - /* is the buffer big enough? */ - if (yy_currentPos >= yy_buffer.length) { - /* if not: blow it up */ - char newBuffer[] = new char[yy_currentPos * 2]; - System.arraycopy(yy_buffer, 0, newBuffer, 0, yy_buffer.length); - yy_buffer = newBuffer; - } - - /* finally: fill the buffer with new input */ - int numRead = yy_reader.read(yy_buffer, yy_endRead, yy_buffer.length - yy_endRead); - - if (numRead == -1) - return YYEOF; - - yy_endRead += numRead; - - return yy_buffer[yy_currentPos++]; - } - - - /** - * Closes the input stream. - */ - final public void yyclose() throws java.io.IOException { - yy_atEOF = true; /* indicate end of file */ - yy_endRead = yy_startRead; /* invalidate buffer */ - yy_reader.close(); - } - - - /** - * Returns the current lexical state. - */ - final public int yystate() { - return yy_lexical_state; - } - - /** - * Enters a new lexical state - * - * @param newState - * the new lexical state - */ - final public void yybegin(int newState) { - yy_lexical_state = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - final public String yytext() { - return new String(yy_buffer, yy_startRead, yy_markedPos - yy_startRead); - } - - /** - * Returns the length of the matched text region. - */ - final public int yylength() { - return yy_markedPos - yy_startRead; - } - - - /** - * Reports an error that occured while scanning. - * - * @param errorCode - * the code of the errormessage to display - */ - private void yy_ScanError(int errorCode) { - try { - System.out.println(YY_ERROR_MSG[errorCode]); - } - catch (ArrayIndexOutOfBoundsException e) { - System.out.println(YY_ERROR_MSG[YY_UNKNOWN_ERROR]); - } - - System.exit(1); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number - * the number of characters to be read again. This number must - * not be greater than yylength()! - */ - private void yypushback(int number) { - if (number > yylength()) - yy_ScanError(YY_PUSHBACK_2BIG); - - yy_markedPos -= number; - } - - - /** - * Contains user EOF-code, which will be executed exactly once, when the - * end of file is reached - */ - private void yy_do_eof() { - if (!yy_eof_done) { - yy_eof_done = true; - hasMore = false; - - } - } - - - /** - * Resumes scanning until the next regular expression is matched, the end - * of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception IOException - * if any I/O-Error occurs - */ - public String primGetNextToken() throws java.io.IOException { - int yy_input; - int yy_action; - - - while (true) { - - yychar += yylength(); - - yy_atBOL = yy_markedPos <= 0 || yy_buffer[yy_markedPos - 1] == '\n'; - if (!yy_atBOL && yy_buffer[yy_markedPos - 1] == '\r') { - yy_atBOL = yy_advance() != '\n'; - if (!yy_atEOF) - yy_currentPos--; - } - - yy_action = -1; - - yy_currentPos = yy_startRead = yy_markedPos; - - if (yy_atBOL) - yy_state = YY_LEXSTATE[yy_lexical_state + 1]; - else - yy_state = YY_LEXSTATE[yy_lexical_state]; - - - yy_forAction : { - while (true) { - - yy_input = yy_advance(); - - if (yy_input == YYEOF) - break yy_forAction; - - yy_input = yycmap[yy_input]; - - boolean yy_isFinal = false; - boolean yy_noLookAhead = false; - - yy_forNext : { - switch (yy_state) { - case 0 : - switch (yy_input) { - case 1 : - yy_isFinal = true; - yy_state = 9; - break yy_forNext; - case 2 : - yy_isFinal = true; - yy_state = 10; - break yy_forNext; - case 3 : - yy_isFinal = true; - yy_state = 11; - break yy_forNext; - default : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 8; - break yy_forNext; - } - - case 1 : - switch (yy_input) { - case 1 : - yy_isFinal = true; - yy_state = 9; - break yy_forNext; - case 2 : - yy_isFinal = true; - yy_state = 10; - break yy_forNext; - case 3 : - yy_isFinal = true; - yy_state = 11; - break yy_forNext; - case 6 : - case 8 : - case 9 : - yy_isFinal = true; - yy_state = 12; - break yy_forNext; - case 10 : - yy_isFinal = true; - yy_state = 13; - break yy_forNext; - case 15 : - yy_isFinal = true; - yy_state = 14; - break yy_forNext; - default : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 8; - break yy_forNext; - } - - case 2 : - switch (yy_input) { - case 11 : - yy_isFinal = true; - yy_state = 15; - break yy_forNext; - case 21 : - yy_isFinal = true; - yy_state = 16; - break yy_forNext; - default : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 8; - break yy_forNext; - } - - case 3 : - switch (yy_input) { - case 6 : - case 8 : - case 9 : - yy_isFinal = true; - yy_state = 17; - break yy_forNext; - case 29 : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 18; - break yy_forNext; - default : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 8; - break yy_forNext; - } - - case 4 : - switch (yy_input) { - case 6 : - case 8 : - yy_isFinal = true; - yy_state = 20; - break yy_forNext; - case 9 : - yy_isFinal = true; - yy_state = 21; - break yy_forNext; - case 30 : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 22; - break yy_forNext; - case 31 : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 23; - break yy_forNext; - default : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 19; - break yy_forNext; - } - - case 5 : - switch (yy_input) { - case 8 : - case 9 : - case 10 : - case 28 : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 25; - break yy_forNext; - case 11 : - case 32 : - yy_isFinal = true; - yy_state = 26; - break yy_forNext; - case 29 : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 27; - break yy_forNext; - case 30 : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 28; - break yy_forNext; - default : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 24; - break yy_forNext; - } - - case 6 : - switch (yy_input) { - case 8 : - case 9 : - case 10 : - case 28 : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 25; - break yy_forNext; - case 32 : - yy_isFinal = true; - yy_state = 26; - break yy_forNext; - case 29 : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 27; - break yy_forNext; - case 31 : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 28; - break yy_forNext; - case 33 : - yy_isFinal = true; - yy_state = 29; - break yy_forNext; - default : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 24; - break yy_forNext; - } - - case 7 : - switch (yy_input) { - case 10 : - case 28 : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 25; - break yy_forNext; - case 32 : - yy_isFinal = true; - yy_state = 26; - break yy_forNext; - case 11 : - yy_isFinal = true; - yy_state = 29; - break yy_forNext; - case 6 : - case 8 : - case 9 : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 30; - break yy_forNext; - case 29 : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 31; - break yy_forNext; - case 30 : - case 31 : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 32; - break yy_forNext; - default : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 24; - break yy_forNext; - } - - case 9 : - switch (yy_input) { - case 2 : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 33; - break yy_forNext; - default : - break yy_forAction; - } - - case 10 : - switch (yy_input) { - case 1 : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 34; - break yy_forNext; - default : - break yy_forAction; - } - - case 11 : - switch (yy_input) { - case 4 : - yy_state = 35; - break yy_forNext; - default : - break yy_forAction; - } - - case 12 : - switch (yy_input) { - case 6 : - case 8 : - case 9 : - yy_state = 36; - break yy_forNext; - case 10 : - yy_state = 37; - break yy_forNext; - case 15 : - yy_state = 38; - break yy_forNext; - default : - break yy_forAction; - } - - case 13 : - switch (yy_input) { - case 11 : - yy_state = 39; - break yy_forNext; - default : - break yy_forAction; - } - - case 14 : - switch (yy_input) { - case 16 : - yy_state = 40; - break yy_forNext; - default : - break yy_forAction; - } - - case 15 : - switch (yy_input) { - case 28 : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 41; - break yy_forNext; - default : - break yy_forAction; - } - - case 16 : - switch (yy_input) { - case 23 : - yy_state = 42; - break yy_forNext; - default : - break yy_forAction; - } - - case 17 : - switch (yy_input) { - case 6 : - case 8 : - case 9 : - yy_isFinal = true; - yy_state = 17; - break yy_forNext; - default : - break yy_forAction; - } - - case 20 : - switch (yy_input) { - case 6 : - case 8 : - yy_isFinal = true; - yy_state = 20; - break yy_forNext; - case 9 : - yy_state = 43; - break yy_forNext; - default : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 19; - break yy_forNext; - } - - case 21 : - switch (yy_input) { - case 6 : - case 8 : - yy_isFinal = true; - yy_state = 20; - break yy_forNext; - case 9 : - yy_state = 43; - break yy_forNext; - default : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 19; - break yy_forNext; - } - - case 26 : - switch (yy_input) { - case 28 : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 44; - break yy_forNext; - default : - break yy_forAction; - } - - case 29 : - switch (yy_input) { - case 28 : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 45; - break yy_forNext; - default : - break yy_forAction; - } - - case 35 : - switch (yy_input) { - case 5 : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 46; - break yy_forNext; - default : - break yy_forAction; - } - - case 36 : - switch (yy_input) { - case 6 : - case 8 : - case 9 : - yy_state = 36; - break yy_forNext; - case 10 : - yy_state = 37; - break yy_forNext; - case 15 : - yy_state = 38; - break yy_forNext; - default : - break yy_forAction; - } - - case 37 : - switch (yy_input) { - case 11 : - yy_state = 39; - break yy_forNext; - default : - break yy_forAction; - } - - case 38 : - switch (yy_input) { - case 16 : - yy_state = 40; - break yy_forNext; - default : - break yy_forAction; - } - - case 39 : - switch (yy_input) { - case 12 : - yy_state = 47; - break yy_forNext; - default : - break yy_forAction; - } - - case 40 : - switch (yy_input) { - case 17 : - yy_state = 48; - break yy_forNext; - default : - break yy_forAction; - } - - case 42 : - switch (yy_input) { - case 16 : - yy_state = 49; - break yy_forNext; - default : - break yy_forAction; - } - - case 43 : - switch (yy_input) { - case 6 : - case 8 : - yy_isFinal = true; - yy_state = 20; - break yy_forNext; - case 9 : - yy_state = 43; - break yy_forNext; - default : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 19; - break yy_forNext; - } - - case 47 : - switch (yy_input) { - case 13 : - yy_state = 50; - break yy_forNext; - default : - break yy_forAction; - } - - case 48 : - switch (yy_input) { - case 18 : - yy_state = 51; - break yy_forNext; - default : - break yy_forAction; - } - - case 49 : - switch (yy_input) { - case 24 : - yy_state = 52; - break yy_forNext; - default : - break yy_forAction; - } - - case 50 : - switch (yy_input) { - case 14 : - yy_state = 53; - break yy_forNext; - default : - break yy_forAction; - } - - case 51 : - switch (yy_input) { - case 19 : - yy_state = 54; - break yy_forNext; - default : - break yy_forAction; - } - - case 52 : - switch (yy_input) { - case 25 : - yy_state = 55; - break yy_forNext; - default : - break yy_forAction; - } - - case 53 : - switch (yy_input) { - case 6 : - case 8 : - case 9 : - yy_isFinal = true; - yy_state = 56; - break yy_forNext; - default : - break yy_forAction; - } - - case 54 : - switch (yy_input) { - case 20 : - yy_state = 57; - break yy_forNext; - default : - break yy_forAction; - } - - case 55 : - switch (yy_input) { - case 26 : - yy_state = 58; - break yy_forNext; - default : - break yy_forAction; - } - - case 56 : - switch (yy_input) { - case 6 : - case 8 : - case 9 : - yy_isFinal = true; - yy_state = 56; - break yy_forNext; - default : - break yy_forAction; - } - - case 57 : - switch (yy_input) { - case 21 : - yy_state = 59; - break yy_forNext; - default : - break yy_forAction; - } - - case 58 : - switch (yy_input) { - case 23 : - yy_state = 60; - break yy_forNext; - default : - break yy_forAction; - } - - case 59 : - switch (yy_input) { - case 22 : - yy_isFinal = true; - yy_noLookAhead = true; - yy_state = 61; - break yy_forNext; - default : - break yy_forAction; - } - - case 60 : - switch (yy_input) { - case 27 : - yy_state = 62; - break yy_forNext; - default : - break yy_forAction; - } - - case 62 : - switch (yy_input) { - case 6 : - case 8 : - case 9 : - yy_state = 62; - break yy_forNext; - case 7 : - yy_isFinal = true; - yy_state = 63; - break yy_forNext; - default : - break yy_forAction; - } - - case 63 : - switch (yy_input) { - case 6 : - case 8 : - case 9 : - yy_isFinal = true; - yy_state = 63; - break yy_forNext; - default : - break yy_forAction; - } - - default : - yy_ScanError(YY_ILLEGAL_STATE); - break; - } - } - - if (yy_isFinal) { - yy_action = yy_state; - yy_markedPos = yy_currentPos; - if (yy_noLookAhead) - break yy_forAction; - } - - } - } - - - switch (yy_action) { - - case 45 : { - yypushback(2); - popState(); - valueText = string.toString(); - return EncodingParserConstants.InvalidTerminatedStringValue; - } - case 65 : - break; - case 25 : { - yypushback(1); - popState(); - valueText = string.toString(); - return EncodingParserConstants.InvalidTerminatedStringValue; - } - case 66 : - break; - case 19 : - case 20 : { - yypushback(1); - yybegin(UnDelimitedString); - string.setLength(0); - } - case 67 : - break; - case 18 : { - yybegin(YYINITIAL); - hasMore = false; - return CSSHeadTokenizerConstants.RuleEnd; - } - case 68 : - break; - case 32 : { - yypushback(1); - popState(); - valueText = string.toString(); - return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue; - } - case 69 : - break; - case 44 : { - yypushback(2); - popState(); - valueText = string.toString(); - return EncodingParserConstants.InvalidTerminatedStringValue; - } - case 70 : - break; - case 61 : { - if (yychar == 0) { - yybegin(CHARSET_RULE); - return CSSHeadTokenizerConstants.CHARSET_RULE; - } - } - case 71 : - break; - case 56 : { - if (yychar == 0) { - yybegin(ST_XMLDecl); - return XMLHeadTokenizerConstants.XMLDeclStart; - } - } - case 72 : - break; - case 8 : - case 9 : - case 10 : - case 11 : - case 12 : - case 13 : - case 14 : - case 15 : - case 16 : - case 21 : { - if (yychar > MAX_TO_SCAN) { - hasMore = false; - return EncodingParserConstants.MAX_CHARS_REACHED; - } - } - case 73 : - break; - case 41 : { - yybegin(YYINITIAL); - return XMLHeadTokenizerConstants.XMLDeclEnd; - } - case 74 : - break; - case 63 : { - pushCurrentState(); - yybegin(QuotedAttributeValue); - return XMLHeadTokenizerConstants.XMLDelEncoding; - } - case 75 : - break; - case 3 : - case 17 : { - pushCurrentState(); - yybegin(QuotedAttributeValue); - } - case 76 : - break; - case 46 : { - hasMore = false; - return EncodingParserConstants.UTF83ByteBOM; - } - case 77 : - break; - case 33 : { - hasMore = false; - return EncodingParserConstants.UTF16BE; - } - case 78 : - break; - case 34 : { - hasMore = false; - return EncodingParserConstants.UTF16LE; - } - case 79 : - break; - case 24 : - case 26 : - case 29 : { - string.append(yytext()); - } - case 80 : - break; - case 23 : { - yybegin(SQ_STRING); - string.setLength(0); - } - case 81 : - break; - case 22 : { - yybegin(DQ_STRING); - string.setLength(0); - } - case 82 : - break; - case 27 : { - yypushback(1); - popState(); - valueText = string.toString(); - return EncodingParserConstants.InvalidTerminatedStringValue; - } - case 83 : - break; - case 28 : { - popState(); - valueText = string.toString(); - return EncodingParserConstants.StringValue; - } - case 84 : - break; - case 30 : { - yypushback(1); - popState(); - valueText = string.toString(); - return EncodingParserConstants.UnDelimitedStringValue; - } - case 85 : - break; - case 31 : { - yypushback(1); - popState(); - valueText = string.toString(); - return EncodingParserConstants.UnDelimitedStringValue; - } - case 86 : - break; - default : - if (yy_input == YYEOF && yy_startRead == yy_currentPos) { - yy_atEOF = true; - yy_do_eof(); - { - hasMore = false; - return EncodingParserConstants.EOF; - } - } - else { - yy_ScanError(YY_NO_MATCH); - } - } - } - } - - /** - * Runs the scanner on input files. - * - * This main method is the debugging routine for the scanner. It prints - * each returned token to System.out until the end of file is reached, or - * an error occured. - * - * @param argv - * the command line, contains the filenames to run the scanner - * on. - */ - public static void main(String argv[]) { - for (int i = 0; i < argv.length; i++) { - CSSHeadTokenizer scanner = null; - try { - scanner = new CSSHeadTokenizer(new java.io.FileReader(argv[i])); - } - catch (java.io.FileNotFoundException e) { - System.out.println("File not found : \"" + argv[i] + "\""); - System.exit(1); - } - catch (ArrayIndexOutOfBoundsException e) { - System.out.println("Usage : java CSSHeadTokenizer <inputfile>"); - System.exit(1); - } - - try { - do { - System.out.println(scanner.primGetNextToken()); - } - while (!scanner.yy_atEOF); - - } - catch (java.io.IOException e) { - System.out.println("An I/O error occured while scanning :"); - System.out.println(e); - System.exit(1); - } - catch (Exception e) { - e.printStackTrace(); - System.exit(1); - } - } - } - - -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contenttype/CSSHeadTokenizerConstants.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contenttype/CSSHeadTokenizerConstants.java deleted file mode 100644 index a991a03fa9..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contenttype/CSSHeadTokenizerConstants.java +++ /dev/null @@ -1,19 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.contenttype; - - -public interface CSSHeadTokenizerConstants { - - String RuleEnd = "RuleEnd"; //$NON-NLS-1$ - String CHARSET_RULE = "CHARSET_RULE"; //$NON-NLS-1$ - -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contenttype/CSSResourceEncodingDetector.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contenttype/CSSResourceEncodingDetector.java deleted file mode 100644 index 1562f6f02f..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contenttype/CSSResourceEncodingDetector.java +++ /dev/null @@ -1,368 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.contenttype; - -import java.io.BufferedInputStream; -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.Reader; -import java.nio.charset.Charset; -import java.nio.charset.IllegalCharsetNameException; -import java.nio.charset.UnsupportedCharsetException; - -import org.eclipse.core.resources.IStorage; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.wst.sse.core.internal.encoding.CodedIO; -import org.eclipse.wst.sse.core.internal.encoding.EncodingMemento; -import org.eclipse.wst.sse.core.internal.encoding.IResourceCharsetDetector; -import org.eclipse.wst.sse.core.internal.encoding.NonContentBasedEncodingRules; -import org.eclipse.wst.xml.core.internal.contenttype.EncodingParserConstants; - - - -public class CSSResourceEncodingDetector implements IResourceCharsetDetector { - class NullMemento extends EncodingMemento { - /** - * - */ - public NullMemento() { - super(); - String defaultCharset = NonContentBasedEncodingRules.useDefaultNameRules(null); - setJavaCharsetName(defaultCharset); - setAppropriateDefault(defaultCharset); - setDetectedCharsetName(null); - } - } - - - private CSSHeadTokenizer fTokenizer; - private EncodingMemento fEncodingMemento; - private boolean fHeaderParsed; - private Reader fReader; - - /** - * There is no spec defined encoding for CSS, so Null is returned. - */ - public String getSpecDefaultEncoding() { - // should match what's in plugin.xml (or look it up from there). - return null; - } - - private boolean canHandleAsUnicodeStream(String tokenType) { - boolean canHandleAsUnicodeStream = false; - if (tokenType == EncodingParserConstants.UTF83ByteBOM) { - canHandleAsUnicodeStream = true; - String enc = "UTF-8"; //$NON-NLS-1$ - createEncodingMemento(enc, EncodingMemento.DETECTED_STANDARD_UNICODE_BYTES); - fEncodingMemento.setUTF83ByteBOMUsed(true); - } - else if (tokenType == EncodingParserConstants.UTF16BE) { - canHandleAsUnicodeStream = true; - String enc = "UTF-16BE"; //$NON-NLS-1$ - createEncodingMemento(enc, EncodingMemento.DETECTED_STANDARD_UNICODE_BYTES); - } - else if (tokenType == EncodingParserConstants.UTF16LE) { - canHandleAsUnicodeStream = true; - String enc = "UTF-16"; //$NON-NLS-1$ - createEncodingMemento(enc, EncodingMemento.DETECTED_STANDARD_UNICODE_BYTES); - } - return canHandleAsUnicodeStream; - } - - /** - * @return Returns the tokenizer. - */ - private CSSHeadTokenizer getTokenizer() { - if (fTokenizer == null) { - fTokenizer = new CSSHeadTokenizer(); - } - return fTokenizer; - } - - private boolean isLegalString(String valueTokenType) { - boolean result = false; - if (valueTokenType != null) { - result = valueTokenType.equals(EncodingParserConstants.StringValue) || valueTokenType.equals(EncodingParserConstants.UnDelimitedStringValue) || valueTokenType.equals(EncodingParserConstants.InvalidTerminatedStringValue) || valueTokenType.equals(EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue); - } - return result; - } - - private void parseInput() throws IOException { - checkInContents(); - if (fEncodingMemento == null) { - checkHeuristics(); - } - } - - private void checkInContents() throws IOException { - CSSHeadTokenizer tokenizer = getTokenizer(); - tokenizer.reset(fReader); - HeadParserToken token = null; - String tokenType = null; - do { - token = tokenizer.getNextToken(); - tokenType = token.getType(); - if (canHandleAsUnicodeStream(tokenType)) { - // side effect of canHandle is to create appropriate memento - } - else if (tokenType == CSSHeadTokenizerConstants.CHARSET_RULE) { - if (tokenizer.hasMoreTokens()) { - HeadParserToken valueToken = tokenizer.getNextToken(); - String valueTokenType = valueToken.getType(); - if (isLegalString(valueTokenType)) { - createEncodingMemento(valueToken.getText(), EncodingMemento.FOUND_ENCODING_IN_CONTENT); - - } - } - } - - } - while (tokenizer.hasMoreTokens()); - } - - /** - * - */ - private void checkHeuristics() throws IOException { - boolean noHeuristic = false; - String heuristicEncoding = null; - try { - fReader.reset(); - byte[] bytes = new byte[3]; - int nRead = 0; - for (int i = 0; i < bytes.length; i++) { - if (fReader.ready()) { - int oneByte = fReader.read(); - nRead++; - if (oneByte <= 0xFF) { - bytes[i] = (byte) oneByte; - } - else { - noHeuristic = true; - } - } - else { - noHeuristic = true; - break; - } - } - if (!noHeuristic && nRead == 3) { - heuristicEncoding = EncodingGuesser.guessEncoding(bytes, 3); - } - } - catch (IOException e) { - // if any IO exception, then not a heuristic case - } - finally { - fReader.reset(); - } - if (heuristicEncoding != null) { - createEncodingMemento(heuristicEncoding, EncodingMemento.GUESSED_ENCODING_FROM_STREAM); - } - - } - - /** - * Note: once this instance is created, trace info still needs to be - * appended by caller, depending on the context its created. - */ - private void createEncodingMemento(String detectedCharsetName) { - fEncodingMemento = new EncodingMemento(); - fEncodingMemento.setJavaCharsetName(getAppropriateJavaCharset(detectedCharsetName)); - fEncodingMemento.setDetectedCharsetName(detectedCharsetName); - // TODO: if detectedCharset and spec default is - // null, need to use "work - // bench based" defaults. - fEncodingMemento.setAppropriateDefault(getSpecDefaultEncoding()); - } - - /** - * convience method all subclasses can use (but not override) - * - * @param detectedCharsetName - * @param reason - */ - private void createEncodingMemento(String detectedCharsetName, String reason) { - createEncodingMemento(detectedCharsetName); - } - - /** - * convience method all subclasses can use (but not override) - */ - private final void ensureInputSet() { - if (fReader == null) { - throw new IllegalStateException("input must be set before use"); //$NON-NLS-1$ - } - } - - /** - * This method can return null, if invalid charset name (in which case - * "appropriateDefault" should be used, if a name is really need for some - * "save anyway" cases). - * - * @param detectedCharsetName - * @return - */ - private String getAppropriateJavaCharset(String detectedCharsetName) { - String result = null; - // 1. Check explicit mapping overrides from - // property file -- its here we pick up "rules" for cases - // that are not even in Java - result = CodedIO.checkMappingOverrides(detectedCharsetName); - // 2. Use the "canonical" name from JRE mappings - // Note: see Charset JavaDoc, the name you get one - // with can be alias, - // the name you get back is "standard" name. - Charset javaCharset = null; - try { - javaCharset = Charset.forName(detectedCharsetName); - } - catch (UnsupportedCharsetException e) { - // only set invalid, if result is same as detected -- they won't - // be equal if - // overridden - if (result != null && result.equals(detectedCharsetName)) { - fEncodingMemento.setInvalidEncoding(detectedCharsetName); - } - } - catch (IllegalCharsetNameException e) { - // only set invalid, if result is same as detected -- they won't - // be equal if - // overridden - if (result != null && result.equals(detectedCharsetName)) { - fEncodingMemento.setInvalidEncoding(detectedCharsetName); - } - } - // give priority to java cononical name, if present - if (javaCharset != null) { - result = javaCharset.name(); - // but still allow overrides - result = CodedIO.checkMappingOverrides(result); - } - return result; - } - - public String getEncoding() throws IOException { - return getEncodingMemento().getDetectedCharsetName(); - } - - public EncodingMemento getEncodingMemento() throws IOException { - ensureInputSet(); - if (!fHeaderParsed) { - parseInput(); - // we keep track of if header's already been - // parse, so can make - // multiple 'get' calls, without causing - // reparsing. - fHeaderParsed = true; - // Note: there is a "hidden assumption" here - // that an empty - // string in content should be treated same as - // not present. - } - if (fEncodingMemento == null) { - handleSpecDefault(); - } - if (fEncodingMemento == null) { - // safty net - fEncodingMemento = new NullMemento(); - } - return fEncodingMemento; - } - - public EncodingMemento getSpecDefaultEncodingMemento() { - resetAll(); - EncodingMemento result = null; - String enc = getSpecDefaultEncoding(); - if (enc != null) { - createEncodingMemento(enc, EncodingMemento.DEFAULTS_ASSUMED_FOR_EMPTY_INPUT); - fEncodingMemento.setAppropriateDefault(enc); - result = fEncodingMemento; - } - return result; - } - - private void handleSpecDefault() { - String encodingName; - encodingName = getSpecDefaultEncoding(); - if (encodingName != null) { - // createEncodingMemento(encodingName, - // EncodingMemento.USED_CONTENT_TYPE_DEFAULT); - fEncodingMemento = new EncodingMemento(); - fEncodingMemento.setJavaCharsetName(encodingName); - fEncodingMemento.setAppropriateDefault(encodingName); - } - } - - /** - * - */ - private void resetAll() { - fReader = null; - fHeaderParsed = false; - fEncodingMemento = null; - } - - /** - * - */ - public void set(InputStream inputStream) { - resetAll(); - fReader = new ByteReader(inputStream); - try { - fReader.mark(CodedIO.MAX_MARK_SIZE); - } - catch (IOException e) { - // impossible, since we know ByteReader - // supports marking - throw new Error(e); - } - } - - /** - * - */ - public void set(IStorage iStorage) throws CoreException { - resetAll(); - InputStream inputStream = iStorage.getContents(); - InputStream resettableStream = new BufferedInputStream(inputStream, CodedIO.MAX_BUF_SIZE); - resettableStream.mark(CodedIO.MAX_MARK_SIZE); - set(resettableStream); - // TODO we'll need to "remember" IFile, or - // get its (or its project's) settings, in case - // those are needed to handle cases when the - // encoding is not in the file stream. - } - - /** - * Note: this is not part of interface to help avoid confusion ... it - * expected this Reader is a well formed character reader ... that is, its - * all ready been determined to not be a unicode marked input stream. And, - * its assumed to be in the correct position, at position zero, ready to - * read first character. - */ - public void set(Reader reader) { - resetAll(); - fReader = reader; - if (!fReader.markSupported()) { - fReader = new BufferedReader(fReader); - } - try { - fReader.mark(CodedIO.MAX_MARK_SIZE); - } - catch (IOException e) { - // impossble, since we just checked if markable - throw new Error(e); - } - } - -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contenttype/ContentDescriberForCSS.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contenttype/ContentDescriberForCSS.java deleted file mode 100644 index d04863d3ae..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contenttype/ContentDescriberForCSS.java +++ /dev/null @@ -1,200 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.contenttype; - -import java.io.IOException; -import java.io.InputStream; -import java.io.Reader; - -import org.eclipse.core.runtime.QualifiedName; -import org.eclipse.core.runtime.content.IContentDescriber; -import org.eclipse.core.runtime.content.IContentDescription; -import org.eclipse.core.runtime.content.ITextContentDescriber; -import org.eclipse.wst.sse.core.internal.encoding.EncodingMemento; -import org.eclipse.wst.sse.core.internal.encoding.IContentDescriptionExtended; -import org.eclipse.wst.sse.core.internal.encoding.IResourceCharsetDetector; - - -public final class ContentDescriberForCSS implements ITextContentDescriber { - final private static QualifiedName[] SUPPORTED_OPTIONS = {IContentDescription.CHARSET, IContentDescription.BYTE_ORDER_MARK, IContentDescriptionExtended.DETECTED_CHARSET, IContentDescriptionExtended.UNSUPPORTED_CHARSET, IContentDescriptionExtended.APPROPRIATE_DEFAULT}; - - public int describe(InputStream contents, IContentDescription description) throws IOException { - int result = IContentDescriber.INDETERMINATE; - - if (description == null) { - result = computeValidity(contents); - } - else { - calculateSupportedOptions(contents, description); - result = computeValidity(contents); - } - return result; - } - - public int describe(Reader contents, IContentDescription description) throws IOException { - int result = IContentDescriber.INDETERMINATE; - - if (description == null) { - result = computeValidity(contents); - } - else { - calculateSupportedOptions(contents, description); - result = computeValidity(contents); - } - return result; - } - - public QualifiedName[] getSupportedOptions() { - - return SUPPORTED_OPTIONS; - } - - private void calculateSupportedOptions(InputStream contents, IContentDescription description) throws IOException { - if (isRelevent(description)) { - IResourceCharsetDetector detector = getDetector(); - detector.set(contents); - handleCalculations(description, detector); - } - } - - /** - * @param contents - * @param description - * @throws IOException - */ - private void calculateSupportedOptions(Reader contents, IContentDescription description) throws IOException { - if (isRelevent(description)) { - IResourceCharsetDetector detector = getDetector(); - detector.set(contents); - handleCalculations(description, detector); - } - } - - private int computeValidity(InputStream inputStream) { - // currently no specific check for validilty - // based on contents. - return IContentDescriber.INDETERMINATE; - } - - private int computeValidity(Reader reader) { - // currently no specific check for validilty - // based on contents. - return IContentDescriber.INDETERMINATE; - } - - private IResourceCharsetDetector getDetector() { - return new CSSResourceEncodingDetector(); - } - - /** - * @param description - * @param detector - * @throws IOException - */ - private void handleCalculations(IContentDescription description, IResourceCharsetDetector detector) throws IOException { - // note: if we're asked for one, we set them all. I need to be sure if - // called - // mulitiple times (one for each, say) that we don't waste time - // processing same - // content again. - EncodingMemento encodingMemento = ((CSSResourceEncodingDetector) detector).getEncodingMemento(); - // TODO: I need to verify to see if this BOM work is always done - // by text type. - Object detectedByteOrderMark = encodingMemento.getUnicodeBOM(); - if (detectedByteOrderMark != null) { - Object existingByteOrderMark = description.getProperty(IContentDescription.BYTE_ORDER_MARK); - // not sure why would ever be different, so if is different, may - // need to "push" up into base. - if (!detectedByteOrderMark.equals(existingByteOrderMark)) - description.setProperty(IContentDescription.BYTE_ORDER_MARK, detectedByteOrderMark); - } - - - if (!encodingMemento.isValid()) { - // note: after setting here, its the mere presence of - // IContentDescriptionExtended.UNSUPPORTED_CHARSET - // in the resource's description that can be used to determine if - // invalid - // in those cases, the "detected" property contains an - // "appropriate default" to use. - description.setProperty(IContentDescriptionExtended.UNSUPPORTED_CHARSET, encodingMemento.getInvalidEncoding()); - description.setProperty(IContentDescriptionExtended.APPROPRIATE_DEFAULT, encodingMemento.getAppropriateDefault()); - } - - Object detectedCharset = encodingMemento.getDetectedCharsetName(); - Object javaCharset = encodingMemento.getJavaCharsetName(); - - // we always include detected, if its different than java - handleDetectedSpecialCase(description, detectedCharset, javaCharset); - - if (javaCharset != null) { - Object existingCharset = description.getProperty(IContentDescription.CHARSET); - if (javaCharset.equals(existingCharset)) { - handleDetectedSpecialCase(description, detectedCharset, javaCharset); - } - else { - // we may need to add what we found, but only need to add - // if different from default.the - Object defaultCharset = getDetector().getSpecDefaultEncoding(); - if (defaultCharset != null) { - if (!defaultCharset.equals(javaCharset)) { - description.setProperty(IContentDescription.CHARSET, javaCharset); - } - } - else { - // assuming if there is no spec default, we always need to - // add, I'm assuming - description.setProperty(IContentDescription.CHARSET, javaCharset); - } - } - } - - } - - private void handleDetectedSpecialCase(IContentDescription description, Object detectedCharset, Object javaCharset) { - // since equal, we don't need to add, but if our detected version is - // different than javaCharset, then we should add it. This will - // happen, for example, if there's differences in case, or differences - // due to override properties - if (detectedCharset != null) { - - // Once we detected a charset, we should set the property even - // though it's the same as javaCharset - // because there are clients that rely on this property to - // determine if the charset is actually detected in file or not. - description.setProperty(IContentDescriptionExtended.DETECTED_CHARSET, detectedCharset); - } - } - - /** - * @param description - * @return - */ - private boolean isRelevent(IContentDescription description) { - boolean result = false; - if (description == null) - result = false; - else if (description.isRequested(IContentDescription.BYTE_ORDER_MARK)) - result = true; - else if (description.isRequested(IContentDescription.CHARSET)) - result = true; - else if (description.isRequested(IContentDescriptionExtended.APPROPRIATE_DEFAULT)) - result = true; - else if (description.isRequested(IContentDescriptionExtended.DETECTED_CHARSET)) - result = true; - else if (description.isRequested(IContentDescriptionExtended.UNSUPPORTED_CHARSET)) - result = true; - // else if - // (description.isRequested(IContentDescriptionExtended.ENCODING_MEMENTO)) - // result = true; - return result; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contenttype/EncodingGuesser.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contenttype/EncodingGuesser.java deleted file mode 100644 index 130800eec8..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contenttype/EncodingGuesser.java +++ /dev/null @@ -1,173 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 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.css.core.internal.contenttype; - -/** - * - * This is ported from PageDesigner's hpbcom/Kanji.cpp's - * Kanji::guess_kanji_code(), - * - */ -public class EncodingGuesser { - private static final int ASCII = 0; // ASCII - // ISO-2022-JP - private static final int ASCII_IN = 8; // This is after ISO2022's change - // Shift-JIS - private static final int EUC_HALFKANA = 6; // This is Half Kana in EUC-JP - private static final int EUC_JP = 3; // This is EUC-JP - private static final int ISO2022_JP = 4; // This is ISO-2022-JP - private static final int JIS_HALFKANA = 7; // THis is Half Kana in - private static final byte KT_EUC1 = 0x40; - private static final byte KT_EUC2 = (byte) 0x80; - // ASCII - private static final byte KT_JIN = 0x01; - private static final byte KT_JOUT = 0x02; - // private static final byte KT_ESC = 0x04; - // private static final byte KT_JIS = 0x08; - private static final byte KT_SFT1 = 0x10; - private static final byte KT_SFT2 = 0x20; - private static final byte ktype[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 00 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 10 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x09, 0x08, 0x08, 0x08, /* !"#$%&' *//* " */ - 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, /* ()*+,-./ */ - 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, /* 01234567 */ - 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, /* 89:; <=>? */ - 0x29, 0x28, 0x2b, 0x28, 0x28, 0x28, 0x28, 0x28, /* @ABCDEFG */ - 0x2a, 0x28, 0x2a, 0x28, 0x28, 0x28, 0x28, 0x28, /* HIJKLMNO */ - 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, /* PQRSTUVW */ - 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, /* XYZ[\]^_ */ - 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, /* abcdefg */ - 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, /* hijklmno */ - 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, /* pqrstuvw */ - 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x00, /* xyz{|}~ */ - 0x20, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, /* 80 */ - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, /* 90 */ - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x20, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, /* A0 */ - (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, /* B0 */ - (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, /* C0 */ - (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, /* D0 */ - (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xe0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, /* E0 */ - (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, /* F0 */ - (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xf0, (byte) 0xc0, (byte) 0xc0, 0x00,}; - // private static final int ISO8859_1 = 1; // ISO-1 - private static final int SHIFT_JIS = 2; // This is Shift-JIS - private static final int SJIS_HALFKANA = 5; // This is Half Kana in - - /** - * Currently, only Japanese encodings are supported. - */ - private static final int UNKNOWN = -1; // Unknown - - /** - * @return java.lang.String - * @param code - * int - * - * Convert private int to IANA Encoding name. - */ - private static String convertToIANAEncodingName(int code) { - String encoding = null; - - switch (code) { - case SHIFT_JIS : - case SJIS_HALFKANA : - encoding = "Shift_JIS";//$NON-NLS-1$ - break; - case EUC_JP : - case EUC_HALFKANA : - encoding = "EUC-JP";//$NON-NLS-1$ - break; - case ISO2022_JP : - case JIS_HALFKANA : - encoding = "ISO-2022-JP";//$NON-NLS-1$ - default : - break; - } - - return encoding; - } - - /** - * Return guessed Java Encoding name target: bytes to be inspected length: - * length of target - */ - public static String guessEncoding(byte[] target, int length) { - int code = UNKNOWN; - - // Currently, only Japanese is supported. - String system_ctype = java.util.Locale.getDefault().getLanguage(); - String jp_ctype = java.util.Locale.JAPANESE.getLanguage(); - if (system_ctype.compareTo(jp_ctype) == 0) { - // Ok, I'm under ja_JP. - code = ASCII; - int pos = 0; - while ((code == ASCII) && (length > 0)) { - int ch1 = target[pos]; - ch1 = ch1 & 0x000000FF; - int ch2 = (length >= 2) ? target[pos + 1] : 0; - ch2 = ch2 & 0x000000FF; - int ch3 = (length >= 3) ? target[pos + 2] : 0; - ch3 = ch3 & 0x000000FF; - code = guessJapaneseKanjiCode(ch1, ch2, ch3, 0); - pos++; - length--; - } - switch (code) { - case ISO2022_JP : - case JIS_HALFKANA : - code = ISO2022_JP; - break; - case EUC_JP : - code = EUC_JP; - break; - default : - code = SHIFT_JIS; - } - } - return (convertToIANAEncodingName(code)); - } - - /** - * Guess the encoding. halfkana_flag = 0x01 ( detect SJIS half kana ) - * halfkana_flag = 0x02 ( detect EUC half kana ) - */ - private static int guessJapaneseKanjiCode(int ch1, int ch2, int ch3, int halfkana_flag) { - boolean sjis_hankaku_flag = ((halfkana_flag & 0x01) != 0) ? true : false; - boolean euc_hankaku_flag = ((halfkana_flag & 0x02) != 0) ? true : false; - - if (ch1 == 0) - return UNKNOWN; - if (sjis_hankaku_flag && ch1 >= 0xa1 && ch1 <= 0xdf) - return SJIS_HALFKANA; - else if (euc_hankaku_flag && ch1 == 0x8e && ch2 >= 0xa1 && ch2 <= 0xdf) - return EUC_HALFKANA; - else if (((ktype[ch1] & KT_SFT1) != 0) && ((ktype[ch2] & KT_SFT2) != 0)) - return SHIFT_JIS; - else if (((ktype[ch1] & KT_EUC1) != 0) && ((ktype[ch2] & KT_EUC2) != 0)) - return EUC_JP; - else if (ch1 == 0x1b && ((ktype[ch2] & KT_JIN) != 0)) - return ISO2022_JP; - else if (ch1 >= 0xa1 && ch1 <= 0xdf) - return SJIS_HALFKANA; - else if (ch1 == 0x1b && ch2 == 0x28/* '(' */&& ch3 == 0x49/* 'I' */) - return JIS_HALFKANA; - else if (ch1 == 0x1b && ch2 == 0x28/* '(' */&& ((ktype[ch3] & KT_JOUT) != 0)) - return ASCII_IN; - - return ASCII; - } - - public EncodingGuesser() { - super(); - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contenttype/HeadParserToken.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contenttype/HeadParserToken.java deleted file mode 100644 index 51dc01cce1..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contenttype/HeadParserToken.java +++ /dev/null @@ -1,44 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 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.css.core.internal.contenttype; - -public class HeadParserToken { - private int fStart; - - private String fText; - private String fType; - - protected HeadParserToken() { - super(); - } - - public HeadParserToken(String type, int start, String text) { - this(); - fType = type; - fStart = start; - fText = text; - - } - - public String getText() { - return fText; - } - - public String getType() { - return fType; - } - - public String toString() { - return ("text: " + fText + " offset: " + fStart + " type: " + fType); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contenttype/IntStack.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contenttype/IntStack.java deleted file mode 100644 index aa8cabd9f7..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contenttype/IntStack.java +++ /dev/null @@ -1,99 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 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.css.core.internal.contenttype; - -/* - * - * A non-resizable class implementing the behavior of java.util.Stack, but - * directly for the <code> integer </code> primitive. - */ -import java.util.EmptyStackException; - -public class IntStack { - private int[] list = null; - - private int size = 0; - - public IntStack() { - this(100); - } - - public IntStack(int maxdepth) { - super(); - list = new int[maxdepth]; - initialize(); - } - - public void clear() { - initialize(); - } - - public boolean empty() { - return size == 0; - } - - public int get(int slot) { - return list[slot]; - } - - private void initialize() { - for (int i = 0; i < list.length; i++) - list[i] = -1; - } - - /** - * Returns the int at the top of the stack without removing it - * - * @return int at the top of this stack. - * @exception EmptyStackException - * when empty. - */ - public int peek() { - if (size == 0) - throw new EmptyStackException(); - return list[size - 1]; - } - - /** - * Removes and returns the int at the top of the stack - * - * @return int at the top of this stack. - * @exception EmptyStackException - * when empty. - */ - public int pop() { - int value = peek(); - list[size - 1] = -1; - size--; - return value; - } - - /** - * Pushes an item onto the top of this stack. - * - * @param newValue - - * the int to be pushed onto this stack. - * @return the <code>newValue</code> argument. - */ - public int push(int newValue) { - if (size == list.length) { - throw new StackOverflowError(); - } - list[size++] = newValue; - return newValue; - } - - public int size() { - return list.length; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/AbstractCSSNodeList.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/AbstractCSSNodeList.java deleted file mode 100644 index 007991b97b..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/AbstractCSSNodeList.java +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.document; - -import java.util.Vector; - -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; - - -/** - * - */ -abstract class AbstractCSSNodeList { - - protected Vector nodes = null; - - ICSSNode appendNode(ICSSNode node) { - if (node == null) - return null; - if (this.nodes == null) - this.nodes = new Vector(); - this.nodes.addElement(node); - return node; - } - - /** - * @return int - */ - public int getLength() { - if (this.nodes == null) - return 0; - return this.nodes.size(); - } - - - protected ICSSNode itemImpl(int index) { - if (this.nodes == null) - return null; - if (index < 0 || index >= this.nodes.size()) - return null; - return (ICSSNode) this.nodes.elementAt(index); - } - - - ICSSNode removeNode(int index) { - if (this.nodes == null) - return null; // no node - if (index < 0 || index >= this.nodes.size()) - return null; // invalid parameter - - ICSSNode removed = (ICSSNode) this.nodes.elementAt(index); - this.nodes.removeElementAt(index); - return removed; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSAttrImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSAttrImpl.java deleted file mode 100644 index 9a04a4f6c0..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSAttrImpl.java +++ /dev/null @@ -1,133 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.document; - -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.ICSSNamedNodeMap; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; - -/** - * - */ -class CSSAttrImpl extends CSSRegionContainer implements ICSSAttr { - - private String fName = null; - private String fValue = null; - private CSSNodeImpl ownerCSSNode = null; - - CSSAttrImpl(CSSAttrImpl that) { - super(that); - this.fName = that.fName; - this.setValue(that.fValue); - } - - /** - * CSSAttr constructor comment. - */ - CSSAttrImpl(String name) { - super(); - this.fName = name; - } - - public ICSSNode cloneNode(boolean deep) { - return new CSSAttrImpl(this); - } - - /** - * @return org.eclipse.wst.css.core.model.interfaces.ICSSNamedNodeMap - */ - public ICSSNamedNodeMap getAttributes() { - return null; - } - - /** - * @return java.lang.String - */ - public java.lang.String getName() { - return fName; - } - - /** - * @return short - */ - public short getNodeType() { - return ATTR_NODE; - } - - public ICSSNode getOwnerCSSNode() { - return ownerCSSNode; - } - - /** - * @return java.lang.String - */ - public java.lang.String getValue() { - return fValue; - } - - /** - * @return boolean - * @param name - * java.lang.String - */ - protected boolean matchName(String name) { - if (name == null) - return /* (this.name == null) */false; - if (this.fName == null) - return false; - return this.fName.equals(name); - } - - /** - * - */ - protected void notifyValueChanged(String oldValue) { - if (this.ownerCSSNode == null) - return; - - // for model - ICSSDocument doc = ownerCSSNode.getContainerDocument(); - if (doc == null) - return; - CSSModelImpl model = (CSSModelImpl) doc.getModel(); - if (model == null) - return; - model.valueChanged(this, oldValue); - - // for adapters - String value = getValue(); - this.ownerCSSNode.notify(CHANGE, this, oldValue, value, this.ownerCSSNode.getStartOffset()); - } - - /** - * @param newName - * java.lang.String - */ - protected void setName(java.lang.String newName) { - fName = newName; - } - - protected void setOwnerCSSNode(CSSNodeImpl newOwnerCSSNode) { - ownerCSSNode = newOwnerCSSNode; - } - - /** - * @param newValue - * java.lang.String - */ - public void setValue(java.lang.String newValue) { - String oldValue = fValue; - fValue = newValue; - - notifyValueChanged(oldValue); - } -} 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 deleted file mode 100644 index 676c305bf0..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSCharsetRuleImpl.java +++ /dev/null @@ -1,79 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.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.util.CSSUtil; - - -/** - * - */ -class CSSCharsetRuleImpl extends CSSRuleImpl implements ICSSCharsetRule { - - /** - * - */ - CSSCharsetRuleImpl() { - super(); - } - - CSSCharsetRuleImpl(CSSCharsetRuleImpl that) { - super(that); - } - - public ICSSNode cloneNode(boolean deep) { - CSSCharsetRuleImpl cloned = new CSSCharsetRuleImpl(this); - - return cloned; - } - - /** - * The encoding information used in this <code>@charset</code> rule. - * @exception org.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the specified encoding value has a - * syntax error and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this encoding - * rule is readonly. - */ - public String getEncoding() { - return CSSUtil.extractStringContents(getAttribute(ENCODING)); - } - - /** - * @return short - */ - public short getNodeType() { - return CHARSETRULE_NODE; - } - - /** - * The type of the rule, as defined above. The expectation is that - * binding-specific casting methods can be used to cast down from an - * instance of the <code>CSSRule</code> interface to the specific - * derived interface implied by the <code>type</code>. - */ - public short getType() { - return CHARSET_RULE; - } - - public void setEncoding(String encoding) throws org.w3c.dom.DOMException { - 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/document/CSSDeclarationItemParser.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSDeclarationItemParser.java deleted file mode 100644 index 58d9f05a14..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSDeclarationItemParser.java +++ /dev/null @@ -1,1077 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.document; - -import java.util.Iterator; - -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.provisional.document.ICSSDocument; -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.document.ICounter; -import org.eclipse.wst.css.core.internal.util.CSSUtil; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList; -import org.eclipse.wst.sse.core.internal.text.TextRegionListImpl; -import org.w3c.dom.css.CSSPrimitiveValue; - - -/** - * - */ -class CSSDeclarationItemParser { - /** - * - */ - final class FloatInfo { - /** - * - */ - FloatInfo(String text) { - parse(text); - } - - /** - * - */ - void parse(String text) { - StringBuffer bufValue = new StringBuffer(); - StringBuffer bufIdent = new StringBuffer(); - boolean bNum = true; - int len = text.length(); - for (int i = 0; i < len; i++) { - char c = text.charAt(i); - if (bNum) { - if ('0' <= c && c <= '9' || c == '.' || c == '+' || c == '-') { - bufValue.append(c); - } - else { - bufIdent.append(c); - bNum = false; - } - } - else { - bufIdent.append(c); - } - } - String valueStr = bufValue.toString(); - fValue = Float.valueOf(valueStr).floatValue(); - fIdentifier = bufIdent.toString(); - fType = getFloatValueType(valueStr, fIdentifier); - } - - /** - * - */ - float getValue() { - return fValue; - } - - /** - * - */ - String getIdentifier() { - return fIdentifier; - } - - /** - * - */ - short getValueType() { - return fType; - } - - private float fValue = 0.0f; - private String fIdentifier = null; - private short fType = CSSPrimitiveValue.CSS_UNKNOWN; - } - - final static int S_NORMAL = 0; - final static int S_FUNCTION = 1; - final static int S_FONT_SLASH = 2; - final static int S_COMMA_SEPARATION = 3; - private ICSSDocument fDocument = null; - private IStructuredDocumentRegion fParentRegion = null; - private boolean fTempStructuredDocument = false; - private CSSModelUpdateContext fUpdateContext = null; - - /** - * CSSDeclarationItemParser constructor comment. - */ - CSSDeclarationItemParser(ICSSDocument doc) { - super(); - fDocument = doc; - } - - /** - * - */ - private CSSPrimitiveValueImpl createAttrValue(ITextRegionList regions) { - String funcName = getFunctionName(regions); - if (funcName == null || !funcName.toLowerCase().equals("attr")) { //$NON-NLS-1$ - return null; - } - String accepts[] = {CSSRegionContexts.CSS_DECLARATION_VALUE_IDENT}; - ITextRegionList valueRegions = getFunctionParameters(regions, accepts); - if (valueRegions.size() != 1) { - return null; - } - - CSSPrimitiveValueImpl value = getCSSPrimitiveValue(CSSPrimitiveValue.CSS_ATTR); - if (value == null) { - return null; - } - - ITextRegion region = valueRegions.get(0); - value.setValue(getText(region)); - - return value; - } - - /** - * - */ - private CSSPrimitiveValueImpl createCountersValue(ITextRegionList regions) { - String funcName = getFunctionName(regions); - if (funcName == null || !funcName.toLowerCase().equals("counters")) { //$NON-NLS-1$ - return null; - } - - String accepts[] = {CSSRegionContexts.CSS_DECLARATION_VALUE_IDENT, CSSRegionContexts.CSS_DECLARATION_VALUE_STRING}; - ITextRegionList valueRegions = getFunctionParameters(regions, accepts); - int size = valueRegions.size(); - if (size != 2 && size != 3) { - return null; - } - - CounterImpl value = getCounter(); - if (value == null) { - return null; - } - - for (int i = 0; i < size; i++) { - ITextRegion region = valueRegions.get(i); - String text = getText(region); - CSSAttrImpl attr = null; - switch (i) { - case 0 : - value.setIdentifier(text); - attr = value.getAttributeNode(ICounter.IDENTIFIER); - break; - case 1 : - value.setSeparator(text); - attr = value.getAttributeNode(ICounter.SEPARATOR); - break; - case 2 : - value.setListStyle(text); - attr = value.getAttributeNode(ICounter.LISTSTYLE); - break; - default : - break; - } - if (attr != null) { - attr.setRangeRegion(fParentRegion, region, region); - } - } - - return value; - } - - /** - * - */ - private CSSPrimitiveValueImpl createCounterValue(ITextRegionList regions) { - String funcName = getFunctionName(regions); - if (funcName == null || !funcName.toLowerCase().equals("counter")) { //$NON-NLS-1$ - return null; - } - - String accepts[] = {CSSRegionContexts.CSS_DECLARATION_VALUE_IDENT}; - ITextRegionList valueRegions = getFunctionParameters(regions, accepts); - int size = valueRegions.size(); - if (size != 1 && size != 2) { - return null; - } - - CounterImpl value = getCounter(); - if (value == null) { - return null; - } - - for (int i = 0; i < size; i++) { - ITextRegion region = valueRegions.get(i); - String text = getText(region); - CSSAttrImpl attr = null; - switch (i) { - case 0 : - value.setIdentifier(text); - attr = value.getAttributeNode(ICounter.IDENTIFIER); - break; - case 1 : - value.setListStyle(text); - attr = value.getAttributeNode(ICounter.LISTSTYLE); - break; - default : - break; - } - if (attr != null) { - attr.setRangeRegion(fParentRegion, region, region); - } - } - - return value; - } - - /** - * - */ - private CSSStyleDeclItemImpl createDeclarationItem(ITextRegionList nodeRegions) { - CSSStyleDeclItemImpl item = null; - String name = getPropertyName(nodeRegions); - if (name != null) { - item = getCSSStyleDeclItem(name); - } - return item; - } - - /** - * - */ - private CSSPrimitiveValueImpl createFloatValue(String text, String type) { - FloatInfo info = new FloatInfo(text); - CSSPrimitiveValueImpl value = getCSSPrimitiveValue(info.getValueType()); - if (value != null) { - value.setValue(info.getValue()); - } - return value; - } - - /** - * - */ - private CSSPrimitiveValueImpl createFormatValue(ITextRegionList regions) { - String funcName = getFunctionName(regions); - if (funcName == null || !funcName.toLowerCase().equals("format")) { //$NON-NLS-1$ - return null; - } - String accepts[] = {CSSRegionContexts.CSS_DECLARATION_VALUE_STRING}; - ITextRegionList valueRegions = getFunctionParameters(regions, accepts); - // format can take variable args. - if (valueRegions.size() == 0) { - return null; - } - - CSSPrimitiveValueImpl value = getCSSPrimitiveValue(ICSSPrimitiveValue.CSS_FORMAT); - if (value == null) { - return null; - } - - ITextRegion region = valueRegions.get(0); - value.setValue(CSSUtil.extractStringContents(getText(region))); - - return value; - - } - - /** - * - */ - private CSSPrimitiveValueImpl createLocalValue(ITextRegionList regions) { - String funcName = getFunctionName(regions); - if (funcName == null || !funcName.toLowerCase().equals("local")) { //$NON-NLS-1$ - return null; - } - String accepts[] = {CSSRegionContexts.CSS_DECLARATION_VALUE_STRING}; - ITextRegionList valueRegions = getFunctionParameters(regions, accepts); - if (valueRegions.size() != 1) { - return null; - } - - CSSPrimitiveValueImpl value = getCSSPrimitiveValue(ICSSPrimitiveValue.CSS_LOCAL); - if (value == null) { - return null; - } - - ITextRegion region = valueRegions.get(0); - value.setValue(CSSUtil.extractStringContents(getText(region))); - - return value; - } - - /** - * - */ - private CSSPrimitiveValueImpl createPrimitiveValue(ITextRegion region) { - if (region == null) { - return null; - } - CSSPrimitiveValueImpl value = null; - String type = region.getType(); - String text = getText(region); - if (isBlank(type)) { - value = null; - } - else if (type == CSSRegionContexts.CSS_DECLARATION_VALUE_NUMBER || type == CSSRegionContexts.CSS_DECLARATION_VALUE_DIMENSION || type == CSSRegionContexts.CSS_DECLARATION_VALUE_PERCENTAGE) { - value = createFloatValue(text, type); - } - else if (type == CSSRegionContexts.CSS_DECLARATION_VALUE_STRING || type == CSSRegionContexts.CSS_DECLARATION_VALUE_URI || type == CSSRegionContexts.CSS_DECLARATION_VALUE_IDENT || type == CSSRegionContexts.CSS_DECLARATION_VALUE_HASH) { - value = createStringValue(text, type); - } - - if (value == null) { - value = createStringValue(text, type); - } - - if (!fTempStructuredDocument && value != null) { - value.setRangeRegion(fParentRegion, region, region); - } - - return value; - } - - /** - * - */ - private CSSPrimitiveValueImpl createPrimitiveValue(ITextRegionList regions) { - CSSPrimitiveValueImpl value = null; - CSSUtil.stripSurroundingSpace(regions); - if (regions.isEmpty()) { - return null; - } - ITextRegion region = regions.get(0); - if (region == null) { - return null; - } - String type = region.getType(); - if (type == CSSRegionContexts.CSS_DECLARATION_VALUE_FUNCTION) { - String text = getText(region).toLowerCase(); - if (text.equals("rgb(")) { //$NON-NLS-1$ - value = createRgbValue(regions); - } - else if (text.equals("counter(")) { //$NON-NLS-1$ - value = createCounterValue(regions); - } - else if (text.equals("counters(")) { //$NON-NLS-1$ - value = createCountersValue(regions); - } - else if (text.equals("attr(")) { //$NON-NLS-1$ - value = createAttrValue(regions); - } - else if (text.equals("format(")) { //$NON-NLS-1$ - value = createFormatValue(regions); - } - else if (text.equals("local(")) { //$NON-NLS-1$ - value = createLocalValue(regions); - } - else if (text.equals("rect(")) { //$NON-NLS-1$ - value = createRectValue(regions); - } - if (value == null) { - value = createStringValue(regions); - } - } - else { - value = createStringValue(regions); - } - - if (!fTempStructuredDocument && value != null) { - value.setRangeRegion(fParentRegion, regions.get(0), regions.get(regions.size() - 1)); - } - - return value; - } - - /** - * - */ - private CSSPrimitiveValueImpl createRectValue(ITextRegionList regions) { - String funcName = getFunctionName(regions); - if (funcName == null || !funcName.toLowerCase().equals("rect")) { //$NON-NLS-1$ - return null; - } - String accepts[] = {CSSRegionContexts.CSS_DECLARATION_VALUE_NUMBER, CSSRegionContexts.CSS_DECLARATION_VALUE_DIMENSION, CSSRegionContexts.CSS_DECLARATION_VALUE_IDENT}; // IDENT: - // for - // 'auto' - ITextRegionList valueRegions = getFunctionParameters(regions, accepts); - if (valueRegions.size() != 4) { - return null; - } - - RectImpl value = getRect(); - if (value == null) { - return null; - } - - for (int i = 0; i < 4; i++) { - ITextRegion region = valueRegions.get(i); - CSSPrimitiveValueImpl childValue = null; - switch (i) { - case 0 : - childValue = (CSSPrimitiveValueImpl) value.getTop(); - break; - case 1 : - childValue = (CSSPrimitiveValueImpl) value.getRight(); - break; - case 2 : - childValue = (CSSPrimitiveValueImpl) value.getBottom(); - break; - case 3 : - childValue = (CSSPrimitiveValueImpl) value.getLeft(); - break; - default : - break; - } - if (childValue == null) { - return null; - } - String text = getText(region); - String type = region.getType(); - if (type == CSSRegionContexts.CSS_DECLARATION_VALUE_IDENT) { - setStringValue(childValue, text, type); - } - else { - setFloatValue(childValue, text, type); - } - if (!fTempStructuredDocument) { - childValue.setRangeRegion(fParentRegion, region, region); - } - } - - return value; - } - - /** - * - */ - private CSSPrimitiveValueImpl createRgbValue(ITextRegionList regions) { - String funcName = getFunctionName(regions); - if (funcName == null || !funcName.toLowerCase().equals("rgb")) { //$NON-NLS-1$ - return null; - } - String accepts[] = {CSSRegionContexts.CSS_DECLARATION_VALUE_NUMBER, CSSRegionContexts.CSS_DECLARATION_VALUE_PERCENTAGE}; - ITextRegionList valueRegions = getFunctionParameters(regions, accepts); - if (valueRegions.size() != 3) { - return null; - } - - RGBColorImpl value = getRGBColor(); - if (value == null) { - return null; - } - - for (int i = 0; i < 3; i++) { - ITextRegion region = valueRegions.get(i); - CSSPrimitiveValueImpl childValue = null; - switch (i) { - case 0 : - childValue = (CSSPrimitiveValueImpl) value.getRed(); - break; - case 1 : - childValue = (CSSPrimitiveValueImpl) value.getGreen(); - break; - case 2 : - childValue = (CSSPrimitiveValueImpl) value.getBlue(); - break; - default : - break; - } - if (childValue == null) { - return null; - } - setFloatValue(childValue, getText(region), region.getType()); - if (!fTempStructuredDocument) { - childValue.setRangeRegion(fParentRegion, region, region); - } - } - - return value; - } - - /** - * - */ - private CSSPrimitiveValueImpl createStringValue(String text, String type) { - short valueType = getStringValueType(text, type); - CSSPrimitiveValueImpl value = getCSSPrimitiveValue(valueType); - if (value != null) { - if (valueType == CSSPrimitiveValue.CSS_URI) { - text = CSSUtil.extractUriContents(text); - } - else if (valueType == CSSPrimitiveValue.CSS_STRING) { - text = CSSUtil.extractStringContents(text); - } - value.setValue(text); - } - return value; - } - - /** - * - */ - private CSSPrimitiveValueImpl createStringValue(ITextRegionList regions) { - String type = CSSRegionContexts.CSS_DECLARATION_VALUE_IDENT; - if (regions.size() == 1) { - ITextRegion region = regions.get(0); - type = region.getType(); - } - return createStringValue(makeString(regions), type); - } - - /** - * - */ - private CounterImpl getCounter() { - CounterImpl node; - if (fUpdateContext != null && fUpdateContext.isActive()) { - node = fUpdateContext.getCounter(); - } - else { - node = (CounterImpl) fDocument.createCSSPrimitiveValue(CSSPrimitiveValue.CSS_COUNTER); - } - return node; - } - - /** - * - */ - private CSSPrimitiveValueImpl getCSSPrimitiveValue(short type) { - CSSPrimitiveValueImpl node; - if (fUpdateContext != null && fUpdateContext.isActive()) { - node = fUpdateContext.getCSSPrimitiveValue(type); - } - else { - node = (CSSPrimitiveValueImpl) fDocument.createCSSPrimitiveValue(type); - } - return node; - } - - /** - * - */ - private CSSStyleDeclItemImpl getCSSStyleDeclItem(String propertyName) { - CSSStyleDeclItemImpl node; - if (fUpdateContext != null && fUpdateContext.isActive()) { - node = fUpdateContext.getCSSStyleDeclItem(propertyName); - } - else { - node = (CSSStyleDeclItemImpl) fDocument.createCSSStyleDeclItem(propertyName); - } - return node; - } - - /** - * - */ - static short getFloatValueType(String ident) { - ident = ident.toLowerCase(); - short valueType; - if (ident.length() == 0) { - valueType = CSSPrimitiveValue.CSS_NUMBER; - } - else if (ident.equals("%")) { //$NON-NLS-1$ - valueType = CSSPrimitiveValue.CSS_PERCENTAGE; - } - else if (ident.equalsIgnoreCase("em")) { //$NON-NLS-1$ - valueType = CSSPrimitiveValue.CSS_EMS; - } - else if (ident.equalsIgnoreCase("ex")) { //$NON-NLS-1$ - valueType = CSSPrimitiveValue.CSS_EXS; - } - else if (ident.equalsIgnoreCase("px")) { //$NON-NLS-1$ - valueType = CSSPrimitiveValue.CSS_PX; - } - else if (ident.equalsIgnoreCase("cm")) { //$NON-NLS-1$ - valueType = CSSPrimitiveValue.CSS_CM; - } - else if (ident.equalsIgnoreCase("mm")) { //$NON-NLS-1$ - valueType = CSSPrimitiveValue.CSS_MM; - } - else if (ident.equalsIgnoreCase("in")) { //$NON-NLS-1$ - valueType = CSSPrimitiveValue.CSS_IN; - } - else if (ident.equalsIgnoreCase("pt")) { //$NON-NLS-1$ - valueType = CSSPrimitiveValue.CSS_PT; - } - else if (ident.equalsIgnoreCase("pc")) { //$NON-NLS-1$ - valueType = CSSPrimitiveValue.CSS_PC; - } - else if (ident.equalsIgnoreCase("deg")) { //$NON-NLS-1$ - valueType = CSSPrimitiveValue.CSS_DEG; - } - else if (ident.equalsIgnoreCase("rad")) { //$NON-NLS-1$ - valueType = CSSPrimitiveValue.CSS_RAD; - } - else if (ident.equalsIgnoreCase("grad")) { //$NON-NLS-1$ - valueType = CSSPrimitiveValue.CSS_GRAD; - } - else if (ident.equalsIgnoreCase("ms")) { //$NON-NLS-1$ - valueType = CSSPrimitiveValue.CSS_MS; - } - else if (ident.equalsIgnoreCase("s")) { //$NON-NLS-1$ - valueType = CSSPrimitiveValue.CSS_S; - } - else if (ident.equalsIgnoreCase("hz")) { //$NON-NLS-1$ - valueType = CSSPrimitiveValue.CSS_HZ; - } - else if (ident.equalsIgnoreCase("khz")) { //$NON-NLS-1$ - valueType = CSSPrimitiveValue.CSS_KHZ; - } - else { - valueType = CSSPrimitiveValue.CSS_DIMENSION; - } - return valueType; - } - - /** - * - */ - static short getFloatValueType(String value, String ident) { - ident = ident.toLowerCase(); - short valueType; - if (ident.length() == 0) { - if (0 <= value.indexOf('.')) { - valueType = CSSPrimitiveValue.CSS_NUMBER; - } - else { - valueType = ICSSPrimitiveValue.CSS_INTEGER; - } - } - else if (ident.equals("%")) { //$NON-NLS-1$ - valueType = CSSPrimitiveValue.CSS_PERCENTAGE; - } - else if (ident.equalsIgnoreCase("em")) { //$NON-NLS-1$ - valueType = CSSPrimitiveValue.CSS_EMS; - } - else if (ident.equalsIgnoreCase("ex")) { //$NON-NLS-1$ - valueType = CSSPrimitiveValue.CSS_EXS; - } - else if (ident.equalsIgnoreCase("px")) { //$NON-NLS-1$ - valueType = CSSPrimitiveValue.CSS_PX; - } - else if (ident.equalsIgnoreCase("cm")) { //$NON-NLS-1$ - valueType = CSSPrimitiveValue.CSS_CM; - } - else if (ident.equalsIgnoreCase("mm")) { //$NON-NLS-1$ - valueType = CSSPrimitiveValue.CSS_MM; - } - else if (ident.equalsIgnoreCase("in")) { //$NON-NLS-1$ - valueType = CSSPrimitiveValue.CSS_IN; - } - else if (ident.equalsIgnoreCase("pt")) { //$NON-NLS-1$ - valueType = CSSPrimitiveValue.CSS_PT; - } - else if (ident.equalsIgnoreCase("pc")) { //$NON-NLS-1$ - valueType = CSSPrimitiveValue.CSS_PC; - } - else if (ident.equalsIgnoreCase("deg")) { //$NON-NLS-1$ - valueType = CSSPrimitiveValue.CSS_DEG; - } - else if (ident.equalsIgnoreCase("rad")) { //$NON-NLS-1$ - valueType = CSSPrimitiveValue.CSS_RAD; - } - else if (ident.equalsIgnoreCase("grad")) { //$NON-NLS-1$ - valueType = CSSPrimitiveValue.CSS_GRAD; - } - else if (ident.equalsIgnoreCase("ms")) { //$NON-NLS-1$ - valueType = CSSPrimitiveValue.CSS_MS; - } - else if (ident.equalsIgnoreCase("s")) { //$NON-NLS-1$ - valueType = CSSPrimitiveValue.CSS_S; - } - else if (ident.equalsIgnoreCase("hz")) { //$NON-NLS-1$ - valueType = CSSPrimitiveValue.CSS_HZ; - } - else if (ident.equalsIgnoreCase("khz")) { //$NON-NLS-1$ - valueType = CSSPrimitiveValue.CSS_KHZ; - } - else { - valueType = CSSPrimitiveValue.CSS_DIMENSION; - } - return valueType; - } - - /** - * - */ - private String getFunctionName(ITextRegionList regions) { - if (regions == null || regions.size() < 2) { - return null; - } - ITextRegion firstRegion = regions.get(0); - if (firstRegion.getType() != CSSRegionContexts.CSS_DECLARATION_VALUE_FUNCTION) { - return null; - } - ITextRegion lastRegion = regions.get(regions.size() - 1); - if (lastRegion.getType() != CSSRegionContexts.CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE) { - return null; - } - String text = getText(firstRegion); - return text.substring(0, text.length() - 1); - } - - /** - * this method has no validation check, then regions must be passed - * getFunctionName()... - */ - private ITextRegionList getFunctionParameters(ITextRegionList regions, String[] accepts) { - ITextRegionList newRegions = new TextRegionListImpl(); - int nAccepts = (accepts != null) ? accepts.length : 0; - Iterator i = regions.iterator(); - i.next(); // skip FUNCTION - while (i.hasNext()) { - ITextRegion region = (ITextRegion) i.next(); - if (region == null) { - continue; - } - String type = region.getType(); - if (isBlank(type)) { - continue; - } - if (nAccepts == 0) { - newRegions.add(region); - } - else { - for (int iAccept = 0; iAccept < nAccepts; iAccept++) { - if (type == accepts[iAccept]) { - newRegions.add(region); - break; - } - } - } - } - return newRegions; - } - - /** - * - */ - // private String getPropertyName(IStructuredDocumentRegion flatNode) { - // Vector nodeRegions = new Vector(flatNode.getRegions()); - // return getPropertyName(nodeRegions); - // } - /** - * - */ - private String getPropertyName(ITextRegionList nodeRegions) { - ITextRegionList nameRegions = new TextRegionListImpl(); - String name = null; - while (!nodeRegions.isEmpty()) { - ITextRegion region = nodeRegions.remove(0); - if (region == null) { - continue; - } - String type = region.getType(); - if (type == CSSRegionContexts.CSS_DECLARATION_SEPARATOR) { - CSSUtil.stripSurroundingSpace(nameRegions); - name = makeString(nameRegions); - break; - } - else { - nameRegions.add(region); - } - } - return name; - } - - /** - * - */ - private RectImpl getRect() { - RectImpl node; - if (fUpdateContext != null && fUpdateContext.isActive()) { - node = fUpdateContext.getRect(); - } - else { - node = (RectImpl) fDocument.createCSSPrimitiveValue(CSSPrimitiveValue.CSS_RECT); - } - return node; - } - - /** - * - */ - private RGBColorImpl getRGBColor() { - RGBColorImpl node; - if (fUpdateContext != null && fUpdateContext.isActive()) { - node = fUpdateContext.getRGBColor(); - } - else { - node = (RGBColorImpl) fDocument.createCSSPrimitiveValue(CSSPrimitiveValue.CSS_RGBCOLOR); - } - return node; - } - - /** - * - */ - private short getStringValueType(String text, String type) { - short valueType; - if (text.toLowerCase().equals("inherit")) { //$NON-NLS-1$ - valueType = ICSSPrimitiveValue.CSS_INHERIT_PRIMITIVE; - } - else if (type == CSSRegionContexts.CSS_DECLARATION_VALUE_URI) { - valueType = CSSPrimitiveValue.CSS_URI; - } - else if (type == CSSRegionContexts.CSS_DECLARATION_VALUE_STRING) { - valueType = CSSPrimitiveValue.CSS_STRING; - } - else if (type == CSSRegionContexts.CSS_DECLARATION_VALUE_HASH) { - valueType = ICSSPrimitiveValue.CSS_HASH; - } - else if (type == CSSRegionContexts.CSS_DECLARATION_VALUE_OPERATOR && text.equals(",")) { //$NON-NLS-1$ - valueType = ICSSPrimitiveValue.CSS_COMMA; - } - else if (type == CSSRegionContexts.CSS_DECLARATION_VALUE_OPERATOR && text.equals("/")) { //$NON-NLS-1$ - valueType = ICSSPrimitiveValue.CSS_SLASH; - } - else if (type == CSSRegionContexts.CSS_DECLARATION_VALUE_UNICODE_RANGE) { - valueType = ICSSPrimitiveValue.CSS_URANGE; - } - else { - valueType = CSSPrimitiveValue.CSS_IDENT; - } - return valueType; - } - - /** - * - */ - private String makeString(ITextRegionList regions) { - StringBuffer buf = new StringBuffer(); - boolean bSpace = false; - for (Iterator i = regions.iterator(); i.hasNext();) { - ITextRegion region = (ITextRegion) i.next(); - String type = region.getType(); - if (!bSpace && isBlank(type)) { - buf.append(" "); //$NON-NLS-1$ - bSpace = true; - } - else { - buf.append(getText(region)); - bSpace = false; - } - } - - return buf.toString(); - } - - /** - * - */ - void setStructuredDocumentTemporary(boolean bTemp) { - fTempStructuredDocument = bTemp; - } - - /** - * - */ - private void setFloatValue(CSSPrimitiveValueImpl value, String text, String type) { - FloatInfo info = new FloatInfo(text); - value.setFloatValue(info.getValueType(), info.getValue()); - } - - /** - * - */ - private void setStringValue(CSSPrimitiveValueImpl value, String text, String type) { - short valueType = getStringValueType(text, type); - value.setStringValue(valueType, text); - } - - /** - * @param item - * org.eclipse.wst.css.core.model.interfaces.ICSSStyleDeclItem - * @param nodeRegions - * java.util.Vector - */ - private void setupImportantAttribute(ICSSStyleDeclItem item, ITextRegionList nodeRegions) { - if (item == null || nodeRegions == null || nodeRegions.isEmpty()) { - return; - } - ITextRegion region = nodeRegions.get(nodeRegions.size() - 1); - if (region != null && region.getType() == CSSRegionContexts.CSS_DECLARATION_VALUE_IMPORTANT) { - item.setPriority(getText(region)); - CSSAttrImpl attr = ((CSSStyleDeclItemImpl) item).getAttributeNode(ICSSStyleDeclItem.IMPORTANT); - attr.setRangeRegion(fParentRegion, region, region); - nodeRegions.remove(region); - } - } - - /** - * - */ - void setUpdateContext(CSSModelUpdateContext updateContext) { - fUpdateContext = updateContext; - } - - /** - * - */ - public static boolean hasColonSeparator(IStructuredDocumentRegion flatNode) { - if (flatNode == null) { - return false; - } - ITextRegionList regions = flatNode.getRegions(); - if (regions == null || regions.size() == 0) { - return false; - } - - for (Iterator i = regions.iterator(); i.hasNext();) { - ITextRegion region = (ITextRegion) i.next(); - if (region == null) { - continue; - } - if (region.getType() == CSSRegionContexts.CSS_DECLARATION_SEPARATOR) { - return true; - } - } - - return false; - } - - /** - * - */ - CSSStyleDeclItemImpl setupDeclarationItem(IStructuredDocumentRegion flatNode) { - if (flatNode == null) { - return null; - } - if (!hasColonSeparator(flatNode)) { - return null; - } - - fParentRegion = flatNode; - - ITextRegionList nodeRegions = new TextRegionListImpl(flatNode.getRegions()); // make - // copy - CSSStyleDeclItemImpl newItem = createDeclarationItem(nodeRegions); - if (newItem == null) { - return null; - } - if (!fTempStructuredDocument && flatNode != null) { - newItem.setRangeStructuredDocumentRegion(flatNode, flatNode); - } - - CSSUtil.stripSurroundingSpace(nodeRegions); - setupImportantAttribute(newItem, nodeRegions); - // Now, nodeRegions just has regions for value. - setupValues(newItem, nodeRegions); - return newItem; - } - - void setupValues(ICSSStyleDeclItem item, IStructuredDocumentRegion parentRegion, ITextRegionList nodeRegions) { - fParentRegion = parentRegion; - setupValues(item, nodeRegions); - } - - /** - * nodeRegions must be broken. If you need after, make copy of them. - */ - private void setupValues(ICSSStyleDeclItem item, ITextRegionList nodeRegions) { - if (item == null) { - return; - } - - ICSSPrimitiveValue value; - ITextRegionList regionBuf = new TextRegionListImpl(); - - String propertyName = item.getPropertyName().toLowerCase(); - boolean bFont = (propertyName.equals(PropCMProperty.P_FONT)); - // (short-hand) font - int status = (propertyName.equals(PropCMProperty.P_VOICE_FAMILY) || propertyName.equals(PropCMProperty.P_FONT_FAMILY)) ? S_COMMA_SEPARATION : S_NORMAL; - while (!nodeRegions.isEmpty()) { - value = null; - ITextRegion region = nodeRegions.remove(0); - if (region == null) { - continue; - } - String type = region.getType(); - // if (type == CSSRegionContexts.CSS_DECLARATION_DELIMITER || type - // == CSSRegionContexts.CSS_RBRACE) { - // break; - // } - switch (status) { - case S_NORMAL : - if (type == CSSRegionContexts.CSS_DECLARATION_VALUE_FUNCTION) { - regionBuf.add(region); - status = S_FUNCTION; - } - else if (bFont && type == CSSRegionContexts.CSS_DECLARATION_VALUE_OPERATOR && fParentRegion.getText(region).equals("/")) { //$NON-NLS-1$ - value = createPrimitiveValue(region); - status = S_FONT_SLASH; - } - else if (!isBlank(type)) { - value = createPrimitiveValue(region); - } - break; - case S_FUNCTION : - if (type == CSSRegionContexts.CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE) { - regionBuf.add(region); - value = createPrimitiveValue(regionBuf); - regionBuf.clear(); - status = S_NORMAL; - } - else if (!isBlank(type)) { - regionBuf.add(region); - } - break; - case S_FONT_SLASH : - if (type == CSSRegionContexts.CSS_DECLARATION_VALUE_DIMENSION) { - value = createPrimitiveValue(region); - status = S_COMMA_SEPARATION; - } - else if (!isBlank(type)) { - value = createPrimitiveValue(region); - } - break; - case S_COMMA_SEPARATION : - if (type == CSSRegionContexts.CSS_DECLARATION_VALUE_OPERATOR && fParentRegion.getText(region).equals(",")) { //$NON-NLS-1$ - value = createPrimitiveValue(regionBuf); - regionBuf.clear(); - if (value != null) { - if (fUpdateContext == null || !fUpdateContext.isActive()) { - item.appendValue(value); - } - } - value = createPrimitiveValue(region); - } - else { - regionBuf.add(region); - } - break; - default : - break; - } - if (value != null) { - if (fUpdateContext == null || !fUpdateContext.isActive()) { - item.appendValue(value); - } - } - } - if (!regionBuf.isEmpty()) { - value = createPrimitiveValue(regionBuf); - if (fUpdateContext == null || !fUpdateContext.isActive()) { - item.appendValue(value); - } - } - } - - private String getText(ITextRegion region) { - return (fParentRegion != null) ? fParentRegion.getText(region) : ""; //$NON-NLS-1$ - } - - private static boolean isBlank(String type) { - return (type == CSSRegionContexts.CSS_S || type == CSSRegionContexts.CSS_COMMENT || type == CSSRegionContexts.CSS_DECLARATION_VALUE_S); - } - -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSDocumentImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSDocumentImpl.java deleted file mode 100644 index e3a543bc83..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSDocumentImpl.java +++ /dev/null @@ -1,163 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.document; - - - -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.ICSSMediaRule; -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.ICSSPageRule; -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.document.ICSSStyleDeclaration; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleRule; -import org.w3c.dom.css.CSSFontFaceRule; -import org.w3c.dom.css.CSSPrimitiveValue; -import org.w3c.dom.css.CSSRule; -import org.w3c.dom.css.CSSUnknownRule; -import org.w3c.dom.stylesheets.MediaList; - - -/** - * - */ -abstract class CSSDocumentImpl extends CSSStructuredDocumentRegionContainer implements ICSSDocument { - - private CSSModelImpl fModel = null; - - /** - * CSSDocumentImpl constructor comment. - */ - CSSDocumentImpl() { - super(); - } - - - CSSDocumentImpl(CSSDocumentImpl that) { - super(that); - } - - ICSSNode createCSSAttr(String name) { - CSSAttrImpl attr = new CSSAttrImpl(name); - attr.setOwnerDocument(this); - - return attr; - } - - /** - * @return org.w3c.dom.css.CSSCharsetRule - */ - public ICSSCharsetRule createCSSCharsetRule() { - return null; - } - - /** - * @return org.w3c.dom.css.CSSFontFaceRule - */ - public CSSFontFaceRule createCSSFontFaceRule() { - return null; - } - - /** - * @return org.w3c.dom.css.CSSImportRule - */ - public ICSSImportRule createCSSImportRule() { - return null; - } - - /** - * @return org.w3c.dom.css.ICSSMediaRule - */ - public ICSSMediaRule createCSSMediaRule() { - return null; - } - - /** - * @return org.w3c.dom.css.CSSPageRule - */ - public ICSSPageRule createCSSPageRule() { - return null; - } - - /** - * @return org.w3c.dom.css.CSSPrimitiveValue - */ - public ICSSPrimitiveValue createCSSPrimitiveValue(short primitiveType) { - CSSPrimitiveValueImpl value = null; - if (primitiveType == CSSPrimitiveValue.CSS_COUNTER) - value = new CounterImpl(); - else if (primitiveType == CSSPrimitiveValue.CSS_RECT) - value = new RectImpl(); - else if (primitiveType == CSSPrimitiveValue.CSS_RGBCOLOR) - value = new RGBColorImpl(); - else - value = new CSSPrimitiveValueImpl(primitiveType); - value.setOwnerDocument(this); - - return value; - } - - /** - * @return org.w3c.dom.css.CSSRule - * @param rule - * java.lang.String - */ - public CSSRule createCSSRule(String rule) { - return null; - } - - /** - * @return org.w3c.dom.css.CSSStyleDeclaration - */ - public ICSSStyleDeclaration createCSSStyleDeclaration() { - return null; - } - - public ICSSStyleDeclItem createCSSStyleDeclItem(String propertyName) { - CSSStyleDeclItemImpl item = new CSSStyleDeclItemImpl(propertyName); - item.setOwnerDocument(this); - - return item; - } - - /** - * @return org.w3c.dom.css.CSSStyleRule - */ - public ICSSStyleRule createCSSStyleRule() { - return null; - } - - /** - * @return org.w3c.dom.css.CSSUnknownRule - */ - public CSSUnknownRule createCSSUnknownRule() { - return null; - } - - /** - * @return org.w3c.dom.stylesheets.MediaList - */ - public MediaList createMediaList() { - return null; - } - - public ICSSModel getModel() { - return fModel; - } - - void setModel(CSSModelImpl model) { - this.fModel = model; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSFontFaceRuleImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSFontFaceRuleImpl.java deleted file mode 100644 index 10cd9f7f61..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSFontFaceRuleImpl.java +++ /dev/null @@ -1,67 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.document; - - - -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.w3c.dom.css.CSSFontFaceRule; - - -/** - * - */ -class CSSFontFaceRuleImpl extends CSSRuleDeclContainer implements CSSFontFaceRule { - - /** - * - */ - CSSFontFaceRuleImpl() { - super(); - } - - CSSFontFaceRuleImpl(CSSFontFaceRuleImpl that) { - super(that); - } - - public ICSSNode cloneNode(boolean deep) { - CSSFontFaceRuleImpl cloned = new CSSFontFaceRuleImpl(this); - - if (deep) - cloneChildNodes(cloned, deep); - - return cloned; - } - - /** - * @return java.lang.String - */ - String extractPreString() { - return "@font-face";//$NON-NLS-1$ - } - - /** - * @return short - */ - public short getNodeType() { - return FONTFACERULE_NODE; - } - - /** - * The type of the rule, as defined above. The expectation is that - * binding-specific casting methods can be used to cast down from an - * instance of the <code>CSSRule</code> interface to the specific - * derived interface implied by the <code>type</code>. - */ - public short getType() { - return FONT_FACE_RULE; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSImportRuleImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSImportRuleImpl.java deleted file mode 100644 index 4fa385b825..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSImportRuleImpl.java +++ /dev/null @@ -1,227 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 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.document; - - - -import org.eclipse.wst.css.core.internal.Logger; -import org.eclipse.wst.css.core.internal.provisional.adapters.IModelProvideAdapter; -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.ICSSStyleSheet; -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.URLModelProviderCSS; -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; -import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; -import org.w3c.dom.DOMException; -import org.w3c.dom.css.CSSStyleSheet; -import org.w3c.dom.stylesheets.MediaList; - - -/** - * currently public but may be made default access protected in future. - */ -public class CSSImportRuleImpl extends CSSRuleImpl implements ICSSImportRule { - - private boolean fDirty = true; - private ICSSStyleSheet fStyleSheet; - - /** - * currently public but may be made default access protected in future. - */ - public CSSImportRuleImpl() { - super(); - } - /** - * currently public but may be made default access protected in future. - */ - public CSSImportRuleImpl(CSSImportRuleImpl that) { - super(that); - } - - public ICSSNode cloneNode(boolean deep) { - CSSImportRuleImpl cloned = new CSSImportRuleImpl(this); - - if (deep) - cloneChildNodes(cloned, deep); - - return cloned; - } - - /** - * - */ - void closeStyleSheet() { - if (fStyleSheet != null) { - ICSSStyleSheet sheet = fStyleSheet; - fStyleSheet = null; // to prevent loop, we must reset fStyleSheet - // before all closing action - - sheet.getModel().removeStyleListener(getOwnerDocument().getModel()); - // get ModelProvideAdapter - IModelProvideAdapter adapter = (IModelProvideAdapter) getAdapterFor(IModelProvideAdapter.class); - // if (getOwnerDocument().getModel().getStyleSheetType() == - // ICSSModel.EMBEDDED) { // case STYLE tag - // adapter = (ModelProvideAdapter) - // ((INodeNotifier)getOwnerDocument().getModel().getOwnerDOMNode()).getAdapterFor(ModelProvideAdapter.class); - // } - if (adapter != null) - adapter.modelRemoved(sheet.getModel()); - - sheet.getModel().releaseFromRead(); - } - } - - /** - * The location of the style sheet to be imported. The attribute will not - * contain the <code>"url(...)"</code> specifier around the URI. - */ - public String getHref() { - return CSSUtil.extractUriContents(getAttribute(HREF)); - } - - /** - * A list of media types for which this style sheet may be used. - */ - public org.w3c.dom.stylesheets.MediaList getMedia() { - ICSSNode media = getFirstChild(); - if (media != null) { - if (media instanceof MediaList) { - return (MediaList) media; - } - } - - // THIS CASE IS ERROR CASE - return null; - } - - /** - * @return short - */ - public short getNodeType() { - return IMPORTRULE_NODE; - } - - /** - * The style sheet referred to by this rule, if it has been loaded. The - * value of this attribute is <code>null</code> if the style sheet has - * not yet been loaded or if it will not be loaded (e.g. if the style - * sheet is for a media type not supported by the user agent). - */ - public CSSStyleSheet getStyleSheet() { - - if (fDirty) { - // NOTE: try/catch block is a TEMP fix to avoid compile errors: - try { - closeStyleSheet(); - - if (getHref() == null || getHref().length() <= 0) { - fDirty = false; - return null; - } - - IStructuredModel baseModel = getOwnerDocument().getModel(); - if (getOwnerDocument().getModel().getStyleSheetType() == ICSSModel.EMBEDDED) { // case - // STYLE - // tag - baseModel = ((IDOMNode) getOwnerDocument().getModel().getOwnerDOMNode()).getModel(); - } - // get ModelProvideAdapter - IModelProvideAdapter adapter = (IModelProvideAdapter) getAdapterFor(IModelProvideAdapter.class); - // if (getOwnerDocument().getModel().getStyleSheetType() == - // ICSSModel.EMBEDDED) { // case STYLE tag - // adapter = (ModelProvideAdapter) - // ((INodeNotifier)getOwnerDocument().getModel().getOwnerDOMNode()).getAdapterFor(ModelProvideAdapter.class); - // } - - // load model from IModelManager - URLModelProviderCSS provider = new URLModelProviderCSS(); - IStructuredModel newModel = provider.getModelForRead(baseModel, getHref()); - fDirty = false; - - if (newModel == null) - return null; - if (!(newModel instanceof ICSSModel)) { - newModel.releaseFromRead(); - return null; - } - - // notify adapter - if (adapter != null) - adapter.modelProvided(newModel); - - fStyleSheet = (ICSSStyleSheet) ((ICSSModel) newModel).getDocument(); - if (fStyleSheet != null) - fStyleSheet.getModel().addStyleListener(getOwnerDocument().getModel()); - } - catch (java.io.IOException e) { - Logger.logException(e); - } - } - return fStyleSheet; - } - - /** - * The type of the rule, as defined above. The expectation is that - * binding-specific casting methods can be used to cast down from an - * instance of the <code>CSSRule</code> interface to the specific - * derived interface implied by the <code>type</code>. - */ - public short getType() { - return IMPORT_RULE; - } - - /** - * - */ - public void refreshStyleSheet() { - if (!fDirty) { - closeStyleSheet(); - fDirty = true; - notify(INodeNotifier.CHANGE, getAttributeNode(HREF), null, null, getStartOffset()); - } - } - - /** - */ - void releaseRule() { - if (fStyleSheet != null) { - ICSSStyleSheet sheet = fStyleSheet; - fStyleSheet = null; // to prevent loop, we must reset fStyleSheet - // before all closing action - - sheet.getModel().removeStyleListener(getOwnerDocument().getModel()); - // get ModelProvideAdapter - IModelProvideAdapter adapter = (IModelProvideAdapter) getAdapterFor(IModelProvideAdapter.class); - // if (getOwnerDocument().getModel().getStyleSheetType() == - // ICSSModel.EMBEDDED) { // case STYLE tag - // adapter = (ModelProvideAdapter) - // ((INodeNotifier)getOwnerDocument().getModel().getOwnerDOMNode()).getAdapterFor(ModelProvideAdapter.class); - // } - if (adapter != null) - adapter.modelReleased(sheet.getModel()); - - sheet.getModel().releaseFromRead(); - } - } - - /** - * @param href - * java.lang.String - */ - public void setHref(String href) throws DOMException { - fDirty = true; - setAttribute(HREF, CSSLinkConverter.addFunc(href)); - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSMediaRuleImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSMediaRuleImpl.java deleted file mode 100644 index 0175c877e3..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSMediaRuleImpl.java +++ /dev/null @@ -1,230 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.document; - - - -import org.eclipse.wst.css.core.internal.provisional.document.ICSSMediaRule; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.w3c.dom.DOMException; -import org.w3c.dom.css.CSSRule; -import org.w3c.dom.css.CSSRuleList; -import org.w3c.dom.stylesheets.MediaList; - - -/** - * - */ -class CSSMediaRuleImpl extends CSSRuleImpl implements ICSSMediaRule { - - /** - * - */ - CSSMediaRuleImpl() { - super(); - } - - CSSMediaRuleImpl(CSSMediaRuleImpl that) { - super(that); - } - - /** - * @return org.w3c.dom.css.CSSRule - * @param rule - * org.w3c.dom.css.CSSRule - * @exception org.w3c.dom.DOMException - * The exception description. - */ - public org.w3c.dom.css.CSSRule appendRule(org.w3c.dom.css.CSSRule rule) throws org.w3c.dom.DOMException { - if (rule == null) - return null; - - CSSRule ret = (CSSRule) appendChild((CSSNodeImpl) rule); - return ret; - } - - public ICSSNode cloneNode(boolean deep) { - CSSMediaRuleImpl cloned = new CSSMediaRuleImpl(this); - - if (deep) - cloneChildNodes(cloned, deep); - - return cloned; - } - - /** - * Used to delete a rule from the media block. - * - * @param index - * The index within the media block's rule collection of the - * rule to remove. - * @exception DOMException - * INDEX_SIZE_ERR: Raised if the specified index does not - * correspond to a rule in the media rule list. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this media rule - * is readonly. - */ - public void deleteRule(int index) throws DOMException { - CSSNodeImpl node = getIndexedRule(index); - if (node != null) - removeChild(node); - } - - /** - * A list of all CSS rules contained within the media block. - */ - public CSSRuleList getCssRules() { - CSSRuleListImpl list = new CSSRuleListImpl(); - - for (ICSSNode node = getFirstChild(); node != null; node = node.getNextSibling()) { - if (node instanceof CSSRule) - list.appendNode(node); - } - - return list; - } - - CSSRuleImpl getIndexedRule(int index) { - if (index < 0) - return null; - - int i = 0; - for (ICSSNode node = getFirstChild(); node != null; node = node.getNextSibling()) { - if (node instanceof CSSRule) { - if (i++ == index) - return (CSSRuleImpl) node; - } - } - return null; - } - - /** - * A list of media types for this rule. - */ - public MediaList getMedia() { - for (ICSSNode node = getFirstChild(); node != null; node = node.getNextSibling()) { - if (node instanceof MediaListImpl) - return (MediaList) node; - } - - return null; - } - - /** - * @return short - */ - public short getNodeType() { - return MEDIARULE_NODE; - } - - /** - * The type of the rule, as defined above. The expectation is that - * binding-specific casting methods can be used to cast down from an - * instance of the <code>CSSRule</code> interface to the specific - * derived interface implied by the <code>type</code>. - */ - public short getType() { - return MEDIA_RULE; - } - - /** - * Used to insert a new rule into the media block. - * - * @param rule - * The parsable text representing the rule. For rule sets this - * contains both the selector and the style declaration. For - * at-rules, this specifies both the at-identifier and the rule - * content. - * @param index - * The index within the media block's rule collection of the - * rule before which to insert the specified rule. If the - * specified index is equal to the length of the media blocks's - * rule collection, the rule will be added to the end of the - * media block. - * @return The index within the media block's rule collection of the newly - * inserted rule. - * @exception DOMException - * HIERARCHY_REQUEST_ERR: Raised if the rule cannot be - * inserted at the specified index, e.g., if an - * <code>@import</code> rule is inserted after a standard rule set or other - * at-rule. <br> - * INDEX_SIZE_ERR: Raised if the specified index is not a valid - * insertion point. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this media rule is - * readonly. <br> - * SYNTAX_ERR: Raised if the specified rule has a syntax error and - * is unparsable. - */ - public int insertRule(String rule, int index) throws DOMException { - int length = getCssRules().getLength(); - if (index < 0 || length < index) - throw new DOMException(DOMException.INDEX_SIZE_ERR, "");//$NON-NLS-1$ - - CSSRuleImpl refRule = (length != index) ? getIndexedRule(index) : null; - - CSSRuleImpl newRule = (CSSRuleImpl) getOwnerDocument().createCSSRule(rule); - - // prevent from nesting @media rule - if (newRule.getType() == CSSRule.MEDIA_RULE) - throw new DOMException(DOMException.SYNTAX_ERR, "");//$NON-NLS-1$ - - insertBefore(newRule, refRule); - - return index; - } - - /** - * @return org.w3c.dom.css.CSSRule - * @param newRule - * org.w3c.dom.css.CSSRule - * @param refRule - * org.w3c.dom.css.CSSRule - */ - public org.w3c.dom.css.CSSRule insertRuleBefore(org.w3c.dom.css.CSSRule newRule, org.w3c.dom.css.CSSRule refRule) throws org.w3c.dom.DOMException { - if (newRule == null && refRule == null) - return null; - - CSSRule ret = (CSSRule) insertBefore((CSSNodeImpl) newRule, (CSSNodeImpl) refRule); - return ret; - } - - /** - * @return org.w3c.dom.css.CSSRule - * @param rule - * org.w3c.dom.css.CSSRule - * @exception org.w3c.dom.DOMException - * The exception description. - */ - public org.w3c.dom.css.CSSRule removeRule(org.w3c.dom.css.CSSRule rule) throws org.w3c.dom.DOMException { - if (rule == null) - return null; - - CSSRule ret = (CSSRule) removeChild((CSSNodeImpl) rule); - return ret; - } - - /** - * @return org.w3c.dom.css.CSSRule - * @param newChild - * org.w3c.dom.css.CSSRule - * @param oldChild - * org.w3c.dom.css.CSSRule - * @exception org.w3c.dom.DOMException - * The exception description. - */ - public org.w3c.dom.css.CSSRule replaceRule(org.w3c.dom.css.CSSRule newRule, org.w3c.dom.css.CSSRule oldRule) throws org.w3c.dom.DOMException { - if (newRule == null && oldRule == null) - return null; - - CSSRule ret = (CSSRule) replaceChild((CSSNodeImpl) newRule, (CSSNodeImpl) oldRule); - return ret; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSModelCreationContext.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSModelCreationContext.java deleted file mode 100644 index 8494a09af6..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSModelCreationContext.java +++ /dev/null @@ -1,155 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 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.document; - - - -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; - - -/** - * currently public but may be made default access protected in future. - */ -public class CSSModelCreationContext { - - private CSSNodeImpl fRootNode = null; - private CSSNodeImpl fTargetNode = null; - private CSSNodeImpl fNextNode = null; - private int fReparseStart = -1; - private int fReparseEnd = -1; - - /** - * CSSModelContext constructor comment. - */ - CSSModelCreationContext(CSSNodeImpl rootNode) { - super(); - - fRootNode = rootNode; - } - - /** - * - */ - void clear() { - fNextNode = null; - fTargetNode = null; - resetReparseRange(); - } - - /** - * currently public but may be made default access protected in future. - */ - public CSSNodeImpl getNextNode() { - return fNextNode; - } - - /** - * - */ - int getReparseEnd() { - return fReparseEnd; - } - - /** - * - */ - int getReparseStart() { - return fReparseStart; - } - - /** - * - */ - CSSNodeImpl getRootNode() { - return fRootNode; - } - - /** - * currently public but may be made default access protected in future. - */ - public CSSNodeImpl getTargetNode() { - return fTargetNode; - } - - /** - * - */ - boolean isToReparse() { - return (0 <= getReparseStart() && 0 <= getReparseEnd()); - } - - /** - * - */ - void resetReparseRange() { - fReparseStart = fReparseEnd = -1; - } - - /** - * - */ - void setLast() { - fNextNode = null; - - if (!(fRootNode instanceof CSSStructuredDocumentRegionContainer)) { - fTargetNode = fRootNode; - } - else { - IStructuredDocumentRegion lastStructuredDocumentRegion = ((CSSStructuredDocumentRegionContainer) fRootNode).getLastStructuredDocumentRegion(); - CSSNodeImpl node = fRootNode; - while (node != null) { - ICSSNode lastChild = node.getLastChild(); - if (lastChild instanceof CSSStructuredDocumentRegionContainer && ((CSSStructuredDocumentRegionContainer) lastChild).getLastStructuredDocumentRegion() == lastStructuredDocumentRegion) { - node = (CSSNodeImpl) lastChild; - } - else { - break; - } - } - fTargetNode = node; - } - } - - /** - * - */ - void setNextNode(ICSSNode node) { - fNextNode = (CSSNodeImpl) node; - if (fNextNode != null) { - fTargetNode = (CSSNodeImpl) fNextNode.getParentNode(); - } - } - - /** - * - */ - void setReparseEnd(int end) { - fReparseEnd = end; - } - - /** - * - */ - void setReparseStart(int start) { - fReparseStart = start; - } - - /** - * - */ - void setTargetNode(ICSSNode node) { - fTargetNode = (CSSNodeImpl) node; - if (fNextNode != null && fNextNode.getParentNode() != fTargetNode) { - fNextNode = null; - } - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSModelDeletionContext.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSModelDeletionContext.java deleted file mode 100644 index a864d433d0..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSModelDeletionContext.java +++ /dev/null @@ -1,268 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.document; - - - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Enumeration; -import java.util.Iterator; - -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.eclipse.wst.css.core.internal.util.CSSUtil; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegionList; - - -/** - * - */ -class CSSModelDeletionContext { - - private int fOldStart = -1; - private int fOldLength = 0; - private int fNewStart = -1; - private int fNewLength = 0; - private int fLengthDifference = 0; - private IStructuredDocumentRegionList fOldStructuredDocumentRegions = null; - // private ICSSNode fRootNode = null; - private int fRemovedRangeBegin = -1; - private int fRemovedRangeEnd = -1; - private CSSNodeListImpl fNodesToBeRemoved = new CSSNodeListImpl(); - - /** - * CSSModelDeletionContext constructor comment. - */ - CSSModelDeletionContext(ICSSNode rootNode) { - super(); - - // fRootNode = rootNode; - } - - /** - * - */ - boolean addNodeToBeRemoved(ICSSNode node) { - int nNodes = fNodesToBeRemoved.getLength(); - for (int i = 0; i < nNodes; i++) { - ICSSNode parent = fNodesToBeRemoved.item(i); - if (CSSModelUtil.isParentOf(parent, node)) { - return false; - } - } - fNodesToBeRemoved.appendNode(node); - return true; - } - - /** - * - */ - void expandRemovedRangeBegin(IStructuredDocumentRegion flatNode) { - if (flatNode == null) { - return; - } - int newBegin = flatNode.getStart(); // fOldStart == fNewStart, right?? - if (fRemovedRangeBegin < 0 || newBegin < fRemovedRangeBegin) { - fRemovedRangeBegin = newBegin; - } - } - - /** - * - */ - void expandRemovedRangeEnd(IStructuredDocumentRegion flatNode) { - if (flatNode == null) { - return; - } - int newEnd = flatNode.getEnd() + ((isOldNode(flatNode)) ? fLengthDifference : 0); - if (fRemovedRangeEnd < 0 || fRemovedRangeEnd < newEnd) { - fRemovedRangeEnd = newEnd; - } - } - - /** - * - */ - private CSSStructuredDocumentRegionContainer findContainer(CSSNodeImpl parent, IStructuredDocumentRegion flatNode) { - if (parent instanceof CSSStructuredDocumentRegionContainer) { - // Am i a container of flatNode? - IStructuredDocumentRegion firstNode = ((CSSStructuredDocumentRegionContainer) parent).getFirstStructuredDocumentRegion(); - IStructuredDocumentRegion lastNode = ((CSSStructuredDocumentRegionContainer) parent).getLastStructuredDocumentRegion(); - int firstStart = getOriginalOffset(firstNode); - int lastStart = getOriginalOffset(lastNode); - int start = flatNode.getStart(); - - if (firstStart <= start && start <= lastStart) { - // I am a container, is my child a container ? - for (ICSSNode node = parent.getFirstChild(); node != null; node = node.getNextSibling()) { - if (node instanceof CSSNodeImpl) { - CSSStructuredDocumentRegionContainer container = findContainer((CSSNodeImpl) node, flatNode); - if (container != null) { - return container; - } - } - } - return (CSSStructuredDocumentRegionContainer) parent; - } - } - - return null; - } - - /** - * - */ - CSSStructuredDocumentRegionContainer findDeletionTarget(CSSNodeImpl parent, IStructuredDocumentRegion flatNode) { - CSSStructuredDocumentRegionContainer target = findContainer(parent, flatNode); - if (target == null) { - return null; - } - - // System.out.print(flatNode.toString() + ": "); - - // child a(=====)b(=====)c - // parent (================) a,c can remove parent, but b cannot. - - ICSSNode child; - - for (child = target.getFirstChild(); child != null && !(child instanceof CSSStructuredDocumentRegionContainer); child = child.getNextSibling()) { - // just advancing - } - - if (child == null) { - // System.out.println("target has no children."); // TESTBYCOZY - return target; // has no child containers. - } - else { - IStructuredDocumentRegion firstNode = ((CSSStructuredDocumentRegionContainer) child).getFirstStructuredDocumentRegion(); - if (flatNode.getStart() < getOriginalOffset(firstNode)) { - // System.out.println("flatNode is in front of first child"); - // // TESTBYCOZY - return target; // a - } - } - - for (child = target.getLastChild(); child != null && !(child instanceof CSSStructuredDocumentRegionContainer); child = child.getPreviousSibling()) { - // just advancing - } - - if (child == null) { - // System.out.println("target has no children."); // TESTBYCOZY - return target; // has no child containers. - } - else { - IStructuredDocumentRegion firstNode = ((CSSStructuredDocumentRegionContainer) child).getFirstStructuredDocumentRegion(); - if (getOriginalOffset(firstNode) < flatNode.getStart()) { - // System.out.println("flatNode is in after of last child"); - // // TESTBYCOZY - return target; // c - } - } - - // System.out.println("flatNode inner of children"); // TESTBYCOZY - return null; // b - } - - /** - * - */ - Iterator getNodesToBeRemoved() { - Collection nodes = new ArrayList(); - int nNodes = fNodesToBeRemoved.getLength(); - for (int i = 0; i < nNodes; i++) { - nodes.add(fNodesToBeRemoved.item(i)); - } - return nodes.iterator(); - } - - /** - * - */ - private int getOriginalOffset(IStructuredDocumentRegion flatNode) { - int offset = 0; - if (flatNode != null) { - offset = flatNode.getStart(); - if (0 <= fLengthDifference) { - if (fNewStart + fNewLength < offset) { - offset -= fLengthDifference; - } - } - else { - if (fOldStart + fOldLength <= offset || (fNewStart < 0 && fOldStart <= offset && !isOldNode(flatNode)) || (0 <= fNewStart && fNewStart + fNewLength <= offset && !isOldNode(flatNode))) { - offset -= fLengthDifference; - } - } - } - - return offset; - } - - /** - * - */ - int getRemovedRangeBegin() { - return fRemovedRangeBegin; - } - - /** - * - */ - int getRemovedRangeEnd() { - return fRemovedRangeEnd; - } - - /** - * - */ - private boolean isOldNode(IStructuredDocumentRegion flatNode) { - if (fOldStructuredDocumentRegions != null) { - for (Enumeration e = fOldStructuredDocumentRegions.elements(); e.hasMoreElements();) { - if (e.nextElement() == flatNode) { - return true; - } - } - } - - return false; - } - - /** - * - */ - void setupContext(IStructuredDocumentRegionList newStructuredDocumentRegions, IStructuredDocumentRegionList oldStructuredDocumentRegions) { - IStructuredDocumentRegion flatNode = null; - fOldLength = CSSUtil.getTextLength(oldStructuredDocumentRegions); - if (oldStructuredDocumentRegions != null && 0 < oldStructuredDocumentRegions.getLength() && (flatNode = oldStructuredDocumentRegions.item(0)) != null) { - fOldStart = flatNode.getStart(); - } - else { - fOldStart = -1; - } - fNewLength = CSSUtil.getTextLength(newStructuredDocumentRegions); - if (newStructuredDocumentRegions != null && 0 < newStructuredDocumentRegions.getLength() && (flatNode = newStructuredDocumentRegions.item(0)) != null) { - fNewStart = flatNode.getStart(); - fRemovedRangeBegin = fNewStart; - fRemovedRangeEnd = fNewStart + fNewLength; - } - else { - fNewStart = -1; - fRemovedRangeBegin = fRemovedRangeEnd = -1; - } - fLengthDifference = fNewLength - fOldLength; - fOldStructuredDocumentRegions = oldStructuredDocumentRegions; - - // cleanup nodes - while (0 < fNodesToBeRemoved.getLength()) { - fNodesToBeRemoved.removeNode(0); - } - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSModelImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSModelImpl.java deleted file mode 100644 index 03d6d40af3..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSModelImpl.java +++ /dev/null @@ -1,624 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 2006 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.document; - - - -import java.util.Iterator; -import java.util.List; -import java.util.Vector; - -import org.eclipse.wst.css.core.internal.event.ICSSStyleListener; -import org.eclipse.wst.css.core.internal.eventimpl.CSSEmbededStyleNotifyAdapter; -import org.eclipse.wst.css.core.internal.eventimpl.CSSStyleNotifyAdapter; -import org.eclipse.wst.css.core.internal.parser.CSSSourceParser; -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.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.ICSSSelector; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSSelectorList; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleDeclaration; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleRule; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSValue; -import org.eclipse.wst.css.core.internal.util.ImportRuleCollector; -import org.eclipse.wst.css.core.internal.util.ImportedCollector; -import org.eclipse.wst.css.core.internal.util.SelectorsCollector; -import org.eclipse.wst.sse.core.internal.ltk.parser.RegionParser; -import org.eclipse.wst.sse.core.internal.model.AbstractStructuredModel; -import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; -import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion; -import org.eclipse.wst.sse.core.internal.provisional.events.IStructuredDocumentListener; -import org.eclipse.wst.sse.core.internal.provisional.events.NewDocumentEvent; -import org.eclipse.wst.sse.core.internal.provisional.events.NoChangeEvent; -import org.eclipse.wst.sse.core.internal.provisional.events.RegionChangedEvent; -import org.eclipse.wst.sse.core.internal.provisional.events.RegionsReplacedEvent; -import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentRegionsReplacedEvent; -import org.eclipse.wst.sse.core.internal.provisional.exceptions.ResourceInUse; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegionList; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList; -import org.eclipse.wst.sse.core.internal.util.Assert; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - - - -public class CSSModelImpl extends AbstractStructuredModel implements ICSSModel, IStructuredDocumentListener { - - private CSSDocumentImpl document = null; - private org.w3c.dom.Node ownerNode = null; - private CSSStyleNotifyAdapter styleNotifier = null; - private CSSModelParser fParser = null; - private CSSModelUpdater fUpdater = null; - private boolean fStructuredDocumentUpdate = false; - private final static String ID_NON_EXTERNAL_CSS = "**_NON_EXTERNAL_CSS_***";//$NON-NLS-1$ - - /** - * CSSModelImpl constructor comment. - * - */ - public CSSModelImpl() { - super(); - } - - /** - * @param listener - * org.eclipse.wst.css.core.event.CSSStyleListener - */ - public void addStyleListener(ICSSStyleListener listener) { - getStyleNotifier().addStyleListener(listener); - } - - void attrReplaced(CSSNodeImpl parentNode, CSSNodeImpl newAttr, CSSNodeImpl oldAttr) { - if (!fStructuredDocumentUpdate) { - CSSModelUpdater updater = getUpdater(); - updater.attrReplaced(parentNode, newAttr, oldAttr); - } - - ICSSSelector removed[] = null, added[] = null; - if (oldAttr != null && oldAttr.getNodeType() == ICSSNode.ATTR_NODE && ((CSSAttrImpl) oldAttr).getName().equals(ICSSStyleRule.SELECTOR)) { - CSSAttrImpl attr = (CSSAttrImpl) oldAttr; - // collect changed selector - ICSSSelectorList list = new CSSSelectorListImpl(attr.getValue()); - removed = new ICSSSelector[list.getLength()]; - for (int i = 0; i < list.getLength(); i++) - removed[i] = list.getSelector(i); - } - if (newAttr != null && newAttr.getNodeType() == ICSSNode.ATTR_NODE && ((CSSAttrImpl) newAttr).getName().equals(ICSSStyleRule.SELECTOR)) { - CSSAttrImpl attr = (CSSAttrImpl) newAttr; - // collect changed selector - ICSSSelectorList list = new CSSSelectorListImpl(attr.getValue()); - added = new ICSSSelector[list.getLength()]; - for (int i = 0; i < list.getLength(); i++) - added[i] = list.getSelector(i); - } - if (removed != null || added != null || getDocument().getNodeType() == ICSSNode.STYLEDECLARATION_NODE) { - getStyleNotifier().fire(removed, added, null); - } - // for href attribute - if (getStyleListeners() != null && getStyleListeners().size() > 0) { - boolean update = false; - if (oldAttr != null && oldAttr.getNodeType() == ICSSNode.ATTR_NODE && ((CSSAttrImpl) oldAttr).getName().equals(ICSSImportRule.HREF)) { - update = true; - } - if (newAttr != null && newAttr.getNodeType() == ICSSNode.ATTR_NODE && ((CSSAttrImpl) newAttr).getName().equals(ICSSImportRule.HREF)) { - update = true; - } - if (update) - ((ICSSImportRule) parentNode).getStyleSheet(); - } - } - - /** - * - */ - public void beginRecording(Object requester, String label, String description) { - getStyleNotifier().beginRecording(); - - Node node = getOwnerDOMNode(); - if (node != null && node instanceof IDOMNode) { - IStructuredModel model = ((IDOMNode) node).getModel(); - if (model != null) { - model.beginRecording(requester, label, description); - return; - } - } - super.beginRecording(requester, label, description); - } - - void childReplaced(CSSNodeImpl parentNode, CSSNodeImpl newChild, CSSNodeImpl oldChild) { - if (!fStructuredDocumentUpdate) { - CSSModelUpdater updater = getUpdater(); - updater.childReplaced(parentNode, newChild, oldChild); - } - - // always check and send selector event - ICSSSelector removed[] = null, added[] = null; - if (parentNode.getNodeType() == ICSSNode.STYLESHEET_NODE || parentNode.getNodeType() == ICSSNode.MEDIARULE_NODE) { - // collect old selectors - SelectorsCollector selTrav = new SelectorsCollector(); - selTrav.apply(oldChild); - int nSel = selTrav.getSelectors().size(); - if (nSel > 0) { - removed = new ICSSSelector[nSel]; - for (int i = 0; i < nSel; i++) - removed[i] = (ICSSSelector) selTrav.getSelectors().get(i); - } - // collect new selectors - selTrav = new SelectorsCollector(); - selTrav.apply(newChild); - nSel = selTrav.getSelectors().size(); - if (nSel > 0) { - added = new ICSSSelector[nSel]; - for (int i = 0; i < nSel; i++) - added[i] = (ICSSSelector) selTrav.getSelectors().get(i); - } - } - else { - // modification - ICSSNode rule = parentNode; - while (rule != null) { - if (rule instanceof ICSSStyleRule) - break; - rule = rule.getParentNode(); - } - if (rule != null) { - ICSSSelectorList list = ((ICSSStyleRule) rule).getSelectors(); - added = new ICSSSelector[list.getLength()]; - for (int i = 0; i < list.getLength(); i++) - added[i] = list.getSelector(i); - } - } - if (removed != null || added != null || getDocument().getNodeType() == ICSSNode.STYLEDECLARATION_NODE) { - // send selector changed event - getStyleNotifier().fire(removed, added, null); - } - // close removed import-rule's external style sheets - { - ImportRuleCollector trav = new ImportRuleCollector(); - trav.apply(oldChild); - Iterator it = trav.getRules().iterator(); - while (it.hasNext()) { - ((CSSImportRuleImpl) it.next()).closeStyleSheet(); - } - } - // send events to listener for new import-rules - if (getStyleListeners() != null && getStyleListeners().size() > 0) { - ImportedCollector trav = new ImportedCollector(); - trav.apply(newChild); - } - } - - /** - * - */ - private void closeImported() { - if (!isShared()) { - // release listeners - if (getStyleListeners() != null) { - Vector toRemove = new Vector(getStyleListeners()); - Iterator it = toRemove.iterator(); - while (it.hasNext()) { - removeStyleListener((ICSSStyleListener) it.next()); - } - } - // close import rules - ImportRuleCollector trav = new ImportRuleCollector(); - trav.apply(getDocument()); - Iterator it2 = trav.getRules().iterator(); - while (it2.hasNext()) { - ((CSSImportRuleImpl) it2.next()).releaseRule(); - } - } - } - - private CSSDocumentImpl createDocument() { - CSSDocumentImpl doc = null; - int parserMode = CSSSourceParser.MODE_STYLESHEET; - if (ownerNode == null) { - // this case is external CSS file - doc = (CSSStyleSheetImpl) DOMCSSImpl.createCSSStyleSheet(null, null); // parameters - // are - // for - // STYLE-tag - parserMode = CSSSourceParser.MODE_STYLESHEET; - } - else if (ownerNode instanceof org.w3c.dom.Element && ((Element) ownerNode).getTagName().toUpperCase().equals("STYLE")) {//$NON-NLS-1$ - // this case is STYLE-tag - Element style = (Element) ownerNode; - doc = (CSSStyleSheetImpl) DOMCSSImpl.createCSSStyleSheet(style.getAttribute("TITLE"), //$NON-NLS-1$ - style.getAttribute("MEDIA"));//$NON-NLS-1$ - parserMode = CSSSourceParser.MODE_STYLESHEET; - } - else if (ownerNode instanceof org.w3c.dom.Element || ownerNode instanceof org.w3c.dom.Attr) { - // Inline attributes - doc = (CSSStyleDeclarationImpl) DOMCSSImpl.createCSSStyleDeclaration(); - parserMode = CSSSourceParser.MODE_DECLARATION; - } - RegionParser regionParser = getStructuredDocument().getParser(); - if (regionParser instanceof CSSSourceParser) { - ((CSSSourceParser) regionParser).setParserMode(parserMode); - } - return doc; - } - - /** - * - */ - public void endRecording(Object requester) { - Node node = getOwnerDOMNode(); - if (node != null && node instanceof IDOMNode) { - IStructuredModel model = ((IDOMNode) node).getModel(); - if (model != null) { - model.endRecording(requester); - return; - } - } - super.endRecording(requester); - - getStyleNotifier().endRecording(); - } - - public ICSSDocument getDocument() { - if (document == null) { - this.document = createDocument(); - this.document.setModel(this); - } - return this.document; - } - - public IStructuredDocument getStructuredDocument() { - IStructuredDocument structuredDocument = null; - structuredDocument = super.getStructuredDocument(); - if (structuredDocument != null) - return structuredDocument; - - // the first time - Assert.isNotNull(getModelHandler()); - structuredDocument = (IStructuredDocument) getModelHandler().getDocumentLoader().createNewStructuredDocument(); - - setStructuredDocument(structuredDocument); - return structuredDocument; - } - - /** - * getNode method comment. - */ - public IndexedRegion getIndexedRegion(int offset) { - if (getDocument() == null) - return null; - return ((CSSStructuredDocumentRegionContainer) getDocument()).getContainerNode(offset); - } - - /** - * @return org.w3c.dom.Node - */ - public Node getOwnerDOMNode() { - return ownerNode; - } - - /** - * @param ownerNode - * org.w3c.dom.Node if the case of external CSS model, you - * should set null, else if internal css, you should set - * STYLE-tag node, else if inline css, you should set the - * element that is the owner of style-attribute. - */ - public void setOwnerDOMNode(Node node) { - // prohibit owner change - Assert.isTrue(ownerNode == null); - ownerNode = node; - if (ownerNode != null) { // for internal/inline CSS context - try { - setId(ID_NON_EXTERNAL_CSS); - } - catch (ResourceInUse e) { - // impossible - } - } - } - - /** - * currently public but may be made default access protected in future. - */ - protected CSSModelParser getParser() { - if (fParser == null) { - if (getDocument() != null) { - fParser = new CSSModelParser(document); - } - } - return fParser; - } - - /** - * @return java.util.List - */ - public List getStyleListeners() { - return getStyleNotifier().getStyleListeners(); - } - - /** - * - * @return java.lang.Object - */ - public java.lang.Object getStyleSheetType() { - if (getDocument() instanceof ICSSStyleDeclaration) - return INLINE; - if (getOwnerDOMNode() != null) - return EMBEDDED; - else - return EXTERNAL; - } - - private CSSStyleNotifyAdapter getStyleNotifier() { - if (styleNotifier == null) { - styleNotifier = (ownerNode != null) ? new CSSEmbededStyleNotifyAdapter(this) : new CSSStyleNotifyAdapter(this); - } - return styleNotifier; - } - - /** - * - */ - private CSSModelUpdater getUpdater() { - if (fUpdater == null) { - fUpdater = new CSSModelUpdater(this); - fUpdater.setParser(getParser()); - } - return fUpdater; - } - - /** - */ - public boolean isRecording() { - return getStyleNotifier().isRecording(); - } - - /** - * This function returns true if there are other references to the - * underlying model. - */ - public boolean isShared() { - return (getStyleSheetType() == EXTERNAL) && super.isShared(); - } - - public void newModel(NewDocumentEvent structuredDocumentEvent) { - if (structuredDocumentEvent == null) - return; - IStructuredDocument structuredDocument = structuredDocumentEvent.getStructuredDocument(); - if (structuredDocument == null) - return; - // this should not happen, but for the case - if (structuredDocument != getStructuredDocument()) - setStructuredDocument(structuredDocument); - IStructuredDocumentRegionList flatNodes = structuredDocument.getRegionList(); - if (flatNodes == null) - return; - if (getDocument() == null) - return; - - fStructuredDocumentUpdate = true; - - ((CSSStructuredDocumentRegionContainer) getDocument()).removeChildNodes(); - - CSSModelParser parser = getParser(); - parser.setStructuredDocumentEvent(structuredDocumentEvent); - parser.replaceStructuredDocumentRegions(flatNodes, null); - - fStructuredDocumentUpdate = false; - } - - /** - * noChange method comment. - */ - public void noChange(NoChangeEvent structuredDocumentEvent) { - // nop - } - - public void nodesReplaced(StructuredDocumentRegionsReplacedEvent structuredDocumentEvent) { - if (structuredDocumentEvent == null) { - return; - } - IStructuredDocumentRegionList oldStructuredDocumentRegions = structuredDocumentEvent.getOldStructuredDocumentRegions(); - IStructuredDocumentRegionList newStructuredDocumentRegions = structuredDocumentEvent.getNewStructuredDocumentRegions(); - if (oldStructuredDocumentRegions == null && newStructuredDocumentRegions == null) { - return; - } - - fStructuredDocumentUpdate = true; - - CSSModelParser parser = getParser(); - parser.setStructuredDocumentEvent(structuredDocumentEvent); - parser.replaceStructuredDocumentRegions(newStructuredDocumentRegions, oldStructuredDocumentRegions); - - fStructuredDocumentUpdate = false; - } - - /** - * cleanup -> rebuild CSS Nodes This is pre-beta fix for 178176. - */ - public void refreshNodes() { - // cleanup old nodes - fStructuredDocumentUpdate = true; - ((CSSStructuredDocumentRegionContainer) getDocument()).removeChildNodes(); - fStructuredDocumentUpdate = false; - - getParser().cleanupUpdateContext(); - - IStructuredDocument structuredDocument = getStructuredDocument(); - String source = structuredDocument.getText(); - - structuredDocument.replaceText(this, 0, source.length(), null); - structuredDocument.replaceText(this, 0, 0, source); - } - - public void regionChanged(RegionChangedEvent structuredDocumentEvent) { - if (structuredDocumentEvent == null) { - return; - } - IStructuredDocumentRegion flatNode = structuredDocumentEvent.getStructuredDocumentRegion(); - if (flatNode == null) { - return; - } - ITextRegion region = structuredDocumentEvent.getRegion(); - if (region == null) { - return; - } - - fStructuredDocumentUpdate = true; - - CSSModelParser parser = getParser(); - parser.setStructuredDocumentEvent(structuredDocumentEvent); - parser.changeRegion(flatNode, region); - - fStructuredDocumentUpdate = false; - } - - public void regionsReplaced(RegionsReplacedEvent structuredDocumentEvent) { - if (structuredDocumentEvent == null) - return; - IStructuredDocumentRegion flatNode = structuredDocumentEvent.getStructuredDocumentRegion(); - if (flatNode == null) - return; - ITextRegionList oldRegions = structuredDocumentEvent.getOldRegions(); - ITextRegionList newRegions = structuredDocumentEvent.getNewRegions(); - if (oldRegions == null && newRegions == null) - return; - - fStructuredDocumentUpdate = true; - - CSSModelParser parser = getParser(); - parser.setStructuredDocumentEvent(structuredDocumentEvent); - parser.replaceRegions(flatNode, newRegions, oldRegions); - - fStructuredDocumentUpdate = false; - - } - - /** - * - */ - public void releaseFromEdit() { - closeImported(); - if (getStyleSheetType() == EXTERNAL) { - super.releaseFromEdit(); - } - } - - /** - * - */ - public void releaseFromRead() { - closeImported(); - if (getStyleSheetType() == EXTERNAL) { - super.releaseFromRead(); - } - } - - /** - * @param listener - * org.eclipse.wst.css.core.event.CSSStyleListener - */ - public void removeStyleListener(ICSSStyleListener listener) { - getStyleNotifier().removeStyleListener(listener); - } - - public void setStructuredDocument(IStructuredDocument newStructuredDocument) { - IStructuredDocument oldStructuredDocument = super.getStructuredDocument(); - if (newStructuredDocument == oldStructuredDocument) - return; // noting to do - - if (oldStructuredDocument != null) - oldStructuredDocument.removeDocumentChangingListener(this); - super.setStructuredDocument(newStructuredDocument); - - if (newStructuredDocument != null) { - if (newStructuredDocument.getLength() > 0) { - newModel(new NewDocumentEvent(newStructuredDocument, this)); - } - newStructuredDocument.addDocumentChangingListener(this); - } - } - - /** - * @param srcModel - * com.imb.sed.css.mode.intefaces.ICSSModel - * @param removed - * org.eclipse.wst.css.core.model.interfaces.ICSSSelector[] - * @param added - * org.eclipse.wst.css.core.model.interfaces.ICSSSelector[] - */ - public void styleChanged(ICSSModel srcModel, ICSSSelector[] removed, ICSSSelector[] added, String media) { - getStyleNotifier().styleChanged(srcModel, removed, added, media); - } - - /** - * @param srcModel - * org.eclipse.wst.css.core.model.interfaces.ICSSModel - */ - public void styleUpdate(ICSSModel srcModel) { - getStyleNotifier().styleUpdate(srcModel); - } - - void valueChanged(CSSNodeImpl node, String oldValue) { - if (!fStructuredDocumentUpdate) { - CSSModelUpdater updater = getUpdater(); - updater.valueChanged(node, oldValue); - } - - ICSSSelector removed[] = null, added[] = null; - if (node != null) { - if (node.getNodeType() == ICSSNode.ATTR_NODE && ((CSSAttrImpl) node).getName().equals(ICSSStyleRule.SELECTOR)) { - CSSAttrImpl attr = (CSSAttrImpl) node; - // collect changed selector - ICSSSelectorList list = new CSSSelectorListImpl(attr.getValue()); - added = new ICSSSelector[list.getLength()]; - for (int i = 0; i < list.getLength(); i++) - added[i] = list.getSelector(i); - - // get old value - list = new CSSSelectorListImpl(oldValue); - removed = new ICSSSelector[list.getLength()]; - for (int i = 0; i < list.getLength(); i++) - removed[i] = list.getSelector(i); - } - else if (node instanceof ICSSValue) { - ICSSNode rule = node; - while (rule != null) { - if (rule instanceof ICSSStyleRule) - break; - rule = rule.getParentNode(); - } - if (rule != null) { - ICSSSelectorList list = ((ICSSStyleRule) rule).getSelectors(); - added = new ICSSSelector[list.getLength()]; - for (int i = 0; i < list.getLength(); i++) - added[i] = list.getSelector(i); - } - } - } - if (removed != null || added != null || getDocument().getNodeType() == ICSSNode.STYLEDECLARATION_NODE) { - // send selector changed event - getStyleNotifier().fire(removed, added, null); - } - // for href attribute - if (getStyleListeners() != null && getStyleListeners().size() > 0) { - if (node != null && node.getNodeType() == ICSSNode.ATTR_NODE && ((CSSAttrImpl) node).getName().equals(ICSSImportRule.HREF)) { - ((ICSSImportRule) ((ICSSAttr) node).getOwnerCSSNode()).getStyleSheet(); - } - } - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSModelNodeFeeder.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSModelNodeFeeder.java deleted file mode 100644 index d6e6486406..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSModelNodeFeeder.java +++ /dev/null @@ -1,126 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 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.document; - -import org.eclipse.wst.css.core.internal.provisional.document.ICSSDocument; - - -/** - * - */ -class CSSModelNodeFeeder { - /** - * currently ICSSDocument is used but may go back to CSSDocumentImpl in future. - */ - ICSSDocument fDocument = null; - CSSModelUpdateContext fUpdateContext = null; - - /** - * CSSModelNodeFeeder constructor comment. - */ - CSSModelNodeFeeder() { - super(); - } - - /** - * CSSModelNodeFeeder constructor comment. - * currently ICSSDocument is used but may go back to CSSDocumentImpl in future. - */ - CSSModelNodeFeeder(ICSSDocument document, CSSModelUpdateContext updateContext) { - super(); - fDocument = document; - fUpdateContext = updateContext; - } - - /** - * - */ - CSSCharsetRuleImpl getCSSCharsetRule() { - CSSCharsetRuleImpl node; - if (fUpdateContext.isActive()) { - node = fUpdateContext.getCSSCharsetRule(); - } - else { - node = (CSSCharsetRuleImpl) fDocument.createCSSCharsetRule(); - } - return node; - } - - /** - * - */ - CSSFontFaceRuleImpl getCSSFontFaceRule() { - CSSFontFaceRuleImpl node; - if (fUpdateContext.isActive()) { - node = fUpdateContext.getCSSFontFaceRule(); - } - else { - node = (CSSFontFaceRuleImpl) fDocument.createCSSFontFaceRule(); - } - return node; - } - - /** - * - */ - CSSImportRuleImpl getCSSImportRule() { - CSSImportRuleImpl node; - if (fUpdateContext.isActive()) { - node = fUpdateContext.getCSSImportRule(); - } - else { - node = (CSSImportRuleImpl) fDocument.createCSSImportRule(); - } - return node; - } - - /** - * - */ - CSSMediaRuleImpl getCSSMediaRule() { - CSSMediaRuleImpl node; - if (fUpdateContext.isActive()) { - node = fUpdateContext.getCSSMediaRule(); - } - else { - node = (CSSMediaRuleImpl) fDocument.createCSSMediaRule(); - } - return node; - } - - /** - * - */ - CSSPageRuleImpl getCSSPageRule() { - CSSPageRuleImpl node; - if (fUpdateContext.isActive()) { - node = fUpdateContext.getCSSPageRule(); - } - else { - node = (CSSPageRuleImpl) fDocument.createCSSPageRule(); - } - return node; - } - - /** - * - */ - CSSStyleRuleImpl getCSSStyleRule() { - CSSStyleRuleImpl node; - if (fUpdateContext.isActive()) { - node = fUpdateContext.getCSSStyleRule(); - } - else { - node = (CSSStyleRuleImpl) fDocument.createCSSStyleRule(); - } - return node; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSModelParser.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSModelParser.java deleted file mode 100644 index 82adaa2543..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSModelParser.java +++ /dev/null @@ -1,1296 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2007 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.document; - -import java.util.Collection; -import java.util.Enumeration; -import java.util.HashSet; -import java.util.Iterator; - -import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts; -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.ICSSMediaRule; -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.ICSSPageRule; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSRuleContainer; -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.text.StructuredDocumentWalker; -import org.eclipse.wst.css.core.internal.util.CSSUtil; -import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentEvent; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegionList; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList; -import org.eclipse.wst.sse.core.internal.text.BasicStructuredDocumentRegion; -import org.eclipse.wst.sse.core.internal.text.CoreNodeList; -import org.eclipse.wst.sse.core.internal.text.TextRegionListImpl; -import org.eclipse.wst.sse.core.internal.util.Assert; -import org.w3c.dom.css.CSSFontFaceRule; -import org.w3c.dom.css.CSSRule; -import org.w3c.dom.css.CSSStyleDeclaration; - - -/** - * currently public but may be made default access protected in future. - */ -public class CSSModelParser { - - private ICSSDocument fDocument = null; - private CSSModelCreationContext fCreationContext = null; - private CSSModelDeletionContext fDeletionContext = null; - private CSSModelUpdateContext fUpdateContext = null; - private CSSModelNodeFeeder fFeeder = null; - private StructuredDocumentWalker fStructuredDocumentWalker = null; - private boolean fParseFloating = false; - - /** - * CSSModelParser constructor comment. - */ - private CSSModelParser() { - super(); - } - - /** - * currently provded this method but may be removed in future. - */ - protected boolean isParseFloating(){ - return fParseFloating; - } - /** - * currently provded this method but may be removed in future. - */ - protected CSSModelCreationContext getCreationContext(){ - return fCreationContext; - } - /** - * currently provded this method but may be removed in future. - */ - protected boolean isUpdateContextActive(){ - return fUpdateContext != null ? fUpdateContext.isActive() : false; - } - /** - * currently public but may be made default access protected in future. - */ - public CSSModelParser(ICSSDocument doc) { - this(); - fDocument = doc; - fCreationContext = new CSSModelCreationContext((CSSNodeImpl)doc); - fDeletionContext = new CSSModelDeletionContext(doc); - fUpdateContext = new CSSModelUpdateContext(); - fFeeder = new CSSModelNodeFeeder(doc, fUpdateContext); - } - - /** - * - */ - void changeStructuredDocumentRegion(IStructuredDocumentRegion flatNode) { - replaceStructuredDocumentRegions(new CoreNodeList(flatNode, flatNode), new CoreNodeList(flatNode, flatNode)); - } - - /** - * - */ - void changeRegion(IStructuredDocumentRegion flatNode, ITextRegion region) { - if (flatNode == null || region == null) { - return; - } - if (fDocument == null) { - return; - } - - changeStructuredDocumentRegion(flatNode); - } - - /** - * - */ - private void checkNextNode(IStructuredDocumentRegion flatNode, String type) { - IStructuredDocumentRegion next = CSSUtil.findNextSignificantNode(flatNode); - if (CSSUtil.getStructuredDocumentRegionType(next) == type) { - fCreationContext.setReparseStart(flatNode.getEnd()); - fCreationContext.setReparseEnd(next.getEnd()); - } - } - - /** - * - */ - private void cleanupDeletionContext() { - // setupDeletionContext(null); - } - - /** - * - */ - boolean cleanupFirstNode(IStructuredDocumentRegion firstNode, CSSStructuredDocumentRegionContainer target) { - if (firstNode == null || target == null) { - return false; - } - - if (firstNode == target.getFirstStructuredDocumentRegion()) { - IStructuredDocumentRegion nextNode = fStructuredDocumentWalker.getNextNodeInCurrent(firstNode); - IStructuredDocumentRegion lastNode = target.getLastStructuredDocumentRegion(); - if (lastNode == null || fStructuredDocumentWalker.isOldNode(lastNode) || nextNode == null || lastNode.getStartOffset() < nextNode.getStartOffset()) { - target.setRangeStructuredDocumentRegion(null, null); - } - else { - target.setFirstStructuredDocumentRegion(nextNode); - } - ICSSNode parent = target.getParentNode(); - if (parent instanceof CSSStructuredDocumentRegionContainer) { - cleanupFirstNode(firstNode, (CSSStructuredDocumentRegionContainer) parent); - return true; - } - } - - return false; - } - - /** - * - */ - boolean cleanupLastNode(IStructuredDocumentRegion lastNode, CSSStructuredDocumentRegionContainer target) { - if (lastNode == null || target == null) { - return false; - } - - if (lastNode == target.getLastStructuredDocumentRegion()) { - IStructuredDocumentRegion prevNode = fStructuredDocumentWalker.getPrevNodeInCurrent(lastNode); - IStructuredDocumentRegion firstNode = target.getFirstStructuredDocumentRegion(); - if (firstNode == null || fStructuredDocumentWalker.isOldNode(firstNode) || prevNode == null || prevNode.getStartOffset() < firstNode.getStartOffset()) { - target.setRangeStructuredDocumentRegion(null, null); - } - else { - target.setLastStructuredDocumentRegion(prevNode); - } - ICSSNode parent = target.getParentNode(); - if (parent instanceof CSSStructuredDocumentRegionContainer) { - cleanupLastNode(lastNode, (CSSStructuredDocumentRegionContainer) parent); - return true; - } - } - - return false; - } - - /** - * - */ - int cleanupUpdateContext() { - int remains = fUpdateContext.getNodeCount(); - fUpdateContext.cleanupContext(); - return remains; - } - - /** - * create floating CSS rule (owner document will be set) this is for - * CSSStyleSheet.createCSSRule(String) - * - * @return org.w3c.dom.css.CSSRule - */ - CSSRule createCSSRule(IStructuredDocumentRegionList flatNodes) { - if (flatNodes == null) { - return null; - } - - fParseFloating = true; - - // setup creation context - fCreationContext.clear(); - fCreationContext.setTargetNode(null); - fCreationContext.setNextNode(null); - CSSRuleImpl parentRule = null; - - for (Enumeration e = flatNodes.elements(); e.hasMoreElements();) { - IStructuredDocumentRegion flatNode = (IStructuredDocumentRegion) e.nextElement(); - if (flatNode == null) { - continue; - } - CSSNodeImpl modified = insertStructuredDocumentRegion(flatNode); - if (parentRule == null && modified instanceof CSSRuleImpl) { - parentRule = (CSSRuleImpl) modified; - } - } - - fParseFloating = false; - - if (parentRule != null) { - CSSModelUtil.cleanupContainer(parentRule); - } - - return parentRule; - } - - /** - * - */ - private IStructuredDocumentRegion findBraceClose(int depth, IStructuredDocumentRegion start, boolean bBreakSibling) { - IStructuredDocumentRegion result = null; - int braceLevel = 0; - IStructuredDocumentRegion prevNode = null; - IStructuredDocumentRegion region = start.getNext(); - for (; region != null; region = region.getNext()) { - int offset = region.getStart(); - if (offset < 0) { - Assert.isTrue(false); - break; - } - CSSNodeImpl node = getNodeAt(offset); - int depthHit = (node != null) ? CSSModelUtil.getDepth(node) : -1; - if (depth <= depthHit) { - // sibling is found before "}" - if (bBreakSibling) { - CSSNodeImpl parent = (CSSNodeImpl) node.getParentNode(); - while (depth <= CSSModelUtil.getDepth(parent)) { - node = parent; - parent = (CSSNodeImpl) parent.getParentNode(); - } - if (parent != null && node != null) { - parent.removeChild(node); - } - } - else { - result = prevNode; - break; - } - } - String type = CSSUtil.getStructuredDocumentRegionType(region); - if (type == CSSRegionContexts.CSS_LBRACE) { - braceLevel++; - } - if (type == CSSRegionContexts.CSS_RBRACE) { - braceLevel--; - if (braceLevel < 0) { - result = region; - break; - } - } - prevNode = region; - } - - if (result == null && region == null) { - // reach the end of document - result = prevNode; - } - - return result; - } - - /** - * - */ - private IStructuredDocumentRegionList getStructuredDocumentRegionList(int start, int end) { - IStructuredDocumentRegionList nodeList = null; - if (0 <= start && start <= end) { - ICSSModel model = fDocument.getModel(); - if (model instanceof CSSModelImpl) { - IStructuredDocument structuredDocument = ((CSSModelImpl) model).getStructuredDocument(); - if (structuredDocument != null) { - IStructuredDocumentRegion startNode = structuredDocument.getRegionAtCharacterOffset(start); - IStructuredDocumentRegion endNode = structuredDocument.getRegionAtCharacterOffset(end - 1); - if (startNode != null && endNode != null) { - nodeList = new CoreNodeList(startNode, endNode); - } - } - } - } - - return nodeList; - } - - /** - * - */ - private CSSNodeImpl getNodeAt(int offset) { - CSSNodeImpl rootNode = fCreationContext.getRootNode(); - ICSSNode target = rootNode.getNodeAt(offset); - if (target instanceof CSSNodeImpl) { - return (CSSNodeImpl) target; - } - else { - return null; - } - } - - /** - * - */ - private CSSNodeImpl insertBraceClose(IStructuredDocumentRegion region) { - ICSSNode target = CSSModelUtil.findBraceContainer(fCreationContext.getTargetNode()); - - if (!(target instanceof CSSStructuredDocumentRegionContainer)) { - return null; - } - - CSSStructuredDocumentRegionContainer parent = (CSSStructuredDocumentRegionContainer) target; - if (CSSModelUtil.isInterruption(parent, region)) { - ICSSNode node = parent.getParentNode(); - if (node instanceof CSSNodeImpl) { - fCreationContext.setReparseStart(parent.getStartOffset()); - fCreationContext.setReparseEnd(parent.getEndOffset()); - ((CSSNodeImpl) node).removeChild(parent); - } - return null; - } - - if (parent instanceof ICSSPageRule || parent instanceof ICSSMediaRule || parent instanceof CSSFontFaceRule || parent instanceof ICSSStyleRule) { - CSSModelUtil.expandStructuredDocumentRegionContainer(parent, region); - if (!CSSModelUtil.isBraceClosed(target)) { - fCreationContext.setTargetNode(parent.getParentNode()); - fCreationContext.setNextNode(parent.getNextSibling()); - return parent; - } - } - - return null; - } - - /** - * - */ - private CSSNodeImpl insertBraceOpen(IStructuredDocumentRegion region) { - IStructuredDocumentRegion keyRegion = CSSUtil.findPreviousSignificantNode(region); - if (keyRegion == null) { - return null; - } - if (!fParseFloating) { - CSSNodeImpl node = getNodeAt(keyRegion.getStartOffset()); - if (node != null && !(node instanceof ICSSRuleContainer)) { - return null; - } - } - String type = CSSUtil.getStructuredDocumentRegionType(keyRegion); - - CSSNodeImpl inserted = null; - if (type == CSSRegionContexts.CSS_PAGE) { - inserted = insertPageRule(keyRegion, region); - } - else if (type == CSSRegionContexts.CSS_MEDIA) { - inserted = insertMediaRule(keyRegion, region); - } - else if (type == CSSRegionContexts.CSS_FONT_FACE) { - inserted = insertFontFaceRule(keyRegion, region); - } - else if (CSSUtil.isSelectorText(keyRegion)) { - inserted = insertStyleRule(keyRegion, region); - } - - if (inserted instanceof CSSStructuredDocumentRegionContainer) { - // CSSModelUtil.expandStructuredDocumentRegionContainer((CSSStructuredDocumentRegionContainer)inserted, - // flatNode); - IStructuredDocumentRegion braceClose = findBraceClose(CSSModelUtil.getDepth(inserted), region, (type == CSSRegionContexts.CSS_MEDIA)); - if (braceClose != null) { - fCreationContext.setReparseStart(region.getEnd()); - fCreationContext.setReparseEnd(braceClose.getEnd()); - } - } - - return inserted; - } - - /** - * - */ - private CSSNodeImpl insertCharsetRule(IStructuredDocumentRegion beginDocRegion, IStructuredDocumentRegion endDocRegion) { - CSSNodeImpl parent = fCreationContext.getTargetNode(); - if (!fParseFloating && !(parent instanceof ICSSRuleContainer)) { - return null; - } - - ITextRegionList regions = new TextRegionListImpl(beginDocRegion.getRegions()); - regions.remove(0); // must be "@charset" - ITextRegion encodingRegion = null; - while (!regions.isEmpty()) { - ITextRegion textRegion = regions.remove(0); - if (textRegion == null) { - continue; - } - String type = textRegion.getType(); - if (type == CSSRegionContexts.CSS_S || type == CSSRegionContexts.CSS_COMMENT) { - continue; - } - if (type == CSSRegionContexts.CSS_STRING) { - encodingRegion = textRegion; - break; - } - else { - break; - } - } - if (encodingRegion == null) { - return null; - } - - CSSCharsetRuleImpl rule = fFeeder.getCSSCharsetRule(); - if (rule == null) { - return null; - } - - if (!fUpdateContext.isActive()) { - rule.setAttribute(ICSSCharsetRule.ENCODING, beginDocRegion.getText(encodingRegion)); - } - - // setup flat container - rule.setRangeStructuredDocumentRegion(beginDocRegion, endDocRegion); - CSSAttrImpl attr = rule.getAttributeNode(ICSSCharsetRule.ENCODING); - if (attr != null) { - attr.setRangeRegion(beginDocRegion, encodingRegion, encodingRegion); - } - - // insert to tree - if (!fUpdateContext.isActive() && parent != null) { - propagateRangePreInsert(parent, rule); - CSSNodeImpl next = fCreationContext.getNextNode(); - if (next != null) { - parent.insertBefore(rule, next); - } - else { - parent.appendChild(rule); - } - } - - return rule; - } - - /** - * currently public but may be made default access protected in future. - */ - protected CSSNodeImpl insertStructuredDocumentRegion(IStructuredDocumentRegion region) { - if (fCreationContext == null || region == null) { - return null; - } - - String type = ((BasicStructuredDocumentRegion) region).getType(); - CSSNodeImpl modified = null; - - ICSSNode target = fCreationContext.getTargetNode(); - - if ((fParseFloating && target == null) || target instanceof ICSSRuleContainer) { - if (type == CSSRegionContexts.CSS_DELIMITER) { - modified = insertSemiColonForRule(region); - } - else if (type == CSSRegionContexts.CSS_LBRACE) { - modified = insertBraceOpen(region); - } - else if (type == CSSRegionContexts.CSS_RBRACE) { - modified = insertBraceClose(region); - } - else if (type == CSSRegionContexts.CSS_MEDIA || type == CSSRegionContexts.CSS_PAGE || type == CSSRegionContexts.CSS_FONT_FACE || CSSUtil.isSelectorText(region)) { - checkNextNode(region, CSSRegionContexts.CSS_LBRACE); - } - else if (type == CSSRegionContexts.CSS_IMPORT || type == CSSRegionContexts.CSS_CHARSET) { - checkNextNode(region, CSSRegionContexts.CSS_DELIMITER); - } - } - else if ((target instanceof CSSRuleDeclContainer || target instanceof CSSStyleDeclaration) && type == CSSRegionContexts.CSS_DECLARATION_PROPERTY) { - modified = insertStyleDeclarationItem(region); - } - else if (target instanceof ICSSStyleDeclItem && type == CSSRegionContexts.CSS_DECLARATION_DELIMITER) { - modified = insertSemiColonForStyleDeclarationItem(region); - } - else if (type == CSSRegionContexts.CSS_RBRACE) { - modified = insertBraceClose(region); - } - - // post process - if (modified != null) { - if (modified instanceof CSSStructuredDocumentRegionContainer) { - ((CSSStructuredDocumentRegionContainer) modified).propagateRangeStructuredDocumentRegion(); - } - } - - return modified; - } - - /** - * - */ - private void insertStructuredDocumentRegions(IStructuredDocumentRegionList regionList) { - for (Enumeration e = regionList.elements(); e.hasMoreElements();) { - IStructuredDocumentRegion region = (IStructuredDocumentRegion) e.nextElement(); - if (region == null) { - continue; - } - insertStructuredDocumentRegion(region); - if (fCreationContext.isToReparse()) { - int origStart = region.getEnd(); - int origEnd = regionList.item(regionList.getLength() - 1).getEnd(); - int newStart = fCreationContext.getReparseStart(); - int newEnd = fCreationContext.getReparseEnd(); - if (newStart < origStart || origEnd < newEnd) { - IStructuredDocumentRegionList newNodeList = getStructuredDocumentRegionList(newStart, newEnd); - setupCreationContext(newNodeList.item(0)); - insertStructuredDocumentRegions(newNodeList); - return; - } - else { - fCreationContext.resetReparseRange(); - } - } - } - } - - /** - * - */ - private CSSNodeImpl insertFontFaceRule(IStructuredDocumentRegion region, IStructuredDocumentRegion braceNode) { - CSSNodeImpl parent = fCreationContext.getTargetNode(); - if (!fParseFloating && !(parent instanceof ICSSRuleContainer)) { - return null; - } - - CSSFontFaceRuleImpl rule = fFeeder.getCSSFontFaceRule(); - if (rule == null) { - return null; - } - - // setup flat container - rule.setRangeStructuredDocumentRegion(region, braceNode); - - // insert to tree - if (!fUpdateContext.isActive() && parent != null) { - propagateRangePreInsert(parent, rule); - CSSNodeImpl next = fCreationContext.getNextNode(); - if (next != null) { - parent.insertBefore(rule, next); - } - else { - parent.appendChild(rule); - } - } - - fCreationContext.setTargetNode(rule); - // TargetNext is set to null automatically - - return rule; - } - - /** - * - */ - private CSSNodeImpl insertImportRule(IStructuredDocumentRegion beginDocRegion, IStructuredDocumentRegion endDocRegion) { - CSSNodeImpl parent = fCreationContext.getTargetNode(); - if (!fParseFloating && !(parent instanceof ICSSRuleContainer)) { - return null; - } - - ITextRegionList regions = new TextRegionListImpl(beginDocRegion.getRegions()); - regions.remove(0); // must be "@import" - ITextRegion hrefRegion = null; - while (!regions.isEmpty()) { - ITextRegion textRegion = regions.remove(0); - if (textRegion == null) { - continue; - } - String type = textRegion.getType(); - if (type == CSSRegionContexts.CSS_S || type == CSSRegionContexts.CSS_COMMENT) { - continue; - } - if (type == CSSRegionContexts.CSS_URI || type == CSSRegionContexts.CSS_STRING) { - hrefRegion = textRegion; - break; - } - else { - break; - } - } - if (hrefRegion == null) { - return null; - } - - CSSImportRuleImpl rule = fFeeder.getCSSImportRule(); - if (rule == null) { - return null; - } - - CSSUtil.stripSurroundingSpace(regions); - MediaListImpl mediaList = (MediaListImpl) rule.getMedia(); - setMediaList(mediaList, beginDocRegion, regions); - - if (!fUpdateContext.isActive()) { - rule.setAttribute(ICSSImportRule.HREF, beginDocRegion.getText(hrefRegion)); - } - - // setup flat container - rule.setRangeStructuredDocumentRegion(beginDocRegion, endDocRegion); - CSSAttrImpl attr = rule.getAttributeNode(ICSSImportRule.HREF); - if (attr != null) { - attr.setRangeRegion(beginDocRegion, hrefRegion, hrefRegion); - } - - // insert to tree - if (!fUpdateContext.isActive() && parent != null) { - propagateRangePreInsert(parent, rule); - CSSNodeImpl next = fCreationContext.getNextNode(); - if (next != null) { - parent.insertBefore(rule, next); - } - else { - parent.appendChild(rule); - } - } - - return rule; - } - - /** - * - */ - private CSSNodeImpl insertMediaRule(IStructuredDocumentRegion flatNode, IStructuredDocumentRegion braceNode) { - CSSNodeImpl parent = fCreationContext.getTargetNode(); - if (!fParseFloating && !(parent instanceof ICSSRuleContainer)) { - return null; - } - - CSSMediaRuleImpl rule = fFeeder.getCSSMediaRule(); - if (rule == null) { - return null; - } - - ITextRegionList regions = new TextRegionListImpl(flatNode.getRegions()); - regions.remove(0); // must be "@media" - - CSSUtil.stripSurroundingSpace(regions); - MediaListImpl mediaList = (MediaListImpl) rule.getMedia(); - setMediaList(mediaList, flatNode, regions); - - // setup flat container - rule.setRangeStructuredDocumentRegion(flatNode, braceNode); - - // insert to tree - if (!fUpdateContext.isActive() && parent != null) { - propagateRangePreInsert(parent, rule); - CSSNodeImpl next = fCreationContext.getNextNode(); - if (next != null) { - parent.insertBefore(rule, next); - } - else { - parent.appendChild(rule); - } - } - - fCreationContext.setTargetNode(rule); - // TargetNext is set to null automatically - - return rule; - } - - /** - * - */ - private CSSNodeImpl insertPageRule(IStructuredDocumentRegion flatNode, IStructuredDocumentRegion braceNode) { - CSSNodeImpl parent = fCreationContext.getTargetNode(); - if (!fParseFloating && !(parent instanceof ICSSRuleContainer)) { - return null; - } - - // get selector regions - ITextRegionList selectorRegions = new TextRegionListImpl(flatNode.getRegions()); - selectorRegions.remove(0); // must be "@page" - CSSUtil.stripSurroundingSpace(selectorRegions); - - CSSPageRuleImpl rule = fFeeder.getCSSPageRule(); - if (rule == null) { - return null; - } - - if (!fUpdateContext.isActive()) { - String selectorStr = CSSUtil.getRegionText(flatNode, selectorRegions); - if (0 < selectorStr.length()) { - rule.setSelectorText(selectorStr); - } - } - - // setup flat container - rule.setRangeStructuredDocumentRegion(flatNode, braceNode); - CSSAttrImpl attr = rule.getAttributeNode(ICSSPageRule.SELECTOR); - if (attr != null && selectorRegions != null && !selectorRegions.isEmpty()) { - attr.setRangeRegion(flatNode, selectorRegions.get(0), selectorRegions.get(selectorRegions.size() - 1)); - } - - // insert to tree - if (!fUpdateContext.isActive() && parent != null) { - propagateRangePreInsert(parent, rule); - CSSNodeImpl next = fCreationContext.getNextNode(); - if (next != null) { - parent.insertBefore(rule, next); - } - else { - parent.appendChild(rule); - } - } - - fCreationContext.setTargetNode(rule); - // TargetNext is set to null automatically - - return rule; - } - - /** - * - */ - private CSSNodeImpl insertSemiColonForRule(IStructuredDocumentRegion region) { - IStructuredDocumentRegion keyRegion = CSSUtil.findPreviousSignificantNode(region); - String type = CSSUtil.getStructuredDocumentRegionType(keyRegion); - - CSSNodeImpl inserted = null; - if (type == CSSRegionContexts.CSS_IMPORT) { - inserted = insertImportRule(keyRegion, region); - } - else if (type == CSSRegionContexts.CSS_CHARSET) { - inserted = insertCharsetRule(keyRegion, region); - } - - return inserted; - } - - /** - * - */ - private CSSNodeImpl insertSemiColonForStyleDeclarationItem(IStructuredDocumentRegion region) { - // only target/net node is changed. nothing to do. - - CSSNodeImpl targetNode = fCreationContext.getTargetNode(); - if (targetNode instanceof ICSSStyleDeclItem) { - int offset = targetNode.getStartOffset(); - // widen document region range - // ((CSSStyleDeclItemImpl)targetNode).setLastStructuredDocumentRegion(region); - CSSModelUtil.expandStructuredDocumentRegionContainer((CSSStyleDeclItemImpl) targetNode, region); - // psStructuredDocumentRegion indicates CSSStyleDeclItem - ICSSNode parentNode = targetNode.getParentNode(); - fCreationContext.setTargetNode(parentNode); - ICSSNode next = null; - if (parentNode.hasChildNodes()) { - for (ICSSNode child = targetNode.getFirstChild(); child != null; child = child.getNextSibling()) { - if (child instanceof CSSStructuredDocumentRegionContainer && offset < ((CSSStructuredDocumentRegionContainer) child).getStartOffset()) { - next = child; - break; - } - } - } - fCreationContext.setNextNode(next); - - return targetNode; - } - - return null; - } - - /** - * - */ - private CSSNodeImpl insertStyleDeclarationItem(IStructuredDocumentRegion docRegion) { - CSSStyleDeclarationImpl parent = null; - CSSNodeImpl node = fCreationContext.getTargetNode(); - if (node instanceof CSSRuleDeclContainer) { - CSSRuleDeclContainer declContainer = (CSSRuleDeclContainer) node; - parent = (CSSStyleDeclarationImpl) declContainer.getStyle(); - } - else if (node instanceof CSSStyleDeclarationImpl) { - parent = (CSSStyleDeclarationImpl) node; - } - - CSSDeclarationItemParser itemParser = new CSSDeclarationItemParser(parent.getOwnerDocument()); - itemParser.setStructuredDocumentTemporary(false); - itemParser.setUpdateContext(fUpdateContext); - CSSStyleDeclItemImpl declItem = itemParser.setupDeclarationItem(docRegion); - if (declItem == null) { - return null; - } - - // setup flat container - declItem.setRangeStructuredDocumentRegion(docRegion, docRegion); - - // insert to tree - if (!fUpdateContext.isActive()) { - propagateRangePreInsert(parent, declItem); - CSSNodeImpl next = fCreationContext.getNextNode(); - if (next != null) { - parent.insertBefore(declItem, next); - } - else { - parent.appendChild(declItem); - } - } - - fCreationContext.setTargetNode(declItem); - // TargetNext is set to null automatically - - return declItem; - } - - /** - * - */ - private CSSNodeImpl insertStyleRule(IStructuredDocumentRegion flatNode, IStructuredDocumentRegion braceNode) { - CSSNodeImpl parent = fCreationContext.getTargetNode(); - if (!fParseFloating && !(parent instanceof ICSSRuleContainer)) { - return null; - } - - // get selector regions - ITextRegionList selectorRegions = new TextRegionListImpl(flatNode.getRegions()); - CSSUtil.stripSurroundingSpace(selectorRegions); - - CSSStyleRuleImpl rule = fFeeder.getCSSStyleRule(); - if (rule == null) { - return null; - } - - if (!fUpdateContext.isActive()) { - String selectorStr = CSSUtil.getRegionText(flatNode, selectorRegions); - if (selectorStr != null && 0 < selectorStr.length()) { - rule.setSelectorText(selectorStr); - } - } - - // setup flat container - rule.setRangeStructuredDocumentRegion(flatNode, braceNode); - CSSAttrImpl attr = rule.getAttributeNode(ICSSPageRule.SELECTOR); - if (attr != null && selectorRegions != null && !selectorRegions.isEmpty()) { - attr.setRangeRegion(flatNode, selectorRegions.get(0), selectorRegions.get(selectorRegions.size() - 1)); - } - - // insert to tree - if (!fUpdateContext.isActive() && parent != null) { - propagateRangePreInsert(parent, rule); - CSSNodeImpl next = fCreationContext.getNextNode(); - if (next != null) { - parent.insertBefore(rule, next); - } - else { - parent.appendChild(rule); - } - } - - fCreationContext.setTargetNode(rule); - // TargetNext is set to null automatically - - return rule; - } - - /** - * - */ - private void pretendRemoveNode() { - CSSStructuredDocumentRegionContainer node = (CSSStructuredDocumentRegionContainer) fUpdateContext.getDeletionTarget(); - if (node == null) { - return; - } - - IStructuredDocumentRegion firstNode = node.getFirstStructuredDocumentRegion(); - if (firstNode != null) { - fDeletionContext.expandRemovedRangeBegin(firstNode); - } - IStructuredDocumentRegion lastNode = node.getLastStructuredDocumentRegion(); - if (lastNode != null) { - fDeletionContext.expandRemovedRangeEnd(lastNode); - } - - shrinkContainer((CSSStructuredDocumentRegionContainer) fUpdateContext.getDeletionTargetParent(), node); - } - - /** - * currently public but may be made default access protected in future. - * - * @param parent - * org.eclipse.wst.css.core.model.CSSNodeImpl - * @param child - * org.eclipse.wst.css.core.model.CSSNodeImpl - */ - protected void propagateRangePreInsert(CSSNodeImpl parent, CSSNodeImpl child) { - if (!(child instanceof CSSStructuredDocumentRegionContainer) || !(parent instanceof CSSStructuredDocumentRegionContainer)) { - return; - } - - CSSStructuredDocumentRegionContainer parentContainer = (CSSStructuredDocumentRegionContainer) parent; - CSSStructuredDocumentRegionContainer childContainer = (CSSStructuredDocumentRegionContainer) child; - IStructuredDocumentRegion firstNode = childContainer.getFirstStructuredDocumentRegion(); - IStructuredDocumentRegion lastNode = childContainer.getLastStructuredDocumentRegion(); - if (firstNode == null || lastNode == null) { - return; - } - - boolean bModified = parentContainer.includeRangeStructuredDocumentRegion(firstNode, lastNode); - if (bModified) { - parentContainer.propagateRangeStructuredDocumentRegion(); - } - } - - /** - * - */ - private void removeStructuredDocumentRegion(IStructuredDocumentRegion flatNode) { - String type = CSSUtil.getStructuredDocumentRegionType(flatNode); - if (type == CSSRegionContexts.CSS_DELIMITER || type == CSSRegionContexts.CSS_DECLARATION_DELIMITER) { - do { - flatNode = fStructuredDocumentWalker.getPrevNode(flatNode); - type = (flatNode != null) ? CSSUtil.getStructuredDocumentRegionType(flatNode) : null; - } - while (type != null && (type == CSSRegionContexts.CSS_S || type == CSSRegionContexts.CSS_COMMENT)); - } - if (flatNode == null) { - return; - } - - // if (fDeletionContext.isInRemovedRange(flatNode)) { // already - // removed - // return; - // } - - CSSStructuredDocumentRegionContainer node = fDeletionContext.findDeletionTarget((CSSNodeImpl)fDocument, flatNode); - if (node == null || node == fDocument) { - return; // not attached with any treeNode - } - - if (node instanceof CSSStyleDeclarationImpl) { - ICSSNode rule = node.getParentNode(); - if (rule instanceof CSSStyleRuleImpl) { - node = (CSSStructuredDocumentRegionContainer) rule; - } - else { - return; - } - } - - // ICSSNode p = node.getParentNode(); - // if (p == null || ! (p instanceof - // CSSStructuredDocumentRegionContainer)) { - // return; - // } - // CSSStructuredDocumentRegionContainer parent = - // (CSSStructuredDocumentRegionContainer)p; - - if (fDeletionContext.addNodeToBeRemoved(node)) { - IStructuredDocumentRegion firstNode = node.getFirstStructuredDocumentRegion(); - if (firstNode != null) { - fDeletionContext.expandRemovedRangeBegin(firstNode); - } - IStructuredDocumentRegion lastNode = node.getLastStructuredDocumentRegion(); - if (lastNode != null) { - fDeletionContext.expandRemovedRangeEnd(lastNode); - } - } - - // shrinkContainer(node); - // parent.removeChild(node); - } - - /** - * - */ - private void removeStructuredDocumentRegions(IStructuredDocumentRegionList flatNodes) { - for (Enumeration e = flatNodes.elements(); e.hasMoreElements();) { - IStructuredDocumentRegion flatNode = (IStructuredDocumentRegion) e.nextElement(); - if (flatNode == null) { - continue; - } - removeStructuredDocumentRegion(flatNode); - } - - Iterator i = fDeletionContext.getNodesToBeRemoved(); - while (i.hasNext()) { - CSSNodeImpl node = (CSSNodeImpl) i.next(); - if (!(node instanceof CSSStructuredDocumentRegionContainer)) { - continue; - } - CSSNodeImpl parent = (CSSNodeImpl) node.getParentNode(); - if (!(parent instanceof CSSStructuredDocumentRegionContainer)) { - continue; - } - shrinkContainer((CSSStructuredDocumentRegionContainer) parent, (CSSStructuredDocumentRegionContainer) node); - parent.removeChild(node); - } - } - - /** - * - */ - void replaceStructuredDocumentRegions(IStructuredDocumentRegionList newStructuredDocumentRegions, IStructuredDocumentRegionList oldStructuredDocumentRegions) { - if (fDocument == null || fCreationContext == null) { - return; - } - - if (oldStructuredDocumentRegions != null && 0 < oldStructuredDocumentRegions.getLength()) { - setupDeletionContext(newStructuredDocumentRegions, oldStructuredDocumentRegions); - short updateMode = fUpdateContext.getUpdateMode(); - if (updateMode == CSSModelUpdateContext.UPDATE_IDLE) { - removeStructuredDocumentRegions(oldStructuredDocumentRegions); - } - else { - pretendRemoveNode(); - } - newStructuredDocumentRegions = getStructuredDocumentRegionList(fDeletionContext.getRemovedRangeBegin(), fDeletionContext.getRemovedRangeEnd()); - cleanupDeletionContext(); - } - - if (newStructuredDocumentRegions != null && 0 < newStructuredDocumentRegions.getLength()) { - setupCreationContext(newStructuredDocumentRegions.item(0)); - insertStructuredDocumentRegions(newStructuredDocumentRegions); - } - - // make document hold whole structuredDocument - /* - * boolean bUpdate = false; IStructuredDocumentRegion flatNode; - * flatNode = fDocument.getFirstStructuredDocumentRegion(); bUpdate = - * bUpdate || (flatNode == null || - * fStructuredDocumentWalker.isOldNode(flatNode) || - * flatNode.getPrevious() != null); flatNode = - * fDocument.getLastStructuredDocumentRegion(); bUpdate = bUpdate || - * (flatNode == null || fStructuredDocumentWalker.isOldNode(flatNode) || - * flatNode.getNext() != null); - */ - IStructuredDocument structuredDocument = fStructuredDocumentWalker.getStructuredDocument(); - ((CSSStructuredDocumentRegionContainer)fDocument).setRangeStructuredDocumentRegion(structuredDocument.getFirstStructuredDocumentRegion(), structuredDocument.getLastStructuredDocumentRegion()); - /* } */ - - // remove in official release - // CSSModelUtil.diagnoseTree(fDocument, - // fStructuredDocumentWalker.getStructuredDocument()); - } - - /** - * - */ - void replaceRegions(IStructuredDocumentRegion flatNode, ITextRegionList newRegions, ITextRegionList oldRegions) { - if (flatNode == null) { - return; - } - if (newRegions == null || oldRegions == null) { - return; - } - if (fDocument == null) { - return; - } - - changeStructuredDocumentRegion(flatNode); - } - - /** - */ - private void resetCreationTarget(IStructuredDocumentRegion newStructuredDocumentRegion) { - if (newStructuredDocumentRegion == null || newStructuredDocumentRegion.getStartOffset() <= 0) { - // top of document - fCreationContext.setTargetNode(fDocument); - fCreationContext.setNextNode(fDocument.getFirstChild()); - return; - } - - int cursorPos = newStructuredDocumentRegion.getStartOffset(); - CSSNodeImpl cursorNode = getNodeAt(cursorPos); - if (cursorNode == null) { // end of document - cursorNode = (CSSNodeImpl)fDocument; - } - - // find edge of tree node - CSSNodeImpl node = null; - // boolean bOverSemiColon = false; - boolean bOverOpenBrace = false; - IStructuredDocumentRegion flatNode; - for (flatNode = newStructuredDocumentRegion; flatNode != null; flatNode = flatNode.getPrevious()) { - node = getNodeAt(flatNode.getStartOffset()); - if (node == null) { - node = (CSSNodeImpl)fDocument; - } - if (node != cursorNode || node.getStartOffset() == flatNode.getStartOffset()) { - break; - } - if (flatNode != newStructuredDocumentRegion) { - String type = CSSUtil.getStructuredDocumentRegionType(flatNode); - // if (type == CSSRegionContexts.CSS_DELIMITER || - // type == CSSRegionContexts.CSS_DECLARATION_DELIMITER) { - // bOverSemiColon = true; - // } else - if (type == CSSRegionContexts.CSS_LBRACE) { - bOverOpenBrace = true; - } - } - } - - CSSNodeImpl targetNode = null; - - // if (flatNode == null) { - // v<--| - // AAAAAA - // BBBBBBBBBB cursorNode:A , node:B -> target is A - // targetNode = (node == null) ? fDocument : node; - // } else - if (cursorNode == node) { - // v<--| - // AAAAAA - // BBBBBBBBBB cursorNode:A , node:B -> target is A - if (bOverOpenBrace && cursorNode instanceof CSSRuleDeclContainer) { - targetNode = (CSSNodeImpl) ((CSSRuleDeclContainer) cursorNode).getStyle(); - } - else { - targetNode = cursorNode; - } - } - else { - // v<--| - // AAA - // BBBBBBBBBB cursorNode:B , node:A -> depend on A's node type - short nodeType = node.getNodeType(); - if (nodeType == ICSSNode.STYLEDECLITEM_NODE || nodeType == ICSSNode.CHARSETRULE_NODE || nodeType == ICSSNode.IMPORTRULE_NODE) { - // targetNode = (CSSNodeImpl)((bOverSemiColon) ? - // node.getParentNode() : node); // NP - String regionType = CSSUtil.getStructuredDocumentRegionType(flatNode); - if (regionType == CSSRegionContexts.CSS_DELIMITER || regionType == CSSRegionContexts.CSS_DECLARATION_DELIMITER) { - targetNode = (CSSNodeImpl) node.getParentNode(); - } - else { - targetNode = node; - } - } - else if (CSSUtil.getStructuredDocumentRegionType(flatNode) == CSSRegionContexts.CSS_RBRACE) { - targetNode = (CSSNodeImpl) node.getParentNode(); - } - else { - targetNode = node; - } - } - - fCreationContext.setTargetNode(targetNode); - ICSSNode next = null; - if (targetNode.hasChildNodes()) { - for (ICSSNode child = targetNode.getFirstChild(); child != null; child = child.getNextSibling()) { - if (child instanceof CSSStructuredDocumentRegionContainer && cursorPos < ((CSSStructuredDocumentRegionContainer) child).getStartOffset()) { - next = child; - break; - } - } - } - fCreationContext.setNextNode(next); - - } - - /** - */ - private void resetReparseRange() { - fCreationContext.clear(); - } - - void setStructuredDocumentEvent(StructuredDocumentEvent event) { - if (fStructuredDocumentWalker == null) { - fStructuredDocumentWalker = new StructuredDocumentWalker(); - } - fStructuredDocumentWalker.initialize(event); - } - - /** - * regions: surrounding spaces should be removed. Q. Why did you set - * mediaTable ? A. MediaList may have two or more medium that have same - * value, then searcing in MediaList is not perfect. Q. - * fUpdateContext.isActive() is not care. Are you OK? A. OK. - */ - private void setMediaList(MediaListImpl mediaList, IStructuredDocumentRegion region, ITextRegionList textRegions) { - if (mediaList == null || textRegions == null) { - return; - } - Collection mediaTable = new HashSet(); - CSSNodeListImpl attrs = mediaList.getMedia(); - for (int i = 0; i != attrs.getLength(); i++) { - mediaTable.add(attrs.item(i)); - } - - ITextRegion start = null; - ITextRegion end = null; - - Iterator i = textRegions.iterator(); - ITextRegion textRegion = (ITextRegion) ((i.hasNext()) ? i.next() : null); - while (textRegion != null) { - if (textRegion.getType() == CSSRegionContexts.CSS_MEDIUM) { - String mediumStr = region.getText(textRegion); - if (0 < mediumStr.length()) { - CSSAttrImpl attr = null; - // is the medium already set ? - Iterator iTable = mediaTable.iterator(); - while (iTable.hasNext()) { - CSSAttrImpl cai = (CSSAttrImpl) iTable.next(); - if (mediumStr.equalsIgnoreCase(cai.getValue())) { - attr = cai; - mediaTable.remove(cai); - break; - } - } - if (attr == null) { - // is not set. create new attribute - String key = "mediumP" + mediaList.mediumCounter++; //$NON-NLS-1$ - mediaList.setAttribute(key, mediumStr); - attr = mediaList.getAttributeNode(key); - } - attr.setRangeRegion(region, textRegion, textRegion); - if (start == null) { - start = textRegion; - } - end = textRegion; - } - } - textRegion = (ITextRegion) ((i.hasNext()) ? i.next() : null); - } - - if (start != null && end != null) { - mediaList.setRangeRegion(region, start, end); - } - } - - /** - * - */ - private void setupCreationContext(IStructuredDocumentRegion region) { - resetReparseRange(); - resetCreationTarget(region); - } - - /** - * - */ - private void setupDeletionContext(IStructuredDocumentRegionList newStructuredDocumentRegions, IStructuredDocumentRegionList oldStructuredDocumentRegions) { - fDeletionContext.setupContext(newStructuredDocumentRegions, oldStructuredDocumentRegions); - } - - /** - * - */ - void setupUpdateContext(short updateMode, ICSSNode parentNode, ICSSNode targetNode) { - fUpdateContext.setupContext(updateMode, parentNode, targetNode); - } - - /** - * - */ - void shrinkContainer(CSSStructuredDocumentRegionContainer parent, CSSStructuredDocumentRegionContainer child) { - if (child == null) { - return; - } - - boolean bModified = false; - bModified = bModified || cleanupLastNode(child.getLastStructuredDocumentRegion(), parent); - bModified = bModified || cleanupFirstNode(child.getFirstStructuredDocumentRegion(), parent); - - if (bModified) { - if (parent != null) { - for (ICSSNode node = parent.getFirstChild(); node != null; node = node.getNextSibling()) { - if (child != node && node instanceof CSSStructuredDocumentRegionContainer) { - ((CSSStructuredDocumentRegionContainer) node).propagateRangeStructuredDocumentRegion(); - } - } - } - } - - child.setRangeStructuredDocumentRegion(null, null); - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSModelUpdateContext.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSModelUpdateContext.java deleted file mode 100644 index e7f4e9352d..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSModelUpdateContext.java +++ /dev/null @@ -1,416 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.document; - - - -import java.util.LinkedList; - -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.util.AbstractCssTraverser; -import org.eclipse.wst.css.core.internal.util.CSSUtil; -import org.w3c.dom.DOMException; -import org.w3c.dom.css.CSSPrimitiveValue; - - -/** - * - */ -class CSSModelUpdateContext { - - - class CSSNodeUpdateTraverser extends AbstractCssTraverser { - public CSSNodeUpdateTraverser() { - super(); - setTraverseImported(false); - setTraverseImportFirst(false); - } - - public LinkedList getNodeList() { - return fTravNodeList; - } - - protected void begin(ICSSNode node) { - fTravNodeList = new LinkedList(); - } - - protected short preNode(ICSSNode node) { - if (node instanceof CSSStyleDeclarationImpl || node instanceof CSSAttrImpl || node instanceof MediaListImpl) { - // skip - } - else { - fTravNodeList.add(node); - } - if (node instanceof CSSPrimitiveContainer) { - return TRAV_PRUNE; - } - else { - return TRAV_CONT; - } - } - - LinkedList fTravNodeList = null; - } - - ICSSNode fLastNode = null; - ICSSNode fDeletionTargetParent = null; - ICSSNode fDeletionTarget = null; - LinkedList fNodeList = null; - private short fUpdateMode = UPDATE_IDLE; - static final short UPDATE_IDLE = 0; - static final short UPDATE_INSERT_FNCONTAINER = 1; - static final short UPDATE_INSERT_RCONTAINER = 2; - static final short UPDATE_REMOVE_FNCONTAINER = 3; - static final short UPDATE_REMOVE_RCONTAINER = 4; - static final short UPDATE_CHANGE_RCONTAINER = 5; - - /** - * CSSNodeUpdateQueue constructor comment. - */ - CSSModelUpdateContext() { - super(); - } - - /** - * - */ - void cleanupContext() { - fNodeList = null; - fDeletionTarget = null; - fDeletionTargetParent = null; - fUpdateMode = UPDATE_IDLE; - } - - /** - * - */ - CounterImpl getCounter() { - ICSSNode node = getNode(); - if (node instanceof CounterImpl) { - return (CounterImpl) node; - } - else { - CSSUtil.debugOut("CounterImpl is expected, but " + //$NON-NLS-1$ - CSSUtil.getClassString(node)); - ungetNode(); - throw new DOMException(DOMException.INVALID_MODIFICATION_ERR, "");//$NON-NLS-1$ - } - } - - /** - * - */ - CSSCharsetRuleImpl getCSSCharsetRule() { - ICSSNode node = getNode(); - if (node instanceof CSSCharsetRuleImpl) { - return (CSSCharsetRuleImpl) node; - } - else { - CSSUtil.debugOut("CSSCharsetRuleImpl is expected, but " + //$NON-NLS-1$ - CSSUtil.getClassString(node)); - ungetNode(); - throw new DOMException(DOMException.INVALID_MODIFICATION_ERR, "");//$NON-NLS-1$ - } - } - - /** - * - */ - CSSFontFaceRuleImpl getCSSFontFaceRule() { - ICSSNode node = getNode(); - if (node instanceof CSSFontFaceRuleImpl) { - return (CSSFontFaceRuleImpl) node; - } - else { - CSSUtil.debugOut("CSSFontFaceRuleImpl is expected, but " + //$NON-NLS-1$ - CSSUtil.getClassString(node)); - ungetNode(); - throw new DOMException(DOMException.INVALID_MODIFICATION_ERR, "");//$NON-NLS-1$ - } - } - - /** - * - */ - CSSImportRuleImpl getCSSImportRule() { - ICSSNode node = getNode(); - if (node instanceof CSSImportRuleImpl) { - return (CSSImportRuleImpl) node; - } - else { - CSSUtil.debugOut("CSSImportRuleImpl is expected, but " + //$NON-NLS-1$ - CSSUtil.getClassString(node)); - ungetNode(); - throw new DOMException(DOMException.INVALID_MODIFICATION_ERR, "");//$NON-NLS-1$ - } - } - - /** - * - */ - CSSMediaRuleImpl getCSSMediaRule() { - ICSSNode node = getNode(); - if (node instanceof CSSMediaRuleImpl) { - return (CSSMediaRuleImpl) node; - } - else { - CSSUtil.debugOut("CSSMediaRuleImpl is expected, but " + //$NON-NLS-1$ - CSSUtil.getClassString(node)); - ungetNode(); - throw new DOMException(DOMException.INVALID_MODIFICATION_ERR, "");//$NON-NLS-1$ - } - } - - /** - * - */ - CSSPageRuleImpl getCSSPageRule() { - ICSSNode node = getNode(); - if (node instanceof CSSPageRuleImpl) { - return (CSSPageRuleImpl) node; - } - else { - CSSUtil.debugOut("CSSPageRuleImpl is expected, but " + //$NON-NLS-1$ - CSSUtil.getClassString(node)); - ungetNode(); - throw new DOMException(DOMException.INVALID_MODIFICATION_ERR, "");//$NON-NLS-1$ - } - } - - /** - * - */ - CSSPrimitiveValueImpl getCSSPrimitiveValue(short type) { - ICSSNode node = getNode(); - if (node instanceof CSSPrimitiveValueImpl) { - short nodeType = ((CSSPrimitiveValueImpl) node).getPrimitiveType(); - if (nodeType == type || ((nodeType == CSSPrimitiveValue.CSS_NUMBER || nodeType == ICSSPrimitiveValue.CSS_INTEGER) && (type == CSSPrimitiveValue.CSS_NUMBER || type == ICSSPrimitiveValue.CSS_INTEGER))) { - return (CSSPrimitiveValueImpl) node; - } - } - - if (node instanceof CSSPrimitiveValueImpl) { - CSSPrimitiveValueImpl value = (CSSPrimitiveValueImpl) node; - CSSUtil.debugOut("CSSPrimitiveValueImpl [" + type + //$NON-NLS-1$ - "] is expected, but type is [" + //$NON-NLS-1$ - value.getPrimitiveType() + "]: \"" + value.generateSource() + "\"");//$NON-NLS-2$//$NON-NLS-1$ - } - else { - CSSUtil.debugOut("CSSPrimitiveValueImpl(" + type + //$NON-NLS-1$ - ") is expected, but " + //$NON-NLS-1$ - CSSUtil.getClassString(node)); - } - - ungetNode(); - throw new DOMException(DOMException.INVALID_MODIFICATION_ERR, "");//$NON-NLS-1$ - } - - /** - * - */ - CSSPrimitiveValueImpl getCSSPrimitiveValueAny() { - ICSSNode node = getNode(); - if (node instanceof CSSPrimitiveValueImpl) { - return (CSSPrimitiveValueImpl) node; - } - else { - CSSUtil.debugOut("CSSPrimitiveValueImpl is expected, but " + //$NON-NLS-1$ - CSSUtil.getClassString(node)); - ungetNode(); - throw new DOMException(DOMException.INVALID_MODIFICATION_ERR, "");//$NON-NLS-1$ - } - } - - /** - * - */ - CSSStyleDeclItemImpl getCSSStyleDeclItem(String propertyName) { - ICSSNode node = getNode(); - if (node instanceof CSSStyleDeclItemImpl && ((CSSStyleDeclItemImpl) node).getPropertyName().equalsIgnoreCase(propertyName)) { - return (CSSStyleDeclItemImpl) node; - } - else { - CSSUtil.debugOut("CSSStyleDeclItemImpl(" + propertyName + //$NON-NLS-1$ - ") is expected, but " + CSSUtil.getClassString(node));//$NON-NLS-1$ - ungetNode(); - throw new DOMException(DOMException.INVALID_MODIFICATION_ERR, "");//$NON-NLS-1$ - } - } - - /** - * - */ - CSSStyleRuleImpl getCSSStyleRule() { - ICSSNode node = getNode(); - if (node instanceof CSSStyleRuleImpl) { - return (CSSStyleRuleImpl) node; - } - else { - CSSUtil.debugOut("CSSStyleRuleImpl is expected, but " + //$NON-NLS-1$ - CSSUtil.getClassString(node)); - ungetNode(); - throw new DOMException(DOMException.INVALID_MODIFICATION_ERR, "");//$NON-NLS-1$ - } - } - - /** - * @return org.eclipse.wst.css.core.model.interfaces.ICSSNode - */ - ICSSNode getDeletionTarget() { - return fDeletionTarget; - } - - /** - * @return org.eclipse.wst.css.core.model.interfaces.ICSSNode - */ - ICSSNode getDeletionTargetParent() { - return fDeletionTargetParent; - } - - /** - * - */ - private ICSSNode getNode() { - ICSSNode node = null; - if (fNodeList != null && 0 < fNodeList.size()) { - node = (ICSSNode) fNodeList.removeFirst(); - } - fLastNode = node; - return node; - } - - /** - * - */ - int getNodeCount() { - if (fNodeList != null) { - return fNodeList.size(); - } - else { - return -1; - } - } - - /** - * - */ - // ICSSNode getParentNode() { - // return fParentNode; - // } - /** - * - */ - RectImpl getRect() { - ICSSNode node = getNode(); - if (node instanceof RectImpl) { - return (RectImpl) node; - } - else { - CSSUtil.debugOut("RectImpl is expected, but " + //$NON-NLS-1$ - CSSUtil.getClassString(node)); - ungetNode(); - throw new DOMException(DOMException.INVALID_MODIFICATION_ERR, "");//$NON-NLS-1$ - } - } - - /** - * - */ - RGBColorImpl getRGBColor() { - ICSSNode node = getNode(); - if (node instanceof RGBColorImpl) { - return (RGBColorImpl) node; - } - else { - CSSUtil.debugOut("RGBColorImpl is expected, but " + //$NON-NLS-1$ - CSSUtil.getClassString(node)); - ungetNode(); - throw new DOMException(DOMException.INVALID_MODIFICATION_ERR, "");//$NON-NLS-1$ - } - } - - /** - * @return short - */ - short getUpdateMode() { - return fUpdateMode; - } - - /** - * - */ - boolean isActive() { - return (fNodeList != null); - } - - /** - * - */ - void setupContext(short updateMode, ICSSNode parentNode, ICSSNode targetNode) { - fUpdateMode = updateMode; - - ICSSNode traverseRoot; - if (updateMode == UPDATE_REMOVE_RCONTAINER || updateMode == UPDATE_INSERT_RCONTAINER || updateMode == UPDATE_CHANGE_RCONTAINER) { - traverseRoot = parentNode; - while (traverseRoot instanceof CSSRegionContainer) { - traverseRoot = traverseRoot.getParentNode(); - } - } - else { - traverseRoot = targetNode; - } - - if (updateMode == UPDATE_REMOVE_RCONTAINER || updateMode == UPDATE_INSERT_RCONTAINER || // region - // insert - // => - // replace - // flat - // node - updateMode == UPDATE_CHANGE_RCONTAINER || updateMode == UPDATE_REMOVE_FNCONTAINER) { - fDeletionTarget = traverseRoot; - if (fDeletionTarget == targetNode) { - fDeletionTargetParent = parentNode; - } - else { - fDeletionTargetParent = fDeletionTarget.getParentNode(); - } - } - else { - fDeletionTarget = null; - fDeletionTargetParent = null; - } - - if (updateMode == UPDATE_INSERT_RCONTAINER || updateMode == UPDATE_INSERT_FNCONTAINER || updateMode == UPDATE_REMOVE_RCONTAINER || // region - // remove - // => - // re-insert - // flat - // node - updateMode == UPDATE_CHANGE_RCONTAINER) { - CSSNodeUpdateTraverser traverser = new CSSNodeUpdateTraverser(); - traverser.apply(traverseRoot); - fNodeList = traverser.getNodeList(); - } - else { - fNodeList = null; - } - } - - /** - * - */ - private void ungetNode() { - if (fNodeList != null && fLastNode != null) { - fNodeList.addFirst(fLastNode); - } - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSModelUpdater.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSModelUpdater.java deleted file mode 100644 index d92bca5907..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSModelUpdater.java +++ /dev/null @@ -1,561 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.document; - - - -import org.eclipse.wst.css.core.internal.formatter.AttrChangeContext; -import org.eclipse.wst.css.core.internal.formatter.CSSSourceFormatterFactory; -import org.eclipse.wst.css.core.internal.formatter.CSSSourceGenerator; -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.util.CSSUtil; -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; -import org.eclipse.wst.sse.core.internal.provisional.events.NoChangeEvent; -import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentEvent; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; -import org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument; -import org.w3c.dom.DOMException; - - -/** - * - */ -class CSSModelUpdater { - - private CSSModelImpl fModel = null; - private CSSModelParser fParser = null; - - /** - * CSSModelUpdater constructor comment. - */ - CSSModelUpdater() { - super(); - } - - /** - * - */ - CSSModelUpdater(CSSModelImpl model) { - super(); - fModel = model; - } - - /** - * @param parentNode - * org.eclipse.wst.css.core.model.CSSNodeImpl - * @param node - * org.eclipse.wst.css.core.model.CSSNodeImpl - */ - private void attrInserted(CSSNodeImpl parentNode, CSSAttrImpl attr) { - CSSSourceGenerator formatter = CSSSourceFormatterFactory.getInstance().getSourceFormatter(parentNode); - - if (formatter == null) { - CSSUtil.debugOut("Cannot get format adapter : " + parentNode.getClass().toString());//$NON-NLS-1$ - return; - } - - short updateMode = CSSModelUpdateContext.UPDATE_INSERT_RCONTAINER; - fParser.setupUpdateContext(updateMode, parentNode, attr); - - // get formatted info - AttrChangeContext region = new AttrChangeContext(); - String text = new String(formatter.formatAttrChanged(parentNode, attr, true, region)); - - // set text - StructuredDocumentEvent result = insertText(region.start, region.end - region.start, text); - - int nRemains = fParser.cleanupUpdateContext(); - - if (0 < nRemains && !(result instanceof NoChangeEvent)) { - throw new DOMException(DOMException.INVALID_MODIFICATION_ERR, "");//$NON-NLS-1$ - } - } - - /** - * @param parentNode - * org.eclipse.wst.css.core.model.CSSNodeImpl - * @param node - * org.eclipse.wst.css.core.model.CSSNodeImpl - */ - private void attrRemoved(CSSNodeImpl parentNode, CSSAttrImpl attr) { - CSSSourceGenerator formatter = CSSSourceFormatterFactory.getInstance().getSourceFormatter(parentNode); - - if (formatter == null) { - CSSUtil.debugOut("Cannot get format adapter : " + parentNode.getClass().toString());//$NON-NLS-1$ - return; - } - - short updateMode = CSSModelUpdateContext.UPDATE_REMOVE_RCONTAINER; - fParser.setupUpdateContext(updateMode, parentNode, attr); - - // get formatted info - AttrChangeContext region = new AttrChangeContext(); - String text = new String(formatter.formatAttrChanged(parentNode, attr, false, region)); - - // set text - StructuredDocumentEvent result = insertText(region.start, region.end - region.start, text); - - int nRemains = fParser.cleanupUpdateContext(); - - if (0 < nRemains && !(result instanceof NoChangeEvent)) { - throw new DOMException(DOMException.INVALID_MODIFICATION_ERR, "");//$NON-NLS-1$ - } - } - - /** - * - */ - void attrReplaced(CSSNodeImpl parentNode, CSSNodeImpl newAttr, CSSNodeImpl oldAttr) { - if (parentNode == null) { - return; - } - - if (oldAttr != null) { - attrRemoved(parentNode, (CSSAttrImpl) oldAttr); - } - - if (newAttr != null) { - attrInserted(parentNode, (CSSAttrImpl) newAttr); - } - } - - /** - * - */ - private void childInserted(CSSNodeImpl parentNode, CSSNodeImpl node) { - short updateMode = CSSModelUpdateContext.UPDATE_IDLE; - - if (node instanceof CSSStructuredDocumentRegionContainer) { - updateMode = CSSModelUpdateContext.UPDATE_INSERT_FNCONTAINER; - } - else if (node instanceof CSSRegionContainer) { - updateMode = CSSModelUpdateContext.UPDATE_INSERT_RCONTAINER; - } - else { - CSSUtil.debugOut("What's this node? : " + node.getClass().toString());//$NON-NLS-1$ - return; - } - - fParser.setupUpdateContext(updateMode, parentNode, node); - - StructuredDocumentEvent result = defaultInserted(parentNode, node); - - int nRemains = fParser.cleanupUpdateContext(); - - if (0 < nRemains && !(result instanceof NoChangeEvent)) { - throw new DOMException(DOMException.INVALID_MODIFICATION_ERR, "");//$NON-NLS-1$ - } - } - - /** - * - */ - private void childRemoved(CSSNodeImpl parentNode, CSSNodeImpl node) { - short updateMode = CSSModelUpdateContext.UPDATE_IDLE; - - if (node instanceof CSSStructuredDocumentRegionContainer) { - updateMode = CSSModelUpdateContext.UPDATE_REMOVE_FNCONTAINER; - } - else if (node instanceof CSSRegionContainer) { - updateMode = CSSModelUpdateContext.UPDATE_REMOVE_RCONTAINER; - } - else { - CSSUtil.debugOut("What's this node? : " + node.getClass().toString());//$NON-NLS-1$ - return; - } - - fParser.setupUpdateContext(updateMode, parentNode, node); - - CSSNodeImpl prev = getOldPrevious(parentNode, node); - CSSNodeImpl next = getOldNext(parentNode, node); - int insertPos = -1, endPos = -1; - String source = "";//$NON-NLS-1$ - if (prev != null) { - insertPos = prev.getEndOffset(); - } - else { - insertPos = node.getStartOffset(); - insertPos -= nearestSpaceLengthBefore(parentNode, insertPos); - } - if (next != null) { - endPos = next.getStartOffset(); - } - else { - endPos = node.getEndOffset(); - endPos += nearestSpaceLengthAfter(parentNode, endPos); - } - source = getSpaceBefore(parentNode, next, node); - StructuredDocumentEvent result; - if (source.length() > 0) { - result = insertText(insertPos, endPos - insertPos, source); - } - else { - result = removeText(insertPos, endPos - insertPos); - } - - int nRemains = fParser.cleanupUpdateContext(); - - if (0 < nRemains && !(result instanceof NoChangeEvent)) { - throw new DOMException(DOMException.INVALID_MODIFICATION_ERR, "");//$NON-NLS-1$ - } - - /* - * int removeStart = -1; int removeEnd = -1; if (node instanceof - * CSSStructuredDocumentRegionContainer) { - * CSSStructuredDocumentRegionContainer container = - * (CSSStructuredDocumentRegionContainer)node; - * IStructuredDocumentRegion firstNode = - * container.getFirstStructuredDocumentRegion(); - * IStructuredDocumentRegion lastNode = - * container.getLastStructuredDocumentRegion(); if (firstNode != null && - * lastNode != null) { removeStart = firstNode.getStart(); removeEnd = - * lastNode.getEnd(); } } else if (node instanceof CSSRegionContainer) { - * CSSRegionContainer container = (CSSRegionContainer)node; - * ITextRegion firstRegion = container.getFirstRegion(); ITextRegion - * lastRegion = container.getLastRegion(); if (firstRegion != null && - * lastRegion != null) { removeStart = firstRegion.getStartOffset(); - * removeEnd = lastRegion.getEndOffset(); } } if (0 <= removeStart && - * 0 <= removeEnd) { removeText(removeStart, removeEnd - removeStart + - * 1); } - */ - } - - /** - * - */ - void childReplaced(CSSNodeImpl parentNode, CSSNodeImpl newChild, CSSNodeImpl oldChild) { - if (parentNode == null) { - return; - } - - if (oldChild != null) { - childRemoved(parentNode, oldChild); - } - - if (newChild != null) { - childInserted(parentNode, newChild); - } - } - - /** - * - */ - private StructuredDocumentEvent defaultInserted(CSSNodeImpl parentNode, CSSNodeImpl node) { - int insertPos = -1; - ICSSNode sibling; - String preSpace = "", postSpace = "";//$NON-NLS-2$//$NON-NLS-1$ - int length = 0; - - if (insertPos < 0) { - if ((sibling = node.getPreviousSibling()) != null) { - // after previous child - insertPos = getTextEnd(sibling); - } - } - - if (insertPos < 0) { - if ((sibling = node.getNextSibling()) != null) { - // before next child - insertPos = getTextStart(sibling); - } - } - - if (insertPos < 0) { - // position of parent - insertPos = getChildInsertPos(parentNode); - } - - if (insertPos < 0) { - // firsttime - insertPos = 0; - } - - // format previous spaces - length = nearestSpaceLengthBefore(parentNode, insertPos); - insertPos -= length; - preSpace = getSpaceBefore(parentNode, node, null); - // format post spaces - length += nearestSpaceLengthAfter(parentNode, insertPos + length); - postSpace = getSpaceBefore(parentNode, node.getNextSibling(), null); - - // set text - String text = preSpace + node.generateSource().trim() + postSpace; - return insertText(insertPos, length, text); - } - - /** - * @return int - * @param node - * org.eclipse.wst.css.core.model.CSSNodeImpl - */ - private int getChildInsertPos(CSSNodeImpl node) { - CSSSourceGenerator formatter = CSSSourceFormatterFactory.getInstance().getSourceFormatter(node); - if (formatter != null) - return formatter.getChildInsertPos(node); - else - return node.getEndOffset(); - } - - /** - * @return org.eclipse.wst.css.core.model.CSSNodeImpl - * @param parentNode - * org.eclipse.wst.css.core.model.CSSNodeImpl - * @param node - * org.eclipse.wst.css.core.model.CSSNodeImpl - */ - private CSSNodeImpl getOldNext(CSSNodeImpl parentNode, CSSNodeImpl node) { - CSSNodeImpl child = (CSSNodeImpl) parentNode.getLastChild(); - CSSNodeImpl ret = null; - while (child != null) { - if (node.getEndOffset() < child.getEndOffset()) - ret = child; - else - break; - child = (CSSNodeImpl) child.getPreviousSibling(); - } - return ret; - } - - /** - * @return org.eclipse.wst.css.core.model.CSSNodeImpl - * @param parentNode - * org.eclipse.wst.css.core.model.CSSNodeImpl - * @param node - * org.eclipse.wst.css.core.model.CSSNodeImpl - */ - private CSSNodeImpl getOldPrevious(CSSNodeImpl parentNode, CSSNodeImpl node) { - CSSNodeImpl child = (CSSNodeImpl) parentNode.getFirstChild(); - CSSNodeImpl ret = null; - while (child != null) { - if (child.getStartOffset() < node.getStartOffset()) - ret = child; - else - break; - child = (CSSNodeImpl) child.getNextSibling(); - } - return ret; - } - - /** - * @return java.lang.String - * @param parentNode - * org.eclipse.wst.css.core.model.CSSNodeImpl - * @param node - * org.eclipse.wst.css.core.model.CSSNodeImpl - */ - private String getSpaceBefore(ICSSNode parentNode, ICSSNode node, ICSSNode toRemove) { - CSSSourceGenerator formatter = CSSSourceFormatterFactory.getInstance().getSourceFormatter((INodeNotifier) parentNode); - - if (formatter != null) { - org.eclipse.jface.text.IRegion exceptFor = null; - if (toRemove != null) { - CSSNodeImpl remove = (CSSNodeImpl) toRemove; - exceptFor = new org.eclipse.jface.text.Region(remove.getStartOffset(), remove.getEndOffset() - remove.getStartOffset()); - } - return formatter.formatBefore(parentNode, node, exceptFor).toString(); - } - else - return "";//$NON-NLS-1$ - } - - /** - * - */ - private int getTextEnd(ICSSNode node) { - int end = -1; - if (node != null) { - if (node instanceof CSSStructuredDocumentRegionContainer) { - end = ((CSSStructuredDocumentRegionContainer) node).getEndOffset(); - } - else if (node instanceof CSSRegionContainer) { - end = ((CSSRegionContainer) node).getEndOffset(); - } - } - return end; - } - - /** - * - */ - private int getTextStart(ICSSNode node) { - int start = -1; - if (node != null) { - if (node instanceof CSSStructuredDocumentRegionContainer) { - start = ((CSSStructuredDocumentRegionContainer) node).getStartOffset(); - } - else if (node instanceof CSSRegionContainer) { - start = ((CSSRegionContainer) node).getStartOffset(); - } - } - return start; - } - - /** - * - */ - private StructuredDocumentEvent insertText(int start, int oldLength, String text) { - StructuredDocumentEvent result = null; - BasicStructuredDocument structuredDocument = (BasicStructuredDocument) fModel.getStructuredDocument(); - if (structuredDocument != null) { - if (text != null && 0 < oldLength && start + oldLength <= structuredDocument.getLength()) { - // minimize text change - String delText = structuredDocument.get(start, oldLength); - int newLength = text.length(); - int shorterLen = Math.min(oldLength, newLength); - int stMatchLen; - for (stMatchLen = 0; stMatchLen < shorterLen && text.charAt(stMatchLen) == delText.charAt(stMatchLen); stMatchLen++) { - // - } - if (0 < stMatchLen && stMatchLen < shorterLen && text.charAt(stMatchLen - 1) == 0x000d && (text.charAt(stMatchLen) == 0x000a || delText.charAt(stMatchLen) == 0x000a)) { - // must not divide 0d->0a sequence - stMatchLen--; - } - if (stMatchLen == shorterLen) { - if (oldLength < newLength) { // just insert - oldLength = 0; - start += stMatchLen; - text = text.substring(stMatchLen); - } - else if (newLength < oldLength) { // just remove - oldLength -= stMatchLen; - start += stMatchLen; - text = null; - } - else { // nothing to do - oldLength = 0; - text = null; - } - } - else { - int edMatchLen; - for (edMatchLen = 0; stMatchLen + edMatchLen < shorterLen && text.charAt(newLength - edMatchLen - 1) == delText.charAt(oldLength - edMatchLen - 1); edMatchLen++) { - // - } - if (0 < edMatchLen && text.charAt(newLength - edMatchLen) == 0x000a && ((edMatchLen < newLength && text.charAt(newLength - edMatchLen - 1) == 0x000d) || (edMatchLen < oldLength && delText.charAt(oldLength - edMatchLen - 1) == 0x000d))) { - // must not divide 0d->0a sequence - edMatchLen--; - } - oldLength -= stMatchLen + edMatchLen; - start += stMatchLen; - if (stMatchLen + edMatchLen < newLength) { - text = text.substring(stMatchLen, newLength - edMatchLen); - } - else { - text = null; - } - } - } - if (0 < oldLength || text != null) { - // String delText = structuredDocument.get(start, oldLength); - result = structuredDocument.replaceText(fModel, start, oldLength, text); - } - } - return result; - } - - /** - * @return int - * @param insertPos - * int - */ - private int nearestSpaceLengthAfter(CSSNodeImpl node, int insertPos) { - CSSSourceGenerator formatter = CSSSourceFormatterFactory.getInstance().getSourceFormatter(node); - if (formatter != null) { - return formatter.getLengthToReformatAfter(node, insertPos); - } - else - return 0; - } - - /** - * @return int - * @param insertPos - * int - */ - private int nearestSpaceLengthBefore(CSSNodeImpl node, int insertPos) { - CSSSourceGenerator formatter = CSSSourceFormatterFactory.getInstance().getSourceFormatter(node); - if (formatter != null) { - return formatter.getLengthToReformatBefore(node, insertPos); - } - else - return 0; - } - - /** - * - */ - private StructuredDocumentEvent removeText(int start, int length) { - StructuredDocumentEvent result = null; - IStructuredDocument structuredDocument = fModel.getStructuredDocument(); - if (structuredDocument != null) { - result = structuredDocument.replaceText(fModel, start, length, new String(""));//$NON-NLS-1$ - } - return result; - } - - /** - * - */ - void setParser(CSSModelParser parser) { - fParser = parser; - } - - /** - * - */ - void valueChanged(CSSNodeImpl node, String oldValue) { - if (!(node instanceof CSSRegionContainer)) { - CSSUtil.debugOut("Too Bad.." + //$NON-NLS-1$ - ((node == null) ? "null" : node.getClass().toString()));//$NON-NLS-1$ - return; - } - - int start = node.getStartOffset(); - - if (node.getNodeType() == ICSSNode.ATTR_NODE) { - ICSSAttr attr = (ICSSAttr) node; - CSSSourceGenerator formatter = CSSSourceFormatterFactory.getInstance().getSourceFormatter((INodeNotifier) attr.getOwnerCSSNode()); - if (formatter != null) - start = formatter.getAttrInsertPos(attr.getOwnerCSSNode(), attr.getName()); - } - - int oldLength = (oldValue == null) ? 0 : oldValue.length(); - // flash old IStructuredDocumentRegion/ITextRegion - if (node instanceof CSSStructuredDocumentRegionContainer) { - ((CSSStructuredDocumentRegionContainer) node).setFirstStructuredDocumentRegion(null); - ((CSSStructuredDocumentRegionContainer) node).setLastStructuredDocumentRegion(null); - } - else if (node instanceof CSSRegionContainer) { - ((CSSRegionContainer) node).setRangeRegion(null, null, null); - } - // generate new source - String newValue = node.generateSource(); - - ICSSNode parent; - if (node.getNodeType() == ICSSNode.ATTR_NODE) { - parent = ((ICSSAttr) node).getOwnerCSSNode(); - } - else { - parent = node.getParentNode(); - } - - fParser.setupUpdateContext(CSSModelUpdateContext.UPDATE_CHANGE_RCONTAINER, parent, node); - - StructuredDocumentEvent result = insertText(start, oldLength, newValue); - - int nRemains = fParser.cleanupUpdateContext(); - - if (0 < nRemains && !(result instanceof NoChangeEvent)) { - throw new DOMException(DOMException.INVALID_MODIFICATION_ERR, "");//$NON-NLS-1$ - } - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSModelUtil.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSModelUtil.java deleted file mode 100644 index f9b137a19f..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSModelUtil.java +++ /dev/null @@ -1,293 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.document; - -import java.util.Iterator; -import java.util.Vector; - -import org.eclipse.osgi.util.NLS; -import org.eclipse.wst.css.core.internal.CSSCoreMessages; -import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts; -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.ICSSNodeList; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSRuleContainer; -import org.eclipse.wst.css.core.internal.util.CSSUtil; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; - -/** - * - */ -class CSSModelUtil { - - /** - * - */ - static boolean canContainBrace(ICSSNode node) { - return (node != null && (node instanceof ICSSRuleContainer || node instanceof CSSRuleDeclContainer)) ? true : false; - } - - /** - * @param parent - * org.eclipse.wst.css.core.model.interfaces.ICSSNode - */ - static void cleanupContainer(ICSSNode parent) { - if (parent == null) { - return; - } - for (ICSSNode child = parent.getFirstChild(); child != null; child = child.getNextSibling()) { - cleanupContainer(child); - } - if (parent instanceof CSSStructuredDocumentRegionContainer) { - ((CSSStructuredDocumentRegionContainer) parent).setRangeStructuredDocumentRegion(null, null); - } - else if (parent instanceof CSSRegionContainer) { - ((CSSRegionContainer) parent).setRangeRegion(null, null, null); - } - } - - static boolean diagnoseNode(ICSSNode parent, IStructuredDocument structuredDocument) { - // check this - Vector errors = new Vector(); - if (parent instanceof CSSStructuredDocumentRegionContainer) { - CSSStructuredDocumentRegionContainer node = (CSSStructuredDocumentRegionContainer) parent; - String nodeText = CSSUtil.getClassString(node) + ": ";//$NON-NLS-1$ - IStructuredDocumentRegion flatNode = node.getFirstStructuredDocumentRegion(); - if (flatNode == null && (!(node instanceof CSSStyleDeclarationImpl || node instanceof CSSStyleSheetImpl) || node.getFirstChild() != null)) { - errors.add(NLS.bind(CSSCoreMessages._1concat_ERROR_, (new Object[]{nodeText}))); //$NON-NLS-1$ = "{0}first flat node is null." - } - else if (flatNode != null) { - IStructuredDocumentRegion modelNode = structuredDocument.getRegionAtCharacterOffset(flatNode.getStart()); - if (flatNode != modelNode) { - errors.add(NLS.bind(CSSCoreMessages._2concat_ERROR_, (new Object[]{nodeText}))); //$NON-NLS-1$ = "{0}first flat node is not in model." - } - } - flatNode = node.getLastStructuredDocumentRegion(); - if (flatNode == null && (!(node instanceof CSSStyleDeclarationImpl || node instanceof CSSStyleSheetImpl) || node.getFirstChild() != null)) { - errors.add(NLS.bind(CSSCoreMessages._3concat_ERROR_, (new Object[]{nodeText}))); //$NON-NLS-1$ = "{0}last flat node is null." - } - else if (flatNode != null) { - IStructuredDocumentRegion modelNode = structuredDocument.getRegionAtCharacterOffset(flatNode.getStart()); - if (flatNode != modelNode) { - errors.add(NLS.bind(CSSCoreMessages._4concat_ERROR_, (new Object[]{nodeText}))); //$NON-NLS-1$ = "{0}last flat node is not in model." - } - } - } - else if (parent instanceof CSSRegionContainer) { - CSSRegionContainer node = (CSSRegionContainer) parent; - String nodeText = CSSUtil.getClassString(node) + ": ";//$NON-NLS-1$ - ITextRegion region = node.getFirstRegion(); - IStructuredDocumentRegion parentRegion = node.getDocumentRegion(); - if (region == null && (!(node instanceof MediaListImpl) || node.getFirstChild() != null)) { - errors.add(NLS.bind(CSSCoreMessages._25concat_ERROR_, (new Object[]{nodeText}))); //$NON-NLS-1$ = "{0}first region is null." - } - else if (region != null) { - int offset = parentRegion.getStartOffset(region); - IStructuredDocumentRegion modelNode = structuredDocument.getRegionAtCharacterOffset(offset); - ITextRegion modelRegion = modelNode.getRegionAtCharacterOffset(offset); - if (region != modelRegion) { - errors.add(NLS.bind(CSSCoreMessages._26concat_ERROR_, (new Object[]{nodeText}))); //$NON-NLS-1$ = "{0}first region is not in model." - } - } - region = node.getLastRegion(); - if (region == null && (!(node instanceof MediaListImpl) || node.getFirstChild() != null)) { - errors.add(NLS.bind(CSSCoreMessages._27concat_ERROR_, (new Object[]{nodeText}))); //$NON-NLS-1$ = "{0}last region is null." - } - else if (region != null) { - int offset = parentRegion.getStartOffset(region); - IStructuredDocumentRegion modelNode = structuredDocument.getRegionAtCharacterOffset(offset); - ITextRegion modelRegion = modelNode.getRegionAtCharacterOffset(offset); - if (region != modelRegion) { - errors.add(NLS.bind(CSSCoreMessages._28concat_ERROR_, (new Object[]{nodeText}))); //$NON-NLS-1$ = "{0}last region is not in model." - } - } - } - - ICSSNodeList attrs = parent.getAttributes(); - int nAttrs = attrs.getLength(); - for (int i = 0; i < nAttrs; i++) { - ICSSAttr attr = (ICSSAttr) attrs.item(i); - CSSRegionContainer node = (CSSRegionContainer) attr; - String nodeText = CSSUtil.getClassString(node) + "(" + attr.getName() + "): ";//$NON-NLS-2$//$NON-NLS-1$ - ITextRegion region = node.getFirstRegion(); - IStructuredDocumentRegion parentRegion = node.getDocumentRegion(); - if (region == null && 0 < attr.getValue().length()) { - errors.add(NLS.bind(CSSCoreMessages._5concat_ERROR_, (new Object[]{nodeText}))); //$NON-NLS-1$ = "{0}first region is null." - } - else if (region != null) { - int offset = parentRegion.getStartOffset(region); - IStructuredDocumentRegion modelNode = structuredDocument.getRegionAtCharacterOffset(offset); - ITextRegion modelRegion = modelNode.getRegionAtCharacterOffset(offset); - if (region != modelRegion) { - errors.add(NLS.bind(CSSCoreMessages._6concat_ERROR_, (new Object[]{nodeText}))); //$NON-NLS-1$ = "{0}first region is not in model." - } - } - region = node.getLastRegion(); - if (region == null && 0 < attr.getValue().length()) { - errors.add(NLS.bind(CSSCoreMessages._7concat_ERROR_, (new Object[]{nodeText}))); //$NON-NLS-1$ = "{0}last region is null." - } - else if (region != null) { - int offset = parentRegion.getStartOffset(region); - IStructuredDocumentRegion modelNode = structuredDocument.getRegionAtCharacterOffset(offset); - ITextRegion modelRegion = modelNode.getRegionAtCharacterOffset(offset); - if (region != modelRegion) { - errors.add(NLS.bind(CSSCoreMessages._8concat_ERROR_, (new Object[]{nodeText}))); //$NON-NLS-1$ = "{0}last region is not in model." - } - } - } - - if (!errors.isEmpty()) { - Iterator i = errors.iterator(); - while (i.hasNext()) { - CSSUtil.debugOut((String) i.next()); - } - return false; - } - else { - return true; - } - } - - /** - * @return boolean - * @param node - * org.eclipse.wst.css.core.model.interfaces.ICSSNode - */ - static boolean diagnoseTree(ICSSNode parent, IStructuredDocument structuredDocument) { - if (parent == null) { - return false; - } - // check children - for (ICSSNode child = parent.getFirstChild(); child != null; child = child.getNextSibling()) { - diagnoseTree(child, structuredDocument); - } - - diagnoseNode(parent, structuredDocument); - - return true; - } - - /** - * If needed, modify last flat node - */ - static void expandStructuredDocumentRegionContainer(CSSStructuredDocumentRegionContainer target, IStructuredDocumentRegion flatNode) { - if (target == null || flatNode == null) { - return; - } - - IStructuredDocumentRegion lastNode = target.getLastStructuredDocumentRegion(); - if (lastNode == flatNode) { - return; - } - if (lastNode == null || lastNode.getStart() < flatNode.getStart()) { - target.setLastStructuredDocumentRegion(flatNode); - } - } - - /* - * - */ - static ICSSNode findBraceContainer(ICSSNode node) { - for (ICSSNode i = node; i != null; i = i.getParentNode()) { - if (CSSModelUtil.canContainBrace(i)) { - return i; - } - } - return null; - } - - /** - * - */ - static int getDepth(ICSSNode node) { - int depth = -1; - while (node != null) { - depth++; - node = node.getParentNode(); - } - return depth; - } - - /** - * - */ - static boolean isBraceClosed(ICSSNode node) { - boolean bClosed = true; - if (!(node instanceof CSSStructuredDocumentRegionContainer)) { - return bClosed; - } - - IStructuredDocumentRegion first = ((CSSStructuredDocumentRegionContainer) node).getFirstStructuredDocumentRegion(); - IStructuredDocumentRegion last = ((CSSStructuredDocumentRegionContainer) node).getLastStructuredDocumentRegion(); - if (first == null || last == null) { - return bClosed; - } - if (last.getStart() < first.getStart()) { - return bClosed; - } - - IStructuredDocumentRegion flatNode = first; - int nOpen = 0; - int nClose = 0; - do { - String type = CSSUtil.getStructuredDocumentRegionType(flatNode); - if (type == CSSRegionContexts.CSS_LBRACE) { - nOpen++; - } - else if (type == CSSRegionContexts.CSS_RBRACE) { - nClose++; - } - flatNode = flatNode.getNext(); - } - while (flatNode != null && flatNode != last); - - if ((nOpen == 0 && nClose == 0) || nClose < nOpen) { - bClosed = false; - } - - return bClosed; - } - - /** - * only for insertion.. - */ - static boolean isInterruption(CSSStructuredDocumentRegionContainer target, IStructuredDocumentRegion flatNode) { - if (target == null || flatNode == null) { - return false; - } - int start = flatNode.getStart(); - IStructuredDocumentRegion firstNode = target.getFirstStructuredDocumentRegion(); - IStructuredDocumentRegion lastNode = target.getLastStructuredDocumentRegion(); - if (firstNode != null && firstNode.getStart() < start && lastNode != null && start < lastNode.getStart()) { - return true; - } - return false; - } - - /** - * - */ - static boolean isParentOf(ICSSNode parent, ICSSNode child) { - if (parent == null || child == null) { - return false; - } - - for (ICSSNode node = child; node != null; node = node.getParentNode()) { - if (parent == node) { - return true; - } - } - - return false; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSNamedNodeMapImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSNamedNodeMapImpl.java deleted file mode 100644 index 9d21149b4d..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSNamedNodeMapImpl.java +++ /dev/null @@ -1,48 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.document; - - - -import java.util.Iterator; - -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNamedNodeMap; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; - - -/** - * - */ -public class CSSNamedNodeMapImpl extends CSSNodeListImpl implements ICSSNamedNodeMap { - - /** - * CSSNamedNodeMapImpl constructor comment. - */ - CSSNamedNodeMapImpl() { - super(); - } - - /** - * @return org.eclipse.wst.css.core.model.interfaces.ICSSNode - * @param name - * java.lang.String - */ - public ICSSNode getNamedItem(String name) { - Iterator it = nodes.iterator(); - while (it.hasNext()) { - Object obj = it.next(); - if (obj instanceof CSSAttrImpl && ((CSSAttrImpl) obj).getName().compareToIgnoreCase(name) == 0) { - return (ICSSNode) obj; - } - } - return null; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSNodeImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSNodeImpl.java deleted file mode 100644 index 0f37dac06c..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSNodeImpl.java +++ /dev/null @@ -1,470 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 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.document; - - - -import java.util.Iterator; - -import org.eclipse.wst.css.core.internal.formatter.CSSSourceFormatterFactory; -import org.eclipse.wst.css.core.internal.formatter.CSSSourceGenerator; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSDocument; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNamedNodeMap; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNodeList; -import org.eclipse.wst.css.core.internal.util.ImportRuleCollector; -import org.eclipse.wst.sse.core.internal.model.FactoryRegistry; -import org.eclipse.wst.sse.core.internal.provisional.AbstractNotifier; -import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion; -import org.w3c.dom.DOMException; - - -/** - * - */ -public abstract class CSSNodeImpl extends AbstractNotifier implements ICSSNode, IndexedRegion { - - private CSSDocumentImpl fOwnerDocument = null; - private CSSNodeImpl fParentNode = null; - private CSSNodeImpl fNextSibling = null; - private CSSNodeImpl fPreviousSibling = null; - private CSSNodeImpl fFirstChild = null; - private CSSNodeImpl fLastChild = null; - protected CSSNamedNodeMapImpl fAttrs = null; - - /** - * CSSNodeImpl constructor comment. - */ - CSSNodeImpl() { - super(); - } - - CSSNodeImpl(CSSNodeImpl that) { - if (that != null) { - this.fOwnerDocument = that.fOwnerDocument; - if (that.fAttrs != null) { - int nAttrs = that.fAttrs.getLength(); - for (int i = 0; i < nAttrs; i++) { - CSSAttrImpl attr = (CSSAttrImpl) that.fAttrs.item(i); - setAttribute(attr.getName(), attr.getValue()); - } - } - } - } - /** - * currently public but may be made default access protected in future. - */ - public CSSNodeImpl appendChild(CSSNodeImpl newChild) throws org.w3c.dom.DOMException { - return insertBefore(newChild, null); - } - /** - * currently public but may be made default access protected in future. - */ - protected void cloneChildNodes(ICSSNode newParent, boolean deep) { - if (newParent == null || newParent == this) - return; - - CSSNodeImpl container = (CSSNodeImpl) newParent; - container.removeChildNodes(); - - for (ICSSNode child = getFirstChild(); child != null; child = child.getNextSibling()) { - CSSNodeImpl cloned = (CSSNodeImpl) child.cloneNode(deep); - if (cloned != null) - container.appendChild(cloned); - } - } - - /** - * @return boolean - * @param offset - * int - */ - public boolean contains(int offset) { - return (getStartOffset() <= offset && offset < getEndOffset()); - } - - /** - * - * currently public but may be made default access protected in future. - * - * @return java.lang.String - */ - protected String generateSource() { - CSSSourceGenerator formatter = CSSSourceFormatterFactory.getInstance().getSourceFormatter(this); - return formatter.format(this).toString(); - } - - /** - * - * currently public but may be made default access protected in future. - * - * @return java.lang.String - * @param name - * java.lang.String - */ - protected String getAttribute(String name) { - CSSAttrImpl attr = getAttributeNode(name); - if (attr != null) - return attr.getValue(); - return null; - } - - protected CSSAttrImpl getAttributeNode(String name) { - if (fAttrs == null) - return null; - - int nAttrs = fAttrs.getLength(); - for (int i = 0; i < nAttrs; i++) { - CSSAttrImpl attr = (CSSAttrImpl) fAttrs.item(i); - if (attr.matchName(name)) - return attr; - } - return null; - } - - /** - * @return org.eclipse.wst.css.core.model.interfaces.ICSSNamedNodeMap - */ - public ICSSNamedNodeMap getAttributes() { - if (fAttrs == null) - fAttrs = new CSSNamedNodeMapImpl(); - return fAttrs; - } - - public ICSSNodeList getChildNodes() { - CSSNodeListImpl list = new CSSNodeListImpl(); - for (ICSSNode node = getFirstChild(); node != null; node = node.getNextSibling()) { - list.appendNode(node); - } - return list; - } - - ICSSNode getCommonAncestor(ICSSNode node) { - if (node == null) - return null; - - for (ICSSNode na = node; na != null; na = na.getParentNode()) { - for (ICSSNode ta = this; ta != null; ta = ta.getParentNode()) { - if (ta == na) - return ta; - } - } - - return null; // not found - } - - CSSDocumentImpl getContainerDocument() { - for (ICSSNode node = this; node != null; node = node.getParentNode()) { - if (node instanceof CSSDocumentImpl) { - CSSDocumentImpl doc = (CSSDocumentImpl) node; - if (doc.isDocument()) - return doc; - } - } - return null; - } - - CSSNodeImpl getContainerNode(int offset) { - if (!contains(offset)) - return null; - - for (ICSSNode child = getFirstChild(); child != null; child = child.getNextSibling()) { - ICSSNode found = ((CSSNodeImpl) child).getContainerNode(offset); - if (found != null) - return (CSSNodeImpl) found; - } - - return this; - } - - /** - */ - public FactoryRegistry getFactoryRegistry() { - ICSSModel model = getOwnerDocument().getModel(); - if (model != null) { - FactoryRegistry reg = model.getFactoryRegistry(); - if (reg != null) - return reg; - } - return null; - } - - public ICSSNode getFirstChild() { - return this.fFirstChild; - } - - public ICSSNode getLastChild() { - return this.fLastChild; - } - - public ICSSNode getNextSibling() { - return this.fNextSibling; - } - - ICSSNode getNodeAt(int offset) { - // the same as getContainerNode() - return getContainerNode(offset); - } - - public ICSSDocument getOwnerDocument() { - return this.fOwnerDocument; - } - - public ICSSNode getParentNode() { - return this.fParentNode; - } - - public ICSSNode getPreviousSibling() { - return this.fPreviousSibling; - } - - ICSSNode getRootNode() { - CSSNodeImpl parent = (CSSNodeImpl) getParentNode(); - if (parent == null) - return this; - return parent.getRootNode(); - } - - /** - * @return boolean - */ - public boolean hasChildNodes() { - return (this.fFirstChild != null); - } - - /** - * @return boolean - */ - public boolean hasProperties() { - return false; - } - /** - * currently public but may be made default access protected in future. - */ - public CSSNodeImpl insertBefore(CSSNodeImpl newChild, CSSNodeImpl refChild) throws org.w3c.dom.DOMException { - if (newChild == null) - return null; - - CSSNodeImpl child = newChild; - CSSNodeImpl next = refChild; - CSSNodeImpl prev = null; - if (next == null) { - prev = this.fLastChild; - this.fLastChild = child; - } - else { - prev = (CSSNodeImpl) next.getPreviousSibling(); - next.setPreviousSibling(child); - } - - if (prev == null) - this.fFirstChild = child; - else - prev.setNextSibling(child); - child.setPreviousSibling(prev); - child.setNextSibling(next); - child.setParentNode(this); - - notifyChildReplaced(child, null); - - return newChild; - } - - protected void notifyAttrReplaced(CSSNodeImpl newAttr, CSSNodeImpl oldAttr) { - // for model - ICSSDocument doc = getContainerDocument(); - if (doc == null) - return; - CSSModelImpl model = (CSSModelImpl) doc.getModel(); - if (model == null) - return; - model.attrReplaced(this, newAttr, oldAttr); - - // for adapters - int type = CHANGE; - if (newAttr == null) - type = REMOVE; - else if (oldAttr == null) - type = ADD; - notify(type, oldAttr, oldAttr, newAttr, getStartOffset()); - } - - protected void notifyChildReplaced(CSSNodeImpl newChild, CSSNodeImpl oldChild) { - // for model - ICSSDocument doc = getContainerDocument(); - if (doc == null) - return; - CSSModelImpl model = (CSSModelImpl) doc.getModel(); - if (model == null) - return; - model.childReplaced(this, newChild, oldChild); - - // for adapters - int type = CHANGE; - if (newChild == null) - type = REMOVE; - else if (oldChild == null) - type = ADD; - notify(type, oldChild, oldChild, newChild, getStartOffset()); - } - - void removeAttributeNode(CSSNodeImpl attr) { - // find - int nAttrs = fAttrs.getLength(); - for (int i = 0; i < nAttrs; i++) { - if (fAttrs.item(i) == attr) { - fAttrs.removeNode(i); - notifyAttrReplaced(null, attr); - return; - } - } - } - - protected CSSNodeImpl removeChild(CSSNodeImpl oldChild) throws org.w3c.dom.DOMException { - if (oldChild == null) - return null; - if (oldChild.getParentNode() != this) - return null; - - // close import rules - ImportRuleCollector trav = new ImportRuleCollector(); - trav.apply(oldChild); - Iterator it = trav.getRules().iterator(); - while (it.hasNext()) { - ((CSSImportRuleImpl) it.next()).closeStyleSheet(); - } - - CSSNodeImpl child = oldChild; - CSSNodeImpl prev = (CSSNodeImpl) child.getPreviousSibling(); - CSSNodeImpl next = (CSSNodeImpl) child.getNextSibling(); - - if (prev == null) - this.fFirstChild = next; - else - prev.setNextSibling(next); - - if (next == null) - this.fLastChild = prev; - else - next.setPreviousSibling(prev); - - child.setPreviousSibling(null); - child.setNextSibling(null); - child.setParentNode(null); - - notifyChildReplaced(null, child); - - return child; - } - - /** - * - */ - void removeChildNodes() { - ICSSNode nextChild = null; - for (ICSSNode child = getFirstChild(); child != null; child = nextChild) { - nextChild = child.getNextSibling(); - removeChild((CSSNodeImpl) child); - } - } - - protected CSSNodeImpl replaceChild(CSSNodeImpl newChild, CSSNodeImpl oldChild) throws org.w3c.dom.DOMException { - if (oldChild == null) - return newChild; - if (newChild != null) - insertBefore(newChild, oldChild); - return removeChild(oldChild); - } - - /** - * - * currently public but may be made default access protected in future. - * - * @param name - * java.lang.String - * @param value - * java.lang.String - */ - public void setAttribute(String name, String value) { - if (name == null) - return; - - CSSAttrImpl attr = getAttributeNode(name); - if (attr != null) { - String oldValue = attr.getValue(); - if (value != null && value.equals(oldValue)) - return; - if (value == null) { - if (oldValue != null) { - removeAttributeNode(attr); - } - return; - } - } - else { - if (value == null) - return; - if (fAttrs == null) - fAttrs = new CSSNamedNodeMapImpl(); - CSSDocumentImpl doc = (CSSDocumentImpl) getOwnerDocument(); - if (doc == null) - return; - attr = (CSSAttrImpl) doc.createCSSAttr(name); - attr.setOwnerCSSNode(this); - fAttrs.appendNode(attr); - notifyAttrReplaced(attr, null); - } - attr.setValue(value); - } - - /** - * @param cssText - * java.lang.String - */ - public void setCssText(String cssText) { - // TODO : call flat model parser and replace myself with new three!! - throw new DOMException(DOMException.INVALID_MODIFICATION_ERR, "");//$NON-NLS-1$ - } - - private void setNextSibling(ICSSNode nextSibling) { - this.fNextSibling = (CSSNodeImpl) nextSibling; - } - /** - * currently public but may be made default access protected in future. - */ - public void setOwnerDocument(ICSSDocument ownerDocument) { - this.fOwnerDocument = (CSSDocumentImpl) ownerDocument; - } - - private void setParentNode(ICSSNode parentNode) { - this.fParentNode = (CSSNodeImpl) parentNode; - } - - private void setPreviousSibling(ICSSNode previousSibling) { - this.fPreviousSibling = (CSSNodeImpl) previousSibling; - } - - public int getLength() { - int result = -1; - int start = getStartOffset(); - if (start >= 0) { - int end = getEndOffset(); - if (end >= 0) { - result = end - start; - if (result < -1) { - result = -1; - } - } - } - return result; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSNodeListImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSNodeListImpl.java deleted file mode 100644 index ed13871af7..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSNodeListImpl.java +++ /dev/null @@ -1,27 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.document; - - - -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNodeList; - -class CSSNodeListImpl extends AbstractCSSNodeList implements ICSSNodeList { - - CSSNodeListImpl() { - super(); - } - - public ICSSNode item(int index) { - return itemImpl(index); - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSPageRuleImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSPageRuleImpl.java deleted file mode 100644 index e49d5789ee..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSPageRuleImpl.java +++ /dev/null @@ -1,98 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.document; - - - -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.ICSSSelectorList; - - -/** - * - */ -class CSSPageRuleImpl extends CSSRuleDeclContainer implements ICSSPageRule { - - ICSSSelectorList fSelectorList = new CSSSelectorListImpl(null); - - /** - * - */ - CSSPageRuleImpl() { - super(); - } - - CSSPageRuleImpl(CSSPageRuleImpl that) { - super(that); - } - - public ICSSNode cloneNode(boolean deep) { - CSSPageRuleImpl cloned = new CSSPageRuleImpl(this); - - if (deep) - cloneChildNodes(cloned, deep); - - return cloned; - } - - /** - * @return java.lang.String - */ - String extractPreString() { - StringBuffer preStr = new StringBuffer("@page ");//$NON-NLS-1$ - preStr.append(getSelectorText()); - - return preStr.toString(); - } - - /** - * @return short - */ - public short getNodeType() { - return PAGERULE_NODE; - } - - public ICSSSelectorList getSelectors() { - return fSelectorList; - } - - /** - * The parsable textual representation of the page selector for the rule. - * - * @exception org.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the specified CSS string value has - * a syntax error and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this rule is - * readonly. - */ - public String getSelectorText() { - return getAttribute(SELECTOR); - } - - /** - * The type of the rule, as defined above. The expectation is that - * binding-specific casting methods can be used to cast down from an - * instance of the <code>CSSRule</code> interface to the specific - * derived interface implied by the <code>type</code>. - */ - public short getType() { - return PAGE_RULE; - } - - /** - * - */ - public void setSelectorText(String selectorText) throws org.w3c.dom.DOMException { - setAttribute(SELECTOR, selectorText); - fSelectorList = new CSSSelectorListImpl(selectorText); - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSPrimitiveContainer.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSPrimitiveContainer.java deleted file mode 100644 index 8d1f18699f..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSPrimitiveContainer.java +++ /dev/null @@ -1,39 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 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.document; - - - -import org.eclipse.wst.css.core.internal.provisional.document.ICSSDocument; - -/** - * - */ -abstract class CSSPrimitiveContainer extends CSSPrimitiveValueImpl { - - CSSPrimitiveContainer(CSSPrimitiveContainer that) { - super(that); - } - - CSSPrimitiveContainer(short primitiveType) { - super(primitiveType); - } - - protected abstract void initPrimitives(); - /** - * currently public but may be made default access protected in future. - */ - public void setOwnerDocument(ICSSDocument ownerDocument) { - super.setOwnerDocument(ownerDocument); - - initPrimitives(); - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSPrimitiveValueImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSPrimitiveValueImpl.java deleted file mode 100644 index 1bbc097a53..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSPrimitiveValueImpl.java +++ /dev/null @@ -1,362 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.document; - - - -import org.eclipse.wst.css.core.internal.provisional.document.ICSSDocument; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSPrimitiveValue; -import org.w3c.dom.DOMException; -import org.w3c.dom.css.Counter; -import org.w3c.dom.css.RGBColor; -import org.w3c.dom.css.Rect; - - -/** - * - */ -class CSSPrimitiveValueImpl extends CSSRegionContainer implements ICSSPrimitiveValue { - - protected short fPrimitiveType = CSS_UNKNOWN; - private float fFloatValue = 0.0f; - private String fStringValue = null; - - CSSPrimitiveValueImpl(CSSPrimitiveValueImpl that) { - super(that); - - this.fPrimitiveType = that.fPrimitiveType; - this.fFloatValue = that.fFloatValue; - this.fStringValue = that.fStringValue; - } - - CSSPrimitiveValueImpl(short primitiveType) { - super(); - fPrimitiveType = primitiveType; - } - - public ICSSNode cloneNode(boolean deep) { - CSSPrimitiveValueImpl cloned = new CSSPrimitiveValueImpl(this); - - return cloned; - } - - /** - * This method is used to get the Counter value. If this CSS value doesn't - * contain a counter value, a <code>DOMException</code> is raised. - * Modification to the corresponding style property can be achieved using - * the <code>Counter</code> interface. - * - * @return The Counter value. - * @exception DOMException - * INVALID_ACCESS_ERR: Raised if the CSS value doesn't - * contain a Counter value (e.g. this is not - * <code>CSS_COUNTER</code>). - */ - public Counter getCounterValue() throws DOMException { - throw new DOMException(DOMException.INVALID_ACCESS_ERR, "");//$NON-NLS-1$ - } - - /** - * @return java.lang.String - */ - public java.lang.String getCSSValueText() { - return getCssText(); - } - - /** - * A code defining the type of the value as defined above. - */ - public short getCssValueType() { - if (getPrimitiveType() == CSS_INHERIT_PRIMITIVE) { - return CSS_INHERIT; - } - else { - return CSS_PRIMITIVE_VALUE; - } - } - - /** - * This method is used to get a float value in a specified unit. If this - * CSS value doesn't contain a float value or can't be converted into the - * specified unit, a <code>DOMException</code> is raised. - * - * @param unitType - * A unit code to get the float value. The unit code can only - * be a float unit type (i.e. <code>CSS_NUMBER</code>, - * <code>CSS_PERCENTAGE</code>,<code>CSS_EMS</code>, - * <code>CSS_EXS</code>,<code>CSS_PX</code>, - * <code>CSS_CM</code>,<code>CSS_MM</code>, - * <code>CSS_IN</code>,<code>CSS_PT</code>, - * <code>CSS_PC</code>,<code>CSS_DEG</code>, - * <code>CSS_RAD</code>,<code>CSS_GRAD</code>, - * <code>CSS_MS</code>,<code>CSS_S</code>, - * <code>CSS_HZ</code>,<code>CSS_KHZ</code>, - * <code>CSS_DIMENSION</code>). - * @return The float value in the specified unit. - * @exception DOMException - * INVALID_ACCESS_ERR: Raised if the CSS value doesn't - * contain a float value or if the float value can't be - * converted into the specified unit. - */ - public float getFloatValue(short unitType) throws DOMException { - switch (fPrimitiveType) { - case CSS_NUMBER : - case CSS_PERCENTAGE : - case CSS_EMS : - case CSS_EXS : - case CSS_PX : - case CSS_CM : - case CSS_MM : - case CSS_IN : - case CSS_PT : - case CSS_PC : - case CSS_DEG : - case CSS_RAD : - case CSS_GRAD : - case CSS_MS : - case CSS_S : - case CSS_HZ : - case CSS_KHZ : - case CSS_DIMENSION : - case CSS_INTEGER : - case CSS_HASH : - return fFloatValue; - default : - throw new DOMException(DOMException.INVALID_ACCESS_ERR, "");//$NON-NLS-1$ - } - } - - /** - * Insert the method's description here. Creation date: (2001/01/17 - * 12:12:18) - * - * @return short - */ - public short getNodeType() { - return PRIMITIVEVALUE_NODE; - } - - /** - * The type of the value as defined by the constants specified above. - */ - public short getPrimitiveType() { - return fPrimitiveType; - } - - /** - * This method is used to get the Rect value. If this CSS value doesn't - * contain a rect value, a <code>DOMException</code> is raised. - * Modification to the corresponding style property can be achieved using - * the <code>Rect</code> interface. - * - * @return The Rect value. - * @exception DOMException - * INVALID_ACCESS_ERR: Raised if the CSS value doesn't - * contain a Rect value. (e.g. this is not - * <code>CSS_RECT</code>). - */ - public Rect getRectValue() throws DOMException { - throw new DOMException(DOMException.INVALID_ACCESS_ERR, "");//$NON-NLS-1$ - } - - /** - * This method is used to get the RGB color. If this CSS value doesn't - * contain a RGB color value, a <code>DOMException</code> is raised. - * Modification to the corresponding style property can be achieved using - * the <code>RGBColor</code> interface. - * - * @return the RGB color value. - * @exception DOMException - * INVALID_ACCESS_ERR: Raised if the attached property - * can't return a RGB color value (e.g. this is not - * <code>CSS_RGBCOLOR</code>). - */ - public RGBColor getRGBColorValue() throws DOMException { - throw new DOMException(DOMException.INVALID_ACCESS_ERR, "");//$NON-NLS-1$ - } - - /** - * This method is used to get the string value. If the CSS value doesn't - * contain a string value, a <code>DOMException</code> is raised. Some - * properties (like 'font-family' or 'voice-family') convert a whitespace - * separated list of idents to a string. - * - * @return The string value in the current unit. The current - * <code>primitiveType</code> can only be a string unit type - * (i.e. <code>CSS_STRING</code>,<code>CSS_URI</code>, - * <code>CSS_IDENT</code> and <code>CSS_ATTR</code>). - * @exception DOMException - * INVALID_ACCESS_ERR: Raised if the CSS value doesn't - * contain a string value. - */ - public String getStringValue() throws DOMException { - switch (fPrimitiveType) { - case CSS_STRING : - case CSS_URI : - case CSS_IDENT : - case CSS_ATTR : - case CSS_URANGE : - case CSS_FORMAT : - case CSS_LOCAL : - case CSS_HASH : - case CSS_COMMA : - case CSS_SLASH : - case CSS_INHERIT_PRIMITIVE : - return fStringValue; - default : - throw new DOMException(DOMException.INVALID_ACCESS_ERR, "");//$NON-NLS-1$ - } - } - - /** - * - */ - protected void notifyValueChanged(String oldValue) { - // for model - ICSSDocument doc = getContainerDocument(); - if (doc == null) - return; - CSSModelImpl model = (CSSModelImpl) doc.getModel(); - if (model == null) - return; - model.valueChanged(this, oldValue); - - // for adapters - notify(CHANGE, new Short(fPrimitiveType), null, null, getStartOffset()); - } - - /** - * A method to set the float value with a specified unit. If the property - * attached with this value can not accept the specified unit or the float - * value, the value will be unchanged and a <code>DOMException</code> - * will be raised. - * - * @param unitType - * A unit code as defined above. The unit code can only be a - * float unit type (i.e. <code>CSS_NUMBER</code>, - * <code>CSS_PERCENTAGE</code>,<code>CSS_EMS</code>, - * <code>CSS_EXS</code>,<code>CSS_PX</code>, - * <code>CSS_CM</code>,<code>CSS_MM</code>, - * <code>CSS_IN</code>,<code>CSS_PT</code>, - * <code>CSS_PC</code>,<code>CSS_DEG</code>, - * <code>CSS_RAD</code>,<code>CSS_GRAD</code>, - * <code>CSS_MS</code>,<code>CSS_S</code>, - * <code>CSS_HZ</code>,<code>CSS_KHZ</code>, - * <code>CSS_DIMENSION</code>). - * @param floatValue - * The new float value. - * @exception DOMException - * INVALID_ACCESS_ERR: Raised if the attached property - * doesn't support the float value or the unit type. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public void setFloatValue(short unitType, float floatValue) throws DOMException { - switch (unitType) { - case CSS_NUMBER : - case CSS_PERCENTAGE : - case CSS_EMS : - case CSS_EXS : - case CSS_PX : - case CSS_CM : - case CSS_MM : - case CSS_IN : - case CSS_PT : - case CSS_PC : - case CSS_DEG : - case CSS_RAD : - case CSS_GRAD : - case CSS_MS : - case CSS_S : - case CSS_HZ : - case CSS_KHZ : - case CSS_DIMENSION : - case CSS_INTEGER : - String oldValue = getCSSValueText(); - fPrimitiveType = unitType; - fFloatValue = floatValue; - notifyValueChanged(oldValue); - break; - default : - throw new DOMException(DOMException.INVALID_ACCESS_ERR, "");//$NON-NLS-1$ - } - } - - /** - * A method to set the string value with the specified unit. If the - * property attached to this value can't accept the specified unit or the - * string value, the value will be unchanged and a - * <code>DOMException</code> will be raised. - * - * @param stringType - * A string code as defined above. The string code can only be - * a string unit type (i.e. <code>CSS_STRING</code>, - * <code>CSS_URI</code>,<code>CSS_IDENT</code>, and - * <code>CSS_ATTR</code>). - * @param stringValue - * The new string value. - * @exception DOMException - * INVALID_ACCESS_ERR: Raised if the CSS value doesn't - * contain a string value or if the string value can't be - * converted into the specified unit. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public void setStringValue(short stringType, String stringValue) throws DOMException { - switch (stringType) { - case CSS_STRING : - case CSS_URI : - case CSS_IDENT : - case CSS_ATTR : - case CSS_URANGE : - case CSS_FORMAT : - case CSS_LOCAL : - case CSS_HASH : - case CSS_COMMA : - case CSS_SLASH : - case CSS_INHERIT_PRIMITIVE : - String oldValue = getCSSValueText(); - fPrimitiveType = stringType; - fStringValue = stringValue; - notifyValueChanged(oldValue); - break; - default : - throw new DOMException(DOMException.INVALID_ACCESS_ERR, "");//$NON-NLS-1$ - } - } - - /** - * Insert the method's description here. Creation date: (2001/01/24 - * 15:06:25) - * - * @param floatValue - * float - * @exception org.w3c.dom.DOMException - * The exception description. - */ - public void setValue(float floatValue) throws org.w3c.dom.DOMException { - setFloatValue(getPrimitiveType(), floatValue); - } - - /** - * Insert the method's description here. Creation date: (2001/01/24 - * 15:06:25) - * - * @param stringValue - * java.lang.String - * @exception org.w3c.dom.DOMException - * The exception description. - */ - public void setValue(java.lang.String stringValue) throws org.w3c.dom.DOMException { - setStringValue(getPrimitiveType(), stringValue); - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSRegionContainer.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSRegionContainer.java deleted file mode 100644 index c569e91036..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSRegionContainer.java +++ /dev/null @@ -1,203 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.document; - - - -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList; - -/** - * - */ -abstract class CSSRegionContainer extends CSSNodeImpl { - - private ITextRegion fFirstRegion = null; - private ITextRegion fLastRegion = null; - private IStructuredDocumentRegion fParentRegion = null; - - /** - * CSSRegionContainer constructor comment. - */ - CSSRegionContainer() { - super(); - } - - CSSRegionContainer(CSSRegionContainer that) { - super(that); - } - - /** - * @return java.lang.String - */ - public String getCssText() { - if (fFirstRegion == null || fLastRegion == null) - return generateSource(); - - ITextRegionList regions = fParentRegion.getRegions(); - StringBuffer source = new StringBuffer(); - boolean bIn = false; - for (int i = 0; i < regions.size(); i++) { - ITextRegion current = regions.get(i); - if (bIn) { - source.append(fParentRegion.getText(current)); - if (current == fLastRegion) - break; - } - else { - if (current == fFirstRegion) { - bIn = true; - source.append(fParentRegion.getText(current)); - if (current == fLastRegion) - break; - } - } - } - - return source.toString(); - } - - /** - * @return int - */ - public int getEndOffset() { - int result = -1; - ITextRegion region = getLastRegion(); - if (!(region == null || fParentRegion == null)) { - result = fParentRegion.getEndOffset(region); - } - return result; - } - - IStructuredDocumentRegion getDocumentRegion() { - return fParentRegion; - } - - ITextRegion getFirstRegion() { - return fFirstRegion; - } - - ITextRegion getLastRegion() { - return fLastRegion; - } - - ITextRegion getRegion(int index) { - if (getFirstRegion() == null) - return null; - ITextRegionList regions = fParentRegion.getRegions(); - - for (int i = 0; i < regions.size(); i++) { - if (regions.get(i) == getFirstRegion()) { - if (i + index < regions.size()) { - ITextRegion target = regions.get(i + index); - if (target.getStart() <= getLastRegion().getStart()) - return target; - } - return null; - } - } - return null; - } - - /** - * @return int - */ - int getRegionCount() { - validateRange(); - - if (getFirstRegion() == null) - return 0; - if (getFirstRegion() == getLastRegion()) - return 1; - ITextRegionList regions = fParentRegion.getRegions(); - - int j = 0; - for (int i = 0; i < regions.size(); i++) { - ITextRegion current = regions.get(i); - if (j != 0 || current == getFirstRegion()) - j++; - if (current == getLastRegion()) - break; - } - return j; - } - - /** - * @return int - */ - public int getStartOffset() { - int result = -1; - ITextRegion region = getFirstRegion(); - if (!(region == null || fParentRegion == null)) { - result = fParentRegion.getStartOffset(region); - } - return result; - } - - - - /** - * @deprecated - */ - ITextRegion setFirstRegion(ITextRegion region) { - this.fFirstRegion = region; - return region; - } - - /** - * @deprecated - */ - ITextRegion setLastRegion(ITextRegion lastRegion) { - this.fLastRegion = lastRegion; - return lastRegion; - } - - void setRangeRegion(IStructuredDocumentRegion parentRegion, ITextRegion firstRegion, ITextRegion lastRegion) { - this.fParentRegion = parentRegion; - this.fFirstRegion = firstRegion; - this.fLastRegion = lastRegion; - - if (firstRegion == null && lastRegion == null) { - setFirstRegion(null); - setLastRegion(null); - } - else { // range validation - validateRange(); - } - } - - /** - * @return boolean - */ - private boolean validateRange() { - boolean bModified = false; - - if (this.fFirstRegion != null || this.fLastRegion != null) { - if (this.fFirstRegion == null) { - this.fFirstRegion = this.fLastRegion; - bModified = true; - } - else if (this.fLastRegion == null) { - this.fLastRegion = this.fFirstRegion; - bModified = true; - } - else if (this.fFirstRegion.getStart() > this.fLastRegion.getStart()) { - // need to swap first for last - ITextRegion reg = fFirstRegion; - fFirstRegion = fLastRegion; - fLastRegion = reg; - bModified = true; - } - } - return bModified; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSRuleDeclContainer.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSRuleDeclContainer.java deleted file mode 100644 index 64381642dc..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSRuleDeclContainer.java +++ /dev/null @@ -1,56 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.document; - - - -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.w3c.dom.css.CSSStyleDeclaration; - - -/** - * - */ -abstract class CSSRuleDeclContainer extends CSSRuleImpl { - - /** - * CSSRuleDeclContainer constructor comment. - */ - CSSRuleDeclContainer() { - super(); - } - - /** - * CSSRuleDeclContainer constructor comment. - * - */ - CSSRuleDeclContainer(CSSRuleDeclContainer that) { - super(that); - } - - /** - * @return java.lang.String - */ - abstract String extractPreString(); - - /** - * @return org.w3c.dom.css.CSSStyleDeclaration - */ - public CSSStyleDeclaration getStyle() { - - for (ICSSNode node = getFirstChild(); node != null; node = node.getNextSibling()) { - if (node instanceof CSSStyleDeclaration) - return (CSSStyleDeclaration) node; - } - - return null; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSRuleImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSRuleImpl.java deleted file mode 100644 index 32e6e38290..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSRuleImpl.java +++ /dev/null @@ -1,80 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.document; - - - -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.w3c.dom.css.CSSRule; -import org.w3c.dom.css.CSSStyleSheet; - - -/** - * - */ -abstract class CSSRuleImpl extends CSSStructuredDocumentRegionContainer implements CSSRule { - - /** - * - */ - CSSRuleImpl() { - super(); - } - - CSSRuleImpl(CSSRuleImpl that) { - super(that); - } - - /** - * If this rule is contained inside another rule (e.g. a style rule inside - * an - * - * @media block), this is the containing rule. If this rule is not nested - * inside any other rules, this returns <code>null</code>. - */ - public CSSRule getParentRule() { - ICSSNode rule = getParentNode(); - - // parent rule is used only if parent is media rule - if (rule instanceof CSSMediaRuleImpl) - return (CSSRule) rule; - - return null; - } - - /** - * The style sheet that contains this rule. - */ - public CSSStyleSheet getParentStyleSheet() { - ICSSNode parent = getParentNode(); - while (parent != null) { - if (parent instanceof CSSStyleSheetImpl) - return (CSSStyleSheet) parent; - parent = parent.getParentNode(); - } - return null; - } - - /** - * The type of the rule, as defined above. The expectation is that - * binding-specific casting methods can be used to cast down from an - * instance of the <code>CSSRule</code> interface to the specific - * derived interface implied by the <code>type</code>. - */ - public abstract short getType(); - - /** - * @return boolean - */ - public boolean hasProperties() { - return true; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSRuleListImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSRuleListImpl.java deleted file mode 100644 index 51f15a490b..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSRuleListImpl.java +++ /dev/null @@ -1,45 +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.document; - - - -import org.w3c.dom.css.CSSRule; -import org.w3c.dom.css.CSSRuleList; - -/** - * - */ -public class CSSRuleListImpl extends AbstractCSSNodeList implements CSSRuleList { - - /** - * - */ - CSSRuleListImpl() { - super(); - } - - /** - * Used to retrieve a CSS rule by ordinal index. The order in this - * collection represents the order of the rules in the CSS style sheet. If - * index is greater than or equal to the number of rules in the list, this - * returns <code>null</code>. - * - * @param indexIndex - * into the collection - * @return The style rule at the <code>index</code> position in the - * <code>CSSRuleList</code>, or <code>null</code> if that is - * not a valid index. - */ - public CSSRule item(int index) { - return (CSSRule) itemImpl(index); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSSelector.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSSelector.java deleted file mode 100644 index 4f6dd49629..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSSelector.java +++ /dev/null @@ -1,422 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 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.document; - - - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import com.ibm.icu.util.StringTokenizer; - -import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleSelectorAdapter; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSSelector; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSSelectorCombinator; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSSelectorItem; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSSimpleSelector; -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; -import org.eclipse.wst.xml.core.internal.provisional.NameValidator; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - - -/** - * - */ -class CSSSelector implements ICSSSelector { - - private int fSpecificity = -1; - private String fCachedString = null; - private List fTokens = null; - private List fItems = null; - private List fParseErrors = null; - private List fNameErrors = null; - - CSSSelector(List tokens) { - fTokens = new ArrayList(tokens); - } - - /** - * @return boolean - * @param obj - * java.lang.Object - */ - public boolean equals(Object obj) { - if (this == obj) - return true; - - if (obj == null || this.getClass() != obj.getClass()) - return false; - - CSSSelector foreign = (CSSSelector) obj; - - // if (fSpecificity != foreign.fSpecificity) return false; - - if (getLength() != foreign.getLength()) - return false; - - for (int i = 0; i < getLength(); i++) { - if (!getItem(i).equals(foreign.getItem(i))) - return false; - } - - return true; - } - - public ICSSSelectorItem getItem(int index) { - if (fItems == null) { - fItems = parseSelector(fTokens); - } - if (fItems != null && 0 <= index && index < fItems.size()) { - return (ICSSSelectorItem) fItems.get(index); - } - else { - return null; - } - } - - /** - * @return java.util.Iterator - */ - public Iterator getIterator() { - if (fItems == null) { - fItems = parseSelector(fTokens); - } - return (fItems != null) ? fItems.iterator() : null; - } - - /** - * @return int - */ - public int getLength() { - if (fItems == null) { - fItems = parseSelector(fTokens); - } - return (fItems != null) ? fItems.size() : 0; - } - - /** - * @return org.w3c.dom.Element - */ - private Element getParentElement(Element element) { - try { - element = (Element) element.getParentNode(); - } - catch (Exception ex) { - // cast error or null pointer ... - element = null; - } - return element; - } - - /** - * @return org.w3c.dom.Element - */ - private Element getPreviousElement(Element element) { - Element p = null; - for (Node node = element.getPreviousSibling(); node != null; node = node.getPreviousSibling()) { - if (node.getNodeType() == Node.ELEMENT_NODE) { - p = (Element) node; - break; - } - } - return p; - } - - /** - * Calculate a selector's specificity a = the number of ID attributes in - * the selector b = the number of other attributes and pseudo-classes in - * the selector c = the number of element names in the selector (ignore - * pseudo-elements) Concatenating the three numbers a-b-c (in a number - * system with a large base) gives the specificity. - * - * @return int - */ - public int getSpecificity() { - if (fSpecificity < 0) { - int nIDs = 0; - int nAttributes = 0; - int nElements = 0; - Iterator i = getIterator(); - while (i.hasNext()) { - ICSSSelectorItem item = (ICSSSelectorItem) i.next(); - if (item instanceof CSSSimpleSelector) { - CSSSimpleSelector selector = (CSSSimpleSelector) item; - nIDs += selector.getNumOfIDs(); - nAttributes += selector.getNumOfAttributes(); - nAttributes += selector.getNumOfClasses(); - nAttributes += selector.getNumOfPseudoNames(); - if (!selector.isUniversal()) { - nElements++; - } - } - } - fSpecificity = nIDs * 10000 + nAttributes * 100 + nElements; - } - - return fSpecificity; - } - - /** - * @return java.lang.String - */ - public String getString() { - if (fCachedString == null) { - StringBuffer buf = new StringBuffer(); - Iterator i = getIterator(); - while (i.hasNext()) { - ICSSSelectorItem item = (ICSSSelectorItem) i.next(); - if (item instanceof CSSSelectorCombinator) { - // If item is DESCENDANT combinator, it is just single - // space. - // Then, you dont have to append string.. - if (((CSSSelectorCombinator) item).getCombinatorType() != ICSSSelectorCombinator.DESCENDANT) { - buf.append(" ");//$NON-NLS-1$ - buf.append(item.getString()); - } - buf.append(" ");//$NON-NLS-1$ - } - else { - buf.append(item.getString()); - } - } - fCachedString = buf.toString(); - } - - return fCachedString; - } - - /** - * @return boolean - * @param element - * org.w3c.dom.Element - */ - public boolean match(org.w3c.dom.Element element, java.lang.String pseudoName) { - Element target = element; - char combinatorType = ICSSSelectorCombinator.UNKNOWN; - Element chunkStartElement = null; // for CHILD and ADJACENT - // combinator - int chunkStartItem = -1; // for CHILD and ADJACENT combinator - int numItems = getLength(); - for (int iItem = numItems - 1; iItem >= 0; iItem--) { - // Check Selector Items - ICSSSelectorItem item = getItem(iItem); - if (item instanceof ICSSSimpleSelector) { - // Simple Selector - if (target == null) - return false; - if (!matchExactly((ICSSSimpleSelector) item, target, pseudoName)) { - switch (combinatorType) { - case ICSSSelectorCombinator.DESCENDANT : - do { - target = getParentElement(target); - if (target == null) - return false; - } - while (!matchExactly((ICSSSimpleSelector) item, target, pseudoName)); - break; - case ICSSSelectorCombinator.CHILD : - case ICSSSelectorCombinator.ADJACENT : - if (chunkStartElement != null && chunkStartElement != element) { - // previous conbinator must be DESCENDENT. - // goto parent - target = getParentElement(chunkStartElement); - iItem = chunkStartItem + 1; - chunkStartElement = null; - chunkStartItem = -1; - break; - } - default : - // other combinators are not supported yet. - return false; - } - } - } - else if (item instanceof ICSSSelectorCombinator) { - // Combinator ( "+", ">", " ", ...) - if (iItem == numItems - 1) - return false; // last item is combinator - - ICSSSelectorCombinator sc = (ICSSSelectorCombinator) item; - combinatorType = sc.getCombinatorType(); - switch (combinatorType) { - case ICSSSelectorCombinator.DESCENDANT : - target = getParentElement(target); - break; - case ICSSSelectorCombinator.CHILD : - case ICSSSelectorCombinator.ADJACENT : - if (chunkStartElement == null) { - chunkStartElement = target; - chunkStartItem = iItem + 1; // safe because this - // is not a last item. - } - if (combinatorType == ICSSSelectorCombinator.CHILD) { - target = getParentElement(target); - } - else { - target = getPreviousElement(target); - } - break; - } - } - else { - // what is this item ??? - return false; - } - } - // OK this selector maches the element. - return true; - - } - - /** - * @return boolean - */ - private boolean matchExactly(ICSSSimpleSelector selector, Element element, String pseudoName) { - IStyleSelectorAdapter adapter = (IStyleSelectorAdapter) ((INodeNotifier) element).getAdapterFor(IStyleSelectorAdapter.class); - if (adapter != null) { - return adapter.match(selector, element, pseudoName); - } - - if (element == null) - return false; - int i; - String key; - - // TODO: PseudoName - - // check tag name - if (!selector.isUniversal() && !element.getNodeName().equals(selector.getName())) - return false; - - // check id - i = selector.getNumOfIDs(); - if (i > 0) { - if (i > 1) - return false; - key = element.getAttribute("id");//$NON-NLS-1$ - if (key == null) - return false; - if (!selector.getID(0).equals(key)) - return false; - } - - // check class - i = selector.getNumOfClasses(); - if (i > 0) { - key = element.getAttribute("class");//$NON-NLS-1$ - if (key == null) - return false; - StringTokenizer tokenizer = new StringTokenizer(key); - for (i = i - 1; i >= 0; i--) { - boolean ok = false; - while (tokenizer.hasMoreTokens()) { - if (selector.getClass(i).equals(tokenizer.nextToken())) { - ok = true; - break; - } - } - if (!ok) - return false; - } - } - - // check attributes - for (i = selector.getNumOfAttributes() - 1; i >= 0; i--) { - StringTokenizer tokenizer = new StringTokenizer(selector.getAttribute(i), "=~| \t\r\n\f");//$NON-NLS-1$ - int countTokens = tokenizer.countTokens(); - if (countTokens > 0) { - String attrValue = element.getAttribute(tokenizer.nextToken()); - if (attrValue == null) - return false; - if (countTokens > 1) { - String token = tokenizer.nextToken("= \t\r\n\f");//$NON-NLS-1$ - StringTokenizer attrValueTokenizer = null; - if (token.equals("~")) {//$NON-NLS-1$ - attrValueTokenizer = new StringTokenizer(attrValue); - } - else if (token.equals("|")) {//$NON-NLS-1$ - attrValueTokenizer = new StringTokenizer(attrValue, "-");//$NON-NLS-1$ - } - if (attrValueTokenizer != null) { - if (tokenizer.hasMoreTokens()) { - token = tokenizer.nextToken(); - boolean ok = false; - while (attrValueTokenizer.hasMoreTokens()) { - if (token.equals(attrValueTokenizer.nextToken())) { - ok = true; - break; - } - } - if (!ok) - return false; - } - } - else { - if (!attrValue.equals(token)) - return false; - } - } - } - } - - return true; - } - - private List parseSelector(List tokens) { - CSSSelectorParser parser = new CSSSelectorParser(tokens); - List selector = parser.getSelector(); - Iterator i = parser.getErrors(); - fParseErrors = new ArrayList(); - while (i.hasNext()) { - fParseErrors.add(i.next()); - } - return selector; - } - - public Iterator getErrors() { - if (fNameErrors == null) { - fNameErrors = new ArrayList(); - Iterator iItem = getIterator(); - while (iItem.hasNext()) { - ICSSSelectorItem item = (ICSSSelectorItem) iItem.next(); - if (item instanceof ICSSSimpleSelector) { - if (!((ICSSSimpleSelector) item).isUniversal()) { - String name = ((ICSSSimpleSelector) item).getName(); - if (!NameValidator.isValid(name)) { - fNameErrors.add(item); - } - } - } - } - } - List errors = new ArrayList(fParseErrors); - errors.addAll(fNameErrors); - return errors.iterator(); - } - - public String toString() { - return getString(); - } - - /** - * @see ICSSSelector#getErrorCount() - */ - public int getErrorCount() { - int nErrors = 0; - Iterator i = getErrors(); - while (i.hasNext()) { - nErrors++; - i.next(); - } - return nErrors; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSSelectorCombinator.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSSelectorCombinator.java deleted file mode 100644 index d015aa515a..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSSelectorCombinator.java +++ /dev/null @@ -1,76 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.document; - - - -import org.eclipse.wst.css.core.internal.provisional.document.ICSSSelectorCombinator; - -/** - * - */ -class CSSSelectorCombinator extends CSSSelectorItem implements ICSSSelectorCombinator { - - char fType = ICSSSelectorCombinator.UNKNOWN; - - /** - * CSSSelectorCombinator constructor comment. - */ - public CSSSelectorCombinator(char type) { - super(); - setCombinatorType(type); - } - - /** - * @return boolean - * @param obj - * java.lang.Object - */ - public boolean equals(Object obj) { - if (this == obj) - return true; - - if (obj == null || this.getClass() != obj.getClass()) - return false; - - CSSSelectorCombinator foreign = (CSSSelectorCombinator) obj; - - return (getCombinatorType() == foreign.getCombinatorType()); - - } - - /** - * @return int - */ - public char getCombinatorType() { - return fType; - } - - /** - * @return int - */ - public int getItemType() { - return COMBINATOR; - } - - /** - * @return java.lang.String - */ - public String getString() { - StringBuffer buf = new StringBuffer(); - buf.append(fType); - return buf.toString(); - } - - void setCombinatorType(char type) { - fType = type; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSSelectorItem.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSSelectorItem.java deleted file mode 100644 index 3436661aa0..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSSelectorItem.java +++ /dev/null @@ -1,42 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.document; - - - -import org.eclipse.wst.css.core.internal.provisional.document.ICSSSelectorItem; - -/** - * - */ -abstract class CSSSelectorItem implements ICSSSelectorItem { - - /** - * CSSSelectorItem constructor comment. - */ - public CSSSelectorItem() { - super(); - } - - /** - * @return int - */ - public int getItemType() { - return 0; - } - - /** - * @return java.lang.String - */ - public String getString() { - return null; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSSelectorListImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSSelectorListImpl.java deleted file mode 100644 index ed231f9f5a..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSSelectorListImpl.java +++ /dev/null @@ -1,207 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 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.document; - - - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts; -import org.eclipse.wst.css.core.internal.parserz.CSSTextParser; -import org.eclipse.wst.css.core.internal.parserz.CSSTextToken; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSSelector; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSSelectorList; -import org.w3c.dom.Element; - - -/** - * - */ -public class CSSSelectorListImpl implements ICSSSelectorList { - - private String fText = null; - private String fCachedString = null; // normalized string - private List fSelectors = null; - - public CSSSelectorListImpl(String cssText) { - super(); - fText = cssText; - parseSelectorText(); - } - - /** - * @return boolean - * @param obj - * java.lang.Object - */ - public boolean equals(Object obj) { - if (this == obj) - return true; - - if (obj == null || this.getClass() != obj.getClass()) - return false; - - CSSSelectorListImpl foreign = (CSSSelectorListImpl) obj; - - if (getLength() != foreign.getLength()) - return false; - - for (int i = 0; i < getLength(); i++) { - if (!getSelector(i).equals(foreign.getSelector(i))) - return false; - } - - return true; - } - - /** - * @return java.util.Iterator - */ - public Iterator getIterator() { - return getSelectors().iterator(); - } - - /** - * @return int - */ - public int getLength() { - return getSelectors().size(); - } - - public ICSSSelector getSelector(int index) { - List selectors = getSelectors(); - if (0 <= index && index < selectors.size()) { - return (ICSSSelector) selectors.get(index); - } - else { - return null; - } - } - - private List getSelectors() { - if (fSelectors == null) { - parseSelectorText(); - } - return fSelectors; - } - - /** - * @return java.lang.String - */ - public String getString() { - if (fCachedString == null) { - StringBuffer buf = new StringBuffer(); - boolean bFirst = true; - // groups is list of comma-separated selectors - Iterator i = getSelectors().iterator(); - while (i.hasNext()) { - if (!bFirst) { - buf.append(", ");//$NON-NLS-1$ - } - ICSSSelector item = (ICSSSelector) i.next(); - buf.append(item.getString()); - bFirst = false; - } - fCachedString = buf.toString(); - } - return fCachedString; - } - - /** - * @return boolean - * @param element - * org.w3c.dom.Element - */ - public boolean match(Element element, String pseudoName) { - int nSelectors = getLength(); - for (int iSelector = 0; iSelector < nSelectors; iSelector++) { - // Check each Selector Lists - ICSSSelector selector = getSelector(iSelector); - if (selector.match(element, pseudoName)) - return true; - } - return false; - } - - /** - * - */ - private void parseSelectorText() { - fSelectors = new ArrayList(); - if (fText == null) { - return; - } - - CSSTextParser parser = new CSSTextParser(CSSTextParser.MODE_STYLESHEET, fText); - CSSTextToken[] tokens = parser.getTokens(); - if (tokens.length <= 0) { - return; - } - - List tokenGroup = new ArrayList(); - for (int i = 0; i < tokens.length; i++) { - CSSTextToken token = tokens[i]; - if (token.kind == CSSRegionContexts.CSS_SELECTOR_SEPARATOR && 0 < tokenGroup.size()) { - ICSSSelector selector = new CSSSelector(tokenGroup); - if (selector != null) { - fSelectors.add(selector); - } - tokenGroup.clear(); - } - else { - tokenGroup.add(tokens[i]); - } - } - if (0 < tokenGroup.size()) { - ICSSSelector selector = new CSSSelector(tokenGroup); - if (selector != null) { - fSelectors.add(selector); - } - } - } - - /** - * - */ - public String toString() { - return getString(); - } - - /** - * - */ - public Iterator getErrors() { - List errors = new ArrayList(); - Iterator iSelector = getSelectors().iterator(); - while (iSelector.hasNext()) { - Iterator iError = ((ICSSSelector) iSelector.next()).getErrors(); - while (iError.hasNext()) { - errors.add(iError.next()); - } - } - return errors.iterator(); - } - - /** - * - */ - public int getErrorCount() { - int nErrors = 0; - Iterator i = getErrors(); - while (i.hasNext()) { - nErrors++; - i.next(); - } - return nErrors; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSSelectorParser.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSSelectorParser.java deleted file mode 100644 index b605610a89..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSSelectorParser.java +++ /dev/null @@ -1,335 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.document; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.Iterator; -import java.util.List; - -import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts; -import org.eclipse.wst.css.core.internal.parserz.CSSTextToken; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSSelectorCombinator; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSSelectorItem; - - -/** - * - */ -public class CSSSelectorParser { - - private final static int IDLE = 0; - private final static int ATTRIBUTE = 1; - private final static int SIMPLE = 2; - - private List fTokens = null; - private List fItems = null; - private List fErrors = null; - - /** - * - */ - CSSSelectorParser(List tokens) { - super(); - fTokens = new ArrayList(tokens); - } - - /** - * - */ - List getSelector() { - if (fItems == null) { - parseSelector(); - } - return fItems; - } - - /** - * - */ - private void parseSelector() { - fItems = new ArrayList(); - - List attrBuf = null; - CSSSimpleSelector item = null; - - int status = IDLE; - Iterator i = fTokens.iterator(); - while (i.hasNext()) { - CSSTextToken token = (CSSTextToken) i.next(); - if (token == null || token.kind == CSSRegionContexts.CSS_S || token.kind == CSSRegionContexts.CSS_COMMENT) { - continue; - } - switch (status) { - case IDLE : - if (isTag(token)) { - item = createSimple(); - appendTag(item, token); - status = SIMPLE; - } - else if (isID(token)) { - item = createSimple(); - appendID(item, token); - status = SIMPLE; - } - else if (isClass(token)) { - item = createSimple(); - appendClass(item, token); - status = SIMPLE; - } - else if (isPseudo(token)) { - item = createSimple(); - appendPseudo(item, token); - status = SIMPLE; - } - else if (isAttributeBegin(token)) { - item = createSimple(); - status = ATTRIBUTE; - } - else { - addError(token); - } - break; - case SIMPLE : - if (isID(token)) { - appendID(item, token); - } - else if (isClass(token)) { - appendClass(item, token); - } - else if (isPseudo(token)) { - appendPseudo(item, token); - } - else if (isAttributeBegin(token)) { - status = ATTRIBUTE; - } - else if (isCombinator(token)) { // combinator - closeItem(item); - closeItem(createCombinator(token)); - status = IDLE; - } - else { - addError(token); - } - break; - case ATTRIBUTE : - if (isAttributeEnd(token)) { - appendAttribute(item, attrBuf); - attrBuf = null; - status = SIMPLE; - } - else { - if (attrBuf == null) { - attrBuf = new ArrayList(); - } - attrBuf.add(token); - if (!isAttributeContent(token)) { - addError(token); - } - } - break; - default : - break; - } - } - - closeItem(item); - } - - /** - * @param token - * @return - */ - private boolean isAttributeContent(CSSTextToken token) { - String type = token.kind; - return (type == CSSRegionContexts.CSS_SELECTOR_ATTRIBUTE_NAME || type == CSSRegionContexts.CSS_SELECTOR_ATTRIBUTE_OPERATOR || type == CSSRegionContexts.CSS_SELECTOR_ATTRIBUTE_VALUE); - } - - /** - * @param token - * @return - */ - private boolean isAttributeEnd(CSSTextToken token) { - String type = token.kind; - return (type == CSSRegionContexts.CSS_SELECTOR_ATTRIBUTE_END); - } - - /** - * @param token - * @return - */ - private boolean isAttributeBegin(CSSTextToken token) { - String type = token.kind; - return (type == CSSRegionContexts.CSS_SELECTOR_ATTRIBUTE_START); - } - - /** - * @param token - * @return - */ - private boolean isCombinator(CSSTextToken token) { - String type = token.kind; - return (type == CSSRegionContexts.CSS_SELECTOR_COMBINATOR); - } - - /** - * @param token - * @return - */ - private boolean isPseudo(CSSTextToken token) { - String type = token.kind; - return (type == CSSRegionContexts.CSS_SELECTOR_PSEUDO); - } - - /** - * @param token - * @return - */ - private boolean isClass(CSSTextToken token) { - String type = token.kind; - return (type == CSSRegionContexts.CSS_SELECTOR_CLASS); - } - - /** - * @param token - * @return - */ - private boolean isID(CSSTextToken token) { - String type = token.kind; - return (type == CSSRegionContexts.CSS_SELECTOR_ID); - } - - /** - * @param token - * @return - */ - private boolean isTag(CSSTextToken token) { - String type = token.kind; - return (type == CSSRegionContexts.CSS_SELECTOR_ELEMENT_NAME || type == CSSRegionContexts.CSS_SELECTOR_UNIVERSAL || type == CSSRegionContexts.CSS_UNKNOWN); - } - - private CSSSimpleSelector createSimple() { - return new CSSSimpleSelector(); - } - - /** - * if " " or "+" or ">" appeared, close simpleselector and add new - * combinator - */ - private CSSSelectorCombinator createCombinator(CSSTextToken token) { - char type = 0; - - String str = token.image; - if (str.trim().length() == 0) { // space - type = ICSSSelectorCombinator.DESCENDANT; - } - else if (str.equals("+")) { //$NON-NLS-1$ - type = ICSSSelectorCombinator.ADJACENT; - } - else if (str.equals(">")) { //$NON-NLS-1$ - type = ICSSSelectorCombinator.CHILD; - } - - if (0 < type) { - return new CSSSelectorCombinator(type); - } - else { - return null; - } - } - - /** - * - */ - private void closeItem(ICSSSelectorItem item) { - if (item != null) { - fItems.add(item); - } - } - - private void appendTag(CSSSimpleSelector item, CSSTextToken token) { - item.setName(token.image); - if (token.kind == CSSRegionContexts.CSS_UNKNOWN) { - addError(token); - } - } - - /** - * if "#xxxx" appeared, add ID to current selector - */ - private void appendID(CSSSimpleSelector item, CSSTextToken token) { - String text = token.toString(); - String idContent = text.substring(1, text.length()); - item.addID(idContent); - } - - /** - * if ".xxxx" appeared, add Class to current selector - */ - private void appendClass(CSSSimpleSelector item, CSSTextToken token) { - String text = token.toString(); - String classContent = text.substring(1, text.length()); - item.addClass(classContent); - if (Character.isDigit(classContent.charAt(0))) { - addError(token); - } - } - - /** - * if ":xxxx" appeared, add Pseudo(element/class) to current selector - */ - private void appendPseudo(CSSSimpleSelector item, CSSTextToken token) { - String text = token.toString(); - String pseudoContent = text.substring(1, text.length()); - item.addPseudoName(pseudoContent); - } - - /** - * - */ - private void appendAttribute(CSSSimpleSelector item, List tokens) { - StringBuffer buf = new StringBuffer(); - - CSSTextToken token; - Iterator i = tokens.iterator(); - while (i.hasNext()) { - token = (CSSTextToken) i.next(); - buf.append(token.image); - } - - item.addAttribute(buf.toString()); - } - - /** - * - */ - List getSelectorTags() { - List tagList = new ArrayList(); - return tagList; - } - - /** - * - */ - private void addError(CSSTextToken token) { - if (fErrors == null) { - fErrors = new ArrayList(); - } - fErrors.add(token); - } - - /** - * - */ - Iterator getErrors() { - return (fErrors == null) ? Collections.EMPTY_LIST.iterator() : fErrors.iterator(); - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSSimpleSelector.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSSimpleSelector.java deleted file mode 100644 index 5928e90dfe..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSSimpleSelector.java +++ /dev/null @@ -1,281 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.document; - -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.wst.css.core.internal.provisional.document.ICSSSimpleSelector; - - -/** - * - */ -class CSSSimpleSelector extends CSSSelectorItem implements ICSSSimpleSelector { - - private String fName = null; - private String fCachedString = null; - private StringBuffer fStringBuf = null; - private List fPseudoName = null; - private List fAttribute = null; - private List fClass = null; - private List fID = null; - - /** - * CSSSimpleSelector constructor comment. - */ - public CSSSimpleSelector() { - super(); - } - - /** - * - */ - void addAttribute(String attribute) { - if (fAttribute == null) { - fAttribute = new ArrayList(); - } - fAttribute.add(attribute); - addToBuf("[");//$NON-NLS-1$ - addToBuf(attribute); - addToBuf("]");//$NON-NLS-1$ - fCachedString = null; - } - - /** - * - */ - void addClass(String cls) { - if (fClass == null) { - fClass = new ArrayList(); - } - fClass.add(cls); - addToBuf(".");//$NON-NLS-1$ - addToBuf(cls); - fCachedString = null; - } - - /** - * - */ - void addID(String id) { - if (fID == null) { - fID = new ArrayList(); - } - fID.add(id); - addToBuf("#");//$NON-NLS-1$ - addToBuf(id); - fCachedString = null; - } - - /** - * - */ - void addPseudoName(String cls) { - if (fPseudoName == null) { - fPseudoName = new ArrayList(); - } - fPseudoName.add(cls); - addToBuf(":");//$NON-NLS-1$ - addToBuf(cls); - fCachedString = null; - } - - /** - * - */ - private void addToBuf(String str) { - if (fStringBuf == null) { - fStringBuf = new StringBuffer(); - } - fStringBuf.append(str); - } - - /** - * @return boolean - * @param obj - * java.lang.Object - */ - public boolean equals(Object obj) { - if (this == obj) - return true; - - if (obj == null || this.getClass() != obj.getClass()) - return false; - - CSSSimpleSelector foreign = (CSSSimpleSelector) obj; - - if (getName().compareToIgnoreCase(foreign.getName()) != 0) - return false; - - int i; - - // compare pseudo-classes / pseudo-elements - if (getNumOfPseudoNames() != foreign.getNumOfPseudoNames()) - return false; - for (i = 0; i < getNumOfPseudoNames(); i++) { - if (getPseudoName(i).compareToIgnoreCase(foreign.getPseudoName(i)) != 0) - return false; - } - - // compare classes - if (getNumOfClasses() != foreign.getNumOfClasses()) - return false; - for (i = 0; i < getNumOfClasses(); i++) { - if (getClass(i).compareToIgnoreCase(foreign.getClass(i)) != 0) - return false; - } - - // compare IDs - if (getNumOfIDs() != foreign.getNumOfIDs()) - return false; - for (i = 0; i < getNumOfIDs(); i++) { - if (getID(i).compareToIgnoreCase(foreign.getID(i)) != 0) - return false; - } - - // compare Attributes - if (getNumOfAttributes() != foreign.getNumOfAttributes()) - return false; - for (i = 0; i < getNumOfAttributes(); i++) { - if (getAttribute(i).compareToIgnoreCase(foreign.getAttribute(i)) != 0) - return false; - } - return true; - } - - /** - * @return java.lang.String - * @param index - * int - */ - public String getAttribute(int index) { - if (fAttribute != null && 0 <= index && index < fAttribute.size()) { - return (String) fAttribute.get(index); - } - else { - return "";//$NON-NLS-1$ - } - } - - /** - * @return java.lang.String - * @param index - * int - */ - public String getClass(int index) { - if (fClass != null && 0 <= index && index < fClass.size()) { - return (String) fClass.get(index); - } - else { - return "";//$NON-NLS-1$ - } - } - - /** - * @return java.lang.String - * @param index - * int - */ - public String getID(int index) { - if (fID != null && 0 <= index && index < fID.size()) { - return (String) fID.get(index); - } - else { - return "";//$NON-NLS-1$ - } - } - - /** - * @return int - */ - public int getItemType() { - return SIMPLE; - } - - /** - * @return java.lang.String - */ - public String getName() { - return (fName != null) ? fName : "";//$NON-NLS-1$ - } - - /** - * @return boolean - */ - public int getNumOfAttributes() { - return (fAttribute != null) ? fAttribute.size() : 0; - } - - /** - * @return boolean - */ - public int getNumOfClasses() { - return (fClass != null) ? fClass.size() : 0; - } - - /** - * @return boolean - */ - public int getNumOfIDs() { - return (fID != null) ? fID.size() : 0; - } - - /** - * @return boolean - */ - public int getNumOfPseudoNames() { - return (fPseudoName != null) ? fPseudoName.size() : 0; - } - - /** - * @return java.lang.String - * @param index - * int - */ - public String getPseudoName(int index) { - if (fPseudoName != null && 0 <= index && index < fPseudoName.size()) { - return (String) fPseudoName.get(index); - } - else { - return "";//$NON-NLS-1$ - } - } - - /** - * @return java.lang.String - */ - public String getString() { - if (fCachedString == null) { - StringBuffer buf = new StringBuffer(getName()); - if (fStringBuf != null) { - buf.append(fStringBuf.toString()); - } - fCachedString = buf.toString(); - } - return fCachedString; - } - - /** - * @return boolean - */ - public boolean isUniversal() { - return (fName == null || fName.equals("*"));//$NON-NLS-1$ - } - - /** - * - */ - void setName(String name) { - fName = name; - fCachedString = null; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSStructuredDocumentRegionContainer.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSStructuredDocumentRegionContainer.java deleted file mode 100644 index 07bf389b2b..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSStructuredDocumentRegionContainer.java +++ /dev/null @@ -1,229 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 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.document; - - - -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; - -/** - * currently public but may be made default access protected in future. - */ -public abstract class CSSStructuredDocumentRegionContainer extends CSSNodeImpl { - - private IStructuredDocumentRegion firstStructuredDocumentRegion = null; - private IStructuredDocumentRegion lastStructuredDocumentRegion = null; - - /** - * CSSContainer constructor comment. - * currently public but may be made default access protected in future. - */ - public CSSStructuredDocumentRegionContainer() { - super(); - } - /** - * currently public but may be made default access protected in future. - */ - public CSSStructuredDocumentRegionContainer(CSSStructuredDocumentRegionContainer that) { - super(that); - } - - /** - * @return java.lang.String - */ - public String getCssText() { - if (getFirstStructuredDocumentRegion() == null) - return generateSource(); - - StringBuffer str = new StringBuffer(getFirstStructuredDocumentRegion().getText()); - IStructuredDocumentRegion node = getFirstStructuredDocumentRegion(); - - while (node != getLastStructuredDocumentRegion()) { - node = node.getNext(); - str.append(node.getText()); - } - - return str.toString(); - } - - /** - * @return int - */ - public int getEndOffset() { - IStructuredDocumentRegion flatNode = getLastStructuredDocumentRegion(); - if (flatNode != null) - return flatNode.getEnd(); - return -1; - } - - IStructuredDocumentRegion getFirstStructuredDocumentRegion() { - return firstStructuredDocumentRegion; - } - - IStructuredDocumentRegion getStructuredDocumentRegion(int index) { - IStructuredDocumentRegion node = firstStructuredDocumentRegion; - for (int i = index; i > 0; i--) { - if (node == null) - return null; - node = node.getNext(); - } - return node; - } - - /** - * @return int - */ - int getStructuredDocumentRegionCount() { - if (firstStructuredDocumentRegion == null) - return 0; - - IStructuredDocumentRegion node = firstStructuredDocumentRegion; - int i = 0; - for (; node != null; i++) - node = node.getNext(); - return i; - } - - IStructuredDocumentRegion getLastStructuredDocumentRegion() { - return lastStructuredDocumentRegion; - } - - /** - * @return int - */ - public int getStartOffset() { - IStructuredDocumentRegion flatNode = getFirstStructuredDocumentRegion(); - if (flatNode != null) - return flatNode.getStart(); - return -1; - } - - boolean includeRangeStructuredDocumentRegion(IStructuredDocumentRegion first, IStructuredDocumentRegion last) { - boolean bModified = false; - - // validate range of parameters - if (first != null && last != null) { - if (first.getStart() > last.getStart()) { - IStructuredDocumentRegion node = first; - first = last; - last = node; - } - } - - // validate mine - boolean b = validateRange(); - bModified = b || bModified; - - if (first != null) { - if (getFirstStructuredDocumentRegion() == null || getFirstStructuredDocumentRegion().getStart() > first.getStart()) { - setFirstStructuredDocumentRegion(first); - bModified = true; - } - } - - if (last != null) { - if (getLastStructuredDocumentRegion() == null || getLastStructuredDocumentRegion().getStart() < last.getStart()) { - setLastStructuredDocumentRegion(last); - bModified = true; - } - } - - // re-validate - if (bModified) - validateRange(); - - return bModified; - } - - /** - * - */ - public boolean propagateRangeStructuredDocumentRegion() { - boolean bModified = false; - - CSSStructuredDocumentRegionContainer parent = (CSSStructuredDocumentRegionContainer) getParentNode(); - if (parent == null) - return bModified; - - boolean b = parent.includeRangeStructuredDocumentRegion(getFirstStructuredDocumentRegion(), getLastStructuredDocumentRegion()); - bModified = b || bModified; - - if (b) - parent.propagateRangeStructuredDocumentRegion(); - // else need not update range of ancestors - - return bModified; - } - - /** - * @param cssText - * java.lang.String - */ - public void setCssText(String cssText) { - if (firstStructuredDocumentRegion != null) { - getOwnerDocument().getModel().getStructuredDocument().replaceText(this, getStartOffset(), getEndOffset() - getStartOffset(), cssText); - } - else - super.setCssText(cssText); - } - - IStructuredDocumentRegion setFirstStructuredDocumentRegion(IStructuredDocumentRegion node) { - firstStructuredDocumentRegion = node; - return node; - } - - IStructuredDocumentRegion setLastStructuredDocumentRegion(IStructuredDocumentRegion node) { - lastStructuredDocumentRegion = node; - return node; - } - - public void setRangeStructuredDocumentRegion(IStructuredDocumentRegion firstNode, IStructuredDocumentRegion lastNode) { - if (firstNode != null) - setFirstStructuredDocumentRegion(firstNode); - if (lastNode != null) - setLastStructuredDocumentRegion(lastNode); - - if (firstNode == null && lastNode == null) { - setFirstStructuredDocumentRegion(null); - setLastStructuredDocumentRegion(null); - } - else { // range validation - validateRange(); - } - } - - /** - * @return boolean - */ - private boolean validateRange() { - boolean bModified = false; - - if (firstStructuredDocumentRegion != null || lastStructuredDocumentRegion != null) { - if (this.firstStructuredDocumentRegion == null) { - this.firstStructuredDocumentRegion = this.lastStructuredDocumentRegion; - bModified = true; - } - else if (this.lastStructuredDocumentRegion == null) { - this.lastStructuredDocumentRegion = this.firstStructuredDocumentRegion; - bModified = true; - } - else if (this.firstStructuredDocumentRegion.getStart() > this.lastStructuredDocumentRegion.getStart()) { - // need to swap first for last - IStructuredDocumentRegion node = firstStructuredDocumentRegion; - firstStructuredDocumentRegion = lastStructuredDocumentRegion; - lastStructuredDocumentRegion = node; - bModified = true; - } - } - - return bModified; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSStyleDeclItemImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSStyleDeclItemImpl.java deleted file mode 100644 index 94a5cc60b3..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSStyleDeclItemImpl.java +++ /dev/null @@ -1,272 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 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.document; - - - -import org.eclipse.wst.css.core.internal.contentmodel.PropCMProperty; -import org.eclipse.wst.css.core.internal.encoding.CSSDocumentLoader; -import org.eclipse.wst.css.core.internal.formatter.CSSSourceFormatterFactory; -import org.eclipse.wst.css.core.internal.formatter.CSSSourceGenerator; -import org.eclipse.wst.css.core.internal.formatter.StyleDeclItemFormatter; -import org.eclipse.wst.css.core.internal.parser.CSSSourceParser; -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.sse.core.internal.document.IDocumentLoader; -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; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList; -import org.eclipse.wst.sse.core.internal.text.TextRegionListImpl; -import org.w3c.dom.DOMException; -import org.w3c.dom.css.CSSValue; - - -/** - * - */ -class CSSStyleDeclItemImpl extends CSSStructuredDocumentRegionContainer implements ICSSStyleDeclItem { - - private java.lang.String fPropertyName; - - /** - * CSSStyleDeclItemImpl constructor comment. - * - */ - CSSStyleDeclItemImpl(CSSStyleDeclItemImpl that) { - super(that); - this.fPropertyName = that.fPropertyName; - } - - /** - * CSSStyleDeclItemImpl constructor comment. - */ - CSSStyleDeclItemImpl(String propertyName) { - super(); - this.fPropertyName = propertyName; - } - - /** - * @return org.w3c.dom.css.CSSPrimitiveValue - * @param value - * org.w3c.dom.css.CSSPrimitiveValue - */ - public ICSSPrimitiveValue appendValue(ICSSPrimitiveValue value) throws DOMException { - return insertValueBefore(value, null); - } - - /** - * @param deep - * boolean - */ - public ICSSNode cloneNode(boolean deep) { - CSSStyleDeclItemImpl cloned = new CSSStyleDeclItemImpl(this); - - if (deep) - cloneChildNodes(cloned, deep); - - return cloned; - } - - /** - * @return java.lang.String - */ - String generateValueSource() { - CSSSourceGenerator formatter = CSSSourceFormatterFactory.getInstance().getSourceFormatter(this); - if (formatter != null && formatter instanceof StyleDeclItemFormatter) - return ((StyleDeclItemFormatter) formatter).formatValue(this).toString(); - else - return "";//$NON-NLS-1$ - } - - /** - * @return org.w3c.dom.css.CSSValue - */ - public CSSValue getCSSValue() { - int nValue = getLength(); - if (nValue <= 0) - return null; - else if (nValue == 1) - return item(0); - else - return this; - } - - /** - * @return java.lang.String - */ - public java.lang.String getCSSValueText() { - if (getFirstChild() == null) - return "";//$NON-NLS-1$ - // check whether children has flatnodes - ICSSNode child = getFirstChild(); - while (child != null) { - if (((IndexedRegion) child).getEndOffset() <= 0) - return generateValueSource(); - child = child.getNextSibling(); - } - - IStructuredDocumentRegion node = getFirstStructuredDocumentRegion(); - int start = ((IndexedRegion) getFirstChild()).getStartOffset() - node.getStartOffset(); - int end = ((IndexedRegion) getLastChild()).getEndOffset() - node.getStartOffset(); - return node.getText().substring(start, end); - } - - /** - * @return short - */ - public short getCssValueType() { - return CSS_VALUE_LIST; - } - - /** - * @return int - */ - public int getLength() { - int i = 0; - for (ICSSNode node = getFirstChild(); node != null; node = node.getNextSibling()) { - if (node instanceof CSSPrimitiveValueImpl) - i++; - } - return i; - } - - /** - * @return short - */ - public short getNodeType() { - return STYLEDECLITEM_NODE; - } - - /** - * @return java.lang.String - */ - public java.lang.String getPriority() { - return getAttribute(IMPORTANT); - } - - /** - * @return java.lang.String - */ - public String getPropertyName() { - String name = fPropertyName.trim(); - return PropCMProperty.getInstanceOf(name) != null ? fPropertyName.trim().toLowerCase() : name; - } - - /** - * @return org.w3c.dom.css.CSSPrimitiveValue - * @param newValue - * org.w3c.dom.css.CSSPrimitiveValue - * @param refValue - * org.w3c.dom.css.CSSPrimitiveValue - */ - ICSSPrimitiveValue insertValueBefore(ICSSPrimitiveValue newValue, ICSSPrimitiveValue refValue) { - ICSSNode node = insertBefore((CSSNodeImpl) newValue, (CSSNodeImpl) refValue); - return (ICSSPrimitiveValue) node; - } - - /** - * @return org.w3c.dom.css.CSSValue - * @param index - * int - */ - public CSSValue item(int index) { - int i = 0; - for (ICSSNode node = getFirstChild(); node != null; node = node.getNextSibling()) { - if (node instanceof CSSPrimitiveValueImpl) { - if (i++ == index) - return (CSSValue) node; - } - } - return null; - } - - /** - * @return org.w3c.dom.css.CSSPrimitiveValue - * @param value - * org.w3c.dom.css.CSSPrimitiveValue - */ - public ICSSPrimitiveValue removeValue(ICSSPrimitiveValue value) throws DOMException { - ICSSNode node = removeChild((CSSNodeImpl) value); - return (ICSSPrimitiveValue) node; - } - - /** - * @return org.w3c.dom.css.CSSPrimitiveValue - * @param newValue - * org.w3c.dom.css.CSSPrimitiveValue - * @param oldValue - * org.w3c.dom.css.CSSPrimitiveValue - */ - public ICSSPrimitiveValue replaceValue(ICSSPrimitiveValue newValue, ICSSPrimitiveValue oldValue) throws DOMException { - if (oldValue == null) - return newValue; - if (newValue != null) - insertValueBefore(newValue, oldValue); - return removeValue(oldValue); - } - - /** - * @param value - * java.lang.String - * @exception org.w3c.dom.DOMException - * The exception description. - */ - public void setCssValueText(String value) throws DOMException { - ICSSNode child = getFirstChild(); - while (child != null) { - ICSSNode next = child.getNextSibling(); - if (child instanceof ICSSPrimitiveValue) { - removeChild((CSSNodeImpl) child); - } - child = next; - } - setCssValueTextCore(value); - } - - private void setCssValueTextCore(String value) throws DOMException { - // use temporary document - synchronized (CSSStyleDeclarationImpl.class) { - if (sharedStructuredDocument == null) { - IDocumentLoader loader = new CSSDocumentLoader(); - sharedStructuredDocument = (IStructuredDocument) loader.createNewStructuredDocument(); - ((CSSSourceParser) sharedStructuredDocument.getParser()).setParserMode(CSSSourceParser.MODE_DECLARATION_VALUE); - - } - sharedStructuredDocument.set(value); - IStructuredDocumentRegion node = sharedStructuredDocument.getFirstStructuredDocumentRegion(); - - if (node == null) { - return; - } - if (node.getNext() != null) { - throw new DOMException(DOMException.INVALID_MODIFICATION_ERR, "");//$NON-NLS-1$ - } - - CSSDeclarationItemParser itemParser = new CSSDeclarationItemParser(getOwnerDocument()); - itemParser.setStructuredDocumentTemporary(true); - // make a copy of nodelist because setupValues will destroy list - ITextRegionList nodeList = new TextRegionListImpl(node.getRegions()); - itemParser.setupValues(this, node, nodeList); - } - } - - private static IStructuredDocument sharedStructuredDocument; - - /** - * @param newPriority - * java.lang.String - */ - public void setPriority(java.lang.String newPriority) throws DOMException { - setAttribute(IMPORTANT, newPriority); - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSStyleDeclarationFactoryContext.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSStyleDeclarationFactoryContext.java deleted file mode 100644 index 1d56480f10..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSStyleDeclarationFactoryContext.java +++ /dev/null @@ -1,69 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.document; - - - -import org.eclipse.wst.css.core.internal.provisional.document.ICSSDocument; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleDeclaration; - -public abstract class CSSStyleDeclarationFactoryContext { - - protected ICSSDocument fOwnerDocument = null; - - /** - * - */ - protected void cloneChildNodes(ICSSNode src, ICSSNode dest) { - if (fOwnerDocument == null) { - return; - } - if (!(dest instanceof CSSNodeImpl)) { - return; - } - - CSSNodeImpl container = (CSSNodeImpl) dest; - container.removeChildNodes(); - - for (ICSSNode child = src.getFirstChild(); child != null; child = child.getNextSibling()) { - if (child instanceof CSSStyleDeclItemImpl) { - // extract shorthand property .. - // --> Temp - ICSSNode cloned = child.cloneNode(false); - if (cloned instanceof CSSNodeImpl) { - ((CSSNodeImpl) cloned).setOwnerDocument(fOwnerDocument); - container.appendChild((CSSNodeImpl) cloned); - cloneChildNodes(child, cloned); - } - // <-- Temp - } - else { - ICSSNode cloned = child.cloneNode(false); - if (cloned instanceof CSSNodeImpl) { - ((CSSNodeImpl) cloned).setOwnerDocument(fOwnerDocument); - container.appendChild((CSSNodeImpl) cloned); - cloneChildNodes(child, cloned); - } - } - } - } - - /** - * @return org.eclipse.wst.css.core.model.interfaces.ICSSStyleDeclaration - */ - public ICSSStyleDeclaration createStyleDeclaration() { - CSSStyleDeclarationImpl decl = new CSSStyleDeclarationImpl(true); - decl.setOwnerDocument(decl); - return decl; - } - -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSStyleDeclarationImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSStyleDeclarationImpl.java deleted file mode 100644 index 90aed46160..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSStyleDeclarationImpl.java +++ /dev/null @@ -1,272 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.document; - - - -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.ICSSValue; -import org.w3c.dom.DOMException; -import org.w3c.dom.css.CSSRule; -import org.w3c.dom.css.CSSValue; - - -/** - * - */ -class CSSStyleDeclarationImpl extends CSSDocumentImpl implements ICSSStyleDeclaration { - - private boolean fIsDocument; - - CSSStyleDeclarationImpl(CSSStyleDeclarationImpl that) { - super(that); - this.fIsDocument = that.fIsDocument; - if (fIsDocument) { - setOwnerDocument(this); - } - } - - CSSStyleDeclarationImpl(boolean isDocument) { - super(); - fIsDocument = isDocument; - if (fIsDocument) { - setOwnerDocument(this); - } - } - - public ICSSNode cloneNode(boolean deep) { - CSSStyleDeclarationImpl cloned = new CSSStyleDeclarationImpl(this); - - if (deep) - cloneChildNodes(cloned, deep); - - return cloned; - } - - public ICSSStyleDeclItem getDeclItemNode(String propertyName) { - ICSSNode node = getLastChild(); - propertyName = propertyName.trim(); - while (node != null) { - if (node instanceof CSSStyleDeclItemImpl) { - ICSSStyleDeclItem item = (ICSSStyleDeclItem) node; - if (propertyName.compareToIgnoreCase(item.getPropertyName().trim()) == 0) - return item; - } - node = node.getPreviousSibling(); - } - return null; - } - - /** - * @return int - */ - public int getLength() { - int i = 0; - ICSSNode node = getFirstChild(); - while (node != null) { - if (node instanceof CSSStyleDeclItemImpl) - i++; - node = node.getNextSibling(); - } - return i; - } - - /** - * @return short - */ - public short getNodeType() { - return STYLEDECLARATION_NODE; - } - - /** - * The CSS rule that contains this declaration block or <code>null</code> - * if this <code>CSSStyleDeclaration</code> is not attached to a - * <code>CSSRule</code>. - */ - public CSSRule getParentRule() { - ICSSNode parent = getParentNode(); - if (parent instanceof CSSRule) - return (CSSRule) parent; - return null; - } - - /** - * Used to retrieve the object representation of the value of a CSS - * property if it has been explicitly set within this declaration block. - * This method returns <code>null</code> if the property is a shorthand - * property. Shorthand property values can only be accessed and modified - * as strings, using the <code>getPropertyValue</code> and - * <code>setProperty</code> methods. - * - * @param propertyName - * The name of the CSS property. See the CSS property index. - * @return Returns the value of the property if it has been explicitly set - * for this declaration block. Returns <code>null</code> if the - * property has not been set. - */ - public CSSValue getPropertyCSSValue(String propertyName) { - ICSSStyleDeclItem item = getDeclItemNode(propertyName); - if (item != null) - return item.getCSSValue(); - return null; - } - - /** - * Used to retrieve the priority of a CSS property (e.g. the - * <code>"important"</code> qualifier) if the property has been - * explicitly set in this declaration block. - * - * @param propertyName - * The name of the CSS property. See the CSS property index. - * @return A string representing the priority (e.g. - * <code>"important"</code>) if one exists. The empty string if - * none exists. - */ - public String getPropertyPriority(String propertyName) { - ICSSStyleDeclItem item = getDeclItemNode(propertyName); - if (item != null) - return item.getPriority(); - return null; - } - - /** - * Used to retrieve the value of a CSS property if it has been explicitly - * set within this declaration block. - * - * @param propertyName - * The name of the CSS property. See the CSS property index. - * @return Returns the value of the property if it has been explicitly set - * for this declaration block. Returns the empty string if the - * property has not been set. - */ - public String getPropertyValue(String propertyName) { - CSSValue value = getPropertyCSSValue(propertyName); - if (value != null) - return ((ICSSValue) value).getCSSValueText(); - return null; - } - - /** - * @return boolean - */ - public boolean isDocument() { - return fIsDocument; - } - - /** - * Used to retrieve the properties that have been explicitly set in this - * declaration block. The order of the properties retrieved using this - * method does not have to be the order in which they were set. This - * method can be used to iterate over all properties in this declaration - * block. - * - * @param index - * Index of the property name to retrieve. - * @return The name of the property at this ordinal position. The empty - * string if no property exists at this position. - */ - public String item(int index) { - if (index < 0) - return null; - - int i = 0; - ICSSNode node = getFirstChild(); - while (node != null) { - if (node instanceof CSSStyleDeclItemImpl) { - if (i != index) - i++; - else { - CSSStyleDeclItemImpl item = (CSSStyleDeclItemImpl) node; - return item.getPropertyName(); - } - } - node = node.getNextSibling(); - } - return null; - } - - public ICSSStyleDeclItem removeDeclItemNode(ICSSStyleDeclItem oldDecl) throws DOMException { - return (ICSSStyleDeclItem) removeChild((CSSNodeImpl) oldDecl); - } - - /** - * Used to remove a CSS property if it has been explicitly set within this - * declaration block. - * - * @param propertyName - * The name of the CSS property. See the CSS property index. - * @return Returns the value of the property if it has been explicitly set - * for this declaration block. Returns the empty string if the - * property has not been set or the property name does not - * correspond to a known CSS property. - * @exception DOMException - * NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration - * is readonly or the property is readonly. - */ - public String removeProperty(String propertyName) throws DOMException { - ICSSStyleDeclItem item = getDeclItemNode(propertyName); - if (item != null) { - removeChild((CSSNodeImpl) item); - return item.getCssText(); - } - return null; - } - - public ICSSStyleDeclItem setDeclItemNode(ICSSStyleDeclItem newDecl) throws DOMException { - if (newDecl == null) - return null; - - ICSSStyleDeclItem item = getDeclItemNode(newDecl.getPropertyName()); - if (item != null) - return (ICSSStyleDeclItem) replaceChild((CSSNodeImpl) newDecl, (CSSNodeImpl) item); - else - return (ICSSStyleDeclItem) appendChild((CSSNodeImpl) newDecl); - } - - /** - * Used to set a property value and priority within this declaration - * block. - * - * @param propertyName - * The name of the CSS property. See the CSS property index. - * @param value - * The new value of the property. - * @param priority - * The new priority of the property (e.g. - * <code>"important"</code>). - * @exception DOMException - * SYNTAX_ERR: Raised if the specified value has a syntax - * error and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration - * is readonly or the property is readonly. - */ - public void setProperty(String propertyName, String value, String priority) throws DOMException { - if (propertyName.equals("")) //$NON-NLS-1$ - throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, ""); //$NON-NLS-1$ - - // You can use this only if CSSValue.setCssText() is implemented - CSSStyleDeclItemImpl item = (CSSStyleDeclItemImpl) getDeclItemNode(propertyName); - if (item == null) { - item = (CSSStyleDeclItemImpl) getOwnerDocument().createCSSStyleDeclItem(propertyName); - appendChild(item); - } - - // ICSSNode next = item.getNextSibling(); - // removeChild(item); - - item.setCssValueText(value); - item.setPriority(priority); - - // insertBefore(item, (CSSNodeImpl)next); - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSStyleRuleImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSStyleRuleImpl.java deleted file mode 100644 index 3366f09e5a..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSStyleRuleImpl.java +++ /dev/null @@ -1,98 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.document; - - - -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSSelectorList; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleRule; -import org.w3c.dom.DOMException; - - -/** - * - */ -class CSSStyleRuleImpl extends CSSRuleDeclContainer implements ICSSStyleRule { - - ICSSSelectorList fSelectorList = new CSSSelectorListImpl(null); - - /** - * - */ - CSSStyleRuleImpl() { - super(); - } - - CSSStyleRuleImpl(CSSStyleRuleImpl that) { - super(that); - } - - public ICSSNode cloneNode(boolean deep) { - CSSStyleRuleImpl cloned = new CSSStyleRuleImpl(this); - - if (deep) - cloneChildNodes(cloned, deep); - - return cloned; - } - - /** - * @return java.lang.String - */ - String extractPreString() { - return getSelectorText(); - } - - /** - * @return short - */ - public short getNodeType() { - return STYLERULE_NODE; - } - - public ICSSSelectorList getSelectors() { - return fSelectorList; - } - - /** - * The textual representation of the selector for the rule set. The - * implementation may have stripped out insignificant whitespace while - * parsing the selector. - * - * @exception DOMException - * SYNTAX_ERR: Raised if the specified CSS string value has - * a syntax error and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this rule is - * readonly. - */ - public String getSelectorText() { - return getAttribute(SELECTOR); - } - - /** - * The type of the rule, as defined above. The expectation is that - * binding-specific casting methods can be used to cast down from an - * instance of the <code>CSSRule</code> interface to the specific - * derived interface implied by the <code>type</code>. - */ - public short getType() { - return STYLE_RULE; - } - - /** - * - */ - public void setSelectorText(String selectorText) throws DOMException { - setAttribute(SELECTOR, selectorText); - fSelectorList = new CSSSelectorListImpl(selectorText); - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSStyleSheetImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSStyleSheetImpl.java deleted file mode 100644 index ec31ff02d7..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSStyleSheetImpl.java +++ /dev/null @@ -1,612 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 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.document; - -import java.util.Iterator; -import java.util.List; -import java.util.Vector; - -import org.eclipse.wst.css.core.internal.CSSCoreMessages; -import org.eclipse.wst.css.core.internal.encoding.CSSDocumentLoader; -import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleSheetAdapter; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSCharsetRule; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSImportRule; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSMediaRule; -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.ICSSPageRule; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleDeclaration; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleRule; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleSheet; -import org.eclipse.wst.css.core.internal.util.ImportRuleCollector; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; -import org.eclipse.wst.sse.core.internal.util.Assert; -import org.w3c.dom.DOMException; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; -import org.w3c.dom.css.CSSFontFaceRule; -import org.w3c.dom.css.CSSRule; -import org.w3c.dom.css.CSSRuleList; -import org.w3c.dom.css.CSSUnknownRule; -import org.w3c.dom.stylesheets.MediaList; -import org.w3c.dom.stylesheets.StyleSheet; -import org.w3c.dom.stylesheets.StyleSheetList; - -/** - * - */ -class CSSStyleSheetImpl extends CSSDocumentImpl implements ICSSStyleSheet { - - - class InternalNodeList implements NodeList { - - Vector nodes = new Vector(); - - public int getLength() { - if (nodes == null) - return 0; - else - return nodes.size(); - } - - public Node item(int i) { - if (nodes == null) - return null; - if (i < 0 || nodes.size() <= i) - return null; - return (Node) nodes.get(i); - } - } - - class InternalStyleSheetList extends AbstractCSSNodeList implements StyleSheetList { - - public ICSSNode appendNode(ICSSNode node) { - if (nodes == null || !nodes.contains(node)) - return super.appendNode(node); - else - return node; - } - - public StyleSheet item(int i) { - return (StyleSheet) itemImpl(i); - } - } - - private boolean fDisabled = false; - - /** - * - */ - CSSStyleSheetImpl() { - super(); - setOwnerDocument(this); - } - - CSSStyleSheetImpl(CSSStyleSheetImpl that) { - super(that); - setOwnerDocument(this); - } - - /** - * @return org.w3c.dom.css.CSSRule - * @param rule - * org.w3c.dom.css.CSSRule - * @exception org.w3c.dom.DOMException - * The exception description. - */ - public org.w3c.dom.css.CSSRule appendRule(org.w3c.dom.css.CSSRule rule) throws org.w3c.dom.DOMException { - if (rule == null) - return null; - - CSSRule ret = (CSSRule) appendChild((CSSNodeImpl) rule); - return ret; - } - - public ICSSNode cloneNode(boolean deep) { - CSSStyleSheetImpl cloned = new CSSStyleSheetImpl(this); - - if (deep) - cloneChildNodes(cloned, deep); - - return cloned; - } - - /** - * @return org.w3c.dom.css.CSSCharsetRule - */ - public ICSSCharsetRule createCSSCharsetRule() { - CSSCharsetRuleImpl rule = new CSSCharsetRuleImpl(); - rule.setOwnerDocument(this); - return rule; - } - - /** - * @return org.w3c.dom.css.CSSFontFaceRule - */ - public CSSFontFaceRule createCSSFontFaceRule() { - CSSFontFaceRuleImpl rule = new CSSFontFaceRuleImpl(); - CSSStyleDeclarationImpl style = (CSSStyleDeclarationImpl) createCSSStyleDeclaration(); - - rule.appendChild(style); - rule.setOwnerDocument(this); - - return rule; - } - - /** - * @return org.w3c.dom.css.CSSImportRule - */ - public ICSSImportRule createCSSImportRule() { - CSSImportRuleImpl rule = new CSSImportRuleImpl(); - MediaListImpl media = (MediaListImpl) createMediaList(); - - rule.appendChild(media); - rule.setOwnerDocument(this); - - return rule; - } - - /** - * @return org.w3c.dom.css.ICSSMediaRule - */ - public ICSSMediaRule createCSSMediaRule() { - CSSMediaRuleImpl rule = new CSSMediaRuleImpl(); - MediaListImpl media = (MediaListImpl) createMediaList(); - - rule.insertBefore(media, (CSSNodeImpl) rule.getFirstChild()); // media - // must - // be - // the - // top - // of - // children - // list - rule.setOwnerDocument(this); - - return rule; - } - - /** - * @return org.w3c.dom.css.CSSPageRule - */ - public ICSSPageRule createCSSPageRule() { - CSSPageRuleImpl rule = new CSSPageRuleImpl(); - CSSStyleDeclarationImpl style = (CSSStyleDeclarationImpl) createCSSStyleDeclaration(); - - rule.appendChild(style); - rule.setOwnerDocument(this); - - return rule; - } - - /** - * @return org.w3c.dom.css.CSSRule - * @param rule - * java.lang.String - */ - public CSSRule createCSSRule(String rule) { - CSSDocumentLoader loader = new CSSDocumentLoader(); - IStructuredDocument structuredDocument = (IStructuredDocument) loader.createNewStructuredDocument(); - structuredDocument.set(rule); - - //CSSModelParser modelParser = new CSSModelParser((CSSDocumentImpl) getOwnerDocument()); - CSSModelParser modelParser = new CSSModelParser(getOwnerDocument()); - return modelParser.createCSSRule(structuredDocument.getRegionList()); - } - - /** - * @return org.w3c.dom.css.CSSStyleDeclaration - */ - public ICSSStyleDeclaration createCSSStyleDeclaration() { - CSSStyleDeclarationImpl decl = new CSSStyleDeclarationImpl(false); - decl.setOwnerDocument(this); - - return decl; - } - - /** - * @return org.w3c.dom.css.CSSStyleRule - */ - public ICSSStyleRule createCSSStyleRule() { - CSSStyleRuleImpl rule = new CSSStyleRuleImpl(); - CSSStyleDeclarationImpl style = (CSSStyleDeclarationImpl) createCSSStyleDeclaration(); - - rule.appendChild(style); - rule.setOwnerDocument(this); - - return rule; - } - - /** - * @return org.w3c.dom.css.CSSUnknownRule - */ - public CSSUnknownRule createCSSUnknownRule() { - CSSUnknownRuleImpl rule = new CSSUnknownRuleImpl(); - rule.setOwnerDocument(this); - - return rule; - } - - /** - * @return org.w3c.dom.stylesheets.MediaList - */ - public MediaList createMediaList() { - MediaListImpl media = new MediaListImpl(); - media.setOwnerDocument(this); - - return media; - } - - /** - * Used to delete a rule from the style sheet. - * - * @param index - * The index within the style sheet's rule list of the rule to - * remove. - * @exception DOMException - * INDEX_SIZE_ERR: Raised if the specified index does not - * correspond to a rule in the style sheet's rule list. - * <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this style sheet - * is readonly. - */ - public void deleteRule(int index) throws DOMException { - CSSNodeImpl node = getIndexedRule(index); - if (node != null) - removeChild(node); - } - - /** - * The list of all CSS rules contained within the style sheet. This - * includes both rule sets and at-rules. - */ - public CSSRuleList getCssRules() { - CSSRuleListImpl list = new CSSRuleListImpl(); - - for (ICSSNode node = getFirstChild(); node != null; node = node.getNextSibling()) { - if (node instanceof CSSRule) { - list.appendNode(node); - } - } - - return list; - } - - /** - * <code>false</code> if the style sheet is applied to the document. - * <code>true</code> if it is not. Modifying this attribute may cause a - * new resolution of style for the document. A stylesheet only applies if - * both an appropriate medium definition is present and the disabled - * attribute is false. So, if the media doesn't apply to the current user - * agent, the <code>disabled</code> attribute is ignored. - */ - public boolean getDisabled() { - return fDisabled; - } - - /** - * If the style sheet is a linked style sheet, the value of its attribute - * is its location. For inline style sheets, the value of this attribute - * is <code>null</code>. See the href attribute definition for the - * <code>LINK</code> element in HTML 4.0, and the href pseudo-attribute - * for the XML style sheet processing instruction. - */ - public String getHref() { - ICSSModel model = getModel(); - if (model != null && model.getStyleSheetType() == ICSSModel.EXTERNAL) { - return model.getBaseLocation(); - /* - * Object id = model.getId(); if (id != null) { if (id instanceof - * IResource) { // TODO: need to check whether this is correct or - * not, later. return ((IResource)id).getFullPath().toString(); } - * return id.toString(); } - */} - return null; - } - - CSSRuleImpl getIndexedRule(int index) { - if (index < 0) - return null; - - int i = 0; - for (ICSSNode node = getFirstChild(); node != null; node = node.getNextSibling()) { - if (node instanceof CSSRule) { - if (i++ == index) - return (CSSRuleImpl) node; - } - } - return null; - } - - /** - * The intended destination media for style information. The media is - * often specified in the <code>ownerNode</code>. If no media has been - * specified, the <code>MediaList</code> will be empty. See the media - * attribute definition for the <code>LINK</code> element in HTML 4.0, - * and the media pseudo-attribute for the XML style sheet processing - * instruction . Modifying the media list may cause a change to the - * attribute <code>disabled</code>. - */ - public MediaList getMedia() { - return null; - } - - /** - * @return short - */ - public short getNodeType() { - return STYLESHEET_NODE; - } - - /** - * The node that associates this style sheet with the document. For HTML, - * this may be the corresponding <code>LINK</code> or <code>STYLE</code> - * element. For XML, it may be the linking processing instruction. For - * style sheets that are included by other style sheets, the value of this - * attribute is <code>null</code>. - */ - public Node getOwnerNode() { - // for <LINK> tag or <STYLE> tag - ICSSModel model = getModel(); - if (model != null) - return model.getOwnerDOMNode(); - return null; - } - - /** - * @return org.w3c.dom.NodeList - */ - public org.w3c.dom.NodeList getOwnerNodes() { - List list = (getModel().getStyleListeners() != null) ? new Vector(getModel().getStyleListeners()) : null; - if (list == null) - return null; - InternalNodeList nodes = new InternalNodeList(); - Iterator it = list.iterator(); - while (it.hasNext()) { - Object obj = it.next(); - if (obj instanceof IStyleSheetAdapter) { - nodes.nodes.add(((IStyleSheetAdapter) obj).getElement()); - } - } - if (nodes.getLength() > 0) - return nodes; - else - return null; - } - - /** - * @return org.w3c.dom.NodeList - * @param doc - * org.w3c.dom.Document - */ - public NodeList getOwnerNodes(Document doc) { - List list = (getModel().getStyleListeners() != null) ? new Vector(getModel().getStyleListeners()) : null; - if (list == null) - return null; - InternalNodeList nodes = new InternalNodeList(); - Iterator it = list.iterator(); - while (it.hasNext()) { - Object obj = it.next(); - if (obj instanceof IStyleSheetAdapter) { - Element ele = ((IStyleSheetAdapter) obj).getElement(); - if (ele.getOwnerDocument() == doc) - nodes.nodes.add(ele); - } - } - if (nodes.getLength() > 0) - return nodes; - else - return null; - } - - /** - * If this style sheet comes from an <code>@import</code> rule, the <code>ownerRule</code> attribute will - * contain the <code>CSSImportRule</code>. In that case, the - * <code>ownerNode</code> attribute in the - * <code>StyleSheet</code> interface will be <code>null</code>. - * If the style sheet comes from an element or a processing - * instruction, the <code>ownerRule</code> attribute will be - * <code>null</code> and the <code>ownerNode</code> attribute - * will contain the <code>Node</code>. - */ - public CSSRule getOwnerRule() { - Assert.isTrue(false, CSSCoreMessages.You_cannot_use_CSSStyleShe_UI_); //$NON-NLS-1$ = "You cannot use CSSStyleSheet.getOwnerRule() because of many referencers of this rule\nPlease use getOnwerRules()" - // for @import - return null; - } - - /** - * @return org.w3c.dom.css.CSSRuleList - */ - public org.w3c.dom.css.CSSRuleList getOwnerRules() { - StyleSheetList list = getParentStyleSheets(); - if (list == null) - return null; - CSSRuleListImpl ruleList = new CSSRuleListImpl(); - for (int i = 0; i < list.getLength(); i++) { - ImportRuleCollector trav = new ImportRuleCollector(this); - trav.apply((ICSSStyleSheet) list.item(i)); - ruleList.nodes.addAll(trav.getRules()); - } - return ruleList; - } - - /** - * For style sheet languages that support the concept of style sheet - * inclusion, this attribute represents the including style sheet, if one - * exists. If the style sheet is a top-level style sheet, or the style - * sheet language does not support inclusion, the value of this attribute - * is <code>null</code>. - */ - public StyleSheet getParentStyleSheet() { - CSSRule owner = getOwnerRule(); - if (owner != null) - return owner.getParentStyleSheet(); - return null; - } - - /** - * @return org.w3c.dom.stylesheets.StyleSheetList - */ - public org.w3c.dom.stylesheets.StyleSheetList getParentStyleSheets() { - List list = (getModel().getStyleListeners() != null) ? new Vector(getModel().getStyleListeners()) : null; - if (list == null) - return null; - InternalStyleSheetList sheets = new InternalStyleSheetList(); - Iterator it = list.iterator(); - while (it.hasNext()) { - Object obj = it.next(); - if (obj instanceof ICSSModel) { - sheets.appendNode(((ICSSModel) obj).getDocument()); - } - } - if (sheets.getLength() > 0) - return sheets; - else - return null; - } - - /** - * The advisory title. The title is often specified in the - * <code>ownerNode</code>. See the title attribute definition for the - * <code>LINK</code> element in HTML 4.0, and the title pseudo-attribute - * for the XML style sheet processing instruction. - */ - public String getTitle() { - Node node = getOwnerNode(); - if (node instanceof Element) { - return ((Element) node).getAttribute("TITLE");//$NON-NLS-1$ - } - return null; - } - - /** - * This specifies the style sheet language for this style sheet. The style - * sheet language is specified as a content type (e.g. "text/css"). The - * content type is often specified in the <code>ownerNode</code>. Also - * see the type attribute definition for the <code>LINK</code> element - * in HTML 4.0, and the type pseudo-attribute for the XML style sheet - * processing instruction. - */ - public String getType() { - Node node = getOwnerNode(); - if (node instanceof Element) { - return ((Element) node).getAttribute("TYPE");//$NON-NLS-1$ - } - return null; - } - - /** - * Used to insert a new rule into the style sheet. The new rule now - * becomes part of the cascade. - * - * @param rule - * The parsable text representing the rule. For rule sets this - * contains both the selector and the style declaration. For - * at-rules, this specifies both the at-identifier and the rule - * content. - * @param index - * The index within the style sheet's rule list of the rule - * before which to insert the specified rule. If the specified - * index is equal to the length of the style sheet's rule - * collection, the rule will be added to the end of the style - * sheet. - * @return The index within the style sheet's rule collection of the newly - * inserted rule. - * @exception DOMException - * HIERARCHY_REQUEST_ERR: Raised if the rule cannot be - * inserted at the specified index e.g. if an - * <code>@import</code> rule is inserted after a standard rule set or other - * at-rule. <br> - * INDEX_SIZE_ERR: Raised if the specified index is not a valid - * insertion point. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this style sheet is - * readonly. <br> - * SYNTAX_ERR: Raised if the specified rule has a syntax error and - * is unparsable. - */ - public int insertRule(String rule, int index) throws DOMException { - int length = getCssRules().getLength(); - if (index < 0 || length < index) - throw new DOMException(DOMException.INDEX_SIZE_ERR, "");//$NON-NLS-1$ - - IStructuredDocument doc = getModel().getStructuredDocument(); - CSSRuleImpl refRule = (length != index) ? getIndexedRule(index) : null; - int offset = (refRule != null) ? refRule.getStartOffset() : doc.getLength(); - doc.replaceText(this, offset, 0, rule); - - // insertBefore((CSSNodeImpl) createCSSRule(rule),refRule); - return index; - } - - /** - * @return org.w3c.dom.css.CSSRule - * @param newRule - * org.w3c.dom.css.CSSRule - * @param refRule - * org.w3c.dom.css.CSSRule - */ - public org.w3c.dom.css.CSSRule insertRuleBefore(org.w3c.dom.css.CSSRule newRule, org.w3c.dom.css.CSSRule refRule) throws org.w3c.dom.DOMException { - if (newRule == null && refRule == null) - return null; - - CSSRule ret = (CSSRule) insertBefore((CSSNodeImpl) newRule, (CSSNodeImpl) refRule); - return ret; - } - - /** - * @return boolean - */ - public boolean isDocument() { - return true; - } - - /** - * @return org.w3c.dom.css.CSSRule - * @param rule - * org.w3c.dom.css.CSSRule - * @exception org.w3c.dom.DOMException - * The exception description. - */ - public org.w3c.dom.css.CSSRule removeRule(org.w3c.dom.css.CSSRule rule) throws org.w3c.dom.DOMException { - if (rule == null) - return null; - - CSSRule ret = (CSSRule) removeChild((CSSNodeImpl) rule); - return ret; - } - - /** - * @return org.w3c.dom.css.CSSRule - * @param newChild - * org.w3c.dom.css.CSSRule - * @param oldChild - * org.w3c.dom.css.CSSRule - * @exception org.w3c.dom.DOMException - * The exception description. - */ - public org.w3c.dom.css.CSSRule replaceRule(org.w3c.dom.css.CSSRule newRule, org.w3c.dom.css.CSSRule oldRule) throws org.w3c.dom.DOMException { - if (newRule == null && oldRule == null) - return null; - - CSSRule ret = (CSSRule) replaceChild((CSSNodeImpl) newRule, (CSSNodeImpl) oldRule); - return ret; - } - - /** - * setDisabled method comment. - */ - public void setDisabled(boolean disabled) { - this.fDisabled = disabled; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSUnknownRuleImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSUnknownRuleImpl.java deleted file mode 100644 index a93ed7527d..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSUnknownRuleImpl.java +++ /dev/null @@ -1,70 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.document; - - - -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.w3c.dom.css.CSSUnknownRule; - - -/** - * - */ -class CSSUnknownRuleImpl extends CSSRuleImpl implements CSSUnknownRule { - - // TODO: This field is never read - String fCssText = null; - - /** - * - */ - CSSUnknownRuleImpl() { - super(); - } - - CSSUnknownRuleImpl(CSSUnknownRuleImpl that) { - super(that); - } - - public ICSSNode cloneNode(boolean deep) { - CSSUnknownRuleImpl cloned = new CSSUnknownRuleImpl(this); - - return cloned; - } - - /** - * @return short - */ - public short getNodeType() { - return UNKNOWNRULE_NODE; - } - - /** - * The type of the rule, as defined above. The expectation is that - * binding-specific casting methods can be used to cast down from an - * instance of the <code>CSSRule</code> interface to the specific - * derived interface implied by the <code>type</code>. - */ - public short getType() { - return UNKNOWN_RULE; - } - - /** - * @param cssText - * java.lang.String - */ - public void setCssText(String cssText) { - this.fCssText = cssText; - - super.setCssText(cssText); - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CounterImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CounterImpl.java deleted file mode 100644 index 2b921f7bec..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CounterImpl.java +++ /dev/null @@ -1,124 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.document; - - - -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.eclipse.wst.css.core.internal.provisional.document.ICounter; -import org.w3c.dom.DOMException; -import org.w3c.dom.css.Counter; - - -/** - * - */ -class CounterImpl extends CSSPrimitiveContainer implements ICounter { - - /** - * - */ - CounterImpl() { - super(CSS_COUNTER); - } - - CounterImpl(CounterImpl that) { - super(that); - } - - /** - * @return org.eclipse.wst.css.core.model.interfaces.ICSSNode - * @param deep - * boolean - */ - public ICSSNode cloneNode(boolean deep) { - CounterImpl cloned = new CounterImpl(this); - - if (deep) - cloneChildNodes(cloned, deep); - - return cloned; - } - - /** - * This method is used to get the Counter value. If this CSS value doesn't - * contain a counter value, a <code>DOMException</code> is raised. - * Modification to the corresponding style property can be achieved using - * the <code>Counter</code> interface. - * - * @return The Counter value. - * @exception DOMException - * INVALID_ACCESS_ERR: Raised if the CSS value doesn't - * contain a Counter value (e.g. this is not - * <code>CSS_COUNTER</code>). - */ - public Counter getCounterValue() throws DOMException { - return this; - } - - /** - * This attribute is used for the identifier of the counter. - */ - public String getIdentifier() { - return getAttribute(IDENTIFIER); - } - - /** - * This attribute is used for the style of the list. - */ - public String getListStyle() { - return getAttribute(LISTSTYLE); - } - - /** - * This attribute is used for the separator of the nested counters. - */ - public String getSeparator() { - return getAttribute(SEPARATOR); - } - - /** - * - */ - protected void initPrimitives() { - return; - } - - /** - * @param identifier - * java.lang.String - * @exception org.w3c.dom.DOMException - * The exception description. - */ - public void setIdentifier(String identifier) throws DOMException { - setAttribute(IDENTIFIER, identifier); - } - - /** - * @param listStyle - * java.lang.String - * @exception org.w3c.dom.DOMException - * The exception description. - */ - public void setListStyle(String listStyle) throws DOMException { - setAttribute(LISTSTYLE, listStyle); - } - - /** - * @param Separator - * java.lang.String - * @exception org.w3c.dom.DOMException - * The exception description. - */ - public void setSeparator(String Separator) throws org.w3c.dom.DOMException { - setAttribute(SEPARATOR, Separator); - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/DOMCSSImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/DOMCSSImpl.java deleted file mode 100644 index fb7907f815..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/DOMCSSImpl.java +++ /dev/null @@ -1,49 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.document; - - - -import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleDeclaration; -import org.w3c.dom.css.CSSStyleSheet; - - -/** - * - */ -public class DOMCSSImpl { - - /** - * DOMCSSImpl constructor comment. - */ - public DOMCSSImpl() { - super(); - } - - public static ICSSStyleDeclaration createCSSStyleDeclaration() throws org.w3c.dom.DOMException { - CSSStyleDeclarationImpl document = new CSSStyleDeclarationImpl(true); - - return document; - } - - /** - * @return org.w3c.dom.css.CSSStyleSheet - * @param title - * java.lang.String - * @param media - * java.lang.String - * @exception org.w3c.dom.DOMException - * The exception description. - */ - public static CSSStyleSheet createCSSStyleSheet(String title, String media) throws org.w3c.dom.DOMException { - return new CSSStyleSheetImpl(); - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/MediaListImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/MediaListImpl.java deleted file mode 100644 index a84b3b1a02..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/MediaListImpl.java +++ /dev/null @@ -1,155 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.document; - - - -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.w3c.dom.DOMException; -import org.w3c.dom.stylesheets.MediaList; - - -/** - * - */ -class MediaListImpl extends CSSRegionContainer implements MediaList { - - int mediumCounter; - - /** - * MediaListImpl constructor comment. - */ - MediaListImpl() { - super(); - } - - /** - * MediaListImpl constructor comment. - */ - MediaListImpl(MediaListImpl that) { - super(that); - } - - /** - * Adds the medium <code>newMedium</code> to the end of the list. If the - * <code>newMedium</code> is already used, it is first removed. - * - * @param newMediumThe - * new medium to add. - * @exception DOMException - * INVALID_CHARACTER_ERR: If the medium contains characters - * that are invalid in the underlying style language. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this list is - * readonly. - */ - public void appendMedium(String newMedium) throws DOMException { - if (newMedium == null) - return; - - CSSNodeListImpl m = getMedia(); - for (int i = 0; i != m.getLength(); i++) { - if (newMedium.equals(item(i))) - return; - } - - setAttribute("medium" + Integer.toString(mediumCounter++), newMedium);//$NON-NLS-1$ - } - - public ICSSNode cloneNode(boolean deep) { - MediaListImpl cloned = new MediaListImpl(this); - return cloned; - } - - /** - * Deletes the medium indicated by <code>oldMedium</code> from the list. - * - * @param oldMediumThe - * medium to delete in the media list. - * @exception DOMException - * NO_MODIFICATION_ALLOWED_ERR: Raised if this list is - * readonly. <br> - * NOT_FOUND_ERR: Raised if <code>oldMedium</code> is not - * in the list. - */ - public void deleteMedium(String oldMedium) throws DOMException { - for (int i = 0; i != getLength(); i++) { - if (oldMedium.equals(item(i))) { - removeAttributeNode((CSSAttrImpl) fAttrs.item(i)); - } - } - } - - /** - * The number of media in the list. The range of valid media is - * <code>0</code> to <code>length-1</code> inclusive. - */ - public int getLength() { - return getMedia().getLength(); - } - - /** - * @return CSSNodeListImpl - */ - CSSNodeListImpl getMedia() { - if (fAttrs == null) - fAttrs = new CSSNamedNodeMapImpl(); - return fAttrs; - } - - /** - * The parsable textual representation of the media list. This is a - * comma-separated list of media. - * - * @exception DOMException - * SYNTAX_ERR: Raised if the specified string value has a - * syntax error and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this media list - * is readonly. - */ - public String getMediaText() { - return getCssText(); - } - - /** - * Insert the method's description here. Creation date: (2001/01/17 - * 18:50:29) - * - * @return short - */ - public short getNodeType() { - return MEDIALIST_NODE; - } - - /** - * Returns the <code>index</code> th in the list. If <code>index</code> - * is greater than or equal to the number of media in the list, this - * returns <code>null</code>. - * - * @param index - * Index into the collection. - * @return The medium at the <code>index</code> th position in the - * <code>MediaList</code>, or <code>null</code> if that is - * not a valid index. - */ - public String item(int index) { - if (index < 0 || getLength() <= index) - return null; - - return ((CSSAttrImpl) getMedia().item(index)).getValue(); - } - - /** - * setMediaText method comment. - */ - public void setMediaText(String mediaText) throws DOMException { - setCssText(mediaText); - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/RGBColorImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/RGBColorImpl.java deleted file mode 100644 index 25550275c1..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/RGBColorImpl.java +++ /dev/null @@ -1,104 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.document; - - - -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.w3c.dom.css.CSSPrimitiveValue; -import org.w3c.dom.css.RGBColor; - - -/** - * - */ -class RGBColorImpl extends CSSPrimitiveContainer implements RGBColor { - - private CSSPrimitiveValueImpl fRed; - private CSSPrimitiveValueImpl fGreen; - private CSSPrimitiveValueImpl fBlue; - - /** - * - */ - RGBColorImpl() { - super(CSS_RGBCOLOR); - } - - RGBColorImpl(RGBColorImpl that) { - super(that); - - fRed = new CSSPrimitiveValueImpl(that.fRed); - appendChild(fRed); - - fGreen = new CSSPrimitiveValueImpl(that.fGreen); - appendChild(fGreen); - - fBlue = new CSSPrimitiveValueImpl(that.fBlue); - appendChild(fBlue); - } - - /** - * @return org.eclipse.wst.css.core.model.interfaces.ICSSNode - * @param deep - * boolean - */ - public ICSSNode cloneNode(boolean deep) { - RGBColorImpl cloned = new RGBColorImpl(this); - - return cloned; - } - - /** - * This attribute is used for the blue value of the RGB color. - */ - public CSSPrimitiveValue getBlue() { - return fBlue; - } - - /** - * This attribute is used for the green value of the RGB color. - */ - public CSSPrimitiveValue getGreen() { - return fGreen; - } - - /** - * This attribute is used for the red value of the RGB color. - */ - public CSSPrimitiveValue getRed() { - return fRed; - } - - /** - * @return org.w3c.dom.css.RGBColor - * @exception org.w3c.dom.DOMException - * The exception description. - */ - public RGBColor getRGBColorValue() throws org.w3c.dom.DOMException { - return this; - } - - /** - * - */ - protected void initPrimitives() { - - fRed = (CSSPrimitiveValueImpl) getOwnerDocument().createCSSPrimitiveValue(CSS_NUMBER); - appendChild(fRed); - - fGreen = (CSSPrimitiveValueImpl) getOwnerDocument().createCSSPrimitiveValue(CSS_NUMBER); - appendChild(fGreen); - - fBlue = (CSSPrimitiveValueImpl) getOwnerDocument().createCSSPrimitiveValue(CSS_NUMBER); - appendChild(fBlue); - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/RectImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/RectImpl.java deleted file mode 100644 index a295ea3c91..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/RectImpl.java +++ /dev/null @@ -1,118 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.document; - - - -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.w3c.dom.css.CSSPrimitiveValue; -import org.w3c.dom.css.Rect; - - -/** - * - */ -class RectImpl extends CSSPrimitiveContainer implements Rect { - - private CSSPrimitiveValueImpl fTop; - private CSSPrimitiveValueImpl fRight; - private CSSPrimitiveValueImpl fBottom; - private CSSPrimitiveValueImpl fLeft; - - /** - * - */ - RectImpl() { - super(CSS_RECT); - } - - RectImpl(RectImpl that) { - super(that); - - fTop = new CSSPrimitiveValueImpl(that.fTop); - appendChild(fTop); - - fRight = new CSSPrimitiveValueImpl(that.fRight); - appendChild(fRight); - - fBottom = new CSSPrimitiveValueImpl(that.fBottom); - appendChild(fBottom); - - fLeft = new CSSPrimitiveValueImpl(that.fLeft); - appendChild(fLeft); - } - - /** - * @return org.eclipse.wst.css.core.model.interfaces.ICSSNode - * @param deep - * boolean - */ - public ICSSNode cloneNode(boolean deep) { - RectImpl cloned = new RectImpl(this); - - return cloned; - } - - /** - * This attribute is used for the bottom of the rect. - */ - public CSSPrimitiveValue getBottom() { - return fBottom; - } - - /** - * This attribute is used for the left of the rect. - */ - public CSSPrimitiveValue getLeft() { - return fLeft; - } - - /** - * @return org.w3c.dom.css.Rect - * @exception org.w3c.dom.DOMException - * The exception description. - */ - public Rect getRectValue() throws org.w3c.dom.DOMException { - return this; - } - - /** - * This attribute is used for the right of the rect. - */ - public CSSPrimitiveValue getRight() { - return fRight; - } - - /** - * This attribute is used for the top of the rect. - */ - public CSSPrimitiveValue getTop() { - return fTop; - } - - /** - * - */ - protected void initPrimitives() { - - fTop = (CSSPrimitiveValueImpl) getOwnerDocument().createCSSPrimitiveValue(CSS_NUMBER); - appendChild(fTop); - - fRight = (CSSPrimitiveValueImpl) getOwnerDocument().createCSSPrimitiveValue(CSS_NUMBER); - appendChild(fRight); - - fBottom = (CSSPrimitiveValueImpl) getOwnerDocument().createCSSPrimitiveValue(CSS_NUMBER); - appendChild(fBottom); - - fLeft = (CSSPrimitiveValueImpl) getOwnerDocument().createCSSPrimitiveValue(CSS_NUMBER); - appendChild(fLeft); - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/StyleSheetListImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/StyleSheetListImpl.java deleted file mode 100644 index fea1bfca15..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/StyleSheetListImpl.java +++ /dev/null @@ -1,44 +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.document; - - - -import org.w3c.dom.stylesheets.StyleSheet; -import org.w3c.dom.stylesheets.StyleSheetList; - -/** - * - */ -class StyleSheetListImpl extends AbstractCSSNodeList implements StyleSheetList { - - /** - * StyleSheetListImpl constructor comment. - */ - StyleSheetListImpl() { - super(); - } - - /** - * Used to retrieve a style sheet by ordinal index. If index is greater - * than or equal to the number of style sheets in the list, this returns - * <code>null</code>. - * - * @param indexIndex - * into the collection - * @return The style sheet at the <code>index</code> position in the - * <code>StyleSheetList</code>, or <code>null</code> if that - * is not a valid index. - */ - public StyleSheet item(int index) { - return (StyleSheet) itemImpl(index); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/encoding/CSSDocumentCharsetDetector.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/encoding/CSSDocumentCharsetDetector.java deleted file mode 100644 index 51a51e1f1f..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/encoding/CSSDocumentCharsetDetector.java +++ /dev/null @@ -1,126 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 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.encoding; - -import java.util.Iterator; - -import org.eclipse.jface.text.IDocument; -import org.eclipse.wst.css.core.internal.contenttype.CSSResourceEncodingDetector; -import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts; -import org.eclipse.wst.sse.core.internal.document.DocumentReader; -import org.eclipse.wst.sse.core.internal.document.IDocumentCharsetDetector; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegionList; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList; -import org.eclipse.wst.sse.core.utils.StringUtils; - - -public class CSSDocumentCharsetDetector extends CSSResourceEncodingDetector implements IDocumentCharsetDetector { - - public String getEncodingName(IStructuredDocument structuredDocument) { - String result = null; - // if the document is empty, then there will be no nodes, - // so no need to continue. - IStructuredDocumentRegionList nodes = structuredDocument.getRegionList(); - if (nodes.getLength() > 0) { - IStructuredDocumentRegion node = null; - // skip any initial whitespace - // Note that @charset "encodingname"; - // must appear at very beginning of document, - // to be valid. - // May have to test with "damaged" files (e.g. - // beginning EOLs, etc., to verify this works - // as expected. - for (int i = 0; i < nodes.getLength(); i++) { - node = nodes.item(i); - if (getType(node) != CSSRegionContexts.CSS_S) { - break; - } - } - Iterator regions = node.getRegions().iterator(); - ITextRegion region = getNextRegionOfType(CSSRegionContexts.CSS_CHARSET, regions); - if (region != null) { - ITextRegion valueRegion = getNextRegionOfType(CSSRegionContexts.CSS_STRING, regions); - if (valueRegion == null) { - // if didn't find the region, its probably due to ill - // formed input, such as - // @charset "ISO-8859-6; - // so we'll try again for "unknown" region. - // If that fails, we'll give up? - regions = node.getRegions().iterator(); - region = getNextRegionOfType(CSSRegionContexts.CSS_CHARSET, regions); - if (region != null) { - valueRegion = getNextRegionOfType(CSSRegionContexts.CSS_UNKNOWN, regions); - if (valueRegion != null) { - result = node.getText(valueRegion); - } - } - } - else { - result = node.getText(valueRegion); - } - result = StringUtils.stripNonLetterDigits(result); - } - } - return result; - } - - public String getEncodingName(IDocument document) { - String enc = null; - if (document instanceof IStructuredDocument) { - enc = getEncodingName((IStructuredDocument) document); - } - else { - // TODO Important: need to implement some "raw" parser for - // IDocument level - } - return enc; - } - - private String getType(IStructuredDocumentRegion node) { - if (node == null) - return null; - ITextRegionList regions = node.getRegions(); - if (regions == null || regions.size() == 0) - return null; - ITextRegion region = regions.get(0); - String result = region.getType(); - return result; - } - - private ITextRegion getNextRegionOfType(String type, Iterator regions) { - if (type == null) - return null; - if (regions == null) - return null; - ITextRegion result = null; - while (regions.hasNext()) { - ITextRegion region = (ITextRegion) regions.next(); - if (region.getType() == type) { - result = region; - break; - } - } - return result; - } - - /** - * - */ - - public void set(IDocument document) { - set(new DocumentReader(document, 0)); - - } - -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/encoding/CSSDocumentLoader.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/encoding/CSSDocumentLoader.java deleted file mode 100644 index b46ff08f87..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/encoding/CSSDocumentLoader.java +++ /dev/null @@ -1,91 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 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.encoding; - - -import org.eclipse.core.resources.IFile; -import org.eclipse.jface.text.IDocumentPartitioner; -import org.eclipse.wst.css.core.internal.contenttype.EncodingGuesser; -import org.eclipse.wst.css.core.internal.parser.CSSSourceParser; -import org.eclipse.wst.css.core.internal.provisional.contenttype.ContentTypeIdForCSS; -import org.eclipse.wst.css.core.internal.text.CSSStructuredDocumentReParser; -import org.eclipse.wst.css.core.internal.text.StructuredTextPartitionerForCSS; -import org.eclipse.wst.sse.core.internal.document.AbstractDocumentLoader; -import org.eclipse.wst.sse.core.internal.document.IDocumentCharsetDetector; -import org.eclipse.wst.sse.core.internal.document.IDocumentLoader; -import org.eclipse.wst.sse.core.internal.document.StructuredDocumentFactory; -import org.eclipse.wst.sse.core.internal.encoding.ContentTypeEncodingPreferences; -import org.eclipse.wst.sse.core.internal.ltk.parser.RegionParser; -import org.eclipse.wst.sse.core.internal.provisional.document.IEncodedDocument; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; -import org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument; - - -public class CSSDocumentLoader extends AbstractDocumentLoader { - private final static String CSS_ID = ContentTypeIdForCSS.ContentTypeID_CSS; - private IDocumentCharsetDetector documentEncodingDetector; - - - public CSSDocumentLoader() { - super(); - } - - protected String getEncodingNameByGuess(byte[] string, int length) { - String ianaEnc = null; - ianaEnc = EncodingGuesser.guessEncoding(string, length); - return ianaEnc; - } - - /** - * Default encoding. For CSS there is no spec'd default. - */ - protected String getSpecDefaultEncoding() { - return null; - } - - protected IEncodedDocument newEncodedDocument() { - // DMW: I copied this from CSSModelImple ... - // but am not sure its right - IStructuredDocument structuredDocument = StructuredDocumentFactory.getNewStructuredDocumentInstance(getParser()); - CSSStructuredDocumentReParser reParser = new CSSStructuredDocumentReParser(); - reParser.setStructuredDocument(structuredDocument); - ((BasicStructuredDocument) structuredDocument).setReParser(reParser); - return structuredDocument; - } - - public RegionParser getParser() { - // return new CSSRegionParser(); - return new CSSSourceParser(); - } - - protected String getPreferredNewLineDelimiter(IFile file) { - String delimiter = ContentTypeEncodingPreferences.getPreferredNewLineDelimiter(CSS_ID); - if (delimiter == null) - delimiter = super.getPreferredNewLineDelimiter(file); - return delimiter; - } - - public IDocumentCharsetDetector getDocumentEncodingDetector() { - if (documentEncodingDetector == null) { - documentEncodingDetector = new CSSDocumentCharsetDetector(); - } - return documentEncodingDetector; - } - - public IDocumentPartitioner getDefaultDocumentPartitioner() { - return new StructuredTextPartitionerForCSS(); - } - - public IDocumentLoader newInstance() { - return new CSSDocumentLoader(); - } - -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/event/ICSSStyleListener.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/event/ICSSStyleListener.java deleted file mode 100644 index 0c77119003..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/event/ICSSStyleListener.java +++ /dev/null @@ -1,32 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.event; - -import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSSelector; - - - -/** - * - */ -public interface ICSSStyleListener { - - /** - * - */ - void styleChanged(ICSSModel srcModel, ICSSSelector[] removed, ICSSSelector[] added, String media); - - /** - * - */ - void styleUpdate(ICSSModel srcModel); -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/event/ICSSStyleNotifier.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/event/ICSSStyleNotifier.java deleted file mode 100644 index ba49ee8d2f..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/event/ICSSStyleNotifier.java +++ /dev/null @@ -1,40 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.event; - - - -import java.util.List; - -/** - * - */ -public interface ICSSStyleNotifier extends ICSSStyleListener { - - /** - * - */ - void addStyleListener(ICSSStyleListener listener); - - /** - * - */ - List getStyleListeners(); - - /** - */ - boolean isRecording(); - - /** - * - */ - void removeStyleListener(ICSSStyleListener listener); -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/eventimpl/CSSEmbededStyleNotifyAdapter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/eventimpl/CSSEmbededStyleNotifyAdapter.java deleted file mode 100644 index e8031ba3de..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/eventimpl/CSSEmbededStyleNotifyAdapter.java +++ /dev/null @@ -1,60 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.eventimpl; - - - -import org.eclipse.wst.css.core.internal.event.ICSSStyleListener; -import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleSheetAdapter; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSSelector; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; - - -public class CSSEmbededStyleNotifyAdapter extends CSSStyleNotifyAdapter { - - /** - * CSSEmbeddedStyleNotifyAdapter constructor comment. - * - * @param model - * org.eclipse.wst.css.core.model.interfaces.ICSSModel - */ - public CSSEmbededStyleNotifyAdapter(ICSSModel model) { - super(model); - } - - /** - * - */ - public void styleChanged(ICSSModel srcModel, ICSSSelector[] removed, ICSSSelector[] added, String media) { - IDOMNode node = (IDOMNode) model.getOwnerDOMNode(); - if (node != null) - return; - INodeAdapter adapter = node.getAdapterFor(IStyleSheetAdapter.class); - if (adapter instanceof ICSSStyleListener) { - ((ICSSStyleListener) adapter).styleChanged(srcModel, removed, added, media); - } - } - - /** - * - */ - public void styleUpdate(ICSSModel srcModel) { - IDOMNode node = (IDOMNode) model.getOwnerDOMNode(); - if (node != null) - return; - INodeAdapter adapter = node.getAdapterFor(IStyleSheetAdapter.class); - if (adapter instanceof ICSSStyleListener) { - ((ICSSStyleListener) adapter).styleUpdate(srcModel); - } - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/eventimpl/CSSStyleEventDeliverer.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/eventimpl/CSSStyleEventDeliverer.java deleted file mode 100644 index 0760182eff..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/eventimpl/CSSStyleEventDeliverer.java +++ /dev/null @@ -1,155 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.eventimpl; - - - -import java.util.Vector; - -import org.eclipse.wst.css.core.internal.event.ICSSStyleListener; -import org.eclipse.wst.css.core.internal.event.ICSSStyleNotifier; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSSelector; - - -/** - * - */ -public class CSSStyleEventDeliverer { - - private Vector fVisited = new Vector(); - private ICSSModel fSrcModel; - private ICSSSelector[] fRemoved; - private ICSSSelector[] fAdded; - private String fMedia; - - /** - * - */ - public CSSStyleEventDeliverer() { - super(); - } - - /** - * - */ - public void fire(ICSSModel srcModel, ICSSSelector[] removed, ICSSSelector[] added, String media) { - if (srcModel == null || srcModel.getStyleListeners() == null) - return; - - this.fSrcModel = srcModel; - this.fRemoved = removed; - this.fAdded = added; - this.fMedia = media; - - // prohibit delivering to srcModel - fVisited.clear(); - fVisited.add(srcModel); - Object[] listeners = srcModel.getStyleListeners().toArray(); - for (int i = 0; i < listeners.length; i++) { - visit((ICSSStyleListener) listeners[i]); - } - } - - /** - * - */ - public void fireTo(ICSSStyleListener listener, ICSSModel srcModel, ICSSSelector[] removed, ICSSSelector[] added, String media) { - this.fSrcModel = srcModel; - this.fRemoved = removed; - this.fAdded = added; - this.fMedia = media; - - // prohibit delivering to srcModel - fVisited.clear(); - // visited.add(srcModel); : because looping problem - visit(listener); - } - - /** - * - */ - public void fireUpdate(ICSSModel srcModel) { - if (srcModel == null || srcModel.getStyleListeners() == null) - return; - - this.fSrcModel = srcModel; - - // prohibit delivering to srcModel - fVisited.clear(); - fVisited.add(srcModel); - Object[] listeners = srcModel.getStyleListeners().toArray(); - for (int i = 0; i < listeners.length; i++) { - visitUpdate((ICSSStyleListener) listeners[i]); - } - } - - /** - * - */ - public void fireUpdateTo(ICSSStyleListener listener, ICSSModel srcModel) { - if (srcModel == null || srcModel.getStyleListeners() == null) - return; - - this.fSrcModel = srcModel; - - // prohibit delivering to srcModel - fVisited.clear(); - // visited.add(srcModel); - visitUpdate(listener); - } - - /** - * - */ - protected void visit(ICSSStyleListener listener) { - if (listener == null || fVisited.contains(listener)) - return; - - // fire event to listener - listener.styleChanged(fSrcModel, fRemoved, fAdded, fMedia); - fVisited.add(listener); - - // traverse notifier - if (listener instanceof ICSSStyleNotifier) { - ICSSStyleNotifier notifier = (ICSSStyleNotifier) listener; - if (notifier.getStyleListeners() != null) { - Object[] listeners = notifier.getStyleListeners().toArray(); - for (int i = 0; i < listeners.length; i++) { - visit((ICSSStyleListener) listeners[i]); - } - } - } - } - - /** - * - */ - protected void visitUpdate(ICSSStyleListener listener) { - if (listener == null || fVisited.contains(listener)) - return; - - // fire event to listener - listener.styleUpdate(fSrcModel); - fVisited.add(listener); - - // traverse notifier - if (listener instanceof ICSSStyleNotifier) { - ICSSStyleNotifier notifier = (ICSSStyleNotifier) listener; - if (notifier.getStyleListeners() != null) { - Object[] listeners = notifier.getStyleListeners().toArray(); - for (int i = 0; i < listeners.length; i++) { - visitUpdate((ICSSStyleListener) listeners[i]); - } - } - } - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/eventimpl/CSSStyleNotifyAdapter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/eventimpl/CSSStyleNotifyAdapter.java deleted file mode 100644 index 0633b1029b..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/eventimpl/CSSStyleNotifyAdapter.java +++ /dev/null @@ -1,174 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.eventimpl; - - - -import java.util.Iterator; -import java.util.Vector; - -import org.eclipse.wst.css.core.internal.event.ICSSStyleListener; -import org.eclipse.wst.css.core.internal.event.ICSSStyleNotifier; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSSelector; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleSheet; -import org.eclipse.wst.css.core.internal.util.ImportedCollector; -import org.eclipse.wst.css.core.internal.util.SelectorsCollector; - - -/** - * - */ -public class CSSStyleNotifyAdapter implements ICSSStyleNotifier { - - protected java.util.Vector listeners; - protected final org.eclipse.wst.css.core.internal.provisional.document.ICSSModel model; - protected boolean recording = false; - - /** - * - */ - public CSSStyleNotifyAdapter(ICSSModel model) { - super(); - this.model = model; - } - - /** - * - */ - public void addStyleListener(ICSSStyleListener listener) { - if (listener == null) - return; - - if (listeners == null) - listeners = new Vector(); - if (!listeners.contains(listener)) { - - // send new selectors event to listener - ImportedCollector trav = new ImportedCollector(); - trav.apply(model.getDocument()); - Iterator it = trav.getExternals().iterator(); - while (it.hasNext()) { - ICSSStyleSheet sheet = (ICSSStyleSheet) it.next(); - // collect selectors - SelectorsCollector selTrav = new SelectorsCollector(); - selTrav.apply(sheet); - int nSel = selTrav.getSelectors().size(); - ICSSSelector[] added = new ICSSSelector[nSel]; - for (int i = 0; i < nSel; i++) - added[i] = (ICSSSelector) selTrav.getSelectors().get(i); - - // fire event - CSSStyleEventDeliverer deliverer = new CSSStyleEventDeliverer(); - deliverer.fireTo(listener, sheet.getModel(), null, added, null/* - * media - * will - * be - * implemented - * in - * the - * future - */); - } - - // add listener - listeners.add(listener); - } - } - - /** - * - */ - public void beginRecording() { - recording = true; - } - - /** - * - */ - public void endRecording() { - recording = false; - } - - /** - * - */ - public void fire(ICSSSelector[] removed, ICSSSelector[] added, String media) { - // send selector changed event - CSSStyleEventDeliverer deliv = new CSSStyleEventDeliverer(); - deliv.fire(model, removed, added, null); - - } - - /** - * - */ - public java.util.List getStyleListeners() { - return listeners; - } - - /** - */ - public boolean isRecording() { - return recording; - } - - /** - * - */ - public void removeStyleListener(ICSSStyleListener listener) { - if (listener == null) - return; - - if (listeners.contains(listener)) { - listeners.remove(listener); - - // send old selectors event to listener - ImportedCollector trav = new ImportedCollector(); - trav.apply(model.getDocument()); - Iterator it = trav.getExternals().iterator(); - while (it.hasNext()) { - ICSSStyleSheet sheet = (ICSSStyleSheet) it.next(); - // collect selectors - SelectorsCollector selTrav = new SelectorsCollector(); - selTrav.apply(sheet); - int nSel = selTrav.getSelectors().size(); - ICSSSelector[] removed = new ICSSSelector[nSel]; - for (int i = 0; i < nSel; i++) - removed[i] = (ICSSSelector) selTrav.getSelectors().get(i); - - // fire event - CSSStyleEventDeliverer deliverer = new CSSStyleEventDeliverer(); - deliverer.fireTo(listener, sheet.getModel(), removed, null, null/* - * media - * will - * be - * implemented - * in - * the - * future - */); - } - } - } - - /** - * - */ - public void styleChanged(org.eclipse.wst.css.core.internal.provisional.document.ICSSModel srcModel, org.eclipse.wst.css.core.internal.provisional.document.ICSSSelector[] removed, org.eclipse.wst.css.core.internal.provisional.document.ICSSSelector[] added, java.lang.String media) { - } - - /** - * - */ - public void styleUpdate(org.eclipse.wst.css.core.internal.provisional.document.ICSSModel srcModel) { - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/format/FormatProcessorCSS.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/format/FormatProcessorCSS.java deleted file mode 100644 index 797d07646f..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/format/FormatProcessorCSS.java +++ /dev/null @@ -1,123 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2007 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.format; - -import java.util.List; - -import org.eclipse.jface.text.DocumentRewriteSession; -import org.eclipse.jface.text.DocumentRewriteSessionType; -import org.eclipse.jface.text.IDocumentExtension4; -import org.eclipse.wst.css.core.internal.formatter.CSSFormatUtil; -import org.eclipse.wst.css.core.internal.formatter.CSSSourceFormatter; -import org.eclipse.wst.css.core.internal.formatter.CSSSourceFormatterFactory; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSDocument; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -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.provisional.INodeNotifier; -import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; -import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; -import org.w3c.dom.Node; - - -public class FormatProcessorCSS extends AbstractStructuredFormatProcessor { - /* - * Max length of text to be formatted to be considered a "small change" - * Used for document rewrite session type. - */ - private final int MAX_SMALL_FORMAT_SIZE = 1000; - - protected String getFileExtension() { - return "css"; //$NON-NLS-1$ - } - - public void formatModel(IStructuredModel structuredModel, int start, int length) { - CSSFormatUtil formatUtil = CSSFormatUtil.getInstance(); - if (structuredModel instanceof ICSSModel) { - // BUG102822 take advantage of IDocumentExtension4 - IDocumentExtension4 docExt4 = null; - if (structuredModel.getStructuredDocument() instanceof IDocumentExtension4) { - docExt4 = (IDocumentExtension4) structuredModel.getStructuredDocument(); - } - DocumentRewriteSession rewriteSession = null; - - try { - DocumentRewriteSessionType rewriteType = (length > MAX_SMALL_FORMAT_SIZE) ? DocumentRewriteSessionType.UNRESTRICTED : DocumentRewriteSessionType.UNRESTRICTED_SMALL; - rewriteSession = (docExt4 == null || docExt4.getActiveRewriteSession() != null) ? null : docExt4.startRewriteSession(rewriteType); - - ICSSDocument doc = ((ICSSModel) structuredModel).getDocument(); - CSSSourceFormatter formatter = CSSSourceFormatterFactory.getInstance().getSourceFormatter((INodeNotifier) doc); - StringBuffer buf = formatter.format(doc); - if (buf != null) { - int startOffset = ((IndexedRegion) doc).getStartOffset(); - int endOffset = ((IndexedRegion) doc).getEndOffset(); - formatUtil.replaceSource(doc.getModel(), startOffset, endOffset - startOffset, buf.toString()); - } - } - finally { - // BUG102822 take advantage of IDocumentExtension4 - if (docExt4 != null && rewriteSession != null) - docExt4.stopRewriteSession(rewriteSession); - } - } - else if (structuredModel instanceof IDOMModel) { - List cssnodes = formatUtil.collectCSSNodes(structuredModel, start, length); - if (cssnodes != null && !cssnodes.isEmpty()) { - ICSSModel model = null; - - // BUG102822 take advantage of IDocumentExtension4 - IDocumentExtension4 docExt4 = null; - if (structuredModel.getStructuredDocument() instanceof IDocumentExtension4) { - docExt4 = (IDocumentExtension4) structuredModel.getStructuredDocument(); - } - DocumentRewriteSession rewriteSession = null; - - try { - DocumentRewriteSessionType rewriteType = (length > MAX_SMALL_FORMAT_SIZE) ? DocumentRewriteSessionType.UNRESTRICTED : DocumentRewriteSessionType.UNRESTRICTED_SMALL; - rewriteSession = (docExt4 == null || docExt4.getActiveRewriteSession() != null) ? null : docExt4.startRewriteSession(rewriteType); - - for (int i = 0; i < cssnodes.size(); i++) { - ICSSNode node = (ICSSNode) cssnodes.get(i); - CSSSourceFormatter formatter = CSSSourceFormatterFactory.getInstance().getSourceFormatter((INodeNotifier) node); - StringBuffer buf = formatter.format(node); - if (buf != null) { - int startOffset = ((IndexedRegion) node).getStartOffset(); - int endOffset = ((IndexedRegion) node).getEndOffset(); - if (model == null) { - model = node.getOwnerDocument().getModel(); - } - formatUtil.replaceSource(model, startOffset, endOffset - startOffset, buf.toString()); - } - } - } - finally { - // BUG102822 take advantage of IDocumentExtension4 - if (docExt4 != null && rewriteSession != null) - docExt4.stopRewriteSession(rewriteSession); - } - } - } - } - - public IStructuredFormatPreferences getFormatPreferences() { - return null; - } - - protected IStructuredFormatter getFormatter(Node node) { - return null; - } - - protected void refreshFormatPreferences() { - } -} 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 deleted file mode 100644 index b9f71e3c2c..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/AbstractCSSSourceFormatter.java +++ /dev/null @@ -1,982 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2007 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.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; -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.util.CSSLinkConverter; -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.INodeNotifier; -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; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList; -import org.eclipse.wst.sse.core.internal.util.Assert; - -/** - * - */ -public abstract class AbstractCSSSourceFormatter implements CSSSourceGenerator { - - protected final static short GENERATE = 0; - protected final static short FORMAT = 1; - protected final static short CLEANUP = 2; - protected static short strategy; - - /** - * - */ - AbstractCSSSourceFormatter() { - super(); - } - - /** - * - */ - protected void appendDelimBefore(ICSSNode node, CompoundRegion toAppend, StringBuffer source) { - if (node == null || source == null) - return; - if (isCleanup() && !getCleanupStrategy(node).isFormatSource()) - return; // for not formatting case on cleanup action - String delim = getLineDelimiter(node); - - boolean needIndent = !(node instanceof ICSSStyleSheet); - if (toAppend == null) { - source.append(delim); - source.append(getIndent(node)); - if (needIndent) - source.append(getIndentString()); - } - else { - String type = toAppend.getType(); - if (type == CSSRegionContexts.CSS_COMMENT) { - RegionIterator it = new RegionIterator(toAppend.getDocumentRegion(), toAppend.getTextRegion()); - it.prev(); - ITextRegion prev = it.prev(); - if (prev == null || (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(getIndentString()); - } - else { - appendSpaceBefore(node, toAppend.getText(), source); - } - } - 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(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 > preferences.getInt(CSSCorePreferenceNames.LINE_WIDTH)) { - source.append(getLineDelimiter(node)); - source.append(getIndent(node)); - if (needIndent) - source.append(getIndentString()); - } - } - } - else if (type == CSSRegionContexts.CSS_RBRACE || type == CSSRegionContexts.CSS_LBRACE) { - source.append(delim); - source.append(getIndent(node)); - } - else { - source.append(delim); - source.append(getIndent(node)); - if (needIndent) - source.append(getIndentString()); - } - } - } - - /** - * - */ - protected void appendSpaceBefore(ICSSNode node, CompoundRegion toAppend, StringBuffer source) { - if (node == null || toAppend == null || source == null) - return; - if (isCleanup() && !getCleanupStrategy(node).isFormatSource()) - return; // for not formatting case on cleanup action - String type = toAppend.getType(); - - 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 - String delim = getLineDelimiter(node); - RegionIterator it = new RegionIterator(toAppend.getDocumentRegion(), toAppend.getTextRegion()); - it.prev(); - ITextRegion prev = it.prev(); - 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(getIndentString()); - } - else { - appendSpaceBefore(node, toAppend.getText(), source); - } - } - 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 = 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 > preferences.getInt(CSSCorePreferenceNames.LINE_WIDTH)) { - source.append(getLineDelimiter(node)); - source.append(getIndent(node)); - if (needIndent) - 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 (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 > preferences.getInt(CSSCorePreferenceNames.LINE_WIDTH)) { - source.append(getLineDelimiter(node)); - source.append(getIndent(node)); - if (needIndent) - source.append(getIndentString()); - } - } - } - else if (CSSRegionContexts.CSS_FOREIGN_ELEMENT == type) { - return; - } - else - appendSpaceBefore(node, toAppend.getText(), source); - } - - /** - * - */ - protected void appendSpaceBefore(ICSSNode node, String toAppend, StringBuffer source) { - if (node == null || source == null) - return; - if (isCleanup() && !getCleanupStrategy(node).isFormatSource()) - return; // for not formatting case on cleanup action - - 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() && */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 > preferences.getInt(CSSCorePreferenceNames.LINE_WIDTH)) { - source.append(getLineDelimiter(node)); - source.append(getIndent(node)); - source.append(getIndentString()); - return; - } - } - source.append(" ");//$NON-NLS-1$ - } - - /** - * - */ - public final StringBuffer cleanup(ICSSNode node) { - short oldStrategy = strategy; - strategy = CLEANUP; - StringBuffer source = formatProc(node); - strategy = oldStrategy; - - return source; - } - - /** - * - */ - public final StringBuffer cleanup(ICSSNode node, IRegion region) { - short oldStrategy = strategy; - strategy = CLEANUP; - StringBuffer source = formatProc(node, region); - strategy = oldStrategy; - - return source; - } - - /** - * - */ - protected String decoratedIdentRegion(CompoundRegion region, CSSCleanupStrategy stgy) { - if (isFormat()) - return region.getText(); - - String text = region.getText(); - if (region.getType() == CSSRegionContexts.CSS_STRING || region.getType() == CSSRegionContexts.CSS_URI) - return decoratedRegion(region, 0, stgy); - - if (isCleanup()) { - if (stgy.getIdentCase() == CSSCleanupStrategy.ASIS || region.getType() == CSSRegionContexts.CSS_COMMENT) - return text; - else if (stgy.getIdentCase() == CSSCleanupStrategy.UPPER) - 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(); - } - - /** - * - */ - protected String decoratedPropNameRegion(CompoundRegion region, CSSCleanupStrategy stgy) { - if (isFormat()) - return region.getText(); - - String text = region.getText(); - if (region.getType() == CSSRegionContexts.CSS_STRING || region.getType() == CSSRegionContexts.CSS_URI) - return decoratedRegion(region, 1, stgy); - if (isCleanup()) { - if (stgy.getPropNameCase() == CSSCleanupStrategy.ASIS || region.getType() != CSSRegionContexts.CSS_DECLARATION_PROPERTY) - return text; - else if (stgy.getPropNameCase() == CSSCleanupStrategy.UPPER) - return text.toUpperCase(); - else - return text.toLowerCase(); - } - Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences(); - - 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(); - } - - /** - * - */ - protected String decoratedPropValueRegion(CompoundRegion region, CSSCleanupStrategy stgy) { - if (isFormat()) - return region.getText(); - - String text = region.getText(); - String type = region.getType(); - if (type == CSSRegionContexts.CSS_STRING || type == CSSRegionContexts.CSS_URI || type == CSSRegionContexts.CSS_DECLARATION_VALUE_URI) - return decoratedRegion(region, 2, stgy); - if (isCleanup()) { - if (stgy.getPropValueCase() != CSSCleanupStrategy.ASIS) { - if (type == CSSRegionContexts.CSS_COMMENT) { - } - else { - if (stgy.getPropValueCase() == CSSCleanupStrategy.UPPER) - text = text.toUpperCase(); - else - text = text.toLowerCase(); - } - } - } - return text; - } - - /** - * - */ - protected String decoratedRegion(CompoundRegion region, int type, CSSCleanupStrategy stgy) { - if (isFormat()) - return region.getText(); - - Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences(); - String text = region.getText(); - String regionType = region.getType(); - if (regionType == CSSRegionContexts.CSS_URI || regionType == CSSRegionContexts.CSS_DECLARATION_VALUE_URI) { - String uri = CSSLinkConverter.stripFunc(text); - - 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() && 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()) { - text = func + CSSLinkConverter.removeFunc(text) + ")";//$NON-NLS-1$ - } - else { - text = func + uri + ")";//$NON-NLS-1$ - } - } - 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$ - text = quote + text.substring(1); - else - text = quote + text; - } - // ending - if (!text.endsWith(quote)) { - if (text.endsWith("\"") || text.endsWith("\'")) //$NON-NLS-1$ //$NON-NLS-2$ - text = text.substring(0, text.length() - 1) + quote; - else - text = text + quote; - } - } - return text; - } - - /** - * - */ - public final StringBuffer format(ICSSNode node) { - short oldStrategy = strategy; - strategy = FORMAT; - StringBuffer source = formatProc(node); - strategy = oldStrategy; - - return source; - } - - /** - * - */ - public final StringBuffer format(ICSSNode node, IRegion region) { - short oldStrategy = strategy; - strategy = FORMAT; - StringBuffer source = formatProc(node, region); - strategy = oldStrategy; - - return source; - } - - /** - * - */ - public StringBuffer formatAttrChanged(ICSSNode node, ICSSAttr attr, boolean insert, AttrChangeContext context) { - return new StringBuffer(insert && (attr != null) ? attr.getValue() : "");//$NON-NLS-1$ - } - - /** - * Generate or format source between children('child' and its previous - * sibling) and append to string buffer - */ - abstract protected void formatBefore(ICSSNode node, ICSSNode child, String toAppend, StringBuffer source, IRegion exceptFor); - - /** - * Generate or format source between children('child' and its previous - * sibling) and append to string buffer - */ - public final StringBuffer formatBefore(ICSSNode node, ICSSNode child, IRegion exceptFor) { - Assert.isTrue(child == null || child.getParentNode() == node); - StringBuffer buf = new StringBuffer(); - formatBefore(node, child, /* (child != null) ? (child.getCssText()) : */"", buf, exceptFor);//$NON-NLS-1$ - return buf; - } - - /** - * Generate or format source between children('child' and its previous - * sibling) and append to string buffer - */ - protected abstract void formatBefore(ICSSNode node, ICSSNode child, IRegion region, String toAppend, StringBuffer source); - - /** - * - */ - protected final void formatChildren(ICSSNode node, StringBuffer source) { - ICSSNode child = node.getFirstChild(); - boolean first = true; - while (child != null) { - // append child - CSSSourceFormatter formatter = (CSSSourceFormatter) ((INodeNotifier) child).getAdapterFor(CSSSourceFormatter.class); - if (formatter == null) { - formatter = CSSSourceFormatterFactory.getInstance().getSourceFormatter((INodeNotifier) child); - } - StringBuffer childSource = ((AbstractCSSSourceFormatter) formatter).formatProc(child); - if (!first) { - formatBefore(node, child, new String(childSource), source, null); - } - source.append(childSource); - // append between children - child = child.getNextSibling(); - first = false; - } - } - - /** - * - */ - protected final void formatChildren(ICSSNode node, IRegion region, StringBuffer source) { - ICSSNode child = node.getFirstChild(); - int start = region.getOffset(); - int end = region.getOffset() + region.getLength(); - boolean first = true; - while (child != null) { - int curEnd = ((IndexedRegion) child).getEndOffset(); - StringBuffer childSource = null; - boolean toFinish = false; - if (start < curEnd) { - int curStart = ((IndexedRegion) child).getStartOffset(); - if (curStart < end) { - // append child - CSSSourceFormatter formatter = (CSSSourceFormatter) ((INodeNotifier) child).getAdapterFor(CSSSourceFormatter.class); - if (formatter == null) { - formatter = CSSSourceFormatterFactory.getInstance().getSourceFormatter((INodeNotifier) child); - } - if (includes(region, curStart, curEnd)) - childSource = ((AbstractCSSSourceFormatter) formatter).formatProc(child); - else - childSource = ((AbstractCSSSourceFormatter) formatter).formatProc(child, overlappedRegion(region, curStart, curEnd)); - } - else - toFinish = true; - } - // append between children - if (!first) { - curEnd = ((IndexedRegion) child).getStartOffset(); // change - // only - // start - if (start < curEnd) { - int curStart = ((IndexedRegion) child.getPreviousSibling()).getEndOffset(); - if (curStart < end) { - String toAppend = (childSource != null) ? new String(childSource) : "";//$NON-NLS-1$ - if (includes(region, curStart, curEnd)) - formatBefore(node, child, toAppend, source, null); - else - formatBefore(node, child, overlappedRegion(region, curStart, curEnd), toAppend, source); - } - } - } - if (childSource != null) { - source.append(childSource); - } - first = false; - if (toFinish) - break; - child = child.getNextSibling(); - } - } - - /** - * Generate or format source after the last child and append to string - * buffer - */ - protected abstract void formatPost(ICSSNode node, StringBuffer source); - - /** - * Generate or format source after the last child and append to string - * buffer - */ - protected abstract void formatPost(ICSSNode node, IRegion region, StringBuffer source); - - /** - * Generate or format source before the first child and append to string - * buffer - */ - protected abstract void formatPre(ICSSNode node, StringBuffer source); - - /** - * Generate or format source before the first child and append to string - * buffer - */ - abstract protected void formatPre(ICSSNode node, IRegion region, StringBuffer source); - - /** - * - * @return java.lang.StringBuffer - * @param node - * org.eclipse.wst.css.core.model.interfaces.ICSSNode - */ - protected final StringBuffer formatProc(ICSSNode node) { - StringBuffer source = new StringBuffer(); - formatPre(node, source); - formatChildren(node, source); - formatPost(node, source); - return source; - } - - /** - * - * @return java.lang.StringBuffer - * @param node - * org.eclipse.wst.css.core.model.interfaces.ICSSNode - * @param region - * org.eclipse.jface.text.IRegion - */ - protected final StringBuffer formatProc(ICSSNode node, IRegion region) { - StringBuffer source = new StringBuffer(); - int curStart = ((IndexedRegion) node).getStartOffset(); - int curEnd = ((IndexedRegion) node).getEndOffset(); - if (node.getChildNodes().getLength() > 0) { - curEnd = ((IndexedRegion) node.getFirstChild()).getStartOffset(); - if (overlaps(region, curStart, curEnd)) { - if (includes(region, curStart, curEnd)) - formatPre(node, source); - else - formatPre(node, overlappedRegion(region, curStart, curEnd), source); - } - curStart = curEnd; - curEnd = ((IndexedRegion) node.getLastChild()).getEndOffset(); - if (overlaps(region, curStart, curEnd)) { - if (includes(region, curStart, curEnd)) - formatChildren(node, source); - else - formatChildren(node, overlappedRegion(region, curStart, curEnd), source); - } - curStart = curEnd; - curEnd = ((IndexedRegion) node).getEndOffset(); - if (overlaps(region, curStart, curEnd)) { - if (includes(region, curStart, curEnd)) - formatPost(node, source); - else - formatPost(node, overlappedRegion(region, curStart, curEnd), source); - } - } - else { - curEnd = getChildInsertPos(node); - if (overlaps(region, curStart, curEnd)) { - if (includes(region, curStart, curEnd)) - formatPre(node, source); - else - formatPre(node, overlappedRegion(region, curStart, curEnd), source); - } - curStart = curEnd; - curEnd = ((IndexedRegion) node).getEndOffset(); - if (overlaps(region, curStart, curEnd)) { - if (includes(region, curStart, curEnd)) - formatPost(node, source); - else - formatPost(node, overlappedRegion(region, curStart, curEnd), source); - } - } - return source; - } - - /** - * - */ - public int getAttrInsertPos(ICSSNode node, String attrName) { - return -1; - } - - /** - * Insert the method's description here. - * - * @return org.eclipse.wst.css.core.internal.cleanup.CSSCleanupStrategy - * @param node - * org.eclipse.wst.css.core.model.interfaces.ICSSNode - */ - protected CSSCleanupStrategy getCleanupStrategy(ICSSNode node) { - CSSCleanupStrategy currentStrategy = CSSCleanupStrategyImpl.getInstance(); - ICSSDocument doc = node.getOwnerDocument(); - if (doc == null) - return currentStrategy; - ICSSModel model = doc.getModel(); - if (model == null) - return currentStrategy; - if (model.getStyleSheetType() != ICSSModel.EXTERNAL) { - // TODO - TRANSITION Nakamori-san, or Kit, how can we move to - // "HTML" plugin? - // can we subclass? - // currentStrategy = CSSInHTMLCleanupStrategyImpl.getInstance(); - } - return currentStrategy; - } - - /** - * - */ - protected String getIndent(ICSSNode node) { - if (node == null) - return "";//$NON-NLS-1$ - ICSSNode parent = node.getParentNode(); - if (node instanceof ICSSAttr) - parent = ((ICSSAttr) node).getOwnerCSSNode(); - if (parent == null) - return "";//$NON-NLS-1$ - if (node instanceof org.w3c.dom.css.CSSStyleDeclaration) - parent = parent.getParentNode(); - if (parent == null) - return "";//$NON-NLS-1$ - - String parentIndent = getIndent(parent); - if (parent instanceof org.w3c.dom.css.CSSRule) - return parentIndent + getIndentString(); - if (node.getParentNode() instanceof ICSSStyleDeclaration) - return parentIndent + getIndentString(); - return parentIndent; - } - - /** - * - */ - protected int getLastLineLength(ICSSNode node, StringBuffer source) { - if (node == null || source == null) - return 0; - String delim = getLineDelimiter(node); - String str = new String(source); - int n = str.lastIndexOf(delim); - if (n < 0) - return str.length(); - - return str.length() - n - delim.length(); - } - - /** - * - * @return int - * @param node - * org.eclipse.wst.css.core.model.interfaces.ICSSNode - * @param insertPos - * int - */ - public int getLengthToReformatAfter(ICSSNode node, int insertPos) { - if (node == null) - return 0; - IndexedRegion nnode = (IndexedRegion) node; - if (insertPos < 0 || !nnode.contains(insertPos)) - return 0; - - IStructuredDocumentRegion flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(insertPos); - if (flatNode == null) - return 0; - ITextRegion region = flatNode.getRegionAtCharacterOffset(insertPos); - if (region == null) - return 0; - RegionIterator it = new RegionIterator(flatNode, region); - boolean found = false; - while (it.hasNext()) { - region = it.next(); - // if (region.getType() != CSSRegionContexts.CSS_S && - // region.getType() != CSSRegionContexts.CSS_DELIMITER && - // region.getType() != - // CSSRegionContexts.CSS_DECLARATION_DELIMITER) { - if (region.getType() != CSSRegionContexts.CSS_S) { - found = true; - break; - } - } - int pos = (found ? it.getStructuredDocumentRegion().getStartOffset(region) : it.getStructuredDocumentRegion().getTextEndOffset(region)) - insertPos; - return (pos >= 0) ? pos : 0; - } - - /** - * - * @return int - * @param node - * org.eclipse.wst.css.core.model.interfaces.ICSSNode - * @param insertPos - * int - */ - public int getLengthToReformatBefore(ICSSNode node, int insertPos) { - if (node == null) - return 0; - IndexedRegion nnode = (IndexedRegion) node; - if (insertPos <= 0 || !nnode.contains(insertPos - 1)) - return 0; - - IStructuredDocumentRegion flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(insertPos - 1); - if (flatNode == null) - return 0; - ITextRegion region = flatNode.getRegionAtCharacterOffset(insertPos - 1); - if (region == null) - return 0; - RegionIterator it = new RegionIterator(flatNode, region); - boolean found = false; - while (it.hasPrev()) { - region = it.prev(); - // if (region.getType() != CSSRegionContexts.CSS_S && - // region.getType() != CSSRegionContexts.CSS_DELIMITER && - // region.getType() != - // CSSRegionContexts.CSS_DECLARATION_DELIMITER) { - if (region.getType() != CSSRegionContexts.CSS_S) { - found = true; - break; - } - } - int pos = insertPos - (found ? it.getStructuredDocumentRegion().getTextEndOffset(region) : it.getStructuredDocumentRegion().getStartOffset(region)); - // flatNode = it.getStructuredDocumentRegion(); - // if (found) { - // if (region.getLength() != region.getTextLength()) { - // pos = insertPos - flatNode.getTextEndOffset(region); - // } else { - // pos = insertPos - flatNode.getEndOffset(region); - // } - // } else { - // pos = insertPos - flatNode.getStartOffset(region); - // } - return (pos >= 0) ? pos : 0; - } - - /** - * - */ - String getLineDelimiter(ICSSNode node) { - ICSSModel model = (node != null) ? node.getOwnerDocument().getModel() : null; - return (model != null) ? model.getStructuredDocument().getLineDelimiter() : "\n"; //$NON-NLS-1$ - - // TODO : check whether to use model.getLineDelimiter() or - // model.getStructuredDocument().getLineDelimiter() - } - - /** - * - */ - protected CompoundRegion[] getOutsideRegions(IStructuredDocument model, IRegion reg) { - CompoundRegion[] ret = new CompoundRegion[2]; - RegionIterator it = new RegionIterator(model, reg.getOffset()); - it.prev(); - if (it.hasPrev()) { - ITextRegion textRegion = it.prev(); - IStructuredDocumentRegion documentRegion = it.getStructuredDocumentRegion(); - ret[0] = new CompoundRegion(documentRegion, textRegion); - } - else { - ret[0] = null; - } - it.reset(model, reg.getOffset() + reg.getLength()); - if (it.hasNext()) { - ITextRegion textRegion = it.next(); - IStructuredDocumentRegion documentRegion = it.getStructuredDocumentRegion(); - ret[1] = new CompoundRegion(documentRegion, textRegion); - } - else { - ret[1] = null; - } - return ret; - } - - /** - */ - protected CSSSourceGenerator getParentFormatter(ICSSNode node) { - ICSSNode parent = node.getParentNode(); - if (parent != null) { - CSSSourceGenerator formatter = (CSSSourceGenerator) ((INodeNotifier) parent).getAdapterFor(CSSSourceFormatter.class); - if (formatter == null) { - formatter = CSSSourceFormatterFactory.getInstance().getSourceFormatter((INodeNotifier) parent); - } - return formatter; - } - return null; - } - - /** - * - */ - protected CompoundRegion[] getRegions(IStructuredDocument model, IRegion reg, IRegion exceptFor, String pickupType) { - int start = reg.getOffset(); - int end = reg.getOffset() + reg.getLength(); - int startE = (exceptFor != null) ? exceptFor.getOffset() : -1; - int endE = (exceptFor != null) ? exceptFor.getOffset() + exceptFor.getLength() : 0; - - ArrayList list = new ArrayList(); - IStructuredDocumentRegion flatNode = model.getRegionAtCharacterOffset(start); - boolean pickuped = false; - while (flatNode != null && flatNode.getStartOffset() < end) { - ITextRegionList regionList = flatNode.getRegions(); - Iterator it = regionList.iterator(); - while (it.hasNext()) { - ITextRegion region = (ITextRegion) it.next(); - if (flatNode.getStartOffset(region) < start) - continue; - if (end <= flatNode.getStartOffset(region)) - break; - if (startE >= 0 && startE <= flatNode.getStartOffset(region) && flatNode.getEndOffset(region) <= endE) - continue; - if (region.getType() == CSSRegionContexts.CSS_COMMENT || region.getType() == CSSRegionContexts.CSS_CDC || region.getType() == CSSRegionContexts.CSS_CDO) - list.add(new CompoundRegion(flatNode, region)); - else if (!pickuped && region.getType() == pickupType) { - list.add(new CompoundRegion(flatNode, region)); - pickuped = true; - } - } - flatNode = flatNode.getNext(); - } - if (list.size() > 0) { - CompoundRegion[] regions = new CompoundRegion[list.size()]; - list.toArray(regions); - return regions; - } - return new CompoundRegion[0]; - } - - /** - * - */ - protected CompoundRegion[] getRegionsWithoutWhiteSpaces(IStructuredDocument model, IRegion reg, CSSCleanupStrategy stgy) { - int start = reg.getOffset(); - int end = reg.getOffset() + reg.getLength() - 1; - ArrayList list = new ArrayList(); - IStructuredDocumentRegion flatNode = model.getRegionAtCharacterOffset(start); - while (flatNode != null && flatNode.getStartOffset() <= end) { - ITextRegionList regionList = flatNode.getRegions(); - Iterator it = regionList.iterator(); - while (it.hasNext()) { - ITextRegion region = (ITextRegion) it.next(); - if (flatNode.getStartOffset(region) < start) - continue; - if (end < flatNode.getStartOffset(region)) - break; - if (region.getType() != CSSRegionContexts.CSS_S || (isCleanup() && !stgy.isFormatSource())) // for - // not - // formatting - // case - // on - // cleanup - // action - list.add(new CompoundRegion(flatNode, region)); - } - flatNode = flatNode.getNext(); - } - if (list.size() > 0) { - CompoundRegion[] regions = new CompoundRegion[list.size()]; - list.toArray(regions); - return regions; - } - return new CompoundRegion[0]; - } - - /** - * - */ - public static boolean includes(IRegion region, int start, int end) { - if (region == null) - return false; - - return (region.getOffset() <= start) && (end <= region.getOffset() + region.getLength()); - } - - /** - * - * @return boolean - */ - protected static boolean isCleanup() { - return strategy == CLEANUP; - } - - /** - * - * @return boolean - */ - protected static boolean isFormat() { - return strategy == FORMAT; - } - - /** - * - */ - protected boolean isIncludesPreEnd(ICSSNode node, IRegion region) { - return (node.getFirstChild() != null && ((IndexedRegion) node.getFirstChild()).getStartOffset() == (region.getOffset() + region.getLength())); - } - - /** - * - */ - static protected boolean needS(CompoundRegion region) { - return (region != null && region.getType() != CSSRegionContexts.CSS_S); - } - - /** - * - */ - public static IRegion overlappedRegion(IRegion region, int start, int end) { - if (overlaps(region, start, end)) { - int offset = (region.getOffset() <= start) ? start : region.getOffset(); - int length = ((end <= region.getOffset() + region.getLength()) ? end : region.getOffset() + region.getLength()) - offset; - return new FormatRegion(offset, length); - } - return null; - } - - /** - * - */ - public static boolean overlaps(IRegion region, int start, int end) { - if (region == null) - return false; - - return (start < region.getOffset() + region.getLength()) && (region.getOffset() < end); - } - - private String getIndentString() { - StringBuffer indent = new StringBuffer(); - - Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences(); - if (preferences != null) { - char indentChar = ' '; - String indentCharPref = preferences.getString(CSSCorePreferenceNames.INDENTATION_CHAR); - if (CSSCorePreferenceNames.TAB.equals(indentCharPref)) { - indentChar = '\t'; - } - int indentationWidth = preferences.getInt(CSSCorePreferenceNames.INDENTATION_SIZE); - - for (int i = 0; i < indentationWidth; i++) { - indent.append(indentChar); - } - } - return indent.toString(); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/AttrChangeContext.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/AttrChangeContext.java deleted file mode 100644 index 924a73e7b6..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/AttrChangeContext.java +++ /dev/null @@ -1,29 +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.formatter; - - - -/** - * - */ -public class AttrChangeContext { - - public int start, end; - - /** - * - */ - public AttrChangeContext() { - super(); - start = end = 0; - } -}
\ 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 deleted file mode 100644 index 141a9d49d7..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/AttrFormatter.java +++ /dev/null @@ -1,168 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.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; -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.util.CSSUtil; -import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; - - -/** - * - */ -public class AttrFormatter extends DefaultCSSSourceFormatter { - - private static AttrFormatter instance; - - /** - * - */ - AttrFormatter() { - super(); - } - - /** - * - */ - protected void formatPre(ICSSNode node, StringBuffer source) { - ICSSAttr attr = (ICSSAttr) node; - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - int end = ((IndexedRegion) node).getEndOffset(); - if (end > 0) { // format source - int start = ((IndexedRegion) node).getStartOffset(); - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, new FormatRegion(start, end - start), stgy); - - if (attr.getName().equals(ICSSStyleRule.SELECTOR) || attr.getName().equals(ICSSPageRule.SELECTOR)) { - for (int i = 0; i < regions.length; i++) { - if (i != 0) - appendSpaceBetween(node, regions[i - 1], regions[i], source); - source.append(decoratedRegion(regions[i], 0, stgy)); - } - } - else if (attr.getName().equals(ICSSImportRule.HREF)) { - for (int i = 0; i < regions.length; i++) { - if (i != 0) - appendSpaceBefore(node, regions[i], source); - source.append(decoratedPropValueRegion(regions[i], stgy)); - } - } - else if (attr.getName().equals(ICSSCharsetRule.ENCODING)) { - for (int i = 0; i < regions.length; i++) { - if (i != 0) - appendSpaceBefore(node, regions[i], source); - source.append(decoratedIdentRegion(regions[i], stgy)); - } - } - else if (attr.getName().equals(ICSSStyleDeclItem.IMPORTANT)) { - for (int i = 0; i < regions.length; i++) { - if (i != 0) - appendSpaceBefore(node, regions[i], source); - source.append(decoratedPropValueRegion(regions[i], stgy)); - } - } - else if (attr.getName() == null || attr.getName().length() == 0) { - for (int i = 0; i < regions.length; i++) { - if (i != 0) - appendSpaceBefore(node, regions[i], source); - source.append(decoratedIdentRegion(regions[i], stgy)); - } - } - else { - // counter attributes - for (int i = 0; i < regions.length; i++) { - if (i != 0) - appendSpaceBefore(node, regions[i], source); - source.append(decoratedPropValueRegion(regions[i], stgy)); - } - } - } - else { // generate source - Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences(); - - String value = attr.getValue(); - if (value == null) - value = "";//$NON-NLS-1$ - if (attr.getName().equals(ICSSStyleRule.SELECTOR) || attr.getName().equals(ICSSPageRule.SELECTOR)) { - } - else if (attr.getName().equals(ICSSImportRule.HREF)) { - String uri = org.eclipse.wst.css.core.internal.util.CSSLinkConverter.stripFunc(value); - 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$ - } - else { - value = func + uri + ")";//$NON-NLS-1$ - } - } - else if (attr.getName().equals(ICSSCharsetRule.ENCODING)) { - 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 (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 (CSSCorePlugin.getDefault().getPluginPreferences().getInt(CSSCorePreferenceNames.CASE_IDENTIFIER) == CSSCorePreferenceNames.UPPER) - value = value.toUpperCase(); - else - value = value.toLowerCase(); - } - else { - if (preferences.getInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.UPPER) - value = value.toUpperCase(); - else - value = value.toLowerCase(); - } - source.append(value); - } - } - - /** - * - */ - protected void formatPre(ICSSNode node, IRegion region, StringBuffer source) { - formatPre(node, source); - } - - /** - * - */ - public synchronized static AttrFormatter getInstance() { - if (instance == null) { - instance = new AttrFormatter(); - } - return instance; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/CSSFormatUtil.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/CSSFormatUtil.java deleted file mode 100644 index 880851941c..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/CSSFormatUtil.java +++ /dev/null @@ -1,165 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.formatter; - -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.wst.css.core.internal.provisional.adapters.ICSSModelAdapter; -import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleDeclarationAdapter; -import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleSheetAdapter; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; -import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; -import org.w3c.dom.Node; -import org.w3c.dom.Text; - - -public class CSSFormatUtil { - public List collectCSSNodes(IStructuredModel model, int start, int length) { - List nodes = new ArrayList(); - - IndexedRegion startNode = model.getIndexedRegion(start); - IndexedRegion endNode = model.getIndexedRegion(start + length - 1); - - if (startNode == null || endNode == null) { - return nodes; - } - - if (model instanceof ICSSModel && startNode instanceof ICSSNode && endNode instanceof ICSSNode) { - // CSS model - ICSSNode ca = getCommonAncestor((ICSSNode) startNode, (ICSSNode) endNode); - if (ca != null) { - for (ICSSNode node = ca.getFirstChild(); node != null && start + length < ((IndexedRegion) node).getStartOffset(); node = node.getNextSibling()) { - if (start < ((IndexedRegion) node).getEndOffset()) { - nodes.add(node); - } - } - } - } - else if (model instanceof IDOMModel && startNode instanceof IDOMNode && endNode instanceof IDOMNode) { - if (startNode instanceof Text) { - startNode = (IndexedRegion) ((Text) startNode).getParentNode(); - } - if (endNode instanceof Text) { - endNode = (IndexedRegion) ((Text) endNode).getParentNode(); - } - // HTML model, maybe - IDOMNode ca = (IDOMNode) getCommonAncestor((Node) startNode, (Node) endNode); - findCSS(nodes, ca); - } - - return nodes; - } - - /** - * getCommonAncestor method - * - * @return org.w3c.dom.Node - * @param node - * org.w3c.dom.Node - */ - private Node getCommonAncestor(Node node1, Node node2) { - if (node1 == null || node2 == null) - return null; - - for (Node na = node2; na != null; na = na.getParentNode()) { - for (Node ta = node1; ta != null; ta = ta.getParentNode()) { - if (ta == na) - return ta; - } - } - return null; // not found - } - - private void findCSS(List cssNodes, IDOMNode node) { - ICSSModelAdapter adapter; - adapter = (ICSSModelAdapter) node.getAdapterFor(IStyleSheetAdapter.class); - if (adapter != null) { - ICSSModel model = adapter.getModel(); - if (model != null && model.getStyleSheetType() == ICSSModel.EMBEDDED) { - cssNodes.add(model.getDocument()); - } - } - else { - adapter = (ICSSModelAdapter) node.getAdapterFor(IStyleDeclarationAdapter.class); - if (adapter != null) { - ICSSModel model = adapter.getModel(); - if (model != null && model.getStyleSheetType() == ICSSModel.INLINE) { - cssNodes.add(model.getDocument()); - } - } - } - - for (IDOMNode child = (IDOMNode) node.getFirstChild(); child != null; child = (IDOMNode) child.getNextSibling()) { - findCSS(cssNodes, child); - } - } - - private ICSSNode getCommonAncestor(ICSSNode nodeA, ICSSNode nodeB) { - if (nodeA == null || nodeB == null) { - return null; - } - - for (ICSSNode na = nodeA; na != null; na = na.getParentNode()) { - for (ICSSNode ta = nodeB; ta != null; ta = ta.getParentNode()) { - if (ta == na) { - return ta; - } - } - } - - return null; // not found - } - - /** - */ - public void replaceSource(IStructuredModel model, int offset, int length, String source) { - if (model == null) - return; - IStructuredDocument structuredDocument = model.getStructuredDocument(); - if (structuredDocument == null) - return; - if (offset >= 0 && length >= 0 && offset + length <= structuredDocument.getLength()) { - if (structuredDocument.containsReadOnly(offset, length)) - return; - if (source == null) - source = new String(); - // We use 'structuredDocument' as the requester object just so - // this and the other - // format-related 'repalceText' (in replaceSource) can use the - // same requester. - // Otherwise, if requester is not identical, - // the undo group gets "broken" into multiple pieces based - // on the requesters being different. Technically, any unique, - // common - // requester object would work. - structuredDocument.replaceText(structuredDocument, offset, length, source); - } - } - - public synchronized static CSSFormatUtil getInstance() { - if (fInstance == null) { - fInstance = new CSSFormatUtil(); - } - return fInstance; - } - - private CSSFormatUtil() { - super(); - } - - private static CSSFormatUtil fInstance; -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/CSSSourceFormatter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/CSSSourceFormatter.java deleted file mode 100644 index 04473a0234..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/CSSSourceFormatter.java +++ /dev/null @@ -1,48 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.formatter; - - - -import org.eclipse.jface.text.IRegion; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; - - -/** - * - */ -public interface CSSSourceFormatter { - - /** - * - */ - StringBuffer cleanup(ICSSNode node); - - /** - * - * @return java.lang.StringBuffer - * @param node - * org.eclipse.wst.css.core.model.interfaces.ICSSNode - * @param region - * org.eclipse.jface.text.IRegion - */ - StringBuffer cleanup(ICSSNode node, IRegion region); - - /** - * - */ - StringBuffer format(ICSSNode node); - - /** - * - */ - StringBuffer format(ICSSNode node, IRegion region); -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/CSSSourceFormatterFactory.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/CSSSourceFormatterFactory.java deleted file mode 100644 index 2f689c4af4..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/CSSSourceFormatterFactory.java +++ /dev/null @@ -1,81 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.formatter; - -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSPrimitiveValue; -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; - - -/** - * - */ -public class CSSSourceFormatterFactory { - /** - * - */ - private CSSSourceFormatterFactory() { - super(); - } - - /** - * - */ - public CSSSourceGenerator getSourceFormatter(INodeNotifier target) { - ICSSNode node = (ICSSNode) target; - short type = node.getNodeType(); - switch (type) { - case ICSSNode.CHARSETRULE_NODE : - return CharsetRuleFormatter.getInstance(); - case ICSSNode.FONTFACERULE_NODE : - return FontFaceRuleFormatter.getInstance(); - case ICSSNode.IMPORTRULE_NODE : - return ImportRuleFormatter.getInstance(); - case ICSSNode.MEDIALIST_NODE : - return MediaListFormatter.getInstance(); - case ICSSNode.MEDIARULE_NODE : - return MediaRuleFormatter.getInstance(); - case ICSSNode.PRIMITIVEVALUE_NODE : - ICSSPrimitiveValue value = (ICSSPrimitiveValue) node; - if (value.getPrimitiveType() == org.w3c.dom.css.CSSPrimitiveValue.CSS_COUNTER) - return CounterFormatter.getInstance(); - else if (value.getPrimitiveType() == org.w3c.dom.css.CSSPrimitiveValue.CSS_RECT) - return RectFormatter.getInstance(); - else if (value.getPrimitiveType() == org.w3c.dom.css.CSSPrimitiveValue.CSS_RGBCOLOR) - return RGBFormatter.getInstance(); - else - return PrimitiveValueFormatter.getInstance(); - case ICSSNode.PAGERULE_NODE : - return PageRuleFormatter.getInstance(); - case ICSSNode.STYLEDECLARATION_NODE : - return StyleDeclarationFormatter.getInstance(); - case ICSSNode.STYLEDECLITEM_NODE : - return StyleDeclItemFormatter.getInstance(); - case ICSSNode.STYLERULE_NODE : - return StyleRuleFormatter.getInstance(); - case ICSSNode.STYLESHEET_NODE : - return StyleSheetFormatter.getInstance(); - case ICSSNode.ATTR_NODE : - return AttrFormatter.getInstance(); - default : - return UnknownRuleFormatter.getInstance(); - } - } - - public synchronized static CSSSourceFormatterFactory getInstance() { - if (fInstance == null) { - fInstance = new CSSSourceFormatterFactory(); - } - return fInstance; - } - - private static CSSSourceFormatterFactory fInstance; -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/CSSSourceGenerator.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/CSSSourceGenerator.java deleted file mode 100644 index 992e8afdf3..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/CSSSourceGenerator.java +++ /dev/null @@ -1,61 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.formatter; - - - -import org.eclipse.jface.text.IRegion; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSAttr; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; - - -public interface CSSSourceGenerator extends CSSSourceFormatter { - - /** - * - */ - StringBuffer formatAttrChanged(ICSSNode node, ICSSAttr attr, boolean insert, AttrChangeContext region); - - /** - * - */ - StringBuffer formatBefore(ICSSNode node, ICSSNode child, IRegion exceptFor); - - /** - * - */ - int getAttrInsertPos(ICSSNode node, String attrName); - - /** - * - */ - int getChildInsertPos(ICSSNode node); - - /** - * - * @return int - * @param node - * org.eclipse.wst.css.core.model.interfaces.ICSSNode - * @param insertPos - * int - */ - int getLengthToReformatAfter(ICSSNode node, int insertPos); - - /** - * - * @return int - * @param node - * org.eclipse.wst.css.core.model.interfaces.ICSSNode - * @param insertPos - * int - */ - int getLengthToReformatBefore(ICSSNode node, int insertPos); -} 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 deleted file mode 100644 index 744eedc450..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/CharsetRuleFormatter.java +++ /dev/null @@ -1,184 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.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.util.CSSUtil; -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; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; - - -/** - * - */ -public class CharsetRuleFormatter extends DefaultCSSSourceFormatter { - - public final static java.lang.String CHARSET = "@charset";//$NON-NLS-1$ - private static CharsetRuleFormatter instance; - - /** - * - */ - CharsetRuleFormatter() { - super(); - } - - /** - * - */ - public StringBuffer formatAttrChanged(ICSSNode node, ICSSAttr attr, boolean insert, AttrChangeContext context) { - StringBuffer buf = new StringBuffer(); - if (node == null || attr == null) - return buf; - - if (!ICSSCharsetRule.ENCODING.equalsIgnoreCase(attr.getName())) - return buf; - - // get region to replace - if (context != null && ((IndexedRegion) node).getEndOffset() > 0) { - if (attr != null && ((IndexedRegion) attr).getEndOffset() > 0) { - IStructuredDocumentRegion flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(((IndexedRegion) attr).getStartOffset()); - ITextRegion region = flatNode.getRegionAtCharacterOffset(((IndexedRegion) attr).getStartOffset()); - RegionIterator it = new RegionIterator(flatNode, region); - it.prev(); - if (it.hasPrev()) { - ITextRegion prev = it.prev(); - if (prev.getType() == CSSRegionContexts.CSS_S) - context.start = it.getStructuredDocumentRegion().getStartOffset(prev); - else - context.start = it.getStructuredDocumentRegion().getStartOffset(region); - } else - context.start = it.getStructuredDocumentRegion().getStartOffset(region); - context.end = it.getStructuredDocumentRegion().getEndOffset(region); - } 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 { - context.start = flatNode.getEndOffset() + 1; - context.end = flatNode.getEndOffset(); - } - } - } - // generate text - if (insert) { - appendSpaceBefore(node, attr.getValue(), buf); - buf.append(attr.getValue()); - } - return buf; - } - - /** - * - */ - protected void formatPre(ICSSNode node, StringBuffer source) { - int end = ((IndexedRegion) node).getEndOffset(); - if (end > 0) { // format source - int start = ((IndexedRegion) node).getStartOffset(); - formatPre(node, new FormatRegion(start, end - start), source); - } else { // generate source - Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences(); - - String quote = preferences.getString(CSSCorePreferenceNames.FORMAT_QUOTE); - String str = CHARSET; - 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$ //$NON-NLS-2$ - appendSpaceBefore(node, str, source); - source.append(str); - } - } - - /** - * - */ - protected void formatPre(ICSSNode node, IRegion region, StringBuffer source) { - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - 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])) && !regions[i].getType().equals(CSSRegionContexts.CSS_DELIMITER)) - appendSpaceBefore(node, regions[i], source); - source.append(decoratedIdentRegion(regions[i], stgy)); - } - if (needS(outside[1]) && !isIncludesPreEnd(node, region)) - appendSpaceBefore(node, outside[1], source); - } - - /** - * - */ - public int getAttrInsertPos(ICSSNode node, String attrName) { - if (node == null || attrName == null || attrName.length() == 0) - return -1; - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - if (!ICSSCharsetRule.ENCODING.equalsIgnoreCase(attrName)) - return -1; - - ICSSAttr attr = (ICSSAttr) node.getAttributes().getNamedItem(ICSSCharsetRule.ENCODING); - if (attr != null && ((IndexedRegion) attr).getEndOffset() > 0) - return ((IndexedRegion) attr).getStartOffset(); - 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(); - } - - /** - * - */ - public int getChildInsertPos(ICSSNode node) { - int n = ((IndexedRegion) node).getEndOffset(); - if (n > 0) { - IStructuredDocumentRegion flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(n - 1); - if (flatNode.getRegionAtCharacterOffset(n - 1).getType() == CSSRegionContexts.CSS_DELIMITER) - return n - 1; - return n; - } - return -1; - } - - /** - * - */ - public synchronized static CharsetRuleFormatter getInstance() { - if (instance == null) - instance = new CharsetRuleFormatter(); - return instance; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/CompoundRegion.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/CompoundRegion.java deleted file mode 100644 index f883cf1f4d..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/CompoundRegion.java +++ /dev/null @@ -1,52 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.formatter; - -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; - -class CompoundRegion { - - CompoundRegion(IStructuredDocumentRegion documentRegion, ITextRegion textRegion) { - super(); - this.fDocumentRegion = documentRegion; - this.fTextRegion = textRegion; - } - - IStructuredDocumentRegion getDocumentRegion() { - return fDocumentRegion; - } - - ITextRegion getTextRegion() { - return fTextRegion; - } - - String getType() { - return fTextRegion.getType(); - } - - String getText() { - return fDocumentRegion.getText(fTextRegion); - } - - int getStartOffset() { - return fDocumentRegion.getStartOffset(fTextRegion); - } - - int getEndOffset() { - return fDocumentRegion.getEndOffset(fTextRegion); - } - - - private IStructuredDocumentRegion fDocumentRegion; - private ITextRegion fTextRegion; - -} 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 deleted file mode 100644 index c31725b66e..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/CounterFormatter.java +++ /dev/null @@ -1,319 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.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.util.CSSUtil; -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; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; - - -/** - * - */ -public class CounterFormatter extends DefaultCSSSourceFormatter { - - private static CounterFormatter instance; - - /** - * - */ - CounterFormatter() { - super(); - } - - /** - * - */ - 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; - - if (!ICounter.IDENTIFIER.equalsIgnoreCase(attr.getName()) && !ICounter.LISTSTYLE.equalsIgnoreCase(attr.getName()) && !ICounter.SEPARATOR.equalsIgnoreCase(attr.getName())) - return source; - - // get region to replace - IndexedRegion iNode = (IndexedRegion) node; - context.start = iNode.getStartOffset(); - context.end = iNode.getEndOffset(); - - ICounter counter = (ICounter) node; - String quote = preferences.getString(CSSCorePreferenceNames.FORMAT_QUOTE); - String sep = counter.getSeparator(); - String ident = counter.getIdentifier(); - String style = counter.getListStyle(); - - if (ICounter.IDENTIFIER.equalsIgnoreCase(attr.getName())) { - if (insert) - ident = attr.getValue(); - else - ident = "";//$NON-NLS-1$ - } - else if (ICounter.LISTSTYLE.equalsIgnoreCase(attr.getName())) { - if (insert) - style = attr.getValue(); - else - style = null; - } - else if (ICounter.SEPARATOR.equalsIgnoreCase(attr.getName())) { - if (insert) - sep = attr.getValue(); - else - sep = null; - } - - quote = CSSUtil.detectQuote(sep, quote); - 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 (preferences.getInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.UPPER) { - ident = ident.toUpperCase(); - style = style.toUpperCase(); - func = func.toUpperCase(); - } - else { - ident = ident.toLowerCase(); - style = style.toLowerCase(); - } - if (sep == null || sep.length() == 0) { - source.append(func); - appendSpaceBefore(node, ident, source); - source.append(ident); - } - else { - source.append(func); - appendSpaceBefore(node, ident, source); - source.append(ident); - source.append(",");//$NON-NLS-1$ - appendSpaceBefore(node, sep, source); - source.append(sep); - } - - if (style != null && style.length() != 0) { - source.append(",");//$NON-NLS-1$ - appendSpaceBefore(node, style, source); - } - source.append(")");//$NON-NLS-1$ - - /* - * IStructuredDocument structuredDocument = - * node.getOwnerDocument().getModel().getStructuredDocument(); - * ITextRegion[] regions = - * getRegionsWithoutWhiteSpaces(structuredDocument, new - * FormatRegion(context.start, context.end - context.start + 1)); int - * commas[2]; int numComma = 0; for(int j = 0; j <regions.length; j++) { - * if (regions[j].getType() == CSSRegionContexts.COMMA) { - * commas[numComma++] = j; if (numComma > 1) break; } } - * - * if (ICounter.IDENTIFIER.equalsIgnoreCase(attr.getName())) { } else - * if (ICounter.LISTSTYLE.equalsIgnoreCase(attr.getName())) { } else - * if (ICounter.SEPARATOR.equalsIgnoreCase(attr.getName())) { boolean - * skipSpace = false; String func = insert ? "counters(" : "counter("; - * if (mgr.isPropValueUpperCase()) func = func.toUpperCase(); - * - * for(int i=0; i <regions.length; i++) { if (regions[i].getType() == - * CSSRegionContexts.CSS_DECLARATION_VALUE_FUNCTION) - * source.append(func); else { if (numComma == 2 && commas[1] < i) { - * } else if (numComma == 1 && commas[0] < i && insert) { - * } else if (numComma == 1 && commas[0] < i && ! insert) { } else if - * (numComma == 0 && insert && regions[i].getType == - * CSSRegionContexts.PARENTHESIS_CLOSE) { source.append(","); - * appendSpaceBefore(node,attr.getValue(),source); - * source.append(attr.getValue()); } - * - * if (i != 0 && !skipSpace) - * appendSpaceBefore(node,regions[i],source); - * source.append(decoratedPropValueRegion(regions[i])); } skipSpace = - * false; - * - * if (regions[i].getType() == - * CSSRegionContexts.CSS_DECLARATION_VALUE_FUNCTION) skipSpace = true; } } - */ - return source; - } - - /** - * - */ - protected void formatPre(ICSSNode node, StringBuffer source) { - int start = ((IndexedRegion) node).getStartOffset(); - int end = ((IndexedRegion) node).getEndOffset(); - - 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 skipSpace = false; - for (int i = 0; i < regions.length; i++) { - if (i != 0 && !skipSpace) - appendSpaceBefore(node, regions[i], source); - skipSpace = false; - source.append(decoratedPropValueRegion(regions[i], stgy)); - if (regions[i].getType() == CSSRegionContexts.CSS_DECLARATION_VALUE_FUNCTION) - skipSpace = true; - } - } - else { // generate source - ICounter counter = (ICounter) node; - 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); - String ident = counter.getIdentifier(); - String style = counter.getListStyle(); - String func = (sep == null || sep.length() == 0) ? "counter(" : "counters(";//$NON-NLS-2$//$NON-NLS-1$ - // normalize - if (ident == null) - ident = "";//$NON-NLS-1$ - if (style == null) - style = "";//$NON-NLS-1$ - - if (preferences.getInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.UPPER) { - ident = ident.toUpperCase(); - style = style.toUpperCase(); - func = func.toUpperCase(); - } - else { - ident = ident.toLowerCase(); - style = style.toLowerCase(); - } - if (sep == null || sep.length() == 0) { - source.append(func); - appendSpaceBefore(node, ident, source); - source.append(ident); - } - else { - source.append(func); - appendSpaceBefore(node, ident, source); - source.append(ident); - source.append(",");//$NON-NLS-1$ - appendSpaceBefore(node, sep, source); - source.append(sep); - } - - if (style != null && style.length() != 0) { - source.append(",");//$NON-NLS-1$ - appendSpaceBefore(node, style, source); - } - source.append(")");//$NON-NLS-1$ - } - } - - /** - * - */ - protected void formatPre(ICSSNode node, IRegion region, StringBuffer source) { - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - 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])) - appendSpaceBefore(node, regions[i], source); - source.append(decoratedPropValueRegion(regions[i], stgy)); - } - if (needS(outside[1]) && !isIncludesPreEnd(node, region)) - appendSpaceBefore(node, outside[1], source); - } - - /** - * - */ - public int getAttrInsertPos(ICSSNode node, String attrName) { - if (node == null || attrName == null || attrName.length() == 0) - return -1; - - IndexedRegion iNode = (IndexedRegion) node; - if (ICounter.IDENTIFIER.equalsIgnoreCase(attrName)) { - ICSSAttr attr = (ICSSAttr) node.getAttributes().getNamedItem(ICounter.IDENTIFIER); - if (attr != null && ((IndexedRegion) attr).getEndOffset() > 0) - return ((IndexedRegion) attr).getStartOffset(); - if (iNode.getEndOffset() <= 0) - return -1; - - IStructuredDocumentRegion flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(iNode.getEndOffset() - 1); - RegionIterator it = new RegionIterator(flatNode, flatNode.getRegionAtCharacterOffset(iNode.getEndOffset() - 1)); - while (it.hasPrev()) { - ITextRegion region = it.prev(); - if (region.getType() == CSSRegionContexts.CSS_DECLARATION_VALUE_FUNCTION) - return it.getStructuredDocumentRegion().getEndOffset(region); - } - return ((IndexedRegion) node).getEndOffset(); - } - else if (ICounter.LISTSTYLE.equalsIgnoreCase(attrName)) { - ICSSAttr attr = (ICSSAttr) node.getAttributes().getNamedItem(ICounter.LISTSTYLE); - if (attr != null && ((IndexedRegion) attr).getEndOffset() > 0) - return ((IndexedRegion) attr).getStartOffset(); - - IStructuredDocumentRegion flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(iNode.getEndOffset() - 1); - RegionIterator it = new RegionIterator(flatNode, flatNode.getRegionAtCharacterOffset(iNode.getEndOffset() - 1)); - while (it.hasPrev()) { - ITextRegion region = it.prev(); - if (region.getType() == CSSRegionContexts.CSS_DECLARATION_VALUE_OPERATOR) - return it.getStructuredDocumentRegion().getEndOffset(region); - else if (region.getType() == CSSRegionContexts.CSS_DECLARATION_VALUE_FUNCTION) - return it.getStructuredDocumentRegion().getEndOffset(region); - } - return ((IndexedRegion) node).getEndOffset(); - } - else if (ICounter.SEPARATOR.equalsIgnoreCase(attrName)) { - ICSSAttr attr = (ICSSAttr) node.getAttributes().getNamedItem(ICounter.SEPARATOR); - if (attr != null && ((IndexedRegion) attr).getEndOffset() > 0) - return ((IndexedRegion) attr).getStartOffset(); - - IStructuredDocumentRegion flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(iNode.getEndOffset() - 1); - RegionIterator it = new RegionIterator(flatNode, flatNode.getRegionAtCharacterOffset(iNode.getEndOffset() - 1)); - boolean hasComma = false; - while (it.hasPrev()) { - ITextRegion region = it.prev(); - if (region.getType() == CSSRegionContexts.CSS_DECLARATION_VALUE_OPERATOR) { - if (!hasComma) - hasComma = true; - else - return it.getStructuredDocumentRegion().getEndOffset(region); - } - else if (region.getType() == CSSRegionContexts.CSS_DECLARATION_VALUE_FUNCTION) - return it.getStructuredDocumentRegion().getEndOffset(region); - } - return ((IndexedRegion) node).getEndOffset(); - } - else - return -1; - } - - /** - * - */ - public synchronized static CounterFormatter getInstance() { - if (instance == null) - instance = new CounterFormatter(); - return instance; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/DeclContainerFormatter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/DeclContainerFormatter.java deleted file mode 100644 index 06a536964d..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/DeclContainerFormatter.java +++ /dev/null @@ -1,114 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.formatter; - - - -import org.eclipse.jface.text.IRegion; -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.provisional.document.ICSSNode; -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; - - -/** - * - */ -public class DeclContainerFormatter extends DefaultCSSSourceFormatter { - - /** - * - */ - DeclContainerFormatter() { - super(); - } - - /** - * - * @return java.lang.String - */ - protected String decoratedSelectorRegion(CompoundRegion region, CompoundRegion prevRegion, CSSCleanupStrategy stgy) { - String text = region.getText(); - if (isFormat()) - return text; - - String type = region.getType(); - if (type == CSSRegionContexts.CSS_SELECTOR_ATTRIBUTE_NAME || type == CSSRegionContexts.CSS_SELECTOR_ATTRIBUTE_VALUE || type == CSSRegionContexts.CSS_SELECTOR_CLASS || type == CSSRegionContexts.CSS_SELECTOR_ELEMENT_NAME || type == CSSRegionContexts.CSS_SELECTOR_ID || type == CSSRegionContexts.CSS_SELECTOR_PSEUDO) { - short selCase = stgy.getSelectorTagCase(); - if (selCase == org.eclipse.wst.css.core.internal.cleanup.CSSCleanupStrategy.UPPER) { - return text.toUpperCase(); - } - else if (selCase == org.eclipse.wst.css.core.internal.cleanup.CSSCleanupStrategy.LOWER) { - return text.toLowerCase(); - } - return text; - } - - return decoratedRegion(region, 0, stgy); - } - - /** - * - */ - protected void formatPost(ICSSNode node, StringBuffer source) { - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - int end = ((IndexedRegion) node).getEndOffset(); - int start = (node.getLastChild() != null && ((IndexedRegion) node.getLastChild()).getEndOffset() > 0) ? ((IndexedRegion) node.getLastChild()).getEndOffset() : getChildInsertPos(node); - if (end > 0 && start < end) { // format source - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, new FormatRegion(start, end - start), stgy); - for (int i = 0; i < regions.length; i++) { - appendDelimBefore(node, regions[i], source); - source.append(decoratedRegion(regions[i], 0, stgy)); - } - } - else { // generate source - String delim = getLineDelimiter(node); - source.append(delim); - source.append(getIndent(node)); - source.append("}");//$NON-NLS-1$ - } - } - - /** - * - */ - protected void formatPost(ICSSNode node, IRegion region, StringBuffer source) { - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - 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])) - appendDelimBefore(node, regions[i], source); - source.append(decoratedRegion(regions[i], 0, stgy)); - } - } - - /** - * - */ - public int getChildInsertPos(ICSSNode node) { - int n = ((IndexedRegion) node).getEndOffset(); - if (n > 0) { - IStructuredDocumentRegion flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(n - 1); - if (flatNode.getRegionAtCharacterOffset(n - 1).getType() == CSSRegionContexts.CSS_RBRACE) - return n - 1; - else - return n; - } - return -1; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/DefaultCSSSourceFormatter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/DefaultCSSSourceFormatter.java deleted file mode 100644 index 04a6730316..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/DefaultCSSSourceFormatter.java +++ /dev/null @@ -1,126 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2007 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.formatter; - - - -import org.eclipse.jface.text.IRegion; -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.provisional.document.ICSSNode; -import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion; - - -/** - * - */ -public class DefaultCSSSourceFormatter extends AbstractCSSSourceFormatter { - - /** - * - */ - DefaultCSSSourceFormatter() { - super(); - } - - /** - * - */ - protected void appendSpaceBetween(ICSSNode node, CompoundRegion prev, CompoundRegion next, StringBuffer source) { - if (isCleanup() && !getCleanupStrategy(node).isFormatSource()) - return; // for not formatting case on cleanup action - - // in selector - String prevType = prev.getType(); - String nextType = next.getType(); - if (CSSRegionUtil.isSelectorBegginingType(prevType) && CSSRegionUtil.isSelectorBegginingType(nextType)) { - // https://bugs.eclipse.org/bugs/show_bug.cgi?id=73990 - // https://bugs.eclipse.org/bugs/show_bug.cgi?id=110539 - // Formatting CSS file splits element.class into element . class - if (((prevType == CSSRegionContexts.CSS_SELECTOR_ELEMENT_NAME || prevType == CSSRegionContexts.CSS_SELECTOR_CLASS || prevType == CSSRegionContexts.CSS_SELECTOR_ID) && (nextType == CSSRegionContexts.CSS_SELECTOR_CLASS || nextType == CSSRegionContexts.CSS_SELECTOR_ID)) || ((prevType == CSSRegionContexts.CSS_SELECTOR_ELEMENT_NAME || prevType == CSSRegionContexts.CSS_SELECTOR_CLASS) && nextType == CSSRegionContexts.CSS_SELECTOR_PSEUDO) || (nextType == CSSRegionContexts.CSS_SELECTOR_ATTRIBUTE_START)) { - // Individually, SELECTOR_ELEMENT_NAME, SELECTOR_CLASS, and SELECTOR_ID can all be beginning types. - // But, we should not insert a space in between when they are followed by SELECTOR_CLASS or SELECTOR_ID. - // For example: H1.pastoral and H1#z98y and .pastoral.other and #myid.myclass - // - // Also, space is now not inserted in between when SELECTOR_ELEMENT_NAME is followed by SELECTOR_PSEUDO, or when - // SELECTOR_CLASS is followed by SELECTOR_PSEUDO. - // For example: P:first-letter and A.external:visited - } - else - appendSpaceBefore(node, next, source); - return; - } - - if (prevType == CSSRegionContexts.CSS_PAGE || prevType == CSSRegionContexts.CSS_CHARSET || prevType == CSSRegionContexts.CSS_ATKEYWORD || prevType == CSSRegionContexts.CSS_FONT_FACE || prevType == CSSRegionContexts.CSS_IMPORT || prevType == CSSRegionContexts.CSS_MEDIA) { - appendSpaceBefore(node, next, source); - return; - } - - if (prevType == CSSRegionContexts.CSS_UNKNOWN && nextType != CSSRegionContexts.CSS_COMMENT) { - if (prev.getEndOffset() != next.getStartOffset()) { // not - // sequential - appendSpaceBefore(node, next, source); - } - return; - } - - if (prevType == CSSRegionContexts.CSS_DECLARATION_VALUE_OPERATOR || prevType == CSSRegionContexts.CSS_COMMENT || nextType == CSSRegionContexts.CSS_COMMENT || nextType == CSSRegionContexts.CSS_LBRACE || nextType == CSSRegionContexts.CSS_UNKNOWN) { - appendSpaceBefore(node, next, source); - return; - } - } - - /** - * - */ - protected void formatBefore(ICSSNode node, ICSSNode child, String toAppend, StringBuffer source, IRegion exceptFor) { - } - - /** - * - */ - protected void formatBefore(ICSSNode node, ICSSNode child, IRegion region, String toAppend, StringBuffer source) { - } - - /** - * - */ - protected void formatPost(ICSSNode node, StringBuffer source) { - } - - /** - * - */ - protected void formatPost(ICSSNode node, IRegion region, StringBuffer source) { - } - - /** - * - */ - protected void formatPre(ICSSNode node, StringBuffer source) { - } - - /** - * - */ - protected void formatPre(ICSSNode node, IRegion region, StringBuffer source) { - } - - /** - * - */ - public int getChildInsertPos(ICSSNode node) { - int n = ((IndexedRegion) node).getEndOffset(); - if (n > 0) - return n; - return -1; - } -}
\ No newline at end of file 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 deleted file mode 100644 index ee46eed456..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/FontFaceRuleFormatter.java +++ /dev/null @@ -1,97 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.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.sse.core.internal.provisional.IndexedRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; - - -/** - * - */ -public class FontFaceRuleFormatter extends DeclContainerFormatter { - - public final static java.lang.String FONT_FACE = "@font-face";//$NON-NLS-1$ - private static FontFaceRuleFormatter instance; - - /** - * - */ - FontFaceRuleFormatter() { - super(); - } - - /** - * - */ - protected void formatPre(org.eclipse.wst.css.core.internal.provisional.document.ICSSNode node, StringBuffer source) { - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - int start = ((IndexedRegion) node).getStartOffset(); - int end = (node.getFirstChild() != null && ((IndexedRegion) node.getFirstChild()).getEndOffset() > 0) ? ((IndexedRegion) node.getFirstChild()).getStartOffset() : getChildInsertPos(node); - if (end > 0) { - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, new FormatRegion(start, end - start), stgy); - for (int i = 0; i < regions.length; i++) { - if (i != 0) - appendSpaceBefore(node, regions[i], source); - source.append(decoratedIdentRegion(regions[i], stgy)); - } - } - else { - String str = FONT_FACE; - if (CSSCorePlugin.getDefault().getPluginPreferences().getInt(CSSCorePreferenceNames.CASE_IDENTIFIER) == CSSCorePreferenceNames.UPPER) - str = FONT_FACE.toUpperCase(); - source.append(str); - appendSpaceBefore(node, "{", source);//$NON-NLS-1$ - source.append("{");//$NON-NLS-1$ - } - appendDelimBefore(node, null, source); - } - - /** - * - */ - protected void formatPre(ICSSNode node, IRegion region, StringBuffer source) { - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - 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])) - appendSpaceBefore(node, regions[i], source); - source.append(decoratedIdentRegion(regions[i], stgy)); - } - if (needS(outside[1])) { - if (isIncludesPreEnd(node, region)) - appendDelimBefore(node, null, source); - else - appendSpaceBefore(node, outside[1], source); - } - } - - /** - * - */ - public synchronized static FontFaceRuleFormatter getInstance() { - if (instance == null) - instance = new FontFaceRuleFormatter(); - return instance; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/FormatRegion.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/FormatRegion.java deleted file mode 100644 index ff0c9d322a..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/FormatRegion.java +++ /dev/null @@ -1,71 +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.formatter; - - - -import org.eclipse.jface.text.IRegion; - -/** - * - */ -class FormatRegion implements IRegion { - - private int fOffset, fLength; - - /** - * - */ - FormatRegion(int offset, int length) { - super(); - set(offset, length); - } - - /** - * Returns the length of the region. - * - * @return the length of the region - */ - public int getLength() { - return fLength; - } - - /** - * Returns the offset of the region. - * - * @return the offset of the region - */ - public int getOffset() { - return fOffset; - } - - /** - * - */ - void set(int offset, int length) { - this.fOffset = offset; - this.fLength = length; - } - - /** - * - */ - void setLength(int newLength) { - fLength = newLength; - } - - /** - * - */ - void setOffset(int newOffset) { - fOffset = newOffset; - } -}
\ No newline at end of file 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 deleted file mode 100644 index 8c47f0e994..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/FunctionFormatter.java +++ /dev/null @@ -1,184 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.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.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; - - -/** - * - */ -abstract public class FunctionFormatter extends AbstractCSSSourceFormatter { - - /** - * - */ - FunctionFormatter() { - super(); - } - - /** - * - */ - protected void formatBefore(ICSSNode node, ICSSNode child, String toAppend, StringBuffer source, IRegion exceptFor) { - ICSSNode prev = (child != null) ? child.getPreviousSibling() : node.getLastChild(); - int start = (prev != null) ? ((IndexedRegion) prev).getEndOffset() : 0; - int end = (child != null) ? ((IndexedRegion) child).getStartOffset() : 0; - if (start > 0 && start < end) { // format source - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - // get meaning regions - CompoundRegion[] regions = null; - if (exceptFor == null) - regions = getRegionsWithoutWhiteSpaces(structuredDocument, new FormatRegion(start, end - start), stgy); - else { - String pickupType = CSSRegionContexts.CSS_DECLARATION_VALUE_OPERATOR; - if (prev == null || child == null) - pickupType = null; - regions = getRegions(structuredDocument, new FormatRegion(start, end - start), exceptFor, pickupType); - } - // extract source - for (int i = 0; i < regions.length; i++) { - appendSpaceBefore(node, regions[i], source); - source.append(decoratedRegion(regions[i], 2, stgy)); - } - } else if (prev != null && child != null) { // generate source between - // parameters - source.append(",");//$NON-NLS-1$ - } - appendSpaceBefore(node, toAppend, source); - } - - /** - * - */ - protected void formatBefore(ICSSNode node, ICSSNode child, IRegion region, String toAppend, StringBuffer source) { - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - 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])) - appendSpaceBefore(node, regions[i], source); - source.append(decoratedRegion(regions[i], 2, stgy)); - } - } - - /** - * - */ - protected void formatPost(org.eclipse.wst.css.core.internal.provisional.document.ICSSNode node, java.lang.StringBuffer source) { - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - int end = ((IndexedRegion) node).getEndOffset(); - int start = (node.getLastChild() != null && ((IndexedRegion) node.getLastChild()).getEndOffset() > 0) ? ((IndexedRegion) node.getLastChild()).getEndOffset() : getChildInsertPos(node); - if (end > 0 && start < end) { // format source - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, new FormatRegion(start, end - start), stgy); - for (int i = 0; i < regions.length; i++) { - appendSpaceBefore(node, regions[i], source); - source.append(decoratedRegion(regions[i], 2, stgy)); - } - } else { // generate source - source.append(")");//$NON-NLS-1$ - } - } - - /** - * - */ - protected void formatPost(ICSSNode node, IRegion region, StringBuffer source) { - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - 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])) - appendSpaceBefore(node, regions[i], source); - source.append(decoratedRegion(regions[i], 2, stgy)); - } - } - - /** - * - */ - 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); - - if (end > 0) { // format source - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, new FormatRegion(start, end - start), stgy); - for (int i = 0; i < regions.length; i++) { - if (i != 0) - appendSpaceBefore(node, regions[i], source); - source.append(decoratedPropValueRegion(regions[i], stgy)); - } - } else { // generate source - String func = getFunc(); - if (CSSCorePlugin.getDefault().getPluginPreferences().getInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.UPPER) - func = func.toUpperCase(); - source.append(func); - } - } - - /** - * - */ - protected void formatPre(ICSSNode node, IRegion region, StringBuffer source) { - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - 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])) - appendSpaceBefore(node, regions[i], source); - source.append(decoratedPropValueRegion(regions[i], stgy)); - } - if (needS(outside[1]) && !isIncludesPreEnd(node, region)) - appendSpaceBefore(node, outside[1], source); - } - - /** - * - */ - public int getChildInsertPos(ICSSNode node) { - int n = ((IndexedRegion) node).getEndOffset(); - if (n > 0) { - IStructuredDocumentRegion flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(n - 1); - if (flatNode.getRegionAtCharacterOffset(n - 1).getType() == CSSRegionContexts.CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE) - return n - 1; - return n; - } - return -1; - } - - /** - * - */ - protected abstract String getFunc(); -} 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 deleted file mode 100644 index fc758520be..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/ImportRuleFormatter.java +++ /dev/null @@ -1,339 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.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.util.CSSUtil; -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; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; - - -/** - * - */ -public class ImportRuleFormatter extends AbstractCSSSourceFormatter { - - public final static java.lang.String IMPORT = "@import";//$NON-NLS-1$ - private static ImportRuleFormatter instance; - - /** - * - */ - ImportRuleFormatter() { - super(); - } - - /** - * - */ - public StringBuffer formatAttrChanged(ICSSNode node, ICSSAttr attr, boolean insert, AttrChangeContext context) { - StringBuffer buf = new StringBuffer(); - if (node == null || attr == null) - return buf; - - if (!ICSSImportRule.HREF.equalsIgnoreCase(attr.getName())) - return buf; - - // get region to replace - if (context != null && ((IndexedRegion) node).getEndOffset() > 0) { - if (attr != null && ((IndexedRegion) attr).getEndOffset() > 0) { - IStructuredDocumentRegion flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(((IndexedRegion) attr).getStartOffset()); - ITextRegion region = flatNode.getRegionAtCharacterOffset(((IndexedRegion) attr).getStartOffset()); - RegionIterator it = new RegionIterator(flatNode, region); - it.prev(); - if (it.hasPrev()) { - ITextRegion prev = it.prev(); - if (prev.getType() == CSSRegionContexts.CSS_S) - context.start = it.getStructuredDocumentRegion().getStartOffset(prev); - else - context.start = it.getStructuredDocumentRegion().getStartOffset(region); - it.next(); - } else - context.start = it.getStructuredDocumentRegion().getStartOffset(region); - it.next(); - it.next(); - if (it.hasNext()) { - ITextRegion next = it.next(); - if (next.getType() == CSSRegionContexts.CSS_S) - context.end = it.getStructuredDocumentRegion().getEndOffset(next); - else - context.end = it.getStructuredDocumentRegion().getEndOffset(region); - } else - context.end = it.getStructuredDocumentRegion().getEndOffset(region); - } 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 { - 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 { - context.start = flatNode.getEndOffset(); - context.end = flatNode.getEndOffset(); - } - } - } - // generate text - if (insert && attr.getValue() != null && attr.getValue().length() > 0) { - appendSpaceBefore(node, attr.getValue(), buf); - buf.append(attr.getValue()); - appendSpaceBefore(node, "", buf);//$NON-NLS-1$ - } - return buf; - } - - /** - * - */ - protected void formatBefore(ICSSNode node, ICSSNode child, String toAppend, StringBuffer source, IRegion exceptFor) { - // for media-type - ICSSNode prev = (child != null) ? child.getPreviousSibling() : node.getLastChild(); - int start = (prev != null) ? ((IndexedRegion) prev).getEndOffset() : 0; - int end = (child != null) ? ((IndexedRegion) child).getStartOffset() : 0; - if (start > 0 && start < end) { // format source - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - // get meaning regions - CompoundRegion[] regions = null; - if (exceptFor == null) - regions = getRegionsWithoutWhiteSpaces(structuredDocument, new FormatRegion(start, end - start), stgy); - else { - String pickupType = CSSRegionContexts.CSS_MEDIA_SEPARATOR; - if (prev == null || child == null) - pickupType = null; - regions = getRegions(structuredDocument, new FormatRegion(start, end - start), exceptFor, pickupType); - } - // extract source - for (int i = 0; i < regions.length; i++) { - appendSpaceBefore(node, regions[i], source); - source.append(decoratedRegion(regions[i], 0, stgy)); // must - // be - // comments - } - appendSpaceBefore(node, toAppend, 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 - appendSpaceBefore(node, toAppend, source); - } - } - - /** - * - */ - protected void formatBefore(ICSSNode node, ICSSNode child, IRegion region, String toAppend, StringBuffer source) { - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - 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])) - appendSpaceBefore(node, regions[i], source); - source.append(decoratedRegion(regions[i], 0, stgy)); // must be - // comments - } - if (needS(outside[1])) { - if (((IndexedRegion) child).getStartOffset() == region.getOffset() + region.getLength()) - appendSpaceBefore(node, toAppend, source); - else - appendSpaceBefore(node, outside[1], source); - } - } - - /** - * - */ - protected void formatPost(ICSSNode node, StringBuffer source) { - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - int end = ((IndexedRegion) node).getEndOffset(); - int start = (node.getLastChild() != null && ((IndexedRegion) node.getLastChild()).getEndOffset() > 0) ? ((IndexedRegion) node.getLastChild()).getEndOffset() : getChildInsertPos(node); - if (end > 0 && start < end) { - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, new FormatRegion(start, end - start), stgy); - for (int i = 0; i < regions.length; i++) { - appendDelimBefore(node, regions[i], source); - source.append(decoratedRegion(regions[i], 0, stgy)); - } - } else { - source.append(";"); //$NON-NLS-1$ - } - } - - /** - * - */ - protected void formatPost(ICSSNode node, IRegion region, StringBuffer source) { - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - 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])) && !regions[i].getType().equals(CSSRegionContexts.CSS_DELIMITER)) - appendDelimBefore(node, regions[i], source); - source.append(decoratedRegion(regions[i], 0, stgy)); - } - } - - /** - * - */ - 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); - - if (end > 0) { // format source - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, new FormatRegion(start, end - start), stgy); - for (int i = 0; i < regions.length; i++) { - String str = regions[i].getText(); - if (regions[i].getType() == CSSRegionContexts.CSS_IMPORT) - str = decoratedIdentRegion(regions[i], stgy); - else - str = decoratedPropValueRegion(regions[i], stgy); - if (i != 0) - appendSpaceBefore(node, regions[i], source); - source.append(str); - } - } else { // generate source - Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences(); - - String str = IMPORT; - if (preferences.getInt(CSSCorePreferenceNames.CASE_IDENTIFIER) == CSSCorePreferenceNames.UPPER) - str = IMPORT.toUpperCase(); - String quote = preferences.getString(CSSCorePreferenceNames.FORMAT_QUOTE); - source.append(str); - str = "url(";//$NON-NLS-1$ - if (preferences.getInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.UPPER) - str = str.toUpperCase(); - String href = ((ICSSImportRule) node).getHref(); - quote = CSSUtil.detectQuote(href, quote); - str = str + quote + href + quote + ")";//$NON-NLS-1$ - appendSpaceBefore(node, str, source); - source.append(str); - } - ICSSNode child = node.getFirstChild(); - if (child != null && (child instanceof org.w3c.dom.stylesheets.MediaList) && ((org.w3c.dom.stylesheets.MediaList) child).getLength() > 0) { - appendSpaceBefore(node, "", source);//$NON-NLS-1$ - } - } - - /** - * - */ - protected void formatPre(ICSSNode node, IRegion region, StringBuffer source) { - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, region, stgy); - CompoundRegion[] outside = getOutsideRegions(structuredDocument, region); - for (int i = 0; i < regions.length; i++) { - String str = regions[i].getText(); - if (regions[i].getType() == CSSRegionContexts.CSS_IMPORT) - str = decoratedIdentRegion(regions[i], stgy); - else - str = decoratedPropValueRegion(regions[i], stgy); - if (i != 0 || needS(outside[0])) - appendSpaceBefore(node, regions[i], source); - source.append(str); - } - if (needS(outside[1]) && !isIncludesPreEnd(node, region)) - appendSpaceBefore(node, outside[1], source); - } - - /** - * - */ - public int getAttrInsertPos(ICSSNode node, String attrName) { - if (node == null || attrName == null || attrName.length() == 0) - return -1; - - if (!ICSSImportRule.HREF.equalsIgnoreCase(attrName)) - return -1; - - ICSSAttr attr = (ICSSAttr) node.getAttributes().getNamedItem(ICSSImportRule.HREF); - if (attr != null && ((IndexedRegion) attr).getEndOffset() > 0) - return ((IndexedRegion) attr).getStartOffset(); - 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)); - - 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(); - } - - /** - * - */ - public int getChildInsertPos(ICSSNode node) { - int n = ((IndexedRegion) node).getEndOffset(); - if (n > 0) { - IStructuredDocumentRegion flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(n - 1); - if (flatNode.getRegionAtCharacterOffset(n - 1).getType() == CSSRegionContexts.CSS_DELIMITER) - return n - 1; - return n; - } - return -1; - } - - /** - * - */ - public synchronized static ImportRuleFormatter getInstance() { - if (instance == null) - instance = new ImportRuleFormatter(); - return instance; - } -} 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 deleted file mode 100644 index f44eb3494d..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/MediaListFormatter.java +++ /dev/null @@ -1,211 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.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.util.RegionIterator; -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; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; -import org.w3c.dom.stylesheets.MediaList; - - -/** - * - */ -public class MediaListFormatter extends DefaultCSSSourceFormatter { - - private static MediaListFormatter instance; - - /** - * - */ - MediaListFormatter() { - super(); - } - - /** - * - */ - public StringBuffer formatAttrChanged(ICSSNode node, ICSSAttr attr, boolean insert, AttrChangeContext context) { - StringBuffer buf = new StringBuffer(); - if (node == null || attr == null) - return buf; - - boolean first = false, last = false; - // get region to replace - if (context != null && ((IndexedRegion) node).getEndOffset() > 0) { - if (attr != null && ((IndexedRegion) attr).getEndOffset() > 0) { - IStructuredDocumentRegion flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(((IndexedRegion) attr).getStartOffset()); - ITextRegion region = flatNode.getRegionAtCharacterOffset(((IndexedRegion) attr).getStartOffset()); - RegionIterator it = new RegionIterator(flatNode, region); - it.prev(); - context.start = it.getStructuredDocumentRegion().getStartOffset(region); - while (it.hasPrev()) { - ITextRegion prev = it.prev(); - if (prev.getType() == CSSRegionContexts.CSS_S || prev.getType() == CSSRegionContexts.CSS_MEDIA_SEPARATOR || prev.getType() == CSSRegionContexts.CSS_COMMENT) - context.start = it.getStructuredDocumentRegion().getStartOffset(prev); - else - break; - } - if (context.start < ((IndexedRegion) node).getStartOffset()) { - context.start = ((IndexedRegion) node).getStartOffset(); - first = true; - - } - it.reset(flatNode, region); - context.end = it.getStructuredDocumentRegion().getEndOffset(region); - while (it.hasNext()) { - ITextRegion next = it.next(); - if (next.getType() == CSSRegionContexts.CSS_S || next.getType() == CSSRegionContexts.CSS_MEDIA_SEPARATOR || next.getType() == CSSRegionContexts.CSS_COMMENT) - context.end = it.getStructuredDocumentRegion().getEndOffset(next); - else - break; - } - if (((IndexedRegion) node).getEndOffset() < context.end) { - context.end = ((IndexedRegion) node).getEndOffset(); - last = true; - } - } else { - last = true; - IStructuredDocumentRegion flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(((IndexedRegion) node).getEndOffset() - 1); - ITextRegion region = flatNode.getRegionAtCharacterOffset(((IndexedRegion) node).getEndOffset() - 1); - RegionIterator it = new RegionIterator(flatNode, region); - context.start = it.getStructuredDocumentRegion().getEndOffset(region); - context.end = it.getStructuredDocumentRegion().getEndOffset(region); - while (it.hasPrev()) { - ITextRegion prev = it.prev(); - if (prev.getType() == CSSRegionContexts.CSS_S || prev.getType() == CSSRegionContexts.CSS_MEDIA_SEPARATOR || prev.getType() == CSSRegionContexts.CSS_COMMENT) - context.start = it.getStructuredDocumentRegion().getStartOffset(prev); - else - break; - } - if (context.start < ((IndexedRegion) node).getStartOffset()) { - context.start = ((IndexedRegion) node).getStartOffset(); - first = true; - } - } - } - // generate text - if (insert && attr.getValue() != null && attr.getValue().length() > 0) { - if (!first) - buf.append(","); //$NON-NLS-1$ - appendSpaceBefore(node, attr.getValue(), buf); - buf.append(attr.getValue()); - if (!last) { - buf.append(","); //$NON-NLS-1$ - appendSpaceBefore(node, "", buf); //$NON-NLS-1$ - } - } else if (!first && !last) { - buf.append(","); //$NON-NLS-1$ - appendSpaceBefore(node, "", buf); //$NON-NLS-1$ - } - return buf; - } - - /** - * - */ - protected void formatPre(ICSSNode node, StringBuffer source) { - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - int start = ((IndexedRegion) node).getStartOffset(); - int end = ((IndexedRegion) node).getEndOffset(); - - if (end > 0) { // format source - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, new FormatRegion(start, end - start), stgy); - for (int i = 0; i < regions.length; i++) { - if (i != 0) - appendSpaceBefore(node, regions[i], source); - source.append(decoratedIdentRegion(regions[i], stgy)); - } - } else { // generate source - MediaList list = (MediaList) node; - int n = list.getLength(); - for (int i = 0; i < n; i++) { - String medium = list.item(i); - if (CSSCorePlugin.getDefault().getPluginPreferences().getInt(CSSCorePreferenceNames.CASE_IDENTIFIER) == CSSCorePreferenceNames.UPPER) - medium = medium.toUpperCase(); - else - medium = medium.toLowerCase(); - - if (i != 0) { - source.append(","); //$NON-NLS-1$ - appendSpaceBefore(node, medium, source); - } - source.append(medium); - } - } - } - - /** - * - */ - protected void formatPre(ICSSNode node, IRegion region, StringBuffer source) { - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - 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])) - appendSpaceBefore(node, regions[i], source); - source.append(decoratedIdentRegion(regions[i], stgy)); - } - if (needS(outside[1]) && !isIncludesPreEnd(node, region)) - appendSpaceBefore(node, outside[1], source); - } - - /** - * - */ - public int getAttrInsertPos(ICSSNode node, String attrName) { - if (node == null || attrName == null || attrName.length() == 0) - return -1; - - ICSSAttr attr = (ICSSAttr) node.getAttributes().getNamedItem(attrName); - - if (attr != null && ((IndexedRegion) attr).getEndOffset() > 0) - return ((IndexedRegion) attr).getStartOffset(); - 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(); - } - - /** - * - */ - public synchronized static MediaListFormatter getInstance() { - if (instance == null) - instance = new MediaListFormatter(); - return instance; - } -} 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 deleted file mode 100644 index 059f56a450..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/MediaRuleFormatter.java +++ /dev/null @@ -1,383 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.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.util.RegionIterator; -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; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; - - -/** - * - */ -public class MediaRuleFormatter extends AbstractCSSSourceFormatter { - - public final static java.lang.String MEDIA = "@media";//$NON-NLS-1$ - private static MediaRuleFormatter instance; - - /** - * - */ - MediaRuleFormatter() { - super(); - } - - /** - * - */ - protected void formatBefore(ICSSNode node, ICSSNode child, String toAppend, StringBuffer source, IRegion exceptFor) { - ICSSNode prev = (child != null) ? child.getPreviousSibling() : node.getLastChild(); - int start = (prev != null) ? ((IndexedRegion) prev).getEndOffset() : 0; - int end = (child != null) ? ((IndexedRegion) child).getStartOffset() : 0; - if (start > 0 && start < end) { // source formatting - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - // get meaning regions - CompoundRegion[] regions = null; - if (exceptFor == null) - regions = getRegionsWithoutWhiteSpaces(structuredDocument, new FormatRegion(start, end - start), stgy); - else { - String pickupType = null; - if ((prev != null && prev.getNodeType() == ICSSNode.MEDIALIST_NODE) || (prev == null && (child == null || child.getNodeType() != ICSSNode.MEDIALIST_NODE))) { - pickupType = CSSRegionContexts.CSS_LBRACE; - } - regions = getRegions(structuredDocument, new FormatRegion(start, end - start), exceptFor, pickupType); - } - // extract source - if (child != null && child.getNodeType() == ICSSNode.MEDIALIST_NODE) { // between - // "@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 - } - appendSpaceBefore(node, toAppend, source); - } 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 - } - appendDelimBefore(node, null, source); - } 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 - } - appendDelimBefore(node, null, source); - } - } else { // source generation - if (child == null && prev != null && prev.getNodeType() != ICSSNode.MEDIALIST_NODE) { // after - // the - // last - // style - // rule - appendDelimBefore(node.getParentNode(), null, source); - } 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 - 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 - appendDelimBefore(node, null, source); - } - } - - } - - /** - * - */ - protected void formatBefore(ICSSNode node, ICSSNode child, IRegion region, String toAppend, StringBuffer source) { - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, region, stgy); - CompoundRegion[] outside = getOutsideRegions(structuredDocument, region); - if (child != null && child.getNodeType() == ICSSNode.MEDIALIST_NODE) { // between - // "@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 - } - 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 - 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 - } - if (needS(outside[1]) && ((IndexedRegion) child).getStartOffset() == region.getOffset() + region.getLength()) { - appendDelimBefore(node, null, source); - } - } 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 - } - if (needS(outside[1]) && ((IndexedRegion) child).getStartOffset() == region.getOffset() + region.getLength()) { - appendDelimBefore(node, null, source); - } - } - } - - /** - * - */ - protected void formatPost(ICSSNode node, StringBuffer source) { - int end = ((IndexedRegion) node).getEndOffset(); - int start = (node.getLastChild() != null && ((IndexedRegion) node.getLastChild()).getEndOffset() > 0) ? ((IndexedRegion) node.getLastChild()).getEndOffset() : getChildInsertPos(node); - if (end > 0 && start < end) { // source formatting - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, new FormatRegion(start, end - start), stgy); - if (node.getLastChild() == null || node.getLastChild().getNodeType() != ICSSNode.MEDIALIST_NODE) { - for (int i = 0; i < regions.length; i++) { - appendDelimBefore(node, regions[i], source); - source.append(decoratedRegion(regions[i], 0, stgy)); - } - } else { - boolean bInCurlyBrace = false; - for (int i = 0; i < regions.length; i++) { - if (!bInCurlyBrace) - appendSpaceBefore(node, regions[i], source); - else - appendDelimBefore(node, regions[i], source); - source.append(decoratedRegion(regions[i], 0, stgy)); - if (regions[i].getType() == CSSRegionContexts.CSS_LBRACE) - bInCurlyBrace = true; - } - } - } else { // source generation - String delim = getLineDelimiter(node); - if (node.getLastChild() != null && node.getLastChild().getNodeType() == ICSSNode.MEDIALIST_NODE) { - appendSpaceBefore(node, "{", source);//$NON-NLS-1$ - source.append("{");//$NON-NLS-1$ - } - - source.append(delim); - source.append(getIndent(node)); - source.append("}");//$NON-NLS-1$ - } - } - - /** - * - */ - protected void formatPost(ICSSNode node, IRegion region, StringBuffer source) { - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - 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])) - appendDelimBefore(node, regions[i], source); - source.append(decoratedRegion(regions[i], 0, stgy)); - } - } - - /** - * - */ - 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); - - if (end > 0) { // source formatting - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, new FormatRegion(start, end - start), stgy); - for (int i = 0; i < regions.length; i++) { - if (i != 0) - appendSpaceBefore(node, regions[i], source); - source.append(decoratedIdentRegion(regions[i], stgy)); - } - } else { // source generation - String str = MEDIA; - if (CSSCorePlugin.getDefault().getPluginPreferences().getInt(CSSCorePreferenceNames.CASE_IDENTIFIER) == CSSCorePreferenceNames.UPPER) - str = MEDIA.toUpperCase(); - source.append(str); - } - ICSSNode child = node.getFirstChild(); - if (child != null && (child instanceof org.w3c.dom.stylesheets.MediaList) && ((org.w3c.dom.stylesheets.MediaList) child).getLength() > 0) { - appendSpaceBefore(node, "", source);//$NON-NLS-1$ - } - } - - /** - * - */ - protected void formatPre(ICSSNode node, IRegion region, StringBuffer source) { - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - 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])) - appendSpaceBefore(node, regions[i], source); - source.append(decoratedIdentRegion(regions[i], stgy)); - } - if (needS(outside[1]) && !isIncludesPreEnd(node, region)) - appendSpaceBefore(node, outside[1], source); - } - - /** - * - */ - public int getChildInsertPos(ICSSNode node) { - int n = ((IndexedRegion) node).getEndOffset(); - if (n > 0) { - IStructuredDocumentRegion flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(n - 1); - if (flatNode.getRegionAtCharacterOffset(n - 1).getType() == CSSRegionContexts.CSS_LBRACE) - return n - 1; - return n; - } - return -1; - } - - /** - * - */ - public synchronized static MediaRuleFormatter getInstance() { - if (instance == null) - instance = new MediaRuleFormatter(); - return instance; - } - - /** - * - * @return int - * @param node - * org.eclipse.wst.css.core.model.interfaces.ICSSNode - * @param insertPos - * int - */ - public int getLengthToReformatAfter(ICSSNode node, int insertPos) { - if (node == null) - return 0; - IndexedRegion nnode = (IndexedRegion) node; - if (insertPos <= 0 || !nnode.contains(insertPos - 1)) - return 0; - - if (node.getFirstChild().getNextSibling() == node.getLastChild()) { // inserted - // first - // style - // rule - IStructuredDocumentRegion flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(insertPos); - if (flatNode == null) - return 0; - ITextRegion region = flatNode.getRegionAtCharacterOffset(insertPos); - if (region == null) - return 0; - RegionIterator it = new RegionIterator(flatNode, region); - while (it.hasNext()) { - region = it.next(); - if (region.getType() == CSSRegionContexts.CSS_LBRACE) - break; - if (nnode.getEndOffset() <= it.getStructuredDocumentRegion().getEndOffset(region)) - break; - } - int pos = it.getStructuredDocumentRegion().getStartOffset(region) - insertPos; - return (pos >= 0) ? pos : 0; - - } - return super.getLengthToReformatAfter(node, insertPos); - } - - /** - * - * @return int - * @param node - * org.eclipse.wst.css.core.model.interfaces.ICSSNode - * @param insertPos - * int - */ - public int getLengthToReformatBefore(ICSSNode node, int insertPos) { - if (node == null) - return 0; - IndexedRegion nnode = (IndexedRegion) node; - if (insertPos <= 0 || !nnode.contains(insertPos - 1)) - return 0; - - if (node.getFirstChild().getNextSibling() == node.getLastChild()) { // inserted - // first - // style - // rule - int pos = ((IndexedRegion) node.getFirstChild()).getEndOffset(); - if (pos <= 0) - pos = ((IndexedRegion) node).getStartOffset() + 6 /* - * length - * of - * "@media" - */; - return insertPos - pos; - } - return super.getLengthToReformatBefore(node, insertPos); - } -} 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 deleted file mode 100644 index fa1f7a37fa..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/PageRuleFormatter.java +++ /dev/null @@ -1,194 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.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.util.RegionIterator; -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; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; - - -/** - * - */ -public class PageRuleFormatter extends DeclContainerFormatter { - - public final static java.lang.String PAGE = "@page";//$NON-NLS-1$ - private static PageRuleFormatter instance; - - /** - * - */ - PageRuleFormatter() { - super(); - } - - /** - * - */ - public StringBuffer formatAttrChanged(ICSSNode node, ICSSAttr attr, boolean insert, AttrChangeContext context) { - StringBuffer buf = new StringBuffer(); - if (node == null || attr == null) - return buf; - - if (!ICSSPageRule.SELECTOR.equalsIgnoreCase(attr.getName())) - return buf; - - // get region to replace - if (context != null && ((IndexedRegion) node).getEndOffset() > 0) { - if (attr != null && ((IndexedRegion) attr).getEndOffset() > 0) { - IStructuredDocumentRegion flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(((IndexedRegion) attr).getEndOffset() - 1); - ITextRegion region = flatNode.getRegionAtCharacterOffset(((IndexedRegion) attr).getEndOffset() - 1); - RegionIterator it = new RegionIterator(flatNode, region); - it.next(); - if (it.hasNext()) { - ITextRegion next = it.next(); - if (next.getType() == CSSRegionContexts.CSS_S) - context.end = it.getStructuredDocumentRegion().getEndOffset(next); - else - context.end = it.getStructuredDocumentRegion().getEndOffset(region); - } - else - context.end = it.getStructuredDocumentRegion().getEndOffset(region); - context.start = it.getStructuredDocumentRegion().getStartOffset(region); - } - else { - int pos = getAttrInsertPos(node, attr.getName()); - context.start = pos; - context.end = pos; - /* - * IStructuredDocumentRegion flatNode = - * node.getOwnerDocument().getModel().getStructuredDocument().getNodeAtCharacterOffset(((IndexedRegion)node).getStartOffset()); - * ITextRegion region = - * flatNode.getRegionAtCharacterOffset(((IndexedRegion)node).getStartOffset()); - * if (region.getType() == CSSRegionContexts.S) { - * context.start = region.getStartOffset(); context.end = - * region.getEndOffset(); } else { context.start = - * flatNode.getEndOffset() + 1; context.end = - * flatNode.getEndOffset(); } - */} - } - // generate text - if (insert) { - String val = attr.getValue(); - if (val != null && val.length() > 0) { - buf.append(val); - appendSpaceBefore(node, "", buf);//$NON-NLS-1$ - } - } - return buf; - } - - /** - * - */ - protected void formatPre(ICSSNode node, StringBuffer source) { - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - int start = ((IndexedRegion) node).getStartOffset(); - int end = (node.getFirstChild() != null && ((IndexedRegion) node.getFirstChild()).getEndOffset() > 0) ? ((IndexedRegion) node.getFirstChild()).getStartOffset() : getChildInsertPos(node); - - if (end > 0) { // format source - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, new FormatRegion(start, end - start), stgy); - for (int i = 0; i < regions.length; i++) { - if (i != 0) - appendSpaceBetween(node, regions[i - 1], regions[i], source); - source.append(decoratedIdentRegion(regions[i], stgy)); - } - } - else { // generate source - String str = PAGE; - if (CSSCorePlugin.getDefault().getPluginPreferences().getInt(CSSCorePreferenceNames.CASE_IDENTIFIER) == CSSCorePreferenceNames.UPPER) - str = PAGE.toUpperCase(); - source.append(str); - str = ((ICSSPageRule) node).getSelectorText(); - if (str != null && str.length() > 0) { - appendSpaceBefore(node, str, source); - source.append(str); - } - appendSpaceBefore(node, "{", source);//$NON-NLS-1$ - source.append("{");//$NON-NLS-1$ - } - appendDelimBefore(node, null, source); - } - - /** - * - */ - protected void formatPre(ICSSNode node, IRegion region, StringBuffer source) { - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - 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])) - appendSpaceBetween(node, (i == 0) ? outside[0] : regions[i - 1], regions[i], source); - source.append(decoratedIdentRegion(regions[i], stgy)); - } - if (needS(outside[1])) { - if (isIncludesPreEnd(node, region)) - appendDelimBefore(node, null, source); - else - appendSpaceBetween(node, regions[regions.length - 1], outside[1], source); - } - } - - /** - * - */ - public int getAttrInsertPos(ICSSNode node, String attrName) { - if (node == null || attrName == null || attrName.length() == 0) - return -1; - - if (!ICSSPageRule.SELECTOR.equalsIgnoreCase(attrName)) - return -1; - - ICSSAttr attr = (ICSSAttr) node.getAttributes().getNamedItem(ICSSPageRule.SELECTOR); - if (attr != null && ((IndexedRegion) attr).getEndOffset() > 0) - return ((IndexedRegion) attr).getStartOffset(); - else if (((IndexedRegion) node).getEndOffset() > 0) { - IStructuredDocumentRegion flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(((IndexedRegion) node).getStartOffset()); - ITextRegion region = flatNode.getRegionAtCharacterOffset(((IndexedRegion) node).getStartOffset()); - RegionIterator it = new RegionIterator(flatNode, region); - while (it.hasNext()) { - region = it.next(); - if (region.getType() == CSSRegionContexts.CSS_LBRACE) { - return it.getStructuredDocumentRegion().getStartOffset(region); - } - if (it.getStructuredDocumentRegion().getEndOffset(region) >= ((IndexedRegion) node).getEndOffset()) - break; - } - } - return ((IndexedRegion) node).getStartOffset(); - } - - /** - * - */ - public synchronized static PageRuleFormatter getInstance() { - if (instance == null) - instance = new PageRuleFormatter(); - return instance; - } -} 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 deleted file mode 100644 index b215c9dc8d..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/PrimitiveValueFormatter.java +++ /dev/null @@ -1,273 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.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.util.CSSUtil; -import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; -import org.w3c.dom.css.CSSPrimitiveValue; - - -/** - * - */ -public class PrimitiveValueFormatter extends DefaultCSSSourceFormatter { - - private static PrimitiveValueFormatter instance; - - /** - * - */ - PrimitiveValueFormatter() { - super(); - } - - /** - * - */ - protected void formatPre(ICSSNode node, StringBuffer source) { - int start = ((IndexedRegion) node).getStartOffset(); - int end = ((IndexedRegion) node).getEndOffset(); - 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 = preferences.getString(CSSCorePreferenceNames.FORMAT_QUOTE); - - StringBuffer strBuf = new StringBuffer(); - boolean skipSpace = false; - for (int i = 0; i < regions.length; i++) { - if (i != 0 && !skipSpace) - appendSpaceBefore(node, regions[i], strBuf); - skipSpace = false; - strBuf.append(decoratedPropValueRegion(regions[i], stgy)); - if (regions[i].getType() == CSSRegionContexts.CSS_DECLARATION_VALUE_FUNCTION) - skipSpace = true; - } - - if (appendQuote) { - source.append(quote); - String str = strBuf.toString(); - str = str.replace('\'', ' '); - str = str.replace('\"', ' '); - str = str.trim(); - source.append(str); - source.append(quote); - } - else { - source.append(strBuf); - } - } - else { // generate source - ICSSPrimitiveValue value = (ICSSPrimitiveValue) node; - short type = value.getPrimitiveType(); - String quote = preferences.getString(CSSCorePreferenceNames.FORMAT_QUOTE); - - String str = null; - switch (type) { - case CSSPrimitiveValue.CSS_NUMBER : - case CSSPrimitiveValue.CSS_PERCENTAGE : - case CSSPrimitiveValue.CSS_EMS : - case CSSPrimitiveValue.CSS_EXS : - case CSSPrimitiveValue.CSS_PX : - case CSSPrimitiveValue.CSS_CM : - case CSSPrimitiveValue.CSS_MM : - case CSSPrimitiveValue.CSS_IN : - case CSSPrimitiveValue.CSS_PT : - case CSSPrimitiveValue.CSS_PC : - case CSSPrimitiveValue.CSS_DEG : - case CSSPrimitiveValue.CSS_RAD : - case CSSPrimitiveValue.CSS_GRAD : - case CSSPrimitiveValue.CSS_MS : - case CSSPrimitiveValue.CSS_S : - case CSSPrimitiveValue.CSS_HZ : - case CSSPrimitiveValue.CSS_KHZ : - case CSSPrimitiveValue.CSS_DIMENSION : - case ICSSPrimitiveValue.CSS_INTEGER : - if (value.getFloatValue(type) == ((int) value.getFloatValue(type))) { - str = Integer.toString((int) value.getFloatValue(type)); - } - else { - str = Float.toString(value.getFloatValue(type)); - } - break; - case CSSPrimitiveValue.CSS_IDENT : - case ICSSPrimitiveValue.CSS_HASH : - case ICSSPrimitiveValue.CSS_INHERIT_PRIMITIVE : - str = value.getStringValue(); - if (str != null) { - if (preferences.getInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.UPPER) - str = str.toUpperCase(); - else - str.toLowerCase(); - } - break; - case CSSPrimitiveValue.CSS_STRING : - case CSSPrimitiveValue.CSS_URI : - case CSSPrimitiveValue.CSS_ATTR : - case ICSSPrimitiveValue.CSS_URANGE : - case ICSSPrimitiveValue.CSS_FORMAT : - case ICSSPrimitiveValue.CSS_LOCAL : - case ICSSPrimitiveValue.CSS_COMMA : - case ICSSPrimitiveValue.CSS_SLASH : - str = value.getStringValue(); - } - - String preStr = null, postStr = null; - switch (type) { - case CSSPrimitiveValue.CSS_ATTR : - preStr = "attr(";//$NON-NLS-1$ - postStr = ")";//$NON-NLS-1$ - break; - case CSSPrimitiveValue.CSS_CM : - postStr = "cm";//$NON-NLS-1$ - break; - // case ICSSPrimitiveValue.CSS_COUNTER: - case CSSPrimitiveValue.CSS_DEG : - postStr = "deg";//$NON-NLS-1$ - break; - case CSSPrimitiveValue.CSS_EMS : - postStr = "em";//$NON-NLS-1$ - break; - case CSSPrimitiveValue.CSS_EXS : - postStr = "ex";//$NON-NLS-1$ - break; - case CSSPrimitiveValue.CSS_GRAD : - postStr = "grad";//$NON-NLS-1$ - break; - case CSSPrimitiveValue.CSS_HZ : - postStr = "Hz";//$NON-NLS-1$ - break; - case CSSPrimitiveValue.CSS_IN : - postStr = "in";//$NON-NLS-1$ - break; - case CSSPrimitiveValue.CSS_KHZ : - postStr = "kHz";//$NON-NLS-1$ - break; - case CSSPrimitiveValue.CSS_MM : - postStr = "mm";//$NON-NLS-1$ - break; - case CSSPrimitiveValue.CSS_MS : - postStr = "ms";//$NON-NLS-1$ - break; - case CSSPrimitiveValue.CSS_PC : - postStr = "pc";//$NON-NLS-1$ - break; - case CSSPrimitiveValue.CSS_PERCENTAGE : - postStr = "%";//$NON-NLS-1$ - break; - case CSSPrimitiveValue.CSS_PT : - postStr = "pt";//$NON-NLS-1$ - break; - case CSSPrimitiveValue.CSS_PX : - postStr = "px";//$NON-NLS-1$ - break; - case CSSPrimitiveValue.CSS_RAD : - postStr = "rad";//$NON-NLS-1$ - break; - // case ICSSPrimitiveValue.CSS_RECT: - // case ICSSPrimitiveValue.CSS_RGBCOLOR: - case CSSPrimitiveValue.CSS_S : - postStr = "s";//$NON-NLS-1$ - break; - case CSSPrimitiveValue.CSS_STRING : - quote = CSSUtil.detectQuote(str, quote); - preStr = quote; - postStr = quote; - break; - case CSSPrimitiveValue.CSS_URI : - quote = CSSUtil.detectQuote(str, quote); - preStr = "url(" + quote;//$NON-NLS-1$ - postStr = quote + ")";//$NON-NLS-1$ - break; - // the followings are original primitive values - case CSSPrimitiveValue.CSS_IDENT : - case CSSPrimitiveValue.CSS_UNKNOWN : - // use str - case ICSSPrimitiveValue.CSS_INTEGER : - case ICSSPrimitiveValue.CSS_HASH : - case ICSSPrimitiveValue.CSS_SLASH : - case ICSSPrimitiveValue.CSS_COMMA : - case CSSPrimitiveValue.CSS_DIMENSION : - case CSSPrimitiveValue.CSS_NUMBER : - case ICSSPrimitiveValue.CSS_INHERIT_PRIMITIVE : - break; - case ICSSPrimitiveValue.CSS_URANGE : - preStr = "U+";//$NON-NLS-1$ - break; - case ICSSPrimitiveValue.CSS_FORMAT : - quote = CSSUtil.detectQuote(str, quote); - preStr = "format(" + quote;//$NON-NLS-1$ - postStr = quote + ")";//$NON-NLS-1$ - break; - case ICSSPrimitiveValue.CSS_LOCAL : - quote = CSSUtil.detectQuote(str, quote); - preStr = "local(" + quote;//$NON-NLS-1$ - postStr = quote + ")";//$NON-NLS-1$ - break; - } - if (preferences.getInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.UPPER) { - if (preStr != null) - preStr = preStr.toUpperCase(); - if (postStr != null) - postStr = postStr.toUpperCase(); - } - if (preStr != null) - source.append(preStr); - if (str != null) - source.append(str); - if (postStr != null) - source.append(postStr); - } - } - - /** - * - */ - protected void formatPre(ICSSNode node, IRegion region, StringBuffer source) { - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - 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])) - appendSpaceBefore(node, regions[i], source); - source.append(decoratedPropValueRegion(regions[i], stgy)); - } - if (needS(outside[1]) && !isIncludesPreEnd(node, region)) - appendSpaceBefore(node, outside[1], source); - } - - /** - * - */ - public synchronized static PrimitiveValueFormatter getInstance() { - if (instance == null) - instance = new PrimitiveValueFormatter(); - return instance; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/RGBFormatter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/RGBFormatter.java deleted file mode 100644 index a6909db3fe..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/RGBFormatter.java +++ /dev/null @@ -1,44 +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.formatter; - - - -/** - * - */ -public class RGBFormatter extends FunctionFormatter { - - private static RGBFormatter instance; - - /** - * - */ - RGBFormatter() { - super(); - } - - /** - * - */ - protected String getFunc() { - return "rgb(";//$NON-NLS-1$ - } - - /** - * - */ - public synchronized static RGBFormatter getInstance() { - if (instance == null) - instance = new RGBFormatter(); - return instance; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/RectFormatter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/RectFormatter.java deleted file mode 100644 index f3ec832dfc..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/RectFormatter.java +++ /dev/null @@ -1,44 +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.formatter; - - - -/** - * - */ -public class RectFormatter extends FunctionFormatter { - - private static RectFormatter instance; - - /** - * - */ - RectFormatter() { - super(); - } - - /** - * - */ - protected String getFunc() { - return "rect(";//$NON-NLS-1$ - } - - /** - * - */ - public synchronized static RectFormatter getInstance() { - if (instance == null) - instance = new RectFormatter(); - return instance; - } -}
\ No newline at end of file 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 deleted file mode 100644 index bf9c042ef9..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/StyleDeclItemFormatter.java +++ /dev/null @@ -1,399 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.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.util.RegionIterator; -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; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; - - -/** - * - */ -public class StyleDeclItemFormatter extends DefaultCSSSourceFormatter { - - private static StyleDeclItemFormatter instance; - - /** - * - */ - StyleDeclItemFormatter() { - super(); - } - - /** - * - */ - private void appendAfterColonSpace(ICSSNode node, StringBuffer source) { - Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences(); - int n = preferences.getInt(CSSCorePreferenceNames.FORMAT_PROP_POST_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 = getFirstChildRegionLength(node); - if (length + n + append > preferences.getInt(CSSCorePreferenceNames.LINE_WIDTH)) { - source.append(getLineDelimiter(node)); - source.append(getIndent(node)); - source.append(getIndentString()); - n = 0; // no space is necessary - } - } - // no delimiter case - while (n-- > 0) - source.append(" ");//$NON-NLS-1$ - } - - /** - * - */ - private int getFirstChildRegionLength(ICSSNode node) { - ICSSNode firstChild = node.getFirstChild(); - if (firstChild == null) - return 1; - int start = ((IndexedRegion) firstChild).getStartOffset(); - RegionIterator itr = new RegionIterator(node.getOwnerDocument().getModel().getStructuredDocument(), start); - while (itr.hasNext()) { - ITextRegion reg = itr.next(); - if (reg != null && reg.getType() != CSSRegionContexts.CSS_S) - return reg.getTextLength(); - } - return 1; - } - - /** - * - */ - public StringBuffer formatAttrChanged(ICSSNode node, ICSSAttr attr, boolean insert, AttrChangeContext context) { - StringBuffer buf = new StringBuffer(); - if (node == null || attr == null) - return buf; - - if (!ICSSStyleDeclItem.IMPORTANT.equalsIgnoreCase(attr.getName())) - return buf; - - // get region to replace - if (context != null && ((IndexedRegion) node).getEndOffset() > 0) { - if (attr != null && ((IndexedRegion) attr).getEndOffset() > 0) { - IStructuredDocumentRegion flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(((IndexedRegion) attr).getStartOffset()); - ITextRegion region = flatNode.getRegionAtCharacterOffset(((IndexedRegion) attr).getStartOffset()); - RegionIterator it = new RegionIterator(flatNode, region); - it.prev(); - if (it.hasPrev()) { - ITextRegion prev = it.prev(); - if (prev.getType() == CSSRegionContexts.CSS_S) - context.start = it.getStructuredDocumentRegion().getStartOffset(prev); - else - context.start = it.getStructuredDocumentRegion().getStartOffset(region); - } else - context.start = it.getStructuredDocumentRegion().getStartOffset(region); - context.end = it.getStructuredDocumentRegion().getEndOffset(region); - } 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 { - context.start = flatNode.getEndOffset(); - context.end = flatNode.getEndOffset(); - } - } - } - // generate text - if (insert && attr.getValue() != null && attr.getValue().length() > 0) { - appendSpaceBefore(node, attr.getValue(), buf); - buf.append(attr.getValue()); - } - return buf; - } - - /** - * - */ - protected void formatBefore(ICSSNode node, ICSSNode child, String toAppend, StringBuffer source, IRegion exceptFor) { - ICSSNode prev = (child != null) ? child.getPreviousSibling() : node.getLastChild(); - int start = (prev != null) ? ((IndexedRegion) prev).getEndOffset() : 0; - int end = (child != null) ? ((IndexedRegion) child).getStartOffset() : 0; - if (start > 0 && start < end) { - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - // get meaning regions - CompoundRegion[] regions = null; - if (exceptFor == null) - regions = getRegionsWithoutWhiteSpaces(structuredDocument, new FormatRegion(start, end - start), stgy); - else { - regions = getRegions(structuredDocument, new FormatRegion(start, end - start), exceptFor, null); - } - // generate source - for (int i = 0; i < regions.length; i++) { - appendSpaceBefore(node, regions[i], source); - source.append(decoratedRegion(regions[i], 2, stgy)); // must - // be - // comments - } - } - if (child != null && child instanceof ICSSPrimitiveValue) { - if (((ICSSPrimitiveValue) child).getPrimitiveType() == ICSSPrimitiveValue.CSS_COMMA) - toAppend = ",";//$NON-NLS-1$ - else if (((ICSSPrimitiveValue) child).getPrimitiveType() == ICSSPrimitiveValue.CSS_SLASH) - toAppend = "/";//$NON-NLS-1$ - } - if (child != null && toAppend != null && !toAppend.equals(",") && !toAppend.equals("/")) //$NON-NLS-1$ //$NON-NLS-2$ - appendSpaceBefore(node, toAppend, source); - } - - /** - * - */ - protected void formatBefore(ICSSNode node, ICSSNode child, IRegion region, String toAppend, StringBuffer source) { - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - 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])) - appendSpaceBefore(node, regions[i], source); - source.append(decoratedRegion(regions[i], 2, stgy)); // must be - // comments - } - if (needS(outside[1])) { - if (((IndexedRegion) child).getStartOffset() == region.getOffset() + region.getLength()) { - if (toAppend != "," && toAppend != "/") //$NON-NLS-1$ //$NON-NLS-2$ - appendSpaceBefore(node, toAppend, source); - } - } - } - - /** - * - */ - protected void formatPost(ICSSNode node, StringBuffer source) { - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - int end = ((IndexedRegion) node).getEndOffset(); - int start = (node.getLastChild() != null && ((IndexedRegion) node.getLastChild()).getEndOffset() > 0) ? ((IndexedRegion) node.getLastChild()).getEndOffset() : getChildInsertPos(node); - if (end > 0 && start < end) { // format source - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, new FormatRegion(start, end - start), stgy); - for (int i = 0; i < regions.length; i++) { - appendSpaceBefore(node, regions[i], source); - source.append(decoratedIdentRegion(regions[i], stgy)); - } - } else { // generate source - // append "!important" - String priority = ((ICSSStyleDeclItem) node).getPriority(); - if (priority != null && priority.length() > 0) { - appendSpaceBefore(node, priority, source); - source.append(priority); - } - } - } - - /** - * - */ - protected void formatPost(ICSSNode node, IRegion region, StringBuffer source) { - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - 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])) - appendSpaceBefore(node, regions[i], source); - source.append(decoratedIdentRegion(regions[i], stgy)); - } - } - - /** - * - */ - 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); - Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences(); - if (end > 0) { // format source - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, new FormatRegion(start, end - start), stgy); - for (int i = 0; i < regions.length; i++) { - if (i != 0) - appendSpaceBefore(node, regions[i], source); - source.append(decoratedPropNameRegion(regions[i], stgy)); - } - } else { // generatoe source - ICSSStyleDeclItem item = (ICSSStyleDeclItem) node; - if (preferences.getInt(CSSCorePreferenceNames.CASE_PROPERTY_NAME) == CSSCorePreferenceNames.UPPER) - source.append(item.getPropertyName().toUpperCase()); - else - source.append(item.getPropertyName()); - - 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 > preferences.getInt(CSSCorePreferenceNames.LINE_WIDTH)) { - source.append(getLineDelimiter(node)); - source.append(getIndent(node)); - source.append(getIndentString()); - k = 0; // no space is necessary - } - } - // no delimiter case - while (k-- > 0) - source.append(" ");//$NON-NLS-1$ - source.append(":");//$NON-NLS-1$ - } - if (!isCleanup() || getCleanupStrategy(node).isFormatSource()) { - appendAfterColonSpace(node, source); - } - } - - /** - * - */ - protected void formatPre(ICSSNode node, IRegion region, StringBuffer source) { - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - 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])) - appendSpaceBefore(node, regions[i], source); - source.append(decoratedPropNameRegion(regions[i], stgy)); - } - if (needS(outside[1])) { - if (isIncludesPreEnd(node, region) && (!isCleanup() || getCleanupStrategy(node).isFormatSource())) { - appendAfterColonSpace(node, source); - } else - appendSpaceBefore(node, outside[1], source); - } - } - - /** - * - */ - public StringBuffer formatValue(ICSSNode node) { - StringBuffer source = new StringBuffer(); - formatChildren(node, source); - - return source; - } - - /** - * - */ - public int getAttrInsertPos(ICSSNode node, String attrName) { - if (node == null || attrName == null || attrName.length() == 0) - return -1; - - if (!ICSSStyleDeclItem.IMPORTANT.equalsIgnoreCase(attrName)) - return -1; - - ICSSAttr attr = (ICSSAttr) node.getAttributes().getNamedItem(ICSSStyleDeclItem.IMPORTANT); - if (attr != null && ((IndexedRegion) attr).getEndOffset() > 0) - return ((IndexedRegion) attr).getStartOffset(); - 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(); - } - - /** - * - */ - public int getChildInsertPos(ICSSNode node) { - int n = ((IndexedRegion) node).getEndOffset(); - if (n < 0) { - return -1; - } - IStructuredDocumentRegion flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(n - 1); - if (flatNode != null && flatNode.getType() == CSSRegionContexts.CSS_DECLARATION_DELIMITER) { - n -= flatNode.getLength(); - } - if (n > 0) { - String important = ((ICSSStyleDeclItem) node).getPriority(); - if (important != null && important.length() > 0) { - // find before "!important" position - flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(n - 1); - RegionIterator it = new RegionIterator(flatNode, flatNode.getRegionAtCharacterOffset(n - 1)); - while (it.hasPrev()) { - ITextRegion region = it.prev(); - if (it.getStructuredDocumentRegion() != flatNode) - break; - if (region.getType() == CSSRegionContexts.CSS_DECLARATION_VALUE_IMPORTANT) - return it.getStructuredDocumentRegion().getStartOffset(region); - } - } - // skip last space - flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(n - 1); - ITextRegion region = flatNode.getRegionAtCharacterOffset(n - 1); - if (region != null) { - n -= region.getLength() - region.getTextLength(); - } - - return n; - } - return -1; - } - - /** - * - */ - public synchronized static StyleDeclItemFormatter getInstance() { - if (instance == null) - instance = new StyleDeclItemFormatter(); - return instance; - } - - private String getIndentString() { - StringBuffer indent = new StringBuffer(); - - Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences(); - if (preferences != null) { - char indentChar = ' '; - String indentCharPref = preferences.getString(CSSCorePreferenceNames.INDENTATION_CHAR); - if (CSSCorePreferenceNames.TAB.equals(indentCharPref)) { - indentChar = '\t'; - } - int indentationWidth = preferences.getInt(CSSCorePreferenceNames.INDENTATION_SIZE); - - for (int i = 0; i < indentationWidth; i++) { - indent.append(indentChar); - } - } - return indent.toString(); - } -} 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 deleted file mode 100644 index d126f6ae6f..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/StyleDeclarationFormatter.java +++ /dev/null @@ -1,316 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2007 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.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.ICSSModel; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -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; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; - -/** - * - */ -public class StyleDeclarationFormatter extends DefaultCSSSourceFormatter { - - private static StyleDeclarationFormatter instance; - - /** - * - */ - StyleDeclarationFormatter() { - super(); - } - - /** - * - */ - protected void formatBefore(ICSSNode node, ICSSNode child, String toAppend, StringBuffer source, IRegion exceptFor) { - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - ICSSNode prev = (child != null) ? child.getPreviousSibling() : node.getLastChild(); - int start = (prev != null) ? ((IndexedRegion) prev).getEndOffset() : 0; - int end = (child != null) ? ((IndexedRegion) child).getStartOffset() : 0; - - // check no child - if (child == null && prev == null) - return; - - if (start > 0 && start < end) { // format source - ICSSModel cssModel = node.getOwnerDocument().getModel(); - // BUG202615 - it is possible to have a style declaration with no - // model associated with it - if (cssModel != null) { - IStructuredDocument structuredDocument = cssModel.getStructuredDocument(); - if (structuredDocument != null) { - // get meaning regions - CompoundRegion[] regions = null; - if (exceptFor == null) - regions = getRegionsWithoutWhiteSpaces(structuredDocument, new FormatRegion(start, end - start), stgy); - else { - String pickupType = CSSRegionContexts.CSS_DECLARATION_DELIMITER; - if (prev == null || child == null) - pickupType = null; - regions = getRegions(structuredDocument, new FormatRegion(start, end - start), exceptFor, pickupType); - } - // extract source - for (int i = 0; i < regions.length; i++) { - appendSpaceBefore(node, regions[i], source); - source.append(decoratedRegion(regions[i], 0, stgy)); // must - // be comments - } - } - } - } else if (prev != null && child != null) { // generate source : - // between two declarations - // BUG93037-properties view adds extra ; when add new property - boolean semicolonFound = false; - - ICSSModel cssModel = node.getOwnerDocument().getModel(); - // BUG202615 - it is possible to have a style declaration with no - // model associated with it - if (cssModel != null) { - IStructuredDocument structuredDocument = cssModel.getStructuredDocument(); - if (structuredDocument != null) { - int prevStart = (prev != null) ? ((IndexedRegion) prev).getStartOffset() : 0; - int prevEnd = (prev != null) ? ((IndexedRegion) prev).getEndOffset() : 0; - CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, new FormatRegion(prevStart, prevEnd - prevStart), stgy); - int i = regions.length - 1; - while (i >= 0 && !semicolonFound) { - if (regions[i].getType() == CSSRegionContexts.CSS_DECLARATION_DELIMITER) - semicolonFound = true; - --i; - } - } - } - if (!semicolonFound) - source.append(";");//$NON-NLS-1$ - } else if (prev == null) { // generate source : before the first - // declaration - org.eclipse.wst.css.core.internal.util.RegionIterator it = null; - if (end > 0) { - ICSSModel cssModel = node.getOwnerDocument().getModel(); - // BUG202615 - it is possible to have a style declaration with - // no model associated with it - if (cssModel != null) { - IStructuredDocument structuredDocument = cssModel.getStructuredDocument(); - if (structuredDocument != null) { - it = new org.eclipse.wst.css.core.internal.util.RegionIterator(structuredDocument, end - 1); - } - } - } else { - int pos = getChildInsertPos(node); - if (pos >= 0) { - ICSSModel cssModel = node.getOwnerDocument().getModel(); - // BUG202615 - it is possible to have a style declaration - // with no model associated with it - if (cssModel != null) { - IStructuredDocument structuredDocument = cssModel.getStructuredDocument(); - if (structuredDocument != null) { - it = new org.eclipse.wst.css.core.internal.util.RegionIterator(structuredDocument, pos - 1); - } - } - } - } - if (it != null) { - int limit = ((IndexedRegion) ((node.getParentNode() != null) ? node.getParentNode() : node)).getStartOffset(); - while (it.hasPrev()) { - ITextRegion curReg = it.prev(); - if (curReg.getType() == CSSRegionContexts.CSS_LBRACE || curReg.getType() == CSSRegionContexts.CSS_DECLARATION_DELIMITER) - break; - if (curReg.getType() != CSSRegionContexts.CSS_S && curReg.getType() != CSSRegionContexts.CSS_COMMENT) { - source.append(";");//$NON-NLS-1$ - break; - } - if (it.getStructuredDocumentRegion().getStartOffset(curReg) <= limit) - break; - } - } - } else if (child == null) { // generate source : after the last - // declaration - org.eclipse.wst.css.core.internal.util.RegionIterator it = null; - if (start > 0) { - ICSSModel cssModel = node.getOwnerDocument().getModel(); - // BUG202615 - it is possible to have a style declaration with - // no model associated with it - if (cssModel != null) { - IStructuredDocument structuredDocument = cssModel.getStructuredDocument(); - if (structuredDocument != null) { - it = new org.eclipse.wst.css.core.internal.util.RegionIterator(structuredDocument, start); - } - } - } else { - int pos = getChildInsertPos(node); - if (pos >= 0) { - ICSSModel cssModel = node.getOwnerDocument().getModel(); - // BUG202615 - it is possible to have a style declaration - // with no model associated with it - if (cssModel != null) { - IStructuredDocument structuredDocument = cssModel.getStructuredDocument(); - if (structuredDocument != null) { - it = new org.eclipse.wst.css.core.internal.util.RegionIterator(structuredDocument, pos); - } - } - } - } - if (it != null) { - int limit = ((IndexedRegion) ((node.getParentNode() != null) ? node.getParentNode() : node)).getEndOffset(); - while (it.hasNext()) { - ITextRegion curReg = it.next(); - if (curReg.getType() == CSSRegionContexts.CSS_RBRACE || curReg.getType() == CSSRegionContexts.CSS_DECLARATION_DELIMITER) - break; - if (curReg.getType() != CSSRegionContexts.CSS_S && curReg.getType() != CSSRegionContexts.CSS_COMMENT) { - source.append(";");//$NON-NLS-1$ - break; - } - if (limit <= it.getStructuredDocumentRegion().getEndOffset(curReg)) - break; - } - } - } - if (child == null) { - if (((IndexedRegion) node).getEndOffset() <= 0) { - // get next region - int pos = getChildInsertPos(node); - CompoundRegion toAppendRegion = null; - if (pos >= 0) { - ICSSModel cssModel = node.getOwnerDocument().getModel(); - // BUG202615 - it is possible to have a style declaration - // with no model associated with it - if (cssModel != null) { - IStructuredDocument structuredDocument = cssModel.getStructuredDocument(); - if (structuredDocument != null) { - IStructuredDocumentRegion flatNode = structuredDocument.getRegionAtCharacterOffset(pos); - toAppendRegion = new CompoundRegion(flatNode, flatNode.getRegionAtCharacterOffset(pos)); - } - } - } - appendDelimBefore(node.getParentNode(), toAppendRegion, source); - } - } 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); - } - } - - /** - * - */ - protected void formatBefore(ICSSNode node, ICSSNode child, IRegion region, String toAppend, StringBuffer source) { - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - ICSSModel cssModel = node.getOwnerDocument().getModel(); - // BUG202615 - it is possible to have a style declaration - // with no model associated with it - if (cssModel != null) { - IStructuredDocument structuredDocument = cssModel.getStructuredDocument(); - if (structuredDocument != null) { - 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])) - appendSpaceBefore(node, regions[i], source); - source.append(decoratedRegion(regions[i], 0, stgy)); // must - // be - // comments - } - Preferences preferences = CSSCorePlugin.getDefault().getPluginPreferences(); - if (needS(outside[1])) { - 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 - appendSpaceBefore(node, toAppend, source); - } - } - } - } - - /** - * Insert the method's description here. - */ - public int getChildInsertPos(ICSSNode node) { - if (node == null) - return -1; - int pos = super.getChildInsertPos(node); - if (pos < 0) { - CSSSourceGenerator formatter = getParentFormatter(node); - return (formatter != null) ? formatter.getChildInsertPos(node.getParentNode()) : -1; - } - return pos; - } - - /** - * - */ - public synchronized static StyleDeclarationFormatter getInstance() { - if (instance == null) - instance = new StyleDeclarationFormatter(); - return instance; - } - - /** - * - * @return int - * @param node - * org.eclipse.wst.css.core.model.interfaces.ICSSNode - * @param insertPos - * int - */ - public int getLengthToReformatAfter(ICSSNode node, int insertPos) { - if (node == null) - return 0; - IndexedRegion nnode = (IndexedRegion) node; - if (insertPos < 0 || !nnode.contains(insertPos)) { - if (node.getParentNode() != null && nnode.getEndOffset() <= 0) { - CSSSourceGenerator pntFormatter = getParentFormatter(node); - if (pntFormatter != null) - return pntFormatter.getLengthToReformatAfter(node.getParentNode(), insertPos); - } - return 0; - } - return super.getLengthToReformatAfter(node, insertPos); - } - - /** - * - * @return int - * @param node - * org.eclipse.wst.css.core.model.interfaces.ICSSNode - * @param insertPos - * int - */ - public int getLengthToReformatBefore(ICSSNode node, int insertPos) { - if (node == null) - return 0; - IndexedRegion nnode = (IndexedRegion) node; - if (insertPos <= 0 || !nnode.contains(insertPos - 1)) { - if (node.getParentNode() != null && nnode.getEndOffset() <= 0) { - CSSSourceGenerator pntFormatter = getParentFormatter(node); - if (pntFormatter != null) - return pntFormatter.getLengthToReformatBefore(node.getParentNode(), insertPos); - } - return 0; - } - return super.getLengthToReformatBefore(node, insertPos); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/StyleRuleFormatter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/StyleRuleFormatter.java deleted file mode 100644 index fca98b4463..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/StyleRuleFormatter.java +++ /dev/null @@ -1,166 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.formatter; - - - -import org.eclipse.jface.text.IRegion; -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.provisional.document.ICSSAttr; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleRule; -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; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; - - -/** - * - */ -public class StyleRuleFormatter extends DeclContainerFormatter { - - private static StyleRuleFormatter instance; - - /** - * - */ - StyleRuleFormatter() { - super(); - } - - /** - * - */ - public StringBuffer formatAttrChanged(ICSSNode node, ICSSAttr attr, boolean insert, AttrChangeContext context) { - StringBuffer buf = new StringBuffer(); - if (node == null || attr == null) - return buf; - - if (!ICSSStyleRule.SELECTOR.equalsIgnoreCase(attr.getName())) - return buf; - - // get region to replace - if (context != null && ((IndexedRegion) node).getEndOffset() > 0) { - if (attr != null && ((IndexedRegion) attr).getEndOffset() > 0) { - IStructuredDocumentRegion flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(((IndexedRegion) attr).getEndOffset() - 1); - ITextRegion region = flatNode.getRegionAtCharacterOffset(((IndexedRegion) attr).getEndOffset() - 1); - RegionIterator it = new RegionIterator(flatNode, region); - it.next(); - if (it.hasNext()) { - ITextRegion next = it.next(); - if (next.getType() == CSSRegionContexts.CSS_S) - context.end = it.getStructuredDocumentRegion().getEndOffset(next); - else - context.end = it.getStructuredDocumentRegion().getEndOffset(region); - } - else - context.end = it.getStructuredDocumentRegion().getEndOffset(region); - context.start = it.getStructuredDocumentRegion().getStartOffset(region); - } - else { - IStructuredDocumentRegion flatNode = node.getOwnerDocument().getModel().getStructuredDocument().getRegionAtCharacterOffset(((IndexedRegion) node).getStartOffset()); - ITextRegion region = flatNode.getRegionAtCharacterOffset(((IndexedRegion) node).getStartOffset()); - if (region.getType() == CSSRegionContexts.CSS_S) { - context.start = flatNode.getStartOffset(region); - context.end = flatNode.getEndOffset(region); - } - else { - context.start = flatNode.getEndOffset(); - context.end = flatNode.getEndOffset(); - } - } - } - // generate text - if (insert) { - buf.append(attr.getValue()); - appendSpaceBefore(node, "", buf);//$NON-NLS-1$ - } - return buf; - } - - /** - * - */ - protected void formatPre(ICSSNode node, StringBuffer source) { - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - int start = ((IndexedRegion) node).getStartOffset(); - int end = (node.getFirstChild() != null && ((IndexedRegion) node.getFirstChild()).getEndOffset() > 0) ? ((IndexedRegion) node.getFirstChild()).getStartOffset() : getChildInsertPos(node); - if (end > 0) { // format source - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, new FormatRegion(start, end - start), stgy); - for (int i = 0; i < regions.length; i++) { - if (i != 0) - appendSpaceBetween(node, regions[i - 1], regions[i], source); - source.append(decoratedSelectorRegion(regions[i], (i != 0) ? regions[i - 1] : null, stgy)); - } - } - else { // generate source - String str = ((ICSSStyleRule) node).getSelectorText(); - // appendSpaceBefore(node,str,source); - source.append(str); - appendSpaceBefore(node, "{", source);//$NON-NLS-1$ - source.append("{");//$NON-NLS-1$ - } - appendDelimBefore(node, null, source); - } - - /** - * - */ - protected void formatPre(ICSSNode node, IRegion region, StringBuffer source) { - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - 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])) - appendSpaceBetween(node, (i == 0) ? outside[0] : regions[i - 1], regions[i], source); - source.append(decoratedSelectorRegion(regions[i], (i != 0) ? regions[i - 1] : null, stgy)); - } - if (needS(outside[1])) { - if (isIncludesPreEnd(node, region)) - appendDelimBefore(node, null, source); - else - appendSpaceBetween(node, regions[regions.length - 1], outside[1], source); - } - } - - /** - * - */ - public int getAttrInsertPos(ICSSNode node, String attrName) { - if (node == null || attrName == null || attrName.length() == 0) - return -1; - - if (!ICSSStyleRule.SELECTOR.equalsIgnoreCase(attrName)) - return -1; - - ICSSAttr attr = (ICSSAttr) node.getAttributes().getNamedItem(ICSSStyleRule.SELECTOR); - if (attr != null && ((IndexedRegion) attr).getEndOffset() > 0) - return ((IndexedRegion) attr).getStartOffset(); - else - return ((IndexedRegion) node).getStartOffset(); - } - - /** - * - */ - public synchronized static StyleRuleFormatter getInstance() { - if (instance == null) - instance = new StyleRuleFormatter(); - return instance; - } -} 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 deleted file mode 100644 index 0d83caa211..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/StyleSheetFormatter.java +++ /dev/null @@ -1,260 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.formatter; - - - -import org.eclipse.jface.text.IRegion; -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.provisional.document.ICSSModel; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -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; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; - - -/** - * - */ -public class StyleSheetFormatter extends AbstractCSSSourceFormatter { - - private static StyleSheetFormatter instance; - - /** - * - */ - StyleSheetFormatter() { - super(); - } - - /** - * - */ - protected void formatBefore(ICSSNode node, ICSSNode child, String toAppend, StringBuffer source, IRegion exceptFor) { - String delim = getLineDelimiter(node); - ICSSNode prev = (child != null) ? child.getPreviousSibling() : node.getLastChild(); - if (prev == null && child == null) - return; - int start = (prev != null) ? ((IndexedRegion) prev).getEndOffset() : 0; - int end = (child != null) ? ((IndexedRegion) child).getStartOffset() : 0; - if (start > 0 && start < end) { - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - // get meaning regions - CompoundRegion[] regions = null; - if (exceptFor == null) - regions = getRegionsWithoutWhiteSpaces(structuredDocument, new FormatRegion(start, end - start), stgy); - else { - String pickupType = CSSRegionContexts.CSS_DELIMITER; - if (prev == null) - pickupType = null; - regions = getRegions(structuredDocument, new FormatRegion(start, end - start), exceptFor, pickupType); - } - // generate source - if (prev != null) { - appendDelimBefore(node, (regions.length > 0) ? regions[0] : null, source); - } - for (int i = 0; i < regions.length; i++) { - appendDelimBefore(node, regions[i], source); - source.append(decoratedRegion(regions[i], 0, stgy)); // must - // be - // comments - // or - // semi_colon - if (regions[i].getType() == CSSRegionContexts.CSS_DELIMITER) { - // append delim after - appendDelimBefore(node, null, source); - } - } - if (prev != null) - appendDelimBefore(node, null, source); - } - else if (prev != null && child != null) { // source generation : - // between two rules - source.append(delim); - source.append(delim); - } - else if (((IndexedRegion) node).getEndOffset() > 0) { - if (prev == null) { // source formatting : before the first rule - ICSSNode next = child.getNextSibling(); - int pos = getChildInsertPos(node); - if (next != null && ((IndexedRegion) next).getEndOffset() > 0) - pos = ((IndexedRegion) next).getStartOffset(); - if (pos != 0) { - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - CompoundRegion[] prevRegions = getRegions(structuredDocument, new FormatRegion(0, pos), null, null); - if (prevRegions != null && prevRegions.length > 0) - appendDelimBefore(node, null, source); - } - } - else if (child == null) { // source formatting : after the last - // rule - if (start > 0 && start <= ((IndexedRegion) node).getEndOffset()) { - appendDelimBefore(node, null, source); - } - else if (start <= 0) { - int pos = getChildInsertPos(node); - if (pos < ((IndexedRegion) node).getEndOffset()) { - appendDelimBefore(node, null, source); - } - } - } - } - } - - /** - * - */ - protected void formatBefore(ICSSNode node, ICSSNode child, IRegion region, String toAppend, StringBuffer source) { - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - 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])) - appendDelimBefore(node, regions[i], source); - source.append(decoratedRegion(regions[i], 0, stgy)); // must be - // comments - } - if (needS(outside[1])) { - if (((IndexedRegion) child).getStartOffset() == region.getOffset() + region.getLength()) - appendDelimBefore(node, null, source); - } - } - - /** - * - */ - protected void formatPost(ICSSNode node, StringBuffer source) { - int end = ((IndexedRegion) node).getEndOffset(); - int start = (node.getLastChild() != null && ((IndexedRegion) node.getLastChild()).getEndOffset() > 0) ? ((IndexedRegion) node.getLastChild()).getEndOffset() : getChildInsertPos(node); - if (end > 0 && start < end) { - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, new FormatRegion(start, end - start), stgy); - for (int i = 0; i < regions.length; i++) { - appendDelimBefore(node, regions[i], source); - source.append(decoratedRegion(regions[i], 0, stgy)); - } - if ((regions != null && regions.length > 0 && regions[regions.length - 1].getType() == CSSRegionContexts.CSS_CDC) || node.getOwnerDocument().getModel().getStyleSheetType() == ICSSModel.EMBEDDED) - appendDelimBefore(node, null, source); - } - else { // source generation - if (node.getOwnerDocument().getModel() != null && node.getOwnerDocument().getModel().getStyleSheetType() == ICSSModel.EMBEDDED) - appendDelimBefore(node, null, source); - return; // nothing - } - } - - /** - * - */ - protected void formatPost(ICSSNode node, IRegion region, StringBuffer source) { - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - 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])) - appendDelimBefore(node, regions[i], source); - source.append(decoratedRegion(regions[i], 0, stgy)); - } - } - - /** - * - */ - protected void formatPre(org.eclipse.wst.css.core.internal.provisional.document.ICSSNode node, java.lang.StringBuffer source) { - int start = ((IndexedRegion) node).getStartOffset(); - int end = (node.getFirstChild() != null && ((IndexedRegion) node.getFirstChild()).getEndOffset() > 0) ? ((IndexedRegion) node.getFirstChild()).getStartOffset() : getChildInsertPos(node); - if (end > 0) { - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, new FormatRegion(start, end - start), stgy); - for (int i = 0; i < regions.length; i++) { - if (i != 0 || regions[i].getType() == CSSRegionContexts.CSS_CDO || node.getOwnerDocument().getModel().getStyleSheetType() == ICSSModel.EMBEDDED) - appendDelimBefore(node, regions[i], source); - source.append(decoratedRegion(regions[i], 0, stgy)); - } - if (node.getLastChild() != null && (source.length() > 0 || node.getOwnerDocument().getModel().getStyleSheetType() == ICSSModel.EMBEDDED)) { - appendDelimBefore(node, null, source); - } - } - else if (node.getOwnerDocument().getModel() != null && node.getOwnerDocument().getModel().getStyleSheetType() == ICSSModel.EMBEDDED) { - appendDelimBefore(node, null, source); - // source.append("<!--"); - // appendDelimBefore(node,null, source); - } - else - return; // nothing - } - - /** - * - */ - protected void formatPre(ICSSNode node, IRegion region, java.lang.StringBuffer source) { - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - 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]) || regions[i].getType() == CSSRegionContexts.CSS_CDO || node.getOwnerDocument().getModel().getStyleSheetType() == ICSSModel.EMBEDDED) - appendDelimBefore(node, regions[i], source); - source.append(decoratedRegion(regions[i], 0, stgy)); - } - if (needS(outside[1])) { - if (isIncludesPreEnd(node, region)) { - if (source.length() > 0 || node.getOwnerDocument().getModel().getStyleSheetType() == ICSSModel.EMBEDDED) { - String delim = getLineDelimiter(node); - source.append(delim); - } - } - } - } - - /** - * - */ - public int getChildInsertPos(ICSSNode node) { - int n = ((IndexedRegion) node).getEndOffset(); - if (n > 0) { - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - IStructuredDocumentRegion flatNode = structuredDocument.getRegionAtCharacterOffset(n - 1); - ITextRegion region = flatNode.getRegionAtCharacterOffset(n - 1); - RegionIterator it = new RegionIterator(flatNode, region); - while (it.hasPrev()) { - ITextRegion reg = it.prev(); - if (reg.getType() == CSSRegionContexts.CSS_CDC) - return it.getStructuredDocumentRegion().getStartOffset(reg); - } - return n; - } - return -1; - } - - /** - * - */ - public synchronized static StyleSheetFormatter getInstance() { - if (instance == null) - instance = new StyleSheetFormatter(); - return instance; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/UnknownRuleFormatter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/UnknownRuleFormatter.java deleted file mode 100644 index 81abef8adc..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/formatter/UnknownRuleFormatter.java +++ /dev/null @@ -1,86 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.formatter; - - - -import org.eclipse.jface.text.IRegion; -import org.eclipse.wst.css.core.internal.cleanup.CSSCleanupStrategy; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; -import org.w3c.dom.css.CSSUnknownRule; - - -/** - * - */ -public class UnknownRuleFormatter extends DefaultCSSSourceFormatter { - - private static UnknownRuleFormatter instance; - - /** - * - */ - UnknownRuleFormatter() { - super(); - } - - /** - * - */ - protected void formatPre(ICSSNode node, StringBuffer source) { - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - int start = ((IndexedRegion) node).getStartOffset(); - int end = ((IndexedRegion) node).getEndOffset(); - if (end > 0) { // format source - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - CompoundRegion[] regions = getRegionsWithoutWhiteSpaces(structuredDocument, new FormatRegion(start, end - start), stgy); - for (int i = 0; i < regions.length; i++) { - if (i != 0) - appendSpaceBefore(node, regions[i], source); - source.append(decoratedPropValueRegion(regions[i], stgy)); - } - } - else { // generate source - CSSUnknownRule rule = (CSSUnknownRule) node; - source.append(rule.getCssText()); - } - } - - /** - * - */ - protected void formatPre(ICSSNode node, IRegion region, StringBuffer source) { - CSSCleanupStrategy stgy = getCleanupStrategy(node); - - IStructuredDocument structuredDocument = node.getOwnerDocument().getModel().getStructuredDocument(); - 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])) - appendSpaceBefore(node, regions[i], source); - source.append(decoratedPropValueRegion(regions[i], stgy)); - } - if (needS(outside[1]) && !isIncludesPreEnd(node, region)) - appendSpaceBefore(node, outside[1], source); - } - - /** - * - */ - public synchronized static UnknownRuleFormatter getInstance() { - if (instance == null) - instance = new UnknownRuleFormatter(); - return instance; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMCategory.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMCategory.java deleted file mode 100644 index 12ac146214..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMCategory.java +++ /dev/null @@ -1,16 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodel; - -public interface CSSMMCategory extends CSSMMNode { - - String getCaption(); -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMCharsetRule.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMCharsetRule.java deleted file mode 100644 index d86d46960e..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMCharsetRule.java +++ /dev/null @@ -1,18 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodel; - - - -public interface CSSMMCharsetRule extends CSSMMNode { - - -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMContainer.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMContainer.java deleted file mode 100644 index cedb5d5040..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMContainer.java +++ /dev/null @@ -1,18 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodel; - - - -public interface CSSMMContainer extends CSSMMNode { - - -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMDescriptor.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMDescriptor.java deleted file mode 100644 index 88797925f2..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMDescriptor.java +++ /dev/null @@ -1,20 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodel; - - - -import java.util.Iterator; - -public interface CSSMMDescriptor extends CSSMMNode { - - Iterator getValues(); -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMFontFaceRule.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMFontFaceRule.java deleted file mode 100644 index 0e8dff2506..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMFontFaceRule.java +++ /dev/null @@ -1,18 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodel; - - - -public interface CSSMMFontFaceRule extends CSSMMNode { - - -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMFunction.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMFunction.java deleted file mode 100644 index 9be706e34a..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMFunction.java +++ /dev/null @@ -1,18 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodel; - - - -public interface CSSMMFunction extends CSSMMNode { - - String getFunctionString(); -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMImportRule.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMImportRule.java deleted file mode 100644 index c6bd2afc42..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMImportRule.java +++ /dev/null @@ -1,18 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodel; - - - -public interface CSSMMImportRule extends CSSMMNode { - - -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMKeyword.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMKeyword.java deleted file mode 100644 index 60837fff2b..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMKeyword.java +++ /dev/null @@ -1,18 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodel; - - - -public interface CSSMMKeyword extends CSSMMNode { - - String getKeywordString(); -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMMediaRule.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMMediaRule.java deleted file mode 100644 index e16b7d9c4e..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMMediaRule.java +++ /dev/null @@ -1,18 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodel; - - - -public interface CSSMMMediaRule extends CSSMMNode { - - -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMNode.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMNode.java deleted file mode 100644 index c6a5866d75..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMNode.java +++ /dev/null @@ -1,51 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodel; - - - -import java.util.Iterator; - -public interface CSSMMNode { - String getType(); - - String getName(); - - String getDescription(); - - String getAttribute(String name); - - Iterator getChildNodes(); - - Iterator getDescendants(); - - - static final String _PREFIX = "CSSMM."; //$NON-NLS-1$ - static final String TYPE_KEYWORD = _PREFIX + "Keyword"; //$NON-NLS-1$ - static final String TYPE_UNIT = _PREFIX + "Unit"; //$NON-NLS-1$ - static final String TYPE_FUNCTION = _PREFIX + "Function"; //$NON-NLS-1$ - static final String TYPE_STRING = _PREFIX + "String"; //$NON-NLS-1$ - static final String TYPE_STYLE_SHEET = _PREFIX + "StyleSheet"; //$NON-NLS-1$ - static final String TYPE_PROPERTY = _PREFIX + "Property"; //$NON-NLS-1$ - static final String TYPE_DESCRIPTOR = _PREFIX + "Descriptor"; //$NON-NLS-1$ - static final String TYPE_CONTAINER = _PREFIX + "Container"; //$NON-NLS-1$ - static final String TYPE_NUMBER = _PREFIX + "Number"; //$NON-NLS-1$ - static final String TYPE_SEPARATOR = _PREFIX + "Separator"; //$NON-NLS-1$ - static final String TYPE_CHARSET_RULE = _PREFIX + "CharsetRule"; //$NON-NLS-1$ - static final String TYPE_IMPORT_RULE = _PREFIX + "ImportRule"; //$NON-NLS-1$ - static final String TYPE_STYLE_RULE = _PREFIX + "StyleRule"; //$NON-NLS-1$ - static final String TYPE_MEDIA_RULE = _PREFIX + "MediaRule"; //$NON-NLS-1$ - static final String TYPE_PAGE_RULE = _PREFIX + "PageRule"; //$NON-NLS-1$ - static final String TYPE_FONT_FACE_RULE = _PREFIX + "FontFaceRule"; //$NON-NLS-1$ - static final String TYPE_CATEGORY = _PREFIX + "Category"; //$NON-NLS-1$ - static final String TYPE_META_MODEL = _PREFIX + "MetaModel"; //$NON-NLS-1$ - static final String TYPE_SELECTOR = _PREFIX + "Selector"; //$NON-NLS-1$ -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMNumber.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMNumber.java deleted file mode 100644 index d3c0f5599a..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMNumber.java +++ /dev/null @@ -1,18 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodel; - - - -public interface CSSMMNumber extends CSSMMNode { - - -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMPageRule.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMPageRule.java deleted file mode 100644 index 57a084535e..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMPageRule.java +++ /dev/null @@ -1,18 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodel; - - - -public interface CSSMMPageRule extends CSSMMNode { - - -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMProperty.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMProperty.java deleted file mode 100644 index c92f7282a3..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMProperty.java +++ /dev/null @@ -1,22 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodel; - - - -import java.util.Iterator; - -public interface CSSMMProperty extends CSSMMNode { - - String getCategoryName(); - - Iterator getValues(); -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMSelector.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMSelector.java deleted file mode 100644 index 543bbcce8c..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMSelector.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodel; - -public interface CSSMMSelector extends CSSMMNode { - String getSelectorType(); - - String getSelectorString(); - - - static final String TYPE_EXPRESSION = "Expression"; //$NON-NLS-1$ - static final String TYPE_PSEUDO_CLASS = "PseudoClass"; //$NON-NLS-1$ - static final String TYPE_PSEUDO_ELEMENT = "PseudoElement"; //$NON-NLS-1$ - - // embedded expression type - static final String EXPRESSION_DESCENDANT = "descendant"; //$NON-NLS-1$ - static final String EXPRESSION_CHILD = "child"; //$NON-NLS-1$ - static final String EXPRESSION_ADJACENT = "adjacent"; //$NON-NLS-1$ - static final String EXPRESSION_UNIVERSAL = "universal"; //$NON-NLS-1$ - static final String EXPRESSION_ATTRIBUTE = "attribute"; //$NON-NLS-1$ -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMString.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMString.java deleted file mode 100644 index 6d8374d835..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMString.java +++ /dev/null @@ -1,17 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodel; - - - -public interface CSSMMString extends CSSMMNode { - -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMStyleRule.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMStyleRule.java deleted file mode 100644 index 1ad749b691..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMStyleRule.java +++ /dev/null @@ -1,18 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodel; - - - -public interface CSSMMStyleRule extends CSSMMNode { - - -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMStyleSheet.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMStyleSheet.java deleted file mode 100644 index 3f8b2a3686..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMStyleSheet.java +++ /dev/null @@ -1,18 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodel; - - - -public interface CSSMMStyleSheet extends CSSMMNode { - - -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMUnit.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMUnit.java deleted file mode 100644 index 047d109134..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMMUnit.java +++ /dev/null @@ -1,18 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodel; - - - -public interface CSSMMUnit extends CSSMMNode { - - String getUnitString(); -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMetaModel.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMetaModel.java deleted file mode 100644 index 337048de1c..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSMetaModel.java +++ /dev/null @@ -1,37 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodel; - - - -import java.util.Iterator; - -public interface CSSMetaModel extends CSSMMNode { - - // public interface CSSMetaModel { - CSSMMStyleSheet getStyleSheet(); - - /* - * Shortcut to access property node - */ - // Iterator getProperties(); - // Iterator getDescriptors(); - // CSSMMProperty getProperty(String propertyName); - /* - * access to category information - */ - Iterator getCategories(); - - /* - * Utilities - */ - // Iterator collectNodesByType(String type); -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSProfile.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSProfile.java deleted file mode 100644 index ebdc9fa9f4..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSProfile.java +++ /dev/null @@ -1,31 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodel; - - - -import java.net.URL; - - -public interface CSSProfile { - - String getProfileID(); - - String getProfileName(); - - URL getProfileURL(); - - CSSMetaModel getMetaModel(); - - boolean isDefault(); - - String getOwnerPluginID(); -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSProfileRegistry.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSProfileRegistry.java deleted file mode 100644 index c000cb304d..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/CSSProfileRegistry.java +++ /dev/null @@ -1,69 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodel; - - - -import java.util.Collections; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; - -import org.eclipse.wst.css.core.internal.metamodelimpl.RegistryReader; - - - -public class CSSProfileRegistry { - public synchronized static CSSProfileRegistry getInstance() { - if (fInstance == null) { - fInstance = new CSSProfileRegistry(); - } - return fInstance; - } - - public Iterator getProfiles() { - return Collections.unmodifiableCollection(fProfiles.values()).iterator(); - } - - public CSSProfile getProfile(String profileID) { - return (CSSProfile) fProfiles.get(profileID); - } - - public CSSProfile getDefaultProfile() { - Iterator i = getProfiles(); - while (i.hasNext()) { - CSSProfile profile = (CSSProfile) i.next(); - if (profile.isDefault()) { - return profile; - } - } - return null; - } - - /** - * Constructor for CSSProfileRegistry. - */ - private CSSProfileRegistry() { - super(); - fProfiles = new HashMap(); - Iterator i = new RegistryReader().enumProfiles(); - while (i.hasNext()) { - Object profile = i.next(); - if (profile instanceof CSSProfile) { - fProfiles.put(((CSSProfile) profile).getProfileID(), profile); - } - } - } - - - private static CSSProfileRegistry fInstance = null; - private Map fProfiles = null; -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/util/CSSFunctionID.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/util/CSSFunctionID.java deleted file mode 100644 index 8a4e1659c2..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/util/CSSFunctionID.java +++ /dev/null @@ -1,22 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodel.util; - -public interface CSSFunctionID { - - final static String F_ATTR = "attr"; //$NON-NLS-1$ - final static String F_COUNTER = "counter"; //$NON-NLS-1$ - final static String F_RGB = "rgb"; //$NON-NLS-1$ - final static String F_RECT = "rect"; //$NON-NLS-1$ - final static String F_URI = "uri"; //$NON-NLS-1$ - final static String F_FORMAT = "format"; //$NON-NLS-1$ - final static String F_LOCAL = "local"; //$NON-NLS-1$ -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/util/CSSKeywordID.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/util/CSSKeywordID.java deleted file mode 100644 index b8f898e2a4..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/util/CSSKeywordID.java +++ /dev/null @@ -1,261 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodel.util; - -public interface CSSKeywordID { - - final static String K_100 = "100"; //$NON-NLS-1$ - final static String K_200 = "200"; //$NON-NLS-1$ - final static String K_300 = "300"; //$NON-NLS-1$ - final static String K_400 = "400"; //$NON-NLS-1$ - final static String K_500 = "500"; //$NON-NLS-1$ - final static String K_600 = "600"; //$NON-NLS-1$ - final static String K_700 = "700"; //$NON-NLS-1$ - final static String K_800 = "800"; //$NON-NLS-1$ - final static String K_900 = "900"; //$NON-NLS-1$ - final static String K_ABOVE = "above"; //$NON-NLS-1$ - final static String K_ABSOLUTE = "absolute"; //$NON-NLS-1$ - final static String K_ACTIVEBORDER = "ActiveBorder"; //$NON-NLS-1$ - final static String K_ACTIVECAPTION = "ActiveCaption"; //$NON-NLS-1$ - final static String K_ALL = "all"; //$NON-NLS-1$ - final static String K_ALWAYS = "always"; //$NON-NLS-1$ - final static String K_APPWORKSPACE = "AppWorkspace"; //$NON-NLS-1$ - final static String K_AQUA = "aqua"; //$NON-NLS-1$ - final static String K_ARMENIAN = "armenian"; //$NON-NLS-1$ - final static String K_AUTO = "auto"; //$NON-NLS-1$ - final static String K_AVOID = "avoid"; //$NON-NLS-1$ - final static String K_BACKGROUND = "Background"; //$NON-NLS-1$ - final static String K_BASELINE = "baseline"; //$NON-NLS-1$ - final static String K_BEHIND = "behind"; //$NON-NLS-1$ - final static String K_BELOW = "below"; //$NON-NLS-1$ - final static String K_BIDI_OVERRIDE = "bidi-override"; //$NON-NLS-1$ - final static String K_BLACK = "black"; //$NON-NLS-1$ - final static String K_BLINK = "blink"; //$NON-NLS-1$ - final static String K_BLOCK = "block"; //$NON-NLS-1$ - final static String K_BLUE = "blue"; //$NON-NLS-1$ - final static String K_BOLD = "bold"; //$NON-NLS-1$ - final static String K_BOLDER = "bolder"; //$NON-NLS-1$ - final static String K_BOTH = "both"; //$NON-NLS-1$ - final static String K_BOTTOM = "bottom"; //$NON-NLS-1$ - final static String K_BUTTONFACE = "ButtonFace"; //$NON-NLS-1$ - final static String K_BUTTONHIGHLIGHT = "ButtonHighlight"; //$NON-NLS-1$ - final static String K_BUTTONSHADOW = "ButtonShadow"; //$NON-NLS-1$ - final static String K_BUTTONTEXT = "ButtonText"; //$NON-NLS-1$ - final static String K_CAPITALIZE = "capitalize"; //$NON-NLS-1$ - final static String K_CAPTION = "caption"; //$NON-NLS-1$ - final static String K_CAPTIONTEXT = "CaptionText"; //$NON-NLS-1$ - final static String K_CENTER = "center"; //$NON-NLS-1$ - final static String K_CENTER_LEFT = "center-left"; //$NON-NLS-1$ - final static String K_CENTER_RIGHT = "center-right"; //$NON-NLS-1$ - final static String K_CHILD = "child"; //$NON-NLS-1$ - final static String K_CIRCLE = "circle"; //$NON-NLS-1$ - final static String K_CJK_IDEOGRAPHIC = "cjk-ideographic"; //$NON-NLS-1$ - final static String K_CLOSE_QUOTE = "close-quote"; //$NON-NLS-1$ - final static String K_CODE = "code"; //$NON-NLS-1$ - final static String K_CONDENSED = "condensed"; //$NON-NLS-1$ - final static String K_COLLAPSE = "collapse"; //$NON-NLS-1$ - final static String K_COMPACT = "compact"; //$NON-NLS-1$ - final static String K_CONTINUOUS = "continuous"; //$NON-NLS-1$ - final static String K_CROP = "crop"; //$NON-NLS-1$ - final static String K_CROSS = "cross"; //$NON-NLS-1$ - final static String K_CROSSHAIR = "crosshair"; //$NON-NLS-1$ - final static String K_CURSIVE = "cursive"; //$NON-NLS-1$ - final static String K_DASHED = "dashed"; //$NON-NLS-1$ - final static String K_DECIMAL = "decimal"; //$NON-NLS-1$ - final static String K_DECIMAL_LEADING_ZERO = "decimal-leading-zero"; //$NON-NLS-1$ - final static String K_DEFAULT = "default"; //$NON-NLS-1$ - final static String K_DIGITS = "digits"; //$NON-NLS-1$ - final static String K_DISC = "disc"; //$NON-NLS-1$ - final static String K_DOTTED = "dotted"; //$NON-NLS-1$ - final static String K_DOUBLE = "double"; //$NON-NLS-1$ - final static String K_E_RESIZE = "e-resize"; //$NON-NLS-1$ - final static String K_EMBED = "embed"; //$NON-NLS-1$ - final static String K_EXPANDED = "expanded"; //$NON-NLS-1$ - final static String K_EXTRA_CONDENSED = "extra-condensed"; //$NON-NLS-1$ - final static String K_EXTRA_EXPANDED = "extra-expanded"; //$NON-NLS-1$ - final static String K_FANTASY = "fantasy"; //$NON-NLS-1$ - final static String K_FAR_LEFT = "far-left"; //$NON-NLS-1$ - final static String K_FAR_RIGHT = "far-right"; //$NON-NLS-1$ - final static String K_FAST = "fast"; //$NON-NLS-1$ - final static String K_FASTER = "faster"; //$NON-NLS-1$ - final static String K_FEMALE = "female"; //$NON-NLS-1$ - final static String K_FIXED = "fixed"; //$NON-NLS-1$ - final static String K_FUCHSIA = "fuchsia"; //$NON-NLS-1$ - final static String K_GEORGIAN = "georgian"; //$NON-NLS-1$ - final static String K_GRAY = "gray"; //$NON-NLS-1$ - final static String K_GRAYTEXT = "GrayText"; //$NON-NLS-1$ - final static String K_GREEN = "green"; //$NON-NLS-1$ - final static String K_GROOVE = "groove"; //$NON-NLS-1$ - final static String K_HEBREW = "hebrew"; //$NON-NLS-1$ - final static String K_HELP = "help"; //$NON-NLS-1$ - final static String K_HIDDEN = "hidden"; //$NON-NLS-1$ - final static String K_HIDE = "hide"; //$NON-NLS-1$ - final static String K_HIGH = "high"; //$NON-NLS-1$ - final static String K_HIGHLIGHT = "Highlight"; //$NON-NLS-1$ - final static String K_HIGHLIGHTTEXT = "HighlightText"; //$NON-NLS-1$ - final static String K_HIGHER = "higher"; //$NON-NLS-1$ - final static String K_HIRAGANA = "hiragana"; //$NON-NLS-1$ - final static String K_HIRAGANA_IROHA = "hiragana-iroha"; //$NON-NLS-1$ - final static String K_ICON = "icon"; //$NON-NLS-1$ - final static String K_INACTIVEBORDER = "InactiveBorder"; //$NON-NLS-1$ - final static String K_INACTIVECAPTION = "InactiveCaption"; //$NON-NLS-1$ - final static String K_INACTIVECAPTIONTEXT = "InactiveCaptionText"; //$NON-NLS-1$ - final static String K_INFOBACKGROUND = "InfoBackground"; //$NON-NLS-1$ - final static String K_INFOTEXT = "InfoText"; //$NON-NLS-1$ - final static String K_INLINE = "inline"; //$NON-NLS-1$ - final static String K_INLINE_TABLE = "inline-table"; //$NON-NLS-1$ - final static String K_INSET = "inset"; //$NON-NLS-1$ - final static String K_INSIDE = "inside"; //$NON-NLS-1$ - final static String K_INVERT = "invert"; //$NON-NLS-1$ - final static String K_ITALIC = "italic"; //$NON-NLS-1$ - final static String K_JUSTIFY = "justify"; //$NON-NLS-1$ - final static String K_KATAKANA = "katakana"; //$NON-NLS-1$ - final static String K_KATAKANA_IROHA = "katakana-iroha"; //$NON-NLS-1$ - final static String K_LANDSCAPE = "landscape"; //$NON-NLS-1$ - final static String K_LARGE = "large"; //$NON-NLS-1$ - final static String K_LARGER = "larger"; //$NON-NLS-1$ - final static String K_LEFT = "left"; //$NON-NLS-1$ - final static String K_LEFT_SIDE = "left-side"; //$NON-NLS-1$ - final static String K_LEFTWARDS = "leftwards"; //$NON-NLS-1$ - final static String K_LEVEL = "level"; //$NON-NLS-1$ - final static String K_LIGHTER = "lighter"; //$NON-NLS-1$ - final static String K_LIME = "lime"; //$NON-NLS-1$ - final static String K_LINE_THROUGH = "line-through"; //$NON-NLS-1$ - final static String K_LIST_ITEM = "list-item"; //$NON-NLS-1$ - final static String K_LOUD = "loud"; //$NON-NLS-1$ - final static String K_LOW = "low"; //$NON-NLS-1$ - final static String K_LOWER = "lower"; //$NON-NLS-1$ - final static String K_LOWER_ALPHA = "lower-alpha"; //$NON-NLS-1$ - final static String K_LOWER_GREEK = "lower-greek"; //$NON-NLS-1$ - final static String K_LOWER_LATIN = "lower-latin"; //$NON-NLS-1$ - final static String K_LOWER_ROMAN = "lower-roman"; //$NON-NLS-1$ - final static String K_LOWERCASE = "lowercase"; //$NON-NLS-1$ - final static String K_LTR = "ltr"; //$NON-NLS-1$ - final static String K_MALE = "male"; //$NON-NLS-1$ - final static String K_MARKER = "marker"; //$NON-NLS-1$ - final static String K_MAROON = "maroon"; //$NON-NLS-1$ - final static String K_MEDIUM = "medium"; //$NON-NLS-1$ - final static String K_MENU = "menu"; //$NON-NLS-1$ - final static String K_MENUTEXT = "MenuText"; //$NON-NLS-1$ - final static String K_MESSAGE_BOX = "message-box"; //$NON-NLS-1$ - final static String K_MIDDLE = "middle"; //$NON-NLS-1$ - final static String K_MIX = "mix"; //$NON-NLS-1$ - final static String K_MONOSPACE = "monospace"; //$NON-NLS-1$ - final static String K_MOVE = "move"; //$NON-NLS-1$ - final static String K_N_RESIZE = "n-resize"; //$NON-NLS-1$ - final static String K_NARROWER = "narrower"; //$NON-NLS-1$ - final static String K_NAVY = "navy"; //$NON-NLS-1$ - final static String K_NE_RESIZE = "ne-resize"; //$NON-NLS-1$ - final static String K_NO_CLOSE_QUOTE = "no-close-quote"; //$NON-NLS-1$ - final static String K_NO_OPEN_QUOTE = "no-open-quote"; //$NON-NLS-1$ - final static String K_NO_REPEAT = "no-repeat"; //$NON-NLS-1$ - final static String K_NONE = "none"; //$NON-NLS-1$ - final static String K_NORMAL = "normal"; //$NON-NLS-1$ - final static String K_NOWRAP = "nowrap"; //$NON-NLS-1$ - final static String K_NW_RESIZE = "nw-resize"; //$NON-NLS-1$ - final static String K_OBLIQUE = "oblique"; //$NON-NLS-1$ - final static String K_OLIVE = "olive"; //$NON-NLS-1$ - final static String K_ONCE = "once"; //$NON-NLS-1$ - final static String K_OPEN_QUOTE = "open-quote"; //$NON-NLS-1$ - final static String K_OUTSET = "outset"; //$NON-NLS-1$ - final static String K_OUTSIDE = "outside"; //$NON-NLS-1$ - final static String K_OVERLINE = "overline"; //$NON-NLS-1$ - final static String K_POINTER = "pointer"; //$NON-NLS-1$ - final static String K_PORTRAIT = "portrait"; //$NON-NLS-1$ - final static String K_PRE = "pre"; //$NON-NLS-1$ - final static String K_PURPLE = "purple"; //$NON-NLS-1$ - final static String K_RED = "red"; //$NON-NLS-1$ - final static String K_RELATIVE = "relative"; //$NON-NLS-1$ - final static String K_REPEAT = "repeat"; //$NON-NLS-1$ - final static String K_REPEAT_X = "repeat-x"; //$NON-NLS-1$ - final static String K_REPEAT_Y = "repeat-y"; //$NON-NLS-1$ - final static String K_RIDGE = "ridge"; //$NON-NLS-1$ - final static String K_RIGHT = "right"; //$NON-NLS-1$ - final static String K_RIGHT_SIDE = "right-side"; //$NON-NLS-1$ - final static String K_RIGHTWARDS = "rightwards"; //$NON-NLS-1$ - final static String K_RTL = "rtl"; //$NON-NLS-1$ - final static String K_RUN_IN = "run-in"; //$NON-NLS-1$ - final static String K_S_RESIZE = "s-resize"; //$NON-NLS-1$ - final static String K_SANS_SERIF = "sans-serif"; //$NON-NLS-1$ - final static String K_SCROLL = "scroll"; //$NON-NLS-1$ - final static String K_SCROLLBAR = "Scrollbar"; //$NON-NLS-1$ - final static String K_SE_RESIZE = "se-resize"; //$NON-NLS-1$ - final static String K_SEMI_CONDENSED = "semi-condensed"; //$NON-NLS-1$ - final static String K_SEMI_EXPANDED = "semi-expanded"; //$NON-NLS-1$ - final static String K_SEPARATE = "separate"; //$NON-NLS-1$ - final static String K_SERIF = "serif"; //$NON-NLS-1$ - final static String K_SHOW = "show"; //$NON-NLS-1$ - final static String K_SILENT = "silent"; //$NON-NLS-1$ - final static String K_SILVER = "silver"; //$NON-NLS-1$ - final static String K_SLOW = "slow"; //$NON-NLS-1$ - final static String K_SLOWER = "slower"; //$NON-NLS-1$ - final static String K_SMALL = "small"; //$NON-NLS-1$ - final static String K_SMALL_CAPS = "small-caps"; //$NON-NLS-1$ - final static String K_SMALL_CAPTION = "small-caption"; //$NON-NLS-1$ - final static String K_SMALLER = "smaller"; //$NON-NLS-1$ - final static String K_SOFT = "soft"; //$NON-NLS-1$ - final static String K_SOLID = "solid"; //$NON-NLS-1$ - final static String K_SPELL_OUT = "spell-out"; //$NON-NLS-1$ - final static String K_SQUARE = "square"; //$NON-NLS-1$ - final static String K_STATIC = "static"; //$NON-NLS-1$ - final static String K_STATUS_BAR = "status-bar"; //$NON-NLS-1$ - final static String K_SUB = "sub"; //$NON-NLS-1$ - final static String K_SUPER = "super"; //$NON-NLS-1$ - final static String K_SW_RESIZE = "sw-resize"; //$NON-NLS-1$ - final static String K_TABLE = "table"; //$NON-NLS-1$ - final static String K_TABLE_CAPTION = "table-caption"; //$NON-NLS-1$ - final static String K_TABLE_CELL = "table-cell"; //$NON-NLS-1$ - final static String K_TABLE_COLUMN = "table-column"; //$NON-NLS-1$ - final static String K_TABLE_COLUMN_GROUP = "table-column-group"; //$NON-NLS-1$ - final static String K_TABLE_FOOTER_GROUP = "table-footer-group"; //$NON-NLS-1$ - final static String K_TABLE_HEADER_GROUP = "table-header-group"; //$NON-NLS-1$ - final static String K_TABLE_ROW = "table-row"; //$NON-NLS-1$ - final static String K_TABLE_ROW_GROUP = "table-row-group"; //$NON-NLS-1$ - final static String K_TEAL = "teal"; //$NON-NLS-1$ - final static String K_TEXT = "text"; //$NON-NLS-1$ - final static String K_TEXT_TOP = "text-top"; //$NON-NLS-1$ - final static String K_TEXT_BOTTOM = "text-bottom"; //$NON-NLS-1$ - final static String K_THICK = "thick"; //$NON-NLS-1$ - final static String K_THIN = "thin"; //$NON-NLS-1$ - final static String K_THREEDDARKSHADOW = "ThreeDDarkShadow"; //$NON-NLS-1$ - final static String K_THREEDFACE = "ThreeDFace"; //$NON-NLS-1$ - final static String K_THREEDHIGHLIGHT = "ThreeDHighlight"; //$NON-NLS-1$ - final static String K_THREEDLIGHTSHADOW = "ThreeDLightShadow"; //$NON-NLS-1$ - final static String K_THREEDSHADOW = "ThreeDShadow"; //$NON-NLS-1$ - final static String K_TOP = "top"; //$NON-NLS-1$ - final static String K_TRANSPARENT = "transparent"; //$NON-NLS-1$ - final static String K_ULTRA_CONDENSED = "ultra-condensed"; //$NON-NLS-1$ - final static String K_ULTRA_EXPANDED = "ultra-expanded"; //$NON-NLS-1$ - final static String K_UNDERLINE = "underline"; //$NON-NLS-1$ - final static String K_UPPER_ALPHA = "upper-alpha"; //$NON-NLS-1$ - final static String K_UPPER_LATIN = "upper-latin"; //$NON-NLS-1$ - final static String K_UPPER_ROMAN = "upper-roman"; //$NON-NLS-1$ - final static String K_UPPERCASE = "uppercase"; //$NON-NLS-1$ - final static String K_VISIBLE = "visible"; //$NON-NLS-1$ - final static String K_W_RESIZE = "w-resize"; //$NON-NLS-1$ - final static String K_WAIT = "wait"; //$NON-NLS-1$ - final static String K_WHITE = "white"; //$NON-NLS-1$ - final static String K_WIDER = "wider"; //$NON-NLS-1$ - final static String K_WINDOW = "Window"; //$NON-NLS-1$ - final static String K_WINDOWFRAME = "WindowFrame"; //$NON-NLS-1$ - final static String K_WINDOWTEXT = "WindowText"; //$NON-NLS-1$ - final static String K_X_FAST = "x-fast"; //$NON-NLS-1$ - final static String K_X_HIGH = "x-high"; //$NON-NLS-1$ - final static String K_X_LARGE = "x-large"; //$NON-NLS-1$ - final static String K_X_LOUD = "x-loud"; //$NON-NLS-1$ - final static String K_X_LOW = "x-low"; //$NON-NLS-1$ - final static String K_X_SLOW = "x-slow"; //$NON-NLS-1$ - final static String K_X_SMALL = "x-small"; //$NON-NLS-1$ - final static String K_X_SOFT = "x-soft"; //$NON-NLS-1$ - final static String K_XX_SMALL = "xx-small"; //$NON-NLS-1$ - final static String K_XX_LARGE = "xx-large"; //$NON-NLS-1$ - final static String K_YELLOW = "yellow"; //$NON-NLS-1$ -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/util/CSSMMTypeCollector.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/util/CSSMMTypeCollector.java deleted file mode 100644 index c26805cff6..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/util/CSSMMTypeCollector.java +++ /dev/null @@ -1,62 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodel.util; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import org.eclipse.wst.css.core.internal.metamodel.CSSMMNode; - - -public class CSSMMTypeCollector extends CSSMetaModelTraverser { - - /** - * Constructor for TypeCollector. - */ - public CSSMMTypeCollector() { - super(); - } - - public void apply(CSSMMNode node, String type) { - fType = type; - fNodes = new ArrayList(); - apply(node); - } - - public void collectNestedType(boolean nested) { - fNested = nested; - } - - protected short preNode(CSSMMNode node) { - short rc = TRAV_CONT; - if (node != null) { - if (fType == node.getType()) { - if (!fNodes.contains(node)) { - fNodes.add(node); - } - if (!fNested) { - rc = TRAV_PRUNE; - } - } - } - return rc; - } - - public Iterator getNodes() { - return fNodes.iterator(); - } - - - private boolean fNested = false; - private String fType = null; - List fNodes = null; -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/util/CSSMediaGroupID.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/util/CSSMediaGroupID.java deleted file mode 100644 index b78cf7e8f6..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/util/CSSMediaGroupID.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodel.util; - -public interface CSSMediaGroupID { - - final static String M_CONTINUOUS = "continuous"; //$NON-NLS-1$ - final static String M_PAGED = "paged"; //$NON-NLS-1$ - - final static String M_VISUAL = "visual"; //$NON-NLS-1$ - final static String M_AURAL = "aural"; //$NON-NLS-1$ - final static String M_TACTILE = "tactile"; //$NON-NLS-1$ - - final static String M_GRID = "grid"; //$NON-NLS-1$ - final static String M_BITMAP = "bitmap"; //$NON-NLS-1$ - - final static String M_INTERACTIVE = "interactive"; //$NON-NLS-1$ - final static String M_STATIC = "static"; //$NON-NLS-1$ - - final static String M_ALL = "all"; //$NON-NLS-1$ -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/util/CSSMetaModelFinder.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/util/CSSMetaModelFinder.java deleted file mode 100644 index 75da697df2..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/util/CSSMetaModelFinder.java +++ /dev/null @@ -1,51 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodel.util; - -import org.eclipse.wst.css.core.internal.metamodel.CSSMetaModel; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; - - -public class CSSMetaModelFinder { - /** - * Constructor for CSSMetaModelFinder. - */ - private CSSMetaModelFinder() { - super(); - } - - static synchronized public CSSMetaModelFinder getInstance() { - if (fInstance == null) { - fInstance = new CSSMetaModelFinder(); - } - return fInstance; - } - - public CSSMetaModel findMetaModelFor(ICSSNode node) { - return CSSProfileFinder.getInstance().findProfileFor(node).getMetaModel(); - } - - public CSSMetaModel findMetaModelFor(IStructuredModel model) { - return CSSProfileFinder.getInstance().findProfileFor(model).getMetaModel(); - - } - - // findMetaModelFor(Node) is not used. - // Even if it is used, it can be replaced with - // findMetaModelFor(IStructuredModel) easily - - public CSSMetaModel findMetaModelFor(String baseLocation) { - return CSSProfileFinder.getInstance().findProfileFor(baseLocation).getMetaModel(); - } - - static private CSSMetaModelFinder fInstance = null; -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/util/CSSMetaModelTraverser.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/util/CSSMetaModelTraverser.java deleted file mode 100644 index cabedfe569..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/util/CSSMetaModelTraverser.java +++ /dev/null @@ -1,92 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodel.util; - -import java.util.Iterator; -import java.util.Stack; - -import org.eclipse.wst.css.core.internal.metamodel.CSSMMNode; - - - -abstract public class CSSMetaModelTraverser { - - /** - * Constructor for Traverser. - */ - public CSSMetaModelTraverser() { - super(); - } - - public final void apply(CSSMMNode node) { - fTravStack = new Stack(); - - begin(node); - traverse(node); - end(node); - } - - private final short traverse(CSSMMNode node) { - if (node == null) { - return TRAV_CONT; - } - - fTravStack.push(node); - - short rc; - rc = preNode(node); - - if (rc == TRAV_CONT) { - Iterator i = node.getChildNodes(); - while (i.hasNext()) { - CSSMMNode child = (CSSMMNode) i.next(); - short rcChild = traverse(child); - if (rcChild == TRAV_STOP) { - fTravStack.pop(); - return TRAV_STOP; - } - } - } - else if (rc == TRAV_STOP) { - fTravStack.pop(); - return TRAV_STOP; - } - - rc = postNode(node); - - fTravStack.pop(); - return (rc == TRAV_PRUNE) ? TRAV_CONT : rc; - } - - protected void begin(CSSMMNode node) { - - } - - protected void end(CSSMMNode node) { - - } - - protected short preNode(CSSMMNode node) { - return TRAV_CONT; - } - - protected short postNode(CSSMMNode node) { - return TRAV_CONT; - } - - - Stack fTravStack = null; - - protected static final short TRAV_CONT = 0; - protected static final short TRAV_STOP = 1; - protected static final short TRAV_PRUNE = 2; - -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/util/CSSMetaModelUtil.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/util/CSSMetaModelUtil.java deleted file mode 100644 index 33a75ca9aa..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/util/CSSMetaModelUtil.java +++ /dev/null @@ -1,120 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodel.util; - -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; - -import org.eclipse.wst.css.core.internal.metamodel.CSSMMDescriptor; -import org.eclipse.wst.css.core.internal.metamodel.CSSMMNode; -import org.eclipse.wst.css.core.internal.metamodel.CSSMMProperty; -import org.eclipse.wst.css.core.internal.metamodel.CSSMetaModel; -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.ICSSStyleRule; -import org.w3c.dom.css.CSSFontFaceRule; - - -public class CSSMetaModelUtil { - public CSSMetaModelUtil(CSSMetaModel metamodel) { - super(); - fMetaModel = metamodel; - } - - public Iterator getProperties() { - return collectNodesByType(CSSMMNode.TYPE_PROPERTY); - } - - public Iterator getDescriptors() { - return collectNodesByType(CSSMMNode.TYPE_DESCRIPTOR); - } - - public Iterator collectNodesByType(String type) { - CSSMMTypeCollector collector = new CSSMMTypeCollector(); - collector.apply(fMetaModel, type); - return collector.getNodes(); - } - - public CSSMMProperty getProperty(String propertyName) { - Iterator iProperty = getProperties(); - while (iProperty.hasNext()) { - CSSMMNode node = (CSSMMNode) iProperty.next(); - if (node.getName().equalsIgnoreCase(propertyName)) { - return (CSSMMProperty) node; - } - } - return null; - } - - public CSSMMDescriptor getDescriptor(String descriptorName) { - Iterator iDescriptor = getDescriptors(); - while (iDescriptor.hasNext()) { - CSSMMNode node = (CSSMMNode) iDescriptor.next(); - if (node.getName().equalsIgnoreCase(descriptorName)) { - return (CSSMMDescriptor) node; - } - } - return null; - } - - public CSSMMNode getMetaModelNodeFor(ICSSNode node) { - if (node instanceof ICSSStyleDeclaration) { - node = node.getParentNode(); - } - if (node instanceof ICSSStyleDeclItem) { - ICSSNode parent = node.getParentNode(); - if (parent != null) { - parent = parent.getParentNode(); - } - if (parent instanceof ICSSStyleRule) { - return getProperty(((ICSSStyleDeclItem) node).getPropertyName()); - } - else if (parent instanceof CSSFontFaceRule) { - return getDescriptor(((ICSSStyleDeclItem) node).getPropertyName()); - } - } - if (node == null) { - return null; - } - - if (fTypeMap == null) { - fTypeMap = new HashMap(); - fTypeMap.put(new Short(ICSSNode.STYLERULE_NODE), CSSMMNode.TYPE_STYLE_RULE); - fTypeMap.put(new Short(ICSSNode.FONTFACERULE_NODE), CSSMMNode.TYPE_FONT_FACE_RULE); - fTypeMap.put(new Short(ICSSNode.PAGERULE_NODE), CSSMMNode.TYPE_PAGE_RULE); - } - - String nodeType = (String) fTypeMap.get(new Short(node.getNodeType())); - if (nodeType == null) { - return null; - } - - Iterator iNodes = collectNodesByType(nodeType); - if (iNodes.hasNext()) { - CSSMMNode targetNode = (CSSMMNode) iNodes.next(); - if (!iNodes.hasNext()) { // it's only one - return targetNode; - } - } - - return null; - } - - public CSSMetaModel getMetaModel() { - return fMetaModel; - } - - - private CSSMetaModel fMetaModel = null; - private Map fTypeMap = null; -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/util/CSSNumberID.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/util/CSSNumberID.java deleted file mode 100644 index bef698372d..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/util/CSSNumberID.java +++ /dev/null @@ -1,23 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodel.util; - -public interface CSSNumberID { - - final static java.lang.String N_ANGLE = "angle";//$NON-NLS-1$ - final static java.lang.String N_FREQUENCY = "frequency";//$NON-NLS-1$ - final static java.lang.String N_INTEGER = "integer";//$NON-NLS-1$ - final static java.lang.String N_LENGTH = "length";//$NON-NLS-1$ - final static java.lang.String N_PERCENTAGE = "percentage";//$NON-NLS-1$ - final static java.lang.String N_TIME = "time";//$NON-NLS-1$ - final static java.lang.String N_HASH = "hash"; //$NON-NLS-1$ - final static java.lang.String N_NUM = "number";//$NON-NLS-1$ -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/util/CSSProfileFinder.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/util/CSSProfileFinder.java deleted file mode 100644 index 6d7f528521..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/util/CSSProfileFinder.java +++ /dev/null @@ -1,90 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 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.metamodel.util; - -import org.eclipse.core.resources.IResource; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Path; -import org.eclipse.wst.css.core.internal.contentproperties.CSSContentProperties; -import org.eclipse.wst.css.core.internal.metamodel.CSSProfile; -import org.eclipse.wst.css.core.internal.metamodel.CSSProfileRegistry; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSDocument; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; - - -public class CSSProfileFinder { - /** - * Constructor for CSSProfileFinder. - */ - private CSSProfileFinder() { - super(); - } - - static synchronized public CSSProfileFinder getInstance() { - if (fInstance == null) { - fInstance = new CSSProfileFinder(); - } - return fInstance; - } - - public CSSProfile findProfileFor(ICSSNode node) { - ICSSModel model = null; - if (node != null) { - ICSSDocument doc = node.getOwnerDocument(); - if (doc != null) { - model = doc.getModel(); - } - } - return findProfileFor(model); - } - - public CSSProfile findProfileFor(IStructuredModel model) { - String baseLocation = null; - if (model instanceof ICSSModel) { - Object modelType = ((ICSSModel) model).getStyleSheetType(); - if (modelType == ICSSModel.EXTERNAL) { - baseLocation = model.getBaseLocation(); - } - else if (modelType == ICSSModel.EMBEDDED || modelType == ICSSModel.INLINE) { - baseLocation = model.getBaseLocation(); // may be null - } - } - else if (model != null) { - baseLocation = model.getBaseLocation(); - } - return findProfileFor(baseLocation); - } - - public CSSProfile findProfileFor(String baseLocation) { - CSSProfileRegistry reg = CSSProfileRegistry.getInstance(); - CSSProfile profile = null; - - if (baseLocation != null) { - IPath path = new Path(baseLocation); - IResource resource = ResourcesPlugin.getWorkspace().getRoot().getFileForLocation(path); - if (resource == null && path.segmentCount() > 1) - resource = ResourcesPlugin.getWorkspace().getRoot().getFile(path); - if (resource != null) { - String profileID = CSSContentProperties.getProperty(CSSContentProperties.CSS_PROFILE, resource, true); - if (profileID != null && 0 < profileID.length()) { - profile = reg.getProfile(profileID); - } - } - } - - return (profile != null) ? profile : reg.getDefaultProfile(); - } - - static private CSSProfileFinder fInstance = null; -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/util/CSSPropertyID.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/util/CSSPropertyID.java deleted file mode 100644 index 550e8e7139..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/util/CSSPropertyID.java +++ /dev/null @@ -1,137 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodel.util; - -public interface CSSPropertyID { - - final static String P_AZIMUTH = "azimuth"; //$NON-NLS-1$ - final static String P_BG = "background"; //$NON-NLS-1$ - final static String P_BG_ATTACHMENT = "background-attachment"; //$NON-NLS-1$ - final static String P_BG_COLOR = "background-color"; //$NON-NLS-1$ - final static String P_BG_IMAGE = "background-image"; //$NON-NLS-1$ - final static String P_BG_POSITION = "background-position"; //$NON-NLS-1$ - final static String P_BG_REPEAT = "background-repeat"; //$NON-NLS-1$ - final static String P_BORDER = "border"; //$NON-NLS-1$ - final static String P_BORDER_COLLAPSE = "border-collapse"; //$NON-NLS-1$ - final static String P_BORDER_COLOR = "border-color"; //$NON-NLS-1$ - final static String P_BORDER_SPACING = "border-spacing"; //$NON-NLS-1$ - final static String P_BORDER_STYLE = "border-style"; //$NON-NLS-1$ - final static String P_BORDER_TOP = "border-top"; //$NON-NLS-1$ - final static String P_BORDER_RIGHT = "border-right"; //$NON-NLS-1$ - final static String P_BORDER_BOTTOM = "border-bottom"; //$NON-NLS-1$ - final static String P_BORDER_LEFT = "border-left"; //$NON-NLS-1$ - final static String P_BORDER_TOP_COLOR = "border-top-color"; //$NON-NLS-1$ - final static String P_BORDER_RIGHT_COLOR = "border-right-color"; //$NON-NLS-1$ - final static String P_BORDER_BOTTOM_COLOR = "border-bottom-color"; //$NON-NLS-1$ - final static String P_BORDER_LEFT_COLOR = "border-left-color"; //$NON-NLS-1$ - final static String P_BORDER_TOP_STYLE = "border-top-style"; //$NON-NLS-1$ - final static String P_BORDER_RIGHT_STYLE = "border-right-style"; //$NON-NLS-1$ - final static String P_BORDER_BOTTOM_STYLE = "border-bottom-style"; //$NON-NLS-1$ - final static String P_BORDER_LEFT_STYLE = "border-left-style"; //$NON-NLS-1$ - final static String P_BORDER_TOP_WIDTH = "border-top-width"; //$NON-NLS-1$ - final static String P_BORDER_RIGHT_WIDTH = "border-right-width"; //$NON-NLS-1$ - final static String P_BORDER_BOTTOM_WIDTH = "border-bottom-width"; //$NON-NLS-1$ - final static String P_BORDER_LEFT_WIDTH = "border-left-width"; //$NON-NLS-1$ - final static String P_BORDER_WIDTH = "border-width"; //$NON-NLS-1$ - final static String P_BOTTOM = "bottom"; //$NON-NLS-1$ - final static String P_CAPTION_SIDE = "caption-side"; //$NON-NLS-1$ - final static String P_CLEAR = "clear"; //$NON-NLS-1$ - final static String P_CLIP = "clip"; //$NON-NLS-1$ - final static String P_COLOR = "color"; //$NON-NLS-1$ - final static String P_CONTENT = "content"; //$NON-NLS-1$ - final static String P_COUNTER_INCREMENT = "counter-increment"; //$NON-NLS-1$ - final static String P_COUNTER_RESET = "counter-reset"; //$NON-NLS-1$ - final static String P_CUE = "cue"; //$NON-NLS-1$ - final static String P_CUE_AFTER = "cue-after"; //$NON-NLS-1$ - final static String P_CUE_BEFORE = "cue-before"; //$NON-NLS-1$ - final static String P_CURSOR = "cursor"; //$NON-NLS-1$ - final static String P_DIRECTION = "direction"; //$NON-NLS-1$ - final static String P_DISPLAY = "display"; //$NON-NLS-1$ - final static String P_ELEVATION = "elevation"; //$NON-NLS-1$ - final static String P_EMPTY_CELLS = "empty-cells"; //$NON-NLS-1$ - final static String P_FLOAT = "float"; //$NON-NLS-1$ - final static String P_FONT = "font"; //$NON-NLS-1$ - final static String P_FONT_FAMILY = "font-family"; //$NON-NLS-1$ - final static String P_FONT_SIZE = "font-size"; //$NON-NLS-1$ - final static String P_FONT_SIZE_ADJUST = "font-size-adjust"; //$NON-NLS-1$ - final static String P_FONT_STRETCH = "font-stretch"; //$NON-NLS-1$ - final static String P_FONT_STYLE = "font-style"; //$NON-NLS-1$ - final static String P_FONT_VARIANT = "font-variant"; //$NON-NLS-1$ - final static String P_FONT_WEIGHT = "font-weight"; //$NON-NLS-1$ - final static String P_HEIGHT = "height"; //$NON-NLS-1$ - final static String P_LEFT = "left"; //$NON-NLS-1$ - final static String P_LETTER_SPACING = "letter-spacing"; //$NON-NLS-1$ - final static String P_LINE_HEIGHT = "line-height"; //$NON-NLS-1$ - final static String P_LIST_STYLE = "list-style"; //$NON-NLS-1$ - final static String P_LIST_STYLE_IMAGE = "list-style-image"; //$NON-NLS-1$ - final static String P_LIST_STYLE_POSITION = "list-style-position"; //$NON-NLS-1$ - final static String P_LIST_STYLE_TYPE = "list-style-type"; //$NON-NLS-1$ - final static String P_MARGIN = "margin"; //$NON-NLS-1$ - final static String P_MARGIN_TOP = "margin-top"; //$NON-NLS-1$ - final static String P_MARGIN_RIGHT = "margin-right"; //$NON-NLS-1$ - final static String P_MARGIN_BOTTOM = "margin-bottom"; //$NON-NLS-1$ - final static String P_MARGIN_LEFT = "margin-left"; //$NON-NLS-1$ - final static String P_MARKER_OFFSET = "marker-offset"; //$NON-NLS-1$ - final static String P_MARKS = "marks"; //$NON-NLS-1$ - final static String P_MAX_HEIGHT = "max-height"; //$NON-NLS-1$ - final static String P_MAX_WIDTH = "max-width"; //$NON-NLS-1$ - final static String P_MIN_HEIGHT = "min-height"; //$NON-NLS-1$ - final static String P_MIN_WIDTH = "min-width"; //$NON-NLS-1$ - final static String P_ORPHANS = "orphans"; //$NON-NLS-1$ - final static String P_OUTLINE = "outline"; //$NON-NLS-1$ - final static String P_OUTLINE_COLOR = "outline-color"; //$NON-NLS-1$ - final static String P_OUTLINE_STYLE = "outline-style"; //$NON-NLS-1$ - final static String P_OUTLINE_WIDTH = "outline-width"; //$NON-NLS-1$ - final static String P_OVERFLOW = "overflow"; //$NON-NLS-1$ - final static String P_PADDING = "padding"; //$NON-NLS-1$ - final static String P_PADDING_TOP = "padding-top"; //$NON-NLS-1$ - final static String P_PADDING_RIGHT = "padding-right"; //$NON-NLS-1$ - final static String P_PADDING_BOTTOM = "padding-bottom"; //$NON-NLS-1$ - final static String P_PADDING_LEFT = "padding-left"; //$NON-NLS-1$ - final static String P_PAGE = "page"; //$NON-NLS-1$ - final static String P_PAGE_BREAK_AFTER = "page-break-after"; //$NON-NLS-1$ - final static String P_PAGE_BREAK_BEFORE = "page-break-before"; //$NON-NLS-1$ - final static String P_PAGE_BREAK_INSIDE = "page-break-inside"; //$NON-NLS-1$ - final static String P_PAUSE = "pause"; //$NON-NLS-1$ - final static String P_PAUSE_AFTER = "pause-after"; //$NON-NLS-1$ - final static String P_PAUSE_BEFORE = "pause-before"; //$NON-NLS-1$ - final static String P_PITCH = "pitch"; //$NON-NLS-1$ - final static String P_PITCH_RANGE = "pitch-range"; //$NON-NLS-1$ - final static String P_PLAY_DURING = "play-during"; //$NON-NLS-1$ - final static String P_POSITION = "position"; //$NON-NLS-1$ - final static String P_QUOTES = "quotes"; //$NON-NLS-1$ - final static String P_RICHNESS = "richness"; //$NON-NLS-1$ - final static String P_RIGHT = "right"; //$NON-NLS-1$ - final static String P_SIZE = "size"; //$NON-NLS-1$ - final static String P_SPEAK = "speak"; //$NON-NLS-1$ - final static String P_SPEAK_HEADER = "speak-header"; //$NON-NLS-1$ - final static String P_SPEAK_NUMERAL = "speak-numeral"; //$NON-NLS-1$ - final static String P_SPEAK_PUNCTUATION = "speak-punctuation"; //$NON-NLS-1$ - final static String P_SPEECH_RATE = "speech-rate"; //$NON-NLS-1$ - final static String P_STRESS = "stress"; //$NON-NLS-1$ - final static String P_TABLE_LAYOUT = "table-layout"; //$NON-NLS-1$ - final static String P_TEXT_ALIGN = "text-align"; //$NON-NLS-1$ - final static String P_TEXT_DECORATION = "text-decoration"; //$NON-NLS-1$ - final static String P_TEXT_INDENT = "text-indent"; //$NON-NLS-1$ - final static String P_TEXT_SHADOW = "text-shadow"; //$NON-NLS-1$ - final static String P_TEXT_TRANSFORM = "text-transform"; //$NON-NLS-1$ - final static String P_TOP = "top"; //$NON-NLS-1$ - final static String P_UNICODE_BIDI = "unicode-bidi"; //$NON-NLS-1$ - final static String P_VERTICAL_ALIGN = "vertical-align"; //$NON-NLS-1$ - final static String P_VISIBILITY = "visibility"; //$NON-NLS-1$ - final static String P_VOICE_FAMILY = "voice-family"; //$NON-NLS-1$ - final static String P_VOLUME = "volume"; //$NON-NLS-1$ - final static String P_WHITE_SPACE = "white-space"; //$NON-NLS-1$ - final static String P_WIDOWS = "widows"; //$NON-NLS-1$ - final static String P_WIDTH = "width"; //$NON-NLS-1$ - final static String P_WORD_SPACING = "word-spacing"; //$NON-NLS-1$ - final static String P_Z_INDEX = "z-index"; //$NON-NLS-1$ -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/util/CSSStringID.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/util/CSSStringID.java deleted file mode 100644 index 6522cfbc0a..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/util/CSSStringID.java +++ /dev/null @@ -1,22 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodel.util; - -public interface CSSStringID { - - final static String S_ANY = "any"; //$NON-NLS-1$ - final static String S_COUNTER_IDENTIFIER = "counter-identifier"; //$NON-NLS-1$ - final static String S_FAMILY_NAME = "family-name"; //$NON-NLS-1$ - final static String S_FONT_FACE_NAME = "font-face-name"; //$NON-NLS-1$ - final static String S_PAGE_IDENTIFIER = "page-identifier"; //$NON-NLS-1$ - final static String S_SPECIFIC_VOICE = "specific-voice"; //$NON-NLS-1$ - final static String S_URANGE = "urange"; //$NON-NLS-1$ -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/util/CSSUnitID.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/util/CSSUnitID.java deleted file mode 100644 index 0f46d32adc..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodel/util/CSSUnitID.java +++ /dev/null @@ -1,34 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodel.util; - -public interface CSSUnitID { - - final static String U_CM = "cm";//$NON-NLS-1$ - final static String U_DEG = "deg";//$NON-NLS-1$ - final static String U_EMS = "em";//$NON-NLS-1$ - final static String U_EXS = "ex";//$NON-NLS-1$ - final static String U_GRAD = "grad";//$NON-NLS-1$ - final static String U_HASH = "#";//$NON-NLS-1$ - final static String U_HZ = "Hz";//$NON-NLS-1$ - final static String U_IN = "in";//$NON-NLS-1$ - // final static String U_INTEGER = "INTEGER";//$NON-NLS-1$ - final static String U_KHZ = "kHz";//$NON-NLS-1$ - final static String U_MM = "mm";//$NON-NLS-1$ - final static String U_MS = "ms";//$NON-NLS-1$ - // final static String U_NUMBER = "NUMBER";//$NON-NLS-1$ - final static String U_PC = "pc";//$NON-NLS-1$ - final static String U_PERCENTAGE = "%";//$NON-NLS-1$ - final static String U_PT = "pt";//$NON-NLS-1$ - final static String U_PX = "px";//$NON-NLS-1$ - final static String U_RAD = "rad";//$NON-NLS-1$ - final static String U_S = "s";//$NON-NLS-1$ -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMCategoryImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMCategoryImpl.java deleted file mode 100644 index 34b0e6d3ba..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMCategoryImpl.java +++ /dev/null @@ -1,75 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodelimpl; - -import org.eclipse.wst.css.core.internal.metamodel.CSSMMCategory; -import org.eclipse.wst.css.core.internal.metamodel.CSSMMNode; - -class CSSMMCategoryImpl extends CSSMMNodeImpl implements CSSMMCategory { - - public CSSMMCategoryImpl() { - super(); - } - - public String getType() { - return TYPE_CATEGORY; - } - - public String getName() { - String name = getAttribute(ATTR_NAME); - if (name != null) { - return name.toLowerCase(); - } - else { - return null; - } - } - - /* - * @see CSSMMNodeImpl#canContain(CSSMMNode) - */ - boolean canContain(CSSMMNode child) { - return false; - } - - public String getCaption() { - return fCaption; - } - - void setCaption(String caption) { - fCaption = caption; - } - - /* - * @see CSSMMNodeImpl#getError() - */ - short getError() { - if (getName() == null) { - return MetaModelErrors.ERROR_NOT_DEFINED; - } - else if (getCaption() == null) { - return MetaModelErrors.ERROR_NO_CHILD; - } - else { - return MetaModelErrors.NO_ERROR; - } - } - - /* - * @see Object#toString() - */ - public String toString() { - return getCaption(); - } - - - private String fCaption = null; -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMCharsetRuleImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMCharsetRuleImpl.java deleted file mode 100644 index a064b514ed..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMCharsetRuleImpl.java +++ /dev/null @@ -1,45 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodelimpl; - -import org.eclipse.wst.css.core.internal.metamodel.CSSMMCharsetRule; -import org.eclipse.wst.css.core.internal.metamodel.CSSMMNode; - -class CSSMMCharsetRuleImpl extends CSSMMNodeImpl implements CSSMMCharsetRule { - - - public CSSMMCharsetRuleImpl() { - super(); - } - - public String getType() { - return TYPE_CHARSET_RULE; - } - - public String getName() { - return NAME_NOT_AVAILABLE; - } - - /* - * @see CSSMMNodeImpl#canContain(CSSMMNode) - */ - boolean canContain(CSSMMNode child) { - return false; - } - - /* - * @see CSSMMNodeImpl#getError() - */ - short getError() { - return MetaModelErrors.NO_ERROR; - } - -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMContainerImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMContainerImpl.java deleted file mode 100644 index eae79eae69..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMContainerImpl.java +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodelimpl; - -import org.eclipse.wst.css.core.internal.metamodel.CSSMMContainer; -import org.eclipse.wst.css.core.internal.metamodel.CSSMMNode; - -class CSSMMContainerImpl extends CSSMMNodeImpl implements CSSMMContainer { - - - public CSSMMContainerImpl() { - super(); - } - - public String getType() { - return TYPE_CONTAINER; - } - - public String getName() { - String name = getAttribute(ATTR_NAME); - if (name != null) { - return name.toLowerCase(); - } - else { - return null; - } - } - - /* - * @see CSSMMNodeImpl#canContain(CSSMMNode) - */ - boolean canContain(CSSMMNode child) { - if (child == null) { - return false; - } - String type = child.getType(); - return (type == TYPE_NUMBER || type == TYPE_KEYWORD || type == TYPE_FUNCTION || type == TYPE_CONTAINER); - } - - /* - * @see CSSMMNodeImpl#getError() - */ - short getError() { - if (getName() == null) { - return MetaModelErrors.ERROR_NOT_DEFINED; - } - else if (getChildCount() == 0) { - return MetaModelErrors.ERROR_NO_CHILD; - } - else { - return MetaModelErrors.NO_ERROR; - } - } - -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMDescriptorImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMDescriptorImpl.java deleted file mode 100644 index 811d66494b..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMDescriptorImpl.java +++ /dev/null @@ -1,75 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodelimpl; - -import java.util.Iterator; - -import org.eclipse.wst.css.core.internal.metamodel.CSSMMDescriptor; -import org.eclipse.wst.css.core.internal.metamodel.CSSMMNode; - - -class CSSMMDescriptorImpl extends CSSMMNodeImpl implements CSSMMDescriptor { - - - public CSSMMDescriptorImpl() { - super(); - } - - public String getType() { - return TYPE_DESCRIPTOR; - } - - public String getName() { - String name = getAttribute(ATTR_NAME); - if (name != null) { - return name.toLowerCase(); - } - else { - return null; - } - } - - /* - * @see CSSMMNodeImpl#canContain(CSSMMNode) - */ - boolean canContain(CSSMMNode child) { - if (child == null) { - return false; - } - String type = child.getType(); - return (type == TYPE_NUMBER || type == TYPE_KEYWORD || type == TYPE_FUNCTION || type == TYPE_CONTAINER || type == TYPE_STRING || type == TYPE_SEPARATOR); - } - - /* - * @see CSSMMNodeImpl#getError() - */ - short getError() { - if (getName() == null) { - return MetaModelErrors.ERROR_NOT_DEFINED; - } - else if (getChildCount() == 0) { - return MetaModelErrors.ERROR_NO_CHILD; - } - else { - return MetaModelErrors.NO_ERROR; - } - } - - /* - * @see CSSMMDescriptor#getValues() - */ - public Iterator getValues() { - ValueCollector collector = new ValueCollector(); - collector.apply(this); - return collector.getNodes(); - } - -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMFontFaceRuleImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMFontFaceRuleImpl.java deleted file mode 100644 index 71d1ca95f3..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMFontFaceRuleImpl.java +++ /dev/null @@ -1,45 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodelimpl; - -import org.eclipse.wst.css.core.internal.metamodel.CSSMMFontFaceRule; -import org.eclipse.wst.css.core.internal.metamodel.CSSMMNode; - -class CSSMMFontFaceRuleImpl extends CSSMMNodeImpl implements CSSMMFontFaceRule { - - - public CSSMMFontFaceRuleImpl() { - super(); - } - - public String getType() { - return TYPE_FONT_FACE_RULE; - } - - public String getName() { - return NAME_NOT_AVAILABLE; - } - - /* - * @see CSSMMNodeImpl#canContain(CSSMMNode) - */ - boolean canContain(CSSMMNode child) { - return (child != null && child.getType() == TYPE_DESCRIPTOR); - } - - /* - * @see CSSMMNodeImpl#getError() - */ - short getError() { - return MetaModelErrors.NO_ERROR; - } - -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMFunctionImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMFunctionImpl.java deleted file mode 100644 index 567f2169e8..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMFunctionImpl.java +++ /dev/null @@ -1,96 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodelimpl; - -import org.eclipse.wst.css.core.internal.metamodel.CSSMMFunction; -import org.eclipse.wst.css.core.internal.metamodel.CSSMMNode; - -class CSSMMFunctionImpl extends CSSMMNodeImpl implements CSSMMFunction { - - public CSSMMFunctionImpl() { - super(); - } - - public String getType() { - return TYPE_FUNCTION; - } - - public String getName() { - String name = getAttribute(ATTR_NAME); - if (name != null) { - return name.toLowerCase(); - } - else { - return null; - } - } - - public String getFunctionString() { - return fValue; - } - - /* - * @see CSSMMNodeImpl#canContain(CSSMMNode) - */ - boolean canContain(CSSMMNode child) { - return false; - } - - /* - * @see CSSMMNodeImpl#postSetAttribute() - */ - // void postSetAttribute() throws BadInitializationException { - // super.postSetAttribute(); - // String name = getName(); - // if (name == null) { throw new BadInitializationException(); } - // - // List list = new ArrayList(); - // list.add(CSSFunctionID.F_ATTR); - // list.add(CSSFunctionID.F_COUNTER); - // list.add(CSSFunctionID.F_RGB); - // list.add(CSSFunctionID.F_RECT); - // list.add(CSSFunctionID.F_URI); - // list.add(CSSFunctionID.F_FORMAT); - // list.add(CSSFunctionID.F_LOCAL); - // - // if (! list.contains(name.toLowerCase())) { - // throw new BadInitializationException(); - // } - // } - /* - * @see Object#toString() - */ - public String toString() { - return getFunctionString(); - } - - void setFunctionString(String value) { - fValue = value; - } - - /* - * @see CSSMMNodeImpl#getError() - */ - short getError() { - if (getName() == null) { - return MetaModelErrors.ERROR_NOT_DEFINED; - } - else if (getFunctionString() == null) { - return MetaModelErrors.ERROR_NO_CHILD; - } - else { - return MetaModelErrors.NO_ERROR; - } - } - - - private String fValue = null; -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMImportRuleImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMImportRuleImpl.java deleted file mode 100644 index cadfe85b53..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMImportRuleImpl.java +++ /dev/null @@ -1,44 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodelimpl; - -import org.eclipse.wst.css.core.internal.metamodel.CSSMMImportRule; -import org.eclipse.wst.css.core.internal.metamodel.CSSMMNode; - -class CSSMMImportRuleImpl extends CSSMMNodeImpl implements CSSMMImportRule { - - - public CSSMMImportRuleImpl() { - super(); - } - - public String getType() { - return TYPE_IMPORT_RULE; - } - - public String getName() { - return NAME_NOT_AVAILABLE; - } - - /* - * @see CSSMMNodeImpl#canContain(CSSMMNode) - */ - boolean canContain(CSSMMNode child) { - return false; - } - - /* - * @see CSSMMNodeImpl#getError() - */ - short getError() { - return MetaModelErrors.NO_ERROR; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMKeywordImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMKeywordImpl.java deleted file mode 100644 index f8b5594006..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMKeywordImpl.java +++ /dev/null @@ -1,75 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodelimpl; - -import org.eclipse.wst.css.core.internal.metamodel.CSSMMKeyword; -import org.eclipse.wst.css.core.internal.metamodel.CSSMMNode; - -class CSSMMKeywordImpl extends CSSMMNodeImpl implements CSSMMKeyword { - - public CSSMMKeywordImpl() { - super(); - } - - public String getType() { - return TYPE_KEYWORD; - } - - public String getName() { - String name = getAttribute(ATTR_NAME); - if (name != null) { - return name.toLowerCase(); - } - else { - return null; - } - } - - /* - * @see CSSMMNodeImpl#canContain(CSSMMNode) - */ - boolean canContain(CSSMMNode child) { - return false; - } - - /* - * @see CSSMMKeyword#getKeywordString() - */ - public String getKeywordString() { - return fValue; - } - - /* - * @see Object#toString() - */ - public String toString() { - return getKeywordString(); - } - - void setKeywordString(String value) { - fValue = value; - } - - short getError() { - if (getName() == null) { - return MetaModelErrors.ERROR_NOT_DEFINED; - } - else if (getKeywordString() == null) { - return MetaModelErrors.ERROR_NO_CHILD; - } - else { - return MetaModelErrors.NO_ERROR; - } - } - - - private String fValue = null; -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMMediaRuleImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMMediaRuleImpl.java deleted file mode 100644 index 2dee90727b..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMMediaRuleImpl.java +++ /dev/null @@ -1,41 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodelimpl; - -import org.eclipse.wst.css.core.internal.metamodel.CSSMMMediaRule; -import org.eclipse.wst.css.core.internal.metamodel.CSSMMNode; - -class CSSMMMediaRuleImpl extends CSSMMNodeImpl implements CSSMMMediaRule { - - - public CSSMMMediaRuleImpl() { - super(); - } - - public String getType() { - return TYPE_MEDIA_RULE; - } - - public String getName() { - return NAME_NOT_AVAILABLE; - } - - /* - * @see CSSMMNodeImpl#canContain(CSSMMNode) - */ - boolean canContain(CSSMMNode child) { - return false; - } - - short getError() { - return MetaModelErrors.NO_ERROR; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMNodeImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMNodeImpl.java deleted file mode 100644 index 923d7f7922..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMNodeImpl.java +++ /dev/null @@ -1,148 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodelimpl; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import org.eclipse.wst.css.core.internal.metamodel.CSSMMNode; - - -abstract class CSSMMNodeImpl implements CSSMMNode { - - public CSSMMNodeImpl() { - super(); - } - - public abstract String getType(); - - public String getDescription() { - return fDescription; - } - - public String getAttribute(String name) { - if (fAttributes == null) { - return null; - } - return (String) fAttributes.get(name); - } - - public Iterator getChildNodes() { - if (fChildNodes == null) { - return Collections.EMPTY_LIST.iterator(); - } - else { - return Collections.unmodifiableCollection(fChildNodes).iterator(); - } - } - - public Iterator getDescendants() { - List descendants = new ArrayList(); - Iterator iChild = getChildNodes(); - while (iChild.hasNext()) { - CSSMMNode child = (CSSMMNode) iChild.next(); - Iterator iDescendant = child.getDescendants(); - if (iDescendant.hasNext()) { - while (iDescendant.hasNext()) { - CSSMMNode descendant = (CSSMMNode) iDescendant.next(); - if (!descendants.contains(descendant)) { - descendants.add(descendant); - } - } - } - else { - if (!descendants.contains(child)) { - descendants.add(child); - } - } - } - return Collections.unmodifiableCollection(descendants).iterator(); - } - - void appendChild(CSSMMNode child) { - if (child == null) { - return; - } - if (fChildNodes == null) { - fChildNodes = new ArrayList(); - } - if (!fChildNodes.contains(child)) { - fChildNodes.add(child); - ((CSSMMNodeImpl) child).fRefCount++; - } - } - - void removeChild(CSSMMNode child) { - if (child == null || fChildNodes == null) { - return; - } - Iterator i = fChildNodes.iterator(); - while (i.hasNext()) { - if (i.next() == child) { - i.remove(); - ((CSSMMNodeImpl) child).fRefCount--; - return; - } - } - } - - void removeAllChildNodes() { - if (fChildNodes == null) { - return; - } - Iterator i = fChildNodes.iterator(); - while (i.hasNext()) { - ((CSSMMNodeImpl) i.next()).fRefCount--; - } - fChildNodes.clear(); - } - - abstract boolean canContain(CSSMMNode child); - - void initializeAttribute(Map attributes) throws IllegalArgumentException { - if (fAttributes == null) { - fAttributes = new HashMap(); - } - fAttributes.putAll(attributes); - postSetAttribute(); - } - - void setDescription(String description) { - fDescription = description; - } - - void postSetAttribute() throws IllegalArgumentException { - // default : nop - } - - abstract short getError(); - - int getChildCount() { - return (fChildNodes != null) ? fChildNodes.size() : 0; - } - - int getReferenceCount() { - return fRefCount; - } - - - private List fChildNodes = null; - private String fDescription = null; - private Map fAttributes = null; - private int fRefCount = 0; // for error check - - static final String ATTR_NAME = "name"; //$NON-NLS-1$ - static final String NAME_NOT_AVAILABLE = ""; //$NON-NLS-1$ -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMNumberImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMNumberImpl.java deleted file mode 100644 index 3aae3e439f..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMNumberImpl.java +++ /dev/null @@ -1,52 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodelimpl; - -import org.eclipse.wst.css.core.internal.metamodel.CSSMMNode; -import org.eclipse.wst.css.core.internal.metamodel.CSSMMNumber; - -class CSSMMNumberImpl extends CSSMMNodeImpl implements CSSMMNumber { - - - public CSSMMNumberImpl() { - super(); - } - - public String getType() { - return TYPE_NUMBER; - } - - public String getName() { - String name = getAttribute(ATTR_NAME); - if (name != null) { - return name.toLowerCase(); - } - else { - return null; - } - } - - /* - * @see CSSMMNodeImpl#canContain(CSSMMNode) - */ - boolean canContain(CSSMMNode child) { - return (child != null && child.getType() == TYPE_UNIT); - } - - short getError() { - if (getName() == null) { - return MetaModelErrors.ERROR_NOT_DEFINED; - } - else { - return MetaModelErrors.NO_ERROR; - } - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMPageRuleImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMPageRuleImpl.java deleted file mode 100644 index e28ccecd32..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMPageRuleImpl.java +++ /dev/null @@ -1,50 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodelimpl; - -import org.eclipse.wst.css.core.internal.metamodel.CSSMMNode; -import org.eclipse.wst.css.core.internal.metamodel.CSSMMPageRule; - -class CSSMMPageRuleImpl extends CSSMMNodeImpl implements CSSMMPageRule { - - - public CSSMMPageRuleImpl() { - super(); - } - - public String getType() { - return TYPE_PAGE_RULE; - } - - public String getName() { - return NAME_NOT_AVAILABLE; - } - - /* - * @see CSSMMNodeImpl#canContain(CSSMMNode) - */ - boolean canContain(CSSMMNode child) { - if (child == null) { - return false; - } - String type = child.getType(); - return (type == TYPE_PROPERTY || type == TYPE_SELECTOR); - } - - short getError() { - if (getChildCount() == 0) { - return MetaModelErrors.ERROR_NO_CHILD; - } - else { - return MetaModelErrors.NO_ERROR; - } - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMPropertyImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMPropertyImpl.java deleted file mode 100644 index 4b529fdac8..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMPropertyImpl.java +++ /dev/null @@ -1,76 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodelimpl; - -import java.util.Iterator; - -import org.eclipse.wst.css.core.internal.metamodel.CSSMMNode; -import org.eclipse.wst.css.core.internal.metamodel.CSSMMProperty; - - -class CSSMMPropertyImpl extends CSSMMNodeImpl implements CSSMMProperty { - public CSSMMPropertyImpl() { - super(); - } - - public String getType() { - return TYPE_PROPERTY; - } - - public String getName() { - String name = getAttribute(ATTR_NAME); - if (name != null) { - return name.toLowerCase(); - } - else { - return null; - } - } - - /* - * @see CSSMMNodeImpl#canContain(CSSMMNode) - */ - boolean canContain(CSSMMNode child) { - if (child == null) { - return false; - } - String type = child.getType(); - return (type == TYPE_NUMBER || type == TYPE_KEYWORD || type == TYPE_FUNCTION || type == TYPE_CONTAINER || type == TYPE_STRING || type == TYPE_SEPARATOR || type == TYPE_PROPERTY); - } - - /* - * @see CSSMMProperty#getCategoryName() - */ - public String getCategoryName() { - return getAttribute(ATTR_CATEGORY); - } - - public Iterator getValues() { - ValueCollector collector = new ValueCollector(); - collector.apply(this); - return collector.getNodes(); - } - - short getError() { - if (getName() == null) { - return MetaModelErrors.ERROR_NOT_DEFINED; - } - else if (getChildCount() == 0) { - return MetaModelErrors.ERROR_NO_CHILD; - } - else { - return MetaModelErrors.NO_ERROR; - } - } - - - static final String ATTR_CATEGORY = "category"; //$NON-NLS-1$ -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMPseudoClassImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMPseudoClassImpl.java deleted file mode 100644 index a495981cac..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMPseudoClassImpl.java +++ /dev/null @@ -1,33 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodelimpl; - -class CSSMMPseudoClassImpl extends CSSMMSelectorImpl { - - - /** - * Constructor for CSSMMPseudoClassImpl. - */ - public CSSMMPseudoClassImpl() { - super(); - } - - /* - * @see CSSMMSelector#getSelectorType() - */ - public String getSelectorType() { - return TYPE_PSEUDO_CLASS; - } - - void setSelectorString(String value) { - fValue = ":" + value; //$NON-NLS-1$ - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMPseudoElementImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMPseudoElementImpl.java deleted file mode 100644 index eebe91731e..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMPseudoElementImpl.java +++ /dev/null @@ -1,33 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodelimpl; - -public class CSSMMPseudoElementImpl extends CSSMMSelectorImpl { - - - /** - * Constructor for CSSMMPseudoElementImpl. - */ - public CSSMMPseudoElementImpl() { - super(); - } - - /* - * @see CSSMMSelector#getSelectorType() - */ - public String getSelectorType() { - return TYPE_PSEUDO_ELEMENT; - } - - void setSelectorString(String value) { - fValue = ":" + value; //$NON-NLS-1$ - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMSelectorExpressionImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMSelectorExpressionImpl.java deleted file mode 100644 index c45b4ce298..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMSelectorExpressionImpl.java +++ /dev/null @@ -1,49 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodelimpl; - -import java.util.HashMap; -import java.util.Map; - - -class CSSMMSelectorExpressionImpl extends CSSMMSelectorImpl { - - public CSSMMSelectorExpressionImpl() { - super(); - } - - /* - * @see CSSMMSelector#getSelectorType() - */ - public String getSelectorType() { - return TYPE_EXPRESSION; - } - - void postSetAttribute() throws IllegalArgumentException { - super.postSetAttribute(); - String name = getName(); - if (name == null) { - throw new IllegalArgumentException(); - } - - Map map = new HashMap(); - map.put(EXPRESSION_ADJACENT.toLowerCase(), "+"); //$NON-NLS-1$ - map.put(EXPRESSION_ATTRIBUTE.toLowerCase(), "[]"); //$NON-NLS-1$ - map.put(EXPRESSION_CHILD.toLowerCase(), ">"); //$NON-NLS-1$ - map.put(EXPRESSION_DESCENDANT.toLowerCase(), "' '"); //$NON-NLS-1$ - map.put(EXPRESSION_UNIVERSAL.toLowerCase(), "*"); //$NON-NLS-1$ - - fValue = (String) map.get(name.toLowerCase()); - if (fValue == null) { - throw new IllegalArgumentException(); - } - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMSelectorImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMSelectorImpl.java deleted file mode 100644 index aaf243c055..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMSelectorImpl.java +++ /dev/null @@ -1,81 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodelimpl; - -import org.eclipse.wst.css.core.internal.metamodel.CSSMMNode; -import org.eclipse.wst.css.core.internal.metamodel.CSSMMSelector; - - -abstract class CSSMMSelectorImpl extends CSSMMNodeImpl implements CSSMMSelector { - - /** - * Constructor for CSSMMSelectorImpl. - */ - public CSSMMSelectorImpl() { - super(); - } - - /* - * @see CSSMMNode#getName() - */ - public String getName() { - String name = getAttribute(ATTR_NAME); - if (name != null) { - return name.toLowerCase(); - } - else { - return null; - } - } - - /* - * @see CSSMMNode#getType() - */ - public String getType() { - return TYPE_SELECTOR; - } - - /* - * @see CSSMMNodeImpl#canContain(CSSMMNode) - */ - boolean canContain(CSSMMNode child) { - return false; - } - - /* - * @see CSSMMNodeImpl#getError() - */ - short getError() { - if (getName() == null) { - return MetaModelErrors.ERROR_NOT_DEFINED; - } - else { - return MetaModelErrors.NO_ERROR; - } - } - - /* - * @see CSSMMSelector#getSelectorString() - */ - public String getSelectorString() { - return fValue; - } - - /* - * @see Object#toString() - */ - public String toString() { - return getSelectorString(); - } - - - protected String fValue = null; -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMStringImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMStringImpl.java deleted file mode 100644 index c8cde45bab..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMStringImpl.java +++ /dev/null @@ -1,86 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodelimpl; - -import org.eclipse.wst.css.core.internal.metamodel.CSSMMNode; -import org.eclipse.wst.css.core.internal.metamodel.CSSMMString; - -class CSSMMStringImpl extends CSSMMNodeImpl implements CSSMMString { - - - public CSSMMStringImpl() { - super(); - } - - public String getType() { - return TYPE_STRING; - } - - public String getName() { - String name = getAttribute(ATTR_NAME); - if (name != null) { - return name.toLowerCase(); - } - else { - return null; - } - } - - /* - * @see CSSMMNodeImpl#canContain(CSSMMNode) - */ - boolean canContain(CSSMMNode child) { - return false; - } - - short getError() { - if (getName() == null) { - return MetaModelErrors.ERROR_NOT_DEFINED; - } - else { - return MetaModelErrors.NO_ERROR; - } - } - /* - * @see CSSMMNodeImpl#postSetAttribute() - */ - // void postSetAttribute() throws BadInitializationException { - // super.postSetAttribute(); - // String name = getName(); - // if (name == null) { throw new BadInitializationException(); } - // - // Map map = new HashMap(); - // map.put(CSSStringID.S_ANY.toLowerCase(), "<any>"); //$NON-NLS-1$ - // map.put(CSSStringID.S_COUNTER_IDENTIFIER.toLowerCase(), "<counter>"); - // //$NON-NLS-1$ - // map.put(CSSStringID.S_FAMILY_NAME.toLowerCase(), "<family-name>"); - // //$NON-NLS-1$ - // map.put(CSSStringID.S_FONT_FACE_NAME.toLowerCase(), - // "<font-face-name>"); //$NON-NLS-1$ - // map.put(CSSStringID.S_PAGE_IDENTIFIER.toLowerCase(), - // "<page-identifier>"); //$NON-NLS-1$ - // map.put(CSSStringID.S_SPECIFIC_VOICE.toLowerCase(), - // "<specific-voice>"); //$NON-NLS-1$ - // map.put(CSSStringID.S_URANGE.toLowerCase(), "<urange>"); //$NON-NLS-1$ - // - // fValue = (String)map.get(name.toLowerCase()); - // if (fValue == null) { throw new BadInitializationException(); } - // } - // - // /* - // * @see Object#toString() - // */ - // public String toString() { - // return fValue; - // } - // - // private String fValue = null; -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMStyleRuleImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMStyleRuleImpl.java deleted file mode 100644 index 2c257c3f67..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMStyleRuleImpl.java +++ /dev/null @@ -1,50 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodelimpl; - -import org.eclipse.wst.css.core.internal.metamodel.CSSMMNode; -import org.eclipse.wst.css.core.internal.metamodel.CSSMMStyleRule; - -class CSSMMStyleRuleImpl extends CSSMMNodeImpl implements CSSMMStyleRule { - - - public CSSMMStyleRuleImpl() { - super(); - } - - public String getType() { - return TYPE_STYLE_RULE; - } - - public String getName() { - return NAME_NOT_AVAILABLE; - } - - /* - * @see CSSMMNodeImpl#canContain(CSSMMNode) - */ - boolean canContain(CSSMMNode child) { - if (child == null) { - return false; - } - String type = child.getType(); - return (type == TYPE_PROPERTY || type == TYPE_SELECTOR); - } - - short getError() { - if (getChildCount() == 0) { - return MetaModelErrors.ERROR_NO_CHILD; - } - else { - return MetaModelErrors.NO_ERROR; - } - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMStyleSheetImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMStyleSheetImpl.java deleted file mode 100644 index 4d7fd006e3..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMStyleSheetImpl.java +++ /dev/null @@ -1,50 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodelimpl; - -import org.eclipse.wst.css.core.internal.metamodel.CSSMMNode; -import org.eclipse.wst.css.core.internal.metamodel.CSSMMStyleSheet; - -class CSSMMStyleSheetImpl extends CSSMMNodeImpl implements CSSMMStyleSheet { - - - public CSSMMStyleSheetImpl() { - super(); - } - - public String getType() { - return TYPE_STYLE_SHEET; - } - - public String getName() { - return NAME_NOT_AVAILABLE; - } - - /* - * @see CSSMMNodeImpl#canContain(CSSMMNode) - */ - boolean canContain(CSSMMNode child) { - if (child == null) { - return false; - } - String type = child.getType(); - return (type == TYPE_CHARSET_RULE || type == TYPE_IMPORT_RULE || type == TYPE_PAGE_RULE || type == TYPE_MEDIA_RULE || type == TYPE_FONT_FACE_RULE || type == TYPE_STYLE_RULE); - } - - short getError() { - if (getChildCount() == 0) { - return MetaModelErrors.ERROR_NO_CHILD; - } - else { - return MetaModelErrors.NO_ERROR; - } - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMUnitImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMUnitImpl.java deleted file mode 100644 index 9c154a77ff..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMMUnitImpl.java +++ /dev/null @@ -1,108 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodelimpl; - -import org.eclipse.wst.css.core.internal.metamodel.CSSMMNode; -import org.eclipse.wst.css.core.internal.metamodel.CSSMMUnit; - -/** - * CSSMMUnit : embedded type - */ -class CSSMMUnitImpl extends CSSMMNodeImpl implements CSSMMUnit { - - public CSSMMUnitImpl() { - super(); - } - - public String getType() { - return TYPE_UNIT; - } - - public String getName() { - String name = getAttribute(ATTR_NAME); - if (name != null) { - return name.toLowerCase(); - } - else { - return null; - } - } - - /* - * @see CSSMMUnit#getUnitString() - */ - public String getUnitString() { - return fValue; - } - - /* - * @see CSSMMNodeImpl#canContain(CSSMMNode) - */ - boolean canContain(CSSMMNode child) { - return false; - } - - /* - * @see CSSMMNodeImpl#postSetAttribute() - */ - // void postSetAttribute() throws BadInitializationException { - // super.postSetAttribute(); - // String name = getName(); - // if (name == null) { throw new BadInitializationException(); } - // Map map = new HashMap(); - // map.put(CSSUnitID.U_CM.toLowerCase(), "cm");//$NON-NLS-1$ - // map.put(CSSUnitID.U_DEG.toLowerCase(), "deg");//$NON-NLS-1$ - // map.put(CSSUnitID.U_EMS.toLowerCase(), "em");//$NON-NLS-1$ - // map.put(CSSUnitID.U_EXS.toLowerCase(), "ex");//$NON-NLS-1$ - // map.put(CSSUnitID.U_GRAD.toLowerCase(), "grad");//$NON-NLS-1$ - // map.put(CSSUnitID.U_HASH.toLowerCase(), "#");//$NON-NLS-1$ - // map.put(CSSUnitID.U_HZ.toLowerCase(), "Hz");//$NON-NLS-1$ - // map.put(CSSUnitID.U_IN.toLowerCase(), "in");//$NON-NLS-1$ - // // map.put(CSSUnitID.U_INTEGER.toLowerCase(), - // "(integer)");//$NON-NLS-1$ - // map.put(CSSUnitID.U_KHZ.toLowerCase(), "kHz");//$NON-NLS-1$ - // map.put(CSSUnitID.U_MM.toLowerCase(), "mm");//$NON-NLS-1$ - // map.put(CSSUnitID.U_MS.toLowerCase(), "ms");//$NON-NLS-1$ - // // map.put(CSSUnitID.U_NUMBER.toLowerCase(), "(number)");//$NON-NLS-1$ - // map.put(CSSUnitID.U_PC.toLowerCase(), "pc");//$NON-NLS-1$ - // map.put(CSSUnitID.U_PERCENTAGE.toLowerCase(), "%");//$NON-NLS-1$ - // map.put(CSSUnitID.U_PT.toLowerCase(), "pt");//$NON-NLS-1$ - // map.put(CSSUnitID.U_PX.toLowerCase(), "px");//$NON-NLS-1$ - // map.put(CSSUnitID.U_RAD.toLowerCase(), "rad");//$NON-NLS-1$ - // map.put(CSSUnitID.U_S.toLowerCase(), "s");//$NON-NLS-1$ - // fValue = (String)map.get(name.toLowerCase()); - // if (fValue == null) { throw new BadInitializationException(); } - // } - /* - * @see Object#toString() - */ - public String toString() { - return getUnitString(); - } - - void setUnitString(String value) { - fValue = value; - } - - short getError() { - if (getName() == null) { - return MetaModelErrors.ERROR_NOT_DEFINED; - } - else if (getUnitString() == null) { - return MetaModelErrors.ERROR_NO_CHILD; - } - else { - return MetaModelErrors.NO_ERROR; - } - } - - private String fValue = null; -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMetaModelImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMetaModelImpl.java deleted file mode 100644 index 2240db14ee..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSMetaModelImpl.java +++ /dev/null @@ -1,95 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodelimpl; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import org.eclipse.wst.css.core.internal.metamodel.CSSMMNode; -import org.eclipse.wst.css.core.internal.metamodel.CSSMMStyleSheet; -import org.eclipse.wst.css.core.internal.metamodel.CSSMetaModel; - - -class CSSMetaModelImpl extends CSSMMNodeImpl implements CSSMetaModel { - // class CSSMetaModelImpl implements CSSMetaModel { - public CSSMetaModelImpl() { - super(); - fNodePool = new NodePool(); - } - - public String getType() { - return TYPE_META_MODEL; - } - - public String getName() { - return NAME_NOT_AVAILABLE; - } - - /* - * @see CSSMMNodeImpl#canContain(CSSMMNode) - */ - boolean canContain(CSSMMNode child) { - if (child == null) { - return false; - } - String type = child.getType(); - return (type == TYPE_STYLE_SHEET || type == TYPE_CATEGORY); - } - - public CSSMMStyleSheet getStyleSheet() { - Iterator i = getChildNodes(); - while (i.hasNext()) { - CSSMMNode node = (CSSMMNode) i.next(); - if (node.getType() == TYPE_STYLE_SHEET) { - return (CSSMMStyleSheet) node; - } - } - return null; - // return fStyleSheet; - } - - public Iterator getCategories() { - List categories = new ArrayList(); - Iterator i = getChildNodes(); - while (i.hasNext()) { - CSSMMNode node = (CSSMMNode) i.next(); - if (node.getType() == TYPE_CATEGORY) { - categories.add(node); - } - } - return categories.iterator(); - } - - void loadCompleted() { - fNodePool = null; - } - - // List fCategories = null; - /* - * @see CSSMMNodeImpl#isValid() - */ - short getError() { - if (getStyleSheet() != null) { - return MetaModelErrors.ERROR_NO_CHILD; - } - else { - return MetaModelErrors.NO_ERROR; - } - } - - NodePool getNodePool() { - return fNodePool; - } - - - private NodePool fNodePool = null; -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSProfileImpl.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSProfileImpl.java deleted file mode 100644 index 9c45f443a5..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSProfileImpl.java +++ /dev/null @@ -1,263 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2007 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.metamodelimpl; - - - -import java.io.IOException; -import java.io.InputStream; -import java.net.URL; -import java.util.Locale; -import java.util.PropertyResourceBundle; -import java.util.ResourceBundle; -import java.util.Vector; - -import org.eclipse.core.runtime.FileLocator; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Path; -import org.eclipse.core.runtime.Platform; -import org.eclipse.wst.css.core.internal.Logger; -import org.eclipse.wst.css.core.internal.metamodel.CSSMetaModel; -import org.eclipse.wst.css.core.internal.metamodel.CSSProfile; -import org.osgi.framework.Bundle; - - - -class CSSProfileImpl implements CSSProfile { - - /** - * Constructor for CSSMetaModelProfileInfoImpl. - */ - private CSSProfileImpl() { - super(); - } - - /** - * Constructor for CSSMetaModelProfileInfoImpl. - */ - public CSSProfileImpl(String id, URL url) { - this(); - fID = id; - fURL = url; - } - - /** - * Constructor for CSSMetaModelProfileInfoImpl. - */ - CSSProfileImpl(String id, URL url, String relativeURI) { - super(); - fID = id; - fURL = url; - fRelativeURI = relativeURI; - } - - /* - * @see CSSMetaModelProfileInfo#getProfileID() - */ - public String getProfileID() { - return fID; - } - - /* - * @see CSSMetaModelProfileInfo#getProfileName() - */ - public String getProfileName() { - return (fName == null) ? fID : fName; - } - - public CSSMetaModel getMetaModel() { - if (fMetaModel == null) { - try { - InputStream input = getProfileURL().openStream(); - ProfileLoader loader = new ProfileLoader(getResourceBundle(), getLogging()); - fMetaModel = loader.loadProfile(input); - } - catch (IOException e) { - Logger.logException("Cannot open stream for profile", e); //$NON-NLS-1$ - } - } - return fMetaModel; - } - - private ResourceBundle getResourceBundle() { - ResourceBundle resourceBundle = null; - - Bundle bundle = null; - String pluginID = getOwnerPluginID(); - if (pluginID != null) { - bundle = Platform.getBundle(pluginID); - if (bundle != null) { - // needed to work around FileLocator.openStream not looking for - // files with Java naming conventions (BUG103345) - IPath[] paths = getResourceBundlePaths(); - if (paths != null) { - InputStream inStream = null; - int i = 0; - while (i < paths.length && inStream == null) { - IPath path = paths[i]; - try { - inStream = FileLocator.openStream(bundle, path, true); - if (inStream != null) - resourceBundle = new PropertyResourceBundle(inStream); - else - ++i; - } - catch (IOException e) { - // unable to open stream with current path so just - // try next path - ++i; - } - finally { - if (inStream != null) - try { - inStream.close(); - } - catch (IOException e) { - Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e); - } - } - } - } - } - } - return resourceBundle; - } - - /** - * Returns an array of potential resource bundle paths or null if there - * are none - * - * @return IPath[] or null - */ - private IPath[] getResourceBundlePaths() { - IPath[] paths = new IPath[0]; - - if (fRelativeURI != null) { - // original path = location of profile.xml - profile.xml - IPath originalPath = Path.fromOSString(fRelativeURI).removeLastSegments(1); - - String baseName = "cssprofile"; //$NON-NLS-1$ - Vector names = calculateBundleNames(baseName, Locale.getDefault()); - - int a = 0; - paths = new IPath[names.size()]; - for (int i = names.size(); i > 0; --i) { - String bundleName = (String) names.get(i - 1); - IPath path = originalPath.append(bundleName).addFileExtension("properties"); //$NON-NLS-1$ - paths[a] = path; - ++a; - } - } - return paths; - } - - /** - * Calculate the bundles along the search path from the base bundle to the - * bundle specified by baseName and locale.<br /> - * - * @param baseName - * the base bundle name - * @param locale - * the locale - * @param names - * the vector used to return the names of the bundles along the - * search path. - * - */ - private Vector calculateBundleNames(String baseName, Locale locale) { - // this method can be deleted after BUG103345 is fixed - final Vector result = new Vector(4); // default size 4 - final String language = locale.getLanguage(); - final int languageLength = language.length(); - final String country = locale.getCountry(); - final int countryLength = country.length(); - final String variant = locale.getVariant(); - final int variantLength = variant.length(); - - result.addElement(baseName); // at least add base name - if (languageLength + countryLength + variantLength == 0) { - // The locale is "", "", "". - return result; - } - final StringBuffer temp = new StringBuffer(baseName); - temp.append('_'); - temp.append(language); - if (languageLength > 0) { - result.addElement(temp.toString()); - } - - if (countryLength + variantLength == 0) { - return result; - } - temp.append('_'); - temp.append(country); - if (countryLength > 0) { - result.addElement(temp.toString()); - } - - if (variantLength == 0) { - return result; - } - temp.append('_'); - temp.append(variant); - result.addElement(temp.toString()); - - return result; - } - - /* - * @see CSSMetaModelProfileInfo#getProfileURL() - */ - public URL getProfileURL() { - return fURL; - } - - void setProfileName(String name) { - fName = name; - } - - public boolean isDefault() { - return fDefault; - } - - void setDefault(boolean isDefault) { - fDefault = isDefault; - } - - public String getOwnerPluginID() { - return fOwnerPluginID; - } - - void setOwnerPluginID(String pluginID) { - fOwnerPluginID = pluginID; - } - - /** - * hidden option : logging - */ - void setLogging(boolean logging) { - fLogging = logging; - } - - boolean getLogging() { - return fLogging; - } - - - String fID = null; - String fName = null; - URL fURL = null; - CSSMetaModel fMetaModel = null; - String fOwnerPluginID = null; - boolean fDefault = false; - boolean fLogging = false; - private String fRelativeURI = null; -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSProfileTest.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSProfileTest.java deleted file mode 100644 index 9ab5e320d9..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/CSSProfileTest.java +++ /dev/null @@ -1,73 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodelimpl; - -import java.net.MalformedURLException; -import java.net.URL; - -import org.eclipse.wst.css.core.internal.Logger; -import org.eclipse.wst.css.core.internal.metamodel.CSSMMNode; -import org.eclipse.wst.css.core.internal.metamodel.CSSMetaModel; -import org.eclipse.wst.css.core.internal.metamodel.CSSProfile; - - -class CSSProfileTest { - - - /** - * Test use only - */ - public static void main(String[] args) { - if (args.length == 0) - return; - CSSMetaModel metamodel = null; - try { - CSSProfile profile = new CSSProfileImpl("test", new URL(args[0])); //$NON-NLS-1$ - metamodel = profile.getMetaModel(); - } - catch (MalformedURLException e) { - Logger.logException(e); - } - if (metamodel == null) { - return; - } - /* - * CSSMMTypeCollector collector = new CSSMMTypeCollector(); - * collector.apply(metamodel, CSSMMNode.TYPE_PROPERTY); Iterator - * iProperty = collector.getNodes(); while (iProperty.hasNext()) { - * CSSMMNode node = (CSSMMNode)iProperty.next(); - * System.out.println("Property " + node.getName() + " can contain:"); - * //$NON-NLS-2$ //$NON-NLS-1$ Iterator iValue = - * node.getDescendants(); while (iValue.hasNext()) { - * debugOut((CSSMMNode)iValue.next(), 0, false); } } - */ - debugOut(metamodel, 0, true); - } - - static void debugOut(CSSMMNode node, int depth, boolean recursive) { - String type = node.getType(); - for (int i = 0; i < depth; i++) { - System.out.print("\t"); //$NON-NLS-1$ - } - System.out.print("[ " + node.getName() + "(" + type + ") ]"); //$NON-NLS-3$ //$NON-NLS-2$ //$NON-NLS-1$ - if (type == CSSMMNode.TYPE_UNIT || type == CSSMMNode.TYPE_KEYWORD || type == CSSMMNode.TYPE_FUNCTION || type == CSSMMNode.TYPE_SELECTOR) { - System.out.print(" -> " + node.toString()); //$NON-NLS-1$ - } - System.out.println(); - - if (recursive) { - java.util.Iterator iNode = node.getChildNodes(); - while (iNode.hasNext()) { - debugOut((CSSMMNode) iNode.next(), depth + 1, true); - } - } - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/MetaModelErrors.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/MetaModelErrors.java deleted file mode 100644 index 5ca381e5a7..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/MetaModelErrors.java +++ /dev/null @@ -1,30 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodelimpl; - -interface MetaModelErrors { - - static final short NO_ERROR = 0; - - // MASK - static final short MASK_WARNING = 0x1000; - static final short MASK_ERROR = 0x2000; - - // ERROR - static final short ERROR_NOT_DEFINED = MASK_ERROR + 0x01; - static final short ERROR_INVALID_NAME = MASK_ERROR + 0x04; - static final short ERROR_INVAILD_CHILD = MASK_ERROR + 0x02; - static final short ERROR_NO_CHILD = MASK_ERROR + 0x08; - // static final short ERROR_NO_ESSENTIAL_CHILD = MASK_ERROR + 0x10 - - // WARNING - static final short WARNING_HAS_NO_CHILD = MASK_WARNING + 0x01; -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/NodePool.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/NodePool.java deleted file mode 100644 index f5cb56817e..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/NodePool.java +++ /dev/null @@ -1,171 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodelimpl; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import org.eclipse.wst.css.core.internal.Logger; - - - -class NodePool { - - NodePool() { - super(); - initializeClassNameTable(); - } - - CSSMMNodeImpl getNode(String tagName, String nodeName) { - if (nodeName != null) { - nodeName = nodeName.toLowerCase(); - } - String className = (String) classNames.get(tagName); - if (className == null) { - return null; - } - Map nodes = (Map) nodeRegistry.get(className); - if (nodes == null) { - nodes = new HashMap(); - nodeRegistry.put(className, nodes); - } - CSSMMNodeImpl node = (CSSMMNodeImpl) nodes.get(nodeName); - if (node == null) { - node = createNewNode(className); - nodes.put(nodeName, node); - } - return node; - } - - private CSSMMNodeImpl createNewNode(String className) { - CSSMMNodeImpl node = null; - if (className != null) { - className = getPackageName() + "." + className; //$NON-NLS-1$ - try { - node = (CSSMMNodeImpl) Class.forName(className).newInstance(); - } - catch (IllegalAccessException e) { - Logger.logException(e); - } - catch (InstantiationException e) { - Logger.logException(e); - } - catch (ClassNotFoundException e) { - Logger.logException(e); - } - } - // System.out.println(className + " is Created"); - return node; - } - - /** - * Error check function: find nodes that are not referred by any node - */ - Iterator getStrayNodes() { - List strayNodes = new ArrayList(); - Iterator iMap = nodeRegistry.values().iterator(); - while (iMap.hasNext()) { - Map nodes = (Map) iMap.next(); - Iterator iNode = nodes.values().iterator(); - while (iNode.hasNext()) { - CSSMMNodeImpl node = (CSSMMNodeImpl) iNode.next(); - if (node.getReferenceCount() == 0) { - strayNodes.add(node); - } - } - } - return strayNodes.iterator(); - } - - // This class must not be inner class :) - private String getPackageName() { - if (fPackageName == null) { - String className = getClass().getName(); - int pos = className.lastIndexOf('.'); - if (0 < pos) { - fPackageName = className.substring(0, pos); - } - else { - fPackageName = ""; //$NON-NLS-1$ - } - } - return fPackageName; - } - - void initializeClassNameTable() { - classNames.put(ProfileKeywords.STYLESHEET_DEF, CLASS_STYLE_SHEET); - classNames.put(ProfileKeywords.CHARSET_RULE_DEF, CLASS_CHARSET_RULE); - classNames.put(ProfileKeywords.CHARSET_RULE, CLASS_CHARSET_RULE); - classNames.put(ProfileKeywords.FONTFACE_RULE_DEF, CLASS_FONT_FACE_RULE); - classNames.put(ProfileKeywords.FONTFACE_RULE, CLASS_FONT_FACE_RULE); - classNames.put(ProfileKeywords.IMPORT_RULE_DEF, CLASS_IMPORT_RULE); - classNames.put(ProfileKeywords.IMPORT_RULE, CLASS_IMPORT_RULE); - classNames.put(ProfileKeywords.MEDIA_RULE_DEF, CLASS_MEDIA_RULE); - classNames.put(ProfileKeywords.MEDIA_RULE, CLASS_MEDIA_RULE); - classNames.put(ProfileKeywords.PAGE_RULE_DEF, CLASS_PAGE_RULE); - classNames.put(ProfileKeywords.PAGE_RULE, CLASS_PAGE_RULE); - classNames.put(ProfileKeywords.STYLE_RULE_DEF, CLASS_STYLE_RULE); - classNames.put(ProfileKeywords.STYLE_RULE, CLASS_STYLE_RULE); - classNames.put(ProfileKeywords.PROPERTY_DEF, CLASS_PROPERTY); - classNames.put(ProfileKeywords.PROPERTY, CLASS_PROPERTY); - classNames.put(ProfileKeywords.DESCRIPTOR_DEF, CLASS_DESCRIPTOR); - classNames.put(ProfileKeywords.DESCRIPTOR, CLASS_DESCRIPTOR); - classNames.put(ProfileKeywords.CONTAINER_DEF, CLASS_CONTAINER); - classNames.put(ProfileKeywords.CONTAINER, CLASS_CONTAINER); - classNames.put(ProfileKeywords.NUMBER_DEF, CLASS_NUMBER); - classNames.put(ProfileKeywords.NUMBER, CLASS_NUMBER); - classNames.put(ProfileKeywords.KEYWORD_DEF, CLASS_KEYWORD); - classNames.put(ProfileKeywords.KEYWORD, CLASS_KEYWORD); - classNames.put(ProfileKeywords.UNIT, CLASS_UNIT); - classNames.put(ProfileKeywords.UNIT_DEF, CLASS_UNIT); - classNames.put(ProfileKeywords.FUNCTION, CLASS_FUNCTION); - classNames.put(ProfileKeywords.FUNCTION_DEF, CLASS_FUNCTION); - classNames.put(ProfileKeywords.SELECTOR_EXPRESSION, CLASS_SELECTOR_EXPRESSION); - classNames.put(ProfileKeywords.PSEUDO_ELEMENT, CLASS_PSEUDO_ELEMENT); - classNames.put(ProfileKeywords.PSEUDO_ELEMENT_DEF, CLASS_PSEUDO_ELEMENT); - classNames.put(ProfileKeywords.PSEUDO_CLASS, CLASS_PSEUDO_CLASS); - classNames.put(ProfileKeywords.PSEUDO_CLASS_DEF, CLASS_PSEUDO_CLASS); - classNames.put(ProfileKeywords.STRING, CLASS_STRING); - classNames.put(ProfileKeywords.CATEGORY_DEF, CLASS_CATEGORY); - } - - - private String fPackageName; - /* - * Conversion Tables nodeRegistry : class name -> hash of node instances - * classNames : Profile Tag name -> java class name - */ - private Map nodeRegistry = new HashMap(); - private Map classNames = new HashMap(); - - private final static String CLASS_STYLE_SHEET = "CSSMMStyleSheetImpl"; //$NON-NLS-1$ - private final static String CLASS_CHARSET_RULE = "CSSMMCharsetRuleImpl"; //$NON-NLS-1$ - private final static String CLASS_FONT_FACE_RULE = "CSSMMFontFaceRuleImpl"; //$NON-NLS-1$ - private final static String CLASS_IMPORT_RULE = "CSSMMImportRuleImpl"; //$NON-NLS-1$ - private final static String CLASS_MEDIA_RULE = "CSSMMMediaRuleImpl"; //$NON-NLS-1$ - private final static String CLASS_PAGE_RULE = "CSSMMPageRuleImpl"; //$NON-NLS-1$ - private final static String CLASS_STYLE_RULE = "CSSMMStyleRuleImpl"; //$NON-NLS-1$ - private final static String CLASS_PROPERTY = "CSSMMPropertyImpl"; //$NON-NLS-1$ - private final static String CLASS_DESCRIPTOR = "CSSMMDescriptorImpl"; //$NON-NLS-1$ - private final static String CLASS_CONTAINER = "CSSMMContainerImpl"; //$NON-NLS-1$ - private final static String CLASS_NUMBER = "CSSMMNumberImpl"; //$NON-NLS-1$ - private final static String CLASS_KEYWORD = "CSSMMKeywordImpl"; //$NON-NLS-1$ - private final static String CLASS_UNIT = "CSSMMUnitImpl"; //$NON-NLS-1$ - private final static String CLASS_FUNCTION = "CSSMMFunctionImpl"; //$NON-NLS-1$ - private final static String CLASS_STRING = "CSSMMStringImpl"; //$NON-NLS-1$ - private final static String CLASS_CATEGORY = "CSSMMCategoryImpl"; //$NON-NLS-1$ - private final static String CLASS_SELECTOR_EXPRESSION = "CSSMMSelectorExpressionImpl"; //$NON-NLS-1$ - private final static String CLASS_PSEUDO_CLASS = "CSSMMPseudoClassImpl"; //$NON-NLS-1$ - private final static String CLASS_PSEUDO_ELEMENT = "CSSMMPseudoElementImpl"; //$NON-NLS-1$ -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/ProfileHandler.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/ProfileHandler.java deleted file mode 100644 index 82a6b33948..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/ProfileHandler.java +++ /dev/null @@ -1,293 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodelimpl; - -import java.io.IOException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; -import java.util.ResourceBundle; -import java.util.Stack; - -import org.eclipse.wst.css.core.internal.Logger; -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.CSSProfile; -import org.eclipse.wst.css.core.internal.metamodel.CSSProfileRegistry; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.DefaultHandler; - - -class ProfileHandler extends DefaultHandler { - - public ProfileHandler(CSSMetaModelImpl metamodel, ResourceBundle resourceBundle, boolean logging) { - super(); - fMetaModel = metamodel; - fNodePool = metamodel.getNodePool(); - fResourceBundle = resourceBundle; - fLogging = logging; - } - - public ProfileHandler(CSSMetaModelImpl metamodel, ResourceBundle resourceBundle) { - super(); - fMetaModel = metamodel; - fNodePool = metamodel.getNodePool(); - fResourceBundle = resourceBundle; - fLogging = false; - } - - private String getResourceString(String key) { - if (key.equals("%")) { //$NON-NLS-1$ - return key; - } - if (!key.startsWith("%")) { //$NON-NLS-1$ - return key; - } - if (key.startsWith("%%")) { //$NON-NLS-1$ - return key.substring(1); - } - - if (fResourceBundle != null) { - return fResourceBundle.getString(key.substring(1)); - } - else { - return key; - } - } - - public void startDocument() throws SAXException { - // System.out.println("startDocument"); - // fNodeStack.push(metamodel); - // fCurrentNode = null; - } - - public void endDocument() throws SAXException { - new ErrorCorrector().doCorrect(fMetaModel); - if (fLogging) { - Iterator i = fNodePool.getStrayNodes(); - while (i.hasNext()) { - CSSMMNode node = (CSSMMNode) i.next(); - String str = "[CSSProfile Warning] " + node.getName(); //$NON-NLS-1$ - str += "(" + node.getType() + ") is not referred by any node."; //$NON-NLS-1$ //$NON-NLS-2$ - Logger.log(Logger.WARNING, str); - // System.out.println(str); - } - } - } - - public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { - TagNode tagNode = null; - CSSMMNodeImpl parentNode = null; - if (0 < fNodeStack.size()) { - tagNode = (TagNode) fNodeStack.peek(); - parentNode = tagNode.node; - } - - CSSMMNodeImpl node = null; - if (qName.equals(ProfileKeywords.PROFILE_IMPORT)) { // import - String profileName = attributes.getValue(ATTR_NAME_REFERENCE); - importProfile(profileName); - } - else if (isDefinition(qName)) { // node creation - String nodeName = attributes.getValue(ATTR_NAME_DEFINITION); - node = fNodePool.getNode(qName, nodeName); - if (node != null) { - String overwrite = attributes.getValue(ATTR_OVERWRITE); - if (overwrite == null || overwrite.equals(ATTR_VALUE_OVERWRITE_FALSE)) { - node.removeAllChildNodes(); - } - Map attrMap = new HashMap(); - for (int i = 0; i < attributes.getLength(); i++) { - attrMap.put(attributes.getQName(i), attributes.getValue(i)); - } - try { - node.initializeAttribute(attrMap); - } - catch (IllegalArgumentException e) { - Logger.logException(e); - } - } - } - else if (node == null) { // node reference - String nodeName = attributes.getValue(ATTR_NAME_REFERENCE); - node = fNodePool.getNode(qName, nodeName); - } - - if (node != null) { - if (parentNode != null && parentNode.canContain(node)) { - String enabled = attributes.getValue(ATTR_ENABLED); - if (enabled != null && enabled.equals(ATTR_VALUE_ENABLED_FALSE)) { - parentNode.removeChild(node); - } - else { - parentNode.appendChild(node); - } - } - else if (node.getType() == CSSMMNode.TYPE_STYLE_SHEET || node.getType() == CSSMMNode.TYPE_CATEGORY) { - fMetaModel.appendChild(node); - } - else { - if (fLogging && parentNode != null) { - Logger.log(Logger.ERROR, parentNode.getType() + " cannot contain " + //$NON-NLS-1$ - node.getType() + " (" + qName + ")"); //$NON-NLS-2$//$NON-NLS-1$ - } - } - } - - fNodeStack.push(new TagNode(qName, (node != null) ? node : parentNode)); - } - - public void endElement(String uri, String localName, String qName) throws SAXException { - fNodeStack.pop(); - } - - public void characters(char[] ch, int start, int length) throws SAXException { - TagNode tagNode = (TagNode) fNodeStack.peek(); - String tagName = tagNode.tag; - if (tagName.equals(ProfileKeywords.KEYWORD_VALUE) || tagName.equals(ProfileKeywords.UNIT_VALUE) || tagName.equals(ProfileKeywords.FUNCTION_VALUE) || tagName.equals(ProfileKeywords.SELECTOR_VALUE) || tagName.equals(ProfileKeywords.DESCRIPTION) || tagName.equals(ProfileKeywords.CAPTION)) { - StringBuffer buf = new StringBuffer(length); - for (int i = 0; i < length; i++) { - buf.append(ch[start + i]); - } - String value = getResourceString(buf.toString().trim()); - CSSMMNodeImpl node = tagNode.node; - if (node != null) { - if (node.getType() == CSSMMNode.TYPE_KEYWORD && tagName.equals(ProfileKeywords.KEYWORD_VALUE)) { - ((CSSMMKeywordImpl) node).setKeywordString(value); - } - else if (node.getType() == CSSMMNode.TYPE_UNIT && tagName.equals(ProfileKeywords.UNIT_VALUE)) { - ((CSSMMUnitImpl) node).setUnitString(value); - } - else if (node.getType() == CSSMMNode.TYPE_FUNCTION && tagName.equals(ProfileKeywords.FUNCTION_VALUE)) { - ((CSSMMFunctionImpl) node).setFunctionString(value); - } - else if (node.getType() == CSSMMNode.TYPE_SELECTOR && ((CSSMMSelector) node).getSelectorType() == CSSMMSelector.TYPE_PSEUDO_ELEMENT) { - ((CSSMMPseudoElementImpl) node).setSelectorString(value); - } - else if (node.getType() == CSSMMNode.TYPE_SELECTOR && ((CSSMMSelector) node).getSelectorType() == CSSMMSelector.TYPE_PSEUDO_CLASS) { - ((CSSMMPseudoClassImpl) node).setSelectorString(value); - } - else if (node.getType() == CSSMMNode.TYPE_CATEGORY && tagName.equals(ProfileKeywords.CAPTION)) { - ((CSSMMCategoryImpl) node).setCaption(value); - } - else if (tagName.equals(ProfileKeywords.DESCRIPTION)) { - node.setDescription(value); - } - } - } - } - - private boolean isDefinition(String tagName) { - return (tagName.equals(ProfileKeywords.STYLESHEET_DEF) || tagName.equals(ProfileKeywords.CHARSET_RULE_DEF) || tagName.equals(ProfileKeywords.IMPORT_RULE_DEF) || tagName.equals(ProfileKeywords.PAGE_RULE_DEF) || tagName.equals(ProfileKeywords.MEDIA_RULE_DEF) || tagName.equals(ProfileKeywords.FONTFACE_RULE_DEF) || tagName.equals(ProfileKeywords.STYLE_RULE_DEF) || tagName.equals(ProfileKeywords.KEYWORD_DEF) || tagName.equals(ProfileKeywords.NUMBER_DEF) || tagName.equals(ProfileKeywords.PROPERTY_DEF) || tagName.equals(ProfileKeywords.DESCRIPTOR_DEF) || tagName.equals(ProfileKeywords.CONTAINER_DEF) || tagName.equals(ProfileKeywords.UNIT_DEF) || tagName.equals(ProfileKeywords.FUNCTION_DEF) || tagName.equals(ProfileKeywords.STRING) || tagName.equals(ProfileKeywords.CATEGORY_DEF) || tagName.equals(ProfileKeywords.PSEUDO_CLASS_DEF) || tagName.equals(ProfileKeywords.PSEUDO_ELEMENT_DEF) || tagName.equals(ProfileKeywords.SELECTOR_EXPRESSION) || tagName.equals(ProfileKeywords.SEPARATOR)); - } - - private void importProfile(String profileName) { - URL profileURL = null; - CSSProfileRegistry reg = CSSProfileRegistry.getInstance(); - CSSProfile profile = reg.getProfile(profileName); - if (profile != null) { - // first: find URL by ID - profileURL = profile.getProfileURL(); - } - else { - // second: find URL by filename of profile URL - Iterator i = reg.getProfiles(); - while (i.hasNext()) { - profile = (CSSProfile) i.next(); - URL url = profile.getProfileURL(); - if (url.getFile().endsWith(profileName)) { - profileURL = url; - break; - } - } - } - if (profileURL == null) { - // final: it may be url itself - try { - profileURL = new URL(profileName); - } - catch (MalformedURLException e) { - Logger.logException(e); - } - } - if (profileURL != null) { - try { - ProfileLoader.loadProfile(fMetaModel, profileURL.openStream(), fResourceBundle, fLogging); - } - catch (IOException e) { - Logger.logException("Cannot open stream for profile", //$NON-NLS-1$ - e); - } - } - } - - class TagNode { - - String tag = null; - CSSMMNodeImpl node = null; - - TagNode(String tag, CSSMMNodeImpl node) { - this.tag = tag; - this.node = node; - } - } - - class ErrorCorrector { - - void doCorrect(CSSMMNodeImpl node) { - Iterator i = node.getChildNodes(); - ArrayList errorNodes = new ArrayList(); - while (i.hasNext()) { - CSSMMNodeImpl child = (CSSMMNodeImpl) i.next(); - doCorrect(child); - short error = child.getError(); - if (error != MetaModelErrors.NO_ERROR) { - // node.removeChild(child); - errorNodes.add(child); - - String str = "[CSSProfile Error] " + node.getName(); //$NON-NLS-1$ - str += "(" + node.getType() + ") contains error node: "; //$NON-NLS-1$ //$NON-NLS-2$ - str += child.getName() + "(" + child.getType() + ")"; //$NON-NLS-1$ //$NON-NLS-2$ - str += " - error code = " + error; //$NON-NLS-1$ - if (fLogging) { - Logger.log(Logger.ERROR, str); - // System.out.println(str); - } - } - } - int errorSize = errorNodes.size(); - if (errorSize > 0) { - for (int j = 0; j < errorSize; j++) { - CSSMMNodeImpl errorNode = (CSSMMNodeImpl) errorNodes.get(j); - node.removeChild(errorNode); - } - } - } - } - - - private CSSMetaModelImpl fMetaModel = null; - private NodePool fNodePool = null; - private Stack fNodeStack = new Stack(); - boolean fLogging = false; - private ResourceBundle fResourceBundle = null; - - private final static String ATTR_NAME_DEFINITION = "name"; //$NON-NLS-1$ - private final static String ATTR_NAME_REFERENCE = "name"; //$NON-NLS-1$ - private final static String ATTR_OVERWRITE = "overwrite"; //$NON-NLS-1$ - private final static String ATTR_ENABLED = "enabled"; //$NON-NLS-1$ - private final static String ATTR_VALUE_OVERWRITE_FALSE = "false"; //$NON-NLS-1$ - private final static String ATTR_VALUE_ENABLED_FALSE = "false"; //$NON-NLS-1$ -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/ProfileKeywords.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/ProfileKeywords.java deleted file mode 100644 index a377136edb..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/ProfileKeywords.java +++ /dev/null @@ -1,58 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodelimpl; - -interface ProfileKeywords { - - final static String CSS_PROFILE = "css-profile"; //$NON-NLS-1$ - final static String PROFILE_IMPORT = "profile-import"; //$NON-NLS-1$ - final static String STYLESHEET_DEF = "stylesheet-def"; //$NON-NLS-1$ - final static String CHARSET_RULE = "charset-rule"; //$NON-NLS-1$ - final static String IMPORT_RULE = "import-rule"; //$NON-NLS-1$ - final static String PAGE_RULE = "page-rule"; //$NON-NLS-1$ - final static String MEDIA_RULE = "media-rule"; //$NON-NLS-1$ - final static String FONTFACE_RULE = "fontface-rule"; //$NON-NLS-1$ - final static String STYLE_RULE = "style-rule"; //$NON-NLS-1$ - final static String CHARSET_RULE_DEF = "charset-rule-def"; //$NON-NLS-1$ - final static String IMPORT_RULE_DEF = "import-rule-def"; //$NON-NLS-1$ - final static String PAGE_RULE_DEF = "page-rule-def"; //$NON-NLS-1$ - final static String MEDIA_RULE_DEF = "media-rule-def"; //$NON-NLS-1$ - final static String FONTFACE_RULE_DEF = "fontface-rule-def"; //$NON-NLS-1$ - final static String STYLE_RULE_DEF = "style-rule-def"; //$NON-NLS-1$ - final static String FUNCTION_DEF = "function-def"; //$NON-NLS-1$ - final static String FUNCTION_VALUE = "function-value"; //$NON-NLS-1$ - final static String KEYWORD_DEF = "keyword-def"; //$NON-NLS-1$ - final static String KEYWORD_VALUE = "keyword-value"; //$NON-NLS-1$ - final static String DESCRIPTION = "description"; //$NON-NLS-1$ - final static String NUMBER_DEF = "number-def"; //$NON-NLS-1$ - final static String UNIT = "unit"; //$NON-NLS-1$ - final static String UNIT_DEF = "unit-def"; //$NON-NLS-1$ - final static String UNIT_VALUE = "unit-value"; //$NON-NLS-1$ - final static String CONTAINER_DEF = "container-def"; //$NON-NLS-1$ - final static String CATEGORY_DEF = "category-def"; //$NON-NLS-1$ - final static String CAPTION = "caption"; //$NON-NLS-1$ - final static String PROPERTY_DEF = "property-def"; //$NON-NLS-1$ - final static String DESCRIPTOR_DEF = "descriptor-def"; //$NON-NLS-1$ - final static String SELECTOR_EXPRESSION = "selector-expression"; //$NON-NLS-1$ - final static String PSEUDO_CLASS = "pseudo-class"; //$NON-NLS-1$ - final static String PSEUDO_ELEMENT = "pseudo-element"; //$NON-NLS-1$ - final static String PSEUDO_CLASS_DEF = "pseudo-class-def"; //$NON-NLS-1$ - final static String PSEUDO_ELEMENT_DEF = "pseudo-element-def"; //$NON-NLS-1$ - final static String SELECTOR_VALUE = "selector-value"; //$NON-NLS-1$ - final static String NUMBER = "number"; //$NON-NLS-1$ - final static String KEYWORD = "keyword"; //$NON-NLS-1$ - final static String FUNCTION = "function"; //$NON-NLS-1$ - final static String CONTAINER = "container"; //$NON-NLS-1$ - final static String STRING = "string"; //$NON-NLS-1$ - final static String SEPARATOR = "separator"; //$NON-NLS-1$ - final static String PROPERTY = "property"; //$NON-NLS-1$ - final static String DESCRIPTOR = "descriptor"; //$NON-NLS-1$ -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/ProfileLoader.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/ProfileLoader.java deleted file mode 100644 index 3442ab8483..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/ProfileLoader.java +++ /dev/null @@ -1,72 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2007 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.metamodelimpl; - - - -import java.io.IOException; -import java.io.InputStream; -import java.util.ResourceBundle; - -import org.eclipse.wst.css.core.internal.Logger; -import org.eclipse.wst.css.core.internal.metamodel.CSSMetaModel; -import org.xml.sax.InputSource; -import org.xml.sax.SAXException; -import org.xml.sax.XMLReader; - - - -class ProfileLoader { - - - /** - * Constructor for ProfileLoader. - */ - private ProfileLoader() { - super(); - } - - ProfileLoader(ResourceBundle resourceBundle, boolean logging) { - this(); - fResourceBundle = resourceBundle; - fLogging = logging; - } - - static void loadProfile(CSSMetaModelImpl metamodel, InputStream input, ResourceBundle resourceBundle, boolean logging) { - try { - XMLReader xmlReader = XMLReaderUtil.createXMLReader(PARSER_NAME); - // XMLReaderFactory.createXMLReader(PARSER_NAME); - xmlReader.setContentHandler(new ProfileHandler(metamodel, resourceBundle, logging)); - xmlReader.parse(new InputSource(input)); - } - catch (IOException e) { - Logger.logException(e); - } - catch (SAXException e) { - Logger.logException(e); - } - } - - CSSMetaModel loadProfile(InputStream input) { - if (fMetaModel == null) { - fMetaModel = new CSSMetaModelImpl(); - } - loadProfile(fMetaModel, input, fResourceBundle, fLogging); - fMetaModel.loadCompleted(); - return fMetaModel; - } - - - CSSMetaModelImpl fMetaModel = null; - private final static String PARSER_NAME = "org.apache.xerces.parsers.SAXParser"; //$NON-NLS-1$ - private ResourceBundle fResourceBundle = null; - private boolean fLogging = false; -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/RegistryReader.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/RegistryReader.java deleted file mode 100644 index e4483df1d8..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/RegistryReader.java +++ /dev/null @@ -1,113 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 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.metamodelimpl; - - - -import java.net.URL; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Set; - -import org.eclipse.core.runtime.FileLocator; -import org.eclipse.core.runtime.IConfigurationElement; -import org.eclipse.core.runtime.IExtensionPoint; -import org.eclipse.core.runtime.IExtensionRegistry; -import org.eclipse.core.runtime.Path; -import org.eclipse.core.runtime.Platform; -import org.eclipse.wst.css.core.internal.Logger; -import org.eclipse.wst.css.core.internal.metamodel.CSSProfile; -import org.osgi.framework.Bundle; - - - -public class RegistryReader { - - // - private String PLUGIN_ID = "org.eclipse.wst.sse.core"; //$NON-NLS-1$ - private String EXTENSION_POINT_ID = "cssprofile"; //$NON-NLS-1$ - private String TAG_NAME = "profile"; //$NON-NLS-1$ - private String ATT_ID = "id"; //$NON-NLS-1$ - private String ATT_NAME = "name"; //$NON-NLS-1$ - private String ATT_URI = "uri"; //$NON-NLS-1$ - private String ATT_DEFAULT = "default"; //$NON-NLS-1$ - private String ATT_LOGGING = "logging"; // Hidden Option //$NON-NLS-1$ - - /** - * Constructor for CSSMetaModelRegistryReader. - */ - public RegistryReader() { - super(); - } - - /** - * - */ - protected CSSProfile readElement(IConfigurationElement element) { - CSSProfileImpl info = null; - if (element.getName().equals(TAG_NAME)) { - String strID = element.getAttribute(ATT_ID); - String strNAME = element.getAttribute(ATT_NAME); - String strURI = element.getAttribute(ATT_URI); - - if (strID != null || strURI != null) { - Bundle bundle = null; - String pluginId = element.getContributor().getName(); - bundle = Platform.getBundle(pluginId); - if (bundle != null) { - Path path = new Path(strURI); - URL url = FileLocator.find(bundle, path, null); - if (url != null) { - try { - url = FileLocator.toFileURL(url); - info = new CSSProfileImpl(strID, url, strURI); - info.setProfileName(strNAME); - info.setDefault((element.getAttribute(ATT_DEFAULT) != null)); - info.setLogging((element.getAttribute(ATT_LOGGING) != null)); - info.setOwnerPluginID(pluginId); - } - catch (java.io.IOException e) { - // through - } - } - } - } - - if (info == null) { - Logger.log(Logger.ERROR, "Error reading CSS Profile: " + strID); //$NON-NLS-1$ - } - } - return info; - } - - /** - * We simply require an 'add' method, of what ever it is we are to read - * into - */ - public Iterator enumProfiles() { - Set set = new HashSet(); - IExtensionRegistry registry = Platform.getExtensionRegistry(); - IExtensionPoint point = registry.getExtensionPoint(PLUGIN_ID, EXTENSION_POINT_ID); - if (point != null) { - IConfigurationElement[] elements = point.getConfigurationElements(); - for (int i = 0; i < elements.length; i++) { - CSSProfile info = readElement(elements[i]); - // null can be returned if there's an error reading the - // element - if (info != null) { - set.add(info); - } - } - } - return set.iterator(); - } - -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/ValueCollector.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/ValueCollector.java deleted file mode 100644 index 7bb47ace80..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/ValueCollector.java +++ /dev/null @@ -1,50 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodelimpl; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import org.eclipse.wst.css.core.internal.metamodel.CSSMMNode; -import org.eclipse.wst.css.core.internal.metamodel.util.CSSMetaModelTraverser; - - - -class ValueCollector extends CSSMetaModelTraverser { - public void begin(CSSMMNode node) { - fNodes = new ArrayList(); - } - - protected short preNode(CSSMMNode node) { - short rc = TRAV_CONT; - if (node != null) { - String type = node.getType(); - if (type == CSSMMNode.TYPE_PROPERTY || type == CSSMMNode.TYPE_DESCRIPTOR || type == CSSMMNode.TYPE_CONTAINER) { - rc = TRAV_CONT; - } - else { - if (!fNodes.contains(node)) { - fNodes.add(node); - rc = TRAV_PRUNE; - } - } - } - return rc; - } - - public Iterator getNodes() { - return fNodes.iterator(); - } - - - private List fNodes = null; -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/XMLReaderUtil.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/XMLReaderUtil.java deleted file mode 100644 index b303190221..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/metamodelimpl/XMLReaderUtil.java +++ /dev/null @@ -1,38 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.metamodelimpl; - - - -import javax.xml.parsers.FactoryConfigurationError; -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.parsers.SAXParserFactory; - -import org.eclipse.wst.css.core.internal.Logger; -import org.xml.sax.SAXException; -import org.xml.sax.XMLReader; - - -class XMLReaderUtil { - - static public XMLReader createXMLReader(String className) throws SAXException { - try { - return SAXParserFactory.newInstance().newSAXParser().getXMLReader(); - } - catch (ParserConfigurationException e) { - Logger.logException(e); - } - catch (FactoryConfigurationError e) { - Logger.logException(e); - } - return null; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/modelhandler/CSSModelLoader.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/modelhandler/CSSModelLoader.java deleted file mode 100644 index 122a3060f6..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/modelhandler/CSSModelLoader.java +++ /dev/null @@ -1,54 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.modelhandler; - - -import org.eclipse.wst.css.core.internal.document.CSSModelImpl; -import org.eclipse.wst.css.core.internal.encoding.CSSDocumentLoader; -import org.eclipse.wst.sse.core.internal.document.IDocumentLoader; -import org.eclipse.wst.sse.core.internal.model.AbstractModelLoader; -import org.eclipse.wst.sse.core.internal.provisional.IModelLoader; -import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; - - -/** - * - */ -public class CSSModelLoader extends AbstractModelLoader { - /** - * CSSLoader constructor comment. - */ - public CSSModelLoader() { - super(); - } - - /* - * @see IModelLoader#newModel() - */ - public IStructuredModel newModel() { - IStructuredModel model = new CSSModelImpl(); - // now done in create - // model.setStructuredDocument(createNewStructuredDocument()); - // model.setFactoryRegistry(defaultFactoryRegistry()); - return model; - } - - public IModelLoader newInstance() { - return new CSSModelLoader(); - } - - public IDocumentLoader getDocumentLoader() { - if (documentLoaderInstance == null) { - documentLoaderInstance = new CSSDocumentLoader(); - } - return documentLoaderInstance; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/modelhandler/ModelHandlerForCSS.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/modelhandler/ModelHandlerForCSS.java deleted file mode 100644 index 42003b49be..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/modelhandler/ModelHandlerForCSS.java +++ /dev/null @@ -1,56 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.modelhandler; - -import org.eclipse.wst.css.core.internal.encoding.CSSDocumentCharsetDetector; -import org.eclipse.wst.css.core.internal.encoding.CSSDocumentLoader; -import org.eclipse.wst.sse.core.internal.document.IDocumentCharsetDetector; -import org.eclipse.wst.sse.core.internal.document.IDocumentLoader; -import org.eclipse.wst.sse.core.internal.ltk.modelhandler.AbstractModelHandler; -import org.eclipse.wst.sse.core.internal.ltk.modelhandler.IModelHandler; -import org.eclipse.wst.sse.core.internal.provisional.IModelLoader; - - -public class ModelHandlerForCSS extends AbstractModelHandler implements IModelHandler { - - /** - * Needs to match what's in plugin registry. In fact, can be overwritten - * at run time with what's in registry! (so should never be 'final') - */ - static String AssociatedContentTypeID = "org.eclipse.wst.css.core.csssource"; //$NON-NLS-1$ - /** - * Needs to match what's in plugin registry. In fact, can be overwritten - * at run time with what's in registry! (so should never be 'final') - */ - private static String ModelHandlerID = "org.eclipse.wst.css.core.modelhandler"; //$NON-NLS-1$ - - public ModelHandlerForCSS() { - super(); - setId(ModelHandlerID); - setAssociatedContentTypeId(AssociatedContentTypeID); - } - - public IDocumentCharsetDetector getEncodingDetector() { - return new CSSDocumentCharsetDetector(); - } - - public IDocumentLoader getDocumentLoader() { - return new CSSDocumentLoader(); - } - - /* - * @see ContentTypeDescription#getModelLoader() - */ - public IModelLoader getModelLoader() { - return new CSSModelLoader(); - } - -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/parser/CSSRegionUtil.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/parser/CSSRegionUtil.java deleted file mode 100644 index 1f12b959cd..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/parser/CSSRegionUtil.java +++ /dev/null @@ -1,51 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.parser; - -import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts; - - -public class CSSRegionUtil { - - /** - */ - public static boolean isDeclarationValueType(String type) { - return (type == CSSRegionContexts.CSS_DECLARATION_VALUE_DIMENSION || type == CSSRegionContexts.CSS_DECLARATION_VALUE_FUNCTION || type == CSSRegionContexts.CSS_DECLARATION_VALUE_HASH || type == CSSRegionContexts.CSS_DECLARATION_VALUE_IDENT || type == CSSRegionContexts.CSS_DECLARATION_VALUE_IMPORTANT || type == CSSRegionContexts.CSS_DECLARATION_VALUE_NUMBER || type == CSSRegionContexts.CSS_DECLARATION_VALUE_OPERATOR || type == CSSRegionContexts.CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE || type == CSSRegionContexts.CSS_DECLARATION_VALUE_PERCENTAGE || type == CSSRegionContexts.CSS_DECLARATION_VALUE_S || type == CSSRegionContexts.CSS_DECLARATION_VALUE_STRING || type == CSSRegionContexts.CSS_DECLARATION_VALUE_UNICODE_RANGE || type == CSSRegionContexts.CSS_DECLARATION_VALUE_URI); - } - - /** - * these type can be beggining of selector - */ - public static boolean isSelectorBegginingType(String type) { - return (type == CSSRegionContexts.CSS_SELECTOR_ELEMENT_NAME || type == CSSRegionContexts.CSS_SELECTOR_UNIVERSAL || type == CSSRegionContexts.CSS_SELECTOR_PSEUDO || type == CSSRegionContexts.CSS_SELECTOR_CLASS || type == CSSRegionContexts.CSS_SELECTOR_ID || type == CSSRegionContexts.CSS_SELECTOR_ATTRIBUTE_START); - } - - - /** - * - * @param type - * @return - */ - public static boolean isDeclarationType(String type) { - return (type == CSSRegionContexts.CSS_DECLARATION_PROPERTY || type == CSSRegionContexts.CSS_DECLARATION_SEPARATOR || isDeclarationValueType(type) || type == CSSRegionContexts.CSS_DECLARATION_DELIMITER); - } - - /** - * These types consist selector region - * - * @param type - * @return - */ - public static boolean isSelectorType(String type) { - return (type == CSSRegionContexts.CSS_SELECTOR_ATTRIBUTE_END || type == CSSRegionContexts.CSS_SELECTOR_ATTRIBUTE_NAME || type == CSSRegionContexts.CSS_SELECTOR_ATTRIBUTE_OPERATOR || type == CSSRegionContexts.CSS_SELECTOR_ATTRIBUTE_START || type == CSSRegionContexts.CSS_SELECTOR_ATTRIBUTE_VALUE || type == CSSRegionContexts.CSS_SELECTOR_CLASS || type == CSSRegionContexts.CSS_SELECTOR_COMBINATOR || type == CSSRegionContexts.CSS_SELECTOR_ELEMENT_NAME || type == CSSRegionContexts.CSS_SELECTOR_ID || type == CSSRegionContexts.CSS_SELECTOR_PSEUDO || type == CSSRegionContexts.CSS_SELECTOR_SEPARATOR || type == CSSRegionContexts.CSS_SELECTOR_UNIVERSAL); - } - -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/parser/CSSSourceParser.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/parser/CSSSourceParser.java deleted file mode 100644 index 831336f3ba..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/parser/CSSSourceParser.java +++ /dev/null @@ -1,255 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 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.parser; - -import java.io.Reader; -import java.io.StringReader; -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.wst.css.core.internal.Logger; -import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts; -import org.eclipse.wst.sse.core.internal.ltk.parser.RegionParser; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList; -import org.eclipse.wst.sse.core.internal.util.Debug; - - -public class CSSSourceParser implements RegionParser { - public static final int MODE_STYLESHEET = 0; - public static final int MODE_DECLARATION = 1; - public static final int MODE_DECLARATION_VALUE = 2; - - private long fStartTime; - private long fStopTime; - private ICSSTokenizer fTokenizer; - - public void setParserMode(int mode) { - int initialState; - int bufsize; - switch (mode) { - case MODE_STYLESHEET : - initialState = CSSTokenizer.YYINITIAL; - bufsize = CSSTokenizer.BUFFER_SIZE_NORMAL; - break; - case MODE_DECLARATION : - initialState = CSSTokenizer.ST_DECLARATION; - bufsize = CSSTokenizer.BUFFER_SIZE_NORMAL; - break; - case MODE_DECLARATION_VALUE : - initialState = CSSTokenizer.ST_DECLARATION_PRE_VALUE; - bufsize = CSSTokenizer.BUFFER_SIZE_SMALL; - break; - default : - return; - } - if (0 < initialState) { - ICSSTokenizer tokenizer = getTokenizer(); - tokenizer.setInitialState(initialState); - tokenizer.setInitialBufferSize(bufsize); - } - } - - public IStructuredDocumentRegion getDocumentRegions() { - IStructuredDocumentRegion headnode = null; - if (headnode == null) { - if (Debug.perfTest) { - fStartTime = System.currentTimeMillis(); - } - headnode = parseNodes(); - if (Debug.perfTest) { - fStopTime = System.currentTimeMillis(); - System.out.println(" -- creating nodes of IStructuredDocument -- "); //$NON-NLS-1$ - System.out.println(" Time parse and init all regions: " + (fStopTime - fStartTime) + " (msecs)"); //$NON-NLS-2$//$NON-NLS-1$ - // System.out.println(" for " + fRegions.size() + " - // Regions");//$NON-NLS-2$//$NON-NLS-1$ - System.out.println(" and " + _countNodes(headnode) + " Nodes"); //$NON-NLS-2$//$NON-NLS-1$ - } - } - return headnode; - } - - public List getRegions() { - IStructuredDocumentRegion headNode = null; - if (!getTokenizer().isEOF()) { - headNode = getDocumentRegions(); - // throw new IllegalStateException("parsing has not finished"); - } - // for memory recovery, we assume if someone - // requests all regions, we can reset our big - // memory consuming objects - // but the new "getRegions" method is then more expensive. - // I don't think its used much, though. - List localRegionsList = getRegions(headNode); - primReset(); - return localRegionsList; - } - - /** - * Method getRegions. - * - * @param headNode - * @return List - */ - protected List getRegions(IStructuredDocumentRegion headNode) { - List allRegions = new ArrayList(); - IStructuredDocumentRegion currentNode = headNode; - while (currentNode != null) { - ITextRegionList nodeRegions = currentNode.getRegions(); - for (int i = 0; i < nodeRegions.size(); i++) { - allRegions.add(nodeRegions.get(i)); - } - currentNode = currentNode.getNext(); - } - return allRegions; - } - - public void reset(Reader reader) { - primReset(); - getTokenizer().reset(reader, 0); - } - - public void reset(Reader reader, int offset) { - reset(reader); - } - - public void reset(String input) { - reset(new StringReader(input)); - } - - public void reset(String input, int offset) { - reset(input); - } - - public RegionParser newInstance() { - return new CSSSourceParser(); - } - - private IStructuredDocumentRegion parseNodes() { - // regions are initially reported as complete offsets within the - // scanned input - // they are adjusted here to be indexes from the currentNode's start - // offset - IStructuredDocumentRegion headNode = null; - IStructuredDocumentRegion lastNode = null; - ITextRegion region = null; - IStructuredDocumentRegion currentNode = null; - String type = null; - String currentRegionType = null; - - while ((region = getNextRegion()) != null) { - type = region.getType(); - if (mustBeStart(type, currentRegionType) && currentNode != null) { - currentNode.setEnded(true); - } - - if ((currentNode != null && currentNode.isEnded()) || currentNode == null) { - if (currentNode != null && !currentNode.isEnded()) { - currentNode.setEnded(true); - } - lastNode = currentNode; - currentNode = createStructuredDocumentRegion(type); - currentRegionType = type; - if (lastNode != null) { - lastNode.setNext(currentNode); - } - currentNode.setPrevious(lastNode); - currentNode.setStart(region.getStart()); - } - - currentNode.addRegion(region); - currentNode.setLength(region.getStart() + region.getLength() - currentNode.getStart()); - region.adjustStart(-currentNode.getStart()); - - if (mustBeEnd(type)) { - currentNode.setEnded(true); - } - - if (headNode == null && currentNode != null) { - headNode = currentNode; - } - } - - if (currentNode != null && !currentNode.isEnded()) { - currentNode.setEnded(true); - } - - primReset(); - return headNode; - } - - private IStructuredDocumentRegion createStructuredDocumentRegion(String type) { - return CSSStructuredDocumentRegionFactory.createRegion(type); - } - /** - * currently public but may be made default access protected in future. - */ - protected boolean mustBeStart(String type, String docRegionType) { - return ((type == CSSRegionContexts.CSS_DELIMITER || type == CSSRegionContexts.CSS_LBRACE || type == CSSRegionContexts.CSS_RBRACE || type == CSSRegionContexts.CSS_IMPORT || type == CSSRegionContexts.CSS_PAGE || type == CSSRegionContexts.CSS_MEDIA || type == CSSRegionContexts.CSS_FONT_FACE || type == CSSRegionContexts.CSS_CHARSET || type == CSSRegionContexts.CSS_ATKEYWORD || type == CSSRegionContexts.CSS_DECLARATION_PROPERTY || type == CSSRegionContexts.CSS_DECLARATION_DELIMITER) || (docRegionType == CSSRegionContexts.CSS_DECLARATION_PROPERTY && type == CSSRegionContexts.CSS_S) || (!CSSRegionUtil.isSelectorBegginingType(docRegionType) && (type == CSSRegionContexts.CSS_SELECTOR_ELEMENT_NAME || type == CSSRegionContexts.CSS_SELECTOR_UNIVERSAL || type == CSSRegionContexts.CSS_SELECTOR_PSEUDO || type == CSSRegionContexts.CSS_SELECTOR_CLASS || type == CSSRegionContexts.CSS_SELECTOR_ID || type == CSSRegionContexts.CSS_SELECTOR_ATTRIBUTE_START))); - } - /** - * currently public but may be made default access protected in future. - */ - protected boolean mustBeEnd(String type) { - return (type == CSSRegionContexts.CSS_DELIMITER || type == CSSRegionContexts.CSS_LBRACE || type == CSSRegionContexts.CSS_RBRACE || type == CSSRegionContexts.CSS_DECLARATION_DELIMITER); - } - - private ITextRegion getNextRegion() { - ITextRegion region = null; - try { - region = getTokenizer().getNextToken(); - // DMW: 2/12/03 Removed state - // if (region != null) { - // fRegions.add(region); - // } - return region; - } - catch (StackOverflowError e) { - Logger.logException(getClass().getName() + ": input could not be parsed correctly at position " + getTokenizer().getOffset(), e); //$NON-NLS-1$ - throw e; - } - catch (Exception e) { - Logger.logException(getClass().getName() + ": input could not be parsed correctly at position " + getTokenizer().getOffset() + " (" + e.getLocalizedMessage() + ")", e); //$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$ - } - return null; - } - - private void primReset() { - - getTokenizer().reset(new char[0]); - } - /** - * currently public but may be made default access protected in future. - */ - public ICSSTokenizer getTokenizer() { - if (fTokenizer == null) { - fTokenizer = new CSSTokenizer(); - } - return fTokenizer; - } - - - /** - * This is a simple utility to count nodes. Used only for debug - * statements. - */ - private int _countNodes(IStructuredDocumentRegion nodes) { - int result = 0; - IStructuredDocumentRegion countNode = nodes; - while (countNode != null) { - result++; - countNode = countNode.getNext(); - } - return result; - } - -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/parser/CSSStructuredDocumentRegionFactory.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/parser/CSSStructuredDocumentRegionFactory.java deleted file mode 100644 index bd9f233c5d..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/parser/CSSStructuredDocumentRegionFactory.java +++ /dev/null @@ -1,27 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.parser; - -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; -import org.eclipse.wst.sse.core.internal.text.BasicStructuredDocumentRegion; - -public class CSSStructuredDocumentRegionFactory { - public static IStructuredDocumentRegion createRegion(String type) { - IStructuredDocumentRegion instance = null; - if (type != null) { - instance = new BasicStructuredDocumentRegion(); - } - else { - - } - return instance; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/parser/CSSTokenizer.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/parser/CSSTokenizer.java deleted file mode 100644 index fee9ec34f6..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/parser/CSSTokenizer.java +++ /dev/null @@ -1,1205 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 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 - *******************************************************************************/ -/* The following code was generated by JFlex 1.2.2 on 6/7/06 5:23 PM */ -/*nlsXXX*/ -package org.eclipse.wst.css.core.internal.parser; - -import java.io.CharArrayReader; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.wst.css.core.internal.parser.regions.CSSTextRegionFactory; -import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts; -import org.eclipse.wst.css.core.internal.parserz.CSSTextToken; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; - - -/** - * This class is a scanner generated by <a - * href="http://www.informatik.tu-muenchen.de/~kleing/jflex/">JFlex</a> 1.2.2 - * on 6/7/06 5:23 PM from the specification file - * <tt>file:/D:/builds/Workspaces/pureHeadWTP/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/CSSTokenizer.jflex</tt> - */ -public class CSSTokenizer implements CSSRegionContexts, ICSSTokenizer { - - /** this character denotes the end of file */ - final public static int YYEOF = -1; - - /** lexical states */ - final public static int ST_SELECTOR_ATTRIBUTE_NAME = 11; - final public static int ST_IMPORT_DELIMITER = 5; - final public static int ST_DECLARATION_PRE_VALUE = 17; - final public static int ST_SELECTOR = 0; - final public static int ST_CHARSET_DELIMITER = 2; - final public static int ST_DECLARATION_VALUE = 18; - final public static int ST_PAGE_PSEUDO_PAGE = 8; - final public static int ST_IMPORT_URI = 3; - final public static int ST_SELECTOR_ATTRIBUTE_END = 14; - final public static int ST_SELECTOR_ATTRIBUTE_OPERATOR = 12; - final public static int ST_DECLARATION = 15; - final public static int ST_PAGE_DELIMITER = 9; - final public static int ST_SELECTOR_ATTRIBUTE_VALUE = 13; - final public static int ST_MEDIA_MEDIUM = 6; - final public static int ST_CHARSET_NAME = 1; - final public static int ST_IMPORT_MEDIUM = 4; - final public static int ST_DECLARATION_SEPARATOR = 16; - final public static int ST_FONT_FACE_DELIMITER = 9; - final public static int ST_MEDIA_DELIMITER = 7; - final public static int ST_SELECTOR_MODIFIER = 10; - final public static int YYINITIAL = 0; - - /** - * Translates characters to character classes - */ - final private static String yycmap_packed = "\11\0\1\12\1\17\1\0\1\4\1\20\22\0\1\6\1\31\1\11" + "\1\21\1\16\1\72\1\16\1\5\1\25\1\13\1\35\1\14\1\55" + "\1\10\1\15\1\34\12\1\1\62\1\50\1\30\1\67\1\32\1\27" + "\1\36\1\43\1\26\1\40\1\57\1\46\1\64\1\61\1\41\1\51" + "\2\2\1\24\1\52\1\65\1\54\1\53\1\2\1\23\1\44\1\47" + "\1\22\5\2\1\66\1\3\1\71\1\16\1\2\1\16\1\42\1\7" + "\1\37\1\56\1\45\1\63\1\61\1\41\1\51\2\2\1\24\1\52" + "\1\65\1\54\1\53\1\2\1\23\1\44\1\47\1\22\5\2\1\60" + "\1\70\1\33\1\70\1\0\uff80\2"; - - /** - * Translates characters to character classes - */ - final private static char[] yycmap = yy_unpack_cmap(yycmap_packed); - - /** - * Translates a state to a row index in the transition table - */ - final private static int yy_rowMap[] = {0, 59, 118, 177, 236, 295, 354, 413, 472, 531, 590, 649, 708, 767, 826, 885, 944, 1003, 1062, 1121, 1180, 1239, 1298, 1357, 1416, 1475, 1534, 1121, 1593, 1121, 1652, 1711, 1121, 1770, 1829, 1888, 1121, 1947, 2006, 2065, 2124, 2183, 2242, 1121, 2301, 2360, 2419, 1121, 1121, 2478, 2537, 2596, 1121, 2655, 2714, 1121, 1121, 2773, 2832, 2891, 1121, 2950, 1121, 3009, 3068, 3127, 3186, 3245, 3304, 3363, 3422, 1121, 1121, 3481, 3540, 3599, 3658, 3717, 3776, 1121, 3835, 3894, 3953, 4012, 4071, 1593, 1121, 4130, 1239, 4189, 4248, 1416, 4307, 1475, 4366, 4425, 4484, 4543, 4602, 4661, 4720, 4779, 4838, 4897, 4956, 1770, 5015, 1121, 1888, 5074, 1947, 5133, 1121, 2006, 5192, 5251, 2183, 5310, 2360, 5369, 2537, 5428, 5487, 1121, 2714, 2832, 5546, 3068, 5605, 3127, 5664, 1121, 3245, 5723, 3363, 5782, 5841, 5900, 5959, 3894, 1121, 3599, 1121, 6018, 3658, 6077, 1121, 3776, 6136, 6195, 3953, 6254, 6313, 6372, 4071, 6431, 1121, 4130, 6490, 1121, 6549, 6608, - 6667, 6726, 6785, 6844, 6903, 6962, 7021, 7080, 7139, 7198, 1770, 7257, 7316, 1888, 7375, 7434, 1947, 7493, 7552, 2006, 7611, 7670, 7729, 7788, 7847, 7906, 7965, 8024, 3127, 8083, 8142, 3245, 8201, 8260, 8319, 8378, 8437, 3658, 8496, 8555, 3776, 8614, 8673, 8732, 8791, 8850, 8909, 8968, 9027, 1121, 1121, 9086, 9145, 9204, 9263, 9322, 9381, 9440, 9499, 9558, 9617, 9676, 9735, 9794, 9853, 9912, 9971, 10030, 10089, 10148, 10207, 10266, 10325, 10384, 10443, 10502, 10561, 10620, 10679, 10738, 10797, 10856, 10915, 10974, 11033, 11092, 11151, 11210, 1121, 11269, 11328, 1121, 11387, 11446, 11505, 11564, 11623, 11682, 11741, 11800, 11859, 11918, 1121, 11977, 12036, 12095, 12154, 12213, 12272, 12331, 12390, 12449, 12508, 12567, 12626, 12685, 12744, 12803, 12862, 12921, 10797, 12980, 13039, 1121, 13098, 13157, 13216, 13275, 13334, 13393, 1121, 13452, 13511, 13570, 13629, 13688, 13747, 13806, 13865, 13924, 11741, 13983, 14042, 14101, 14160, 14219, 14278, 14337, 14396, 14455, - 14514, 14573, 14632, 14691, 14750, 14809, 14868, 14927, 14986, 15045, 12862, 15104, 15163, 15222, 15281, 15340, 15399, 15458, 1121, 15517, 15576, 15635, 15694, 15753, 15812, 15871, 15930, 15989, 16048, 16107, 16166, 16225, 16284, 16343, 16402, 16461, 16520, 16579, 16638, 16697, 16756, 16815, 16874, 16933, 16992, 17051, 17110, 17169, 17228, 17287, 17346, 17405, 17464, 17523, 17582, 17641, 17700, 17759, 1121, 17818, 17877, 17936, 17995, 18054, 18113, 18172, 18231, 18290, 11859, 18349, 11918, 18408, 18467, 18526, 18585, 18644, 18703, 18762, 18821, 18880, 18939, 12980, 18998, 13039, 19057, 19116, 19175, 19234, 19293, 19352, 19411, 19470, 19529, 19588, 19647, 1121, 19706, 19765, 19824, 19883, 1121, 19942, 20001, 20060, 1121, 20119, 20178, 20237, 20296, 20355, 20414, 20473, 20532, 20591, 20650}; - - /** - * The packed transition table of the DFA - */ - final private static String yy_packed = "\2\24\1\25\1\26\1\27\1\24\1\27\1\25\1\30" + "\1\24\1\27\2\24\1\31\1\24\2\27\1\32\3\25" + "\1\24\1\25\1\24\1\33\2\24\1\34\1\35\1\36" + "\1\37\11\25\1\24\4\25\1\24\2\25\1\24\1\25" + "\1\40\3\25\1\41\10\24\1\27\1\42\1\27\1\24" + "\1\43\1\44\1\27\4\24\2\27\7\24\1\33\2\24" + "\1\34\1\35\1\24\1\37\40\24\1\27\1\24\1\27" + "\1\24\1\43\1\24\1\27\4\24\2\27\7\24\1\33" + "\2\24\1\34\1\35\1\24\1\37\11\24\1\45\26\24" + "\1\27\1\46\1\27\1\24\1\43\1\47\1\27\4\24" + "\2\27\1\24\1\50\5\24\1\33\2\24\1\34\1\35" + "\1\24\1\37\11\24\1\45\24\24\1\51\1\52\1\27" + "\1\24\1\27\1\51\1\53\1\24\1\27\4\24\2\27" + "\1\24\3\51\1\24\1\51\1\24\1\33\2\24\1\34" + "\1\35\1\24\1\37\11\51\1\45\4\51\1\24\2\51" + "\1\24\1\51\1\24\3\51\11\24\1\27\1\24\1\27" + "\1\24\1\43\1\24\1\27\4\24\2\27\7\24\1\33" + "\2\24\1\34\1\35\1\24\1\37\11\24\1\45\4\24" + "\1\54\17\24\1\55\1\56\1\27\1\24\1\27\1\55" + "\1\57\1\24\1\27\4\24\2\27\1\24\3\55\1\24" + "\1\55\1\24\1\33\2\24\1\34\1\35\1\24\1\37" - + "\11\55\1\24\4\55\1\24\2\55\1\24\1\55\1\24" + "\3\55\11\24\1\27\1\24\1\27\1\24\1\43\1\24" + "\1\27\4\24\2\27\7\24\1\33\2\24\1\34\1\35" + "\1\24\1\37\16\24\1\60\2\24\1\61\14\24\1\62" + "\1\63\1\27\1\24\1\27\1\62\1\64\1\24\1\27" + "\4\24\2\27\1\24\3\62\1\24\1\62\1\24\1\33" + "\2\24\1\34\1\35\1\24\1\37\11\62\1\24\4\62" + "\1\24\2\62\1\65\1\62\1\66\3\62\11\24\1\27" + "\1\24\1\27\1\24\1\43\1\24\1\27\4\24\2\27" + "\7\24\1\33\2\24\1\34\1\35\1\24\1\37\21\24" + "\1\65\16\24\1\67\1\24\1\67\1\24\1\43\1\24" + "\1\67\1\24\1\70\1\31\1\24\2\67\1\32\6\24" + "\1\33\1\24\1\70\1\34\1\35\1\36\1\37\16\24" + "\1\71\2\24\1\65\1\24\1\40\3\24\1\41\6\24" + "\1\72\1\73\1\27\1\24\1\27\1\72\1\74\1\24" + "\1\27\4\24\2\27\1\24\3\72\1\24\1\72\1\24" + "\1\33\2\24\1\34\1\35\1\24\1\37\11\72\1\24" + "\4\72\1\24\2\72\1\24\1\72\1\24\3\72\11\24" + "\1\27\1\24\1\27\1\24\1\43\1\24\1\27\4\24" + "\2\27\7\24\1\33\2\24\1\34\1\35\1\24\1\37" + "\30\24\1\75\1\76\1\77\3\24\1\100\1\101\1\27" - + "\1\102\1\27\1\100\1\103\1\104\1\27\4\24\2\27" + "\1\24\3\100\1\24\1\100\1\24\1\33\2\24\1\34" + "\1\35\1\24\1\37\11\100\1\24\4\100\1\24\2\100" + "\1\24\1\100\1\24\3\100\11\24\1\27\1\24\1\27" + "\1\24\1\43\1\24\1\27\4\24\2\27\7\24\1\33" + "\2\24\1\34\1\35\1\24\1\37\32\24\1\77\3\24" + "\1\105\1\106\1\27\1\24\1\27\1\105\1\107\1\24" + "\1\27\4\24\2\27\1\24\3\105\1\24\1\105\1\24" + "\1\33\2\24\1\34\1\35\1\24\1\37\11\105\1\110" + "\4\105\1\24\2\105\1\24\1\105\1\24\3\105\11\24" + "\1\27\1\24\1\27\1\24\1\43\1\24\1\27\4\24" + "\2\27\7\24\1\33\2\24\1\34\1\35\1\24\1\37" + "\11\24\1\110\11\24\1\111\11\24\1\112\1\113\1\114" + "\1\27\1\115\1\27\1\113\1\116\1\117\1\27\1\120" + "\1\121\1\122\1\24\2\27\1\123\1\124\2\113\1\24" + "\1\113\1\24\1\33\1\125\1\24\1\34\1\126\1\24" + "\1\37\11\113\1\110\4\113\1\127\2\113\1\24\1\113" + "\1\24\3\113\6\24\1\112\1\113\1\114\1\130\1\115" + "\1\130\1\113\1\116\1\117\1\130\1\120\1\121\1\122" + "\1\24\2\130\1\123\1\124\2\113\1\24\1\113\1\24" - + "\1\33\1\125\1\24\1\34\1\126\1\24\1\37\11\113" + "\1\110\4\113\1\127\2\113\1\24\1\113\1\24\3\113" + "\5\24\74\0\2\25\1\131\3\0\2\25\11\0\3\25" + "\1\0\1\25\10\0\11\25\1\0\4\25\1\0\2\25" + "\1\0\1\25\1\0\3\25\6\0\1\132\2\25\1\0" + "\2\25\1\132\2\25\1\0\4\25\2\0\16\25\1\132" + "\2\25\1\132\2\25\1\132\10\25\1\132\4\25\1\132" + "\7\25\4\0\1\27\1\0\1\27\3\0\1\27\4\0" + "\2\27\54\0\1\25\1\131\3\0\1\25\1\133\11\0" + "\3\25\1\0\1\25\10\0\11\25\1\0\4\25\1\0" + "\2\25\1\0\1\25\1\0\3\25\6\0\2\134\1\135" + "\3\0\2\134\11\0\3\134\1\0\1\134\10\0\11\134" + "\1\0\4\134\1\0\2\134\1\0\1\134\1\0\3\134" + "\6\0\2\136\1\137\3\0\2\136\11\0\3\136\1\0" + "\1\136\10\0\11\136\1\0\4\136\1\0\2\136\1\0" + "\1\136\1\0\3\136\36\0\1\140\76\0\1\141\74\0" + "\2\142\10\0\1\143\1\144\1\145\7\0\2\146\10\0" + "\1\147\1\150\3\0\1\147\1\151\11\0\3\147\1\0" + "\1\147\10\0\11\147\1\0\4\147\1\0\2\147\1\0" + "\1\147\1\0\3\147\6\0\2\152\1\153\1\0\1\154" + "\11\152\2\0\52\152\10\0\1\133\63\0\2\155\1\156" - + "\1\0\4\155\1\154\5\155\2\0\52\155\1\0\2\157" + "\1\160\1\0\1\161\11\157\2\0\52\157\1\0\2\162" + "\1\163\1\0\4\162\1\161\5\162\2\0\52\162\23\0" + "\1\164\50\0\2\51\1\165\3\0\2\51\11\0\3\51" + "\1\0\1\51\10\0\11\51\1\0\4\51\1\0\2\51" + "\1\0\1\51\1\0\3\51\6\0\1\166\2\51\1\0" + "\2\51\1\166\2\51\1\0\4\51\2\0\16\51\1\166" + "\2\51\1\166\2\51\1\166\10\51\1\166\4\51\1\166" + "\7\51\2\0\1\51\1\165\3\0\1\51\1\133\11\0" + "\3\51\1\0\1\51\10\0\11\51\1\0\4\51\1\0" + "\2\51\1\0\1\51\1\0\3\51\6\0\2\55\1\167" + "\3\0\2\55\11\0\3\55\1\0\1\55\10\0\11\55" + "\1\0\4\55\1\0\2\55\1\0\1\55\1\0\3\55" + "\6\0\1\170\2\55\1\0\2\55\1\170\2\55\1\0" + "\4\55\2\0\16\55\1\170\2\55\1\170\2\55\1\170" + "\10\55\1\170\4\55\1\170\7\55\2\0\1\55\1\167" + "\3\0\1\55\1\133\11\0\3\55\1\0\1\55\10\0" + "\11\55\1\0\4\55\1\0\2\55\1\0\1\55\1\0" + "\3\55\6\0\2\62\1\171\3\0\2\62\11\0\3\62" + "\1\0\1\62\10\0\11\62\1\0\4\62\1\0\2\62" + "\1\0\1\62\1\0\3\62\6\0\1\172\2\62\1\0" - + "\2\62\1\172\2\62\1\0\4\62\2\0\16\62\1\172" + "\2\62\1\172\2\62\1\172\10\62\1\172\4\62\1\172" + "\7\62\2\0\1\62\1\171\3\0\1\62\1\133\11\0" + "\3\62\1\0\1\62\10\0\11\62\1\0\4\62\1\0" + "\2\62\1\0\1\62\1\0\3\62\7\0\1\62\1\171" + "\3\0\1\62\1\173\11\0\3\62\1\0\1\62\10\0" + "\11\62\1\0\4\62\1\0\2\62\1\0\1\62\1\0" + "\3\62\5\0\4\174\1\175\1\174\1\175\3\174\1\175" + "\1\174\1\0\2\174\2\175\11\174\1\0\25\174\1\0" + "\12\174\1\0\2\72\1\176\3\0\2\72\11\0\3\72" + "\1\0\1\72\10\0\11\72\1\0\4\72\1\0\2\72" + "\1\0\1\72\1\0\3\72\6\0\1\177\2\72\1\0" + "\2\72\1\177\2\72\1\0\4\72\2\0\16\72\1\177" + "\2\72\1\177\2\72\1\177\10\72\1\177\4\72\1\177" + "\7\72\2\0\1\72\1\176\3\0\1\72\1\133\11\0" + "\3\72\1\0\1\72\10\0\11\72\1\0\4\72\1\0" + "\2\72\1\0\1\72\1\0\3\72\74\0\1\75\4\0" + "\2\100\1\200\3\0\2\100\11\0\3\100\1\0\1\100" + "\10\0\11\100\1\0\4\100\1\0\2\100\1\0\1\100" + "\1\0\3\100\6\0\1\201\2\100\1\0\2\100\1\201" + "\2\100\1\0\4\100\2\0\16\100\1\201\2\100\1\201" - + "\2\100\1\201\10\100\1\201\4\100\1\201\7\100\1\0" + "\2\202\1\203\1\0\1\204\11\202\2\0\52\202\2\0" + "\1\100\1\200\3\0\1\100\1\133\11\0\3\100\1\0" + "\1\100\10\0\11\100\1\0\4\100\1\0\2\100\1\0" + "\1\100\1\0\3\100\6\0\2\205\1\206\1\0\4\205" + "\1\204\5\205\2\0\52\205\1\0\2\105\1\207\3\0" + "\2\105\11\0\3\105\1\0\1\105\10\0\11\105\1\0" + "\4\105\1\0\2\105\1\0\1\105\1\0\3\105\6\0" + "\1\210\2\105\1\0\2\105\1\210\2\105\1\0\4\105" + "\2\0\16\105\1\210\2\105\1\210\2\105\1\210\10\105" + "\1\210\4\105\1\210\7\105\2\0\1\105\1\207\3\0" + "\1\105\1\133\11\0\3\105\1\0\1\105\10\0\11\105" + "\1\0\4\105\1\0\2\105\1\0\1\105\1\0\3\105" + "\6\0\1\112\1\211\1\212\3\0\1\211\1\213\4\0" + "\1\214\4\0\3\211\1\0\1\211\10\0\11\211\1\0" + "\4\211\1\0\2\211\1\0\1\211\1\0\3\211\4\0" + "\1\215\1\0\2\113\1\216\3\0\2\113\11\0\3\113" + "\1\217\1\113\10\0\11\113\1\0\4\113\1\0\2\113" + "\1\0\1\113\1\0\3\113\6\0\1\220\2\113\1\0" + "\2\113\1\220\2\113\1\0\4\113\2\0\16\113\1\220" - + "\2\113\1\220\2\113\1\220\10\113\1\220\4\113\1\220" + "\7\113\1\0\2\221\1\222\1\0\1\223\11\221\2\0" + "\52\221\1\0\1\112\1\113\1\216\3\0\1\113\1\133" + "\4\0\1\214\4\0\3\113\1\0\1\113\10\0\11\113" + "\1\0\4\113\1\0\2\113\1\0\1\113\1\0\3\113" + "\6\0\2\224\1\225\1\0\4\224\1\223\5\224\2\0" + "\52\224\1\0\1\112\13\0\1\214\56\0\1\226\72\0" + "\2\227\1\230\3\0\2\227\11\0\3\227\1\0\1\227" + "\10\0\11\227\1\0\4\227\1\0\2\227\1\0\1\227" + "\1\0\3\227\6\0\2\113\1\216\3\0\2\113\3\0" + "\1\231\5\0\1\113\1\232\1\113\1\217\1\113\10\0" + "\11\113\1\0\4\113\1\0\2\113\1\0\1\113\1\0" + "\3\113\11\0\1\233\1\0\1\233\3\0\1\233\4\0" + "\2\233\30\0\1\234\21\0\4\235\1\236\1\235\1\236" + "\3\235\1\236\4\235\2\236\12\235\1\0\14\235\1\0" + "\22\235\1\0\1\237\1\25\1\131\1\25\1\0\1\25" + "\1\237\1\25\1\0\1\25\4\0\2\25\1\0\3\25" + "\1\0\1\25\10\0\1\237\2\25\1\237\2\25\1\237" + "\2\25\1\0\4\25\1\0\1\237\1\25\1\0\1\25" + "\1\0\1\237\2\25\37\0\1\240\41\0\1\241\2\134" - + "\1\0\2\134\1\241\2\134\1\0\4\134\2\0\16\134" + "\1\241\2\134\1\241\2\134\1\241\10\134\1\241\4\134" + "\1\241\7\134\1\0\1\242\2\136\1\0\2\136\1\242" + "\2\136\1\0\4\136\2\0\16\136\1\242\2\136\1\242" + "\2\136\1\242\10\136\1\242\4\136\1\242\7\136\10\0" + "\1\243\62\0\35\141\1\244\35\141\41\0\1\245\103\0" + "\1\246\65\0\2\247\66\0\2\250\103\0\1\251\17\0" + "\2\147\1\150\3\0\2\147\11\0\3\147\1\252\1\147" + "\10\0\11\147\1\0\4\147\1\0\2\147\1\0\1\147" + "\1\0\3\147\6\0\1\253\2\147\1\0\2\147\1\253" + "\2\147\1\0\4\147\2\0\16\147\1\253\2\147\1\253" + "\2\147\1\253\10\147\1\253\4\147\1\253\7\147\2\0" + "\1\147\1\150\3\0\1\147\12\0\3\147\1\0\1\147" + "\10\0\11\147\1\0\4\147\1\0\2\147\1\0\1\147" + "\1\0\3\147\6\0\1\254\1\152\1\153\1\152\1\255" + "\1\152\1\254\10\152\1\256\16\152\1\254\2\152\1\254" + "\2\152\1\254\10\152\1\254\4\152\1\254\7\152\1\0" + "\1\257\1\155\1\156\3\155\1\257\1\155\1\260\6\155" + "\1\261\16\155\1\257\2\155\1\257\2\155\1\257\10\155" - + "\1\257\4\155\1\257\7\155\1\0\1\262\1\157\1\160" + "\1\157\1\263\1\157\1\262\10\157\1\264\16\157\1\262" + "\2\157\1\262\2\157\1\262\10\157\1\262\4\157\1\262" + "\7\157\1\0\1\265\1\162\1\163\3\162\1\265\1\162" + "\1\266\6\162\1\267\16\162\1\265\2\162\1\265\2\162" + "\1\265\10\162\1\265\4\162\1\265\7\162\24\0\1\270" + "\47\0\1\271\1\51\1\165\1\51\1\0\1\51\1\271" + "\1\51\1\0\1\51\4\0\2\51\1\0\3\51\1\0" + "\1\51\10\0\1\271\2\51\1\271\2\51\1\271\2\51" + "\1\0\4\51\1\0\1\271\1\51\1\0\1\51\1\0" + "\1\271\2\51\6\0\1\272\1\55\1\167\1\55\1\0" + "\1\55\1\272\1\55\1\0\1\55\4\0\2\55\1\0" + "\3\55\1\0\1\55\10\0\1\272\2\55\1\272\2\55" + "\1\272\2\55\1\0\4\55\1\0\1\272\1\55\1\0" + "\1\55\1\0\1\272\2\55\6\0\1\273\1\62\1\171" + "\1\62\1\0\1\62\1\273\1\62\1\0\1\62\4\0" + "\2\62\1\0\3\62\1\0\1\62\10\0\1\273\2\62" + "\1\273\2\62\1\273\2\62\1\0\4\62\1\0\1\273" + "\1\62\1\0\1\62\1\0\1\273\2\62\7\0\1\62" + "\1\171\3\0\1\62\12\0\3\62\1\0\1\62\10\0" + "\11\62\1\0\4\62\1\0\2\62\1\0\1\62\1\0" - + "\3\62\6\0\1\274\1\72\1\176\1\72\1\0\1\72" + "\1\274\1\72\1\0\1\72\4\0\2\72\1\0\3\72" + "\1\0\1\72\10\0\1\274\2\72\1\274\2\72\1\274" + "\2\72\1\0\4\72\1\0\1\274\1\72\1\0\1\72" + "\1\0\1\274\2\72\6\0\1\275\1\100\1\200\1\100" + "\1\0\1\100\1\275\1\100\1\0\1\100\4\0\2\100" + "\1\0\3\100\1\0\1\100\10\0\1\275\2\100\1\275" + "\2\100\1\275\2\100\1\0\4\100\1\0\1\275\1\100" + "\1\0\1\100\1\0\1\275\2\100\6\0\1\276\1\202" + "\1\203\1\202\1\277\1\202\1\276\10\202\1\300\16\202" + "\1\276\2\202\1\276\2\202\1\276\10\202\1\276\4\202" + "\1\276\7\202\1\0\1\301\1\205\1\206\3\205\1\301" + "\1\205\1\302\6\205\1\303\16\205\1\301\2\205\1\301" + "\2\205\1\301\10\205\1\301\4\205\1\301\7\205\1\0" + "\1\304\1\105\1\207\1\105\1\0\1\105\1\304\1\105" + "\1\0\1\105\4\0\2\105\1\0\3\105\1\0\1\105" + "\10\0\1\304\2\105\1\304\2\105\1\304\2\105\1\0" + "\4\105\1\0\1\304\1\105\1\0\1\105\1\0\1\304" + "\2\105\6\0\2\211\1\212\3\0\2\211\11\0\3\211" + "\1\0\1\211\10\0\11\211\1\0\4\211\1\0\2\211" - + "\1\0\1\211\1\0\3\211\6\0\1\305\2\211\1\0" + "\2\211\1\305\2\211\1\0\4\211\2\0\16\211\1\305" + "\2\211\1\305\2\211\1\305\10\211\1\305\4\211\1\305" + "\7\211\2\0\1\211\1\212\3\0\1\211\12\0\3\211" + "\1\0\1\211\10\0\11\211\1\0\4\211\1\0\2\211" + "\1\0\1\211\1\0\3\211\6\0\1\306\1\113\1\216" + "\1\113\1\0\1\113\1\306\1\113\1\0\1\113\4\0" + "\2\113\1\0\3\113\1\217\1\113\10\0\1\306\2\113" + "\1\306\2\113\1\306\2\113\1\0\4\113\1\0\1\306" + "\1\113\1\0\1\113\1\0\1\306\2\113\6\0\1\307" + "\1\221\1\222\1\221\1\310\1\221\1\307\10\221\1\311" + "\16\221\1\307\2\221\1\307\2\221\1\307\10\221\1\307" + "\4\221\1\307\7\221\1\0\1\312\1\224\1\225\3\224" + "\1\312\1\224\1\313\6\224\1\314\16\224\1\312\2\224" + "\1\312\2\224\1\312\10\224\1\312\4\224\1\312\7\224" + "\1\0\1\226\1\211\1\212\3\0\1\211\1\213\11\0" + "\3\211\1\0\1\211\10\0\11\211\1\0\4\211\1\0" + "\2\211\1\0\1\211\1\0\3\211\4\0\1\215\1\0" + "\1\315\2\227\1\0\2\227\1\315\2\227\1\0\4\227" - + "\2\0\16\227\1\315\2\227\1\315\2\227\1\315\10\227" + "\1\315\4\227\1\315\7\227\1\0\1\316\5\0\1\316" + "\16\0\2\316\7\0\2\316\1\0\2\316\1\0\2\316" + "\7\0\2\316\3\0\2\316\7\0\2\113\1\216\3\0" + "\2\113\11\0\2\113\1\317\1\217\1\113\10\0\11\113" + "\1\0\4\113\1\0\2\113\1\0\1\113\1\0\3\113" + "\57\0\1\320\21\0\1\321\1\25\1\131\1\25\1\0" + "\1\25\1\321\1\25\1\0\1\25\4\0\2\25\1\0" + "\3\25\1\0\1\25\10\0\1\321\2\25\1\321\2\25" + "\1\321\2\25\1\0\4\25\1\0\1\321\1\25\1\0" + "\1\25\1\0\1\321\2\25\6\0\1\322\1\134\1\135" + "\1\134\1\0\1\134\1\322\1\134\1\0\1\134\4\0" + "\2\134\1\0\3\134\1\0\1\134\10\0\1\322\2\134" + "\1\322\2\134\1\322\2\134\1\0\4\134\1\0\1\322" + "\1\134\1\0\1\134\1\0\1\322\2\134\6\0\1\323" + "\1\136\1\137\1\136\1\0\1\136\1\323\1\136\1\0" + "\1\136\4\0\2\136\1\0\3\136\1\0\1\136\10\0" + "\1\323\2\136\1\323\2\136\1\323\2\136\1\0\4\136" + "\1\0\1\323\1\136\1\0\1\136\1\0\1\323\2\136" + "\15\0\1\324\62\0\34\141\1\325\1\244\35\141\42\0" - + "\2\326\102\0\1\327\75\0\2\330\74\0\1\331\76\0" + "\1\332\7\0\1\333\1\334\1\252\1\0\1\252\1\333" + "\1\335\1\0\1\252\4\0\2\252\1\0\3\333\1\0" + "\1\333\10\0\11\333\1\0\4\333\1\0\2\333\1\0" + "\1\333\1\0\3\333\6\0\1\336\1\147\1\150\1\147" + "\1\0\1\147\1\336\1\147\1\0\1\147\4\0\2\147" + "\1\0\3\147\1\252\1\147\10\0\1\336\2\147\1\336" + "\2\147\1\336\2\147\1\0\4\147\1\0\1\336\1\147" + "\1\0\1\147\1\0\1\336\2\147\6\0\1\337\1\152" + "\1\153\1\152\1\154\1\152\1\337\27\152\1\337\2\152" + "\1\337\2\152\1\337\10\152\1\337\4\152\1\337\7\152" + "\1\0\2\152\1\153\1\0\1\154\12\152\1\0\52\152" + "\1\0\1\340\1\155\1\156\3\155\1\340\1\155\1\154" + "\25\155\1\340\2\155\1\340\2\155\1\340\10\155\1\340" + "\4\155\1\340\7\155\1\0\2\155\1\156\1\0\4\155" + "\1\154\6\155\1\0\52\155\1\0\1\341\1\157\1\160" + "\1\157\1\161\1\157\1\341\27\157\1\341\2\157\1\341" + "\2\157\1\341\10\157\1\341\4\157\1\341\7\157\1\0" + "\2\157\1\160\1\0\1\161\12\157\1\0\52\157\1\0" - + "\1\342\1\162\1\163\3\162\1\342\1\162\1\161\25\162" + "\1\342\2\162\1\342\2\162\1\342\10\162\1\342\4\162" + "\1\342\7\162\1\0\2\162\1\163\1\0\4\162\1\161" + "\6\162\1\0\52\162\25\0\1\343\46\0\1\344\1\51" + "\1\165\1\51\1\0\1\51\1\344\1\51\1\0\1\51" + "\4\0\2\51\1\0\3\51\1\0\1\51\10\0\1\344" + "\2\51\1\344\2\51\1\344\2\51\1\0\4\51\1\0" + "\1\344\1\51\1\0\1\51\1\0\1\344\2\51\6\0" + "\1\345\1\55\1\167\1\55\1\0\1\55\1\345\1\55" + "\1\0\1\55\4\0\2\55\1\0\3\55\1\0\1\55" + "\10\0\1\345\2\55\1\345\2\55\1\345\2\55\1\0" + "\4\55\1\0\1\345\1\55\1\0\1\55\1\0\1\345" + "\2\55\6\0\1\346\1\62\1\171\1\62\1\0\1\62" + "\1\346\1\62\1\0\1\62\4\0\2\62\1\0\3\62" + "\1\0\1\62\10\0\1\346\2\62\1\346\2\62\1\346" + "\2\62\1\0\4\62\1\0\1\346\1\62\1\0\1\62" + "\1\0\1\346\2\62\6\0\1\347\1\72\1\176\1\72" + "\1\0\1\72\1\347\1\72\1\0\1\72\4\0\2\72" + "\1\0\3\72\1\0\1\72\10\0\1\347\2\72\1\347" + "\2\72\1\347\2\72\1\0\4\72\1\0\1\347\1\72" + "\1\0\1\72\1\0\1\347\2\72\6\0\1\350\1\100" - + "\1\200\1\100\1\0\1\100\1\350\1\100\1\0\1\100" + "\4\0\2\100\1\0\3\100\1\0\1\100\10\0\1\350" + "\2\100\1\350\2\100\1\350\2\100\1\0\4\100\1\0" + "\1\350\1\100\1\0\1\100\1\0\1\350\2\100\6\0" + "\1\351\1\202\1\203\1\202\1\204\1\202\1\351\27\202" + "\1\351\2\202\1\351\2\202\1\351\10\202\1\351\4\202" + "\1\351\7\202\1\0\2\202\1\203\1\0\1\204\12\202" + "\1\0\52\202\1\0\1\352\1\205\1\206\3\205\1\352" + "\1\205\1\204\25\205\1\352\2\205\1\352\2\205\1\352" + "\10\205\1\352\4\205\1\352\7\205\1\0\2\205\1\206" + "\1\0\4\205\1\204\6\205\1\0\52\205\1\0\1\353" + "\1\105\1\207\1\105\1\0\1\105\1\353\1\105\1\0" + "\1\105\4\0\2\105\1\0\3\105\1\0\1\105\10\0" + "\1\353\2\105\1\353\2\105\1\353\2\105\1\0\4\105" + "\1\0\1\353\1\105\1\0\1\105\1\0\1\353\2\105" + "\6\0\1\354\1\211\1\212\1\211\1\0\1\211\1\354" + "\1\211\1\0\1\211\4\0\2\211\1\0\3\211\1\0" + "\1\211\10\0\1\354\2\211\1\354\2\211\1\354\2\211" + "\1\0\4\211\1\0\1\354\1\211\1\0\1\211\1\0" - + "\1\354\2\211\6\0\1\355\1\113\1\216\1\113\1\0" + "\1\113\1\355\1\113\1\0\1\113\4\0\2\113\1\0" + "\3\113\1\217\1\113\10\0\1\355\2\113\1\355\2\113" + "\1\355\2\113\1\0\4\113\1\0\1\355\1\113\1\0" + "\1\113\1\0\1\355\2\113\6\0\1\356\1\221\1\222" + "\1\221\1\223\1\221\1\356\27\221\1\356\2\221\1\356" + "\2\221\1\356\10\221\1\356\4\221\1\356\7\221\1\0" + "\2\221\1\222\1\0\1\223\12\221\1\0\52\221\1\0" + "\1\357\1\224\1\225\3\224\1\357\1\224\1\223\25\224" + "\1\357\2\224\1\357\2\224\1\357\10\224\1\357\4\224" + "\1\357\7\224\1\0\2\224\1\225\1\0\4\224\1\223" + "\6\224\1\0\52\224\1\0\1\360\1\227\1\230\1\227" + "\1\0\1\227\1\360\1\227\1\0\1\227\4\0\2\227" + "\1\0\3\227\1\0\1\227\10\0\1\360\2\227\1\360" + "\2\227\1\360\2\227\1\0\4\227\1\0\1\360\1\227" + "\1\0\1\227\1\0\1\360\2\227\6\0\1\361\5\0" + "\1\361\1\362\15\0\2\361\7\0\2\361\1\0\2\361" + "\1\0\2\361\7\0\2\361\3\0\2\361\7\0\2\113" + "\1\216\3\0\2\113\11\0\3\113\1\363\1\113\10\0" + "\11\113\1\0\4\113\1\0\2\113\1\0\1\113\1\0" - + "\3\113\60\0\1\364\20\0\1\365\1\25\1\131\1\25" + "\1\0\1\25\1\365\1\25\1\0\1\25\4\0\2\25" + "\1\0\3\25\1\0\1\25\10\0\1\365\2\25\1\365" + "\2\25\1\365\2\25\1\0\4\25\1\0\1\365\1\25" + "\1\0\1\25\1\0\1\365\2\25\6\0\1\366\1\134" + "\1\135\1\134\1\0\1\134\1\366\1\134\1\0\1\134" + "\4\0\2\134\1\0\3\134\1\0\1\134\10\0\1\366" + "\2\134\1\366\2\134\1\366\2\134\1\0\4\134\1\0" + "\1\366\1\134\1\0\1\134\1\0\1\366\2\134\6\0" + "\1\367\1\136\1\137\1\136\1\0\1\136\1\367\1\136" + "\1\0\1\136\4\0\2\136\1\0\3\136\1\0\1\136" + "\10\0\1\367\2\136\1\367\2\136\1\367\2\136\1\0" + "\4\136\1\0\1\367\1\136\1\0\1\136\1\0\1\367" + "\2\136\30\0\1\370\123\0\1\371\67\0\1\372\66\0" + "\2\373\73\0\1\374\24\0\2\333\1\334\1\375\1\0" + "\1\375\2\333\1\0\1\375\1\376\3\0\2\375\1\0" + "\3\333\1\0\1\333\10\0\11\333\1\0\4\333\1\0" + "\2\333\1\0\1\333\1\0\3\333\6\0\1\377\2\333" + "\1\0\2\333\1\377\2\333\1\0\4\333\2\0\16\333" + "\1\377\2\333\1\377\2\333\1\377\10\333\1\377\4\333" - + "\1\377\7\333\2\0\1\333\1\334\3\0\1\333\12\0" + "\3\333\1\0\1\333\10\0\11\333\1\0\4\333\1\0" + "\2\333\1\0\1\333\1\0\3\333\6\0\1\u0100\1\147" + "\1\150\1\147\1\0\1\147\1\u0100\1\147\1\0\1\147" + "\4\0\2\147\1\0\3\147\1\252\1\147\10\0\1\u0100" + "\2\147\1\u0100\2\147\1\u0100\2\147\1\0\4\147\1\0" + "\1\u0100\1\147\1\0\1\147\1\0\1\u0100\2\147\6\0" + "\1\u0101\1\152\1\153\1\152\1\154\1\152\1\u0101\27\152" + "\1\u0101\2\152\1\u0101\2\152\1\u0101\10\152\1\u0101\4\152" + "\1\u0101\7\152\1\0\1\u0102\1\155\1\156\3\155\1\u0102" + "\1\155\1\154\25\155\1\u0102\2\155\1\u0102\2\155\1\u0102" + "\10\155\1\u0102\4\155\1\u0102\7\155\1\0\1\u0103\1\157" + "\1\160\1\157\1\161\1\157\1\u0103\27\157\1\u0103\2\157" + "\1\u0103\2\157\1\u0103\10\157\1\u0103\4\157\1\u0103\7\157" + "\1\0\1\u0104\1\162\1\163\3\162\1\u0104\1\162\1\161" + "\25\162\1\u0104\2\162\1\u0104\2\162\1\u0104\10\162\1\u0104" + "\4\162\1\u0104\7\162\1\0\2\u0105\1\u0106\1\343\1\u0107" - + "\1\343\2\u0105\1\u0108\1\343\1\u0109\3\u0105\2\343\4\u0105" + "\1\0\45\u0105\1\0\1\u010a\1\51\1\165\1\51\1\0" + "\1\51\1\u010a\1\51\1\0\1\51\4\0\2\51\1\0" + "\3\51\1\0\1\51\10\0\1\u010a\2\51\1\u010a\2\51" + "\1\u010a\2\51\1\0\4\51\1\0\1\u010a\1\51\1\0" + "\1\51\1\0\1\u010a\2\51\6\0\1\u010b\1\55\1\167" + "\1\55\1\0\1\55\1\u010b\1\55\1\0\1\55\4\0" + "\2\55\1\0\3\55\1\0\1\55\10\0\1\u010b\2\55" + "\1\u010b\2\55\1\u010b\2\55\1\0\4\55\1\0\1\u010b" + "\1\55\1\0\1\55\1\0\1\u010b\2\55\6\0\1\u010c" + "\1\62\1\171\1\62\1\0\1\62\1\u010c\1\62\1\0" + "\1\62\4\0\2\62\1\0\3\62\1\0\1\62\10\0" + "\1\u010c\2\62\1\u010c\2\62\1\u010c\2\62\1\0\4\62" + "\1\0\1\u010c\1\62\1\0\1\62\1\0\1\u010c\2\62" + "\6\0\1\u010d\1\72\1\176\1\72\1\0\1\72\1\u010d" + "\1\72\1\0\1\72\4\0\2\72\1\0\3\72\1\0" + "\1\72\10\0\1\u010d\2\72\1\u010d\2\72\1\u010d\2\72" + "\1\0\4\72\1\0\1\u010d\1\72\1\0\1\72\1\0" + "\1\u010d\2\72\6\0\1\u010e\1\100\1\200\1\100\1\0" + "\1\100\1\u010e\1\100\1\0\1\100\4\0\2\100\1\0" - + "\3\100\1\0\1\100\10\0\1\u010e\2\100\1\u010e\2\100" + "\1\u010e\2\100\1\0\4\100\1\0\1\u010e\1\100\1\0" + "\1\100\1\0\1\u010e\2\100\6\0\1\u010f\1\202\1\203" + "\1\202\1\204\1\202\1\u010f\27\202\1\u010f\2\202\1\u010f" + "\2\202\1\u010f\10\202\1\u010f\4\202\1\u010f\7\202\1\0" + "\1\u0110\1\205\1\206\3\205\1\u0110\1\205\1\204\25\205" + "\1\u0110\2\205\1\u0110\2\205\1\u0110\10\205\1\u0110\4\205" + "\1\u0110\7\205\1\0\1\u0111\1\105\1\207\1\105\1\0" + "\1\105\1\u0111\1\105\1\0\1\105\4\0\2\105\1\0" + "\3\105\1\0\1\105\10\0\1\u0111\2\105\1\u0111\2\105" + "\1\u0111\2\105\1\0\4\105\1\0\1\u0111\1\105\1\0" + "\1\105\1\0\1\u0111\2\105\6\0\1\u0112\1\211\1\212" + "\1\211\1\0\1\211\1\u0112\1\211\1\0\1\211\4\0" + "\2\211\1\0\3\211\1\0\1\211\10\0\1\u0112\2\211" + "\1\u0112\2\211\1\u0112\2\211\1\0\4\211\1\0\1\u0112" + "\1\211\1\0\1\211\1\0\1\u0112\2\211\6\0\1\u0113" + "\1\113\1\216\1\113\1\0\1\113\1\u0113\1\113\1\0" + "\1\113\4\0\2\113\1\0\3\113\1\217\1\113\10\0" - + "\1\u0113\2\113\1\u0113\2\113\1\u0113\2\113\1\0\4\113" + "\1\0\1\u0113\1\113\1\0\1\113\1\0\1\u0113\2\113" + "\6\0\1\u0114\1\221\1\222\1\221\1\223\1\221\1\u0114" + "\27\221\1\u0114\2\221\1\u0114\2\221\1\u0114\10\221\1\u0114" + "\4\221\1\u0114\7\221\1\0\1\u0115\1\224\1\225\3\224" + "\1\u0115\1\224\1\223\25\224\1\u0115\2\224\1\u0115\2\224" + "\1\u0115\10\224\1\u0115\4\224\1\u0115\7\224\1\0\1\u0116" + "\1\227\1\230\1\227\1\0\1\227\1\u0116\1\227\1\0" + "\1\227\4\0\2\227\1\0\3\227\1\0\1\227\10\0" + "\1\u0116\2\227\1\u0116\2\227\1\u0116\2\227\1\0\4\227" + "\1\0\1\u0116\1\227\1\0\1\227\1\0\1\u0116\2\227" + "\6\0\1\u0117\5\0\1\u0117\1\362\15\0\2\u0117\7\0" + "\2\u0117\1\0\2\u0117\1\0\2\u0117\7\0\2\u0117\3\0" + "\2\u0117\7\0\1\u0118\5\0\1\u0118\16\0\2\u0118\7\0" + "\2\u0118\1\0\2\u0118\1\0\2\u0118\7\0\2\u0118\3\0" + "\2\u0118\7\0\2\u0119\1\u011a\1\u011b\1\u011c\1\u011b\2\u0119" + "\1\u011d\1\u011b\1\u011e\3\u0119\2\u011b\4\u0119\1\0\45\u0119" - + "\54\0\1\u011f\17\0\1\u0120\1\25\1\131\1\25\1\0" + "\1\25\1\u0120\1\25\1\0\1\25\4\0\2\25\1\0" + "\3\25\1\0\1\25\10\0\1\u0120\2\25\1\u0120\2\25" + "\1\u0120\2\25\1\0\4\25\1\0\1\u0120\1\25\1\0" + "\1\25\1\0\1\u0120\2\25\6\0\1\u0121\1\134\1\135" + "\1\134\1\0\1\134\1\u0121\1\134\1\0\1\134\4\0" + "\2\134\1\0\3\134\1\0\1\134\10\0\1\u0121\2\134" + "\1\u0121\2\134\1\u0121\2\134\1\0\4\134\1\0\1\u0121" + "\1\134\1\0\1\134\1\0\1\u0121\2\134\6\0\1\u0122" + "\1\136\1\137\1\136\1\0\1\136\1\u0122\1\136\1\0" + "\1\136\4\0\2\136\1\0\3\136\1\0\1\136\10\0" + "\1\u0122\2\136\1\u0122\2\136\1\u0122\2\136\1\0\4\136" + "\1\0\1\u0122\1\136\1\0\1\136\1\0\1\u0122\2\136" + "\51\0\1\u0123\51\0\1\u0124\111\0\2\u0125\37\0\1\u0126" + "\66\0\1\375\1\0\1\375\3\0\1\375\1\376\3\0" + "\2\375\53\0\1\u0127\1\333\1\334\1\333\1\0\1\333" + "\1\u0127\1\333\1\0\1\333\1\376\3\0\2\333\1\0" + "\3\333\1\0\1\333\10\0\1\u0127\2\333\1\u0127\2\333" + "\1\u0127\2\333\1\0\4\333\1\0\1\u0127\1\333\1\0" - + "\1\333\1\0\1\u0127\2\333\6\0\1\u0128\1\147\1\150" + "\1\147\1\0\1\147\1\u0128\1\147\1\0\1\147\4\0" + "\2\147\1\0\3\147\1\252\1\147\10\0\1\u0128\2\147" + "\1\u0128\2\147\1\u0128\2\147\1\0\4\147\1\0\1\u0128" + "\1\147\1\0\1\147\1\0\1\u0128\2\147\6\0\1\u0129" + "\1\152\1\153\1\152\1\154\1\152\1\u0129\27\152\1\u0129" + "\2\152\1\u0129\2\152\1\u0129\10\152\1\u0129\4\152\1\u0129" + "\7\152\1\0\1\u012a\1\155\1\156\3\155\1\u012a\1\155" + "\1\154\25\155\1\u012a\2\155\1\u012a\2\155\1\u012a\10\155" + "\1\u012a\4\155\1\u012a\7\155\1\0\1\u012b\1\157\1\160" + "\1\157\1\161\1\157\1\u012b\27\157\1\u012b\2\157\1\u012b" + "\2\157\1\u012b\10\157\1\u012b\4\157\1\u012b\7\157\1\0" + "\1\u012c\1\162\1\163\3\162\1\u012c\1\162\1\161\25\162" + "\1\u012c\2\162\1\u012c\2\162\1\u012c\10\162\1\u012c\4\162" + "\1\u012c\7\162\1\0\2\u0105\1\u0106\1\u012d\1\0\3\u0105" + "\1\0\1\u012d\1\u0109\3\u0105\2\u012d\4\u0105\1\0\45\u0105" + "\1\0\1\u012e\1\u0105\1\u0106\1\u012d\2\u0105\1\u012e\2\u0105" - + "\1\u012d\1\u012f\3\u0105\2\u012d\16\u0105\1\u012e\2\u0105\1\u012e" + "\2\u0105\1\u012e\10\u0105\1\u012e\4\u0105\1\u012e\7\u0105\1\0" + "\2\u0107\1\u0130\1\0\1\u012d\11\u0107\2\0\52\u0107\1\0" + "\2\u0108\1\u0131\1\0\4\u0108\1\u012d\5\u0108\2\0\52\u0108" + "\1\0\1\u0132\1\51\1\165\1\51\1\0\1\51\1\u0132" + "\1\51\1\0\1\51\4\0\2\51\1\0\3\51\1\0" + "\1\51\10\0\1\u0132\2\51\1\u0132\2\51\1\u0132\2\51" + "\1\0\4\51\1\0\1\u0132\1\51\1\0\1\51\1\0" + "\1\u0132\2\51\6\0\1\u0133\1\55\1\167\1\55\1\0" + "\1\55\1\u0133\1\55\1\0\1\55\4\0\2\55\1\0" + "\3\55\1\0\1\55\10\0\1\u0133\2\55\1\u0133\2\55" + "\1\u0133\2\55\1\0\4\55\1\0\1\u0133\1\55\1\0" + "\1\55\1\0\1\u0133\2\55\6\0\1\u0134\1\62\1\171" + "\1\62\1\0\1\62\1\u0134\1\62\1\0\1\62\4\0" + "\2\62\1\0\3\62\1\0\1\62\10\0\1\u0134\2\62" + "\1\u0134\2\62\1\u0134\2\62\1\0\4\62\1\0\1\u0134" + "\1\62\1\0\1\62\1\0\1\u0134\2\62\6\0\1\u0135" + "\1\72\1\176\1\72\1\0\1\72\1\u0135\1\72\1\0" + "\1\72\4\0\2\72\1\0\3\72\1\0\1\72\10\0" - + "\1\u0135\2\72\1\u0135\2\72\1\u0135\2\72\1\0\4\72" + "\1\0\1\u0135\1\72\1\0\1\72\1\0\1\u0135\2\72" + "\6\0\1\u0136\1\100\1\200\1\100\1\0\1\100\1\u0136" + "\1\100\1\0\1\100\4\0\2\100\1\0\3\100\1\0" + "\1\100\10\0\1\u0136\2\100\1\u0136\2\100\1\u0136\2\100" + "\1\0\4\100\1\0\1\u0136\1\100\1\0\1\100\1\0" + "\1\u0136\2\100\6\0\1\u0137\1\202\1\203\1\202\1\204" + "\1\202\1\u0137\27\202\1\u0137\2\202\1\u0137\2\202\1\u0137" + "\10\202\1\u0137\4\202\1\u0137\7\202\1\0\1\u0138\1\205" + "\1\206\3\205\1\u0138\1\205\1\204\25\205\1\u0138\2\205" + "\1\u0138\2\205\1\u0138\10\205\1\u0138\4\205\1\u0138\7\205" + "\1\0\1\u0139\1\105\1\207\1\105\1\0\1\105\1\u0139" + "\1\105\1\0\1\105\4\0\2\105\1\0\3\105\1\0" + "\1\105\10\0\1\u0139\2\105\1\u0139\2\105\1\u0139\2\105" + "\1\0\4\105\1\0\1\u0139\1\105\1\0\1\105\1\0" + "\1\u0139\2\105\6\0\1\u013a\1\211\1\212\1\211\1\0" + "\1\211\1\u013a\1\211\1\0\1\211\4\0\2\211\1\0" + "\3\211\1\0\1\211\10\0\1\u013a\2\211\1\u013a\2\211" - + "\1\u013a\2\211\1\0\4\211\1\0\1\u013a\1\211\1\0" + "\1\211\1\0\1\u013a\2\211\6\0\1\u013b\1\113\1\216" + "\1\113\1\0\1\113\1\u013b\1\113\1\0\1\113\4\0" + "\2\113\1\0\3\113\1\217\1\113\10\0\1\u013b\2\113" + "\1\u013b\2\113\1\u013b\2\113\1\0\4\113\1\0\1\u013b" + "\1\113\1\0\1\113\1\0\1\u013b\2\113\6\0\1\u013c" + "\1\221\1\222\1\221\1\223\1\221\1\u013c\27\221\1\u013c" + "\2\221\1\u013c\2\221\1\u013c\10\221\1\u013c\4\221\1\u013c" + "\7\221\1\0\1\u013d\1\224\1\225\3\224\1\u013d\1\224" + "\1\223\25\224\1\u013d\2\224\1\u013d\2\224\1\u013d\10\224" + "\1\u013d\4\224\1\u013d\7\224\1\0\1\u013e\1\227\1\230" + "\1\227\1\0\1\227\1\u013e\1\227\1\0\1\227\4\0" + "\2\227\1\0\3\227\1\0\1\227\10\0\1\u013e\2\227" + "\1\u013e\2\227\1\u013e\2\227\1\0\4\227\1\0\1\u013e" + "\1\227\1\0\1\227\1\0\1\u013e\2\227\6\0\1\u013f" + "\5\0\1\u013f\1\362\15\0\2\u013f\7\0\2\u013f\1\0" + "\2\u013f\1\0\2\u013f\7\0\2\u013f\3\0\2\u013f\7\0" + "\1\u0140\5\0\1\u0140\16\0\2\u0140\7\0\2\u0140\1\0" - + "\2\u0140\1\0\2\u0140\7\0\2\u0140\3\0\2\u0140\7\0" + "\2\u0119\1\u011a\1\u0141\1\0\3\u0119\1\0\1\u0141\1\u011e" + "\3\u0119\2\u0141\4\u0119\1\0\45\u0119\1\0\1\u0142\1\u0119" + "\1\u011a\1\u0141\2\u0119\1\u0142\2\u0119\1\u0141\1\u0143\3\u0119" + "\2\u0141\16\u0119\1\u0142\2\u0119\1\u0142\2\u0119\1\u0142\10\u0119" + "\1\u0142\4\u0119\1\u0142\7\u0119\1\0\2\u011c\1\u0144\1\0" + "\1\u0141\11\u011c\2\0\52\u011c\1\0\2\u011d\1\u0145\1\0" + "\4\u011d\1\u0141\5\u011d\2\0\52\u011d\23\0\1\u0146\50\0" + "\1\u0147\1\25\1\131\1\25\1\0\1\25\1\u0147\1\25" + "\1\0\1\25\4\0\2\25\1\0\3\25\1\0\1\25" + "\10\0\1\u0147\2\25\1\u0147\2\25\1\u0147\2\25\1\0" + "\4\25\1\0\1\u0147\1\25\1\0\1\25\1\0\1\u0147" + "\2\25\6\0\1\u0148\1\134\1\135\1\134\1\0\1\134" + "\1\u0148\1\134\1\0\1\134\4\0\2\134\1\0\3\134" + "\1\0\1\134\10\0\1\u0148\2\134\1\u0148\2\134\1\u0148" + "\2\134\1\0\4\134\1\0\1\u0148\1\134\1\0\1\134" + "\1\0\1\u0148\2\134\6\0\1\u0149\1\136\1\137\1\136" - + "\1\0\1\136\1\u0149\1\136\1\0\1\136\4\0\2\136" + "\1\0\3\136\1\0\1\136\10\0\1\u0149\2\136\1\u0149" + "\2\136\1\u0149\2\136\1\0\4\136\1\0\1\u0149\1\136" + "\1\0\1\136\1\0\1\u0149\2\136\52\0\2\u014a\73\0" + "\1\u014b\106\0\2\u014c\7\0\1\u014d\1\333\1\334\1\333" + "\1\0\1\333\1\u014d\1\333\1\0\1\333\1\376\3\0" + "\2\333\1\0\3\333\1\0\1\333\10\0\1\u014d\2\333" + "\1\u014d\2\333\1\u014d\2\333\1\0\4\333\1\0\1\u014d" + "\1\333\1\0\1\333\1\0\1\u014d\2\333\6\0\1\u014e" + "\1\147\1\150\1\147\1\0\1\147\1\u014e\1\147\1\0" + "\1\147\4\0\2\147\1\0\3\147\1\252\1\147\10\0" + "\1\u014e\2\147\1\u014e\2\147\1\u014e\2\147\1\0\4\147" + "\1\0\1\u014e\1\147\1\0\1\147\1\0\1\u014e\2\147" + "\6\0\1\u014f\1\152\1\153\1\152\1\154\1\152\1\u014f" + "\27\152\1\u014f\2\152\1\u014f\2\152\1\u014f\10\152\1\u014f" + "\4\152\1\u014f\7\152\1\0\1\u0150\1\155\1\156\3\155" + "\1\u0150\1\155\1\154\25\155\1\u0150\2\155\1\u0150\2\155" + "\1\u0150\10\155\1\u0150\4\155\1\u0150\7\155\1\0\1\u0151" - + "\1\157\1\160\1\157\1\161\1\157\1\u0151\27\157\1\u0151" + "\2\157\1\u0151\2\157\1\u0151\10\157\1\u0151\4\157\1\u0151" + "\7\157\1\0\1\u0152\1\162\1\163\3\162\1\u0152\1\162" + "\1\161\25\162\1\u0152\2\162\1\u0152\2\162\1\u0152\10\162" + "\1\u0152\4\162\1\u0152\7\162\4\0\1\u012d\1\0\1\u012d" + "\3\0\1\u012d\1\u0109\3\0\2\u012d\53\0\1\u0153\1\u0105" + "\1\u0106\1\u0105\1\0\1\u0105\1\u0153\1\u0105\1\0\1\u0105" + "\1\u0109\11\u0105\1\0\11\u0105\1\u0153\2\u0105\1\u0153\2\u0105" + "\1\u0153\10\u0105\1\u0153\4\u0105\1\u0153\7\u0105\1\0\1\u0154" + "\1\u0107\1\u0130\1\u0107\1\u0155\1\u0107\1\u0154\10\u0107\1\u0156" + "\16\u0107\1\u0154\2\u0107\1\u0154\2\u0107\1\u0154\10\u0107\1\u0154" + "\4\u0107\1\u0154\7\u0107\1\0\1\u0157\1\u0108\1\u0131\3\u0108" + "\1\u0157\1\u0108\1\u0158\6\u0108\1\u0159\16\u0108\1\u0157\2\u0108" + "\1\u0157\2\u0108\1\u0157\10\u0108\1\u0157\4\u0108\1\u0157\7\u0108" + "\1\0\1\u015a\1\51\1\165\1\51\1\0\1\51\1\u015a" + "\1\51\1\0\1\51\4\0\2\51\1\0\3\51\1\0" - + "\1\51\10\0\1\u015a\2\51\1\u015a\2\51\1\u015a\2\51" + "\1\0\4\51\1\0\1\u015a\1\51\1\0\1\51\1\0" + "\1\u015a\2\51\6\0\1\u015b\1\55\1\167\1\55\1\0" + "\1\55\1\u015b\1\55\1\0\1\55\4\0\2\55\1\0" + "\3\55\1\0\1\55\10\0\1\u015b\2\55\1\u015b\2\55" + "\1\u015b\2\55\1\0\4\55\1\0\1\u015b\1\55\1\0" + "\1\55\1\0\1\u015b\2\55\6\0\1\u015c\1\62\1\171" + "\1\62\1\0\1\62\1\u015c\1\62\1\0\1\62\4\0" + "\2\62\1\0\3\62\1\0\1\62\10\0\1\u015c\2\62" + "\1\u015c\2\62\1\u015c\2\62\1\0\4\62\1\0\1\u015c" + "\1\62\1\0\1\62\1\0\1\u015c\2\62\6\0\1\u015d" + "\1\72\1\176\1\72\1\0\1\72\1\u015d\1\72\1\0" + "\1\72\4\0\2\72\1\0\3\72\1\0\1\72\10\0" + "\1\u015d\2\72\1\u015d\2\72\1\u015d\2\72\1\0\4\72" + "\1\0\1\u015d\1\72\1\0\1\72\1\0\1\u015d\2\72" + "\6\0\1\u015e\1\100\1\200\1\100\1\0\1\100\1\u015e" + "\1\100\1\0\1\100\4\0\2\100\1\0\3\100\1\0" + "\1\100\10\0\1\u015e\2\100\1\u015e\2\100\1\u015e\2\100" + "\1\0\4\100\1\0\1\u015e\1\100\1\0\1\100\1\0" + "\1\u015e\2\100\6\0\1\u015f\1\202\1\203\1\202\1\204" - + "\1\202\1\u015f\27\202\1\u015f\2\202\1\u015f\2\202\1\u015f" + "\10\202\1\u015f\4\202\1\u015f\7\202\1\0\1\u0160\1\205" + "\1\206\3\205\1\u0160\1\205\1\204\25\205\1\u0160\2\205" + "\1\u0160\2\205\1\u0160\10\205\1\u0160\4\205\1\u0160\7\205" + "\1\0\1\u0161\1\105\1\207\1\105\1\0\1\105\1\u0161" + "\1\105\1\0\1\105\4\0\2\105\1\0\3\105\1\0" + "\1\105\10\0\1\u0161\2\105\1\u0161\2\105\1\u0161\2\105" + "\1\0\4\105\1\0\1\u0161\1\105\1\0\1\105\1\0" + "\1\u0161\2\105\6\0\1\u0162\1\211\1\212\1\211\1\0" + "\1\211\1\u0162\1\211\1\0\1\211\4\0\2\211\1\0" + "\3\211\1\0\1\211\10\0\1\u0162\2\211\1\u0162\2\211" + "\1\u0162\2\211\1\0\4\211\1\0\1\u0162\1\211\1\0" + "\1\211\1\0\1\u0162\2\211\6\0\1\u0163\1\113\1\216" + "\1\113\1\0\1\113\1\u0163\1\113\1\0\1\113\4\0" + "\2\113\1\0\3\113\1\217\1\113\10\0\1\u0163\2\113" + "\1\u0163\2\113\1\u0163\2\113\1\0\4\113\1\0\1\u0163" + "\1\113\1\0\1\113\1\0\1\u0163\2\113\6\0\1\u0164" + "\1\221\1\222\1\221\1\223\1\221\1\u0164\27\221\1\u0164" - + "\2\221\1\u0164\2\221\1\u0164\10\221\1\u0164\4\221\1\u0164" + "\7\221\1\0\1\u0165\1\224\1\225\3\224\1\u0165\1\224" + "\1\223\25\224\1\u0165\2\224\1\u0165\2\224\1\u0165\10\224" + "\1\u0165\4\224\1\u0165\7\224\1\0\1\u0166\1\227\1\230" + "\1\227\1\0\1\227\1\u0166\1\227\1\0\1\227\4\0" + "\2\227\1\0\3\227\1\0\1\227\10\0\1\u0166\2\227" + "\1\u0166\2\227\1\u0166\2\227\1\0\4\227\1\0\1\u0166" + "\1\227\1\0\1\227\1\0\1\u0166\2\227\6\0\1\u0167" + "\5\0\1\u0167\1\362\15\0\2\u0167\7\0\2\u0167\1\0" + "\2\u0167\1\0\2\u0167\7\0\2\u0167\3\0\2\u0167\7\0" + "\1\u0168\5\0\1\u0168\16\0\2\u0168\7\0\2\u0168\1\0" + "\2\u0168\1\0\2\u0168\7\0\2\u0168\3\0\2\u0168\12\0" + "\1\u0141\1\0\1\u0141\3\0\1\u0141\1\u011e\3\0\2\u0141" + "\53\0\1\u0169\1\u0119\1\u011a\1\u0119\1\0\1\u0119\1\u0169" + "\1\u0119\1\0\1\u0119\1\u011e\11\u0119\1\0\11\u0119\1\u0169" + "\2\u0119\1\u0169\2\u0119\1\u0169\10\u0119\1\u0169\4\u0119\1\u0169" + "\7\u0119\1\0\1\u016a\1\u011c\1\u0144\1\u011c\1\u016b\1\u011c" - + "\1\u016a\10\u011c\1\u016c\16\u011c\1\u016a\2\u011c\1\u016a\2\u011c" + "\1\u016a\10\u011c\1\u016a\4\u011c\1\u016a\7\u011c\1\0\1\u016d" + "\1\u011d\1\u0145\3\u011d\1\u016d\1\u011d\1\u016e\6\u011d\1\u016f" + "\16\u011d\1\u016d\2\u011d\1\u016d\2\u011d\1\u016d\10\u011d\1\u016d" + "\4\u011d\1\u016d\7\u011d\47\0\1\u0170\24\0\2\25\1\131" + "\1\25\1\0\3\25\1\0\1\25\4\0\2\25\1\0" + "\3\25\1\0\1\25\10\0\11\25\1\0\4\25\1\0" + "\2\25\1\0\1\25\1\0\3\25\6\0\1\u0171\1\134" + "\1\135\1\134\1\0\1\134\1\u0171\1\134\1\0\1\134" + "\4\0\2\134\1\0\3\134\1\0\1\134\10\0\1\u0171" + "\2\134\1\u0171\2\134\1\u0171\2\134\1\0\4\134\1\0" + "\1\u0171\1\134\1\0\1\134\1\0\1\u0171\2\134\6\0" + "\1\u0172\1\136\1\137\1\136\1\0\1\136\1\u0172\1\136" + "\1\0\1\136\4\0\2\136\1\0\3\136\1\0\1\136" + "\10\0\1\u0172\2\136\1\u0172\2\136\1\u0172\2\136\1\0" + "\4\136\1\0\1\u0172\1\136\1\0\1\136\1\0\1\u0172" + "\2\136\54\0\1\u0173\65\0\2\u0174\30\0\1\u0175\1\333" + "\1\334\1\333\1\0\1\333\1\u0175\1\333\1\0\1\333" - + "\1\376\3\0\2\333\1\0\3\333\1\0\1\333\10\0" + "\1\u0175\2\333\1\u0175\2\333\1\u0175\2\333\1\0\4\333" + "\1\0\1\u0175\1\333\1\0\1\333\1\0\1\u0175\2\333" + "\6\0\1\u0176\1\147\1\150\1\147\1\0\1\147\1\u0176" + "\1\147\1\0\1\147\4\0\2\147\1\0\3\147\1\252" + "\1\147\10\0\1\u0176\2\147\1\u0176\2\147\1\u0176\2\147" + "\1\0\4\147\1\0\1\u0176\1\147\1\0\1\147\1\0" + "\1\u0176\2\147\6\0\1\u0177\1\152\1\153\1\152\1\154" + "\1\152\1\u0177\27\152\1\u0177\2\152\1\u0177\2\152\1\u0177" + "\10\152\1\u0177\4\152\1\u0177\7\152\1\0\1\u0178\1\155" + "\1\156\3\155\1\u0178\1\155\1\154\25\155\1\u0178\2\155" + "\1\u0178\2\155\1\u0178\10\155\1\u0178\4\155\1\u0178\7\155" + "\1\0\1\u0179\1\157\1\160\1\157\1\161\1\157\1\u0179" + "\27\157\1\u0179\2\157\1\u0179\2\157\1\u0179\10\157\1\u0179" + "\4\157\1\u0179\7\157\1\0\1\u017a\1\162\1\163\3\162" + "\1\u017a\1\162\1\161\25\162\1\u017a\2\162\1\u017a\2\162" + "\1\u017a\10\162\1\u017a\4\162\1\u017a\7\162\1\0\1\u017b" - + "\1\u0105\1\u0106\1\u0105\1\0\1\u0105\1\u017b\1\u0105\1\0" + "\1\u0105\1\u0109\11\u0105\1\0\11\u0105\1\u017b\2\u0105\1\u017b" + "\2\u0105\1\u017b\10\u0105\1\u017b\4\u0105\1\u017b\7\u0105\1\0" + "\1\u017c\1\u0107\1\u0130\1\u0107\1\u012d\1\u0107\1\u017c\27\u0107" + "\1\u017c\2\u0107\1\u017c\2\u0107\1\u017c\10\u0107\1\u017c\4\u0107" + "\1\u017c\7\u0107\1\0\2\u0107\1\u0130\2\u012d\1\u0155\3\u0107" + "\1\u0155\1\u017d\3\u0107\2\u012d\52\u0107\1\0\2\u0107\1\u0130" + "\1\0\1\u012d\12\u0107\1\0\52\u0107\1\0\1\u017e\1\u0108" + "\1\u0131\3\u0108\1\u017e\1\u0108\1\u012d\25\u0108\1\u017e\2\u0108" + "\1\u017e\2\u0108\1\u017e\10\u0108\1\u017e\4\u0108\1\u017e\7\u0108" + "\1\0\2\u0108\1\u0131\1\u012d\1\u0108\1\u0158\2\u0108\1\u012d" + "\1\u0158\1\u017f\3\u0108\2\u012d\52\u0108\1\0\2\u0108\1\u0131" + "\1\0\4\u0108\1\u012d\6\u0108\1\0\52\u0108\1\0\2\51" + "\1\165\1\51\1\0\3\51\1\0\1\51\4\0\2\51" + "\1\0\3\51\1\0\1\51\10\0\11\51\1\0\4\51" + "\1\0\2\51\1\0\1\51\1\0\3\51\6\0\2\55" - + "\1\167\1\55\1\0\3\55\1\0\1\55\4\0\2\55" + "\1\0\3\55\1\0\1\55\10\0\11\55\1\0\4\55" + "\1\0\2\55\1\0\1\55\1\0\3\55\6\0\2\62" + "\1\171\1\62\1\0\3\62\1\0\1\62\4\0\2\62" + "\1\0\3\62\1\0\1\62\10\0\11\62\1\0\4\62" + "\1\0\2\62\1\0\1\62\1\0\3\62\6\0\2\72" + "\1\176\1\72\1\0\3\72\1\0\1\72\4\0\2\72" + "\1\0\3\72\1\0\1\72\10\0\11\72\1\0\4\72" + "\1\0\2\72\1\0\1\72\1\0\3\72\6\0\2\100" + "\1\200\1\100\1\0\3\100\1\0\1\100\4\0\2\100" + "\1\0\3\100\1\0\1\100\10\0\11\100\1\0\4\100" + "\1\0\2\100\1\0\1\100\1\0\3\100\6\0\1\u0180" + "\1\202\1\203\1\202\1\204\1\202\1\u0180\27\202\1\u0180" + "\2\202\1\u0180\2\202\1\u0180\10\202\1\u0180\4\202\1\u0180" + "\7\202\1\0\1\u0181\1\205\1\206\3\205\1\u0181\1\205" + "\1\204\25\205\1\u0181\2\205\1\u0181\2\205\1\u0181\10\205" + "\1\u0181\4\205\1\u0181\7\205\1\0\2\105\1\207\1\105" + "\1\0\3\105\1\0\1\105\4\0\2\105\1\0\3\105" + "\1\0\1\105\10\0\11\105\1\0\4\105\1\0\2\105" + "\1\0\1\105\1\0\3\105\6\0\1\u0182\1\211\1\212" - + "\1\211\1\0\1\211\1\u0182\1\211\1\0\1\211\4\0" + "\2\211\1\0\3\211\1\0\1\211\10\0\1\u0182\2\211" + "\1\u0182\2\211\1\u0182\2\211\1\0\4\211\1\0\1\u0182" + "\1\211\1\0\1\211\1\0\1\u0182\2\211\6\0\2\113" + "\1\216\1\113\1\0\3\113\1\0\1\113\4\0\2\113" + "\1\0\3\113\1\217\1\113\10\0\11\113\1\0\4\113" + "\1\0\2\113\1\0\1\113\1\0\3\113\6\0\1\u0183" + "\1\221\1\222\1\221\1\223\1\221\1\u0183\27\221\1\u0183" + "\2\221\1\u0183\2\221\1\u0183\10\221\1\u0183\4\221\1\u0183" + "\7\221\1\0\1\u0184\1\224\1\225\3\224\1\u0184\1\224" + "\1\223\25\224\1\u0184\2\224\1\u0184\2\224\1\u0184\10\224" + "\1\u0184\4\224\1\u0184\7\224\1\0\1\u0185\1\227\1\230" + "\1\227\1\0\1\227\1\u0185\1\227\1\0\1\227\4\0" + "\2\227\1\0\3\227\1\0\1\227\10\0\1\u0185\2\227" + "\1\u0185\2\227\1\u0185\2\227\1\0\4\227\1\0\1\u0185" + "\1\227\1\0\1\227\1\0\1\u0185\2\227\6\0\1\u0186" + "\5\0\1\u0186\1\362\15\0\2\u0186\7\0\2\u0186\1\0" + "\2\u0186\1\0\2\u0186\7\0\2\u0186\3\0\2\u0186\7\0" - + "\1\u0187\5\0\1\u0187\16\0\2\u0187\7\0\2\u0187\1\0" + "\2\u0187\1\0\2\u0187\7\0\2\u0187\3\0\2\u0187\7\0" + "\1\u0188\1\u0119\1\u011a\1\u0119\1\0\1\u0119\1\u0188\1\u0119" + "\1\0\1\u0119\1\u011e\11\u0119\1\0\11\u0119\1\u0188\2\u0119" + "\1\u0188\2\u0119\1\u0188\10\u0119\1\u0188\4\u0119\1\u0188\7\u0119" + "\1\0\1\u0189\1\u011c\1\u0144\1\u011c\1\u0141\1\u011c\1\u0189" + "\27\u011c\1\u0189\2\u011c\1\u0189\2\u011c\1\u0189\10\u011c\1\u0189" + "\4\u011c\1\u0189\7\u011c\1\0\2\u011c\1\u0144\2\u0141\1\u016b" + "\3\u011c\1\u016b\1\u018a\3\u011c\2\u0141\52\u011c\1\0\2\u011c" + "\1\u0144\1\0\1\u0141\12\u011c\1\0\52\u011c\1\0\1\u018b" + "\1\u011d\1\u0145\3\u011d\1\u018b\1\u011d\1\u0141\25\u011d\1\u018b" + "\2\u011d\1\u018b\2\u011d\1\u018b\10\u011d\1\u018b\4\u011d\1\u018b" + "\7\u011d\1\0\2\u011d\1\u0145\1\u0141\1\u011d\1\u016e\2\u011d" + "\1\u0141\1\u016e\1\u018c\3\u011d\2\u0141\52\u011d\1\0\2\u011d" + "\1\u0145\1\0\4\u011d\1\u0141\6\u011d\1\0\52\u011d\42\0" - + "\2\u018d\30\0\2\134\1\135\1\134\1\0\3\134\1\0" + "\1\134\4\0\2\134\1\0\3\134\1\0\1\134\10\0" + "\11\134\1\0\4\134\1\0\2\134\1\0\1\134\1\0" + "\3\134\6\0\2\136\1\137\1\136\1\0\3\136\1\0" + "\1\136\4\0\2\136\1\0\3\136\1\0\1\136\10\0" + "\11\136\1\0\4\136\1\0\2\136\1\0\1\136\1\0" + "\3\136\44\0\2\u018e\33\0\1\u018f\1\333\1\334\1\333" + "\1\0\1\333\1\u018f\1\333\1\0\1\333\1\376\3\0" + "\2\333\1\0\3\333\1\0\1\333\10\0\1\u018f\2\333" + "\1\u018f\2\333\1\u018f\2\333\1\0\4\333\1\0\1\u018f" + "\1\333\1\0\1\333\1\0\1\u018f\2\333\6\0\2\147" + "\1\150\1\147\1\0\3\147\1\0\1\147\4\0\2\147" + "\1\0\3\147\1\252\1\147\10\0\11\147\1\0\4\147" + "\1\0\2\147\1\0\1\147\1\0\3\147\6\0\2\152" + "\1\153\1\152\1\154\65\152\1\0\2\155\1\156\5\155" + "\1\154\61\155\1\0\2\157\1\160\1\157\1\161\65\157" + "\1\0\2\162\1\163\5\162\1\161\61\162\1\0\1\u0190" + "\1\u0105\1\u0106\1\u0105\1\0\1\u0105\1\u0190\1\u0105\1\0" + "\1\u0105\1\u0109\11\u0105\1\0\11\u0105\1\u0190\2\u0105\1\u0190" - + "\2\u0105\1\u0190\10\u0105\1\u0190\4\u0105\1\u0190\7\u0105\1\0" + "\1\u0191\1\u0107\1\u0130\1\u0107\1\u012d\1\u0107\1\u0191\27\u0107" + "\1\u0191\2\u0107\1\u0191\2\u0107\1\u0191\10\u0107\1\u0191\4\u0107" + "\1\u0191\7\u0107\1\0\1\u0192\1\u0108\1\u0131\3\u0108\1\u0192" + "\1\u0108\1\u012d\25\u0108\1\u0192\2\u0108\1\u0192\2\u0108\1\u0192" + "\10\u0108\1\u0192\4\u0108\1\u0192\7\u0108\1\0\2\202\1\203" + "\1\202\1\204\65\202\1\0\2\205\1\206\5\205\1\204" + "\61\205\1\0\2\211\1\212\1\211\1\0\3\211\1\0" + "\1\211\4\0\2\211\1\0\3\211\1\0\1\211\10\0" + "\11\211\1\0\4\211\1\0\2\211\1\0\1\211\1\0" + "\3\211\6\0\2\221\1\222\1\221\1\223\65\221\1\0" + "\2\224\1\225\5\224\1\223\61\224\1\0\2\227\1\230" + "\1\227\1\0\3\227\1\0\1\227\4\0\2\227\1\0" + "\3\227\1\0\1\227\10\0\11\227\1\0\4\227\1\0" + "\2\227\1\0\1\227\1\0\3\227\15\0\1\362\63\0" + "\1\u0193\5\0\1\u0193\16\0\2\u0193\7\0\2\u0193\1\0" + "\2\u0193\1\0\2\u0193\7\0\2\u0193\3\0\2\u0193\7\0" - + "\1\u0194\1\u0119\1\u011a\1\u0119\1\0\1\u0119\1\u0194\1\u0119" + "\1\0\1\u0119\1\u011e\11\u0119\1\0\11\u0119\1\u0194\2\u0119" + "\1\u0194\2\u0119\1\u0194\10\u0119\1\u0194\4\u0119\1\u0194\7\u0119" + "\1\0\1\u0195\1\u011c\1\u0144\1\u011c\1\u0141\1\u011c\1\u0195" + "\27\u011c\1\u0195\2\u011c\1\u0195\2\u011c\1\u0195\10\u011c\1\u0195" + "\4\u011c\1\u0195\7\u011c\1\0\1\u0196\1\u011d\1\u0145\3\u011d" + "\1\u0196\1\u011d\1\u0141\25\u011d\1\u0196\2\u011d\1\u0196\2\u011d" + "\1\u0196\10\u011d\1\u0196\4\u011d\1\u0196\7\u011d\65\0\1\u0197" + "\52\0\2\u0198\25\0\1\u0199\1\333\1\334\1\333\1\0" + "\1\333\1\u0199\1\333\1\0\1\333\1\376\3\0\2\333" + "\1\0\3\333\1\0\1\333\10\0\1\u0199\2\333\1\u0199" + "\2\333\1\u0199\2\333\1\0\4\333\1\0\1\u0199\1\333" + "\1\0\1\333\1\0\1\u0199\2\333\6\0\1\u019a\1\u0105" + "\1\u0106\1\u0105\1\0\1\u0105\1\u019a\1\u0105\1\0\1\u0105" + "\1\u0109\11\u0105\1\0\11\u0105\1\u019a\2\u0105\1\u019a\2\u0105" - + "\1\u019a\10\u0105\1\u019a\4\u0105\1\u019a\7\u0105\1\0\1\u019b" + "\1\u0107\1\u0130\1\u0107\1\u012d\1\u0107\1\u019b\27\u0107\1\u019b" + "\2\u0107\1\u019b\2\u0107\1\u019b\10\u0107\1\u019b\4\u0107\1\u019b" + "\7\u0107\1\0\1\u019c\1\u0108\1\u0131\3\u0108\1\u019c\1\u0108" + "\1\u012d\25\u0108\1\u019c\2\u0108\1\u019c\2\u0108\1\u019c\10\u0108" + "\1\u019c\4\u0108\1\u019c\7\u0108\1\0\1\u019d\5\0\1\u019d" + "\16\0\2\u019d\7\0\2\u019d\1\0\2\u019d\1\0\2\u019d" + "\7\0\2\u019d\3\0\2\u019d\7\0\1\u019e\1\u0119\1\u011a" + "\1\u0119\1\0\1\u0119\1\u019e\1\u0119\1\0\1\u0119\1\u011e" + "\11\u0119\1\0\11\u0119\1\u019e\2\u0119\1\u019e\2\u0119\1\u019e" + "\10\u0119\1\u019e\4\u0119\1\u019e\7\u0119\1\0\1\u019f\1\u011c" + "\1\u0144\1\u011c\1\u0141\1\u011c\1\u019f\27\u011c\1\u019f\2\u011c" + "\1\u019f\2\u011c\1\u019f\10\u011c\1\u019f\4\u011c\1\u019f\7\u011c" + "\1\0\1\u01a0\1\u011d\1\u0145\3\u011d\1\u01a0\1\u011d\1\u0141" - + "\25\u011d\1\u01a0\2\u011d\1\u01a0\2\u011d\1\u01a0\10\u011d\1\u01a0" + "\4\u011d\1\u01a0\7\u011d\47\0\1\u01a1\24\0\2\333\1\334" + "\1\333\1\0\3\333\1\0\1\333\1\376\3\0\2\333" + "\1\0\3\333\1\0\1\333\10\0\11\333\1\0\4\333" + "\1\0\2\333\1\0\1\333\1\0\3\333\6\0\1\u01a2" + "\1\u0105\1\u0106\1\u0105\1\0\1\u0105\1\u01a2\1\u0105\1\0" + "\1\u0105\1\u0109\11\u0105\1\0\11\u0105\1\u01a2\2\u0105\1\u01a2" + "\2\u0105\1\u01a2\10\u0105\1\u01a2\4\u0105\1\u01a2\7\u0105\1\0" + "\1\u01a3\1\u0107\1\u0130\1\u0107\1\u012d\1\u0107\1\u01a3\27\u0107" + "\1\u01a3\2\u0107\1\u01a3\2\u0107\1\u01a3\10\u0107\1\u01a3\4\u0107" + "\1\u01a3\7\u0107\1\0\1\u01a4\1\u0108\1\u0131\3\u0108\1\u01a4" + "\1\u0108\1\u012d\25\u0108\1\u01a4\2\u0108\1\u01a4\2\u0108\1\u01a4" + "\10\u0108\1\u01a4\4\u0108\1\u01a4\7\u0108\1\0\1\u01a5\1\u0119" + "\1\u011a\1\u0119\1\0\1\u0119\1\u01a5\1\u0119\1\0\1\u0119" + "\1\u011e\11\u0119\1\0\11\u0119\1\u01a5\2\u0119\1\u01a5\2\u0119" - + "\1\u01a5\10\u0119\1\u01a5\4\u0119\1\u01a5\7\u0119\1\0\1\u01a6" + "\1\u011c\1\u0144\1\u011c\1\u0141\1\u011c\1\u01a6\27\u011c\1\u01a6" + "\2\u011c\1\u01a6\2\u011c\1\u01a6\10\u011c\1\u01a6\4\u011c\1\u01a6" + "\7\u011c\1\0\1\u01a7\1\u011d\1\u0145\3\u011d\1\u01a7\1\u011d" + "\1\u0141\25\u011d\1\u01a7\2\u011d\1\u01a7\2\u011d\1\u01a7\10\u011d" + "\1\u01a7\4\u011d\1\u01a7\7\u011d\1\0\2\u0105\1\u0106\1\u0105" + "\1\0\3\u0105\1\0\1\u0105\1\u0109\11\u0105\1\0\45\u0105" + "\1\0\1\u01a8\1\u0107\1\u0130\1\u0107\1\u012d\1\u0107\1\u01a8" + "\27\u0107\1\u01a8\2\u0107\1\u01a8\2\u0107\1\u01a8\10\u0107\1\u01a8" + "\4\u0107\1\u01a8\7\u0107\1\0\1\u01a9\1\u0108\1\u0131\3\u0108" + "\1\u01a9\1\u0108\1\u012d\25\u0108\1\u01a9\2\u0108\1\u01a9\2\u0108" + "\1\u01a9\10\u0108\1\u01a9\4\u0108\1\u01a9\7\u0108\1\0\2\u0119" + "\1\u011a\1\u0119\1\0\3\u0119\1\0\1\u0119\1\u011e\11\u0119" + "\1\0\45\u0119\1\0\1\u01aa\1\u011c\1\u0144\1\u011c\1\u0141" - + "\1\u011c\1\u01aa\27\u011c\1\u01aa\2\u011c\1\u01aa\2\u011c\1\u01aa" + "\10\u011c\1\u01aa\4\u011c\1\u01aa\7\u011c\1\0\1\u01ab\1\u011d" + "\1\u0145\3\u011d\1\u01ab\1\u011d\1\u0141\25\u011d\1\u01ab\2\u011d" + "\1\u01ab\2\u011d\1\u01ab\10\u011d\1\u01ab\4\u011d\1\u01ab\7\u011d" + "\1\0\2\u0107\1\u0130\1\u0107\1\u012d\65\u0107\1\0\2\u0108" + "\1\u0131\5\u0108\1\u012d\61\u0108\1\0\2\u011c\1\u0144\1\u011c" + "\1\u0141\65\u011c\1\0\2\u011d\1\u0145\5\u011d\1\u0141\61\u011d"; - - /** - * The transition table of the DFA - */ - final private static int yytrans[] = yy_unpack(yy_packed); - - - /* error codes */ - final private static int YY_UNKNOWN_ERROR = 0; - // final private static int YY_ILLEGAL_STATE = 1; - final private static int YY_NO_MATCH = 2; - // final private static int YY_PUSHBACK_2BIG = 3; - - /* error messages for the codes above */ - final private static String YY_ERROR_MSG[] = {"Unkown internal scanner error", "Internal error: unknown state", "Error: could not match input", "Error: pushback value was too large"}; - - /** - * YY_ATTRIBUTE[aState] contains the attributes of state - * <code>aState</code> - */ - private final static byte YY_ATTRIBUTE[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 1, 1, 1, 1, 1, 1, 1, 9, 1, 9, 1, 1, 9, 1, 1, 1, 9, 1, 1, 1, 1, 1, 1, 9, 1, 1, 1, 9, 9, 1, 1, 1, 9, 1, 3, 9, 9, 1, 1, 1, 9, 1, 9, 1, 1, 1, 1, 1, 1, 1, 1, 9, 9, 1, 1, 1, 1, 1, 1, 9, 1, 1, 1, 1, 1, 1, 9, 3, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 9, 0, 0, 0, 0, 9, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 13, 7, 0, 1, 0, 1, 0, 0, 9, 0, 0, 0, 1, 1, 0, 0, 0, 9, 0, 9, 1, 0, 0, 9, 0, 0, 1, 1, 0, 0, 1, 0, 0, 13, 7, 1, 9, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 9, 0, 0, 9, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 9, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 9, 0, 1, 1, 1, 0, 0, 9, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, - 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 9, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 9, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 9, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - - /** the input device */ - private java.io.Reader yy_reader; - - /** the current state of the DFA */ - private int yy_state; - - /** the current lexical state */ - private int yy_lexical_state = YYINITIAL; - - /** - * this buffer contains the current text to be matched and is the source - * of the yytext() string - */ - private char yy_buffer[] = new char[16384]; - - /** the textposition at the last accepting state */ - private int yy_markedPos; - - /** the textposition at the last state to be included in yytext */ - private int yy_pushbackPos; - - /** the current text position in the buffer */ - private int yy_currentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int yy_startRead; - - /** - * endRead marks the last character in the buffer, that has been read from - * input - */ - private int yy_endRead; - - /** number of newlines encountered up to the start of the matched text */ - private int yyline; - - /** the number of characters up to the start of the matched text */ - private int yychar; - - /** - * the number of characters from the last newline up to the start of the - * matched text - */ - // private int yycolumn; - /** - * yy_atBOL == true <=> the scanner is currently at the beginning of a - * line - */ - // private boolean yy_atBOL; - /** yy_atEOF == true <=> the scanner has returned a value for EOF */ - private boolean yy_atEOF; - - /* user code: */ - private final static String UNDEFINED = "undefined"; - private String fBufferedContext = null; - private int fBufferedStart; - // private int fBufferedTextLength; - private int fBufferedLength; - // private StringBuffer fBufferedText = null; - private CSSTextRegionFactory fRegionFactory = CSSTextRegionFactory.getInstance(); - private int fInitialState = YYINITIAL; - public final static int BUFFER_SIZE_NORMAL = 16384; - public final static int BUFFER_SIZE_SMALL = 256; - private int fInitialBufferSize = BUFFER_SIZE_NORMAL; - - public void setInitialState(int state) { - fInitialState = state; - } - - public void setInitialBufferSize(int size) { - fInitialBufferSize = size; - } - - /* user method */ - public final ITextRegion getNextToken() throws IOException { - String context; - String nextTokenType; - boolean spaceFollows; - // StringBuffer text; - int start; - int textLength; - int length; - if (fBufferedContext != null) { - context = fBufferedContext; - // text = fBufferedText; - start = fBufferedStart; - textLength = length = fBufferedLength; - - fBufferedContext = null; - } - else { - context = primGetNextToken(); - // text = new StringBuffer(yytext()); - start = yychar; - textLength = length = yylength(); - } - - if (context != null) { - if (context == UNDEFINED) { - // undef -> concatenate undef's - nextTokenType = primGetNextToken(); - while (nextTokenType == UNDEFINED) { - // text.append(yytext()); - textLength += yylength(); - length = textLength; - nextTokenType = primGetNextToken(); - } - fBufferedContext = nextTokenType; - // fBufferedText = new StringBuffer(yytext()); - fBufferedStart = yychar; - fBufferedLength = yylength(); - } - else { - nextTokenType = null; - spaceFollows = false; - if (CSSRegionUtil.isDeclarationValueType(context)) { // declaration - // value - // can - // contain - // VALUE_S - nextTokenType = primGetNextToken(); - spaceFollows = (nextTokenType == CSS_DECLARATION_VALUE_S); - } - else if (canContainSpace(context)) { - nextTokenType = primGetNextToken(); - spaceFollows = (nextTokenType == CSS_S); - } - if (nextTokenType != null) { // nextToken is retrieved - if (spaceFollows) { - // next is space -> append - // text.append(yytext()); - length += yylength(); - } - else { - // next is NOT space -> push this for next time, - // return itself - fBufferedContext = nextTokenType; - // fBufferedText = new StringBuffer(yytext()); - fBufferedStart = yychar; - fBufferedLength = yylength(); - } - } - } - } - - if (context != null) { - if (context == UNDEFINED) { - context = CSS_UNKNOWN; - } - return fRegionFactory.createRegion(context, start, textLength, length); - } - else { - return null; - } - } - - /* user method */ - /* for standalone use */ - public final List parseText() throws IOException { - List tokens = new ArrayList(); - - CSSTextToken token; - for (String kind = primGetNextToken(); kind != null; kind = primGetNextToken()) { - token = new CSSTextToken(); - token.kind = kind; - token.start = yychar; - token.length = yylength(); - token.image = yytext(); - tokens.add(token); - } - - return tokens; - } - - /* user method */ - private boolean canContainSpace(String type) { - if (type == CSS_DELIMITER || type == CSS_RBRACE || type == CSS_DECLARATION_DELIMITER) { - return false; - } - else { - return true; - } - } - - /* user method */ - public final int getOffset() { - return yychar; - } - - /* user method */ - public final boolean isEOF() { - return yy_atEOF; - } - - /* user method */ - public void reset(char[] charArray) { - reset(new CharArrayReader(charArray), 0); - } - - /* user method */ - public final void reset(java.io.Reader in, int newOffset) { - /** the input device */ - yy_reader = in; - - /** the current state of the DFA */ - yy_state = 0; - - /** the current lexical state */ - yy_lexical_state = fInitialState; // YYINITIAL; - - /** - * this buffer contains the current text to be matched and is the - * source of the yytext() string - */ - if (yy_buffer.length != fInitialBufferSize) { - yy_buffer = new char[fInitialBufferSize]; - } - java.util.Arrays.fill(yy_buffer, (char) 0); - - /** the textposition at the last accepting state */ - yy_markedPos = 0; - - /** the textposition at the last state to be included in yytext */ - yy_pushbackPos = 0; - - /** the current text position in the buffer */ - yy_currentPos = 0; - - /** startRead marks the beginning of the yytext() string in the buffer */ - yy_startRead = 0; - - /** - * endRead marks the last character in the buffer, that has been read - * from input - */ - yy_endRead = 0; - - /** number of newlines encountered up to the start of the matched text */ - yyline = 0; - - /** the number of characters up to the start of the matched text */ - yychar = 0; - - /** - * the number of characters from the last newline up to the start of - * the matched text - */ - // yycolumn = 0; - /** - * yy_atBOL == true <=> the scanner is currently at the beginning of a - * line - */ - // yy_atBOL = false; - /** yy_atEOF == true <=> the scanner has returned a value for EOF */ - yy_atEOF = false; - - /* user variables */ - // fUndefined.delete(0, fUndefined.length()); - } - - /* user method */ - public CSSTokenizer() { - super(); - } - - - - /** - * Creates a new scanner There is also a java.io.InputStream version of - * this constructor. - * - * @param in - * the java.io.Reader to read input from. - */ - public CSSTokenizer(java.io.Reader in) { - this.yy_reader = in; - } - - /** - * Creates a new scanner. There is also java.io.Reader version of this - * constructor. - * - * @param in - * the java.io.Inputstream to read input from. - */ - public CSSTokenizer(java.io.InputStream in) { - this(new java.io.InputStreamReader(in)); - } - - /** - * Unpacks the compressed DFA transition table. - * - * @param packed - * the packed transition table - * @return the unpacked transition table - */ - private static int[] yy_unpack(String packed) { - int[] trans = new int[20709]; - int i = 0; /* index in packed string */ - int j = 0; /* index in unpacked array */ - while (i < 13392) { - int count = packed.charAt(i++); - int value = packed.charAt(i++); - value--; - do - trans[j++] = value; - while (--count > 0); - } - return trans; - } - - /** - * Unpacks the compressed character translation table. - * - * @param packed - * the packed character translation table - * @return the unpacked character translation table - */ - private static char[] yy_unpack_cmap(String packed) { - char[] map = new char[0x10000]; - int i = 0; /* index in packed string */ - int j = 0; /* index in unpacked array */ - while (i < 170) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do - map[j++] = value; - while (--count > 0); - } - return map; - } - - - /** - * Gets the next input character. - * - * @return the next character of the input stream, EOF if the end of the - * stream is reached. - * @exception IOException - * if any I/O-Error occurs - */ - private int yy_advance() throws java.io.IOException { - - /* standard case */ - if (yy_currentPos < yy_endRead) - return yy_buffer[yy_currentPos++]; - - /* if the eof is reached, we don't need to work hard */ - if (yy_atEOF) - return YYEOF; - - /* otherwise: need to refill the buffer */ - - /* first: make room (if you can) */ - if (yy_startRead > 0) { - System.arraycopy(yy_buffer, yy_startRead, yy_buffer, 0, yy_endRead - yy_startRead); - - /* translate stored positions */ - yy_endRead -= yy_startRead; - yy_currentPos -= yy_startRead; - yy_markedPos -= yy_startRead; - yy_pushbackPos -= yy_startRead; - yy_startRead = 0; - } - - /* is the buffer big enough? */ - if (yy_currentPos >= yy_buffer.length) { - /* if not: blow it up */ - char newBuffer[] = new char[yy_currentPos * 2]; - System.arraycopy(yy_buffer, 0, newBuffer, 0, yy_buffer.length); - yy_buffer = newBuffer; - } - - /* finally: fill the buffer with new input */ - int numRead = yy_reader.read(yy_buffer, yy_endRead, yy_buffer.length - yy_endRead); - - if (numRead == -1) - return YYEOF; - - yy_endRead += numRead; - - return yy_buffer[yy_currentPos++]; - } - - - /** - * Closes the input stream. - */ - final public void yyclose() throws java.io.IOException { - yy_atEOF = true; /* indicate end of file */ - yy_endRead = yy_startRead; /* invalidate buffer */ - yy_reader.close(); - } - - - /** - * Returns the current lexical state. - */ - final public int yystate() { - return yy_lexical_state; - } - - /** - * Enters a new lexical state - * - * @param newState - * the new lexical state - */ - final public void yybegin(int newState) { - yy_lexical_state = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - final public String yytext() { - return new String(yy_buffer, yy_startRead, yy_markedPos - yy_startRead); - } - - /** - * Returns the length of the matched text region. - */ - final public int yylength() { - return yy_markedPos - yy_startRead; - } - - - /** - * Reports an error that occured while scanning. - * - * @param errorCode - * the code of the errormessage to display - */ - private void yy_ScanError(int errorCode) { - try { - System.out.println(YY_ERROR_MSG[errorCode]); - } - catch (ArrayIndexOutOfBoundsException e) { - System.out.println(YY_ERROR_MSG[YY_UNKNOWN_ERROR]); - } - - - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number - * the number of characters to be read again. This number must - * not be greater than yylength()! - */ - // private void yypushback(int number) { - // if ( number > yylength() ) - // yy_ScanError(YY_PUSHBACK_2BIG); - // - // yy_markedPos -= number; - // } - - /** - * Resumes scanning until the next regular expression is matched, the end - * of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception IOException - * if any I/O-Error occurs - */ - public String primGetNextToken() throws java.io.IOException { - int yy_input; - int yy_action; - - yy_pushbackPos = -1; - boolean yy_was_pushback; - - while (true) { - - yychar += yylength(); - - boolean yy_counted = false; - for (yy_currentPos = yy_startRead; yy_currentPos < yy_markedPos; yy_currentPos++) { - switch (yy_buffer[yy_currentPos]) { - case '\r' : - yyline++; - yy_counted = true; - break; - case '\n' : - if (yy_counted) - yy_counted = false; - else { - yyline++; - } - break; - default : - yy_counted = false; - } - } - - if (yy_counted) { - if (yy_advance() == '\n') - yyline--; - if (!yy_atEOF) - yy_currentPos--; - } - - yy_action = -1; - - yy_currentPos = yy_startRead = yy_markedPos; - - yy_state = yy_lexical_state; - - yy_was_pushback = false; - - yy_forAction : { - while (true) { - - yy_input = yy_advance(); - - if (yy_input == YYEOF) - break yy_forAction; - - int yy_next = yytrans[yy_rowMap[yy_state] + yycmap[yy_input]]; - if (yy_next == -1) - break yy_forAction; - yy_state = yy_next; - - int yy_attributes = YY_ATTRIBUTE[yy_state]; - if ((yy_attributes & 2) > 0) - yy_pushbackPos = yy_currentPos; - - if ((yy_attributes & 1) > 0) { - yy_was_pushback = (yy_attributes & 4) > 0; - yy_action = yy_state; - yy_markedPos = yy_currentPos; - if ((yy_attributes & 8) > 0) - break yy_forAction; - } - - } - } - - if (yy_was_pushback) - yy_markedPos = yy_pushbackPos; - - switch (yy_action) { - - case 416 : { - yybegin(ST_DECLARATION_VALUE); - return CSS_DECLARATION_VALUE_IMPORTANT; - } - case 428 : - break; - case 407 : { - yybegin(ST_FONT_FACE_DELIMITER); - return CSS_FONT_FACE; - } - case 429 : - break; - case 370 : { - yybegin(ST_CHARSET_NAME); - return CSS_CHARSET; - } - case 430 : - break; - case 330 : { - yybegin(ST_IMPORT_URI); - return CSS_IMPORT; - } - case 431 : - break; - case 292 : { - yybegin(ST_MEDIA_MEDIUM); - return CSS_MEDIA; - } - case 432 : - break; - case 285 : - case 322 : - case 393 : - case 395 : { - yybegin(ST_DECLARATION_VALUE); - return CSS_DECLARATION_VALUE_URI; - } - case 433 : - break; - case 264 : - case 302 : - case 380 : - case 382 : { - yybegin(ST_IMPORT_MEDIUM); - return CSS_URI; - } - case 434 : - break; - case 250 : { - yybegin(ST_PAGE_PSEUDO_PAGE); - return CSS_PAGE; - } - case 435 : - break; - case 212 : { - return CSS_COMMENT; - } - case 436 : - break; - case 211 : { - return CSS_CDO; - } - case 437 : - break; - case 205 : - case 240 : - case 278 : - case 279 : - case 318 : - case 319 : - case 358 : - case 359 : - case 389 : - case 390 : - case 402 : - case 412 : { - yybegin(ST_DECLARATION_VALUE); - return CSS_DECLARATION_VALUE_UNICODE_RANGE; - } - case 438 : - break; - case 159 : { - return CSS_CDC; - } - case 439 : - break; - case 156 : { - return CSS_DECLARATION_VALUE_S; - } - case 440 : - break; - case 150 : - case 204 : - case 239 : - case 277 : - case 317 : - case 357 : - case 388 : { - yybegin(ST_DECLARATION_VALUE); - return CSS_DECLARATION_VALUE_HASH; - } - case 441 : - break; - case 146 : - case 199 : - case 202 : { - yybegin(ST_DECLARATION_VALUE); - return CSS_DECLARATION_VALUE_STRING; - } - case 442 : - break; - case 57 : - case 126 : - case 187 : - case 230 : - case 268 : - case 308 : - case 348 : { - yybegin(ST_SELECTOR_ATTRIBUTE_OPERATOR); - return CSS_SELECTOR_ATTRIBUTE_NAME; - } - case 443 : - break; - case 56 : { - yybegin(ST_SELECTOR); - return CSS_SELECTOR_SEPARATOR; - } - case 444 : - break; - case 55 : - case 123 : { - yybegin(ST_SELECTOR); - return CSS_SELECTOR_COMBINATOR; - } - case 445 : - break; - case 52 : { - yybegin(ST_DECLARATION); - return CSS_LBRACE; - } - case 446 : - break; - case 49 : - case 121 : - case 186 : - case 229 : - case 267 : - case 307 : - case 347 : { - yybegin(ST_PAGE_DELIMITER); - return CSS_PAGE_SELECTOR; - } - case 447 : - break; - case 48 : { - yybegin(YYINITIAL); - return CSS_LBRACE; - } - case 448 : - break; - case 47 : { - yybegin(ST_MEDIA_MEDIUM); - return CSS_MEDIA_SEPARATOR; - } - case 449 : - break; - case 44 : - case 119 : - case 185 : - case 228 : - case 266 : - case 306 : - case 346 : { - yybegin(ST_MEDIA_DELIMITER); - return CSS_MEDIUM; - } - case 450 : - break; - case 43 : { - yybegin(ST_IMPORT_MEDIUM); - return CSS_MEDIA_SEPARATOR; - } - case 451 : - break; - case 20 : - case 89 : - case 158 : - case 208 : - case 244 : - case 287 : - case 326 : { - yybegin(ST_SELECTOR_MODIFIER); - return CSS_SELECTOR_ELEMENT_NAME; - } - case 452 : - break; - case 22 : - case 54 : - case 87 : - case 124 : - case 157 : { - return CSS_S; - } - case 453 : - break; - case 27 : { - yybegin(YYINITIAL); - return CSS_RBRACE; - } - case 454 : - break; - case 29 : { - yybegin(ST_SELECTOR_MODIFIER); - return CSS_SELECTOR_UNIVERSAL; - } - case 455 : - break; - case 32 : { - yybegin(ST_SELECTOR_ATTRIBUTE_NAME); - return CSS_SELECTOR_ATTRIBUTE_START; - } - case 456 : - break; - case 36 : { - yybegin(YYINITIAL); - return CSS_DELIMITER; - } - case 457 : - break; - case 40 : - case 117 : - case 184 : - case 227 : - case 265 : - case 305 : - case 345 : { - yybegin(ST_IMPORT_DELIMITER); - return CSS_MEDIUM; - } - case 458 : - break; - case 60 : { - yybegin(ST_SELECTOR_ATTRIBUTE_VALUE); - return CSS_SELECTOR_ATTRIBUTE_OPERATOR; - } - case 459 : - break; - case 62 : { - yybegin(ST_SELECTOR_MODIFIER); - return CSS_SELECTOR_ATTRIBUTE_END; - } - case 460 : - break; - case 63 : - case 128 : - case 131 : - case 188 : - case 190 : - case 193 : - case 231 : - case 269 : - case 309 : - case 349 : { - yybegin(ST_SELECTOR_ATTRIBUTE_END); - return CSS_SELECTOR_ATTRIBUTE_VALUE; - } - case 461 : - break; - case 68 : - case 135 : - case 195 : - case 234 : - case 272 : - case 312 : - case 352 : { - yybegin(ST_DECLARATION_SEPARATOR); - return CSS_DECLARATION_PROPERTY; - } - case 462 : - break; - case 71 : { - yybegin(ST_DECLARATION); - return CSS_DECLARATION_DELIMITER; - } - case 463 : - break; - case 72 : { - yybegin(ST_DECLARATION_PRE_VALUE); - return CSS_DECLARATION_SEPARATOR; - } - case 464 : - break; - case 73 : - case 149 : { - yybegin(ST_DECLARATION_VALUE); - return CSS_DECLARATION_VALUE_NUMBER; - } - case 465 : - break; - case 74 : - case 83 : - case 143 : - case 153 : - case 197 : - case 206 : - case 236 : - case 274 : - case 314 : - case 354 : { - yybegin(ST_DECLARATION_VALUE); - return CSS_DECLARATION_VALUE_IDENT; - } - case 466 : - break; - case 79 : { - yybegin(ST_DECLARATION_VALUE); - return CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE; - } - case 467 : - break; - case 85 : - case 86 : { - yybegin(ST_DECLARATION_VALUE); - return CSS_DECLARATION_VALUE_OPERATOR; - } - case 468 : - break; - case 91 : - case 160 : - case 209 : - case 245 : - case 288 : - case 327 : - case 368 : { - yybegin(ST_SELECTOR_MODIFIER); - return CSS_SELECTOR_CLASS; - } - case 469 : - break; - case 93 : - case 161 : - case 210 : - case 246 : - case 289 : - case 328 : - case 369 : { - yybegin(ST_SELECTOR_MODIFIER); - return CSS_SELECTOR_ID; - } - case 470 : - break; - case 102 : - case 170 : - case 221 : - case 253 : - case 255 : - case 295 : - case 333 : - case 373 : { - yybegin(ST_SELECTOR_MODIFIER); - return CSS_SELECTOR_PSEUDO; - } - case 471 : - break; - case 107 : - case 172 : - case 175 : { - yybegin(ST_CHARSET_DELIMITER); - return CSS_STRING; - } - case 472 : - break; - case 112 : - case 178 : - case 181 : { - yybegin(ST_IMPORT_MEDIUM); - return CSS_STRING; - } - case 473 : - break; - case 136 : - case 196 : - case 235 : - case 273 : - case 313 : - case 353 : - case 385 : { - yybegin(ST_DECLARATION_VALUE); - return CSS_DECLARATION_VALUE_DIMENSION; - } - case 474 : - break; - case 140 : { - yybegin(ST_DECLARATION_VALUE); - return CSS_DECLARATION_VALUE_PERCENTAGE; - } - case 475 : - break; - case 142 : - case 242 : { - yybegin(ST_DECLARATION_VALUE); - return CSS_DECLARATION_VALUE_FUNCTION; - } - case 476 : - break; - case 19 : - case 21 : - case 23 : - case 24 : - case 25 : - case 26 : - case 28 : - case 30 : - case 31 : - case 33 : - case 34 : - case 35 : - case 37 : - case 38 : - case 39 : - case 41 : - case 42 : - case 45 : - case 46 : - case 50 : - case 51 : - case 53 : - case 58 : - case 59 : - case 61 : - case 64 : - case 65 : - case 66 : - case 67 : - case 69 : - case 70 : - case 75 : - case 76 : - case 77 : - case 78 : - case 80 : - case 81 : - case 82 : - case 84 : { - return UNDEFINED; - } - case 477 : - break; - default : - if (yy_input == YYEOF && yy_startRead == yy_currentPos) { - yy_atEOF = true; - return null; - } - else { - yy_ScanError(YY_NO_MATCH); - } - } - } - } - - /** - * Runs the scanner on input files. - * - * This main method is the debugging routine for the scanner. It prints - * each returned token to System.out until the end of file is reached, or - * an error occured. - * - * @param argv - * the command line, contains the filenames to run the scanner - * on. - */ - public static void main(String argv[]) { - for (int i = 0; i < argv.length; i++) { - CSSTokenizer scanner = null; - try { - scanner = new CSSTokenizer(new java.io.FileReader(argv[i])); - } - catch (java.io.FileNotFoundException e) { - System.out.println("File not found : \"" + argv[i] + "\""); - } - // catch (java.io.IOException e) { - // System.out.println("Error opening file \""+argv[i]+"\""); - // - // } - catch (ArrayIndexOutOfBoundsException e) { - System.out.println("Usage : java CSSTokenizer <inputfile>"); - } - - try { - do { - System.out.println(scanner.primGetNextToken()); - } - while (!scanner.yy_atEOF); - - } - catch (java.io.IOException e) { - System.out.println("An I/O error occured while scanning :"); - System.out.println(e); - - } - catch (Exception e) { - e.printStackTrace(); - - } - } - } - - -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/parser/ICSSTokenizer.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/parser/ICSSTokenizer.java deleted file mode 100644 index 9715ecb0b9..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/parser/ICSSTokenizer.java +++ /dev/null @@ -1,37 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006 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.parser; - -import java.io.IOException; -import java.io.Reader; - -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; - -/** - * currently provide this interface but may be removed in future. - */ -public interface ICSSTokenizer { - - void setInitialState(int initialState); - - void setInitialBufferSize(int bufsize); - - boolean isEOF(); - - void reset(Reader reader, int i); - - ITextRegion getNextToken() throws IOException; - - void reset(char[] cs); - - int getOffset(); - -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/parser/regions/CSSTextRegionFactory.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/parser/regions/CSSTextRegionFactory.java deleted file mode 100644 index 927ff40312..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/parser/regions/CSSTextRegionFactory.java +++ /dev/null @@ -1,35 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.parser.regions; - -import org.eclipse.wst.sse.core.internal.parser.ContextRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; - -public class CSSTextRegionFactory { - public synchronized static CSSTextRegionFactory getInstance() { - if (fInstance == null) { - fInstance = new CSSTextRegionFactory(); - } - return fInstance; - } - - public ITextRegion createRegion(String context, int start, int textLength, int length) { - ITextRegion region = null; - region = new ContextRegion(context, start, textLength, length); - return region; - } - - private CSSTextRegionFactory() { - super(); - } - - private static CSSTextRegionFactory fInstance = null; -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/parserz/CSSRegionContexts.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/parserz/CSSRegionContexts.java deleted file mode 100644 index 0027359cb5..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/parserz/CSSRegionContexts.java +++ /dev/null @@ -1,80 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 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.parserz; - -/** - */ -public interface CSSRegionContexts { - public static final String CSS_COMMENT = "COMMENT"; //$NON-NLS-1$ - public static final String CSS_CDO = "CDO"; //$NON-NLS-1$ - public static final String CSS_CDC = "CDC"; //$NON-NLS-1$ - public static final String CSS_S = "S"; //$NON-NLS-1$ - - public static final String CSS_DELIMITER = "DELIMITER"; //$NON-NLS-1$ - public static final String CSS_LBRACE = "LBRACE"; //$NON-NLS-1$ - public static final String CSS_RBRACE = "RBRACE"; //$NON-NLS-1$ - - public static final String CSS_IMPORT = "IMPORT"; //$NON-NLS-1$ - public static final String CSS_PAGE = "PAGE"; //$NON-NLS-1$ - public static final String CSS_MEDIA = "MEDIA"; //$NON-NLS-1$ - public static final String CSS_FONT_FACE = "FONT_FACE"; //$NON-NLS-1$ - public static final String CSS_CHARSET = "CHARSET"; //$NON-NLS-1$ - public static final String CSS_ATKEYWORD = "ATKEYWORD"; //$NON-NLS-1$ - - public static final String CSS_STRING = "STRING"; //$NON-NLS-1$ - public static final String CSS_URI = "URI"; //$NON-NLS-1$ - public static final String CSS_MEDIUM = "MEDIUM"; //$NON-NLS-1$ - public static final String CSS_MEDIA_SEPARATOR = "MEDIA_SEPARATOR"; //$NON-NLS-1$ - - public static final String CSS_CHARSET_NAME = "CHARSET_NAME"; //$NON-NLS-1$ - - public static final String CSS_PAGE_SELECTOR = "CSS_PAGE_SELECTOR"; //$NON-NLS-1$ - - public static final String CSS_SELECTOR_ELEMENT_NAME = "SELECTOR_ELEMENT_NAME"; //$NON-NLS-1$ - public static final String CSS_SELECTOR_UNIVERSAL = "SELECTOR_UNIVERSAL"; //$NON-NLS-1$ - public static final String CSS_SELECTOR_PSEUDO = "SELECTOR_PSEUDO"; //$NON-NLS-1$ - public static final String CSS_SELECTOR_CLASS = "SELECTOR_CLASS"; //$NON-NLS-1$ - public static final String CSS_SELECTOR_ID = "SELECTOR_ID"; //$NON-NLS-1$ - public static final String CSS_SELECTOR_COMBINATOR = "SELECTOR_COMBINATOR"; //$NON-NLS-1$ - public static final String CSS_SELECTOR_SEPARATOR = "SELECTOR_SEPARATOR"; //$NON-NLS-1$ - - public static final String CSS_SELECTOR_ATTRIBUTE_START = "SELECTOR_ATTRIBUTE_START"; //$NON-NLS-1$ - public static final String CSS_SELECTOR_ATTRIBUTE_END = "SELECTOR_ATTRIBUTE_END"; //$NON-NLS-1$ - public static final String CSS_SELECTOR_ATTRIBUTE_NAME = "SELECTOR_ATTRIBUTE_NAME"; //$NON-NLS-1$ - public static final String CSS_SELECTOR_ATTRIBUTE_VALUE = "SELECTOR_ATTRIBUTE_VALUE"; //$NON-NLS-1$ - public static final String CSS_SELECTOR_ATTRIBUTE_OPERATOR = "SELECTOR_ATTRIBUTE_OPERATOR"; //$NON-NLS-1$ - - public static final String CSS_DECLARATION_PROPERTY = "DECLARATION_PROPERTY"; //$NON-NLS-1$ - public static final String CSS_DECLARATION_SEPARATOR = "DECLARATION_SEPARATOR"; //$NON-NLS-1$ - public static final String CSS_DECLARATION_DELIMITER = "DECLARATION_DELIMITER"; //$NON-NLS-1$ - public static final String CSS_DECLARATION_VALUE_IDENT = "DECLARATION_VALUE_IDENT"; //$NON-NLS-1$ - public static final String CSS_DECLARATION_VALUE_DIMENSION = "DECLARATION_VALUE_DIMENSION"; //$NON-NLS-1$ - public static final String CSS_DECLARATION_VALUE_PERCENTAGE = "DECLARATION_VALUE_PERCENTAGE"; //$NON-NLS-1$ - public static final String CSS_DECLARATION_VALUE_NUMBER = "DECLARATION_VALUE_NUMBER"; //$NON-NLS-1$ - public static final String CSS_DECLARATION_VALUE_FUNCTION = "DECLARATION_VALUE_FUNCTION"; //$NON-NLS-1$ - public static final String CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE = "DECLARATION_VALUE_PARENTHESIS_CLOSE"; //$NON-NLS-1$ - public static final String CSS_DECLARATION_VALUE_STRING = "DECLARATION_VALUE_STRING"; //$NON-NLS-1$ - public static final String CSS_DECLARATION_VALUE_URI = "DECLARATION_VALUE_URI"; //$NON-NLS-1$ - public static final String CSS_DECLARATION_VALUE_HASH = "DECLARATION_VALUE_HASH"; //$NON-NLS-1$ - public static final String CSS_DECLARATION_VALUE_UNICODE_RANGE = "DECLARATION_VALUE_UNICODE_RANGE"; //$NON-NLS-1$ - public static final String CSS_DECLARATION_VALUE_IMPORTANT = "CSS_DECLARATION_VALUE_IMPORTANT"; //$NON-NLS-1$ - public static final String CSS_DECLARATION_VALUE_OPERATOR = "DECLARATION_VALUE_OPERATOR"; //$NON-NLS-1$ - public static final String CSS_DECLARATION_VALUE_S = "DECLARATION_VALUE_S"; //$NON-NLS-1$ - - public static final String CSS_UNKNOWN = "UNKNOWN"; //$NON-NLS-1$ - - // For null object : CSSTokenizer never set this value - public static final String CSS_UNDEFINED = "UNDEFINED"; //$NON-NLS-1$ - /** - * currently provided this field but may be removed in future. - */ - public static final String CSS_FOREIGN_ELEMENT = "FOREIGN_ELEMENT"; //$NON-NLS-1$ -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/parserz/CSSTextParser.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/parserz/CSSTextParser.java deleted file mode 100644 index 1253614ec5..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/parserz/CSSTextParser.java +++ /dev/null @@ -1,101 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.parserz; - -import java.io.IOException; -import java.io.Reader; -import java.io.StringReader; -import java.util.Collections; -import java.util.List; - -import org.eclipse.wst.css.core.internal.parser.CSSTokenizer; - - - -public class CSSTextParser { - public static final int MODE_STYLESHEET = 0; - public static final int MODE_DECLARATION = 1; - public static final int MODE_DECLARATION_VALUE = 2; - - public CSSTextParser(int parserMode) { - initializeParserMode(parserMode); - } - - public CSSTextParser(int parserMode, Reader reader) { - initializeParserMode(parserMode); - reset(reader); - } - - public CSSTextParser(int parserMode, String input) { - initializeParserMode(parserMode); - reset(input); - } - - public void reset(Reader reader) { - getTokenizer().reset(reader, 0); - } - - public void reset(String input) { - getTokenizer().reset(new StringReader(input), 0); - } - - public CSSTextToken[] getTokens() { - List tokenList = getTokenList(); - CSSTextToken[] tokens = new CSSTextToken[tokenList.size()]; - return (CSSTextToken[]) tokenList.toArray(tokens); - } - - public List getTokenList() { - List tokens; - try { - tokens = getTokenizer().parseText(); - } - catch (IOException e) { - tokens = Collections.EMPTY_LIST; - } - return tokens; - } - - private void initializeParserMode(int parserMode) { - int initialState; - int bufsize; - switch (parserMode) { - case MODE_STYLESHEET : - initialState = CSSTokenizer.YYINITIAL; - bufsize = CSSTokenizer.BUFFER_SIZE_NORMAL; - break; - case MODE_DECLARATION : - initialState = CSSTokenizer.ST_DECLARATION; - bufsize = CSSTokenizer.BUFFER_SIZE_NORMAL; - break; - case MODE_DECLARATION_VALUE : - initialState = CSSTokenizer.ST_DECLARATION_PRE_VALUE; - bufsize = CSSTokenizer.BUFFER_SIZE_SMALL; - break; - default : - return; - } - if (0 < initialState) { - CSSTokenizer tokenizer = getTokenizer(); - tokenizer.setInitialState(initialState); - tokenizer.setInitialBufferSize(bufsize); - } - } - - private CSSTokenizer getTokenizer() { - if (fTokenizer == null) { - fTokenizer = new CSSTokenizer(); - } - return fTokenizer; - } - - private CSSTokenizer fTokenizer = null; -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/parserz/CSSTextToken.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/parserz/CSSTextToken.java deleted file mode 100644 index fcc9078c1a..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/parserz/CSSTextToken.java +++ /dev/null @@ -1,23 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.parserz; - - -public class CSSTextToken { - public String kind; - public String image; - public int start; - public int length; - - public String toString() { - return (image != null) ? image : ""; //$NON-NLS-1$ - } -} 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 deleted file mode 100644 index 20562881cb..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/preferences/CSSCorePreferenceInitializer.java +++ /dev/null @@ -1,72 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2006 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$ - - // this could be made smarter by actually looking up the content - // type's valid extensions - node.put(CSSCorePreferenceNames.DEFAULT_EXTENSION, "css"); //$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 deleted file mode 100644 index d3fa08deea..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/preferences/CSSCorePreferenceNames.java +++ /dev/null @@ -1,143 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2006 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. - * - * @plannedfor 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 default extension to use when none is specified in the New CSS File - * Wizard. - * <p> - * Value is of type <code>String</code>. - * </p> - */ - public static final String DEFAULT_EXTENSION = "defaultExtension"; //$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/adapters/ICSSModelAdapter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/adapters/ICSSModelAdapter.java deleted file mode 100644 index f018816052..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/adapters/ICSSModelAdapter.java +++ /dev/null @@ -1,24 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.provisional.adapters; - - - -import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter; - - -/** - */ -public interface ICSSModelAdapter extends INodeAdapter { - - ICSSModel getModel(); -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/adapters/IModelProvideAdapter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/adapters/IModelProvideAdapter.java deleted file mode 100644 index d1f94d2882..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/adapters/IModelProvideAdapter.java +++ /dev/null @@ -1,35 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.provisional.adapters; - - - -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter; -import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; - -/** - * - */ -public interface IModelProvideAdapter extends INodeAdapter { - - /** - * - */ - void modelProvided(IStructuredModel newModel); - - /** - */ - void modelReleased(IStructuredModel newModel); - - /** - */ - void modelRemoved(IStructuredModel newModel); -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/adapters/IStyleDeclarationAdapter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/adapters/IStyleDeclarationAdapter.java deleted file mode 100644 index 436a937f76..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/adapters/IStyleDeclarationAdapter.java +++ /dev/null @@ -1,25 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.provisional.adapters; - - - -import org.w3c.dom.css.CSSStyleDeclaration; - - -/** - */ -public interface IStyleDeclarationAdapter extends ICSSModelAdapter { - - /** - */ - public CSSStyleDeclaration getStyle(); -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/adapters/IStyleSelectorAdapter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/adapters/IStyleSelectorAdapter.java deleted file mode 100644 index d0e29778bf..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/adapters/IStyleSelectorAdapter.java +++ /dev/null @@ -1,33 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.provisional.adapters; - - - -import org.eclipse.wst.css.core.internal.provisional.document.ICSSSimpleSelector; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter; -import org.w3c.dom.Element; - - -/** - * - */ -public interface IStyleSelectorAdapter extends INodeAdapter { - - /** - * @return boolean - * @param element - * org.w3c.dom.Element - * @param pseudoName - * java.lang.String - */ - boolean match(ICSSSimpleSelector selector, Element element, String pseudoName); -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/adapters/IStyleSheetAdapter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/adapters/IStyleSheetAdapter.java deleted file mode 100644 index 814752d427..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/adapters/IStyleSheetAdapter.java +++ /dev/null @@ -1,41 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.provisional.adapters; - - - -import org.w3c.dom.Element; -import org.w3c.dom.stylesheets.StyleSheet; - -/** - */ -public interface IStyleSheetAdapter extends ICSSModelAdapter { - - /** - * Returns HTML/XML element that is the owner of this adapter - */ - Element getElement(); - - /** - * Returns CSS document that is related to this element - */ - public StyleSheet getSheet(); - - /** - * This is called at the time of releasing HTML/XML model - */ - public void released(); - - /** - * This is called at the time of removing this Element from the document - */ - public void removed(); -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/adapters/IStyleSheetListAdapter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/adapters/IStyleSheetListAdapter.java deleted file mode 100644 index 8e63889c1d..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/adapters/IStyleSheetListAdapter.java +++ /dev/null @@ -1,41 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.provisional.adapters; - - - -import java.util.Enumeration; - -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter; -import org.w3c.dom.Element; -import org.w3c.dom.css.CSSStyleDeclaration; -import org.w3c.dom.stylesheets.StyleSheetList; - -/** - */ -public interface IStyleSheetListAdapter extends INodeAdapter { - - /** - */ - Enumeration getClasses(); - - /** - */ - public CSSStyleDeclaration getOverrideStyle(Element element, String pseudoName); - - /** - */ - public StyleSheetList getStyleSheets(); - - /** - */ - public void releaseStyleSheets(); -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/contenttype/ContentTypeIdForCSS.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/contenttype/ContentTypeIdForCSS.java deleted file mode 100644 index 79622cf86c..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/contenttype/ContentTypeIdForCSS.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.eclipse.wst.css.core.internal.provisional.contenttype; - - -/** - * This class, with its one field, is a convience to provide compile-time - * safety when refering to a contentType ID. The value of the contenttype id - * field must match what is specified in plugin.xml file. - */ - -public class ContentTypeIdForCSS { - /** - * The value of the contenttype id field must match what is specified in - * plugin.xml file. Note: this value is intentially set with default - * protected method so it will not be inlined. - */ - public final static String ContentTypeID_CSS = getConstantString(); - - /** - * Don't allow instantiation. - */ - private ContentTypeIdForCSS() { - super(); - } - - static String getConstantString() { - return "org.eclipse.wst.css.core.csssource"; //$NON-NLS-1$ - } - - -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSAccess.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSAccess.java deleted file mode 100644 index 9d2afa2899..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSAccess.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.provisional.document; - - - -import java.util.Vector; - -/** - * - */ -public interface ICSSAccess { - - /** - * @return java.util.Vector - */ - Vector getClassNames(); -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSAttr.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSAttr.java deleted file mode 100644 index cd80a8c059..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSAttr.java +++ /dev/null @@ -1,40 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.provisional.document; - - - -/** - * - */ -public interface ICSSAttr extends ICSSNode { - - /** - * @return java.lang.String - */ - String getName(); - - /** - * @return org.eclipse.wst.css.core.model.interfaces.ICSSNode - */ - ICSSNode getOwnerCSSNode(); - - /** - * @return java.lang.String - */ - String getValue(); - - /** - * @param newValue - * java.lang.String - */ - void setValue(String newValue); -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSCharsetRule.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSCharsetRule.java deleted file mode 100644 index 1a34ed19c5..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSCharsetRule.java +++ /dev/null @@ -1,23 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.provisional.document; - - - -import org.w3c.dom.css.CSSCharsetRule; - -/** - * - */ -public interface ICSSCharsetRule extends ICSSNode, CSSCharsetRule { - - java.lang.String ENCODING = "encoding"; //$NON-NLS-1$ -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSDocument.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSDocument.java deleted file mode 100644 index a56c0d927b..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSDocument.java +++ /dev/null @@ -1,94 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.provisional.document; - - - -import org.w3c.dom.css.CSSFontFaceRule; -import org.w3c.dom.css.CSSRule; -import org.w3c.dom.css.CSSUnknownRule; -import org.w3c.dom.stylesheets.MediaList; - -/** - * - */ -public interface ICSSDocument extends ICSSNode { - - /** - * @return org.w3c.dom.css.CSSCharsetRule - */ - ICSSCharsetRule createCSSCharsetRule(); - - /** - * @return org.w3c.dom.css.CSSFontFaceRule - */ - CSSFontFaceRule createCSSFontFaceRule(); - - /** - * @return org.w3c.dom.css.CSSImportRule - */ - ICSSImportRule createCSSImportRule(); - - /** - * @return org.w3c.dom.css.ICSSMediaRule - */ - ICSSMediaRule createCSSMediaRule(); - - /** - * @return org.w3c.dom.css.CSSPageRule - */ - ICSSPageRule createCSSPageRule(); - - /** - * @return org.w3c.dom.css.CSSPrimitiveValue - */ - ICSSPrimitiveValue createCSSPrimitiveValue(short primitiveType); - - /** - * @return org.w3c.dom.css.CSSRule - * @param rule - * java.lang.String - */ - CSSRule createCSSRule(String rule); - - /** - * @return org.w3c.dom.css.CSSStyleDeclaration - */ - ICSSStyleDeclaration createCSSStyleDeclaration(); - - /** - * @param propertyName - * java.lang.String - */ - ICSSStyleDeclItem createCSSStyleDeclItem(String propertyName); - - /** - * @return org.w3c.dom.css.CSSStyleRule - */ - ICSSStyleRule createCSSStyleRule(); - - /** - * @return org.w3c.dom.css.CSSUnknownRule - */ - CSSUnknownRule createCSSUnknownRule(); - - /** - * @return org.w3c.dom.stylesheets.MediaList - */ - MediaList createMediaList(); - - ICSSModel getModel(); - - /** - * @return boolean - */ - boolean isDocument(); -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSImportRule.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSImportRule.java deleted file mode 100644 index 21d90d110b..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSImportRule.java +++ /dev/null @@ -1,34 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.provisional.document; - - - -import org.w3c.dom.css.CSSImportRule; - -/** - * - */ -public interface ICSSImportRule extends ICSSNode, CSSImportRule { - - java.lang.String HREF = "href"; //$NON-NLS-1$ - - /** - * - */ - void refreshStyleSheet(); - - /** - * @param href - * java.lang.String - */ - void setHref(String href); -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSMediaRule.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSMediaRule.java deleted file mode 100644 index c840336b41..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSMediaRule.java +++ /dev/null @@ -1,22 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.provisional.document; - - - -import org.w3c.dom.css.CSSMediaRule; - -/** - * - */ -public interface ICSSMediaRule extends ICSSNode, ICSSRuleContainer, CSSMediaRule { - -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSModel.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSModel.java deleted file mode 100644 index 596e571f2a..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSModel.java +++ /dev/null @@ -1,46 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 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.provisional.document; - - - -import org.eclipse.wst.css.core.internal.event.ICSSStyleNotifier; -import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; -import org.w3c.dom.Node; - - -/** - * - */ -public interface ICSSModel extends ICSSStyleNotifier, IStructuredModel { - - public static final String EXTERNAL = "externalCSS"; //$NON-NLS-1$ - public static final String EMBEDDED = "embeddedCSS"; //$NON-NLS-1$ - public static final String INLINE = "inlineCSS"; //$NON-NLS-1$ - - ICSSDocument getDocument(); - - /** - * @return org.w3c.dom.Node - */ - Node getOwnerDOMNode(); - - /** - * - * @return java.lang.Object - */ - Object getStyleSheetType(); - - /** - * cleanup -> rebuild CSS Nodes This is pre-beta fix for 178176. - */ - void refreshNodes(); -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSNamedNodeMap.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSNamedNodeMap.java deleted file mode 100644 index 82869c24c8..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSNamedNodeMap.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.provisional.document; - - - -/** - * - */ -public interface ICSSNamedNodeMap extends ICSSNodeList { - - /** - * @return org.eclipse.wst.css.core.model.interfaces.ICSSNode - * @param name - * java.lang.String - */ - ICSSNode getNamedItem(String name); -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSNode.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSNode.java deleted file mode 100644 index eb17e537b5..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSNode.java +++ /dev/null @@ -1,68 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.provisional.document; - - - -/** - * - */ -public interface ICSSNode { - - short ATTR_NODE = -1; - short UNKNOWNRULE_NODE = 0; - short STYLERULE_NODE = 1; - short CHARSETRULE_NODE = 2; - short IMPORTRULE_NODE = 3; - short MEDIARULE_NODE = 4; - short FONTFACERULE_NODE = 5; - short PAGERULE_NODE = 6; - short STYLESHEET_NODE = 7; - short STYLEDECLARATION_NODE = 8; - short STYLEDECLITEM_NODE = 9; - short VALUELIST_NODE = 10; - short PRIMITIVEVALUE_NODE = 11; - short MEDIALIST_NODE = 12; - short DOCUMENTCSSSTYLE_NODE = 13; - short LINKSTYLE_NODE = 14; - short ELEMENTCSSINLINESTYLE_NODE = 15; - - ICSSNode cloneNode(boolean deep); - - /** - * @return org.eclipse.wst.css.core.model.interfaces.ICSSNamedNodeMap - */ - ICSSNamedNodeMap getAttributes(); - - ICSSNodeList getChildNodes(); - - ICSSNode getFirstChild(); - - ICSSNode getLastChild(); - - ICSSNode getNextSibling(); - - /** - * @return short - */ - short getNodeType(); - - ICSSDocument getOwnerDocument(); - - ICSSNode getParentNode(); - - ICSSNode getPreviousSibling(); - - /** - * @return boolean - */ - boolean hasChildNodes(); -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSNodeList.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSNodeList.java deleted file mode 100644 index 310dfbb627..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSNodeList.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.provisional.document; - - - -/** - * - */ -public interface ICSSNodeList { - - /** - * @return int - */ - int getLength(); - - ICSSNode item(int index); -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSPageRule.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSPageRule.java deleted file mode 100644 index 96a24a01e3..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSPageRule.java +++ /dev/null @@ -1,22 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.provisional.document; - - - -import org.w3c.dom.css.CSSPageRule; - -public interface ICSSPageRule extends ICSSNode, CSSPageRule { - - java.lang.String SELECTOR = "selector"; //$NON-NLS-1$ - - ICSSSelectorList getSelectors(); -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSPrimitiveValue.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSPrimitiveValue.java deleted file mode 100644 index ebeacb809e..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSPrimitiveValue.java +++ /dev/null @@ -1,46 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.provisional.document; - - - -import org.w3c.dom.css.CSSPrimitiveValue; - -/** - * - */ -public interface ICSSPrimitiveValue extends ICSSNode, ICSSValue, CSSPrimitiveValue { - - short CSS_INTEGER = 26; - short CSS_HASH = 27; - short CSS_URANGE = 28; - short CSS_FORMAT = 29; - short CSS_LOCAL = 30; - short CSS_SLASH = 31; - short CSS_COMMA = 32; - short CSS_INHERIT_PRIMITIVE = 33; - - /** - * @param floatValue - * float - * @exception org.w3c.dom.DOMException - * The exception description. - */ - void setValue(float floatValue) throws org.w3c.dom.DOMException; - - /** - * @param stringValue - * java.lang.String - * @exception org.w3c.dom.DOMException - * The exception description. - */ - void setValue(String stringValue) throws org.w3c.dom.DOMException; -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSRuleContainer.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSRuleContainer.java deleted file mode 100644 index 29ae5966c8..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSRuleContainer.java +++ /dev/null @@ -1,60 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.provisional.document; - - - -import org.w3c.dom.DOMException; -import org.w3c.dom.css.CSSRule; - -/** - * - */ -public interface ICSSRuleContainer { - - /** - * @return org.w3c.dom.css.CSSRule - * @param rule - * org.w3c.dom.css.CSSRule - * @exception org.w3c.dom.DOMException - * The exception description. - */ - CSSRule appendRule(CSSRule rule) throws org.w3c.dom.DOMException; - - /** - * @return org.w3c.dom.css.CSSRule - * @param newRule - * org.w3c.dom.css.CSSRule - * @param refRule - * org.w3c.dom.css.CSSRule - */ - CSSRule insertRuleBefore(CSSRule newRule, CSSRule refRule) throws DOMException; - - /** - * @return org.w3c.dom.css.CSSRule - * @param rule - * org.w3c.dom.css.CSSRule - * @exception org.w3c.dom.DOMException - * The exception description. - */ - CSSRule removeRule(CSSRule rule) throws org.w3c.dom.DOMException; - - /** - * @return org.w3c.dom.css.CSSRule - * @param newChild - * org.w3c.dom.css.CSSRule - * @param oldChild - * org.w3c.dom.css.CSSRule - * @exception org.w3c.dom.DOMException - * The exception description. - */ - CSSRule replaceRule(CSSRule newRule, CSSRule oldRule) throws org.w3c.dom.DOMException; -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSSelector.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSSelector.java deleted file mode 100644 index 3e9541cdf6..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSSelector.java +++ /dev/null @@ -1,62 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.provisional.document; - - - -import java.util.Iterator; - -import org.w3c.dom.Element; - -/** - * - */ -public interface ICSSSelector { - - ICSSSelectorItem getItem(int index); - - /** - * @return java.util.Iterator - */ - Iterator getIterator(); - - /** - * @return int - */ - int getLength(); - - /** - * @return int - */ - int getSpecificity(); - - /** - * @return java.lang.String - */ - String getString(); - - /** - * @return boolean - * @param element - * org.w3c.dom.Element - */ - boolean match(Element element, String pseudoName); - - /** - * - */ - Iterator getErrors(); - - /** - * - */ - int getErrorCount(); -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSSelectorCombinator.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSSelectorCombinator.java deleted file mode 100644 index fe443c0d36..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSSelectorCombinator.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.provisional.document; - - - -/** - * - */ -public interface ICSSSelectorCombinator extends ICSSSelectorItem { - - public static final char DESCENDANT = ' '; - public static final char CHILD = '>'; - public static final char ADJACENT = '+'; - public static final char UNKNOWN = '?'; // error case - - /** - * @return int - */ - char getCombinatorType(); -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSSelectorItem.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSSelectorItem.java deleted file mode 100644 index 34fe8f8871..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSSelectorItem.java +++ /dev/null @@ -1,32 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.provisional.document; - - - -/** - * - */ -public interface ICSSSelectorItem { - - public static final int SIMPLE = 1; - public static final int COMBINATOR = 2; - - /** - * @return int - */ - int getItemType(); - - /** - * @return java.lang.String - */ - String getString(); -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSSelectorList.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSSelectorList.java deleted file mode 100644 index 077fd0c420..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSSelectorList.java +++ /dev/null @@ -1,62 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.provisional.document; - - - -import java.util.Iterator; - -import org.w3c.dom.Element; - -/** - * - */ -public interface ICSSSelectorList { - - /** - * @return java.util.Iterator - */ - Iterator getIterator(); - - /** - * @return int - */ - int getLength(); - - /** - * @return java.util.Vector - * @param index - * int - */ - ICSSSelector getSelector(int index); - - /** - * @return java.lang.String - */ - String getString(); - - /** - * - */ - int getErrorCount(); - - /** - * - */ - Iterator getErrors(); - - /** - * @return boolean - * @param element - * org.w3c.dom.Element - */ - boolean match(Element element, String pseudoName); -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSSimpleSelector.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSSimpleSelector.java deleted file mode 100644 index 5d9fb82ae3..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSSimpleSelector.java +++ /dev/null @@ -1,77 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.provisional.document; - - - -/** - * - */ -public interface ICSSSimpleSelector extends ICSSSelectorItem { - - /** - * @return java.lang.String - * @param index - * int - */ - String getAttribute(int index); - - /** - * @return java.lang.String - * @param index - * int - */ - String getClass(int index); - - /** - * @return java.lang.String - * @param index - * int - */ - String getID(int index); - - /** - * @return java.lang.String - */ - String getName(); - - /** - * @return boolean - */ - int getNumOfAttributes(); - - /** - * @return boolean - */ - int getNumOfClasses(); - - /** - * @return boolean - */ - int getNumOfIDs(); - - /** - * @return boolean - */ - int getNumOfPseudoNames(); - - /** - * @return java.lang.String - * @param index - * int - */ - String getPseudoName(int index); - - /** - * @return boolean - */ - boolean isUniversal(); -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSStyleDeclItem.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSStyleDeclItem.java deleted file mode 100644 index 029cd6bec7..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSStyleDeclItem.java +++ /dev/null @@ -1,73 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.provisional.document; - - - -import org.w3c.dom.css.CSSValue; - -/** - * - */ -public interface ICSSStyleDeclItem extends ICSSNode, ICSSValueList { - - java.lang.String IMPORTANT = "important"; //$NON-NLS-1$ - - /** - * @return org.w3c.dom.css.CSSPrimitiveValue - * @param value - * org.w3c.dom.css.CSSPrimitiveValue - * @exception org.w3c.dom.DOMException - * The exception description. - */ - ICSSPrimitiveValue appendValue(ICSSPrimitiveValue value) throws org.w3c.dom.DOMException; - - /** - * @return org.w3c.dom.css.CSSValue - */ - CSSValue getCSSValue(); - - /** - * @return java.lang.String - */ - String getPriority(); - - /** - * @return java.lang.String - */ - String getPropertyName(); - - /** - * @return org.w3c.dom.css.CSSPrimitiveValue - * @param value - * org.w3c.dom.css.CSSPrimitiveValue - * @exception org.w3c.dom.DOMException - * The exception description. - */ - ICSSPrimitiveValue removeValue(ICSSPrimitiveValue value) throws org.w3c.dom.DOMException; - - /** - * @return org.w3c.dom.css.CSSPrimitiveValue - * @param newValue - * org.w3c.dom.css.CSSPrimitiveValue - * @param oldValue - * org.w3c.dom.css.CSSPrimitiveValue - * @exception org.w3c.dom.DOMException - * The exception description. - */ - ICSSPrimitiveValue replaceValue(ICSSPrimitiveValue newValue, ICSSPrimitiveValue oldValue) throws org.w3c.dom.DOMException; - - /** - * @param priority - * java.lang.String - */ - void setPriority(String priority); -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSStyleDeclaration.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSStyleDeclaration.java deleted file mode 100644 index 7e8736675a..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSStyleDeclaration.java +++ /dev/null @@ -1,24 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.provisional.document; - - - -import org.w3c.dom.css.CSSStyleDeclaration; - -public interface ICSSStyleDeclaration extends ICSSDocument, CSSStyleDeclaration { - - ICSSStyleDeclItem getDeclItemNode(String propertyName); - - ICSSStyleDeclItem removeDeclItemNode(ICSSStyleDeclItem oldDecl) throws org.w3c.dom.DOMException; - - ICSSStyleDeclItem setDeclItemNode(ICSSStyleDeclItem newDecl) throws org.w3c.dom.DOMException; -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSStyleRule.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSStyleRule.java deleted file mode 100644 index ac4e1a6964..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSStyleRule.java +++ /dev/null @@ -1,22 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.provisional.document; - - - -import org.w3c.dom.css.CSSStyleRule; - -public interface ICSSStyleRule extends ICSSNode, CSSStyleRule { - - java.lang.String SELECTOR = "selector"; //$NON-NLS-1$ - - ICSSSelectorList getSelectors(); -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSStyleSheet.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSStyleSheet.java deleted file mode 100644 index 0240eb2c7f..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSStyleSheet.java +++ /dev/null @@ -1,47 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.provisional.document; - - - -import org.w3c.dom.Document; -import org.w3c.dom.NodeList; -import org.w3c.dom.css.CSSRuleList; -import org.w3c.dom.css.CSSStyleSheet; -import org.w3c.dom.stylesheets.StyleSheetList; - -/** - * - */ -public interface ICSSStyleSheet extends ICSSDocument, ICSSRuleContainer, CSSStyleSheet { - - /** - * @return org.w3c.dom.NodeList - */ - NodeList getOwnerNodes(); - - /** - * @return org.w3c.dom.NodeList - * @param doc - * org.w3c.dom.Document - */ - NodeList getOwnerNodes(Document doc); - - /** - * @return org.w3c.dom.css.CSSRuleList - */ - CSSRuleList getOwnerRules(); - - /** - * @return org.w3c.dom.stylesheets.StyleSheetList - */ - StyleSheetList getParentStyleSheets(); -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSValue.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSValue.java deleted file mode 100644 index 1769140fb3..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSValue.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.provisional.document; - - - -import org.w3c.dom.css.CSSValue; - -/** - * - */ -public interface ICSSValue extends CSSValue { - - /** - * @return java.lang.String - */ - String getCSSValueText(); -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSValueList.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSValueList.java deleted file mode 100644 index b49c575f02..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICSSValueList.java +++ /dev/null @@ -1,35 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.provisional.document; - - - -import org.w3c.dom.css.CSSValueList; - -/** - * - */ -public interface ICSSValueList extends ICSSValue, CSSValueList { - - /** - * @return org.w3c.dom.css.CSSPrimitiveValue - * @param value - * org.w3c.dom.css.CSSPrimitiveValue - */ - ICSSPrimitiveValue appendValue(ICSSPrimitiveValue value); - - /** - * @return org.w3c.dom.css.CSSPrimitiveValue - * @param value - * org.w3c.dom.css.CSSPrimitiveValue - */ - ICSSPrimitiveValue removeValue(ICSSPrimitiveValue value); -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICounter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICounter.java deleted file mode 100644 index ff824b8284..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/ICounter.java +++ /dev/null @@ -1,49 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.provisional.document; - - - -import org.w3c.dom.css.Counter; - -/** - * - */ -public interface ICounter extends ICSSNode, Counter { - - java.lang.String IDENTIFIER = "identifier"; //$NON-NLS-1$ - java.lang.String LISTSTYLE = "liststyle"; //$NON-NLS-1$ - java.lang.String SEPARATOR = "separator"; //$NON-NLS-1$ - - /** - * @param identifier - * java.lang.String - * @exception org.w3c.dom.DOMException - * The exception description. - */ - void setIdentifier(String identifier) throws org.w3c.dom.DOMException; - - /** - * @param listStyle - * java.lang.String - * @exception org.w3c.dom.DOMException - * The exception description. - */ - void setListStyle(String listStyle) throws org.w3c.dom.DOMException; - - /** - * @param Separator - * java.lang.String - * @exception org.w3c.dom.DOMException - * The exception description. - */ - void setSeparator(String separator) throws org.w3c.dom.DOMException; -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/IDOMImplementationCSS.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/IDOMImplementationCSS.java deleted file mode 100644 index dc44e98e2f..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/IDOMImplementationCSS.java +++ /dev/null @@ -1,23 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.provisional.document; - - - -import org.w3c.dom.css.DOMImplementationCSS; - -/** - * - */ -public interface IDOMImplementationCSS extends DOMImplementationCSS { - - ICSSStyleDeclaration createCSSStyleDeclaration() throws org.w3c.dom.DOMException; -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/IDocumentStyle.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/IDocumentStyle.java deleted file mode 100644 index 6a4606666b..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/document/IDocumentStyle.java +++ /dev/null @@ -1,62 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.provisional.document; - - - -import org.w3c.dom.stylesheets.DocumentStyle; -import org.w3c.dom.stylesheets.StyleSheet; - -/** - * - */ -public interface IDocumentStyle extends DocumentStyle { - - /** - * @return org.w3c.dom.stylesheets.StyleSheet - * @param newSheet - * org.w3c.dom.stylesheets.StyleSheet - * @exception org.w3c.dom.DOMException - * The exception description. - */ - StyleSheet appendSheet(StyleSheet newSheet) throws org.w3c.dom.DOMException; - - /** - * @return org.w3c.dom.stylesheets.StyleSheet - * @param newSheet - * org.w3c.dom.stylesheets.StyleSheet - * @param refSheet - * org.w3c.dom.stylesheets.StyleSheet - * @exception org.w3c.dom.DOMException - * The exception description. - */ - StyleSheet insertSheetBefore(StyleSheet newSheet, StyleSheet refSheet) throws org.w3c.dom.DOMException; - - /** - * @return org.w3c.dom.stylesheets.StyleSheet - * @param oldSheet - * org.w3c.dom.stylesheets.StyleSheet - * @exception org.w3c.dom.DOMException - * The exception description. - */ - StyleSheet removeSheet(StyleSheet oldSheet) throws org.w3c.dom.DOMException; - - /** - * @return org.w3c.dom.stylesheets.StyleSheet - * @param newSheet - * org.w3c.dom.stylesheets.StyleSheet - * @param oldSheet - * org.w3c.dom.stylesheets.StyleSheet - * @exception org.w3c.dom.DOMException - * The exception description. - */ - StyleSheet replaceSheet(StyleSheet newSheet, StyleSheet oldSheet) throws org.w3c.dom.DOMException; -} 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 deleted file mode 100644 index e1fafe6f0e..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/preferences/CSSPreferenceHelper.java +++ /dev/null @@ -1,229 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.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; - -/** - * @deprecated just access preferences directly - */ -public class CSSPreferenceHelper { - - /** - * - */ - public synchronized static CSSPreferenceHelper getInstance() { - if (fInstance == null) { - fInstance = new CSSPreferenceHelper(); - } - return fInstance; - } - - /** - * - */ - public String getBetweenValueString() { - return getPreferences().getString(CSSCorePreferenceNames.FORMAT_BETWEEN_VALUE); - } - - /** - * - */ - public String getIndentString() { - StringBuffer indent = new StringBuffer(); - - Preferences preferences = getPreferences(); - if (preferences != null) { - char indentChar = ' '; - String indentCharPref = preferences.getString(CSSCorePreferenceNames.INDENTATION_CHAR); - if (CSSCorePreferenceNames.TAB.equals(indentCharPref)) { - indentChar = '\t'; - } - int indentationWidth = preferences.getInt(CSSCorePreferenceNames.INDENTATION_SIZE); - - for (int i = 0; i < indentationWidth; i++) { - indent.append(indentChar); - } - } - return indent.toString(); - } - - /** - * - */ - public int getMaxLineWidth() { - Preferences prefs = getPreferences(); - return prefs.getInt(CSSCorePreferenceNames.LINE_WIDTH); - } - - /** - * - */ - public String getQuoteString(ICSSModel model) { - // nakamori_TODO css pref transition - return getPreferences().getString(CSSCorePreferenceNames.FORMAT_QUOTE); - } - - /** - * - */ - public int getSpacesPostDelimiter() { - return getPreferences().getInt(CSSCorePreferenceNames.FORMAT_PROP_POST_DELIM); - } - - /** - * - */ - public int getSpacesPreDelimiter() { - return getPreferences().getInt(CSSCorePreferenceNames.FORMAT_PROP_PRE_DELIM); - } - - /** - * - */ - public boolean isIdentUpperCase() { - if (getPreferences().getInt(CSSCorePreferenceNames.CASE_IDENTIFIER) == CSSCorePreferenceNames.UPPER) - return true; - return false; - } - - /** - * - */ - public boolean isNewLineOnOpenBrace() { - return getPreferences().getBoolean(CSSCorePreferenceNames.WRAPPING_NEWLINE_ON_OPEN_BRACE); - } - - /** - * - */ - public boolean isOnePropertyPerLine() { - return getPreferences().getBoolean(CSSCorePreferenceNames.WRAPPING_ONE_PER_LINE); - } - - /** - * - */ - public boolean isProhibitWrapOnAttr() { - return getPreferences().getBoolean(CSSCorePreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR); - } - - /** - * - */ - public boolean isPropNameUpperCase() { - if (getPreferences().getInt(CSSCorePreferenceNames.CASE_PROPERTY_NAME) == CSSCorePreferenceNames.UPPER) - return true; - return false; - } - - /** - * - */ - public boolean isPropValueUpperCase() { - if (getPreferences().getInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.UPPER) - return true; - return false; - } - - /** - * - */ - public boolean isQuoteInURI() { - return getPreferences().getBoolean(CSSCorePreferenceNames.FORMAT_QUOTE_IN_URI); - } - - /** - * - */ - protected void setBetweenValueString(String newBetweenValueString) { - getPreferences().setValue(CSSCorePreferenceNames.FORMAT_BETWEEN_VALUE, newBetweenValueString); - } - - /** - * - */ - protected void setIdentUpperCase(boolean newIdentUpperCase) { - int theCase = CSSCorePreferenceNames.LOWER; - if (newIdentUpperCase) - theCase = CSSCorePreferenceNames.UPPER; - getPreferences().setValue(CSSCorePreferenceNames.CASE_IDENTIFIER, theCase); - } - - /** - * - */ - protected void setOnePropertyPerLine(boolean newOnePropertyPerLine) { - getPreferences().setValue(CSSCorePreferenceNames.WRAPPING_ONE_PER_LINE, newOnePropertyPerLine); - } - - /** - * - */ - protected void setProhibitWrapOnAttr(boolean newProhibitWrapOnAttr) { - getPreferences().setValue(CSSCorePreferenceNames.WRAPPING_PROHIBIT_WRAP_ON_ATTR, newProhibitWrapOnAttr); - } - - /** - * - */ - protected void setPropNameUpperCase(boolean newPropNameUpperCase) { - int theCase = CSSCorePreferenceNames.LOWER; - if (newPropNameUpperCase) - theCase = CSSCorePreferenceNames.UPPER; - getPreferences().setValue(CSSCorePreferenceNames.CASE_PROPERTY_NAME, theCase); - } - - /** - * - */ - protected void setPropValueUpperCase(boolean newPropValueUpperCase) { - int theCase = CSSCorePreferenceNames.LOWER; - if (newPropValueUpperCase) - theCase = CSSCorePreferenceNames.UPPER; - getPreferences().setValue(CSSCorePreferenceNames.CASE_PROPERTY_VALUE, theCase); - } - - /** - * - */ - public void setQuoteString(String quote) { - getPreferences().setValue(CSSCorePreferenceNames.FORMAT_QUOTE, quote); - } - - /** - * - */ - public void setSpacesPostDelimiter(int num) { - getPreferences().setValue(CSSCorePreferenceNames.FORMAT_PROP_POST_DELIM, num); - } - - /** - * - */ - public void setSpacesPreDelimiter(int num) { - getPreferences().setValue(CSSCorePreferenceNames.FORMAT_PROP_PRE_DELIM, num); - } - - private Preferences getPreferences() { - CSSCorePlugin cssModelPlugin = CSSCorePlugin.getDefault(); - return cssModelPlugin.getPluginPreferences(); - } - - private CSSPreferenceHelper() { - super(); - } - - private static CSSPreferenceHelper fInstance = null; -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/text/ICSSPartitionTypes.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/text/ICSSPartitionTypes.java deleted file mode 100644 index 54fcf463fd..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/provisional/text/ICSSPartitionTypes.java +++ /dev/null @@ -1,25 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2006 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.text; - -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredPartitionTypes; - -/** - * This interface is not intended to be implemented. It defines the - * partitioning for CSS and all its partitions. Clients should reference the - * partition type Strings defined here directly. - * - * @deprecated org.eclipse.wst.css.core.text.ICSSPartitions - */ -public interface ICSSPartitionTypes extends IStructuredPartitionTypes { - - String STYLE = "org.eclipse.wst.css.STYLE"; //$NON-NLS-1$ -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/tasks/CSSFileTaskScanner.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/tasks/CSSFileTaskScanner.java deleted file mode 100644 index db9bfc601d..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/tasks/CSSFileTaskScanner.java +++ /dev/null @@ -1,36 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.tasks; - -import org.eclipse.jface.text.BadLocationException; -import org.eclipse.jface.text.IDocument; -import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; -import org.eclipse.wst.sse.core.internal.tasks.StructuredFileTaskScanner; - -public class CSSFileTaskScanner extends StructuredFileTaskScanner { - public CSSFileTaskScanner() { - super(); - } - - protected String getCommentedText(IDocument document, int begin, int length) throws BadLocationException { - String text = super.getCommentedText(document, begin, length); - if (text != null && text.endsWith("*/")) { //$NON-NLS-1$ - text = text.substring(0, text.length() - 2); - } - return text; - } - - protected boolean isCommentRegion(IStructuredDocumentRegion region, ITextRegion textRegion) { - return textRegion.getType().equals(CSSRegionContexts.CSS_COMMENT); - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/text/CSSStructuredDocumentReParser.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/text/CSSStructuredDocumentReParser.java deleted file mode 100644 index d4a42371d0..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/text/CSSStructuredDocumentReParser.java +++ /dev/null @@ -1,360 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.text; - -import org.eclipse.jface.text.BadLocationException; -import org.eclipse.jface.text.IRegion; -import org.eclipse.wst.css.core.internal.Logger; -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.util.CSSUtil; -import org.eclipse.wst.css.core.internal.util.RegionIterator; -import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentEvent; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredTextReParser; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; -import org.eclipse.wst.sse.core.internal.text.StructuredDocumentReParser; - - -/** - * This class provides a centralized place to put "reparsing" logic. This is - * the logic that reparses the text incrementally, as a user types in new - * characters, or DOM nodes are inserted or deleted. Note: it is not a thread - * safe class. - */ -public class CSSStructuredDocumentReParser extends StructuredDocumentReParser { - - class ReparseRange { - ReparseRange() { - reset(); - } - - ReparseRange(int start, int end) { - fRangeStart = start; - fRangeEnd = end; - } - - void setStart(int start) { - fRangeStart = start; - } - - void setEnd(int end) { - fRangeEnd = end; - } - - int getStart() { - return fRangeStart; - } - - int getEnd() { - return fRangeEnd; - } - - boolean isValid() { - return (0 < fRangeEnd - fRangeStart) ? true : false; - } - - void reset() { - fRangeStart = Integer.MAX_VALUE; - fRangeEnd = 0; - } - - void expand(ReparseRange range) { - if (range == null || !range.isValid()) { - return; - } - int start = range.getStart(); - if (start < fRangeStart) { - fRangeStart = start; - } - int end = range.getEnd(); - if (fRangeEnd < end) { - fRangeEnd = end; - } - } - - private int fRangeStart; - private int fRangeEnd; - } - - /** - * - */ - public CSSStructuredDocumentReParser() { - super(); - } - - /** - * - */ - // public StructuredDocumentEvent - // checkForCrossStructuredDocumentRegionBoundryCases2() { - // StructuredDocumentEvent result = specialPositionUpdate(fStart, fStart + - // fLengthToReplace - 1); - // if (result == null) { - // result = checkInsideBrace(); - // } - // return result; - // } - protected StructuredDocumentEvent checkForCrossStructuredDocumentRegionSyntax() { - int checkStart = fStart; - int checkEnd = fStart + fLengthToReplace - 1; - IStructuredDocumentRegion endRegion = fStructuredDocument.getRegionAtCharacterOffset(checkEnd); - if (endRegion != null) { - checkEnd = endRegion.getEndOffset(); - } - - ReparseRange range = new ReparseRange(checkStart, checkEnd); - - range.expand(getUpdateRangeForDelimiter(range.getStart(), range.getEnd())); - range.expand(getUpdateRangeForUnknownRegion(range.getStart(), range.getEnd())); - - range.expand(getUpdateRangeForQuotes(range.getStart(), range.getEnd())); - range.expand(getUpdateRangeForComments(range.getStart(), range.getEnd())); - range.expand(getUpdateRangeForBraces(range.getStart(), range.getEnd())); - - StructuredDocumentEvent result; - - result = checkInsideBrace(range.getStart(), range.getEnd()); - - if (result == null) { - result = reparse(range.getStart(), range.getEnd()); - } - - return result; - } - - private ReparseRange getUpdateRangeForUnknownRegion(int start, int end) { - int newStart = start; - RegionIterator iterator = new RegionIterator(fStructuredDocument, start - 1); - if (iterator.hasPrev()) { - iterator.prev(); // skip myself - } - while (iterator.hasPrev()) { - ITextRegion region = iterator.prev(); - if (region != null && region.getType() == CSSRegionContexts.CSS_UNKNOWN) { - newStart = iterator.getStructuredDocumentRegion().getStartOffset(region); - } - else { - break; - } - } - - if (start != newStart) { - return new ReparseRange(newStart, end); - } - - return null; - } - - private ReparseRange getUpdateRangeForDelimiter(int start, int end) { - if (dirtyStart != null && dirtyStart.getStart() < start) { - start = dirtyStart.getStart(); - } - IStructuredDocumentRegion docRegion = fStructuredDocument.getRegionAtCharacterOffset(start); - if (docRegion == null) { - return null; - } - if (docRegion.getType() == CSSRegionContexts.CSS_DELIMITER) { - IStructuredDocumentRegion prevRegion = docRegion.getPrevious(); - if (prevRegion != null) { - return new ReparseRange(prevRegion.getStart(), end); - } - } - - return null; - } - - private ReparseRange getUpdateRangeForQuotes(int start, int end) { - ReparseRange range = new ReparseRange(); - - range.expand(getUpdateRangeForPair(start, end, "\"", "\"")); //$NON-NLS-2$//$NON-NLS-1$ - range.expand(getUpdateRangeForPair(start, end, "\'", "\'")); //$NON-NLS-2$//$NON-NLS-1$ - - return (range.isValid()) ? range : null; - } - - private ReparseRange getUpdateRangeForComments(int start, int end) { - ReparseRange range = new ReparseRange(); - - range.expand(getUpdateRangeForPair(start, end, "/*", "*/")); //$NON-NLS-2$//$NON-NLS-1$ - range.expand(getUpdateRangeForPair(start, end, "<%", "%>")); //$NON-NLS-2$//$NON-NLS-1$ - - return (range.isValid()) ? range : null; - } - - private ReparseRange getUpdateRangeForBraces(int start, int end) { - ReparseRange range = new ReparseRange(); - - range.expand(getUpdateRangeForPair(start, end, "[", "]")); //$NON-NLS-2$//$NON-NLS-1$ - range.expand(getUpdateRangeForPair(start, end, "(", ")")); //$NON-NLS-2$//$NON-NLS-1$ - range.expand(getUpdateRangeForPair(start, end, "{", "}")); //$NON-NLS-2$//$NON-NLS-1$ - - return (range.isValid()) ? range : null; - } - - private StructuredDocumentEvent checkInsideBrace(int start, int end) { - StructuredDocumentEvent result = null; - IStructuredDocumentRegion region = fStructuredDocument.getRegionAtCharacterOffset(start); - if (region == null) { - return null; - } - boolean bDeclaration = false; - String type = region.getType(); - if (CSSRegionUtil.isDeclarationType(type) || type == CSSRegionContexts.CSS_LBRACE || type == CSSRegionContexts.CSS_RBRACE) { - bDeclaration = true; - } - if (!bDeclaration) { - IStructuredDocumentRegion prevRegion = CSSUtil.findPreviousSignificantNode(region); - if (prevRegion != null) { - type = prevRegion.getType(); - if (CSSRegionUtil.isDeclarationType(type) || type == CSSRegionContexts.CSS_LBRACE) { - bDeclaration = true; - } - } - } - if (!bDeclaration) { - IStructuredDocumentRegion nextRegion = CSSUtil.findNextSignificantNode(region); - if (nextRegion != null) { - type = nextRegion.getType(); - if (CSSRegionUtil.isDeclarationType(type) || type == CSSRegionContexts.CSS_RBRACE) { - bDeclaration = true; - } - } - } - - if (bDeclaration) { - IStructuredDocumentRegion startRegion = findRuleStart(region); - if (startRegion != null) { - IStructuredDocumentRegion endRegion = fStructuredDocument.getRegionAtCharacterOffset(end); - if (endRegion != null) { - result = reparse(startRegion, endRegion); - } - } - } - return result; - } - - private IStructuredDocumentRegion findRuleStart(IStructuredDocumentRegion startRegion) { - IStructuredDocumentRegion region = startRegion; - // find '{' - while (region != null && region.getType() != CSSRegionContexts.CSS_LBRACE) { - region = region.getPrevious(); - } - // if (region == startRegion) { - // return null; - // } - // else - if (region != null) { // '{' is found - region = region.getPrevious(); - if (isLeadingDeclarationType(region.getType())) { - return region; - } - } - return null; - } - - private boolean isLeadingDeclarationType(String type) { - return (type == CSSRegionContexts.CSS_PAGE || type == CSSRegionContexts.CSS_FONT_FACE || CSSRegionUtil.isSelectorType(type)); - } - - // public StructuredDocumentEvent - // checkForCrossStructuredDocumentRegionBoundryCases() { - // return specialPositionUpdate(fStart, fStart + fLengthToReplace - 1); - // } - /** - * - */ - private ReparseRange getUpdateRangeForPair(int start, int end, String opener, String closer) { - StringBuffer deletionBuf = new StringBuffer(); - StringBuffer insertionBuf = new StringBuffer(); - int quoteLen = Math.max(opener.length(), closer.length()); - if (1 < quoteLen) { - /** - * ex) opener = "ABC", closer = "XYZ" model: ABCDEF.......UVWXYZ - * deletion: CDEF.......UVWX pre/post: AB / YZ - */ - int addStart = start - (quoteLen - 1); - if (0 <= addStart) { - String addStr = fStructuredDocument.get(addStart, quoteLen - 1); - deletionBuf.append(addStr); - insertionBuf.append(addStr); - } - deletionBuf.append(fDeletedText); - insertionBuf.append(fChanges); - if (end + (quoteLen - 1) < fStructuredDocument.getLength()) { - String addStr = fStructuredDocument.get(end + 1, quoteLen - 1); - deletionBuf.append(addStr); - insertionBuf.append(addStr); - } - } - else { - deletionBuf.append(fDeletedText); - insertionBuf.append(fChanges); - } - String deletion = deletionBuf.toString(); - String insertion = insertionBuf.toString(); - - int rangeStart = start; - int rangeEnd = end; - - if (0 <= deletion.indexOf(opener) || 0 <= deletion.indexOf(closer) || 0 <= insertion.indexOf(opener) || 0 <= insertion.indexOf(closer)) { - int s, e; - try { - if (start <= fStructuredDocument.getLength()) { - IRegion startRegion = getFindReplaceDocumentAdapter().find(start - 1, opener, false, false, false, false); - if (startRegion != null) { - s = startRegion.getOffset(); - } - else { - s = -1; - } - } - else { - s = -1; - } - if (end < fStructuredDocument.getLength() - 1) { - IRegion endRegion = getFindReplaceDocumentAdapter().find(end + 1, closer, true, false, false, false); - if (endRegion != null) { - e = endRegion.getOffset(); - } - else { - e = -1; - } - } - else { - e = -1; - } - } - catch (BadLocationException ex) { - Logger.logException(ex); - return null; - } - if (0 <= s) { - rangeStart = Math.min(rangeStart, s); - } - if (0 <= e) { - rangeEnd = Math.max(rangeEnd, e); - } - } - - if (rangeStart < start || end < rangeEnd) { - return new ReparseRange(rangeStart, rangeEnd); - } - else { - return null; - } - } - - public IStructuredTextReParser newInstance() { - return new CSSStructuredDocumentReParser(); - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/text/CSSStructuredDocumentRegionFactory.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/text/CSSStructuredDocumentRegionFactory.java deleted file mode 100644 index 6dc83a1d5c..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/text/CSSStructuredDocumentRegionFactory.java +++ /dev/null @@ -1,39 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.text; - - - -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; -import org.eclipse.wst.sse.core.internal.text.BasicStructuredDocumentRegion; - -/** - * - */ -public class CSSStructuredDocumentRegionFactory { - - public static final int CSS_GENERIC = 101109; - - /** - * - */ - public static IStructuredDocumentRegion createStructuredDocumentRegion(int type) { - IStructuredDocumentRegion instance = null; - switch (type) { - case CSS_GENERIC : - instance = new BasicStructuredDocumentRegion(); - break; - default : - break; - } - return instance; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/text/StructuredDocumentWalker.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/text/StructuredDocumentWalker.java deleted file mode 100644 index 10d8142443..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/text/StructuredDocumentWalker.java +++ /dev/null @@ -1,169 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.text; - - - -import java.util.Enumeration; - -import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentEvent; -import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentRegionsReplacedEvent; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegionList; -import org.eclipse.wst.sse.core.internal.util.Utilities; - -public class StructuredDocumentWalker { - - IStructuredDocumentRegionList fOldStructuredDocumentRegionList = null; - IStructuredDocument fStructuredDocument = null; - String fOriginalChanges = null; - int fOriginalOffset = 0; - int fOriginalLengthToReplace = 0; - int fLengthDifference = 0; - - /** - * - */ - public StructuredDocumentWalker() { - } - - /** - * - */ - public StructuredDocumentWalker(StructuredDocumentEvent event) { - initialize(event); - } - - /** - * - */ - public IStructuredDocument getStructuredDocument() { - return fStructuredDocument; - } - - /** - * Old Nodes: --[O1]--[O2]--[O3]--- : / \ Current Nodes: - * ---[C1]-----[C2]-----[C3]-----[C4]--- - * - * Input: O1 -> Output: O2 Input: O2 -> Output: O3 Input: O3 -> Output: C4 - * Input: Cn -> Output: Cn+1 - */ - public IStructuredDocumentRegion getNextNode(IStructuredDocumentRegion node) { - IStructuredDocumentRegion nextNode = null; - if (node != null) { - nextNode = node.getNext(); - if (nextNode == null) { - if (isOldNode(node)) { - // this may be the end of old flatnodes - int newStart = node.getEnd() - fLengthDifference; - nextNode = fStructuredDocument.getRegionAtCharacterOffset(newStart); - } - } - } - return nextNode; - } - - /** - * Old Nodes: --[O1]--[O2]--[O3]--- : / \ Current Nodes: - * ---[C1]-----[C2]-----[C3]-----[C4]--- - * - * Input: O* -> Output: C4 Input: Cn -> Output: Cn+1 - */ - public IStructuredDocumentRegion getNextNodeInCurrent(IStructuredDocumentRegion node) { - IStructuredDocumentRegion nextNode = null; - if (isOldNode(node)) { - IStructuredDocumentRegion oldEndNode = fOldStructuredDocumentRegionList.item(fOldStructuredDocumentRegionList.getLength() - 1); - int newStart = oldEndNode.getEnd() - fLengthDifference; - nextNode = fStructuredDocument.getRegionAtCharacterOffset(newStart); - } - else if (node != null) { - nextNode = node.getNext(); - } - return nextNode; - } - - /** - * Old Nodes: --[O1]--[O2]--[O3]--- : / \ Current Nodes: - * ---[C1]-----[C2]-----[C3]-----[C4]--- - * - * Input: O1 -> Output: C1 Input: O2 -> Output: O1 Input: O3 -> Output: O2 - * Input: Cn -> Output: Cn-1 - */ - public IStructuredDocumentRegion getPrevNode(IStructuredDocumentRegion node) { - IStructuredDocumentRegion prevNode = null; - if (node != null) { - prevNode = node.getPrevious(); - if (prevNode == null) { - if (isOldNode(node)) { - // this may be the start of old flatnodes - int newEnd = node.getStart() - 1; - prevNode = fStructuredDocument.getRegionAtCharacterOffset(newEnd); - } - } - } - return prevNode; - } - - /** - * Old Nodes: --[O1]--[O2]--[O3]--- : / \ Current Nodes: - * ---[C1]-----[C2]-----[C3]-----[C4]--- - * - * Input: O* -> Output: C1 Input: Cn -> Output: Cn-1 - */ - public IStructuredDocumentRegion getPrevNodeInCurrent(IStructuredDocumentRegion node) { - IStructuredDocumentRegion prevNode = null; - if (isOldNode(node)) { - IStructuredDocumentRegion oldStartNode = fOldStructuredDocumentRegionList.item(0); - int newEnd = oldStartNode.getStart() - 1; - prevNode = fStructuredDocument.getRegionAtCharacterOffset(newEnd); - } - else if (node != null) { - prevNode = node.getPrevious(); - } - return prevNode; - } - - /** - * - */ - public void initialize(StructuredDocumentEvent event) { - fStructuredDocument = event.getStructuredDocument(); - fOriginalChanges = event.getText(); - fOriginalOffset = event.getOffset(); - fOriginalLengthToReplace = event.getLength(); - fLengthDifference = Utilities.calculateLengthDifference(fOriginalChanges, fOriginalLengthToReplace); - - if (event instanceof StructuredDocumentRegionsReplacedEvent) { - fOldStructuredDocumentRegionList = ((StructuredDocumentRegionsReplacedEvent) event).getOldStructuredDocumentRegions(); - } - else { - fOldStructuredDocumentRegionList = null; - } - } - - /** - * - */ - public boolean isOldNode(IStructuredDocumentRegion node) { - boolean bOld = false; - if (fOldStructuredDocumentRegionList != null) { - Enumeration e = fOldStructuredDocumentRegionList.elements(); - while (e.hasMoreElements()) { - if (e.nextElement() == node) { - bOld = true; - break; - } - } - } - return bOld; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/text/StructuredTextPartitionerForCSS.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/text/StructuredTextPartitionerForCSS.java deleted file mode 100644 index 98d53c15d4..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/text/StructuredTextPartitionerForCSS.java +++ /dev/null @@ -1,37 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 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.text; - -import org.eclipse.jface.text.IDocumentPartitioner; -import org.eclipse.wst.css.core.text.ICSSPartitions; -import org.eclipse.wst.sse.core.internal.text.rules.StructuredTextPartitioner; -import org.eclipse.wst.sse.core.text.IStructuredPartitions; - -public class StructuredTextPartitionerForCSS extends StructuredTextPartitioner { - - public final static String[] legalTypes = new String[]{ICSSPartitions.STYLE, IStructuredPartitions.DEFAULT_PARTITION}; - - public StructuredTextPartitionerForCSS() { - super(); - } - - public String getDefaultPartitionType() { - return ICSSPartitions.STYLE; - } - - public String[] getLegalContentTypes() { - return legalTypes; - } - - public IDocumentPartitioner newInstance() { - return new StructuredTextPartitionerForCSS(); - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/AbstractCssTraverser.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/AbstractCssTraverser.java deleted file mode 100644 index c611b586a2..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/AbstractCssTraverser.java +++ /dev/null @@ -1,181 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.util; - -import java.util.ArrayList; -import java.util.Stack; -import java.util.Vector; - -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.ICSSStyleSheet; - - - -/** - * - */ -public abstract class AbstractCssTraverser { - - public static short TRAV_CONT = 0; - public static short TRAV_PRUNE = 1; - public static short TRAV_STOP = 2; - protected java.util.Stack travStack; - private boolean fTraverseImported = false; - private boolean fTraverseImportFirst = false; - private java.util.Vector traversedSheets; - - /** - * CssPropCMNode constructor comment. - */ - public AbstractCssTraverser() { - super(); - } - - /** - * @param model - * org.eclipse.wst.css.core.model.interfaces.ICSSModel - */ - public final void apply(ICSSModel model) { - apply(model.getDocument()); - } - - public final void apply(ICSSNode root) { - travStack = new Stack(); - if (fTraverseImported) { - traversedSheets = new Vector(); - if (root != null && root.getOwnerDocument() != null && root.getOwnerDocument().getNodeType() == ICSSNode.STYLESHEET_NODE) { - traversedSheets.add(root.getOwnerDocument()); - } - } - - // first call begin() - begin(root); - - // traverse - traverse(root); - - // last call end() - end(root); - } - - - protected void begin(ICSSNode node) { - } - - - protected void end(ICSSNode node) { - } - - /** - * @return boolean - */ - public final boolean isTraverseImported() { - return fTraverseImported; - } - - - protected short postNode(ICSSNode node) { - return (short) 0; - } - - - protected short preNode(ICSSNode node) { - return (short) 0; - } - - /** - * @param newTraverseImported - * boolean - */ - public final void setTraverseImported(boolean newTraverseImported) { - fTraverseImported = newTraverseImported; - } - - /** - * @param newTraverseImportFirst - * boolean - */ - public final void setTraverseImportFirst(boolean newTraverseImportFirst) { - fTraverseImportFirst = newTraverseImportFirst; - } - - - private final short traverse(ICSSNode node) { - if (node == null) - return TRAV_CONT; - - travStack.push(node); - - // pre-action - short ret = preNode(node); - - if (ret == TRAV_CONT) { - if (fTraverseImported && (node.getNodeType() == ICSSNode.IMPORTRULE_NODE)) { - ICSSImportRule rule = (ICSSImportRule) node; - // traverse external style-sheet - ICSSStyleSheet sheet = (ICSSStyleSheet) rule.getStyleSheet(); - if (sheet != null && !traversedSheets.contains(sheet)) { // prevent - // loop - traversedSheets.add(sheet); - short retExt = traverse(sheet); - if (retExt == TRAV_STOP) { - travStack.pop(); - return retExt; - } - } - } - - // collect children - ArrayList children = new ArrayList(); - ICSSNode child = node.getFirstChild(); - if (fTraverseImportFirst) { - ArrayList others = new ArrayList(); - - while (child != null) { - if (child.getNodeType() == ICSSNode.IMPORTRULE_NODE) - children.add(child); - else - others.add(child); - child = child.getNextSibling(); - } - children.addAll(others); - } - else { - while (child != null) { - children.add(child); - child = child.getNextSibling(); - } - } - - // traverse children - for (int i = 0; i < children.size(); i++) { - child = (ICSSNode) children.get(i); - short retChild = traverse(child); - if (retChild == TRAV_STOP) { - travStack.pop(); - return retChild; - } - } - } - else if (ret == TRAV_STOP) { - travStack.pop(); - return ret; - } - - // post-action - ret = postNode(node); - - travStack.pop(); - return (ret == TRAV_PRUNE) ? TRAV_CONT : ret; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/CSSClassTraverser.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/CSSClassTraverser.java deleted file mode 100644 index 87a353d8b3..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/CSSClassTraverser.java +++ /dev/null @@ -1,114 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.util; - - - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.Iterator; - -import org.eclipse.wst.css.core.internal.provisional.document.ICSSImportRule; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSMediaRule; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSSelector; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSSelectorItem; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSSelectorList; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSSimpleSelector; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleRule; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleSheet; - - -/** - * - */ -public class CSSClassTraverser extends AbstractCssTraverser { - - ArrayList fClassNames; - - /** - * - */ - public CSSClassTraverser() { - super(); - } - - /** - * - */ - private void addClassNames(ICSSStyleRule rule) { - ICSSSelectorList selectorList = rule.getSelectors(); - Iterator iSelector = selectorList.getIterator(); - while (iSelector.hasNext()) { - ICSSSelector selector = (ICSSSelector) iSelector.next(); - Iterator iItem = selector.getIterator(); - while (iItem.hasNext()) { - ICSSSelectorItem item = (ICSSSelectorItem) iItem.next(); - if (item.getItemType() == ICSSSelectorItem.SIMPLE) { - ICSSSimpleSelector sel = (ICSSSimpleSelector) item; - int nClasses = sel.getNumOfClasses(); - for (int iClass = 0; iClass < nClasses; iClass++) { - String className = sel.getClass(iClass); - if (!fClassNames.contains(className)) - fClassNames.add(className); - } - } - } - } - } - - /** - * - */ - protected void begin(ICSSNode node) { - if (fClassNames == null) - fClassNames = new ArrayList(); - } - - /** - * - */ - protected void end(ICSSNode node) { - } - - /** - * - */ - public Collection getClassNames() { - return (fClassNames != null) ? fClassNames : Collections.EMPTY_LIST; - } - - /** - * - */ - protected short postNode(ICSSNode node) { - return TRAV_CONT; - } - - /** - * - */ - protected short preNode(ICSSNode node) { - short ret; - if (node instanceof ICSSStyleRule) { - addClassNames((ICSSStyleRule) node); - ret = TRAV_PRUNE; - } - else if (node instanceof ICSSStyleSheet || node instanceof ICSSMediaRule || node instanceof ICSSImportRule) { - ret = TRAV_CONT; - } - else { - ret = TRAV_PRUNE; - } - return ret; - } -} 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 deleted file mode 100644 index 377dcd38cc..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/CSSLinkConverter.java +++ /dev/null @@ -1,188 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.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.sse.core.internal.provisional.IStructuredModel; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; -import org.w3c.dom.css.CSSPrimitiveValue; -import org.w3c.dom.css.CSSValue; - - -/** - * - */ -public class CSSLinkConverter extends org.eclipse.wst.css.core.internal.util.AbstractCssTraverser { - private static final String URL_BEGIN = "url("; //$NON-NLS-1$ - private static final String URL_END = ")"; //$NON-NLS-1$ - private static final String EMPTY = ""; //$NON-NLS-1$ - private static final String D_QUOTE = "\""; //$NON-NLS-1$ - private static final String S_QUOTE = "\'"; //$NON-NLS-1$ - - IStructuredModel baseModel; - - /** - * - */ - public CSSLinkConverter(IStructuredModel model) { - super(); - baseModel = model; - if (model instanceof ICSSModel && ((ICSSModel) model).getStyleSheetType() != ICSSModel.EXTERNAL) { - IDOMNode node = (IDOMNode) ((ICSSModel) model).getOwnerDOMNode(); - baseModel = node.getModel(); - } - } - - /** - * - */ - public static String addFunc(String value) { - if (!value.trim().toLowerCase().startsWith(URL_BEGIN)) { - // pa_TODO css pref - 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 (preferences.getInt(CSSCorePreferenceNames.CASE_PROPERTY_VALUE) == CSSCorePreferenceNames.UPPER) - str = str.toUpperCase(); - StringBuffer buf = new StringBuffer(str); - buf.append(quote); - buf.append(value); - buf.append(quote); - buf.append(URL_END); - return buf.toString(); - } - return value; - } - - - - /** - * - */ - protected void begin(ICSSNode node) { - if (baseModel == null) { - baseModel = node.getOwnerDocument().getModel(); - if (baseModel instanceof ICSSModel && ((ICSSModel) baseModel).getStyleSheetType() != ICSSModel.EXTERNAL) { - IDOMNode xmlNode = (IDOMNode) ((ICSSModel) baseModel).getOwnerDOMNode(); - baseModel = xmlNode.getModel(); - } - } - } - - /** - * - */ - private static boolean isUrl(String source) { - if (source == null) - return false; - source = source.trim().toLowerCase(); - return source.startsWith(URL_BEGIN); - } - - /** - * - */ - protected short preNode(ICSSNode node) { - if (node.getNodeType() == ICSSNode.PRIMITIVEVALUE_NODE) { - toAbsolute((CSSValue) node); - } else if (node.getNodeType() == ICSSNode.IMPORTRULE_NODE) { - ICSSImportRule iRule = (ICSSImportRule) node; - iRule.setHref(toAbsolute(addFunc(iRule.getHref()))); - } - return TRAV_CONT; - } - - /** - * - * @return java.lang.String - * @param value - * java.lang.String - */ - public static String removeFunc(String value) { - if (value == null) - return EMPTY; - String field = value.trim(); - // first : tear "url(....)" - if (field.toLowerCase().startsWith(URL_BEGIN)) { - int url = field.toLowerCase().indexOf(URL_BEGIN); - int endParenthesis = field.lastIndexOf(URL_END); - if (endParenthesis > url) { - field = field.substring(url + 4, endParenthesis); - } else - field = field.substring(url + 4); - } - return field.trim(); - } - - /** - * - */ - public static String stripFunc(String value) { - if (value == null) - return EMPTY; - // first : tear "url(....)" - String field = removeFunc(value); - // second : tear quotations - if (field.toLowerCase().startsWith(D_QUOTE)) { - int quote = field.indexOf(D_QUOTE); - int end = field.lastIndexOf(D_QUOTE); - if (end > quote) { - field = field.substring(quote + 1, end); - } else - field = field.substring(quote + 1); - } 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 - field = field.substring(quote + 1); - } - - return field.trim(); - } - - /** - * - */ - public String toAbsolute(String source) { - if (isUrl(source)) { - String url = CSSPathService.getAbsoluteURL(baseModel, stripFunc(source)); - return (url != null) ? addFunc(url) : (URL_BEGIN + URL_END); - } - return source; - } - - /** - * - */ - public boolean toAbsolute(CSSValue node) { - if (node instanceof ICSSPrimitiveValue) { - ICSSPrimitiveValue value = (ICSSPrimitiveValue) node; - if (value.getPrimitiveType() == CSSPrimitiveValue.CSS_URI) { - value.setValue(stripFunc(toAbsolute(URL_BEGIN + value.getStringValue() + URL_END))); - return true; - } - } - return false; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/CSSPathService.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/CSSPathService.java deleted file mode 100644 index 8532819e04..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/CSSPathService.java +++ /dev/null @@ -1,77 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.util; - - - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Path; -import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; - -/** - * - */ -public class CSSPathService { - - // Constants - private static final String FILEURLSCHEME = "file";//$NON-NLS-1$ - private static final String URLCOLON = ":"; //$NON-NLS-1$ - private static final String FILEURLPREFIX = FILEURLSCHEME + URLCOLON + "//";//$NON-NLS-1$ - private static final String URLSEPARATOR = "/"; //$NON-NLS-1$ - - /** - * @return java.lang.String - */ - public static String getAbsoluteURL(IStructuredModel baseModel, String ref) { - String absLink = URLModelProviderCSS.resolveURI(baseModel, ref, true); - String url = absLink; - if (absLink != null) { // if it has not scheme, we must add "file" - // scheme - try { - new java.net.URL(absLink); - } - catch (java.net.MalformedURLException e) { - IPath path = new Path(absLink); - if (path != null) - url = toURL(path); - } - } - return url; - } - - /** - * - * @return org.eclipse.core.resources.IFile - * @param location - * java.lang.String - */ - public static IFile location2File(String location) { - Path path = new Path(location); - IFile file = ResourcesPlugin.getWorkspace().getRoot().getFileForLocation(path); - if (file == null && path.segmentCount() > 1) - file = ResourcesPlugin.getWorkspace().getRoot().getFile(path); - return file; - } - - /** - * Gets a file URL for the path. - */ - private static String toURL(IPath path) { - path = new Path(path.toFile().getAbsolutePath()); - if (path.isUNC() == true) { - // it's UNC. return file://host/foo/bar/baz.html - return FILEURLSCHEME + URLCOLON + path.toString(); - } - return FILEURLPREFIX + URLSEPARATOR + path.toString(); - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/CSSSelectorListFactory.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/CSSSelectorListFactory.java deleted file mode 100644 index 82c7b81431..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/CSSSelectorListFactory.java +++ /dev/null @@ -1,35 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.util; - -import org.eclipse.wst.css.core.internal.document.CSSSelectorListImpl; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSSelectorList; - - -public class CSSSelectorListFactory { - static synchronized public CSSSelectorListFactory getInstance() { - if (fInstance == null) { - fInstance = new CSSSelectorListFactory(); - } - return fInstance; - } - - public ICSSSelectorList createSelectorList(String selectorString) { - return new CSSSelectorListImpl(selectorString); - } - - - private CSSSelectorListFactory() { - super(); - } - - private static CSSSelectorListFactory fInstance; -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/CSSStyleDeclarationFactory.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/CSSStyleDeclarationFactory.java deleted file mode 100644 index ab98a09c37..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/CSSStyleDeclarationFactory.java +++ /dev/null @@ -1,61 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.util; - - - -import org.eclipse.wst.css.core.internal.document.CSSStyleDeclarationFactoryContext; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleDeclaration; - - -/** - * - */ -public class CSSStyleDeclarationFactory extends CSSStyleDeclarationFactoryContext { - - private static CSSStyleDeclarationFactory fInstance = null; - - /** - * CSSStyleDeclarationFactory constructor comment. - */ - private CSSStyleDeclarationFactory() { - super(); - } - - /** - * @return org.eclipse.wst.css.core.model.interfaces.ICSSStyleDeclaration - * @param decl - * org.eclipse.wst.css.core.model.interfaces.ICSSStyleDeclaration - */ - public ICSSStyleDeclaration createStyleDeclaration(ICSSStyleDeclaration decl) { - if (decl == null) { - return null; - } - ICSSStyleDeclaration newNode = createStyleDeclaration(); - - if (newNode == null) { - return null; - } - fOwnerDocument = newNode; - cloneChildNodes(decl, newNode); - return newNode; - } - - /** - * - */ - public synchronized static CSSStyleDeclarationFactory getInstance() { - if (fInstance == null) { - fInstance = new CSSStyleDeclarationFactory(); - } - return fInstance; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/CSSUtil.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/CSSUtil.java deleted file mode 100644 index 237c1b9c74..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/CSSUtil.java +++ /dev/null @@ -1,335 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.util; - - - -import java.util.Enumeration; -import java.util.Iterator; - -import org.eclipse.wst.css.core.internal.Logger; -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.parserz.CSSTextToken; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegionList; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList; - - -public class CSSUtil { - - /** - * - */ - public static void debugOut(String str) { - Logger.log(Logger.WARNING, "css warning: " + str); //$NON-NLS-1$ - } - - /** - * - */ - // public static Vector extractMediaContents(Vector regions) { - // Vector media = new Vector(); - // if (regions == null) { return media; } - // - // boolean bReady = true; - // for (Iterator i = regions.iterator(); i.hasNext(); ) { - // ITextRegion region = (ITextRegion)i.next(); - // if (region == null) { continue; } - // String type = region.getType(); - // if (bReady) { - // if (type == IDENT) { - // media.addElement(region.getText()); - // bReady = false; - // } - // } else { - // if (type == COMMA) { - // bReady = true; - // } - // } - // } - // - // return media; - // } - /** - * - */ - public static String extractStringContents(String text) { - return stripQuotes(text); - } - - /** - * - */ - public static String extractUriContents(String text) { - String contents = text.trim(); - if (contents.toLowerCase().startsWith("url(") && //$NON-NLS-1$ - contents.toLowerCase().endsWith(")")) {//$NON-NLS-1$ - // strip "url(", ")" - contents = contents.substring(4, contents.length() - 1); - } - contents = stripQuotes(contents); - - return contents; - } - - /** - * - */ - public static IStructuredDocumentRegion findNextSignificantNode(IStructuredDocumentRegion startNode) { - if (startNode == null) { - return null; - } - IStructuredDocumentRegion node = startNode.getNext(); - while (node != null) { - String type = getStructuredDocumentRegionType(node); - if (type != CSSRegionContexts.CSS_S && type != CSSRegionContexts.CSS_COMMENT && type != CSSRegionContexts.CSS_CDO && type != CSSRegionContexts.CSS_CDC) { - return node; - } - node = node.getNext(); - } - return null; - } - - /** - * - */ - public static IStructuredDocumentRegion findNodeBackward(IStructuredDocumentRegion startNode, IStructuredDocumentRegion endNode, String type) { - IStructuredDocumentRegion node; - for (node = startNode; node != null; node = node.getPrevious()) { - if (node.getStartOffset() < endNode.getStartOffset()) { - node = null; - break; - } - else if (getStructuredDocumentRegionType(node) == type) { - break; - } - } - return node; - } - - /** - * - */ - public static IStructuredDocumentRegion findNodeForward(IStructuredDocumentRegion startNode, IStructuredDocumentRegion endNode, String type) { - IStructuredDocumentRegion node; - for (node = startNode; node != null; node = node.getNext()) { - if (endNode.getStartOffset() < node.getStartOffset()) { - node = null; - break; - } - else if (getStructuredDocumentRegionType(node) == type) { - break; - } - } - return node; - } - - /** - * - */ - public static IStructuredDocumentRegion findPreviousSignificantNode(IStructuredDocumentRegion startNode) { - if (startNode == null) { - return null; - } - IStructuredDocumentRegion node = startNode.getPrevious(); - while (node != null) { - String type = getStructuredDocumentRegionType(node); - if (type != CSSRegionContexts.CSS_S && type != CSSRegionContexts.CSS_COMMENT && type != CSSRegionContexts.CSS_CDO && type != CSSRegionContexts.CSS_CDC) { - return node; - } - node = node.getPrevious(); - } - return null; - } - - /** - * - */ - public static String getClassString(Object object) { - if (object == null) { - return "null"; //$NON-NLS-1$ - } - else { - String name = object.getClass().toString(); - int lastPeriod = name.lastIndexOf('.'); - return name.substring(lastPeriod + 1); - } - } - - /** - * - */ - public static String getStructuredDocumentRegionType(IStructuredDocumentRegion flatNode) { - if (flatNode == null) { - return CSSRegionContexts.CSS_UNDEFINED; - } - ITextRegionList regions = flatNode.getRegions(); - if (regions == null || regions.size() == 0) { - return CSSRegionContexts.CSS_UNDEFINED; - } - ITextRegion region = regions.get(0); - return region.getType(); - } - - /** - * - */ - public static int getLengthDifference(IStructuredDocumentRegionList newNodes, IStructuredDocumentRegionList oldNodes) { - int newLen = getTextLength(newNodes); - int oldLen = getTextLength(oldNodes); - return newLen - oldLen; - } - - /** - * - */ - public static String getRegionText(IStructuredDocumentRegion flatNode, ITextRegionList regions) { - StringBuffer buf = new StringBuffer(); - if (regions != null) { - for (Iterator i = regions.iterator(); i.hasNext();) { - ITextRegion region = (ITextRegion) i.next(); - if (region == null) { - continue; - } - buf.append(flatNode.getText(region)); - } - } - - return buf.toString(); - } - - /** - * - */ - public static int getTextLength(IStructuredDocumentRegionList nodes) { - int length = 0; - - if (nodes != null) { - for (Enumeration e = nodes.elements(); e.hasMoreElements();) { - IStructuredDocumentRegion flatNode = (IStructuredDocumentRegion) e.nextElement(); - if (flatNode != null) { - length += flatNode.getText().length(); - } - } - } - - return length; - } - - /** - * - * @param token - * @return - */ - public static boolean isLength(CSSTextToken token) { - if (token == null) - return false; - if (token.kind == CSSRegionContexts.CSS_DECLARATION_VALUE_DIMENSION) - return true; - if (token.kind == CSSRegionContexts.CSS_DECLARATION_VALUE_NUMBER) { - double number = Double.parseDouble(token.image); - if (number == 0.0) - return true; - } - return false; - } - - /** - * - */ - public static boolean isSelectorText(IStructuredDocumentRegion region) { - String type = getStructuredDocumentRegionType(region); - if (CSSRegionUtil.isSelectorBegginingType(type)) { - return true; - } - else if (type == CSSRegionContexts.CSS_UNKNOWN) { - // String text = flatNode.getText(); - // if (text != null && text.indexOf('.') == 0) { - return true; - // } - } - - return false; - } - - /** - * - */ - public static String stripQuotes(String text) { - if (text == null) - return null; - String contents = text.trim(); - if (2 <= contents.length()) { - char first = contents.charAt(0); - char last = contents.charAt(contents.length() - 1); - if ((first == '\"' && last == '\"') || (first == '\'' && last == '\'')) { - contents = contents.substring(1, contents.length() - 1); - } - } - return contents; - } - - public static String detectQuote(String source, String defaultQuote) { - if (source == null) - return defaultQuote; - final String D_QUOTE = "\""; //$NON-NLS-1$ - final String S_QUOTE = "\'"; //$NON-NLS-1$ - - int dIndex = source.indexOf(D_QUOTE); - int sIndex = source.indexOf(S_QUOTE); - if (dIndex < 0 && sIndex < 0) { - return defaultQuote; - } - else if (dIndex < 0) { - return D_QUOTE; - } - else if (sIndex < 0) { - return S_QUOTE; - } - else if (dIndex < sIndex) { - return S_QUOTE; - } - else { - return D_QUOTE; - } - } - - /** - * - */ - public static void stripSurroundingSpace(ITextRegionList regions) { - if (regions == null) { - return; - } - while (!regions.isEmpty()) { - ITextRegion region = regions.get(0); - String type = region.getType(); - if (type == CSSRegionContexts.CSS_S || type == CSSRegionContexts.CSS_COMMENT) { - regions.remove(0); - } - else { - break; - } - } - while (!regions.isEmpty()) { - ITextRegion region = regions.get(regions.size() - 1); - String type = region.getType(); - if (type == CSSRegionContexts.CSS_S || type == CSSRegionContexts.CSS_COMMENT) { - regions.remove(region); - } - else { - break; - } - } - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/ImportRuleCollector.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/ImportRuleCollector.java deleted file mode 100644 index a2c915c515..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/ImportRuleCollector.java +++ /dev/null @@ -1,71 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.util; - - - -import java.util.Vector; - -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.document.ICSSStyleSheet; - - -/** - * - */ -public class ImportRuleCollector extends org.eclipse.wst.css.core.internal.util.AbstractCssTraverser { - - protected java.util.Vector rules = new Vector(); - protected ICSSStyleSheet target = null; - - /** - * - */ - public ImportRuleCollector() { - super(); - setTraverseImported(false); - } - - /** - * - */ - public ImportRuleCollector(ICSSStyleSheet sheet) { - super(); - target = sheet; - } - - /** - * - */ - public java.util.Vector getRules() { - return rules; - } - - /** - * - */ - protected short preNode(ICSSNode node) { - if (node.getNodeType() == ICSSNode.MEDIARULE_NODE || node.getNodeType() == ICSSNode.STYLESHEET_NODE) { - return TRAV_CONT; - } - if (node.getNodeType() == ICSSNode.IMPORTRULE_NODE) { - if (target != null) { - ICSSImportRule imp = (ICSSImportRule) node; - if (imp.getStyleSheet() != target) - return TRAV_PRUNE; - } - if (!rules.contains(node)) - rules.add(node); - } - return TRAV_PRUNE; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/ImportedCollector.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/ImportedCollector.java deleted file mode 100644 index 1f2a7aa7da..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/ImportedCollector.java +++ /dev/null @@ -1,61 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.util; - - - -import java.util.List; -import java.util.Vector; - -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; - - -/** - * - */ -public class ImportedCollector extends org.eclipse.wst.css.core.internal.util.AbstractCssTraverser { - - protected java.util.Vector externals = new Vector(); - - /** - * - */ - public ImportedCollector() { - super(); - setTraverseImported(true); - } - - /** - * - */ - public List getExternals() { - return externals; - } - - /** - * - */ - protected short preNode(ICSSNode node) { - if (node.getNodeType() == ICSSNode.MEDIARULE_NODE) { - return TRAV_CONT; - } - if (node.getNodeType() == ICSSNode.STYLESHEET_NODE) { - if (!externals.contains(node)) { - externals.add(node); - } - return TRAV_CONT; - } - if (node.getNodeType() == ICSSNode.IMPORTRULE_NODE) { - return TRAV_CONT; - } - return TRAV_PRUNE; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/RegionIterator.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/RegionIterator.java deleted file mode 100644 index 44d0022999..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/RegionIterator.java +++ /dev/null @@ -1,140 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.util; - - - -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; -import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion; -import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion; - -/** - * - */ -public class RegionIterator { - - private IStructuredDocumentRegion documentRegion = null; - private IStructuredDocumentRegion curDocumentRegion = null; - private int current = -1; - - /** - * - */ - public RegionIterator(IStructuredDocument structuredDocument, int index) { - super(); - - reset(structuredDocument, index); - } - - /** - * - */ - public RegionIterator(IStructuredDocumentRegion flatNode, ITextRegion region) { - super(); - reset(flatNode, region); - } - - /** - * - */ - public IStructuredDocumentRegion getStructuredDocumentRegion() { - return curDocumentRegion; - } - - /** - * - */ - public boolean hasNext() { - if (documentRegion == null) - return false; - if (current < 0) - return false; - if (current < documentRegion.getRegions().size()) - return true; - return false; - } - - /** - * - */ - public boolean hasPrev() { - // the same as hasNext() - return hasNext(); - } - - /** - * - */ - public ITextRegion next() { - if (documentRegion == null) - return null; - if (current < 0 || documentRegion.getRegions() == null || documentRegion.getRegions().size() <= current) - return null; - - ITextRegion region = documentRegion.getRegions().get(current); - curDocumentRegion = documentRegion; - - if (current >= documentRegion.getRegions().size() - 1) { - documentRegion = documentRegion.getNext(); - current = -1; - } - current++; - - return region; - } - - /** - * - */ - public ITextRegion prev() { - if (documentRegion == null) - return null; - if (current < 0 || documentRegion.getRegions() == null || documentRegion.getRegions().size() <= current) - return null; - - ITextRegion region = documentRegion.getRegions().get(current); - curDocumentRegion = documentRegion; - - if (current == 0) { - documentRegion = documentRegion.getPrevious(); - if (documentRegion != null) - current = documentRegion.getRegions().size(); - else - current = 0; - } - current--; - - return region; - } - - /** - * - */ - public void reset(IStructuredDocument structuredDocument, int index) { - documentRegion = structuredDocument.getRegionAtCharacterOffset(index); - curDocumentRegion = documentRegion; - if (documentRegion != null) { - ITextRegion region = documentRegion.getRegionAtCharacterOffset(index); - current = documentRegion.getRegions().indexOf(region); - } - } - - /** - * - */ - public void reset(IStructuredDocumentRegion flatNode, ITextRegion region) { - if (region != null && flatNode != null) { - this.documentRegion = flatNode; - curDocumentRegion = flatNode; - current = flatNode.getRegions().indexOf(region); - } - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/SelectionCollector.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/SelectionCollector.java deleted file mode 100644 index 2e44ca8863..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/SelectionCollector.java +++ /dev/null @@ -1,76 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.util; - - - -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion; - - -/** - */ -public class SelectionCollector extends org.eclipse.wst.css.core.internal.util.AbstractCssTraverser { - - int start, end; - List selectedNodes; - - /** - * SelectionCollector constructor comment. - */ - public SelectionCollector() { - super(); - } - - /** - */ - protected void begin(ICSSNode node) { - selectedNodes = new ArrayList(); - } - - /** - */ - public List getSelectedNodes() { - if (selectedNodes == null) - return new ArrayList(); - else - return new ArrayList(selectedNodes); - } - - /** - */ - protected short preNode(ICSSNode node) { - IndexedRegion iNode = (IndexedRegion) node; - if (iNode.getStartOffset() <= end && start < iNode.getEndOffset()) { - if (node.getNodeType() != ICSSNode.STYLESHEET_NODE) { - IndexedRegion iFirstChild = (IndexedRegion) node.getFirstChild(); - IndexedRegion iLastChild = (IndexedRegion) node.getLastChild(); - if (iFirstChild == null || start < iFirstChild.getStartOffset() || iLastChild.getEndOffset() <= end) - selectedNodes.add(node); - } - return TRAV_CONT; - } - if (iNode.getStartOffset() > end) - return TRAV_STOP; - else - return TRAV_PRUNE; - } - - /** - */ - public void setRegion(int newStart, int newEnd) { - start = newStart; - end = newEnd; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/SelectorValidator.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/SelectorValidator.java deleted file mode 100644 index 0d52e16dc9..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/SelectorValidator.java +++ /dev/null @@ -1,97 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.util; - - - -import org.eclipse.wst.css.core.internal.document.CSSSelectorListImpl; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSSelector; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSSelectorItem; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSSelectorList; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSSimpleSelector; - - -public class SelectorValidator { - - /** - * Constructor for SelectorValidator. - */ - public SelectorValidator(String text) { - super(); - fText = text; - } - - /** - * Returns true if the text consists of one CLASS selector. syntax check - * is a little loose (.123 is passed) - * - * ".class" -> true ".123" -> true ".class , .class2" -> false - * ".class.class2" -> false ".123{}" -> false - */ - public boolean isClass() { - ICSSSimpleSelector selector = getOnlyOneSimpleSelector(); - if (selector != null) { - return (selector.getName().length() == 0 && selector.getNumOfAttributes() == 0 && selector.getNumOfClasses() == 1 && selector.getNumOfIDs() == 0 && selector.getNumOfPseudoNames() == 0); - } - return false; - } - - /** - * Returns true if the text consists of one ID selector. - * - * "#ID" -> true "H1#myID" -> false "#abc{}" -> false - */ - public boolean isID() { - ICSSSimpleSelector selector = getOnlyOneSimpleSelector(); - if (selector != null) { - return (selector.getName().length() == 0 && selector.getNumOfAttributes() == 0 && selector.getNumOfClasses() == 0 && selector.getNumOfIDs() == 1 && selector.getNumOfPseudoNames() == 0); - } - return false; - } - - /** - * overall check - * - * "P#hoge98 + *:hover > A:link, A.external:visited" -> true "H1 H2 {}" -> - * false - */ - public boolean isValid() { - parse(); - return (fSelectorList != null && fSelectorList.getErrorCount() == 0); - } - - private ICSSSimpleSelector getOnlyOneSimpleSelector() { - parse(); - if (fSelectorList != null && fSelectorList.getLength() == 1) { - ICSSSelector selector = fSelectorList.getSelector(0); - int nItem = selector.getLength(); - if (nItem == 1) { - ICSSSelectorItem item = selector.getItem(0); - if (item instanceof ICSSSimpleSelector) { - return (ICSSSimpleSelector) item; - } - } - } - return null; - } - - private void parse() { - if (fSelectorList == null) { - if (fText != null) { - fSelectorList = new CSSSelectorListImpl(fText); - } - } - } - - - private String fText = null; - private ICSSSelectorList fSelectorList = null; -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/SelectorsCollector.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/SelectorsCollector.java deleted file mode 100644 index 0593ff8d52..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/SelectorsCollector.java +++ /dev/null @@ -1,101 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.util; - - - -import java.util.Iterator; -import java.util.Vector; - -import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSSelector; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSSelectorList; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleRule; - - -/** - * - */ -public class SelectorsCollector extends AbstractCssTraverser { - - protected Vector selectors = new Vector(); - protected Vector selectorsToAvoid = null; - - /** - * - */ - public SelectorsCollector() { - super(); - setTraverseImported(false); - } - - /** - * - */ - public void addSelectorToAvoid(ICSSSelector selToAvoid) { - if (selToAvoid == null) - return; - if (selectorsToAvoid == null) - selectorsToAvoid = new Vector(); - - if (!selectorsToAvoid.contains(selToAvoid)) - selectorsToAvoid.add(selToAvoid); - } - - /** - * - */ - public void addSelectorToAvoid(ICSSStyleRule rule) { - ICSSSelectorList list = rule.getSelectors(); - Iterator it = list.getIterator(); - while (it.hasNext()) { - ICSSSelector sel = (ICSSSelector) it.next(); - addSelectorToAvoid(sel); - } - } - - /** - * - */ - public java.util.List getSelectors() { - return selectors; - } - - /** - * - */ - protected short preNode(ICSSNode node) { - if (node.getNodeType() == ICSSNode.STYLERULE_NODE) { - ICSSStyleRule rule = (ICSSStyleRule) node; - ICSSSelectorList list = rule.getSelectors(); - Iterator it = list.getIterator(); - while (it.hasNext()) { - Object obj = it.next(); - if (selectorsToAvoid != null && selectorsToAvoid.contains(obj)) - continue; - if (!selectors.contains(obj)) - selectors.add(obj); - } - return TRAV_PRUNE; - } - else if (node.getNodeType() == ICSSNode.STYLESHEET_NODE) { - return TRAV_CONT; - } - return TRAV_PRUNE; - } - - /** - * - */ - public void setSelectorsToAvoid(java.util.Vector newSelectorsToAvoid) { - selectorsToAvoid = newSelectorsToAvoid; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/URLHelper.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/URLHelper.java deleted file mode 100644 index 7d5e106da2..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/URLHelper.java +++ /dev/null @@ -1,210 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.util; - - - -import java.io.File; -import java.net.MalformedURLException; -import java.net.URL; - -import org.eclipse.wst.sse.core.internal.util.PathHelper; - -/** - * Hyperlink manager. Proved useful services like link conversion An utility - * class to help other parsre modules to convert links - */ -public class URLHelper { - - private static final String FILE_PROTOCOL_SEARCH_SIG = "file:/";//$NON-NLS-1$ - private static final String FILE_PROTOCOL_SIG = "file:///";//$NON-NLS-1$ - private static String RELATIVE_PATH_SIG = "..";//$NON-NLS-1$ - private static final String FORWARD_SLASH = "/";//$NON-NLS-1$ - private URL fBaseUrl = null; // base url. assumed to a absulute url - private String fBaseUrlString = null; - private URL fDocRoot = null; - private String fDocRootString = null; - - public URLHelper(String baseUrl) { - initialize(baseUrl, null); - } - - public URLHelper(String baseUrl, String docRoot) { - initialize(baseUrl, docRoot); - } - - /** - * Special adujust for file url - */ - public String adjustFileProtocolUrl(String url) { - if (url.startsWith(FILE_PROTOCOL_SEARCH_SIG)) { - url = FILE_PROTOCOL_SIG + url.substring(FILE_PROTOCOL_SEARCH_SIG.length()); - } - return url; - } - - private String convert(String url, URL baseUrl, String urlString) { - String absUrl = url; - if (baseUrl != null) { - try { - // do special thing file protocol - if (baseUrl.getProtocol().equalsIgnoreCase("file")) {//$NON-NLS-1$ - // remove the fist - if (url.startsWith("/"))//$NON-NLS-1$ - url = url.substring(1); - // empty string causes malformed exception - String tempUrl = url; - if ("".equals(url))//$NON-NLS-1$ - tempUrl = " ";//$NON-NLS-1$ - URL newUrl = new URL(baseUrl, tempUrl); - // do extra math for file protocol to support ie based - absUrl = adjustFileProtocolUrl(newUrl.toString()); - } - else { - URL newUrl = new URL(fBaseUrl, url); - absUrl = newUrl.toString(); - } - } - catch (MalformedURLException me) { - } - // convert everything to forward slash - absUrl = PathHelper.switchToForwardSlashes(absUrl); - } - else { - // the given may be based on file - if (urlString != null) { - // swich the url to proper direction - url = PathHelper.removeLeadingSeparator(url); - File fle = new File(urlString, url); - absUrl = fle.getPath(); - - } - // convert everything to forward slash - absUrl = PathHelper.switchToForwardSlashes(absUrl); - - // if the path ends with ".." we need to add a terminating slash - // or - // else the link will not be resolved correctly. (it will look - // like - // /url/path/to/somewhere/.. instead of /url/path/to/ - if (absUrl.endsWith(FORWARD_SLASH + RELATIVE_PATH_SIG)) { - absUrl += FORWARD_SLASH; - } - } - - // resolve relative path to absolute - absUrl = PathHelper.adjustPath(absUrl); - return absUrl; - } - - private void initialize(String baseUrl, String docRoot) { - // - // Find out whether baes url is a url or file name - // - try { - String temp = PathHelper.appendTrailingURLSlash(baseUrl); - fBaseUrl = new URL(temp); - } - catch (MalformedURLException mue) { - } - if (fBaseUrl == null) { - // it is a file based url - fBaseUrlString = baseUrl; - } - - // do the same for doc root - if (docRoot != null) { - try { - String temp = PathHelper.appendTrailingURLSlash(docRoot); - fDocRoot = new URL(temp); - - } - catch (MalformedURLException mue) { - } - if (fDocRoot == null) { - // it is a file based url - fDocRootString = docRoot; - } - } - } - - /** - * Convert the given url to a abolute url using the base url Input url can - * be of any othe following format Absolute urls -------------- . - * http://www.foo.com/ . http://www.foo.com . http://www.foo.com/folder . - * http://www.foo.com/folder/ . http://www.foo.com/index.html . - * http://www.foo.com/folder/index.html . - * http://www.foo.com/folder/../index.html Url relative on document root - * ------------------------- . / . /folder . /index.html . - * /folder/index.html . /folder/../index.html - * - * Self relative ------------------------- . index.html . ./index.html . - * ../index.html . folder/index.html . folder/../index.html - * - * file based url adds another dimension since it doesn't have a document - * root So uses fDocRoot if provided - */ - public String toAbsolute(String url) { - String absUrl = url; - - URL newUrl = null; - // try to see it is a absolute url - try { - newUrl = new URL(url); - } - catch (MalformedURLException me) { - } - // if document root is provided - // do special case - if (newUrl == null) { - if (fDocRoot == null && fDocRootString == null) { - // try to check relative url - absUrl = convert(url, fBaseUrl, fBaseUrlString); - } - else { - // doc root is provided - // if the url is a doc root based use doc root - - if (url.startsWith("/"))//$NON-NLS-1$ - absUrl = convert(url, fDocRoot, fDocRootString); - else - absUrl = convert(url, fBaseUrl, fBaseUrlString); - - } - } - return absUrl; - } - - /** - * Convert from an absolute url to relative url based on the given url - * Both are assumed to be ablsute url - */ - public String toRelative(String url, String documentUrl) { - String output = url; - // assuming both urls are absolute - try { - URL inputUrl = new URL(url); - URL docUrl = new URL(documentUrl); - // filter out if the urls are not fro the same domain - if (!inputUrl.getProtocol().equals(docUrl.getProtocol()) || !inputUrl.getHost().equals(docUrl.getHost()) || inputUrl.getPort() != docUrl.getPort()) - return output; - // both url are coming form the same place - // strip off the domain parts - String inputName = inputUrl.getFile(); - String docName = docUrl.getFile(); - output = PathHelper.convertToRelative(inputName, docName); - } - catch (MalformedURLException me) { - output = null; - } - return output; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/URLModelProviderCSS.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/URLModelProviderCSS.java deleted file mode 100644 index ef180d7237..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/URLModelProviderCSS.java +++ /dev/null @@ -1,387 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 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.util; - - - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStream; -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.nio.charset.UnsupportedCharsetException; - -import org.eclipse.core.resources.IContainer; -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.resources.IWorkspaceRoot; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Path; -import org.eclipse.wst.sse.core.StructuredModelManager; -import org.eclipse.wst.sse.core.internal.encoding.EncodingRule; -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.exceptions.ResourceAlreadyExists; -import org.eclipse.wst.sse.core.internal.provisional.exceptions.ResourceInUse; -import org.eclipse.wst.sse.core.internal.util.PathHelper; -import org.eclipse.wst.sse.core.internal.util.ProjectResolver; -import org.eclipse.wst.sse.core.internal.util.URIResolver; - -/** - */ -public class URLModelProviderCSS { - - private static final int GET_MODEL_FOR_READ = 1; - // private static final int GET_NEW_MODEL_FOR_READ = 2; - private static final int GET_MODEL_FOR_EDIT = 3; - // private static final int GET_NEW_MODEL_FOR_EDIT = 4; - // private static final int READ_BUFFER_SIZE = 4096; - // IModelManager - private IModelManager modelManager = null; - - /** - */ - public URLModelProviderCSS() { - super(); - - // obtain model manager - modelManager = StructuredModelManager.getModelManager(); - } - - /** - * Calculate ID from a filename. This must be same as - * FileModelProvider.calculateId(IFile) - */ - private static String calculateId(IPath fullIPath) { - return fullIPath.toString(); - } - - /** - * <code>baseModel</code>: the model containing the link - * <code>ref</code>: the link URL string - */ - private IStructuredModel getCommonModelFor(final IStructuredModel baseModel, final String ref, final int which) throws IOException { - // first, create absolute url - String absURL = resolveURI(baseModel, ref, true); - if ((absURL == null) || (absURL.length() == 0)) { - return null; - } - - // need to remove file:// scheme if necessary - try { - final URL aURL = new URL(absURL); - // An actual URL was given, only file:/// is supported - // resolve it by finding the file it points to - if (!aURL.getProtocol().equals("platform")) { //$NON-NLS-1$ - if (aURL.getProtocol().equals("file") && (aURL.getHost().equals("localhost") || aURL.getHost().length() == 0)) { //$NON-NLS-2$//$NON-NLS-1$ - absURL = aURL.getFile(); - final IPath ipath = new Path(absURL); - // if path has a device, and if it begins with - // IPath.SEPARATOR, remove it - final String device = ipath.getDevice(); - if ((device != null) && (device.length() > 0)) { - if (device.charAt(0) == IPath.SEPARATOR) { - final String newDevice = device.substring(1); - absURL = ipath.setDevice(newDevice).toString(); - } - } - - } - } - } - catch (MalformedURLException mfuExc) { - } - - // next, decide project - IProject project = null; - final IPath fullIPath = new Path(absURL); - IWorkspaceRoot workspace = ResourcesPlugin.getWorkspace().getRoot(); - IContainer container = workspace.getContainerForLocation(fullIPath); - if (container != null) { - // fullIPath doesn't exist in workspace - project = container.getProject(); - } - - // If HTML document has a link to an extern CSS which is not in - // IProject - // workspace.getContainerForLoation() may return null. We need to take - // care - // of this case - - // now, get absURL's IFile - if ((project != null) && (project.getLocation().isPrefixOf(fullIPath) == false)) { - // it's at outside of Project - return null; - } - - IStructuredModel model = null; - if (project != null) { - IPath filePath = fullIPath.removeFirstSegments(project.getLocation().segmentCount()); - IFile file = (filePath != null && !filePath.isEmpty()) ? project.getFile(filePath) : null; - if (file == null) { - return null; - } - - // obtain model - if (which == GET_MODEL_FOR_EDIT) { - model = getModelForEdit(file); - } - else if (which == GET_MODEL_FOR_READ) { - model = getModelForRead(file); - } - - // setting synchronization stamp is IModelManager's client's - // responsibility - if (model != null && model.getSynchronizationStamp() == IResource.NULL_STAMP) - model.resetSynchronizationStamp(file); - } - else { - String id = null; - InputStream inStream = null; - // obtain resolver - URIResolver resolver = (project != null) ? (URIResolver) project.getAdapter(URIResolver.class) : null; - if (resolver == null) { - // ProjectResolver can take care of the case if project is - // null. - resolver = new ProjectResolver(project); - } - if (resolver == null) { - return null; - } - - // there is no project. we can't expect IProject help to create - // id/inputStream - File file = fullIPath.toFile(); - - // obatin id - id = calculateId(fullIPath); - - // obtain InputStream - try { - inStream = new FileInputStream(file); - } - catch (FileNotFoundException fnfe) { - // the file does not exist, or we don't have read permission - return null; - } - - // obtain model - try { - if (which == GET_MODEL_FOR_EDIT) { - model = getModelManager().getModelForEdit(id, inStream, resolver); - } - else if (which == GET_MODEL_FOR_READ) { - model = getModelManager().getModelForRead(id, inStream, resolver); - } - } - catch (UnsupportedEncodingException ue) { - } - catch (IOException ioe) { - } - finally { - // close now ! - if (inStream != null) { - inStream.close(); - } - } - } - - // set locationid - if (model != null && model.getBaseLocation() == null) { - model.setBaseLocation(fullIPath.toString()); - } - - return model; - } - - /** - * <code>baseModel</code>: the model containing the link - * <code>ref</code>: the link URL string - */ - public IStructuredModel getModelForEdit(IStructuredModel baseModel, String ref) throws IOException { - return getCommonModelFor(baseModel, ref, GET_MODEL_FOR_EDIT); - } - - /** - */ - private IStructuredModel getModelForEdit(IFile file) throws IOException { - if (file == null) - return null; - IModelManager manager = getModelManager(); - - // create a fake InputStream - IStructuredModel model = null; - try { - model = manager.getModelForEdit(file); - } - catch (UnsupportedCharsetException ex) { - try { - model = manager.getModelForEdit(file, EncodingRule.FORCE_DEFAULT); - } - catch (IOException ioe) { - } - catch (CoreException ce) { - } - } - catch (CoreException ce) { - } - return model; - } - - /** - * <code>baseModel</code>: the model containing the link - * <code>ref</code>: the link URL string - */ - public IStructuredModel getModelForRead(IStructuredModel baseModel, String ref) throws UnsupportedEncodingException, IOException { - return getCommonModelFor(baseModel, ref, GET_MODEL_FOR_READ); - } - - /** - */ - private IStructuredModel getModelForRead(IFile file) throws IOException { - if (file == null) - return null; - IModelManager manager = getModelManager(); - - // create a fake InputStream - IStructuredModel model = null; - try { - model = manager.getModelForRead(file); - } - catch (UnsupportedCharsetException ex) { - try { - model = manager.getModelForRead(file, EncodingRule.FORCE_DEFAULT); - } - catch (IOException ioe) { - } - catch (CoreException ce) { - } - } - catch (CoreException ce) { - } - return model; - } - - /** - */ - private IModelManager getModelManager() { - return modelManager; - } - - public IStructuredModel getNewModelForEdit(IFile iFile) { - if (iFile == null) - return null; - IModelManager manager = getModelManager(); - if (manager == null) - return null; - - IStructuredModel model = null; - try { - model = manager.getNewModelForEdit(iFile, false); - } - catch (IOException ex) { - } - catch (ResourceInUse riu) { - } - catch (ResourceAlreadyExists rae) { - } - catch (CoreException ce) { - } - return model; - } - - public IStructuredModel getNewModelForRead(IFile iFile) { - if (iFile == null) - return null; - IModelManager manager = getModelManager(); - if (manager == null) - return null; - - IStructuredModel model = null; - try { - model = manager.getNewModelForEdit(iFile, false); - } - catch (IOException ex) { - } - catch (ResourceInUse riu) { - } - catch (ResourceAlreadyExists rae) { - } - catch (CoreException ce) { - } - return model; - } - - /** - * <code>baseModel</code>: the model containing the link - * <code>ref</code>: the link URL string - * <code>resolveCrossProjectLinks</code>: If resolveCrossProjectLinks - * is set to true, then this method will properly resolve the URI if it is - * a valid URI pointing to another (appropriate) project. - */ - public static String resolveURI(IStructuredModel baseModel, String ref, boolean resolveCrossProjectLinks) { - if (baseModel == null) - return null; - - // get resolver in Model - final URIResolver resolver = baseModel.getResolver(); - - // resolve to absolute url - final String absurl = (resolver != null) ? resolver.getLocationByURI(ref, resolveCrossProjectLinks) : null; - if ((resolver != null) && (absurl == null) && (ref != null) && (ref.trim().length() > 0) && (ref.trim().charAt(0) == '/')) { - // to reach here means : - // ref is a Docroot relative - // resolver can't resolve ref - // so that href is a broken and should not create model - return null; - } - if ((absurl != null) && (absurl.length() > 0)) { - return absurl; - } - - // maybe ref is at outside of the Project - // obtain docroot; - final IContainer container = (resolver != null) ? resolver.getRootLocation() : null; - String docroot = null; - if (container != null) { - docroot = container.getLocation().toString(); - } - if (docroot == null) { - docroot = baseModel.getBaseLocation(); - } - if (docroot == null) { - // should not be - return null; - } - - // obtain document url - String modelBaseLocation = baseModel.getBaseLocation(); - if ((modelBaseLocation == null) || (modelBaseLocation.length() == 0)) { - // fallback... - modelBaseLocation = baseModel.getId(); - } - if ((modelBaseLocation == null) || (modelBaseLocation.length() == 0)) { - // i can't resolve uri ! - return null; - } - - // resolve url - URLHelper helper = new URLHelper(PathHelper.getContainingFolderPath(modelBaseLocation), PathHelper.getContainingFolderPath(PathHelper.appendTrailingURLSlash(docroot))); - return helper.toAbsolute(ref); - } - -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/BackgroundPositionXSubStyleAdapter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/BackgroundPositionXSubStyleAdapter.java deleted file mode 100644 index 968013b517..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/BackgroundPositionXSubStyleAdapter.java +++ /dev/null @@ -1,142 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.util.declaration; - - - -import java.util.Collection; -import java.util.Iterator; - -import org.eclipse.wst.css.core.internal.contentmodel.IValID; -import org.eclipse.wst.css.core.internal.contentmodel.PropCMProperty; -import org.eclipse.wst.css.core.internal.contentmodel.PropCMSubProperty; -import org.eclipse.wst.css.core.internal.contentmodel.PropCMUtil; -import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts; -import org.eclipse.wst.css.core.internal.parserz.CSSTextParser; -import org.eclipse.wst.css.core.internal.parserz.CSSTextToken; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSPrimitiveValue; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSValue; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSValueList; -import org.w3c.dom.css.CSSPrimitiveValue; -import org.w3c.dom.css.CSSValue; - - -/** - * for horizontal value of 'background-position' - */ -public class BackgroundPositionXSubStyleAdapter implements ISubPropertyAdapter { - - /** - * - */ - public BackgroundPositionXSubStyleAdapter() { - super(); - } - - /** - * - */ - protected CSSTextToken[] correctMeaningToken(CSSTextToken[] src) { - java.util.ArrayList list = new java.util.ArrayList(); - for (int i = 0; i < src.length; i++) { - if (src[i].kind != CSSRegionContexts.CSS_S && src[i].kind != CSSRegionContexts.CSS_DECLARATION_VALUE_S && src[i].kind != CSSRegionContexts.CSS_COMMENT) - list.add(src[i]); - } - CSSTextToken[] ret = new CSSTextToken[list.size()]; - list.toArray(ret); - return ret; - } - - /** - * - */ - public String get(ICSS2Properties properties) { - String str = null; - Object obj = properties.get(PropCMProperty.getInstanceOf(PropCMProperty.P_BG_POSITION)); - if (obj != null) { - PropCMProperty propX = PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_BG_POSITION_X); - PropCMProperty propY = PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_BG_POSITION_Y); - if (obj instanceof ICSSValueList) { - ICSSValueList list = (ICSSValueList) obj; - ICSSValue value = (ICSSValue) list.item(0); - if (value.getCssValueType() == CSSValue.CSS_PRIMITIVE_VALUE) { - ICSSPrimitiveValue prim = (ICSSPrimitiveValue) value; - if (prim.getPrimitiveType() == CSSPrimitiveValue.CSS_IDENT) { - // check not top or bottom - if (!propX.canHave(prim.getStringValue()) && propY.canHave(prim.getStringValue())) { - // case order is vertical -> horizontal - value = (ICSSValue) list.item(1); - } - } - } - str = value.getCSSValueText(); - } - else if (obj instanceof ICSSValue) { - str = ((ICSSValue) obj).getCSSValueText(); - if (str.equalsIgnoreCase(IValID.V_BOTTOM) || str.equalsIgnoreCase(IValID.V_TOP)) - str = "";//$NON-NLS-1$ - } - else { - str = obj.toString(); - CSSTextParser parser = new CSSTextParser(CSSTextParser.MODE_DECLARATION_VALUE, str); - CSSTextToken[] tokens = parser.getTokens(); - - tokens = correctMeaningToken(tokens); - if (tokens.length == 0) - str = "";//$NON-NLS-1$ - else if (tokens.length == 1 && (tokens[0].image.equalsIgnoreCase(IValID.V_BOTTOM) || tokens[0].image.equalsIgnoreCase(IValID.V_TOP))) - str = "";//$NON-NLS-1$ - else - str = tokens[0].image; - } - } - return (str != null) ? str : "";//$NON-NLS-1$ - } - - /** - * - */ - public void set(ICSS2Properties properties, String value) throws org.w3c.dom.DOMException { - String newValue = null; - String valH = value; - String valV = properties.getBackgroundPositionY(); - if (valV == null || valV.length() == 0) - newValue = valH; - else if (valH == null || valH.length() == 0) { - Collection valX = PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_BG_POSITION_X).getValues(); - Collection valY = PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_BG_POSITION_Y).getValues(); - PropCMUtil.minus(valY, valX); - Iterator it = valY.iterator(); - while (it.hasNext()) { - Object obj = it.next(); - if (obj.toString().equals(valV.toLowerCase())) { - // need not compensate for ... - newValue = valV; - break; - } - } - // compensate for Horizontal value - if (newValue == null) { - // check valV is length or not - CSSTextParser parser = new CSSTextParser(CSSTextParser.MODE_DECLARATION_VALUE, valV.trim()); - CSSTextToken[] tokens = parser.getTokens(); - if (tokens != null && tokens.length > 0 && tokens[0].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_IDENT) { - newValue = IValID.V_LEFT + " " + valV;//$NON-NLS-1$ - } - else - newValue = "0% " + valV;//$NON-NLS-1$ - } - } - else - newValue = valH + " " + valV;//$NON-NLS-1$ - properties.setBackgroundPosition(newValue); - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/BackgroundPositionYSubStyleAdapter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/BackgroundPositionYSubStyleAdapter.java deleted file mode 100644 index 948df9b194..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/BackgroundPositionYSubStyleAdapter.java +++ /dev/null @@ -1,150 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.util.declaration; - - - -import java.util.Collection; -import java.util.Iterator; - -import org.eclipse.wst.css.core.internal.contentmodel.IValID; -import org.eclipse.wst.css.core.internal.contentmodel.PropCMProperty; -import org.eclipse.wst.css.core.internal.contentmodel.PropCMSubProperty; -import org.eclipse.wst.css.core.internal.contentmodel.PropCMUtil; -import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts; -import org.eclipse.wst.css.core.internal.parserz.CSSTextParser; -import org.eclipse.wst.css.core.internal.parserz.CSSTextToken; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSPrimitiveValue; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSValue; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSValueList; -import org.w3c.dom.css.CSSPrimitiveValue; -import org.w3c.dom.css.CSSValue; - - -/** - * for vertical value of 'background-position' - */ -public class BackgroundPositionYSubStyleAdapter implements ISubPropertyAdapter { - - /** - * - */ - public BackgroundPositionYSubStyleAdapter() { - super(); - } - - /** - * - */ - protected CSSTextToken[] correctMeaningToken(CSSTextToken[] src) { - java.util.ArrayList list = new java.util.ArrayList(); - for (int i = 0; i < src.length; i++) { - if (src[i].kind != CSSRegionContexts.CSS_S && src[i].kind != CSSRegionContexts.CSS_DECLARATION_VALUE_S && src[i].kind != CSSRegionContexts.CSS_COMMENT) - list.add(src[i]); - } - CSSTextToken[] ret = new CSSTextToken[list.size()]; - list.toArray(ret); - return ret; - } - - /** - * - */ - public String get(ICSS2Properties properties) { - String str = null; - Object obj = properties.get(PropCMProperty.getInstanceOf(PropCMProperty.P_BG_POSITION)); - if (obj != null) { - PropCMProperty propX = PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_BG_POSITION_X); - PropCMProperty propY = PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_BG_POSITION_Y); - if (obj instanceof ICSSValueList) { - ICSSValueList list = (ICSSValueList) obj; - int index = 1; - ICSSValue value = (ICSSValue) list.item(0); - if (value.getCssValueType() == CSSValue.CSS_PRIMITIVE_VALUE) { - ICSSPrimitiveValue prim = (ICSSPrimitiveValue) value; - if (prim.getPrimitiveType() == CSSPrimitiveValue.CSS_IDENT) { - // check not top or bottom - if (!propX.canHave(prim.getStringValue()) && propY.canHave(prim.getStringValue())) { - // case order is vertical -> horizontal - index = 0; - } - } - } - str = ((ICSSValue) list.item(index)).getCSSValueText(); - } - else if (obj instanceof ICSSValue) { - str = ((ICSSValue) obj).getCSSValueText(); - if (!str.equalsIgnoreCase(IValID.V_BOTTOM) && !str.equalsIgnoreCase(IValID.V_TOP)) - str = "";//$NON-NLS-1$ - } - else { - str = obj.toString(); - CSSTextParser parser = new CSSTextParser(CSSTextParser.MODE_DECLARATION_VALUE, str); - CSSTextToken[] tokens = parser.getTokens(); - - tokens = correctMeaningToken(tokens); - if (tokens.length == 1 && (tokens[0].image.equalsIgnoreCase(IValID.V_BOTTOM) || tokens[0].image.equalsIgnoreCase(IValID.V_TOP))) - str = tokens[0].image; - else if (tokens.length > 1) - str = tokens[1].image; - else - str = "";//$NON-NLS-1$ - } - } - return (str != null) ? str : "";//$NON-NLS-1$ - } - - /** - * - */ - public void set(ICSS2Properties properties, String value) throws org.w3c.dom.DOMException { - String newValue = null; - String valH = properties.getBackgroundPositionX(); - String valV = value; - if (valH != null && (valH.trim().equals("0%") /* default value */|| //$NON-NLS-1$ - valH.trim().equalsIgnoreCase(IValID.V_LEFT) /* - * another - * default - * value - */)) - valH = null; - if (valV == null || valV.length() == 0) - newValue = valH; - else if (valH == null || valH.length() == 0) { - Collection valX = PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_BG_POSITION_X).getValues(); - Collection valY = PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_BG_POSITION_Y).getValues(); - PropCMUtil.minus(valY, valX); - Iterator it = valY.iterator(); - while (it.hasNext()) { - Object obj = it.next(); - if (obj.toString().equals(valV.toLowerCase())) { - // need not compensate for ... - newValue = valV; - break; - } - } - // compensate for Horizontal value - if (newValue == null) { - // check valV is length or not - CSSTextParser parser = new CSSTextParser(CSSTextParser.MODE_DECLARATION_VALUE, valV.trim()); - CSSTextToken[] tokens = parser.getTokens(); - if (tokens != null && tokens.length > 0 && tokens[0].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_IDENT) { - newValue = IValID.V_LEFT + " " + valV;//$NON-NLS-1$ - } - else - newValue = "0% " + valV;//$NON-NLS-1$ - } - } - else - newValue = valH + " " + valV;//$NON-NLS-1$ - properties.setBackgroundPosition(newValue); - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/BackgroundShorthandAdapter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/BackgroundShorthandAdapter.java deleted file mode 100644 index 9ead299f2a..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/BackgroundShorthandAdapter.java +++ /dev/null @@ -1,179 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.util.declaration; - - - -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.parserz.CSSTextParser; -import org.eclipse.wst.css.core.internal.parserz.CSSTextToken; - - -/** - * For 'background' property 'background' will be expanded to - * 'background-attachment', 'background-color', 'background-image', - * 'background-position', 'background-repeat', - */ -public class BackgroundShorthandAdapter implements IShorthandAdapter { - - /** - * - */ - public BackgroundShorthandAdapter() { - super(); - } - - /** - * - */ - public boolean expand(String source, CSSPropertyContext dest) { - CSSTextParser parser = new CSSTextParser(CSSTextParser.MODE_DECLARATION_VALUE, source); - CSSTextToken[] tokens = parser.getTokens(); - if (tokens.length <= 0) { - return false; - } - String color = "", image = "", repeat = "", attach = "", pos = "";//$NON-NLS-5$//$NON-NLS-4$//$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$ - PropCMProperty propColor = PropCMProperty.getInstanceOf(PropCMProperty.P_BG_COLOR); - PropCMProperty propImage = PropCMProperty.getInstanceOf(PropCMProperty.P_BG_IMAGE); - PropCMProperty propRepeat = PropCMProperty.getInstanceOf(PropCMProperty.P_BG_REPEAT); - PropCMProperty propAttach = PropCMProperty.getInstanceOf(PropCMProperty.P_BG_ATTACHMENT); - PropCMProperty propPos = PropCMProperty.getInstanceOf(PropCMProperty.P_BG_POSITION); - - for (int i = 0; i < tokens.length; i++) { - if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_IDENT) { - if (propColor.canHave(tokens[i].image)) - color = tokens[i].image; - else if (propImage.canHave(tokens[i].image)) - image = tokens[i].image; - else if (propRepeat.canHave(tokens[i].image)) - repeat = tokens[i].image; - else if (propAttach.canHave(tokens[i].image)) - attach = tokens[i].image; - else if (propPos.canHave(tokens[i].image)) { - if (pos == null || pos.length() <= 0) - pos = tokens[i].image; - else - pos = pos + " " + tokens[i].image;//$NON-NLS-1$ - } - } - else if (org.eclipse.wst.css.core.internal.util.CSSUtil.isLength(tokens[i]) || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_NUMBER || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_PERCENTAGE) { - if (pos == null || pos.length() <= 0) - pos = tokens[i].image; - else - pos = pos + " " + tokens[i].image;//$NON-NLS-1$ - } - else if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_URI) { - image = tokens[i].image; - } - else if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_HASH) { - color = tokens[i].image; - } - else if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_FUNCTION) { - StringBuffer buf = new StringBuffer(); - while (i < tokens.length) { - if (tokens[i].kind == CSSRegionContexts.CSS_COMMENT) { - i++; - continue; - } - buf.append(tokens[i].image); - if (tokens[i++].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE) - break; - } - i--; - color = buf.toString(); - } - } - - dest.set(propColor.getName(), color); - dest.set(propImage.getName(), image); - dest.set(propRepeat.getName(), repeat); - dest.set(propAttach.getName(), attach); - dest.set(propPos.getName(), pos); - - return true; - } - - /** - * - */ - public String extract(String source, PropCMProperty propDest) { - CSSTextParser parser = new CSSTextParser(CSSTextParser.MODE_DECLARATION_VALUE, source); - CSSTextToken[] tokens = parser.getTokens(); - if (tokens.length <= 0) { - return null; - } - String color = null, image = null, repeat = null, attach = null, pos = null; - PropCMProperty propColor = PropCMProperty.getInstanceOf(PropCMProperty.P_BG_COLOR); - PropCMProperty propImage = PropCMProperty.getInstanceOf(PropCMProperty.P_BG_IMAGE); - PropCMProperty propRepeat = PropCMProperty.getInstanceOf(PropCMProperty.P_BG_REPEAT); - PropCMProperty propAttach = PropCMProperty.getInstanceOf(PropCMProperty.P_BG_ATTACHMENT); - PropCMProperty propPos = PropCMProperty.getInstanceOf(PropCMProperty.P_BG_POSITION); - - for (int i = 0; i < tokens.length; i++) { - if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_IDENT) { - if (propColor.canHave(tokens[i].image)) - color = tokens[i].image; - else if (propImage.canHave(tokens[i].image)) - image = tokens[i].image; - else if (propRepeat.canHave(tokens[i].image)) - repeat = tokens[i].image; - else if (propAttach.canHave(tokens[i].image)) - attach = tokens[i].image; - else if (propPos.canHave(tokens[i].image)) { - if (pos == null) - pos = tokens[i].image; - else - pos = pos + " " + tokens[i].image;//$NON-NLS-1$ - } - } - else if (org.eclipse.wst.css.core.internal.util.CSSUtil.isLength(tokens[i]) || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_NUMBER || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_PERCENTAGE) { - if (pos == null) - pos = tokens[i].image; - else - pos = pos + " " + tokens[i].image;//$NON-NLS-1$ - } - else if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_URI) { - image = tokens[i].image; - } - else if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_HASH) { - color = tokens[i].image; - } - else if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_FUNCTION) { - StringBuffer buf = new StringBuffer(); - while (i < tokens.length) { - if (tokens[i].kind == CSSRegionContexts.CSS_COMMENT) { - i++; - continue; - } - buf.append(tokens[i].image); - if (tokens[i++].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE) - break; - } - i--; - color = buf.toString(); - } - } - - if (propColor == propDest) - return color; - else if (propImage == propDest) - return image; - else if (propRepeat == propDest) - return repeat; - else if (propAttach == propDest) - return attach; - else if (propPos == propDest) - return pos; - else - return null; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/BorderBottomShorthandAdapter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/BorderBottomShorthandAdapter.java deleted file mode 100644 index 1107e2744e..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/BorderBottomShorthandAdapter.java +++ /dev/null @@ -1,140 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.util.declaration; - - - -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.parserz.CSSTextParser; -import org.eclipse.wst.css.core.internal.parserz.CSSTextToken; - - -/** - * For 'border-bottom' property 'border-bottom' will be expanded to - * 'border-bottom-color', 'border-bottom-style', 'border-bottom-width', - */ -public class BorderBottomShorthandAdapter implements IShorthandAdapter { - - /** - * - */ - public BorderBottomShorthandAdapter() { - super(); - } - - /** - * - */ - public boolean expand(String source, CSSPropertyContext dest) { - CSSTextParser parser = new CSSTextParser(CSSTextParser.MODE_DECLARATION_VALUE, source); - CSSTextToken[] tokens = parser.getTokens(); - if (tokens.length <= 0) { - return false; - } - String color = "", style = "", width = "";//$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$ - PropCMProperty propColor = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_BOTTOM_COLOR); - PropCMProperty propStyle = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_BOTTOM_STYLE); - PropCMProperty propWidth = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_BOTTOM_WIDTH); - - for (int i = 0; i < tokens.length; i++) { - if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_IDENT) { - if (propStyle.canHave(tokens[i].image)) - style = tokens[i].image; - else if (propWidth.canHave(tokens[i].image)) - width = tokens[i].image; - else if (propColor.canHave(tokens[i].image)) - color = tokens[i].image; - } - else if (org.eclipse.wst.css.core.internal.util.CSSUtil.isLength(tokens[i]) || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_NUMBER) { - width = tokens[i].image; - } - else if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_HASH) { - color = tokens[i].image; - } - else if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_FUNCTION) { - StringBuffer buf = new StringBuffer(); - while (i < tokens.length) { - if (tokens[i].kind == CSSRegionContexts.CSS_COMMENT) { - i++; - continue; - } - buf.append(tokens[i].image); - if (tokens[i++].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE) - break; - } - i--; - color = buf.toString(); - } - } - - dest.set(propColor.getName(), color); - dest.set(propStyle.getName(), style); - dest.set(propWidth.getName(), width); - - return true; - } - - /** - * - */ - public String extract(String source, PropCMProperty propDest) { - CSSTextParser parser = new CSSTextParser(CSSTextParser.MODE_DECLARATION_VALUE, source); - CSSTextToken[] tokens = parser.getTokens(); - if (tokens.length <= 0) { - return null; - } - String color = null, style = null, width = null; - PropCMProperty propColor = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_BOTTOM_COLOR); - PropCMProperty propStyle = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_BOTTOM_STYLE); - PropCMProperty propWidth = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_BOTTOM_WIDTH); - - for (int i = 0; i < tokens.length; i++) { - if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_IDENT) { - if (propStyle.canHave(tokens[i].image)) - style = tokens[i].image; - else if (propWidth.canHave(tokens[i].image)) - width = tokens[i].image; - else if (propColor.canHave(tokens[i].image)) - color = tokens[i].image; - } - else if (org.eclipse.wst.css.core.internal.util.CSSUtil.isLength(tokens[i]) || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_NUMBER) { - width = tokens[i].image; - } - else if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_HASH) { - color = tokens[i].image; - } - else if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_FUNCTION) { - StringBuffer buf = new StringBuffer(); - while (i < tokens.length) { - if (tokens[i].kind == CSSRegionContexts.CSS_COMMENT) { - i++; - continue; - } - buf.append(tokens[i].image); - if (tokens[i++].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE) - break; - } - i--; - color = buf.toString(); - } - } - - if (propColor == propDest) - return color; - else if (propStyle == propDest) - return style; - else if (propWidth == propDest) - return width; - else - return null; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/BorderColorShorthandAdapter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/BorderColorShorthandAdapter.java deleted file mode 100644 index d8cc676e9a..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/BorderColorShorthandAdapter.java +++ /dev/null @@ -1,158 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.util.declaration; - - - -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.parserz.CSSTextParser; -import org.eclipse.wst.css.core.internal.parserz.CSSTextToken; - - -/** - * For 'border-color' property 'border-color' will be expanded to - * 'border-top-color', 'border-right-color', 'border-bottom-color', - * 'border-left-color', - */ -public class BorderColorShorthandAdapter implements IShorthandAdapter { - - /** - * - */ - public BorderColorShorthandAdapter() { - super(); - } - - /** - * - */ - public boolean expand(String source, CSSPropertyContext dest) { - CSSTextParser parser = new CSSTextParser(CSSTextParser.MODE_DECLARATION_VALUE, source); - CSSTextToken[] tokens = parser.getTokens(); - if (tokens.length <= 0) { - return false; - } - String[] idents = new String[4]; - int j = 0; - for (int i = 0; i < tokens.length; i++) { - if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_IDENT || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_HASH) - idents[j++] = tokens[i].image; - else if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_FUNCTION) { - StringBuffer buf = new StringBuffer(); - while (i < tokens.length) { - if (tokens[i].kind == CSSRegionContexts.CSS_COMMENT) { - i++; - continue; - } - buf.append(tokens[i].image); - if (tokens[i++].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE) - break; - } - i--; - idents[j++] = buf.toString(); - } - if (j == 4) - break; - } - - String[] dests = new String[4]; - if (j == 0) - return true; - else if (j == 1) { - dests[0] = dests[1] = dests[2] = dests[3] = idents[0]; - } - else if (j == 2) { - dests[0] = dests[2] = idents[0]; - dests[1] = dests[3] = idents[1]; - } - else if (j == 3) { - dests[0] = idents[0]; - dests[1] = dests[3] = idents[1]; - dests[2] = idents[2]; - } - else { - for (int k = 0; k < 4; k++) - dests[k] = idents[k]; - } - dest.set(PropCMProperty.P_BORDER_TOP_COLOR, dests[0]); - dest.set(PropCMProperty.P_BORDER_RIGHT_COLOR, dests[1]); - dest.set(PropCMProperty.P_BORDER_BOTTOM_COLOR, dests[2]); - dest.set(PropCMProperty.P_BORDER_LEFT_COLOR, dests[3]); - - return true; - } - - /** - * - */ - public String extract(String source, PropCMProperty propDest) { - CSSTextParser parser = new CSSTextParser(CSSTextParser.MODE_DECLARATION_VALUE, source); - CSSTextToken[] tokens = parser.getTokens(); - if (tokens.length <= 0) { - return null; - } - String[] idents = new String[4]; - int j = 0; - for (int i = 0; i < tokens.length; i++) { - if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_IDENT || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_HASH) - idents[j++] = tokens[i].image; - else if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_FUNCTION) { - StringBuffer buf = new StringBuffer(); - while (i < tokens.length) { - if (tokens[i].kind == CSSRegionContexts.CSS_COMMENT) { - i++; - continue; - } - buf.append(tokens[i].image); - if (tokens[i++].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE) - break; - } - i--; - idents[j++] = buf.toString(); - } - if (j == 4) - break; - } - - if (j == 0) - return null; - else if (j == 1) - return idents[0]; - else if (j == 2) { - if (propDest.getName() == PropCMProperty.P_BORDER_TOP_COLOR || propDest.getName() == PropCMProperty.P_BORDER_BOTTOM_COLOR) - return idents[0]; - else - return idents[1]; - } - else if (j == 3) { - if (propDest.getName() == PropCMProperty.P_BORDER_TOP_COLOR) - return idents[0]; - else if (propDest.getName() == PropCMProperty.P_BORDER_BOTTOM_COLOR) - return idents[2]; - else - return idents[1]; - } - else { - if (propDest.getName() == PropCMProperty.P_BORDER_TOP_COLOR) - return idents[0]; - else if (propDest.getName() == PropCMProperty.P_BORDER_RIGHT_COLOR) - return idents[1]; - else if (propDest.getName() == PropCMProperty.P_BORDER_BOTTOM_COLOR) - return idents[2]; - else if (propDest.getName() == PropCMProperty.P_BORDER_LEFT_COLOR) - return idents[3]; - else - return null; - } - - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/BorderLeftShorthandAdapter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/BorderLeftShorthandAdapter.java deleted file mode 100644 index f8b72392a4..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/BorderLeftShorthandAdapter.java +++ /dev/null @@ -1,140 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.util.declaration; - - - -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.parserz.CSSTextParser; -import org.eclipse.wst.css.core.internal.parserz.CSSTextToken; - - -/** - * For 'border-left' property 'border-left' will be expanded to - * 'border-left-color', 'border-left-style', 'border-left-width', - */ -public class BorderLeftShorthandAdapter implements IShorthandAdapter { - - /** - * - */ - public BorderLeftShorthandAdapter() { - super(); - } - - /** - * - */ - public boolean expand(String source, CSSPropertyContext dest) { - CSSTextParser parser = new CSSTextParser(CSSTextParser.MODE_DECLARATION_VALUE, source); - CSSTextToken[] tokens = parser.getTokens(); - if (tokens.length <= 0) { - return false; - } - String color = "", style = "", width = "";//$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$ - PropCMProperty propColor = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_LEFT_COLOR); - PropCMProperty propStyle = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_LEFT_STYLE); - PropCMProperty propWidth = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_LEFT_WIDTH); - - for (int i = 0; i < tokens.length; i++) { - if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_IDENT) { - if (propStyle.canHave(tokens[i].image)) - style = tokens[i].image; - else if (propWidth.canHave(tokens[i].image)) - width = tokens[i].image; - else if (propColor.canHave(tokens[i].image)) - color = tokens[i].image; - } - else if (org.eclipse.wst.css.core.internal.util.CSSUtil.isLength(tokens[i]) || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_NUMBER) { - width = tokens[i].image; - } - else if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_HASH) { - color = tokens[i].image; - } - else if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_FUNCTION) { - StringBuffer buf = new StringBuffer(); - while (i < tokens.length) { - if (tokens[i].kind == CSSRegionContexts.CSS_COMMENT) { - i++; - continue; - } - buf.append(tokens[i].image); - if (tokens[i++].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE) - break; - } - i--; - color = buf.toString(); - } - } - - dest.set(propColor.getName(), color); - dest.set(propStyle.getName(), style); - dest.set(propWidth.getName(), width); - - return true; - } - - /** - * - */ - public String extract(String source, PropCMProperty propDest) { - CSSTextParser parser = new CSSTextParser(CSSTextParser.MODE_DECLARATION_VALUE, source); - CSSTextToken[] tokens = parser.getTokens(); - if (tokens.length <= 0) { - return null; - } - String color = null, style = null, width = null; - PropCMProperty propColor = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_LEFT_COLOR); - PropCMProperty propStyle = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_LEFT_STYLE); - PropCMProperty propWidth = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_LEFT_WIDTH); - - for (int i = 0; i < tokens.length; i++) { - if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_IDENT) { - if (propStyle.canHave(tokens[i].image)) - style = tokens[i].image; - else if (propWidth.canHave(tokens[i].image)) - width = tokens[i].image; - else if (propColor.canHave(tokens[i].image)) - color = tokens[i].image; - } - else if (org.eclipse.wst.css.core.internal.util.CSSUtil.isLength(tokens[i]) || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_NUMBER) { - width = tokens[i].image; - } - else if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_HASH) { - color = tokens[i].image; - } - else if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_FUNCTION) { - StringBuffer buf = new StringBuffer(); - while (i < tokens.length) { - if (tokens[i].kind == CSSRegionContexts.CSS_COMMENT) { - i++; - continue; - } - buf.append(tokens[i].image); - if (tokens[i++].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE) - break; - } - i--; - color = buf.toString(); - } - } - - if (propColor == propDest) - return color; - else if (propStyle == propDest) - return style; - else if (propWidth == propDest) - return width; - else - return null; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/BorderRightShorthandAdapter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/BorderRightShorthandAdapter.java deleted file mode 100644 index 50a5fc6127..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/BorderRightShorthandAdapter.java +++ /dev/null @@ -1,140 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.util.declaration; - - - -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.parserz.CSSTextParser; -import org.eclipse.wst.css.core.internal.parserz.CSSTextToken; - - -/** - * For 'border-right' property 'border-right' will be expanded to - * 'border-right-color', 'border-right-style', 'border-right-width', - */ -public class BorderRightShorthandAdapter implements IShorthandAdapter { - - /** - * - */ - public BorderRightShorthandAdapter() { - super(); - } - - /** - * - */ - public boolean expand(String source, CSSPropertyContext dest) { - CSSTextParser parser = new CSSTextParser(CSSTextParser.MODE_DECLARATION_VALUE, source); - CSSTextToken[] tokens = parser.getTokens(); - if (tokens.length <= 0) { - return false; - } - String color = "", style = "", width = "";//$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$ - PropCMProperty propColor = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_RIGHT_COLOR); - PropCMProperty propStyle = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_RIGHT_STYLE); - PropCMProperty propWidth = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_RIGHT_WIDTH); - - for (int i = 0; i < tokens.length; i++) { - if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_IDENT) { - if (propStyle.canHave(tokens[i].image)) - style = tokens[i].image; - else if (propWidth.canHave(tokens[i].image)) - width = tokens[i].image; - else if (propColor.canHave(tokens[i].image)) - color = tokens[i].image; - } - else if (org.eclipse.wst.css.core.internal.util.CSSUtil.isLength(tokens[i]) || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_NUMBER) { - width = tokens[i].image; - } - else if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_HASH) { - color = tokens[i].image; - } - else if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_FUNCTION) { - StringBuffer buf = new StringBuffer(); - while (i < tokens.length) { - if (tokens[i].kind == CSSRegionContexts.CSS_COMMENT) { - i++; - continue; - } - buf.append(tokens[i].image); - if (tokens[i++].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE) - break; - } - i--; - color = buf.toString(); - } - } - - dest.set(propColor.getName(), color); - dest.set(propStyle.getName(), style); - dest.set(propWidth.getName(), width); - - return true; - } - - /** - * - */ - public String extract(String source, PropCMProperty propDest) { - CSSTextParser parser = new CSSTextParser(CSSTextParser.MODE_DECLARATION_VALUE, source); - CSSTextToken[] tokens = parser.getTokens(); - if (tokens.length <= 0) { - return null; - } - String color = null, style = null, width = null; - PropCMProperty propColor = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_RIGHT_COLOR); - PropCMProperty propStyle = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_RIGHT_STYLE); - PropCMProperty propWidth = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_RIGHT_WIDTH); - - for (int i = 0; i < tokens.length; i++) { - if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_IDENT) { - if (propStyle.canHave(tokens[i].image)) - style = tokens[i].image; - else if (propWidth.canHave(tokens[i].image)) - width = tokens[i].image; - else if (propColor.canHave(tokens[i].image)) - color = tokens[i].image; - } - else if (org.eclipse.wst.css.core.internal.util.CSSUtil.isLength(tokens[i]) || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_NUMBER) { - width = tokens[i].image; - } - else if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_HASH) { - color = tokens[i].image; - } - else if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_FUNCTION) { - StringBuffer buf = new StringBuffer(); - while (i < tokens.length) { - if (tokens[i].kind == CSSRegionContexts.CSS_COMMENT) { - i++; - continue; - } - buf.append(tokens[i].image); - if (tokens[i++].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE) - break; - } - i--; - color = buf.toString(); - } - } - - if (propColor == propDest) - return color; - else if (propStyle == propDest) - return style; - else if (propWidth == propDest) - return width; - else - return null; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/BorderShorthandAdapter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/BorderShorthandAdapter.java deleted file mode 100644 index 12718a1704..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/BorderShorthandAdapter.java +++ /dev/null @@ -1,140 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.util.declaration; - - - -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.parserz.CSSTextParser; -import org.eclipse.wst.css.core.internal.parserz.CSSTextToken; - - -/** - * For 'border' property 'border' will be expanded to 'border-color', - * 'border-style', 'border-width', - */ -public class BorderShorthandAdapter implements IShorthandAdapter { - - /** - * - */ - public BorderShorthandAdapter() { - super(); - } - - /** - * - */ - public boolean expand(String source, CSSPropertyContext dest) { - CSSTextParser parser = new CSSTextParser(CSSTextParser.MODE_DECLARATION_VALUE, source); - CSSTextToken[] tokens = parser.getTokens(); - if (tokens.length <= 0) { - return false; - } - String color = "", style = "", width = "";//$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$ - PropCMProperty propColor = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_COLOR); - PropCMProperty propStyle = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_STYLE); - PropCMProperty propWidth = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_WIDTH); - - for (int i = 0; i < tokens.length; i++) { - if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_IDENT) { - if (propStyle.canHave(tokens[i].image)) - style = tokens[i].image; - else if (propWidth.canHave(tokens[i].image)) - width = tokens[i].image; - else if (propColor.canHave(tokens[i].image)) - color = tokens[i].image; - } - else if (org.eclipse.wst.css.core.internal.util.CSSUtil.isLength(tokens[i]) || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_NUMBER) { - width = tokens[i].image; - } - else if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_HASH) { - color = tokens[i].image; - } - else if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_FUNCTION) { - StringBuffer buf = new StringBuffer(); - while (i < tokens.length) { - if (tokens[i].kind == CSSRegionContexts.CSS_COMMENT) { - i++; - continue; - } - buf.append(tokens[i].image); - if (tokens[i++].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE) - break; - } - i--; - color = buf.toString(); - } - } - - dest.set(propColor.getName(), color); - dest.set(propStyle.getName(), style); - dest.set(propWidth.getName(), width); - - return true; - } - - /** - * - */ - public String extract(String source, PropCMProperty propDest) { - CSSTextParser parser = new CSSTextParser(CSSTextParser.MODE_DECLARATION_VALUE, source); - CSSTextToken[] tokens = parser.getTokens(); - if (tokens.length <= 0) { - return null; - } - String color = null, style = null, width = null; - PropCMProperty propColor = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_COLOR); - PropCMProperty propStyle = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_STYLE); - PropCMProperty propWidth = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_WIDTH); - - for (int i = 0; i < tokens.length; i++) { - if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_IDENT) { - if (propStyle.canHave(tokens[i].image)) - style = tokens[i].image; - else if (propWidth.canHave(tokens[i].image)) - width = tokens[i].image; - else if (propColor.canHave(tokens[i].image)) - color = tokens[i].image; - } - else if (org.eclipse.wst.css.core.internal.util.CSSUtil.isLength(tokens[i]) || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_NUMBER) { - width = tokens[i].image; - } - else if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_HASH) { - color = tokens[i].image; - } - else if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_FUNCTION) { - StringBuffer buf = new StringBuffer(); - while (i < tokens.length) { - if (tokens[i].kind == CSSRegionContexts.CSS_COMMENT) { - i++; - continue; - } - buf.append(tokens[i].image); - if (tokens[i++].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE) - break; - } - i--; - color = buf.toString(); - } - } - - if (propColor == propDest) - return color; - else if (propStyle == propDest) - return style; - else if (propWidth == propDest) - return width; - else - return null; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/BorderStyleShorthandAdapter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/BorderStyleShorthandAdapter.java deleted file mode 100644 index 0e409c15dd..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/BorderStyleShorthandAdapter.java +++ /dev/null @@ -1,130 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.util.declaration; - - - -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.parserz.CSSTextParser; -import org.eclipse.wst.css.core.internal.parserz.CSSTextToken; - - -/** - * For 'border-style' property 'border-style' will be expanded to - * 'border-top-style', 'border-right-style', 'border-bottom-style', - * 'border-left-style', - */ -public class BorderStyleShorthandAdapter implements IShorthandAdapter { - - /** - * - */ - public BorderStyleShorthandAdapter() { - super(); - } - - /** - * - */ - public boolean expand(String source, CSSPropertyContext dest) { - CSSTextParser parser = new CSSTextParser(CSSTextParser.MODE_DECLARATION_VALUE, source); - CSSTextToken[] tokens = parser.getTokens(); - if (tokens.length <= 0) { - return false; - } - String[] idents = new String[4]; - int j = 0; - for (int i = 0; i < tokens.length; i++) { - if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_IDENT) - idents[j++] = tokens[i].image; - if (j == 4) - break; - } - - String[] dests = new String[4]; - if (j == 0) - return true; - else if (j == 1) { - dests[0] = dests[1] = dests[2] = dests[3] = idents[0]; - } - else if (j == 2) { - dests[0] = dests[2] = idents[0]; - dests[1] = dests[3] = idents[1]; - } - else if (j == 3) { - dests[0] = idents[0]; - dests[1] = dests[3] = idents[1]; - dests[2] = idents[2]; - } - else { - for (int k = 0; k < 4; k++) - dests[k] = idents[k]; - } - dest.set(PropCMProperty.P_BORDER_TOP_STYLE, dests[0]); - dest.set(PropCMProperty.P_BORDER_RIGHT_STYLE, dests[1]); - dest.set(PropCMProperty.P_BORDER_BOTTOM_STYLE, dests[2]); - dest.set(PropCMProperty.P_BORDER_LEFT_STYLE, dests[3]); - - return true; - } - - /** - * - */ - public String extract(String source, PropCMProperty propDest) { - CSSTextParser parser = new CSSTextParser(CSSTextParser.MODE_DECLARATION_VALUE, source); - CSSTextToken[] tokens = parser.getTokens(); - if (tokens.length <= 0) { - return null; - } - String[] idents = new String[4]; - int j = 0; - for (int i = 0; i < tokens.length; i++) { - if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_IDENT) - idents[j++] = tokens[i].image; - if (j == 4) - break; - } - - if (j == 0) - return null; - else if (j == 1) - return idents[0]; - else if (j == 2) { - if (propDest.getName() == PropCMProperty.P_BORDER_TOP_STYLE || propDest.getName() == PropCMProperty.P_BORDER_BOTTOM_STYLE) - return idents[0]; - else - return idents[1]; - } - else if (j == 3) { - if (propDest.getName() == PropCMProperty.P_BORDER_TOP_STYLE) - return idents[0]; - else if (propDest.getName() == PropCMProperty.P_BORDER_BOTTOM_STYLE) - return idents[2]; - else - return idents[1]; - } - else { - if (propDest.getName() == PropCMProperty.P_BORDER_TOP_STYLE) - return idents[0]; - else if (propDest.getName() == PropCMProperty.P_BORDER_RIGHT_STYLE) - return idents[1]; - else if (propDest.getName() == PropCMProperty.P_BORDER_BOTTOM_STYLE) - return idents[2]; - else if (propDest.getName() == PropCMProperty.P_BORDER_LEFT_STYLE) - return idents[3]; - else - return null; - } - - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/BorderTopShorthandAdapter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/BorderTopShorthandAdapter.java deleted file mode 100644 index e8738f759b..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/BorderTopShorthandAdapter.java +++ /dev/null @@ -1,140 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.util.declaration; - - - -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.parserz.CSSTextParser; -import org.eclipse.wst.css.core.internal.parserz.CSSTextToken; - - -/** - * For 'border-top' property 'border-top' will be expanded to - * 'border-top-color', 'border-top-style', 'border-top-width', - */ -public class BorderTopShorthandAdapter implements IShorthandAdapter { - - /** - * - */ - public BorderTopShorthandAdapter() { - super(); - } - - /** - * - */ - public boolean expand(String source, CSSPropertyContext dest) { - CSSTextParser parser = new CSSTextParser(CSSTextParser.MODE_DECLARATION_VALUE, source); - CSSTextToken[] tokens = parser.getTokens(); - if (tokens.length <= 0) { - return false; - } - String color = "", style = "", width = "";//$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$ - PropCMProperty propColor = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_TOP_COLOR); - PropCMProperty propStyle = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_TOP_STYLE); - PropCMProperty propWidth = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_TOP_WIDTH); - - for (int i = 0; i < tokens.length; i++) { - if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_IDENT) { - if (propStyle.canHave(tokens[i].image)) - style = tokens[i].image; - else if (propWidth.canHave(tokens[i].image)) - width = tokens[i].image; - else if (propColor.canHave(tokens[i].image)) - color = tokens[i].image; - } - else if (org.eclipse.wst.css.core.internal.util.CSSUtil.isLength(tokens[i]) || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_NUMBER) { - width = tokens[i].image; - } - else if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_HASH) { - color = tokens[i].image; - } - else if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_FUNCTION) { - StringBuffer buf = new StringBuffer(); - while (i < tokens.length) { - if (tokens[i].kind == CSSRegionContexts.CSS_COMMENT) { - i++; - continue; - } - buf.append(tokens[i].image); - if (tokens[i++].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE) - break; - } - i--; - color = buf.toString(); - } - } - - dest.set(propColor.getName(), color); - dest.set(propStyle.getName(), style); - dest.set(propWidth.getName(), width); - - return true; - } - - /** - * - */ - public String extract(String source, PropCMProperty propDest) { - CSSTextParser parser = new CSSTextParser(CSSTextParser.MODE_DECLARATION_VALUE, source); - CSSTextToken[] tokens = parser.getTokens(); - if (tokens.length <= 0) { - return null; - } - String color = null, style = null, width = null; - PropCMProperty propColor = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_TOP_COLOR); - PropCMProperty propStyle = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_TOP_STYLE); - PropCMProperty propWidth = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_TOP_WIDTH); - - for (int i = 0; i < tokens.length; i++) { - if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_IDENT) { - if (propStyle.canHave(tokens[i].image)) - style = tokens[i].image; - else if (propWidth.canHave(tokens[i].image)) - width = tokens[i].image; - else if (propColor.canHave(tokens[i].image)) - color = tokens[i].image; - } - else if (org.eclipse.wst.css.core.internal.util.CSSUtil.isLength(tokens[i]) || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_NUMBER) { - width = tokens[i].image; - } - else if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_HASH) { - color = tokens[i].image; - } - else if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_FUNCTION) { - StringBuffer buf = new StringBuffer(); - while (i < tokens.length) { - if (tokens[i].kind == CSSRegionContexts.CSS_COMMENT) { - i++; - continue; - } - buf.append(tokens[i].image); - if (tokens[i++].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE) - break; - } - i--; - color = buf.toString(); - } - } - - if (propColor == propDest) - return color; - else if (propStyle == propDest) - return style; - else if (propWidth == propDest) - return width; - else - return null; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/BorderWidthShorthandAdapter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/BorderWidthShorthandAdapter.java deleted file mode 100644 index 7198eb1dd1..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/BorderWidthShorthandAdapter.java +++ /dev/null @@ -1,130 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.util.declaration; - - - -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.parserz.CSSTextParser; -import org.eclipse.wst.css.core.internal.parserz.CSSTextToken; - - -/** - * For 'border-width' property 'border-width' will be expanded to - * 'border-top-width', 'border-right-width', 'border-bottom-width', - * 'border-left-width', - */ -public class BorderWidthShorthandAdapter implements IShorthandAdapter { - - /** - * - */ - public BorderWidthShorthandAdapter() { - super(); - } - - /** - * - */ - public boolean expand(String source, CSSPropertyContext dest) { - CSSTextParser parser = new CSSTextParser(CSSTextParser.MODE_DECLARATION_VALUE, source); - CSSTextToken[] tokens = parser.getTokens(); - if (tokens.length <= 0) { - return false; - } - String[] idents = new String[4]; - int j = 0; - for (int i = 0; i < tokens.length; i++) { - if (org.eclipse.wst.css.core.internal.util.CSSUtil.isLength(tokens[i]) || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_NUMBER || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_IDENT) - idents[j++] = tokens[i].image; - if (j == 4) - break; - } - - String[] dests = new String[4]; - if (j == 0) - return true; - else if (j == 1) { - dests[0] = dests[1] = dests[2] = dests[3] = idents[0]; - } - else if (j == 2) { - dests[0] = dests[2] = idents[0]; - dests[1] = dests[3] = idents[1]; - } - else if (j == 3) { - dests[0] = idents[0]; - dests[1] = dests[3] = idents[1]; - dests[2] = idents[2]; - } - else { - for (int k = 0; k < 4; k++) - dests[k] = idents[k]; - } - dest.set(PropCMProperty.P_BORDER_TOP_WIDTH, dests[0]); - dest.set(PropCMProperty.P_BORDER_RIGHT_WIDTH, dests[1]); - dest.set(PropCMProperty.P_BORDER_BOTTOM_WIDTH, dests[2]); - dest.set(PropCMProperty.P_BORDER_LEFT_WIDTH, dests[3]); - - return true; - } - - /** - * - */ - public String extract(String source, PropCMProperty propDest) { - CSSTextParser parser = new CSSTextParser(CSSTextParser.MODE_DECLARATION_VALUE, source); - CSSTextToken[] tokens = parser.getTokens(); - if (tokens.length <= 0) { - return null; - } - String[] idents = new String[4]; - int j = 0; - for (int i = 0; i < tokens.length; i++) { - if (org.eclipse.wst.css.core.internal.util.CSSUtil.isLength(tokens[i]) || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_NUMBER || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_IDENT) - idents[j++] = tokens[i].image; - if (j == 4) - break; - } - - if (j == 0) - return null; - else if (j == 1) - return idents[0]; - else if (j == 2) { - if (propDest.getName() == PropCMProperty.P_BORDER_TOP_WIDTH || propDest.getName() == PropCMProperty.P_BORDER_BOTTOM_WIDTH) - return idents[0]; - else - return idents[1]; - } - else if (j == 3) { - if (propDest.getName() == PropCMProperty.P_BORDER_TOP_WIDTH) - return idents[0]; - else if (propDest.getName() == PropCMProperty.P_BORDER_BOTTOM_WIDTH) - return idents[2]; - else - return idents[1]; - } - else { - if (propDest.getName() == PropCMProperty.P_BORDER_TOP_WIDTH) - return idents[0]; - else if (propDest.getName() == PropCMProperty.P_BORDER_RIGHT_WIDTH) - return idents[1]; - else if (propDest.getName() == PropCMProperty.P_BORDER_BOTTOM_WIDTH) - return idents[2]; - else if (propDest.getName() == PropCMProperty.P_BORDER_LEFT_WIDTH) - return idents[3]; - else - return null; - } - - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/CSSPropertyContext.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/CSSPropertyContext.java deleted file mode 100644 index 1b83a8fa76..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/CSSPropertyContext.java +++ /dev/null @@ -1,2997 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.util.declaration; - - - -import java.util.Collection; -import java.util.Enumeration; -import java.util.HashSet; -import java.util.Hashtable; -import java.util.Iterator; - -import org.eclipse.wst.css.core.internal.contentmodel.PropCMProperty; -import org.eclipse.wst.css.core.internal.contentmodel.PropCMSubProperty; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleDeclaration; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSValue; -import org.w3c.dom.css.CSSValue; - - -/** - * - */ -public class CSSPropertyContext implements ICSS2Properties { - - protected Hashtable fProperties = new Hashtable(); - HashSet fModified = null; - private static java.util.Hashtable subPropertyAdapters; - private static java.util.Hashtable shorthandAdapters; - - /** - * - */ - public CSSPropertyContext() { - super(); - initShorthandAdapters(); - initSubPropertyAdapters(); - } - - /** - * - */ - public CSSPropertyContext(ICSSStyleDeclaration decl) { - super(); - initShorthandAdapters(); - initSubPropertyAdapters(); - initialize(decl); - } - - /** - * This function exports all property/value pairs to 'decl' declaration - */ - public void applyFull(ICSSStyleDeclaration decl) { - if (decl == null) - return; - Enumeration keys = fProperties.keys(); - while (keys.hasMoreElements()) { - Object key = keys.nextElement(); - Object val = fProperties.get(key); - String value = (val instanceof ICSSValue) ? ((ICSSValue) val).getCSSValueText() : val.toString(); - - if (value == null || value.length() <= 0) - decl.removeProperty(key.toString()); - else - decl.setProperty(key.toString(), value.trim(), (val instanceof ValueData && ((ValueData) val).important) ? "!important" : "");//$NON-NLS-2$//$NON-NLS-1$ - } - } - - /** - * This function exports modified property/value pairs to 'decl' - * declaration - */ - public void applyModified(ICSSStyleDeclaration decl) { - if (decl == null || fModified == null) - return; - Iterator it = fModified.iterator(); - while (it.hasNext()) { - Object key = it.next(); - Object val = fProperties.get(key); - String value = (val instanceof ICSSValue) ? ((ICSSValue) val).getCSSValueText() : ((val != null) ? val.toString() : null); - - if (value == null || value.length() <= 0) - decl.removeProperty(key.toString()); - else - decl.setProperty(key.toString(), value.trim(), (val instanceof ValueData && ((ValueData) val).important) ? "!important" : "");//$NON-NLS-2$//$NON-NLS-1$ - } - } - - /** - * create clone of this context - */ - public Object clone() { - CSSPropertyContext clone = new CSSPropertyContext(); - if (this.fModified != null) - clone.fModified = (HashSet) this.fModified.clone(); - else - clone.fModified = null; - clone.fProperties = (Hashtable) this.fProperties.clone(); - return clone; - } - - /** - * This function expands a short-hand property's value to each leaf - * property's value and set them to 'foreign' - * - * For example, given [prop=border-top, value="solid 1px yellow"] will be - * expanded to [border-top-color=yellow, border-top-style=solid, - * border-top-width=1px] and they are stored to 'foreign' context. - * - * Note that recursively shorthanded property like 'border' will be - * expanded to all descendant leaf properties like - * 'border-[top/right/bottom/left]-[color/style/width]' - * - * @param prop - * org.eclipse.wst.css.core.contentmodel.PropCMProperty - * @param value - * java.lang.String - * @param foreign - * org.eclipse.wst.css.core.util.declaration.CSSPropertyContext - */ - protected static void expandToLeaf(PropCMProperty prop, String value, CSSPropertyContext foreign) { - // expand shorthand property - if (value != null && value.trim().length() > 0) { - IShorthandAdapter adapter = (IShorthandAdapter) shorthandAdapters.get(prop); - if (adapter != null) { - adapter.expand(value, foreign); - foreign.set(prop.getName(), "");//$NON-NLS-1$ - for (int i = 0; i < prop.getNumChild(); i++) { - Object obj = prop.getChildAt(i); - if (obj instanceof PropCMProperty && !(obj instanceof PropCMSubProperty)) { - PropCMProperty expandedProp = (PropCMProperty) obj; - value = foreign.get(expandedProp.getName()); - expandToLeaf(expandedProp, value, foreign); - } - } - } - else if (!value.equals(foreign.get(prop.getName()))) { - foreign.set(prop.getName(), value); - } - } - } - - /** - * This function returns value of 'prop'. Querying value mechanism checks - * short-hand properties. - * - * For example, given "background=fixed white" is set in this insatnce and - * param "prop=background-color", the return value will be "white". - * - */ - public java.lang.String get(org.eclipse.wst.css.core.internal.contentmodel.PropCMProperty prop) { - if (prop instanceof PropCMSubProperty) { - ISubPropertyAdapter adapter = (ISubPropertyAdapter) subPropertyAdapters.get(prop.getName()); - if (adapter != null) - return adapter.get(this); - } - String str = get(prop.getName()); - if ((str == null || str.length() == 0) && prop.getShorthandContainerCount() > 0) { - // get expanded property - for (int i = 0; i < prop.getShorthandContainerCount(); i++) { - PropCMProperty propParent = prop.shorthandContainerAt(i); - String strParent = get(propParent); - if (strParent != null && strParent.trim().length() > 0) { - IShorthandAdapter adapter = (IShorthandAdapter) shorthandAdapters.get(propParent); - if (adapter != null) { - String extractedValue = adapter.extract(strParent, prop); - return (extractedValue != null) ? extractedValue : "";//$NON-NLS-1$ - } - } - } - } - return str; - } - - /** - * This function returns value of 'prop'. Querying value mechanism does - * not care shorthand properties. - */ - protected String get(String propName) { - String str = null; - Object obj = fProperties.get(propName); - if (obj != null) { - if (obj instanceof ICSSValue) - str = ((ICSSValue) obj).getCSSValueText(); - else - str = obj.toString(); - } - return (str != null) ? str : "";//$NON-NLS-1$ - } - - /** - * See the azimuth property definition in CSS2. - * - * @exception org.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getAzimuth() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_AZIMUTH)); - } - - /** - * See the background property definition in CSS2. - * - * @exception org.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getBackground() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_BG)); - } - - /** - * See the background-attachment property definition in CSS2. - * - * @exception org.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getBackgroundAttachment() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_BG_ATTACHMENT)); - } - - /** - * See the background-color property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getBackgroundColor() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_BG_COLOR)); - } - - /** - * See the background-image property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getBackgroundImage() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_BG_IMAGE)); - } - - /** - * See the background-position property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getBackgroundPosition() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_BG_POSITION)); - } - - /** - * - */ - public java.lang.String getBackgroundPositionX() { - return get(PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_BG_POSITION_X)); - /* - * String str = null; Object obj = - * fProperties.get(PropCMProperty.P_BG_POSITION); if (obj != null) { - * PropCMProperty propX = - * PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_BG_POSITION_X); - * PropCMProperty propY = - * PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_BG_POSITION_Y); - * if (obj instanceof ICSSValueList) { ICSSValueList list = - * (ICSSValueList) obj; ICSSValue value = (ICSSValue) list.item(0); if - * (value.getCssValueType() == CSSValue.CSS_PRIMITIVE_VALUE) { - * ICSSPrimitiveValue prim = (ICSSPrimitiveValue) value; if - * (prim.getPrimitiveType() == CSSPrimitiveValue.CSS_IDENT) { // check - * not top or bottom if (!propX.canHave(prim.getStringValue()) && - * propY.canHave(prim.getStringValue())) { // case order is vertical -> - * horizontal value = (ICSSValue) list.item(1); } } } str = - * value.getCSSValueText(); } else if (obj instanceof ICSSValue) { str = - * ((ICSSValue)obj).getCSSValueText(); } else str = obj.toString(); } - * return (str != null) ? str : ""; - */ - } - - /** - * - */ - public java.lang.String getBackgroundPositionY() { - return get(PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_BG_POSITION_Y)); - /* - * String str = null; Object obj = - * fProperties.get(PropCMProperty.P_BG_POSITION); if (obj != null) { - * PropCMProperty propX = - * PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_BG_POSITION_X); - * PropCMProperty propY = - * PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_BG_POSITION_Y); - * if (obj instanceof ICSSValueList) { ICSSValueList list = - * (ICSSValueList) obj; int index = 1; ICSSValue value = (ICSSValue) - * list.item(0); if (value.getCssValueType() == - * CSSValue.CSS_PRIMITIVE_VALUE) { ICSSPrimitiveValue prim = - * (ICSSPrimitiveValue) value; if (prim.getPrimitiveType() == - * CSSPrimitiveValue.CSS_IDENT) { // check not top or bottom if - * (!propX.canHave(prim.getStringValue()) && - * propY.canHave(prim.getStringValue())) { // case order is vertical -> - * horizontal index = 0; } } } str = - * ((ICSSValue)list.item(index)).getCSSValueText(); } else if (obj - * instanceof ICSSValue) { // do nothing --- value is null } else str = - * obj.toString(); } return (str != null) ? str : ""; - */ - } - - /** - * See the background-repeat property definition in CSS2. - * - * @exception org.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getBackgroundRepeat() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_BG_REPEAT)); - } - - /** - * See the border property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getBorder() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER)); - } - - /** - * See the border-bottom property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getBorderBottom() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_BOTTOM)); - } - - /** - * See the border-bottom-color property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getBorderBottomColor() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_BOTTOM_COLOR)); - } - - /** - * See the border-bottom-style property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getBorderBottomStyle() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_BOTTOM_STYLE)); - } - - /** - * See the border-bottom-width property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getBorderBottomWidth() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_BOTTOM_WIDTH)); - } - - /** - * See the border-collapse property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getBorderCollapse() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_COLLAPSE)); - } - - /** - * See the border-color property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getBorderColor() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_COLOR)); - } - - /** - * See the border-left property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getBorderLeft() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_LEFT)); - } - - /** - * See the border-left-color property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getBorderLeftColor() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_LEFT_COLOR)); - } - - /** - * See the border-left-style property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getBorderLeftStyle() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_LEFT_STYLE)); - } - - /** - * See the border-left-width property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getBorderLeftWidth() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_LEFT_WIDTH)); - } - - /** - * See the border-right property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getBorderRight() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_RIGHT)); - } - - /** - * See the border-right-color property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getBorderRightColor() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_RIGHT_COLOR)); - } - - /** - * See the border-right-style property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getBorderRightStyle() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_RIGHT_STYLE)); - } - - /** - * See the border-right-width property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getBorderRightWidth() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_RIGHT_WIDTH)); - } - - /** - * See the border-spacing property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getBorderSpacing() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_SPACING)); - } - - /** - * See the border-style property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getBorderStyle() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_STYLE)); - } - - /** - * See the border-top property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getBorderTop() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_TOP)); - } - - /** - * See the border-top-color property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getBorderTopColor() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_TOP_COLOR)); - } - - /** - * See the border-top-style property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getBorderTopStyle() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_TOP_STYLE)); - } - - /** - * See the border-top-width property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getBorderTopWidth() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_TOP_WIDTH)); - } - - /** - * See the border-width property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getBorderWidth() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_WIDTH)); - } - - /** - * See the bottom property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getBottom() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_BOTTOM)); - } - - /** - * See the caption-side property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getCaptionSide() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_CAPTION_SIDE)); - } - - /** - * See the clear property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getClear() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_CLEAR)); - } - - /** - * See the clip property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getClip() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_CLIP)); - } - - /** - * - */ - public String getClipBottom() { - return get(PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_CLIP_BOTTOM)); - } - - /** - * - */ - public String getClipLeft() { - return get(PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_CLIP_LEFT)); - } - - /** - * - */ - public String getClipRight() { - return get(PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_CLIP_RIGHT)); - } - - /** - * - */ - public String getClipTop() { - return get(PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_CLIP_TOP)); - } - - /** - * See the color property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getColor() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_COLOR)); - } - - /** - * See the content property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getContent() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_CONTENT)); - } - - /** - * See the counter-increment property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getCounterIncrement() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_COUNTER_INCREMENT)); - } - - /** - * See the counter-reset property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getCounterReset() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_COUNTER_RESET)); - } - - /** - * See the float property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getCssFloat() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_FLOAT)); - } - - /** - * See the cue property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getCue() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_CUE)); - } - - /** - * See the cue-after property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getCueAfter() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_CUE_AFTER)); - } - - /** - * See the cue-before property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getCueBefore() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_CUE_BEFORE)); - } - - /** - * See the cursor property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getCursor() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_CURSOR)); - } - - /** - * See the direction property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getDirection() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_DIRECTION)); - } - - /** - * See the display property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getDisplay() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_DISPLAY)); - } - - /** - * See the elevation property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getElevation() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_ELEVATION)); - } - - /** - * See the empty-cells property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getEmptyCells() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_EMPTY_CELLS)); - } - - /** - * See the font property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getFont() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_FONT)); - } - - /** - * See the font-family property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getFontFamily() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_FONT_FAMILY)); - } - - /** - * See the font-size property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getFontSize() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_FONT_SIZE)); - } - - /** - * See the font-size-adjust property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getFontSizeAdjust() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_FONT_SIZE_ADJUST)); - } - - /** - * See the font-stretch property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getFontStretch() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_FONT_STRETCH)); - } - - /** - * See the font-style property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getFontStyle() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_FONT_STYLE)); - } - - /** - * See the font-variant property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getFontVariant() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_FONT_VARIANT)); - } - - /** - * See the font-weight property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getFontWeight() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_FONT_WEIGHT)); - } - - /** - * See the height property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getHeight() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_HEIGHT)); - } - - /** - * See the left property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getLeft() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_LEFT)); - } - - /** - * See the letter-spacing property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getLetterSpacing() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_LETTER_SPACING)); - } - - /** - * See the line-height property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getLineHeight() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_LINE_HEIGHT)); - } - - /** - * See the list-style property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getListStyle() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_LIST_STYLE)); - } - - /** - * See the list-style-image property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getListStyleImage() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_LIST_STYLE_IMAGE)); - } - - /** - * See the list-style-position property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getListStylePosition() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_LIST_STYLE_POSITION)); - } - - /** - * See the list-style-type property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getListStyleType() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_LIST_STYLE_TYPE)); - } - - /** - * See the margin property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getMargin() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_MARGIN)); - } - - /** - * See the margin-bottom property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getMarginBottom() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_MARGIN_BOTTOM)); - } - - /** - * See the margin-left property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getMarginLeft() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_MARGIN_LEFT)); - } - - /** - * See the margin-right property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getMarginRight() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_MARGIN_RIGHT)); - } - - /** - * See the margin-top property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getMarginTop() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_MARGIN_TOP)); - } - - /** - * See the marker-offset property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getMarkerOffset() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_MARKER_OFFSET)); - } - - /** - * See the marks property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getMarks() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_MARKS)); - } - - /** - * See the max-height property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getMaxHeight() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_MAX_HEIGHT)); - } - - /** - * See the max-width property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getMaxWidth() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_MAX_WIDTH)); - } - - /** - * See the min-height property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getMinHeight() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_MIN_HEIGHT)); - } - - /** - * See the min-width property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getMinWidth() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_MIN_WIDTH)); - } - - /** - * See the orphans property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getOrphans() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_ORPHANS)); - } - - /** - * See the outline property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getOutline() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_OUTLINE)); - } - - /** - * See the outline-color property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getOutlineColor() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_OUTLINE_COLOR)); - } - - /** - * See the outline-style property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getOutlineStyle() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_OUTLINE_STYLE)); - } - - /** - * See the outline-width property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getOutlineWidth() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_OUTLINE_WIDTH)); - } - - /** - * See the overflow property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getOverflow() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_OVERFLOW)); - } - - /** - * See the padding property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getPadding() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_PADDING)); - } - - /** - * See the padding-bottom property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getPaddingBottom() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_PADDING_BOTTOM)); - } - - /** - * See the padding-left property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getPaddingLeft() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_PADDING_LEFT)); - } - - /** - * See the padding-right property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getPaddingRight() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_PADDING_RIGHT)); - } - - /** - * See the padding-top property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getPaddingTop() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_PADDING_TOP)); - } - - /** - * See the page property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getPage() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_PAGE)); - } - - /** - * See the page-break-after property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getPageBreakAfter() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_PAGE_BREAK_AFTER)); - } - - /** - * See the page-break-before property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getPageBreakBefore() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_PAGE_BREAK_BEFORE)); - } - - /** - * See the page-break-inside property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getPageBreakInside() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_PAGE_BREAK_INSIDE)); - } - - /** - * See the pause property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getPause() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_PAUSE)); - } - - /** - * See the pause-after property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getPauseAfter() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_PAUSE_AFTER)); - } - - /** - * See the pause-before property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getPauseBefore() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_PAUSE_BEFORE)); - } - - /** - * See the pitch property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getPitch() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_PITCH)); - } - - /** - * See the pitch-range property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getPitchRange() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_PITCH_RANGE)); - } - - /** - * See the play-during property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getPlayDuring() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_PLAY_DURING)); - } - - /** - * See the position property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getPosition() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_POSITION)); - } - - /** - * See the quotes property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getQuotes() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_QUOTES)); - } - - /** - * See the richness property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getRichness() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_RICHNESS)); - } - - /** - * See the right property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getRight() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_RIGHT)); - } - - /** - * @return org.eclipse.wst.css.core.util.declaration.IShorthandAdapter - * @param org.eclipse.wst.css.core.contentmodel.PropCMProperty - */ - public static IShorthandAdapter getShorthandAdapter(PropCMProperty prop) { - return (IShorthandAdapter) shorthandAdapters.get(prop); - } - - /** - * See the size property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getSize() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_SIZE)); - } - - /** - * See the speak property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getSpeak() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_SPEAK)); - } - - /** - * See the speak-header property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getSpeakHeader() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_SPEAK_HEADER)); - } - - /** - * See the speak-numeral property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getSpeakNumeral() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_SPEAK_NUMERAL)); - } - - /** - * See the speak-punctuation property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getSpeakPunctuation() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_SPEAK_PUNCTUATION)); - } - - /** - * See the speech-rate property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getSpeechRate() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_SPEECH_RATE)); - } - - /** - * See the stress property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getStress() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_STRESS)); - } - - /** - * See the table-layout property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getTableLayout() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_TABLE_LAYOUT)); - } - - /** - * See the text-align property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getTextAlign() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_TEXT_ALIGN)); - } - - /** - * See the text-decoration property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getTextDecoration() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_TEXT_DECORATION)); - } - - /** - * See the text-indent property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getTextIndent() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_TEXT_INDENT)); - } - - /** - * See the text-shadow property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getTextShadow() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_TEXT_SHADOW)); - } - - /** - * See the text-transform property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getTextTransform() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_TEXT_TRANSFORM)); - } - - /** - * See the top property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getTop() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_TOP)); - } - - /** - * See the unicode-bidi property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getUnicodeBidi() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_UNICODE_BIDI)); - } - - /** - * See the vertical-align property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getVerticalAlign() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_VERTICAL_ALIGN)); - } - - /** - * See the visibility property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getVisibility() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_VISIBILITY)); - } - - /** - * See the voice-family property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getVoiceFamily() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_VOICE_FAMILY)); - } - - /** - * See the volume property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getVolume() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_VOLUME)); - } - - /** - * See the white-space property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getWhiteSpace() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_WHITE_SPACE)); - } - - /** - * See the widows property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getWidows() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_WIDOWS)); - } - - /** - * See the width property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getWidth() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_WIDTH)); - } - - /** - * See the word-spacing property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getWordSpacing() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_WORD_SPACING)); - } - - /** - * See the z-index property definition in CSS2. - * - * @exceptionorg.w3c.dom.DOMException - * SYNTAX_ERR: Raised if the new value has a syntax error - * and is unparsable. <br> - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public String getZIndex() { - return get(PropCMProperty.getInstanceOf(PropCMProperty.P_Z_INDEX)); - } - - /** - * - */ - public void initialize(ICSSStyleDeclaration decl) { - fProperties.clear(); - if (fModified != null) - fModified.clear(); - if (decl == null) - return; - - int nProperties = decl.getLength(); - for (int i = 0; i < nProperties; i++) { - String propName = decl.item(i); - if (propName != null) { - String propN = propName.trim().toLowerCase(); - if (propN.length() != 0) { - CSSValue val = decl.getPropertyCSSValue(propName); - if (val != null) - fProperties.put(propN, val); - } - } - } - } - - /** - * - */ - static void initShorthandAdapters() { - if (shorthandAdapters == null) { - shorthandAdapters = new Hashtable(); - // register - shorthandAdapters.put(PropCMProperty.getInstanceOf(PropCMProperty.P_BG), new BackgroundShorthandAdapter()); - shorthandAdapters.put(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER), new BorderShorthandAdapter()); - shorthandAdapters.put(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_COLOR), new BorderColorShorthandAdapter()); - shorthandAdapters.put(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_STYLE), new BorderStyleShorthandAdapter()); - shorthandAdapters.put(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_WIDTH), new BorderWidthShorthandAdapter()); - shorthandAdapters.put(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_TOP), new BorderTopShorthandAdapter()); - shorthandAdapters.put(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_RIGHT), new BorderRightShorthandAdapter()); - shorthandAdapters.put(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_BOTTOM), new BorderBottomShorthandAdapter()); - shorthandAdapters.put(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_LEFT), new BorderLeftShorthandAdapter()); - shorthandAdapters.put(PropCMProperty.getInstanceOf(PropCMProperty.P_FONT), new FontShorthandAdapter()); - shorthandAdapters.put(PropCMProperty.getInstanceOf(PropCMProperty.P_LIST_STYLE), new ListStyleShorthandAdapter()); - shorthandAdapters.put(PropCMProperty.getInstanceOf(PropCMProperty.P_MARGIN), new MarginShorthandAdapter()); - shorthandAdapters.put(PropCMProperty.getInstanceOf(PropCMProperty.P_PADDING), new PaddingShorthandAdapter()); - - } - } - - /** - * - */ - static void initSubPropertyAdapters() { - if (subPropertyAdapters == null) { - subPropertyAdapters = new Hashtable(); - - // register - subPropertyAdapters.put(PropCMSubProperty.PSUB_BG_POSITION_X, new BackgroundPositionXSubStyleAdapter()); - subPropertyAdapters.put(PropCMSubProperty.PSUB_BG_POSITION_Y, new BackgroundPositionYSubStyleAdapter()); - subPropertyAdapters.put(PropCMSubProperty.PSUB_CLIP_TOP, new ClipTopSubStyleAdapter()); - subPropertyAdapters.put(PropCMSubProperty.PSUB_CLIP_RIGHT, new ClipRightSubStyleAdapter()); - subPropertyAdapters.put(PropCMSubProperty.PSUB_CLIP_BOTTOM, new ClipBottomSubStyleAdapter()); - subPropertyAdapters.put(PropCMSubProperty.PSUB_CLIP_LEFT, new ClipLeftSubStyleAdapter()); - } - } - - /** - * - */ - public boolean isModified() { - return (fModified != null && fModified.size() != 0); - } - - /** - * - */ - public Enumeration properties() { - return fProperties.keys(); - } - - /** - * - */ - public Iterator propertiesModified() { - if (fModified != null) { - return ((Collection) fModified.clone()).iterator(); - } - else - return new Iterator() { - public boolean hasNext() { - return false; - } - - public Object next() { - return null; - } - - public void remove() { - } - }; - } - - /** - * This function expands the value of shorthand 'prop' to 'foreign' - * context. Note that if this has parent shorthand properties of 'prop', - * they are all expanded to 'foreign' context. - */ - protected void recursiveExtract(PropCMProperty prop, CSSPropertyContext foreign) { - // expand shorthand property - for (int i = 0; i < prop.getShorthandContainerCount(); i++) { - recursiveExtract(prop.shorthandContainerAt(i), foreign); - } - String str = get(prop.getName()); - if (str == null || str.trim().length() == 0) - str = foreign.get(prop.getName()); - if (str != null && str.trim().length() > 0) { - IShorthandAdapter adapter = (IShorthandAdapter) shorthandAdapters.get(prop); - if (adapter != null) { - adapter.expand(str, foreign); - foreign.set(prop.getName(), "");//$NON-NLS-1$ - } - } - } - - /** - * - */ - protected void removeDescendants(PropCMProperty prop) { - if (prop.isShorthand()) { - // remove properties - int n = prop.getNumChild(); - for (int i = 0; i < n; i++) { - Object obj = prop.getChildAt(i); - if (obj instanceof PropCMProperty) { - removeDescendants((PropCMProperty) obj); - - String str = get(obj.toString()); - if (str != null && str.length() > 0) - set(obj.toString(), "");//$NON-NLS-1$ - } - } - } - } - - /** - * - */ - public void resetModified() { - if (fModified != null) - fModified.clear(); - } - - /** - * This function sets the pair of 'prop'/'value'. If shorthand properties - * related to 'prop' are already defined, they will be expanded to avoid - * property confliction. If descendant properties of 'prop' are already - * defined, they will be removed to avoid property confliction. - * - */ - public void set(org.eclipse.wst.css.core.internal.contentmodel.PropCMProperty prop, java.lang.String value) throws org.w3c.dom.DOMException { - if (prop instanceof PropCMSubProperty) { - ISubPropertyAdapter adapter = (ISubPropertyAdapter) subPropertyAdapters.get(prop.getName()); - if (adapter != null) { - adapter.set(this, value); - return; - } - } - if (prop.getShorthandContainerCount() > 0) { - // expand shorthand property - CSSPropertyContext context = new CSSPropertyContext(); - for (int i = 0; i < prop.getShorthandContainerCount(); i++) { - recursiveExtract(prop.shorthandContainerAt(i), context); - } - Enumeration properties = context.properties(); - while (properties.hasMoreElements()) { - String propForeign = properties.nextElement().toString(); - set(propForeign, context.get(propForeign)); - } - } - - removeDescendants(prop); - - set(prop.getName(), value); - } - - /** - * This function sets the pair of 'propName'/'value' regardless of its - * shorthand properties. - */ - protected void set(String propName, String value) throws org.w3c.dom.DOMException { - String key = propName; - if (value == null) - fProperties.remove(key); - else - fProperties.put(key, value); - if (fModified == null) - fModified = new HashSet(); - fModified.add(key); - } - - /** - * - */ - public void setAzimuth(String azimuth) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_AZIMUTH), azimuth); - } - - /** - * - */ - public void setBackground(String background) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_BG), background); - } - - /** - * - */ - public void setBackgroundAttachment(String backgroundAttachment) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_BG_ATTACHMENT), backgroundAttachment); - } - - /** - * - */ - public void setBackgroundColor(String backgroundColor) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_BG_COLOR), backgroundColor); - } - - /** - * - */ - public void setBackgroundImage(String backgroundImage) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_BG_IMAGE), backgroundImage); - } - - /** - * - */ - public void setBackgroundPosition(String backgroundPosition) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_BG_POSITION), backgroundPosition); - } - - /** - * - */ - public void setBackgroundPositionX(java.lang.String backgroundPositionX) throws org.w3c.dom.DOMException { - set(PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_BG_POSITION_X), backgroundPositionX); - /* - * String newValue = null; String valH = backgroundPositionX; String - * valV = getBackgroundPositionY(); if (valV == null || - * valV.length()== 0) newValue = valH; else if (valH == null || - * valH.length() == 0) { Collection valX = - * PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_BG_POSITION_X).getValues(); - * Collection valY = - * PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_BG_POSITION_Y).getValues(); - * PropCMUtil.minus(valY,valX); Iterator it = valY.iterator(); - * while(it.hasNext()) { Object obj = it.next(); if - * (obj.toString().equals(valV.toLowerCase())) { // need not - * compensate for ... newValue = valV; break; } } // compensate for - * Horizontal value if (newValue == null) newValue = "0% " + valV; } - * else newValue = valH + " " + valV; setBackgroundPosition(newValue); - */ - } - - /** - * - */ - public void setBackgroundPositionY(java.lang.String backgroundPositionY) throws org.w3c.dom.DOMException { - set(PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_BG_POSITION_Y), backgroundPositionY); - /* - * String newValue = null; String valH = getBackgroundPositionX(); - * String valV = backgroundPositionY; if (valV == null || - * valV.length()== 0) newValue = valH; else if (valH == null || - * valH.length() == 0) { Collection valX = - * PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_BG_POSITION_X).getValues(); - * Collection valY = - * PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_BG_POSITION_Y).getValues(); - * PropCMUtil.minus(valY,valX); Iterator it = valY.iterator(); - * while(it.hasNext()) { Object obj = it.next(); if - * (obj.toString().equals(valV.toLowerCase())) { // need not - * compensate for ... newValue = valV; break; } } // compensate for - * Horizontal value if (newValue == null) newValue = "0% " + valV; } - * else newValue = valH + " " + valV; setBackgroundPosition(newValue); - */ - } - - /** - * - */ - public void setBackgroundRepeat(String backgroundRepeat) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_BG_REPEAT), backgroundRepeat); - } - - /** - * - */ - public void setBorder(String border) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER), border); - } - - /** - * - */ - public void setBorderBottom(String borderBottom) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_BOTTOM), borderBottom); - } - - /** - * - */ - public void setBorderBottomColor(String borderBottomColor) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_BOTTOM_COLOR), borderBottomColor); - } - - /** - * - */ - public void setBorderBottomStyle(String borderBottomStyle) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_BOTTOM_STYLE), borderBottomStyle); - } - - /** - * - */ - public void setBorderBottomWidth(String borderBottomWidth) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_BOTTOM_WIDTH), borderBottomWidth); - } - - /** - * - */ - public void setBorderCollapse(String borderCollapse) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_COLLAPSE), borderCollapse); - } - - /** - * - */ - public void setBorderColor(String borderColor) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_COLOR), borderColor); - } - - /** - * - */ - public void setBorderLeft(String borderLeft) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_LEFT), borderLeft); - } - - /** - * - */ - public void setBorderLeftColor(String borderLeftColor) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_LEFT_COLOR), borderLeftColor); - } - - /** - * - */ - public void setBorderLeftStyle(String borderLeftStyle) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_LEFT_STYLE), borderLeftStyle); - } - - /** - * - */ - public void setBorderLeftWidth(String borderLeftWidth) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_LEFT_WIDTH), borderLeftWidth); - } - - /** - * - */ - public void setBorderRight(String borderRight) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_RIGHT), borderRight); - } - - /** - * - */ - public void setBorderRightColor(String borderRightColor) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_RIGHT_COLOR), borderRightColor); - } - - /** - * - */ - public void setBorderRightStyle(String borderRightStyle) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_RIGHT_STYLE), borderRightStyle); - } - - /** - * - */ - public void setBorderRightWidth(String borderRightWidth) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_RIGHT_WIDTH), borderRightWidth); - } - - /** - * - */ - public void setBorderSpacing(String borderSpacing) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_SPACING), borderSpacing); - } - - /** - * - */ - public void setBorderStyle(String borderStyle) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_STYLE), borderStyle); - } - - /** - * - */ - public void setBorderTop(String borderTop) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_TOP), borderTop); - } - - /** - * - */ - public void setBorderTopColor(String borderTopColor) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_TOP_COLOR), borderTopColor); - } - - /** - * - */ - public void setBorderTopStyle(String borderTopStyle) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_TOP_STYLE), borderTopStyle); - } - - /** - * - */ - public void setBorderTopWidth(String borderTopWidth) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_TOP_WIDTH), borderTopWidth); - } - - /** - * - */ - public void setBorderWidth(String borderWidth) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_WIDTH), borderWidth); - } - - /** - * - */ - public void setBottom(String bottom) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_BOTTOM), bottom); - } - - /** - * - */ - public void setCaptionSide(String captionSide) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_CAPTION_SIDE), captionSide); - } - - /** - * - */ - public void setClear(String clear) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_CLEAR), clear); - } - - /** - * - */ - public void setClip(String clip) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_CLIP), clip); - } - - /** - * - */ - public void setClipBottom(java.lang.String clip) throws org.w3c.dom.DOMException { - set(PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_CLIP_BOTTOM), clip); - } - - /** - * - */ - public void setClipLeft(java.lang.String clip) throws org.w3c.dom.DOMException { - set(PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_CLIP_LEFT), clip); - } - - /** - * - */ - public void setClipRight(java.lang.String clip) throws org.w3c.dom.DOMException { - set(PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_CLIP_RIGHT), clip); - } - - /** - * - */ - public void setClipTop(java.lang.String clip) throws org.w3c.dom.DOMException { - set(PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_CLIP_TOP), clip); - } - - /** - * - */ - public void setColor(String color) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_COLOR), color); - } - - /** - * - */ - public void setContent(String content) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_CONTENT), content); - } - - /** - * - */ - public void setCounterIncrement(String counterIncrement) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_COUNTER_INCREMENT), counterIncrement); - } - - /** - * - */ - public void setCounterReset(String counterReset) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_COUNTER_RESET), counterReset); - } - - /** - * - */ - public void setCssFloat(String cssFloat) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_FLOAT), cssFloat); - } - - /** - * - */ - public void setCue(String cue) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_CUE), cue); - } - - /** - * - */ - public void setCueAfter(String cueAfter) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_CUE_AFTER), cueAfter); - } - - /** - * - */ - public void setCueBefore(String cueBefore) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_CUE_BEFORE), cueBefore); - } - - /** - * - */ - public void setCursor(String cursor) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_CURSOR), cursor); - } - - /** - * - */ - public void setDirection(String direction) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_DIRECTION), direction); - } - - /** - * - */ - public void setDisplay(String display) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_DISPLAY), display); - } - - /** - * - */ - public void setElevation(String elevation) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_ELEVATION), elevation); - } - - /** - * - */ - public void setEmptyCells(String emptyCells) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_EMPTY_CELLS), emptyCells); - } - - /** - * - */ - public void setFont(String font) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_FONT), font); - } - - /** - * - */ - public void setFontFamily(String fontFamily) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_FONT_FAMILY), fontFamily); - } - - /** - * - */ - public void setFontSize(String fontSize) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_FONT_SIZE), fontSize); - } - - /** - * - */ - public void setFontSizeAdjust(String fontSizeAdjust) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_FONT_SIZE_ADJUST), fontSizeAdjust); - } - - /** - * - */ - public void setFontStretch(String fontStretch) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_FONT_STRETCH), fontStretch); - } - - /** - * - */ - public void setFontStyle(String fontStyle) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_FONT_STYLE), fontStyle); - } - - /** - * - */ - public void setFontVariant(String fontVariant) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_FONT_VARIANT), fontVariant); - } - - /** - * - */ - public void setFontWeight(String fontWeight) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_FONT_WEIGHT), fontWeight); - } - - /** - * - */ - public void setHeight(String height) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_HEIGHT), height); - } - - /** - * - */ - public void setLeft(String left) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_LEFT), left); - } - - /** - * - */ - public void setLetterSpacing(String letterSpacing) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_LETTER_SPACING), letterSpacing); - } - - /** - * - */ - public void setLineHeight(String lineHeight) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_LINE_HEIGHT), lineHeight); - } - - /** - * - */ - public void setListStyle(String listStyle) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_LIST_STYLE), listStyle); - } - - /** - * - */ - public void setListStyleImage(String listStyleImage) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_LIST_STYLE_IMAGE), listStyleImage); - } - - /** - * - */ - public void setListStylePosition(String listStylePosition) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_LIST_STYLE_POSITION), listStylePosition); - } - - /** - * - */ - public void setListStyleType(String listStyleType) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_LIST_STYLE_TYPE), listStyleType); - } - - /** - * - */ - public void setMargin(String margin) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_MARGIN), margin); - } - - /** - * - */ - public void setMarginBottom(String marginBottom) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_MARGIN_BOTTOM), marginBottom); - } - - /** - * - */ - public void setMarginLeft(String marginLeft) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_MARGIN_LEFT), marginLeft); - } - - /** - * - */ - public void setMarginRight(String marginRight) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_MARGIN_RIGHT), marginRight); - } - - /** - * - */ - public void setMarginTop(String marginTop) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_MARGIN_TOP), marginTop); - } - - /** - * - */ - public void setMarkerOffset(String markerOffset) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_MARKER_OFFSET), markerOffset); - } - - /** - * - */ - public void setMarks(String marks) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_MARKS), marks); - } - - /** - * - */ - public void setMaxHeight(String maxHeight) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_MAX_HEIGHT), maxHeight); - } - - /** - * - */ - public void setMaxWidth(String maxWidth) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_MAX_WIDTH), maxWidth); - } - - /** - * - */ - public void setMinHeight(String minHeight) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_MIN_HEIGHT), minHeight); - } - - /** - * - */ - public void setMinWidth(String minWidth) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_MIN_WIDTH), minWidth); - } - - /** - * - */ - public void setOrphans(String orphans) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_ORPHANS), orphans); - } - - /** - * - */ - public void setOutline(String outline) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_OUTLINE), outline); - } - - /** - * - */ - public void setOutlineColor(String outlineColor) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_OUTLINE_COLOR), outlineColor); - } - - /** - * - */ - public void setOutlineStyle(String outlineStyle) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_OUTLINE_STYLE), outlineStyle); - } - - /** - * - */ - public void setOutlineWidth(String outlineWidth) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_OUTLINE_WIDTH), outlineWidth); - } - - /** - * - */ - public void setOverflow(String overflow) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_OVERFLOW), overflow); - } - - /** - * - */ - public void setPadding(String padding) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_PADDING), padding); - } - - /** - * - */ - public void setPaddingBottom(String paddingBottom) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_PADDING_BOTTOM), paddingBottom); - } - - /** - * - */ - public void setPaddingLeft(String paddingLeft) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_PADDING_LEFT), paddingLeft); - } - - /** - * - */ - public void setPaddingRight(String paddingRight) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_PADDING_RIGHT), paddingRight); - } - - /** - * - */ - public void setPaddingTop(String paddingTop) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_PADDING_TOP), paddingTop); - } - - /** - * - */ - public void setPage(String page) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_PAGE), page); - } - - /** - * - */ - public void setPageBreakAfter(String pageBreakAfter) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_PAGE_BREAK_AFTER), pageBreakAfter); - } - - /** - * - */ - public void setPageBreakBefore(String pageBreakBefore) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_PAGE_BREAK_BEFORE), pageBreakBefore); - } - - /** - * - */ - public void setPageBreakInside(String pageBreakInside) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_PAGE_BREAK_INSIDE), pageBreakInside); - } - - /** - * - */ - public void setPause(String pause) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_PAUSE), pause); - } - - /** - * - */ - public void setPauseAfter(String pauseAfter) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_PAUSE_AFTER), pauseAfter); - } - - /** - * - */ - public void setPauseBefore(String pauseBefore) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_PAUSE_BEFORE), pauseBefore); - } - - /** - * - */ - public void setPitch(String pitch) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_PITCH), pitch); - } - - /** - * - */ - public void setPitchRange(String pitchRange) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_PITCH_RANGE), pitchRange); - } - - /** - * - */ - public void setPlayDuring(String playDuring) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_PLAY_DURING), playDuring); - } - - /** - * - */ - public void setPosition(String position) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_POSITION), position); - } - - /** - * - */ - public void setQuotes(String quotes) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_QUOTES), quotes); - } - - /** - * - */ - public void setRichness(String richness) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_RICHNESS), richness); - } - - /** - * - */ - public void setRight(String right) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_RIGHT), right); - } - - /** - * - */ - public void setSize(String size) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_SIZE), size); - } - - /** - * - */ - public void setSpeak(String speak) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_SPEAK), speak); - } - - /** - * - */ - public void setSpeakHeader(String speakHeader) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_SPEAK_HEADER), speakHeader); - } - - /** - * - */ - public void setSpeakNumeral(String speakNumeral) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_SPEAK_NUMERAL), speakNumeral); - } - - /** - * - */ - public void setSpeakPunctuation(String speakPunctuation) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_SPEAK_PUNCTUATION), speakPunctuation); - } - - /** - * - */ - public void setSpeechRate(String speechRate) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_SPEECH_RATE), speechRate); - } - - /** - * - */ - public void setStress(String stress) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_STRESS), stress); - } - - /** - * - */ - public void setTableLayout(String tableLayout) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_TABLE_LAYOUT), tableLayout); - } - - /** - * - */ - public void setTextAlign(String textAlign) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_TEXT_ALIGN), textAlign); - } - - /** - * - */ - public void setTextDecoration(String textDecoration) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_TEXT_DECORATION), textDecoration); - } - - /** - * - */ - public void setTextIndent(String textIndent) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_TEXT_INDENT), textIndent); - } - - /** - * - */ - public void setTextShadow(String textShadow) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_TEXT_SHADOW), textShadow); - } - - /** - * - */ - public void setTextTransform(String textTransform) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_TEXT_TRANSFORM), textTransform); - } - - /** - * - */ - public void setTop(String top) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_TOP), top); - } - - /** - * - */ - public void setUnicodeBidi(String unicodeBidi) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_UNICODE_BIDI), unicodeBidi); - } - - /** - * - */ - public void setVerticalAlign(String verticalAlign) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_VERTICAL_ALIGN), verticalAlign); - } - - /** - * - */ - public void setVisibility(String visibility) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_VISIBILITY), visibility); - } - - /** - * - */ - public void setVoiceFamily(String voiceFamily) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_VOICE_FAMILY), voiceFamily); - } - - /** - * - */ - public void setVolume(String volume) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_VOLUME), volume); - } - - /** - * - */ - public void setWhiteSpace(String whiteSpace) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_WHITE_SPACE), whiteSpace); - } - - /** - * - */ - public void setWidows(String widows) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_WIDOWS), widows); - } - - /** - * - */ - public void setWidth(String width) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_WIDTH), width); - } - - /** - * - */ - public void setWordSpacing(String wordSpacing) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_WORD_SPACING), wordSpacing); - } - - /** - * - */ - public void setZIndex(String zIndex) throws org.w3c.dom.DOMException { - set(PropCMProperty.getInstanceOf(PropCMProperty.P_Z_INDEX), zIndex); - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/ClipBottomSubStyleAdapter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/ClipBottomSubStyleAdapter.java deleted file mode 100644 index 930dae1b77..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/ClipBottomSubStyleAdapter.java +++ /dev/null @@ -1,53 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.util.declaration; - - - -import org.eclipse.wst.css.core.internal.contentmodel.PropCMSubProperty; - -/** - * For bottom value of 'clip' property's rect() function - */ -public class ClipBottomSubStyleAdapter extends ClipSubStyleAdapter { - - /** - * - */ - public ClipBottomSubStyleAdapter() { - super(); - } - - /** - * - */ - String get(org.w3c.dom.css.Rect rect) { - return rect.getBottom().getCssText(); - } - - /** - * - */ - int index() { - return 2; - } - - /** - * - */ - public void set(ICSS2Properties properties, String value) throws org.w3c.dom.DOMException { - String top = properties.get(PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_CLIP_TOP)); - String right = properties.get(PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_CLIP_RIGHT)); - String left = properties.get(PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_CLIP_LEFT)); - - set(properties, top, right, value, left, value == null || value.length() == 0); - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/ClipLeftSubStyleAdapter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/ClipLeftSubStyleAdapter.java deleted file mode 100644 index 982b994216..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/ClipLeftSubStyleAdapter.java +++ /dev/null @@ -1,53 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.util.declaration; - - - -import org.eclipse.wst.css.core.internal.contentmodel.PropCMSubProperty; - -/** - * For left value of 'clip' property's rect() function - */ -public class ClipLeftSubStyleAdapter extends ClipSubStyleAdapter { - - /** - * - */ - public ClipLeftSubStyleAdapter() { - super(); - } - - /** - * - */ - String get(org.w3c.dom.css.Rect rect) { - return rect.getLeft().getCssText(); - } - - /** - * - */ - int index() { - return 3; - } - - /** - * - */ - public void set(ICSS2Properties properties, String value) throws org.w3c.dom.DOMException { - String top = properties.get(PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_CLIP_TOP)); - String right = properties.get(PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_CLIP_RIGHT)); - String bottom = properties.get(PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_CLIP_BOTTOM)); - - set(properties, top, right, bottom, value, value == null || value.length() == 0); - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/ClipRightSubStyleAdapter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/ClipRightSubStyleAdapter.java deleted file mode 100644 index cfd1e2379a..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/ClipRightSubStyleAdapter.java +++ /dev/null @@ -1,53 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.util.declaration; - - - -import org.eclipse.wst.css.core.internal.contentmodel.PropCMSubProperty; - -/** - * For right value of 'clip' property's rect() function - */ -public class ClipRightSubStyleAdapter extends ClipSubStyleAdapter { - - /** - * - */ - public ClipRightSubStyleAdapter() { - super(); - } - - /** - * - */ - String get(org.w3c.dom.css.Rect rect) { - return rect.getRight().getCssText(); - } - - /** - * - */ - int index() { - return 1; - } - - /** - * - */ - public void set(ICSS2Properties properties, String value) throws org.w3c.dom.DOMException { - String top = properties.get(PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_CLIP_TOP)); - String bottom = properties.get(PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_CLIP_BOTTOM)); - String left = properties.get(PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_CLIP_LEFT)); - - set(properties, top, value, bottom, left, value == null || value.length() == 0); - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/ClipSubStyleAdapter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/ClipSubStyleAdapter.java deleted file mode 100644 index 92e96bd8af..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/ClipSubStyleAdapter.java +++ /dev/null @@ -1,132 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.util.declaration; - - - -import org.eclipse.wst.css.core.internal.contentmodel.IValID; -import org.eclipse.wst.css.core.internal.contentmodel.PropCMProperty; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSValue; -import org.w3c.dom.css.Rect; - - -/** - * Abstract class for clip sub-properties - */ -abstract public class ClipSubStyleAdapter implements ISubPropertyAdapter { - - /** - * - */ - public ClipSubStyleAdapter() { - super(); - } - - /** - * - */ - public String get(ICSS2Properties properties) { - String str = null; - Object obj = properties.get(PropCMProperty.getInstanceOf(PropCMProperty.P_CLIP)); - if (obj != null) { - if (obj instanceof org.w3c.dom.css.Rect) { - str = get((org.w3c.dom.css.Rect) obj); - } - else { - if (obj instanceof ICSSValue) { - str = ((ICSSValue) obj).getCSSValueText(); - } - else { - str = obj.toString(); - } - str = str.trim().toLowerCase(); - int pos = str.indexOf("rect(");//$NON-NLS-1$ - if (pos >= 0) { - String subStr = null; - pos += 5; - int i = 0; - do { - int posEnd = str.indexOf(",", pos);//$NON-NLS-1$ - if (posEnd < 0) - posEnd = str.indexOf(")", pos);//$NON-NLS-1$ - if (posEnd < 0 && pos < str.length()) - posEnd = str.length(); - if (posEnd >= pos) { - subStr = str.substring(pos, posEnd); - pos = posEnd + 1; - } - else - pos = -1; - } - while (i++ < index() && pos > 0); - - if (pos > 0) - str = subStr.trim(); - else - str = null; - } - else - str = null; - } - } - return (str != null) ? str : "";//$NON-NLS-1$ - } - - /** - * - */ - abstract String get(Rect rect); - - /** - * - */ - abstract int index(); - - /** - * - */ - public void set(ICSS2Properties properties, String value) throws org.w3c.dom.DOMException { - } - - /** - * Insert the method's description here. Creation date: (2001/10/04 - * 19:25:46) - * - * @param properties - * org.eclipse.wst.css.core.util.declaration.ICSS2Properties - * @param top - * java.lang.String - * @param right - * java.lang.String - * @param bottom - * java.lang.String - * @param left - * java.lang.String - * @param removeCheck - * boolean - */ - void set(ICSS2Properties properties, String top, String right, String bottom, String left, boolean removeCheck) { - if (top == null || top.length() == 0) - top = IValID.V_AUTO; - if (right == null || right.length() == 0) - right = IValID.V_AUTO; - if (bottom == null || bottom.length() == 0) - bottom = IValID.V_AUTO; - if (left == null || left.length() == 0) - left = IValID.V_AUTO; - - if (removeCheck && top.trim().equalsIgnoreCase(IValID.V_AUTO) && right.trim().equalsIgnoreCase(IValID.V_AUTO) && bottom.trim().equalsIgnoreCase(IValID.V_AUTO) && left.trim().equalsIgnoreCase(IValID.V_AUTO)) { - properties.set(PropCMProperty.getInstanceOf(PropCMProperty.P_CLIP), null); - } - else - properties.set(PropCMProperty.getInstanceOf(PropCMProperty.P_CLIP), "rect(" + top + ", " + right + ", " + bottom + ", " + left + ")");//$NON-NLS-5$//$NON-NLS-4$//$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$ - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/ClipTopSubStyleAdapter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/ClipTopSubStyleAdapter.java deleted file mode 100644 index 915c107f64..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/ClipTopSubStyleAdapter.java +++ /dev/null @@ -1,53 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.util.declaration; - - - -import org.eclipse.wst.css.core.internal.contentmodel.PropCMSubProperty; - -/** - * For top value of 'clip' property's rect() function - */ -public class ClipTopSubStyleAdapter extends ClipSubStyleAdapter { - - /** - * - */ - public ClipTopSubStyleAdapter() { - super(); - } - - /** - * - */ - String get(org.w3c.dom.css.Rect rect) { - return rect.getTop().getCssText(); - } - - /** - * - */ - int index() { - return 0; - } - - /** - * - */ - public void set(ICSS2Properties properties, String value) throws org.w3c.dom.DOMException { - String right = properties.get(PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_CLIP_RIGHT)); - String bottom = properties.get(PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_CLIP_BOTTOM)); - String left = properties.get(PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_CLIP_LEFT)); - - set(properties, value, right, bottom, left, value == null || value.length() == 0); - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/FontShorthandAdapter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/FontShorthandAdapter.java deleted file mode 100644 index 4e848e34da..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/FontShorthandAdapter.java +++ /dev/null @@ -1,240 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.util.declaration; - - - -import org.eclipse.wst.css.core.internal.contentmodel.IValID; -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.parserz.CSSTextParser; -import org.eclipse.wst.css.core.internal.parserz.CSSTextToken; - - -/** - * For 'font' property 'font' will be expanded to 'font-family', 'font-size', - * 'font-style', 'font-variant', 'font-weight', 'line-height', - */ -public class FontShorthandAdapter implements IShorthandAdapter { - - /** - * - */ - public FontShorthandAdapter() { - super(); - } - - /** - * - */ - public boolean expand(String source, CSSPropertyContext dest) { - CSSTextParser parser = new CSSTextParser(CSSTextParser.MODE_DECLARATION_VALUE, source); - CSSTextToken[] tokens = parser.getTokens(); - if (tokens.length <= 0) { - return false; - } - String style = null, variant = null, weight = null, size = null, height = null, family = null; - PropCMProperty propFont = PropCMProperty.getInstanceOf(PropCMProperty.P_FONT); - PropCMProperty propStyle = PropCMProperty.getInstanceOf(PropCMProperty.P_FONT_STYLE); - PropCMProperty propVariant = PropCMProperty.getInstanceOf(PropCMProperty.P_FONT_VARIANT); - PropCMProperty propWeight = PropCMProperty.getInstanceOf(PropCMProperty.P_FONT_WEIGHT); - PropCMProperty propSize = PropCMProperty.getInstanceOf(PropCMProperty.P_FONT_SIZE); - boolean bNormalSpecified = false; - - int i = 0; - for (; i < tokens.length; i++) { - if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_IDENT) { - // first of all, check font idents - if (i == 0) { - for (int j = 0; j < propFont.getNumChild(); j++) { - Object obj = propFont.getChildAt(i); - if (obj instanceof String && tokens[i].image.compareToIgnoreCase(obj.toString()) == 0) - return false; - } - } - // value "normal" is shared !! - if (tokens[i].image.equalsIgnoreCase(IValID.V_NORMAL)) { - bNormalSpecified = true; - } - else { - if (propStyle.canHave(tokens[i].image)) - style = tokens[i].image; - else if (propVariant.canHave(tokens[i].image)) - variant = tokens[i].image; - else if (propWeight.canHave(tokens[i].image)) - weight = tokens[i].image; - else if (propSize.canHave(tokens[i].image)) { - size = tokens[i].image; - break; // if size found, break loop - } - } - } - else if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_NUMBER && weight == null && propWeight.canHave(tokens[i].image)) { - weight = tokens[i].image; - } - else if (org.eclipse.wst.css.core.internal.util.CSSUtil.isLength(tokens[i]) || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_NUMBER || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_PERCENTAGE) { - size = tokens[i].image; - break; // if size found, break loop - } - } - - if (bNormalSpecified) { - if (style == null) - style = IValID.V_NORMAL; - if (variant == null) - variant = IValID.V_NORMAL; - if (weight == null) - weight = IValID.V_NORMAL; - } - - // skip whitespace - for (i++; i < tokens.length; i++) { - if (tokens[i].kind != CSSRegionContexts.CSS_S || tokens[i].kind != CSSRegionContexts.CSS_DECLARATION_VALUE_S) - break; - } - - // line-height ? - if (i < tokens.length && tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_OPERATOR && tokens[i].image.equals("/")) { //$NON-NLS-1$ - for (i++; i < tokens.length; i++) { - if (org.eclipse.wst.css.core.internal.util.CSSUtil.isLength(tokens[i]) || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_PERCENTAGE || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_NUMBER || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_IDENT) { - height = tokens[i++].image; - break; - } - } - } - - // font-family - StringBuffer buf = new StringBuffer(); - for (; i < tokens.length; i++) { - if (tokens[i].kind == CSSRegionContexts.CSS_COMMENT) - buf.append(" ");//$NON-NLS-1$ - else - buf.append(tokens[i].image); - } - family = buf.toString().trim(); - - dest.set(PropCMProperty.P_FONT_STYLE, style); - dest.set(PropCMProperty.P_FONT_VARIANT, variant); - dest.set(PropCMProperty.P_FONT_WEIGHT, weight); - dest.set(PropCMProperty.P_FONT_SIZE, size); - dest.set(PropCMProperty.P_LINE_HEIGHT, height); - dest.set(PropCMProperty.P_FONT_FAMILY, family); - - return true; - } - - /** - * - */ - public String extract(String source, PropCMProperty propDest) { - CSSTextParser parser = new CSSTextParser(CSSTextParser.MODE_DECLARATION_VALUE, source); - CSSTextToken[] tokens = parser.getTokens(); - if (tokens.length <= 0) { - return null; - } - String style = null, variant = null, weight = null, size = null, height = null, family = null; - PropCMProperty propFont = PropCMProperty.getInstanceOf(PropCMProperty.P_FONT); - PropCMProperty propStyle = PropCMProperty.getInstanceOf(PropCMProperty.P_FONT_STYLE); - PropCMProperty propVariant = PropCMProperty.getInstanceOf(PropCMProperty.P_FONT_VARIANT); - PropCMProperty propWeight = PropCMProperty.getInstanceOf(PropCMProperty.P_FONT_WEIGHT); - PropCMProperty propSize = PropCMProperty.getInstanceOf(PropCMProperty.P_FONT_SIZE); - PropCMProperty propHeight = PropCMProperty.getInstanceOf(PropCMProperty.P_LINE_HEIGHT); - PropCMProperty propFamily = PropCMProperty.getInstanceOf(PropCMProperty.P_FONT_FAMILY); - boolean bNormalSpecified = false; - - int i = 0; - for (; i < tokens.length; i++) { - if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_IDENT) { - // first of all, check font idents - if (i == 0) { - for (int j = 0; j < propFont.getNumChild(); j++) { - Object obj = propFont.getChildAt(i); - if (obj instanceof String && tokens[i].image.compareToIgnoreCase(obj.toString()) == 0) - return null; - } - } - // value "normal" is shared !! - if (tokens[i].image.equalsIgnoreCase(IValID.V_NORMAL)) { - bNormalSpecified = true; - } - else { - if (propStyle.canHave(tokens[i].image)) - style = tokens[i].image; - else if (propVariant.canHave(tokens[i].image)) - variant = tokens[i].image; - else if (propWeight.canHave(tokens[i].image)) - weight = tokens[i].image; - else if (propSize.canHave(tokens[i].image)) { - size = tokens[i].image; - break; // if size found, break loop - } - } - } - else if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_NUMBER && weight == null && propWeight.canHave(tokens[i].image)) { - weight = tokens[i].image; - } - else if (org.eclipse.wst.css.core.internal.util.CSSUtil.isLength(tokens[i]) || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_NUMBER || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_PERCENTAGE) { - size = tokens[i].image; - break; // if size found, break loop - } - } - - if (bNormalSpecified) { - if (style == null) - style = IValID.V_NORMAL; - if (variant == null) - variant = IValID.V_NORMAL; - if (weight == null) - weight = IValID.V_NORMAL; - } - - // skip whitespace - for (i++; i < tokens.length; i++) { - if (tokens[i].kind != CSSRegionContexts.CSS_S || tokens[i].kind != CSSRegionContexts.CSS_DECLARATION_VALUE_S) - break; - } - - // line-height ? - if (i < tokens.length && tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_OPERATOR && tokens[i].image.equals("/")) { //$NON-NLS-1$ - for (i++; i < tokens.length; i++) { - if (org.eclipse.wst.css.core.internal.util.CSSUtil.isLength(tokens[i]) || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_PERCENTAGE || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_NUMBER || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_IDENT) { - height = tokens[i++].image; - break; - } - } - } - - // font-family - StringBuffer buf = new StringBuffer(); - for (; i < tokens.length; i++) { - if (tokens[i].kind == CSSRegionContexts.CSS_COMMENT) - buf.append(" ");//$NON-NLS-1$ - else - buf.append(tokens[i].image); - } - family = buf.toString().trim(); - - if (propStyle == propDest) - return style; - else if (propVariant == propDest) - return variant; - else if (propWeight == propDest) - return weight; - else if (propSize == propDest) - return size; - else if (propHeight == propDest) - return height; - else if (propFamily == propDest) - return family; - else - return null; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/ICSS2Properties.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/ICSS2Properties.java deleted file mode 100644 index 0bf6432f6d..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/ICSS2Properties.java +++ /dev/null @@ -1,127 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.util.declaration; - - - -import java.util.Enumeration; -import java.util.Iterator; - -import org.eclipse.wst.css.core.internal.contentmodel.PropCMProperty; -import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleDeclaration; -import org.w3c.dom.css.CSS2Properties; - - -/** - * - */ -public interface ICSS2Properties extends CSS2Properties { - - /** - * - */ - void applyFull(ICSSStyleDeclaration decl); - - /** - * - */ - void applyModified(ICSSStyleDeclaration decl); - - /** - * - */ - String get(PropCMProperty prop); - - /** - * - */ - String getBackgroundPositionX(); - - /** - * - */ - String getBackgroundPositionY(); - - /** - * - */ - String getClipBottom(); - - /** - * - */ - String getClipLeft(); - - /** - * - */ - String getClipRight(); - - /** - * - */ - String getClipTop(); - - /** - * - */ - boolean isModified(); - - /** - * - */ - Enumeration properties(); - - /** - * - */ - Iterator propertiesModified(); - - /** - * - */ - void resetModified(); - - /** - * - */ - void set(PropCMProperty prop, String value) throws org.w3c.dom.DOMException; - - /** - * - */ - void setBackgroundPositionX(String backgroundPosition) throws org.w3c.dom.DOMException; - - /** - * - */ - void setBackgroundPositionY(String backgroundPosition) throws org.w3c.dom.DOMException; - - /** - * - */ - void setClipBottom(String backgroundPosition) throws org.w3c.dom.DOMException; - - /** - * - */ - void setClipLeft(String backgroundPosition) throws org.w3c.dom.DOMException; - - /** - * - */ - void setClipRight(String backgroundPosition) throws org.w3c.dom.DOMException; - - /** - * - */ - void setClipTop(String backgroundPosition) throws org.w3c.dom.DOMException; -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/IShorthandAdapter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/IShorthandAdapter.java deleted file mode 100644 index a1d405c97e..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/IShorthandAdapter.java +++ /dev/null @@ -1,31 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.util.declaration; - - - -import org.eclipse.wst.css.core.internal.contentmodel.PropCMProperty; - -/** - * - */ -public interface IShorthandAdapter { - - /** - * - */ - boolean expand(String source, CSSPropertyContext dest); - - /** - * - */ - String extract(String source, PropCMProperty propDest); -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/ISubPropertyAdapter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/ISubPropertyAdapter.java deleted file mode 100644 index e169f0dd9c..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/ISubPropertyAdapter.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.util.declaration; - - - -/** - * - */ -public interface ISubPropertyAdapter { - - /** - * - */ - String get(ICSS2Properties properties); - - /** - * - */ - void set(ICSS2Properties properties, String value) throws org.w3c.dom.DOMException; -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/ListStyleShorthandAdapter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/ListStyleShorthandAdapter.java deleted file mode 100644 index 97132742f5..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/ListStyleShorthandAdapter.java +++ /dev/null @@ -1,110 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.util.declaration; - - - -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.parserz.CSSTextParser; -import org.eclipse.wst.css.core.internal.parserz.CSSTextToken; - - -/** - * For 'list-style' property 'list-style' will be expanded to - * 'list-style-image', 'list-style-position', 'list-style-type', - */ -public class ListStyleShorthandAdapter implements IShorthandAdapter { - - /** - * - */ - public ListStyleShorthandAdapter() { - super(); - } - - /** - * - */ - public boolean expand(String source, CSSPropertyContext dest) { - CSSTextParser parser = new CSSTextParser(CSSTextParser.MODE_DECLARATION_VALUE, source); - CSSTextToken[] tokens = parser.getTokens(); - if (tokens.length <= 0) { - return false; - } - String image = "", pos = "", type = "";//$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$ - PropCMProperty propPos = PropCMProperty.getInstanceOf(PropCMProperty.P_LIST_STYLE_POSITION); - PropCMProperty propType = PropCMProperty.getInstanceOf(PropCMProperty.P_LIST_STYLE_TYPE); - PropCMProperty propImage = PropCMProperty.getInstanceOf(PropCMProperty.P_LIST_STYLE_IMAGE); - - for (int i = 0; i < tokens.length; i++) { - if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_IDENT) { - if (propPos.canHave(tokens[i].image)) - pos = tokens[i].image; - else { // value="none" is shared !! - if (propType.canHave(tokens[i].image)) - type = tokens[i].image; - if (propImage.canHave(tokens[i].image)) - image = tokens[i].image; - } - } - else if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_URI) { - image = tokens[i].image; - } - } - - dest.set(propPos.getName(), pos); - dest.set(propType.getName(), type); - dest.set(propImage.getName(), image); - - return true; - } - - /** - * - */ - public String extract(String source, PropCMProperty propDest) { - CSSTextParser parser = new CSSTextParser(CSSTextParser.MODE_DECLARATION_VALUE, source); - CSSTextToken[] tokens = parser.getTokens(); - if (tokens.length <= 0) { - return null; - } - String image = null, pos = null, type = null; - PropCMProperty propPos = PropCMProperty.getInstanceOf(PropCMProperty.P_LIST_STYLE_POSITION); - PropCMProperty propType = PropCMProperty.getInstanceOf(PropCMProperty.P_LIST_STYLE_TYPE); - PropCMProperty propImage = PropCMProperty.getInstanceOf(PropCMProperty.P_LIST_STYLE_IMAGE); - - for (int i = 0; i < tokens.length; i++) { - if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_IDENT) { - if (propPos.canHave(tokens[i].image)) - pos = tokens[i].image; - else { // value="none" is shared !! - if (propType.canHave(tokens[i].image)) - type = tokens[i].image; - if (propImage.canHave(tokens[i].image)) - image = tokens[i].image; - } - } - else if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_URI) { - image = tokens[i].image; - } - } - - if (propPos == propDest) - return pos; - else if (propType == propDest) - return type; - else if (propImage == propDest) - return image; - else - return null; - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/MarginShorthandAdapter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/MarginShorthandAdapter.java deleted file mode 100644 index d3cf1e7ccb..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/MarginShorthandAdapter.java +++ /dev/null @@ -1,129 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.util.declaration; - - - -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.parserz.CSSTextParser; -import org.eclipse.wst.css.core.internal.parserz.CSSTextToken; - - -/** - * For 'margin' property 'margin' will be expanded to 'margin-top', - * 'margin-right', 'margin-bottom', 'margin-left', - */ -public class MarginShorthandAdapter implements IShorthandAdapter { - - /** - * - */ - public MarginShorthandAdapter() { - super(); - } - - /** - * - */ - public boolean expand(String source, CSSPropertyContext dest) { - CSSTextParser parser = new CSSTextParser(CSSTextParser.MODE_DECLARATION_VALUE, source); - CSSTextToken[] tokens = parser.getTokens(); - if (tokens.length <= 0) { - return false; - } - String[] idents = new String[4]; - int j = 0; - for (int i = 0; i < tokens.length; i++) { - if (org.eclipse.wst.css.core.internal.util.CSSUtil.isLength(tokens[i]) || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_NUMBER || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_IDENT || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_PERCENTAGE) - idents[j++] = tokens[i].image; - if (j == 4) - break; - } - - String[] dests = new String[4]; - if (j == 0) - return true; - else if (j == 1) { - dests[0] = dests[1] = dests[2] = dests[3] = idents[0]; - } - else if (j == 2) { - dests[0] = dests[2] = idents[0]; - dests[1] = dests[3] = idents[1]; - } - else if (j == 3) { - dests[0] = idents[0]; - dests[1] = dests[3] = idents[1]; - dests[2] = idents[2]; - } - else { - for (int k = 0; k < 4; k++) - dests[k] = idents[k]; - } - dest.set(PropCMProperty.P_MARGIN_TOP, dests[0]); - dest.set(PropCMProperty.P_MARGIN_RIGHT, dests[1]); - dest.set(PropCMProperty.P_MARGIN_BOTTOM, dests[2]); - dest.set(PropCMProperty.P_MARGIN_LEFT, dests[3]); - - return true; - - } - - /** - * - */ - public String extract(String source, PropCMProperty propDest) { - CSSTextParser parser = new CSSTextParser(CSSTextParser.MODE_DECLARATION_VALUE, source); - CSSTextToken[] tokens = parser.getTokens(); - if (tokens.length <= 0) { - return null; - } - String[] idents = new String[4]; - int j = 0; - for (int i = 0; i < tokens.length; i++) { - if (org.eclipse.wst.css.core.internal.util.CSSUtil.isLength(tokens[i]) || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_NUMBER || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_IDENT || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_PERCENTAGE) - idents[j++] = tokens[i].image; - if (j == 4) - break; - } - - if (j == 0) - return null; - else if (j == 1) - return idents[0]; - else if (j == 2) { - if (propDest.getName() == PropCMProperty.P_MARGIN_TOP || propDest.getName() == PropCMProperty.P_MARGIN_BOTTOM) - return idents[0]; - else - return idents[1]; - } - else if (j == 3) { - if (propDest.getName() == PropCMProperty.P_MARGIN_TOP) - return idents[0]; - else if (propDest.getName() == PropCMProperty.P_MARGIN_BOTTOM) - return idents[2]; - else - return idents[1]; - } - else { - if (propDest.getName() == PropCMProperty.P_MARGIN_TOP) - return idents[0]; - else if (propDest.getName() == PropCMProperty.P_MARGIN_RIGHT) - return idents[1]; - else if (propDest.getName() == PropCMProperty.P_MARGIN_BOTTOM) - return idents[2]; - else if (propDest.getName() == PropCMProperty.P_MARGIN_LEFT) - return idents[3]; - else - return null; - } - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/PaddingShorthandAdapter.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/PaddingShorthandAdapter.java deleted file mode 100644 index ce2436d561..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/PaddingShorthandAdapter.java +++ /dev/null @@ -1,129 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.util.declaration; - - - -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.parserz.CSSTextParser; -import org.eclipse.wst.css.core.internal.parserz.CSSTextToken; - - -/** - * For 'padding' property 'padding' will be expanded to 'padding-top', - * 'padding-right', 'padding-bottom', 'padding-left', - */ -public class PaddingShorthandAdapter implements IShorthandAdapter { - - /** - * - */ - public PaddingShorthandAdapter() { - super(); - } - - /** - * - */ - public boolean expand(String source, CSSPropertyContext dest) { - CSSTextParser parser = new CSSTextParser(CSSTextParser.MODE_DECLARATION_VALUE, source); - CSSTextToken[] tokens = parser.getTokens(); - if (tokens.length <= 0) { - return false; - } - String[] idents = new String[4]; - int j = 0; - for (int i = 0; i < tokens.length; i++) { - if (org.eclipse.wst.css.core.internal.util.CSSUtil.isLength(tokens[i]) || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_NUMBER || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_PERCENTAGE) - idents[j++] = tokens[i].image; - if (j == 4) - break; - } - - String[] dests = new String[4]; - if (j == 0) - return true; - else if (j == 1) { - dests[0] = dests[1] = dests[2] = dests[3] = idents[0]; - } - else if (j == 2) { - dests[0] = dests[2] = idents[0]; - dests[1] = dests[3] = idents[1]; - } - else if (j == 3) { - dests[0] = idents[0]; - dests[1] = dests[3] = idents[1]; - dests[2] = idents[2]; - } - else { - for (int k = 0; k < 4; k++) - dests[k] = idents[k]; - } - dest.set(PropCMProperty.P_PADDING_TOP, dests[0]); - dest.set(PropCMProperty.P_PADDING_RIGHT, dests[1]); - dest.set(PropCMProperty.P_PADDING_BOTTOM, dests[2]); - dest.set(PropCMProperty.P_PADDING_LEFT, dests[3]); - - return true; - } - - /** - * - */ - public String extract(String source, PropCMProperty propDest) { - CSSTextParser parser = new CSSTextParser(CSSTextParser.MODE_DECLARATION_VALUE, source); - CSSTextToken[] tokens = parser.getTokens(); - if (tokens.length <= 0) { - return null; - } - String[] idents = new String[4]; - int j = 0; - for (int i = 0; i < tokens.length; i++) { - if (org.eclipse.wst.css.core.internal.util.CSSUtil.isLength(tokens[i]) || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_NUMBER || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_PERCENTAGE) - idents[j++] = tokens[i].image; - if (j == 4) - break; - } - - if (j == 0) - return null; - else if (j == 1) - return idents[0]; - else if (j == 2) { - if (propDest.getName() == PropCMProperty.P_PADDING_TOP || propDest.getName() == PropCMProperty.P_PADDING_BOTTOM) - return idents[0]; - else - return idents[1]; - } - else if (j == 3) { - if (propDest.getName() == PropCMProperty.P_PADDING_TOP) - return idents[0]; - else if (propDest.getName() == PropCMProperty.P_PADDING_BOTTOM) - return idents[2]; - else - return idents[1]; - } - else { - if (propDest.getName() == PropCMProperty.P_PADDING_TOP) - return idents[0]; - else if (propDest.getName() == PropCMProperty.P_PADDING_RIGHT) - return idents[1]; - else if (propDest.getName() == PropCMProperty.P_PADDING_BOTTOM) - return idents[2]; - else if (propDest.getName() == PropCMProperty.P_PADDING_LEFT) - return idents[3]; - else - return null; - } - - } -} diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/ValueData.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/ValueData.java deleted file mode 100644 index c5282f80ac..0000000000 --- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/util/declaration/ValueData.java +++ /dev/null @@ -1,45 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.util.declaration; - - - -/** - * - */ -public class ValueData { - - public String value; - public boolean important = false; - - /** - * - */ - public ValueData() { - super(); - } - - /** - * - */ - public ValueData(String val, boolean imp) { - super(); - value = val; - important = imp; - } - - /** - * - */ - public String toString() { - return value; - } -} |