Skip to content

5. View data and style overrides

Contents of DID 0.2

A view stores only the kinds of view data the specification lists in persistence.view.store (DISL 11.6); anything else is recomputed on load, by layout or defaults. Bound values live only in the model: a coordinate bound to an attribute (DISL 5.8) is never duplicated in NodeView. The view-data kinds the specification lists in persistence.view.viewer are viewer state, held per viewer: they MUST NOT be written to a definition.

Ephemeral ids. The keys of a view's nodes and edges MUST NOT name ephemeral ids (DISL 11.5), whose identity does not survive re-reading the model. A stored key that names an id the current reading makes ephemeral MUST be ignored, MUST be reported by std.ephemeralViewData, and MUST be dropped when the view data is next written. This covers a definition written before its specification made that id ephemeral.

Derived elements. The keys of nodes and edges MAY name derived elements (DISL 4.11) whose ids are stable, so that a user can place a derived node or route a derived edge. A key that names no element once derived elements are computed is kept, written back unchanged and otherwise ignored: it is not an unresolvable reference and produces no finding, because the element it names may be derived again later.

Style overrides are stored in NodeView.style and EdgeView.style, restricted to the style properties the specification's persistence.view.styleOverrides allows, and have the highest precedence when the notation is resolved (DISL 6.1). Resolved theme token values are never stored unless a user explicitly overrides a style.

Referenced from