Search in sources :

Example 1 with Record

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();
                }
            });
        }
    });
}
Also used : ProjectDTO(org.activityinfo.legacy.shared.model.ProjectDTO) FormDialogCallback(org.activityinfo.ui.client.page.common.dialog.FormDialogCallback) UpdateEntity(org.activityinfo.legacy.shared.command.UpdateEntity) VoidResult(org.activityinfo.legacy.shared.command.result.VoidResult) PartnerDTO(org.activityinfo.legacy.shared.model.PartnerDTO) AsyncCallback(com.google.gwt.user.client.rpc.AsyncCallback) FormDialogTether(org.activityinfo.ui.client.page.common.dialog.FormDialogTether) Record(com.extjs.gxt.ui.client.store.Record)

Example 2 with Record

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);
            }
        }
    });
}
Also used : UpdateUserPermissions(org.activityinfo.legacy.shared.command.UpdateUserPermissions) MaskingAsyncMonitor(org.activityinfo.ui.client.dispatch.monitor.MaskingAsyncMonitor) BatchCommand(org.activityinfo.legacy.shared.command.BatchCommand) Record(com.extjs.gxt.ui.client.store.Record) BatchResult(org.activityinfo.legacy.shared.command.result.BatchResult) UserPermissionDTO(org.activityinfo.legacy.shared.model.UserPermissionDTO)

Example 3 with Record

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;
}
Also used : ArrayList(java.util.ArrayList) Record(com.extjs.gxt.ui.client.store.Record) LockedPeriodDTO(org.activityinfo.legacy.shared.model.LockedPeriodDTO)

Example 4 with Record

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);
    }
}
Also used : Record(com.extjs.gxt.ui.client.store.Record)

Example 5 with Record

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;
}
Also used : UpdateMonthlyReports(org.activityinfo.legacy.shared.command.UpdateMonthlyReports) VoidResult(org.activityinfo.legacy.shared.command.result.VoidResult) ArrayList(java.util.ArrayList) Promise(org.activityinfo.promise.Promise) MaskingAsyncMonitor(org.activityinfo.ui.client.dispatch.monitor.MaskingAsyncMonitor) Record(com.extjs.gxt.ui.client.store.Record)

Aggregations

Record (com.extjs.gxt.ui.client.store.Record)8 ArrayList (java.util.ArrayList)2 VoidResult (org.activityinfo.legacy.shared.command.result.VoidResult)2 MaskingAsyncMonitor (org.activityinfo.ui.client.dispatch.monitor.MaskingAsyncMonitor)2 ModelData (com.extjs.gxt.ui.client.data.ModelData)1 Field (com.extjs.gxt.ui.client.widget.form.Field)1 RadioGroup (com.extjs.gxt.ui.client.widget.form.RadioGroup)1 AsyncCallback (com.google.gwt.user.client.rpc.AsyncCallback)1 BatchCommand (org.activityinfo.legacy.shared.command.BatchCommand)1 UpdateEntity (org.activityinfo.legacy.shared.command.UpdateEntity)1 UpdateMonthlyReports (org.activityinfo.legacy.shared.command.UpdateMonthlyReports)1 UpdateUserPermissions (org.activityinfo.legacy.shared.command.UpdateUserPermissions)1 BatchResult (org.activityinfo.legacy.shared.command.result.BatchResult)1 ActivityDTO (org.activityinfo.legacy.shared.model.ActivityDTO)1 LockedPeriodDTO (org.activityinfo.legacy.shared.model.LockedPeriodDTO)1 PartnerDTO (org.activityinfo.legacy.shared.model.PartnerDTO)1 ProjectDTO (org.activityinfo.legacy.shared.model.ProjectDTO)1 UserPermissionDTO (org.activityinfo.legacy.shared.model.UserPermissionDTO)1 Promise (org.activityinfo.promise.Promise)1 FormDialogCallback (org.activityinfo.ui.client.page.common.dialog.FormDialogCallback)1