Class: SortedManager

olympe.dc.ranking. SortedManager

Ranks the items according to the specified compare function and values of the items.

The method handleItem(...) will return a Deferred rank that will be passed to the following transformers. The Deferred instance will be distinct for each item. So the SortedManager can be understood like a query with multiple base tags. This allows to keep the sorting at this depth, even if subsequent transformer are added. If Related transformer are following, the destination items will be sorted according to the order of the origin items, (i.e instance A is linked to be U, instance B to H and I. Sorting result in [B, A], and folling the relation gives the order [H, I, U])


new SortedManager(compareFunc)

Parameters:
Name Type Description
compareFunc function
Implements:

Methods


activateDepth(depth)

Activate the ranking manager for the specified depth

Parameters:
Name Type Description
depth number
Implements:
Throws:

If the manager has already been activated

Type
Error

handleItem(added, tag, index [, value])

Handles an item (registers or unregisters it) that must be ranked.

This method returns a Deferred ranking object. This object will be passed to the following transformers like Related and Filter (but not Sort transformer), to handle the addition of new items (in case of relation) or removal of the item (in case of filtering)

Parameters:
Name Type Argument Description
added boolean

Whether the item is added or removed

tag string

Item's tag

index string

Item's index

value * <optional>

A value associated to the item, that can be used to sort it.

Implements:
Returns:
Type
olympe.dc.ranking.Deferred

isActivated()

Checks wether or not this manager has been activated

Implements:
Returns:
Type
boolean

setRanksUpdateHandler(callback)

Sets a function called whenever ranks are updated. The callback gets the ordered array of children indexes as argument.

Parameters:
Name Type Description
callback olympe.dc.ranking.Manager.RanksUpdateCallback
Implements:

updateActiveRanks()

Updates the ranks of all the items at the previously activated depth

Implements:
Throws:

If the manager has not been activated yet

Type
Error