The NOV Document Object Model (abbreviated as DOM) represents the base set of objects that allows the construction of versatile visual documents.
The DOM is designed to be edited, styled, deferly evaluated, and displayed on different medias.
Conceptually it follows the W3C DOM model, but is further extended to meet the demands of a larger set of document types and requirements.
The DOM serves as a foundation for the Nevron UI as well as the other heavier components implemented in NOV (rich text, chart, diagram, gauge, grid etc.).
The common DOM base of the different UI components ensures that most of the work required to mix different types of content is
already done by the DOM - for example: embed different widgets inside a diagram or inside a rich text document, history support (undo-redo), CSS of integrated content,
functional dependencies between integrated content and many other. This combined with the cross-platform architecture of NOV ensures that you can create the next
generation of rich visual content.
The DOM adds build-in support for the following features:
- Structure - structurally documents are hierarchies of nodes that follow the container-collection aggregation pattern.
- Metadata - each type of node is associated with a schema object, that defines the node properties, child node aggregation method and allows for the association of custom metadata.
- Events - the DOM is designed with observation in mind. DOM Events support bubbling, sinking as well as categorization.
- Undo-Redo - the DOM implements build in support for Undo-Redo that is tightly integrated with the DOM evaluation and mutation.
- Expressions - the value of each element property can be assigned by an expression.
Expressions allow for the automatic calculation of an element value that is based on other elements' values.
This makes it possible to create complex functional bindings between multiple element properties.
- Styling - the content of documents is styled via style sheets, that very much resemble the W3C CSS Level 3 model.
- Measure and Arrange - the DOM implements a build-in layout system, that is integrated inside the document automatic evaluation.
- Display - the DOM implements core support for display inside abstract graphics.