Previous | Next
2 History
Before outliner we had to use the old tree implementation.
The old tree implementation is based on a content model.
It created frames for each visible row and cell.
This was a big overhead and was hurting overall performance.
Especially scrolling performance was horrible.
One of the main consumers of the tree widget is thread pane in the mailnews
component. Thread pane is special, since it has
to display a lot of message headers (typically up to 10,000).
The old tree really sucked for this purpose. Each message header had
to be created as a content (actually it was created and destroyed lazily)
and then frames were constructed.
This was a good reason to implement a new lightweight contentless
widget - outliner (actually, the outliner now has an optional content model).
This widget uses only one frame for its body, so it is very efficient and
fast. (Do you remember the
first outliner testcase
? It has been capable
of displaying 5,000,000 rows).
Outliner has proven to be fast, and both developers and users quickly
aclimated to it.
(it can't display user defined content, like checkboxes etc.)
To make it more usable developers have created two builtin outliner view
implementations - RDF builder view (aka rdfliner) and content model view.
Previous | Next