The Simantics document subsystem is defined in various plugins including
- Headless documentation model
- Document editor
- Scene graph
The document data model is a scene graph which is loaded with the scene graph loader described here.
Document scene graph models can be loaded into multiple scene graph implementations. The default implementation (via plain org.simantics.scenegraph.loader.ScenegraphLoader adaption) can be used to transform the document model into a Wiki document via the interface org.simantics.document.WikiDocumentNode.
ScenegraphLoaderProcess loader = new ScenegraphLoaderProcess(new Composite()); WikiDocumentNodeImpl node = loader.load(graph, desc, ScenegraphLoaderUtils.getRuntime(graph, context));
The following framework nodes are provided
- Composite is a container for other nodes
- Wiki is a Wiki text node
- Diagram is an embedded diagram container
The document scene graph model is a structural model with procedural parameter support. The means that both the structure and content of the scene graph nodes can be defined as Values evaluated in Variable context. The document Variable context can be used to access the document context and the runtime context. Typical modelling constructs are
- Encapsulated types with interface properties which contain a scene graph fragment with some lifted parameters
- Procedural text where a fragment of Wiki text is computed from the runtime context
A document editor is modelled in org.simantics.document.ui.ontology. The corresponding editor class is org.simantics.document.ui.DocumentEditor.