/******************************************************************************* * Copyright (c) 2008, 2015 Angelo Zerr and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Angelo Zerr <angelo.zerr@gmail.com> - initial API and implementation * IBM Corporation - ongoing development *******************************************************************************/ package org.eclipse.e4.ui.css.core.impl.dom; import org.eclipse.e4.ui.css.core.dom.CSSPropertyList; import org.eclipse.e4.ui.css.core.dom.ExtendedCSSRule; import org.w3c.css.sac.Selector; import org.w3c.css.sac.SelectorList; import org.w3c.dom.DOMException; import org.w3c.dom.css.CSSRule; import org.w3c.dom.css.CSSStyleDeclaration; import org.w3c.dom.css.CSSStyleRule; import org.w3c.dom.css.CSSStyleSheet; public class CSSStyleRuleImpl extends CSSRuleImpl implements CSSStyleRule, ExtendedCSSRule { private SelectorList selectors; private CSSStyleDeclaration styleDeclaration; public CSSStyleRuleImpl(CSSStyleSheet parentStyleSheet, CSSRule parentRule, SelectorList selectors) { super(parentStyleSheet, parentRule); this.selectors = selectors; } //---------------------------------------- // W3C CSSRule API methods @Override public short getType() { return CSSRule.STYLE_RULE; } // ---------------------------------------- // W3C CSSStyleRule API methods @Override public String getCssText() { return getSelectorText() + " { " + getStyle().getCssText() + " }"; } //---------------------------------------- // W3C CSSStyleRule API methods @Override public String getSelectorText() { StringBuilder sb = new StringBuilder(); for (int selID = 0; selID < getSelectorList().getLength(); selID++) { Selector item = getSelectorList().item(selID); sb.append(item.toString()); sb.append(", "); } if (getSelectorList().getLength() > 0) { sb.delete(sb.length() - 2, sb.length()); } return sb.toString(); } @Override public CSSStyleDeclaration getStyle() { return styleDeclaration; } @Override public void setSelectorText(String selectorText) throws DOMException { throw new UnsupportedOperationException("NOT YET IMPLEMENTED"); } //---------------------------------------- // Additional methods @Override public SelectorList getSelectorList() { return selectors; } @Override public CSSPropertyList getCSSPropertyList() { throw new UnsupportedOperationException("NOT YET IMPLEMENTED"); } public void setStyle(CSSStyleDeclaration styleDeclaration) { this.styleDeclaration = styleDeclaration; } @Override public String toString() { return getSelectorText(); } }