/**
  * Returns the active navigation node.
  *
  * @return active navigation node; {@code null} if no active node was found
  */
 protected INavigationNode<?> getActiveNode() {
   final IModuleGroupNode group = navigationComponentProvider.getActiveModuleGroupNode();
   IModuleNode module = null;
   ISubModuleNode submodule = null;
   if (group != null) {
     for (final IModuleNode candidate : group.getChildren()) {
       if (candidate.isActivated()) {
         module = candidate;
         break;
       }
     }
   }
   if (module != null) {
     submodule = getActiveSubModuleNode(module.getChildren());
   }
   return submodule != null ? submodule : module != null ? module : group;
 }
  /**
   * @see
   *     org.eclipse.riena.navigation.INavigationAssembler#buildNode(org.eclipse.riena.navigation.NavigationNodeId,
   *     org.eclipse.riena.navigation.NavigationArgument)
   */
  public IModuleGroupNode[] buildNode(
      final NavigationNodeId presentationId, final NavigationArgument navigationArgument) {

    try {
      Thread.sleep(3000);
    } catch (final InterruptedException e) {
      throw new MurphysLawFailure("Sleeping failed", e); // $NON-NLS-1$
    }

    final IModuleGroupNode node =
        new ModuleGroupNode(
            new NavigationNodeId(
                "org.eclipse.riena.example.navigate.tableTextAndTree")); //$NON-NLS-1$
    final IModuleNode module = new ModuleNode(null, "Table,Text&Tree"); // $NON-NLS-1$
    node.addChild(module);
    ISubModuleNode subModule =
        new SubModuleNode(
            new NavigationNodeId("org.eclipse.riena.example.table"),
            "Table"); //$NON-NLS-1$ //$NON-NLS-2$
    WorkareaManager.getInstance()
        .registerDefinition(
            subModule, TableSubModuleController.class, TableSubModuleView.ID, false);
    module.addChild(subModule);
    subModule =
        new SubModuleNode(
            new NavigationNodeId("org.eclipse.riena.example.text"),
            "Text"); //$NON-NLS-1$ //$NON-NLS-2$
    WorkareaManager.getInstance()
        .registerDefinition(subModule, TextSubModuleController.class, TextSubModuleView.ID, false);
    module.addChild(subModule);
    subModule =
        new SubModuleNode(
            new NavigationNodeId("org.eclipse.riena.example.tree"),
            "Tree"); //$NON-NLS-1$ //$NON-NLS-2$
    WorkareaManager.getInstance()
        .registerDefinition(subModule, TreeSubModuleController.class, TreeSubModuleView.ID, false);
    module.addChild(subModule);
    return new IModuleGroupNode[] {node};
  }