public AssetCanvas(final FormItem formItem) {
   setWidth(100);
   setAlign(Alignment.CENTER);
   previewContainer = new Canvas();
   addMember(previewContainer);
   previewContainer.setWidth(100);
   previewContainer.setHeight(100);
   previewContainer.setBorder("1px solid #a6abb4");
   imageUpdateButton = new IButton("Update Artifact");
   imageUpdateButton.addClickHandler(
       new ClickHandler() {
         @Override
         public void onClick(ClickEvent event) {
           String formItemName = formItem.getName();
           ((DynamicEntityDataSource) formItem.getForm().getDataSource())
               .getFormItemCallbackHandlerManager()
               .getFormItemCallback(formItemName)
               .execute(formItem);
         }
       });
   addMember(imageUpdateButton);
   if (formItem.getDisabled()) {
     imageUpdateButton.setVisible(false);
   }
 }