package org.vaadin.smartgwt.client.ui.form.fields;
import org.vaadin.smartgwt.client.core.PaintablePropertyUpdater;
import org.vaadin.smartgwt.client.core.PaintableReferenceListener;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.form.fields.CanvasItem;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.Paintable;
import com.vaadin.terminal.gwt.client.UIDL;
public class VCanvasItem extends VAbstractFormItem<CanvasItem, String> {
private final PaintablePropertyUpdater propertyUpdater = new PaintablePropertyUpdater();
public VCanvasItem() {
super(new CanvasItem());
propertyUpdater.addPaintableReferenceListener("canvas", new PaintableReferenceListener() {
@Override
public void onChange(Paintable paintable) {
getJSObject().setCanvas((Canvas) paintable);
}
});
}
@Override
protected String getUIDLFormItemValue(UIDL uidl, String attributeName) {
return uidl.getStringAttribute(attributeName);
}
@Override
protected String getFormItemValue() {
return getJSObject().getValue() == null ? null : getJSObject().getValue().toString();
}
@Override
protected void postAttributeUpdateFromUIDL(UIDL uidl, ApplicationConnection client) {
propertyUpdater.updateFromUIDL(uidl, client);
super.postAttributeUpdateFromUIDL(uidl, client);
}
}