/*******************************************************************************
* Copyright (c) 2013, 2014 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.e4.ui.css.swt.dom;
import org.eclipse.e4.ui.css.core.dom.CSSStylableElement;
import org.eclipse.e4.ui.css.core.engine.CSSEngine;
import org.eclipse.e4.ui.css.swt.helpers.CSSSWTImageHelper;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.swt.widgets.ToolBar;
import org.eclipse.swt.widgets.ToolItem;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
/**
* {@link CSSStylableElement} implementation which wrap SWT {@link TableItem}.
*
*/
public class ToolItemElement extends ItemElement {
public ToolItemElement(ToolItem toolItem, CSSEngine engine) {
super(toolItem, engine);
}
public ToolItem getToolItem() {
return (ToolItem) getNativeWidget();
}
@Override
public Node getParentNode() {
ToolItem item = getToolItem();
ToolBar parent = item.getParent();
if (parent != null) {
Element element = getElement(parent);
return element;
}
return null;
}
@Override
public Node item(int index) {
ToolItem item = getToolItem();
if ((item.getStyle() & SWT.SEPARATOR) == SWT.SEPARATOR) {
Object control = item.getControl();
if (control != null) {
return getElement(control);
}
}
return null;
}
@Override
public int getLength() {
ToolItem item = getToolItem();
return (item.getStyle() & SWT.SEPARATOR) == SWT.SEPARATOR
&& item.getControl() != null ? 1 : 0;
}
@Override
public void reset() {
CSSSWTImageHelper.restoreDefaultImage(getToolItem());
super.reset();
}
}