Class: ListRelationsBox

XV. ListRelationsBox

Provides a container in which its components are a vertically stacked group of horizontal rows.
Made up of a header, scroller (with a list of related data), and a row of navigation buttons.
Must include a component called "list" that must be of subkind XV.ListRelations. The `value` must be set to a collection of `XM.Info` models. The superkind of XV.DocumentsBox.

new ListRelationsBox()

Source:

Extends

Methods

attachItem()

Source:
To Do:
  • Document the attachItem method.

attrChanged()

Source:
To Do:
  • Document the attrChanged method.

create()

Builds the box that contains the list of relationships: a group box comprised of a header, a scrollable list, and navigation buttons. XXX something wrong with using the components list? #refactor
Source:

detachItem()

Source:
To Do:
  • Document the detachItem method.

disabledChanged()

Reconsider whether buttons should be disabled. this.valueChanged() conveniently does this for us, so we use it even though the value hasn't changed.
Source:

newItem()

Spawn a new workspace, linked as a child to the one containing this box.
Source:

openItem()

Source:
To Do:
  • Document the openItem method.

selectionChanged()

Source:
To Do:
  • Document the selectionChanged method.

updateButtons()

Whether or not the new and attach buttons are enabled is based on complex criteria based on the status of the workspace model, the permissions of the user, and attributes of the list model. Therefore this code can be executed based on changes coming from multiple possible areas, and this function consolidates this functionality.
Source:

valueChanged()

Source:
To Do:
  • Document the valueChanged method.

workspaceModelStatusChanged()

When the workspace containing this box has a change to the status of the model, it waterfalls down an event to be handled here. We will want to enable the new- and attach- buttons if the model is no longer in READY_NEW state.
Source: