V7 Wish List: Table Component

Are there others in this forum who would like to see a richer table component than what we currently have in Vaadin? For many years now, we have been heavy users of a JavaScript grid control called
DHTMLX Grid
in our non-Vaadin applications. It has been challenging for us to build the type of financial applications we build using the current Vaadin Table. While we would like to see Vaadin Table incorporate all features of the DHMLX Grid product, here are a few key features we would like. Not listed in any particular order


Multi-line header


See this example.
Click on
Extend Header
at the bottom of the table to view multi-line header.


Freeze columns


See this example.


Table with sub-table


See this example.
It should be possible to turn on/off summary display at table and sub-table level.


Table with sub-component

This is same as previous item except that instead of table we have component. When a row of the table is expanded, it should be possible to show any Vaadin Layout instead of sub-table. Along the lines
of this example.
Click on the Plus in the first column.


Versatile header cells

Ability to put any Vaadin component such as Button, TextField or ComboBox in the table header, along the lines of
this example
. Currently, we can achieve this support partially using
CSS and layouts
which is not an elegant solution. It also limits us by allowing only fixed column width.


Column-specific menu


See this example.


Multi-column sorting

The actual sorting code can run on server-side. However, the UI should display a Sort icon for each sorted column and the Table component should have an API to retrieve currently sorted columns as an array.


Scroll API

API to scroll current view of the table such that a particular row is visible.


Linked tables


Like this
.


Multi-line cells

With an API, rather than by altering a table’s CSS, we want to be able to do [indent]

this
.

Hi,

Yes - there are enhancements we’d like to see to the Table component, although not quite as many as these! I’ve just had a quick skim through the existing tickets for the Table component, and have found 4 relevant ones

Freeze Columns:
#3087

Table with sub-table, table with sub-component:
#7358
(I think this would also cover Multi Line Cells)
Versatile header cells:
#5542
(I think this would also cover Multi Line Header)
Multi Column Sorting:
#5386

Handily, the first two are the ones that are most important to us - and the scrollAPI would be very useful. (Even more useful if the scrollAPI is also exposed in javascript on the client side, so that a testing tool could say “scroll to row X”)

I can see that #7358 is already having code written against it in the Vaadin 7 codebase…

Personally, I’m not convinced by Linked Tables : that just looks like a PopUp Select with a grid, which should be easy enough to develop with existing components.

I would suggest that tickets are created for the others - cos nothing will happen without a ticket!

Cheers,

Charles.

This is definitely the case - “if there is no ticket, there is no problem” - although it is good to summarize the whole proposal here in this case.

Unfortunately, it looks like most bigger changes to Table, while certainly long overdue, might need to wait until Vaadin 7.1. The schedule for Vaadin 7.0 is quite full and many of the planned changes cannot or should not be done in a minor release.