Sunday, September 27, 2009

GWT: how to make your Composite widget clickable

by implementing HasClickHandlers

import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.event.shared.HandlerRegistration;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Label;

public class IconWithText extends Composite implements StyleConstants, HasClickHandlers
{
HorizontalPanel widget;

public IconWithText(String iconStyleName, String text)
{
widget = new HorizontalPanel();
widget.setStyleName(STYLE_WIDGET);
HTML icon = new HTML("");
icon.setStyleName(iconStyleName);
widget.add(icon);

Label label = new Label(text);
label.setStyleName("label_for_icon");
widget.add(label);
initWidget(widget);
}

public HandlerRegistration addClickHandler(ClickHandler handler)
{
return addDomHandler(handler, ClickEvent.getType());
}

}