/******************************************************************************* * Copyright (c) 2008, Original authors. * 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 *******************************************************************************/ package org.akrogen.tkui.css.swt.dom.html; import org.akrogen.tkui.css.core.engine.CSSEngine; import org.akrogen.tkui.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. * * @version 1.0.0 * @author Angelo ZERR * */ 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 ""; } }