Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Riena/Navigation"

(Programmatic Creation)
(Module Groups, Modules and Submodules)
Line 14: Line 14:
  
 
{|
 
{|
  |[[Image:Riena_Cient_Navigation.PNG]]  
+
  |[[Image:Riena_Client_Navigation.PNG]]  
 
  |The picture to the left shows 3 module groups, the first one containing two modules (named 'Module 1.1.1' and 'Module 1.1.2'). The second and third module group each contain one module only (named 'Module 1.2.1' and 'Navigate', resp). The module named 'Module 1.2.1' cannot be closed by the user as indicated by the absence of the 'X' button in the right corner of the module widget.
 
  |The picture to the left shows 3 module groups, the first one containing two modules (named 'Module 1.1.1' and 'Module 1.1.2'). The second and third module group each contain one module only (named 'Module 1.2.1' and 'Navigate', resp). The module named 'Module 1.2.1' cannot be closed by the user as indicated by the absence of the 'X' button in the right corner of the module widget.
 
Note that only the first module within the first module group is ''expanded'', ie its submodules are visible within the navigation tree. This is because that module is currently selected.
 
Note that only the first module within the first module group is ''expanded'', ie its submodules are visible within the navigation tree. This is because that module is currently selected.

Revision as of 06:56, 4 December 2008

Navigation Concepts

The goal of the Riena navigation concept is to make navigation as easy and comfortable as possible for the enterprise user.

Subapplications

The Riena application ist made up from possibly multiple subapplications identifyable by the handles in the top area of the application window.

Riena Cient SubApplications.PNG

This example shows a Riena client application with 2 subapplications called 'Navigation' and 'Playground'. The 'Navigation' subapplication is currently selected.

Module Groups, Modules and Submodules

Each subapplication may contain multiple module groups, each module group may contain multiple modules and each module may contain multiple submodules. Submodules may be organized in a hierarchical way, ie a submodul may have zero (probably the most common case), one or more submodules as children.

Riena Client Navigation.PNG The picture to the left shows 3 module groups, the first one containing two modules (named 'Module 1.1.1' and 'Module 1.1.2'). The second and third module group each contain one module only (named 'Module 1.2.1' and 'Navigate', resp). The module named 'Module 1.2.1' cannot be closed by the user as indicated by the absence of the 'X' button in the right corner of the module widget.

Note that only the first module within the first module group is expanded, ie its submodules are visible within the navigation tree. This is because that module is currently selected. We can also see that the first submodule (named 'SubModule 1.1.1.1') is the parent of another submodule (unfortunately also named 'SubModule 1.1.1.1') and has a sibling (named 'SubModule 1.1.1.2') within the same module. Selecting a subapplication, module group or module automatically activates the first submodule within that context. This implies the there is no work area associated with modules, module groups or subapplications - only submodules can have an associated work area (ie view and optionally a controller)

The Riena navigation therefore can be thought of as a tree where the root is the application node and the leafs are the submodule nodes.

Navigation Node Common Properties

There are some properties that can be defined for all navigation nodes:

  • id - The id is made up from two parts, a type and an instance part. This is explained later on this page.
  • children - The type of children depends on the parent, a module node eg can only have submodule nodes as children.

Navigation nodes except module group nodes may also have a label and/or an icon.

Programmatic Creation

All navigation structures may easily be created programmatically. If the application class configured in extension org.eclipse.core.runtime.applications extends org.eclipse.riena.navigation.ui.application.AbstractApplication the method createModel() would be sent within the start(IApplicationContext context) method. The default implementation just returns an application node without any children:

public static final String DEFAULT_APPLICATION_TYPEID = "application"; //$NON-NLS-1$
 
protected IApplicationNode createModel() {
	NavigationNodeId applicationNodeId = new NavigationNodeId(DEFAULT_APPLICATION_TYPEID);
	IApplicationNode applicationModel = new ApplicationNode(applicationNodeId);
	return applicationModel;
}

All navigation node interfaces extend a common super interface, org.eclipse.riena.navigation.INavigationNode. The implementation classes form a corresponding hierarchy where all non abstract navigation node classes inherit from org.eclipse.riena.navigation.model.NavigationNode:

  Riena INavigationNode Hierarchy.PNG   Riena NavigationNode Hierarchy.PNG

Using Extension Points

Custom Assembler

Generic Assembler

Back to the top