use of com.extjs.gxt.ui.client.store.Record in project activityinfo by bedatadriven.
the class DbTargetEditor method onEdit.
@Override
protected void onEdit(final TargetDTO dto) {
this.view.showAddDialog(dto, db, true, new FormDialogCallback() {
@Override
public void onValidated(final FormDialogTether dlg) {
final Record record = store.getRecord(dto);
service.execute(new UpdateEntity(dto, getChangedProperties(record)), dlg, new AsyncCallback<VoidResult>() {
@Override
public void onFailure(Throwable caught) {
Log.error("Failed to edit target. " + caught.getMessage(), caught);
}
@Override
public void onSuccess(VoidResult result) {
if (record.get("partnerId") != null) {
PartnerDTO partner = db.getPartnerById((Integer) record.get("partnerId"));
dto.setPartner(partner);
} else {
dto.setPartner(null);
}
if (record.get("projectId") != null) {
ProjectDTO project = db.getProjectById((Integer) record.get("projectId"));
dto.setProject(project);
} else {
dto.setProject(null);
}
store.commitChanges();
eventBus.fireEvent(AppEvents.SCHEMA_CHANGED);
dlg.hide();
}
});
}
});
}
use of com.extjs.gxt.ui.client.store.Record in project activityinfo by bedatadriven.
the class DbUserEditorActions method save.
public void save(final NavigationCallback callback) {
BatchCommand batch = new BatchCommand();
for (Record record : store.getModifiedRecords()) {
batch.add(new UpdateUserPermissions(db.getId(), (UserPermissionDTO) record.getModel()));
}
dispatcher.execute(batch, new MaskingAsyncMonitor(panel, I18N.CONSTANTS.saving()), new AsyncCallback<BatchResult>() {
@Override
public void onFailure(Throwable caught) {
// handled by monitor
if (callback != null) {
callback.onDecided(false);
}
}
@Override
public void onSuccess(BatchResult result) {
store.commitChanges();
panel.setModified(false);
if (callback != null) {
callback.onDecided(true);
}
}
});
}
use of com.extjs.gxt.ui.client.store.Record in project activityinfo by bedatadriven.
the class LockedPeriodGrid method getUnsavedItems.
@Override
public List<LockedPeriodDTO> getUnsavedItems() {
List<LockedPeriodDTO> unsavedItems = new ArrayList<>();
List<Record> modifiedRecords = lockedPeriodStore.getModifiedRecords();
for (Record record : modifiedRecords) {
unsavedItems.add((LockedPeriodDTO) record.getModel());
}
return unsavedItems;
}
use of com.extjs.gxt.ui.client.store.Record in project activityinfo by bedatadriven.
the class TargetIndicatorPresenter method prepareBatch.
protected void prepareBatch(BatchCommand batch, ModelData model) {
if (model instanceof EntityDTO) {
Record record = treeStore.getRecord(model);
if (record.isDirty()) {
modifiedValues.add((TargetValueDTO) model);
UpdateTargetValue cmd = new UpdateTargetValue((Integer) model.get("targetId"), (Integer) model.get("indicatorId"), changes(record));
batch.add(cmd);
}
}
for (ModelData child : treeStore.getChildren(model)) {
prepareBatch(batch, child);
}
}
use of com.extjs.gxt.ui.client.store.Record in project activityinfo by bedatadriven.
the class MonthlyReportsPanel method save.
public Promise<Void> save() {
ArrayList<UpdateMonthlyReports.Change> changes = new ArrayList<>();
for (Record record : store.getModifiedRecords()) {
IndicatorRowDTO report = (IndicatorRowDTO) record.getModel();
for (String property : record.getChanges().keySet()) {
UpdateMonthlyReports.Change change = new UpdateMonthlyReports.Change();
change.setIndicatorId(report.getIndicatorId());
change.setMonth(IndicatorRowDTO.monthForProperty(property));
change.setValue(report.get(property));
changes.add(change);
}
}
final Promise<Void> promise = new Promise<>();
service.execute(new UpdateMonthlyReports(currentSiteId, changes), new MaskingAsyncMonitor(this, I18N.CONSTANTS.saving()), new AsyncCallback<VoidResult>() {
@Override
public void onFailure(Throwable caught) {
promise.onFailure(caught);
}
@Override
public void onSuccess(VoidResult result) {
store.commitChanges();
promise.onSuccess(null);
}
});
return promise;
}
Aggregations