SWT Matrix - Overview
Print

SWT Matrix is a tabular widget for SWT Java GUI toolkit.

What makes it different from other such components is unlimited capacity and instant rendering.
It also focuses on developer productivity by clean design with minimal learning curve.

Unlimited Capacity

SWT Matrix can handle an unlimited number of rows and columns. Integer.MAX_VALUE (2 147 483 647) is not a limit, neither is Long.MAX_VALUE (9 223 372 036 854 775 807). And still it performs block selection, moving, resizing scrolling and setting of various properties of cells, rows and columns. More then 2147483647 items is a rare case, but it can happen. It's better to be safe then sorry.

Instant Rendering

By convention instant for GUI applications means responding in less then 0.1 sec. Now consider scrolling a content of a table with 1 million rows and columns in a full screen mode with 1680 x 1050 screen resolution. It's around 2000 visible cells of size 50x16. Components that don't support virtual display choke completely. BTW don't be misled by SWT.VIRTUAL constructor flag of those widgets. Scroll to the end and you will see that it is lazy initialization rather then virtualization. None of the popular tabular components tested on Windows XP 2GHz are consistent to provide instant response for basic operations like scrolling. SWT Matrix paints itself in about 50 ms, which is at least 8x better then any other grid/table widget. And not all identified optimizations have been implemented yet.

Clean design

Total of 12 classes/interfaces in the public API does not sound like an over-complicated design for the amount of supported features and compared to hundreds of classes in other solutions. Symmetry is also a measure of a clean design. Thus there is no such a thing that works for columns, but does not work for rows and vice versa, or works for one section and does not for another. For example since columns can be resized why not resize the row header? Even freezing is symetric. If the head of an axis can be frozen why not the tail? A frozen footer may come handy.

The current major limitations are for instance lack of cell merging, column/row grouping and hierarchy. But they are coming in the next releases. Here is the detail feature list.

The component is released under commercial licence but is free of charge for non commercial use.

Fell free to express you feed back. Your opinion is invaluable to us. Hope to hear from you.