Skip to content

The section graph

Tonic Artos edited this page May 17, 2016 · 1 revision

The section graph is a DAG. It behaves as a heterogeneous graph in many ways, though items are virtual. This was chosen instead of a node and leaf structure as then items and sections could be intermixed at the same level. Though this choice does complicate the graph implementation considerably, it does mesh perfectly with the need for sections and items to be unidentifiably different for Slms. It is also quite memory efficient.

Structural changes

Structural changes to the section graph are the removal and addition of sections. Simply removing all items in a subgraph will leave the section structure intact.

Consistency

To prevent traversing the graph too much, sections maintain a lot of context about their position within the graph. As such, structural operations on the graph, as well as many section property changes, trigger updates to earlier, or later, nodes; depending on the operation.

Layout operations

The entrance of layout, fill and trim ops are through the root node. It is primarily through each section's layout state these calls are passed appropriately down the graph structure.

Versioned Pages

0.4

[Getting Started](Getting started with version 0.4)
[User's Guide](User's guide for version 0.4)

version5 (WIP)

User documentation
[Basic usage](A simple tutorial)
[Advanced usage](All the cool things)
[SuperSLiM and RxJava](Using SuperSLiM with RxJava)

Developers documentation
Glossary
[The section graph](The section graph)
[Tracking data changes](Tracking data changes)
[Configuration transformations](Configuration transformations)
[Layout helpers](Layout helpers)
[Section configuration](Section configuration)
[Section state](Section state)
[Section layout managers](Section layout managers)
[Header layout managers](Header layout managers)

Clone this wiki locally