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.


Reply via email to