Layout Handler - v0.4
This documentation refers to the 0.4 released version of the Layout Handler code.
The Reorderer itself is designed to be ignorant of the specifics of the markup in which it is used. In particular, it is ignorant of the spatial arrangement of the items it is to reorder. The knowledge that is needed to interpret the user's intention when, for example, he or she presses an arrow key, is encapsulated in a "LayoutHandler". The LayoutHandler is passed to the Reorderer constructor upon instantiation.
The Reorderer includes a number of LayoutHandlers that can be used as is, but clients of the Reorderer are free to create their own LayoutHandlers, provided they implement the following functions:
getItemAbove(item)
getItemBelow(item)
getRightSibling(item)
getLeftSibling(item)
moveItemUp(item)
moveItemDown(item)
moveItemRight(item)
moveItemLeft(item)
dropPosition(target, moving, x, y)
mouseMoveItem(item)
Currently, the Reorderer includes the following LayoutHandlers:
- ListLayoutHandler API - v0.4
- GridLayoutHandler API - v0.4
- ModuleLayoutHandler API - v0.4
LayoutHandler APIs will Change
While clients can implement their own layout handlers if necessary, we don't currently consider this to be a public API. We will be reworking the LayoutHandler API significantly, providing a simple moveItem() function that will provide an easy extension point for modifying the behaviour of the Reorderer.