@Override public void onTransUnitSave(TransUnitSaveEvent event) { TransUnitId idToSave = event.getTransUnitId(); Log.info("TU save event: new[" + event.getTargets() + "] + old: [" + event.getOldContents()); if (stateHasNotChanged(event)) { Log.info("NO OP! state has not changed for " + idToSave); return; } queue.push(event); if (queue.isSaving(idToSave)) { Log.info(idToSave + " has saving event. Put in queue and return."); return; } performSave(idToSave); }
private void performSave(TransUnitId idToSave) { TransUnitSaveEvent forSaving = queue.getNextPendingForSaving(idToSave); if (forSaving == null) { Log.info("no pending save for " + idToSave); return; } targetContentsPresenter.setEditingState(idToSave, TargetContentsDisplay.EditingState.SAVING); UpdateTransUnit updateTransUnit = new UpdateTransUnit( new TransUnitUpdateRequest( idToSave, forSaving.getTargets(), forSaving.getAdjustedStatus(), forSaving.getVerNum(), sourceType), TransUnitUpdated.UpdateType.WebEditorSave); Log.info("about to save translation: " + updateTransUnit); dispatcher.execute( updateTransUnit, new UpdateTransUnitCallback( forSaving, documentListPresenter.getCurrentDocument(), idToSave)); }