package org.vaadin.smartgwt.client.ui.form.fields;
import org.vaadin.smartgwt.client.core.VDataClass;
import org.vaadin.smartgwt.client.ui.form.VDynamicForm;
import com.google.gwt.event.shared.HandlerRegistration;
import com.smartgwt.client.widgets.form.fields.FormItemIcon;
import com.smartgwt.client.widgets.form.fields.events.FormItemClickHandler;
import com.smartgwt.client.widgets.form.fields.events.FormItemIconClickEvent;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.UIDL;
public class VFormItemIcon extends VDataClass<FormItemIcon> {
private ApplicationConnection client;
private String pid;
private HandlerRegistration formItemClickRegistration;
public VFormItemIcon() {
super(new FormItemIcon());
}
@Override
protected void postAttributeUpdateFromUIDL(UIDL uidl, ApplicationConnection client) {
if (this.pid == null) {
this.pid = uidl.getId();
this.client = client;
}
if (uidl.hasAttribute("*hasFormItemClickHandlers") && formItemClickRegistration == null) {
formItemClickRegistration = getJSObject().addFormItemClickHandler(new FormItemClickHandler() {
@Override
public void onFormItemClick(FormItemIconClickEvent event) {
final ApplicationConnection client = VFormItemIcon.this.client;
client.updateVariable(pid, "formItemIconClickEvent.form", (VDynamicForm) event.getForm(), false);
client.updateVariable(pid, "formItemIconClickEvent.item", VDataClass.getVDataClass(client, event.getItem()), false);
client.updateVariable(pid, "formItemIconClickEvent.icon", VDataClass.getVDataClass(client, event.getIcon()), true);
}
});
}
super.postAttributeUpdateFromUIDL(uidl, client);
}
}