Spreadsheet display


#1

To handle scheduling I have been making a spreadsheet type viewer control. What it does so far is:
[list]You can specify a title for it to appear inside it at the top,
There is a title thing for both the columns and rows that can be set to any amount you specify that is above or equal to 1,
The grid auto resizes when you change the amount of columns or rows or resize any of the afore mentioned,
The height of the column title bar and the width of the row title bar can be set to anything you want,
The width of each individual column and the height of each individual row can be set to anything you want,
You assign text to be displayed in a gridCell/titleCell, or you can place in an arbitrary component to be displayed instead,
If you display text and not a full component in a cell then it draws it dynamically without instantiating a class for each cell, thus saving memory and speed,
If you don’t even have any text in a cell at all, then there is no memory allocated for it, not even a pointer, thus it can be arbitrarilly large with no slow down at all till you add in data, and if you add in only text it is still quite fast,
It only draws the part of the grid that is visible, thus it is now greatly faster that it was two days ago,
A scroll bar only appears in the main grid area, when scrolled down/up, the row title bar scrolls as well, without the column title bar moving, and vice versa when scrolling left/right,
Title bars can be hidden and the main grid is adjusted to fill in the size,
Couple other things, including a heap of ugly thrown together code (I do not do my best coding over a slow terminal session, I tend to try to finish it quick, rather then make it pretty and well documented as usual).[/list]

My future plans are including, but not at all limited by (order by top being things I will do to bottom being most likely will do if there is demand):
[list]
Cache the durn image already so it is not re-painted each time thus preventing that imperfect scrolling that exists on even my fast computer,
Add a listener that can be subclassed to handle things for this like calling a context menu on a cell and many other such things,
Add drag-n-drop support for moving cells around,
Have color’s overridable, mabye even per cell,
Able to print it out,
Making the default coloring for each pull from appropriate defaults in the current LnF class,
Add documentation and arrange code to be in an actual, logical order,
Few other things, make requests.[/list]

Would anyone have a need for such a thing, if no/bad response then I will just finish it enough to act how I wish in my app, if a good response, then I will work on it to get it to act how I wish in my app, and in my spare time clean it up, add doxygen documentation, add features, and add any made requests.


#2

I would like to see it. Can you upload it to the anticore website ?

Thanks,
Cyril


#3

When I say the code is ugly, I mean it is ugly. I hate termserv sessions, I am on one right now. I can upload some screens of it thus far when I get some time to open it again.

If you really want to mess with it and don’t mind looking through something horrible, I can post it up. It may be useable for displaying data right now; I havn’t implimented the listener yet (or even started it), so displaying is all you’d do. It is in a very alpha status right now.


#4

I have an automatic code “de-uglyfier”, so I can clean it up.
Please post it on anticore, with a “working” exe so we can see it working.

Sincerely,
Cyril


#5

Not ugly like that, just basics from that some of the variable names could be more descriptive to things like some of the other classes need to be embedded in the main class since external things should never touch them outside of its scope and such… Havn’t had time to work on it much yet, I have little time, but when I do have time I shall setup a demo of it.


#6