Hi, Well, I may be requiring a number of those things you listed myself.
I am not sure I will be making it a catch all generic framework kind of thing for doing it though as this just turns out to be a lot of work, so I can understand why you might want to use a prebuilt component. This is part of the problem of using pyjs, the community isn't big enough to have people building components like these for inclusion into the library. What I do see is that a lot of the features you list are implemented by people in a lot of different ways, some using tables others using lots of nested divs etc. I will see how things pan out and maybe start a discussion on the last at a later date and offer up some code. Cheers Brett On Sun, May 19, 2013 at 8:50 PM, Steve Waterbury <[email protected]>wrote: > Hi Brett, > > I've implemented some widgets in pyjs myself, but having some > experience (I've been using pyjs for about 3 years now), I > believe the features I'd like to have in a table widget are > non-trivial to implement using pyjs ... not impossible, but > non-trivial. Here I list the most important features for me, and > widgets of 2 javascript libraries that I know of -- Qooxdoo > (Table) and GWT (PagingScrollTable) -- that have one or more of > them. I'm certain there are other javascript libraries that have > table widgets with one or more of these features: > > * scrolling with fixed column headers > This is non-trivial to implement, especially if columns are > intended to be rearrangeable and resizable, as they are in > Qooxdoo's Table (see below). > > * column selection/de-selection to create custom views > Qooxdoo's Table has this; PagingScrollTable doesn't > > * column resizing > Qooxdoo's Table and PagingScrollTable both have this > > * column sorting > Qooxdoo's Table and PagingScrollTable both have this. > I've implemented this for a subclass I made of the pyjs > Grid widget -- in my implementation, you can also define a > per-column sort key for columns that contain something that is > not sortable (e.g. a string that contains a number to be sorted > on, or a widget). > > * "virtual tables" -- i.e. capability to page the contents of a > table from the server for huge tables, which vastly improves > usability. > Qooxdoo's Table has this; PagingScrollTable supposedly has it. > > If anyone has implemented these features in a pyjs table widget, > or found a way to include such a widget from another library > in a pyjs application, I would be very interested to hear > about it! > > Qooxdoo's Table shows all of them in this demo: > http://demo.qooxdoo.org/2.1.1/**demobrowser/#table~Table_Huge.**html<http://demo.qooxdoo.org/2.1.1/demobrowser/#table~Table_Huge.html> > The qooxdoo Table is much better than PagingScrollTable > -- it has DnD rerrangeable columns and a widget on the right of > the columns that allows columns to be selected/de-selected to > create a view, in addition to support for "virtual tables" -- > i.e. capability to page from the server for huge tables, which > vastly improves usability. > > PagingScrollTable has some of them -- see its demo: > http://collectionofdemos.**appspot.com/demo/com.google.** > gwt.gen2.demo.scrolltable.**PagingScrollTableDemo/** > PagingScrollTableDemo.html<http://collectionofdemos.appspot.com/demo/com.google.gwt.gen2.demo.scrolltable.PagingScrollTableDemo/PagingScrollTableDemo.html> > > Thanks, > Steve > > > On 05/19/2013 03:07 PM, Apexi 200sx wrote: > >> Hi Steve, >> >> Is there some specific features you need ? >> >> Reason I say this is because once you start digging into creating your >> own widgets in pyjs it turns out it is not a major issue to add features >> you may require, plus you will know exactly how they work and you won;t >> have to learn a possibly fairly complex API to use it. >> >> Going the custom route may turn out to be less hassle in the long run. >> >> Cheers >> >> Brett >> >> >> On Sun, May 19, 2013 at 8:03 PM, Steve Waterbury >> <[email protected] >> <mailto:waterbug@pangalactic.**us<[email protected]>>> >> wrote: >> >> On 05/17/2013 08:48 PM, Steve Waterbury wrote: >> >> Just curious ... >> http://code.google.com/p/__**google-web-toolkit-incubator/_** >> _wiki/PagingScrollTable<http://code.google.com/p/__google-web-toolkit-incubator/__wiki/PagingScrollTable> >> >> <http://code.google.com/p/**google-web-toolkit-incubator/** >> wiki/PagingScrollTable<http://code.google.com/p/google-web-toolkit-incubator/wiki/PagingScrollTable> >> > >> >> >> Steve >> >> >> Crickets. :) So, continuing this conversation with myself ... >> >> I just ran java2py.py on the PagingScrollTable.java code and it turns >> out that PagingScrollTable uses generic classes, which makes >> java2py.py >> throw up its hands ... e.g.: >> ------------------------------**__----------------------------** >> --__---------- >> >> public class PagingScrollTable<RowType> extends AbstractScrollTable >> implements >> HasTableDefinition<RowType>, HasPageCountChangeHandlers, >> HasPageLoadHandlers, HasPageChangeHandlers, >> HasPagingFailureHandlers { >> /** >> * A custom {@link AbstractCellView} used by the {@link >> PagingScrollTable}. >> * >> * @param <RowType> the type of the row values >> */ >> ------------------------------**__----------------------------** >> --__---------- >> >> >> Does anyone have any ideas how java generic classes might be >> transposed into pyjs? >> >> >> Steve >> >> -- >> >> --- You received this message because you are subscribed to the >> Google Groups "Pyjs.org Users" group. >> To unsubscribe from this group and stop receiving emails from it, >> send an email to >> pyjs-users+unsubscribe@__googl**egroups.com<http://googlegroups.com> >> >> <mailto:pyjs-users%**[email protected]<pyjs-users%[email protected]> >> **>. >> For more options, visit >> https://groups.google.com/__**groups/opt_out<https://groups.google.com/__groups/opt_out> >> >> <https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out> >> >. >> >> >> >> >> -- >> >> --- >> You received this message because you are subscribed to the Google >> Groups "Pyjs.org Users" group. >> To unsubscribe from this group and stop receiving emails from it, send >> an email to >> pyjs-users+unsubscribe@**googlegroups.com<pyjs-users%[email protected]> >> . >> For more options, visit >> https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out> >> . >> >> >> > -- > > --- You received this message because you are subscribed to the Google > Groups "Pyjs.org Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to > pyjs-users+unsubscribe@**googlegroups.com<pyjs-users%[email protected]> > . > For more options, visit > https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out> > . > > > -- --- You received this message because you are subscribed to the Google Groups "Pyjs.org Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
