use of com.google.gwt.user.client.rpc.AsyncCallback in project activityinfo by bedatadriven.
the class OfflineStoreGwtTest method testStoreForm.
public void testStoreForm() {
survey = new Survey();
FormMetadata surveyMetadata = FormMetadata.of(1L, survey.getFormClass(), FormPermissions.readWrite());
// First put the schema to the store
Snapshot snapshot = new Snapshot(Collections.singletonList(surveyMetadata), Collections.singletonList(toFormRecordSet(survey)));
offlineStore = new OfflineStore(httpStore, IDBFactoryImpl.create());
httpStore = new HttpStore(new OfflineClientStub());
formStore = new FormStoreImpl(httpStore, offlineStore, Scheduler.get());
offlineStore.store(snapshot).then(new AsyncCallback<Void>() {
@Override
public void onFailure(Throwable caught) {
fail();
}
@Override
public void onSuccess(Void result) {
// Once the store is complete,
// verify that the Form Schema can be read...
verifyWeCanReadFormSchemas().join(OfflineStoreGwtTest.this::verifyWeCanQueryRecords).join(OfflineStoreGwtTest.this::verifyWeCanMakeChangesOffline).join(OfflineStoreGwtTest.this::verifyWeCanLoadCurrentSnapshot).join(OfflineStoreGwtTest.this::verifyWeCanQuery).then(new AsyncCallback<Void>() {
@Override
public void onFailure(Throwable caught) {
LOGGER.log(Level.SEVERE, "Operation failed", caught);
fail();
}
@Override
public void onSuccess(Void result) {
finishTest();
}
});
}
});
delayTestFinish(5000);
}
use of com.google.gwt.user.client.rpc.AsyncCallback in project activityinfo by bedatadriven.
the class DbPartnerEditor method showEditDialog.
private void showEditDialog(PartnerDTO partner) {
PartnerForm form = new PartnerForm(otherPartnerNames(partner));
form.getBinding().bind(partner);
FormDialogImpl<PartnerForm> dlg = new FormDialogImpl<>(form);
dlg.setWidth(450);
dlg.setHeight(300);
dlg.setHeadingText(I18N.CONSTANTS.newPartner());
dlg.show(new FormDialogCallback() {
@Override
public void onValidated(FormDialogTether dlg) {
dispatcher.execute(new UpdatePartner(db.getId(), partner), dlg, new AsyncCallback<CreateResult>() {
@Override
public void onFailure(Throwable caught) {
Log.debug("DbPartnerEditor caught exception while executing command AddPartner: ", caught);
}
@Override
public void onSuccess(CreateResult result) {
if (result instanceof DuplicateCreateResult) {
LOGGER.fine("DbPartnerEditor tried to add partner '" + partner.getName() + "' to database " + db.getId() + " but it already exists");
MessageBox.alert(I18N.CONSTANTS.newPartner(), I18N.CONSTANTS.duplicatePartner(), null);
} else {
LOGGER.fine("DbPartnerEditor added/updated new partner '" + partner.getName() + "' to database " + db.getId());
eventBus.fireEvent(AppEvents.SCHEMA_CHANGED);
dlg.hide();
updateStore(partner, result);
}
}
});
}
});
}
use of com.google.gwt.user.client.rpc.AsyncCallback in project activityinfo by bedatadriven.
the class DbProjectEditor method onAdd.
@Override
protected void onAdd() {
final ProjectDTO newProject = new ProjectDTO();
this.view.showAddDialog(newProject, new FormDialogCallback() {
@Override
public void onValidated(final FormDialogTether dlg) {
service.execute(new AddProject(db.getId(), newProject), dlg, new AsyncCallback<CreateResult>() {
@Override
public void onFailure(Throwable caught) {
MessageBox.alert(I18N.CONSTANTS.error(), I18N.CONSTANTS.errorOnServer(), null);
}
@Override
public void onSuccess(CreateResult result) {
newProject.setId(result.getNewId());
store.add(newProject);
db.getProjects().add(newProject);
eventBus.fireEvent(AppEvents.SCHEMA_CHANGED);
dlg.hide();
}
});
}
});
}
use of com.google.gwt.user.client.rpc.AsyncCallback in project activityinfo by bedatadriven.
the class DbProjectEditor method onEdit.
@Override
protected void onEdit(final ProjectDTO model) {
final ProjectDTO copy = new ProjectDTO();
copy.setProperties(model.getProperties());
final FormDialogImpl<ProjectForm> dialog = new FormDialogImpl<ProjectForm>(new ProjectForm()) {
@Override
public void onCancel() {
model.setProperties(copy.getProperties());
}
};
dialog.setWidth(450);
dialog.setHeight(300);
dialog.getForm().getBinding().bind(model);
List<ProjectDTO> allowed = Lists.newArrayList(store.getModels());
allowed.remove(model);
dialog.getForm().getNameField().setValidator(new UniqueNameValidator(allowed));
dialog.show(new FormDialogCallback() {
@Override
public void onValidated() {
service.execute(RequestChange.update(model, "name", "description"), dialog, new AsyncCallback<VoidResult>() {
@Override
public void onFailure(Throwable caught) {
// handled by monitor
}
@Override
public void onSuccess(VoidResult result) {
dialog.hide();
eventBus.fireEvent(AppEvents.SCHEMA_CHANGED);
view.refresh();
}
});
}
});
}
use of com.google.gwt.user.client.rpc.AsyncCallback in project activityinfo by bedatadriven.
the class DbUserEditorActions method showDialog.
private void showDialog(final UserForm form, final boolean newUser) {
final FormDialogImpl dlg = new FormDialogImpl(form);
dlg.setHeadingText(newUser ? I18N.CONSTANTS.newUser() : I18N.CONSTANTS.editUser());
dlg.setWidth(400);
dlg.setHeight(300);
dlg.getCancelButton().addSelectionListener(new SelectionListener<ButtonEvent>() {
@Override
public void componentSelected(ButtonEvent buttonEvent) {
panel.setModified(false);
}
});
final String host = Window.Location.getHostName();
dlg.show(new FormDialogCallback() {
@Override
public void onValidated() {
try {
UpdateUserPermissions command = new UpdateUserPermissions(db, form.getUser(), host);
command.setNewUser(newUser);
dispatcher.execute(command, new AsyncCallback<VoidResult>() {
@Override
public void onFailure(Throwable caught) {
if (caught instanceof UserExistsException) {
MessageBox.alert(I18N.CONSTANTS.userExistsTitle(), I18N.CONSTANTS.userExistsMessage(), null);
} else {
MessageBox.alert(I18N.CONSTANTS.serverError(), I18N.CONSTANTS.errorUnexpectedOccured(), null);
}
}
@Override
public void onSuccess(VoidResult result) {
loader.load();
panel.setModified(false);
dlg.hide();
}
});
} catch (FolderAssignmentException excp) {
MessageBox.alert(I18N.CONSTANTS.noFolderAssignmentTitle(), excp.getMessage(), null);
} catch (PermissionAssignmentException excp) {
MessageBox.alert(I18N.CONSTANTS.permissionAssignmentErrorTitle(), excp.getMessage(), null);
}
}
});
}
Aggregations