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
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
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:[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>
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@__googlegroups.com
<mailto: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.
--
---
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.