| /******************************************************************************* |
| * Copyright (c) 2008 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 |
| *******************************************************************************/ |
| package org.eclipse.e4.ui.css.core.dom; |
| |
| import org.w3c.dom.Element; |
| import org.w3c.dom.NodeList; |
| import org.w3c.dom.css.CSSStyleDeclaration; |
| |
| /** |
| * CSS stylable element interface to wrap native widget. |
| */ |
| public interface CSSStylableElement extends Element { |
| |
| /** |
| * Return the native widget wrapped (SWT widget, Swing Component...) |
| * |
| * @return |
| */ |
| public Object getNativeWidget(); |
| |
| /** |
| * Return the id of the native widget. This method is used to manage CSS |
| * style like this input#MyId{....}. |
| * |
| * @return |
| */ |
| public String getCSSId(); |
| |
| /** |
| * Return the class of the native widget. This method is used to manage CSS |
| * style like this .blueClass {...}. |
| * |
| * @return |
| */ |
| public String getCSSClass(); |
| |
| /** |
| * Return the inline style of the native widget. |
| * |
| * @return |
| */ |
| public String getCSSStyle(); |
| |
| /** |
| * Return the default {@link CSSStyleDeclaration} of the native widget. |
| * |
| * @return |
| */ |
| public CSSStyleDeclaration getDefaultStyleDeclaration(String pseudoE); |
| |
| /** |
| * Copy all default style declarations defined into |
| * <code>stylableElement</code>. |
| * |
| * @param stylableElement |
| */ |
| public void copyDefaultStyleDeclarations(CSSStylableElement stylableElement); |
| |
| /** |
| * Set the default {@link CSSStyleDeclaration} of the native widget. |
| * |
| * @param defaultStyleDeclaration |
| */ |
| public void setDefaultStyleDeclaration(String pseudoE, |
| CSSStyleDeclaration defaultStyleDeclaration); |
| |
| /** |
| * Return true if <code>s</code> is pseudo instance (ex :focus) and false |
| * otherwise. |
| * |
| * @param s |
| * @return |
| */ |
| public abstract boolean isPseudoInstanceOf(String s); |
| |
| /** |
| * Return all static pseudo instances. Static pseudo instance is used for |
| * widget which define method which can update property (Color, |
| * BackgroundColor) for a special state (without manage listener like |
| * focus). For instance SWT CTabFolder#setSelectionBackground (Color color) |
| * is method which set background Color when a CTabItem is selected. |
| * |
| * @return |
| */ |
| public String[] getStaticPseudoInstances(); |
| |
| /** |
| * Return true if <code>s</code> is static pseudo instance (ex |
| * :CTabFolder:selected) and false otherwise. Static pseudo instance is used |
| * for widget which define method which can update property (Color, |
| * BackgroundColor) for a special state (without manage listener like |
| * focus). For instance SWT CTabFolder#setSelectionBackground (Color color) |
| * is method which set background color when a CTabItem is selected. |
| * |
| * @param s |
| * @return |
| */ |
| public boolean isStaticPseudoInstance(String s); |
| |
| /** |
| * Call-back method called when styles are applied to the all children nodes |
| * of the native widget |
| * |
| * @param nodes |
| */ |
| public void onStylesApplied(NodeList nodes); |
| |
| /** |
| * Return the {@link CSSExtendedProperties} of the native widget. |
| * |
| * @return |
| */ |
| public CSSExtendedProperties getStyle(); |
| } |