-
Notifications
You must be signed in to change notification settings - Fork 295
The section graph
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 to the section graph are the removal and addition of sections. Simply removing all items in a subgraph will leave the section structure intact.
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.
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.
[Getting Started](Getting started with version 0.4)
[User's Guide](User's guide for version 0.4)
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)