About slots

Niagara components are defined as a collection of “slots.” You can see all the slots that make up a component by viewing the “slot sheet” as shown in Figure 10. Slots have the following types of attributes:

Figure 10. Slot sheet for a single component


Slot sheet for a single component

Slot type

There are three types of slots:

  • Property

    Property slots represent a storage location of another Niagara object.

  • Action

    An action is a slot that specifies behavior that may be invoked either through a user command or by an event. Actions provide the capability to provide direction to components. They may be issued manually by the operator or automatically through links. Actions can be issued by right–clicking on the component.

  • Topic

    Topics represent the subject of an event. Topics contain neither a storage location, nor a behavior. Rather a topic serves as a place holder for a event source.

Slot name

Every slot is identified by a name that is unique within its Type. Slot names must contain ASCII letters or numbers.

Slot definition

Slots are either frozen or dynamic. A frozen slot is defined at compile time within a Type's Java class. That means that frozen slots are consistent across all instances of a specified Type – they don’t change. Dynamic slots may be added, removed, renamed, and reordered during runtime – they can change. The power of the Niagara Framework is in providing a consistent model for both frozen (compile time) slots and dynamic (runtime) slots.

Flags

Slots have flags that allow modification of an object’s presentation or behavior. For example, “read–only”, “operator allowed”, and “hidden”, are some of the slot flags that may be used to restrict the presentation or behavior of an object.

Facets

Facets contain meta data – or additional data about an object. For example, “units of measurement” is a type of facet. Facets may be viewed in the slot sheet and edited from a component property sheet, as shown in Figure 11.

Figure 11. Editing facets from the property sheet


Editing facets from the property sheet