blob: 09a80b9ba13254e0175eae4e05d22d1a5bce5e5d [file] [log] [blame]
/*******************************************************************************
* 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.swt.dom.html;
import org.eclipse.e4.ui.css.core.engine.CSSEngine;
import org.eclipse.e4.ui.css.swt.dom.SWTElement;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CCombo;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Canvas;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Link;
import org.eclipse.swt.widgets.List;
import org.eclipse.swt.widgets.Scrollable;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.Widget;
/**
* w3c Element which wrap SWT widget to manage HTML/XUL selectors.
*/
public class SWTHTMLElement extends SWTElement {
protected String attributeType;
public SWTHTMLElement(Widget widget, CSSEngine engine) {
super(widget, engine);
attributeType = computeAttributeType();
}
public String getAttribute(String attr) {
if ("type".equals(attr))
return attributeType;
return super.getAttribute(attr);
}
protected String computeLocalName() {
Widget widget = getWidget();
// HTML name
if (widget instanceof Text) {
int style = widget.getStyle();
if ((style | SWT.MULTI) == style)
return "textarea";
return "input";
}
if (widget instanceof Button)
return "input";
if (widget instanceof Combo)
return "select";
if (widget instanceof CCombo)
return "select";
if (widget instanceof Label)
return "label";
if (widget instanceof Shell)
return "body";
if (widget instanceof Canvas)
return "canvas";
if (widget instanceof Scrollable)
return "div";
if (widget instanceof List)
return "body";
if (widget instanceof Group)
return "div";
if (widget instanceof Link)
return "a";
if (widget instanceof Composite)
return "div";
// XUL name
if (widget instanceof Tree)
return "tree";
if (widget instanceof Table)
return "listbox";
return super.computeLocalName();
}
protected String computeAttributeType() {
Widget widget = getWidget();
if (widget instanceof Button) {
Button button = (Button) widget;
int style = button.getStyle();
if ((style | SWT.RADIO) == style)
return "radio";
if ((style | SWT.CHECK) == style)
return "checkbox";
return "button";
}
if (widget instanceof Text) {
Text text = (Text) widget;
if ((text.getStyle() & SWT.PASSWORD) != 0)
return "password";
else if ((text.getStyle() & SWT.MULTI) != 0)
return "";
else
return "text";
}
return "";
}
}