public void onNavigationEvent(NavigationEvent event) {
QName source = (QName)event.getSource();
QName target = event.getTarget();
InteractionUnit targetUnit = dialog.findUnit(target);
if(targetUnit!=null) // local to dialog
{
String suffix = target.getSuffix();
if(suffix !=null) // relative, local (#prev, #next)
{
if(NavigationEvent.RELATION.next.equals(suffix))
{
}
else if(NavigationEvent.RELATION.prev.equals(suffix))
{
}
}
else // absolute, local
{
Procedure activateProcedure = procedures.getSingle(ActivationProcedure.ID);
activateProcedure.getCommand().execute(dialog, targetUnit.getId());
}
}
else // absolute, external
{
navigationDelegate.onNavigation(dialog.getId(), target); // TODO: dialog || unit as source?