diff options
Diffstat (limited to 'bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSImportRuleImpl.java')
-rw-r--r-- | bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSImportRuleImpl.java | 227 |
1 files changed, 0 insertions, 227 deletions
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)); - } -} |