A simple data model that describes the collapsible source code blocks
in the code editor. The collapsible code blocks are arranged in a tree
hierarchy. Code blocks are expected to be discrete; a parent should
fully contain each of its children, and siblings should not overlap.

getTextOffsets(java.lang.Object block,
int[] offsets)
Stores the start and end character offsets of the specified block into
the specified two-element integer array, and returns that array; if
the specified array is null, a new array is allocated.

java.lang.String

getToolTipText(java.lang.Object block)
Returns the tooltip text to display when the mouse is hovering over
the specified source code block and the block is collapsed.

getCollapsedBlocks

Returns the set of all collapsed blocks in the model; any collapsed
block that also has a collapsed ancestor must be excluded from the
return array. If there are no collapsed blocks, an empty array should
be returned.

The client must acquire a lock on the model before calling this
method.