Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[nebula-dev] [CompositeTable] very bad scalability

Hi Andre

> In the tests (30*30 cells) I made, I get the best results when I use
> canvas as cells, but the performance is still not fluid enough. I'll
> have to decide on monday if I still use CompositeTable for the current
> customer, but time is running and my customer change is due end of
> march. I therefore probably will try to patch the current tableViewer
> and try to fix the last documented bug. The time necessar for this try
> is affordable. Another alternative would be to try to reimplement my
> table using KTable that performs very well.
> On the other hand, i still could get some regular worktime (after my
> customer change) to continue compositeTable if I see a way to achieve my
> goal to implement a large, cell-based table.

I totally understand.  And your results are pretty much what I'd expect.

> What about using canvas for rows and draw all cells with gc (or
> draw2d-figures?) - similar to ktable?

That's exactly what I'd do.

> In this scenario all accesses to
> column-'controls' would have to be refactored to  a more generic
> TableRow-class and a subclasses GridRowLayout could be used. I assume
> the changes in CompositeTable would be very important but worth the
> performance increase for regular tables. What do you think of this
> approach?

It's exactly what I'd do.

Depending on the behavior you need, CompositeTable itself might not need any changes.  The only thing I can think of that might need changing is that if you need to define your own "columns" within your rows where those column objects are not themselves SWT controls in the tab list, CompositeTable's tab handling will break because CompositeTable just uses the SWT tab list to handle tab and enter keystrokes.  So we would need a way to override this behavior and let you tell CompositeTable, "let me handle the tab behavior for this row myself".  I think that's all that would be needed in CompositeTable itself to get the behavior you're looking for.


Best regards,

Dave Orme

Back to the top