| /******************************************************************************* |
| * Copyright (c) 2008 Innoopract Informationssysteme GmbH. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Innoopract Informationssysteme GmbH - initial API and implementation |
| ******************************************************************************/ |
| |
| package org.eclipse.rwt.internal.theme.css; |
| |
| import org.w3c.css.sac.*; |
| |
| /** |
| * ConditionFactory implementation for parsing RAP theme files. All returned |
| * conditions implement the interface {@link ConditionExt}. |
| */ |
| public class ConditionFactoryImpl implements ConditionFactory { |
| |
| private final CssFileReader reader; |
| |
| public ConditionFactoryImpl( final CssFileReader reader ) { |
| this.reader = reader; |
| } |
| |
| public AttributeCondition createClassCondition( final String namespaceURI, |
| final String value ) |
| throws CSSException |
| { |
| return new ClassConditionImpl( value ); |
| } |
| |
| public AttributeCondition createPseudoClassCondition( final String namespaceURI, |
| final String value ) |
| throws CSSException |
| { |
| return new PseudoClassConditionImpl( value ); |
| } |
| |
| public AttributeCondition createAttributeCondition( final String localName, |
| final String namespaceURI, |
| final boolean specified, |
| final String value ) |
| throws CSSException |
| { |
| return new AttributeConditionImpl( localName, value, specified ); |
| } |
| |
| public AttributeCondition createOneOfAttributeCondition( final String localName, |
| final String namespaceURI, |
| final boolean specified, |
| final String value ) |
| throws CSSException |
| { |
| return new OneOfAttributeCondition( localName, value, specified ); |
| } |
| |
| public CombinatorCondition createAndCondition( final Condition first, |
| final Condition second ) |
| throws CSSException |
| { |
| return new AndConditionImpl( first, second ); |
| } |
| |
| // ========================================================================== |
| // Not supported by RAP |
| |
| public LangCondition createLangCondition( final String lang ) |
| throws CSSException |
| { |
| String mesg = "Lang conditions not supported by RAP - ignored"; |
| reader.addProblem( new CSSException( mesg ) ); |
| return new NullLangCondition(); |
| } |
| |
| public AttributeCondition createIdCondition( final String value ) |
| throws CSSException |
| { |
| String mesg = "Id conditions not supported by RAP - ignored"; |
| reader.addProblem( new CSSException( mesg ) ); |
| return new NullAttributeCondition(); |
| } |
| |
| public AttributeCondition createBeginHyphenAttributeCondition( final String localName, |
| final String namespaceURI, |
| final boolean specified, |
| final String value ) |
| throws CSSException |
| { |
| String mesg = "Begin hyphen attribute conditions not supported by RAP - ignored"; |
| reader.addProblem( new CSSException( mesg ) ); |
| return new NullAttributeCondition(); |
| } |
| |
| // ========================================================================== |
| // Not supported by CSS 2 |
| |
| public CombinatorCondition createOrCondition( final Condition first, |
| final Condition second ) |
| throws CSSException |
| { |
| throw new CSSException( "Or conditions not supported by CSS2" ); |
| } |
| |
| public NegativeCondition createNegativeCondition( final Condition condition ) |
| throws CSSException |
| { |
| throw new CSSException( "Negative conditions not supported by CSS2" ); |
| } |
| |
| public PositionalCondition createPositionalCondition( final int position, |
| final boolean typeNode, |
| final boolean type ) |
| throws CSSException |
| { |
| throw new CSSException( "Positional conditions not supported by CSS2" ); |
| } |
| |
| public Condition createOnlyChildCondition() throws CSSException { |
| throw new CSSException( "Only-one-child conditions not supported by CSS2" ); |
| } |
| |
| public Condition createOnlyTypeCondition() throws CSSException { |
| throw new CSSException( "Only-one-type conditions not supported by CSS2" ); |
| } |
| |
| public ContentCondition createContentCondition( final String data ) |
| throws CSSException |
| { |
| throw new CSSException( "Content conditions not supported by CSS2" ); |
| } |
| } |