Views and Tabs

Tabs

A tab is a page full of information that is a subset of a node. Where a node has more than one tab, the tabs are navigated to using a tabbed interface at the top of the browser.

There is a difference between how tabs are represented on the derived members, and how tabs are calculated.

Tab list

The tabs for the page are listed in member type Tab List (system.TAB_LIST).

The sequence number of the items in the Tab List gives the tab numbers.

The value of the items in the Tab List defines the tabs. This is of the form:

tabReference/tabName

Where tabReference is a short reference for the tab, and tabName is the name.

If name is omitted, then the ref is used as the name. If ref is omitted, then the tab has no reference. For example:

  • "Advanced" - reference "Advanced", name "Advanced"
  • "/Basic" - reference "", name "Basic"

Member types

On the derived data, the member types each have a value field of the form

tabReference/nestedSequence

Where nestedSequence is the sequence number shown to the user. For example

C/1.2

Means "question 1.2, to be shown on tab with reference C".

If there is no /, or the value starts with a /, the member type is associated with the tab with no reference.

If a tab reference of * (e.g. as "*/") is used, then the member type is included in every tab.

Use of tabs

GetNode and SetNode can both be passed a tab number. This defaults to 1, which means the first tab. If there is no first tab, then tab number 0 is used, which means "all the member types."

A negative number means "no member types". This is useful on calls to SetNode to suppress the return of data.

Hidden member types

If there is a single tab, it is shown without a tab bar, but only the member types on that tab are shown.

This can be used to hide some member types, but reveal them when tabNumber=0 is added to the address.

Views

A node can be maintained through a view, which is a set of member types. Currently the only supported view is the node type itself.