@Override
 public void updateValue(@Nullable Object value) {
   if (controller.getModel().updateCellValue(binding, curRow, value)) {
     // Update controls
     controller
         .getSite()
         .getShell()
         .getDisplay()
         .syncExec(
             new Runnable() {
               @Override
               public void run() {
                 controller.updateValueView();
               }
             });
   }
   controller.fireResultSetChange();
 }
 @NotNull
 @Override
 public DBCExecutionContext getExecutionContext() {
   return controller.getExecutionContext();
 }
 @Nullable
 @Override
 public Object getAttributeValue(DBDAttributeBinding attribute) {
   return controller.getModel().getCellValue(attribute, curRow);
 }
 @NotNull
 @Override
 public List<DBDAttributeBinding> getRowAttributes() {
   return Arrays.asList(controller.getModel().getAttributes());
 }
 @Override
 public void showMessage(String message, boolean error) {
   controller.setStatus(message, error);
 }
 @Override
 public IWorkbenchPartSite getValueSite() {
   return controller.getSite();
 }
 @Override
 public boolean isReadOnly() {
   return controller.isAttributeReadOnly(binding);
 }
 @Override
 public Object getValue() {
   return controller.getModel().getCellValue(binding, curRow);
 }