You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xap-dev@incubator.apache.org by James Margaris <jm...@nexaweb.com> on 2006/09/20 06:01:27 UTC

TreeTable progress

So I am making some pretty decent progress with treetable. The idea of tree table is that it is a combined tree and table. A multi-column tree, or a table with nested rows.

The idea is to have tree, table and treeTable all based on the same class as tree and table are just simpler (single column and un-nested) versions of treeTable. (And so is listbox really)

I am trying to strike a balance between proofing features to make sure they will work and not leaving too many odd tasks lying around. It took me a while to get the general setup of the control going but it seems to be ok right now. There are a few remaining sizing issues that a browser specific (for example on IE if you don't fix the height it is really tall; on Mozilla if you drag to the right the table will slide off the screen) but for the most part it works fairly well. I am trying to accomplish all of the following layout-related things:

1. User does not have to fix the width or height of table or individual columns/rows.

2. Top headers scroll horizontally with table but don't scroll vertically. (Are always displayed at top of visual portion of table)

3: Users can add/remove rows on the fly, change cell contents, etc.

4: Avoid a system like Dojo has for some components where component will not resize correctly unless you specifically tell it that the size has changed.

 

I think things like column-sorting and row selection will not be too bad as they are basically logical operations that don't interact too much with the browser. The layout stuff is tricky because it does interact a lot with the peculiarities of different implementations and weird HTML things. I tried a lot of different combinations of HTML controls until I found one that works well in both Mozilla and IE.

The table sample under widgets has a treeTable people can mess with. It is *far* from production quality but the basics work. It scrolls correctly, you can expand/contract nodes, etc. It isn't really usable but it should give people an idea of what I am going for.

 

James Margaris