Skip to content
This repository has been archived by the owner on Nov 9, 2017. It is now read-only.

Commit

Permalink
rhbz844820 - navigation will save pending change
Browse files Browse the repository at this point in the history
  • Loading branch information
Patrick Huang committed Aug 23, 2012
1 parent 33df483 commit b8d63d5
Showing 1 changed file with 14 additions and 4 deletions.
Expand Up @@ -140,6 +140,7 @@ public void onDocumentSelected(DocumentSelectionEvent event)
@Override
public void onSelectionChange(SelectionChangeEvent event)
{
//FIXME need to save pending change
TransUnit selectedTransUnit = dataModel.getSelectedOrNull();
if (selectedTransUnit != null)
{
Expand All @@ -161,7 +162,16 @@ public void onWorkspaceContextUpdated(WorkspaceContextUpdateEvent event)
@Override
public void onNavTransUnit(NavTransUnitEvent event)
{
navigationController.navigateTo(event.getRowType());
TransUnit selected = dataModel.getSelectedOrNull();
if (selected == null)
{
navigationController.navigateTo(event.getRowType());
}
else
{
//we want to save any pending state and then move
onTransUnitSave(new TransUnitSaveEvent(targetContentsPresenter.getNewTargets(), selected.getStatus()).andMoveTo(event.getRowType()));
}
}

@Override
Expand All @@ -186,7 +196,7 @@ public void onTransUnitSave(final TransUnitSaveEvent event)
{
targetContentsPresenter.setValue(selected, null);
}
else if (hasStateChange(event, selected))
else if (hasStateChange(selected, event.getStatus()))
{
proceedToSave(event, selected);
}
Expand All @@ -197,10 +207,10 @@ else if (event.andMove())
}
}

private boolean hasStateChange(TransUnitSaveEvent event, TransUnit selected)
private boolean hasStateChange(TransUnit old, ContentState newStatus)
{
//check whether target contents or status has changed
return !(selected.getStatus() == event.getStatus() && Objects.equal(targetContentsPresenter.getNewTargets(), selected.getTargets()));
return !(old.getStatus() == newStatus && Objects.equal(targetContentsPresenter.getNewTargets(), old.getTargets()));
}

private void proceedToSave(final TransUnitSaveEvent event, TransUnit selected)
Expand Down

0 comments on commit b8d63d5

Please sign in to comment.