OpenInstaller: Left navigation panel grouping


Project Description:

The left navigation panel could benefit from a grouping of functionality. So we will be showing the same
left navigation heading for 2 or 3 pages which are grouped together.


Use case

  1. Group the pages when declaring it either in the pagesequence.xml or pagesequence.properties.
  2. Run the Installer.
  3. Now the user will see the same heading in the left navigation panel for the grouped pages.
    • For example , let us consider the configuration pages SampleProductA , SampleProuctB and SampleProuctC . If we have grouped these pages under a single heading Configuration then , when these pages are show on the screen the left navigation will show the same heading "Configuration"

Initial Design

I propose a simple design/solution to this problem . These are some advantages and disadvantages in this approach.
Advantage:

  1. Very easy for the user to group the pages.
  2. No changes are extra attributes to be made to the xml/xsd which exist's currently.

Disadvantages:

  1. works well only when the pages to be grouped are consecutive.
  2. If the pages to be grouped are not consecutive then left navigation may have a zig-zag flow.
    • For example if we have grouped the third and the fifth page then the heading will be visible only once in the left nav (in third position). When the fifth page comes the selection in the left navigation will point to the third heading now even though it went past it for the forth page and goes bag to the 5th heading in the left navigation when the sixth page comes.

Changes Required by user.

The changes the user needs to do for grouping is to modify the pagesequence.propeties file.
Sample file with grouping.

TestProductA=Configuration
TestProductB=Configuration
TestProductC=Configuration

The below image is the snapshot of how OpenInstaller will behave for the pagesequence.properties mentioned above.

This works similarly in TextUI . No special changes are required in TextUI code.



leftnav_1.gif (image/gif)