package org.vaadin.smartgwt.client.ui.toolbar; import org.vaadin.smartgwt.client.core.ServerSideEventRegistration; import org.vaadin.smartgwt.client.ui.utils.PainterHelper; import com.google.gwt.event.shared.HandlerRegistration; import com.google.gwt.user.client.DOM; import com.google.gwt.user.client.Element; import com.smartgwt.client.widgets.events.ClickEvent; import com.smartgwt.client.widgets.events.ClickHandler; import com.smartgwt.client.widgets.toolbar.ToolStripButton; import com.vaadin.terminal.gwt.client.ApplicationConnection; import com.vaadin.terminal.gwt.client.Paintable; import com.vaadin.terminal.gwt.client.UIDL; public class VToolStripButton extends ToolStripButton implements Paintable { private final Element element = DOM.createDiv(); private String pid; private ApplicationConnection client; private ServerSideEventRegistration clickHandlerEventRegistration; public VToolStripButton() { super(); } @Override public void updateFromUIDL(UIDL uidl, ApplicationConnection client) { if (pid == null) { this.pid = uidl.getId(); this.client = client; clickHandlerEventRegistration = new ServerSideEventRegistration("*hasClickHandlers") { @Override protected HandlerRegistration registerHandler() { return addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { VToolStripButton.this.client.updateVariable(pid, "clickEvent", true, true); } }); } }; } clickHandlerEventRegistration.updateFromUIDL(uidl); PainterHelper.updateSmartGWTComponent(client, this, uidl); } @Override public Element getElement() { return element; } }