private void attemptSourceNavigation(final SourceNavigation navigation,
final AppCommand retryCommand)
{
// see if we can navigate by id
String docId = navigation.getDocumentId();
final EditingTarget target = getEditingTargetForId(docId);
if (target != null)
{
// check for navigation to the current position -- in this
// case execute the retry command
if ( (target == activeEditor_) &&
target.isAtSourceRow(navigation.getPosition()))
{
if (retryCommand.isEnabled())
retryCommand.execute();
}
else
{
suspendSourceNavigationAdding_ = true;
try
{
view_.selectTab(target.asWidget());
target.restorePosition(navigation.getPosition());
}
finally
{
suspendSourceNavigationAdding_ = false;
}