Maybe this is something already discussed here, but I cant find a suitable data grid (cross-platform) component which permits me to display sets of data in a feature rich way, like having collapsable hierarchical rows and possibly pivot tables.
I was not able to find one, but perhaps someone of you has suggestions.
Unfortunately the plain Xojo Listbox is too simple for this, though a custom subclass could be probably built for this purpose. But its a lot of work which Id gladly avoid due to lack of time.
Im also considering integrating in a web view some JavaScript component, since many of them exists (see below), but I know this would also probably require a lot of extra work to make the JavaScript component communicate with my application. Im not very expert with web technologies, so I dont really know the extent if this problem and possible pitfalls. Someone already did something like that?
We have a cross-platform software system that uses a Xojo console app to talk to an Adobe AIR app, created with the (now) Apache Flex libraries and Flash Builder. It has allowed us to produce very flexible data grids and highly-customizable interfaces.
However, this is only one approach and although it has worked for us, we don’t necessarily recommend it now considering Adobe’s diminishing support of Flex (they open sourced it to Apache) and the work it would take you to learn MXML/ActionScript, besides the cost of Flash Builder.
As you mention, creating your own custom ListBox or reusing a plugin may be an easier route. If you haven’t yet, take a look at the Monkeybread page to see if they have any.
Karen, its a very nice class, and the first example is very close to what I need.
However Im sure I need to handle a lot more things, like reordering data, pin the left column and scroll horizontally, and so on.
So I think this may be a very good starting point to build a custom subclass, but still far from my needs.
Anyway is a pretty cool listbox, and I will keep in consideration if I cant find a better solution.
Just a question: licensing it, do I get the source code?
[quote=58769:@Tomas Sancio]We have a cross-platform software system that uses a Xojo console app to talk to an Adobe AIR app, created with the (now) Apache Flex libraries and Flash Builder. It has allowed us to produce very flexible data grids and highly-customizable interfaces.
However, this is only one approach and although it has worked for us, we don’t necessarily recommend it now considering Adobe’s diminishing support of Flex (they open sourced it to Apache) and the work it would take you to learn MXML/ActionScript, besides the cost of Flash Builder.
As you mention, creating your own custom ListBox or reusing a plugin may be an easier route. If you haven’t yet, take a look at the Monkeybread page to see if they have any.[/quote]
Tomas, this is an amazing solution, but, as you already said it would be over complicate (and long) to implement. In the end I dont know if it worth the efforts. Also the Flash Builder is something Id gladly avoid.
But thanks for telling me your experience.
[quote=58777:@Massimo Valle]Karen, its a very nice class, and the first example is very close to what I need.
However Im sure I need to handle a lot more things, like reordering data, pin the left column and scroll horizontally, and so on.
[/quote]
I was thinking about pinning the left column before this … With a single listbox subclass that could only happen if all the columns were the same width. I have thought of a couple of ways around that…
In the past for my own use I have used 2 listboxes with the left column in it’s own listboxe with vertical scrolling linked between the two using an external scrollbar… But IIRC it was hard to sync the scrolling well when using keyboard navigation.
The second way would be to put it in a container control and draw the left column oneself… That has it’s own challenges but should be doable
[quote=58784:@Karen Atkocius]I was thinking about pinning the left column before this … With a single listbox subclass that could only happen if all the columns were the same width. I have thought of a couple of ways around that…
In the past for my own use I have used 2 listboxes with the left column in it’s own listboxe with vertical scrolling linked between the two using an external scrollbar… But IIRC it was hard to sync the scrolling well when using keyboard navigation.
The second way would be to put it in a container control and draw the left column oneself… That has it’s own challenges but should be doable[/quote]
Well, Im not sure about performance, but having time to write a custom class I would probably try to build a canvas based grid. Its true that the listbox already provide basic features that should be rewritten, but for some parts the built-in features of the listbox force you to do a lot of convolutions which results in a not-very-neat design.