pivot-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Scott Baxter <scott.baxte...@gmail.com>
Subject Pivot vs. ExtJS
Date Sat, 20 Feb 2010 01:44:03 GMT
I'm looking at using Pivot instead of the ExtJS Framework for RIA
development.

First, let me say that I am pretty impressed with Pivot.  It seems leaps and
bounds better suited to RIA than the disappointment that is JavaFX.  It also
appears to be a fairly robust platform at a very early stage.

However, in my evaluation, I've found the following things I want to do (and
can do with ExtJS), but either I don't understand how to do them with Pivot,
or Pivot does not currently support them.  If anyone else knows of a way to
accomplish the following things in Pivot, or can confirm that at the moment
they aren't possible, it would be greatly appreciated.

1.  Closeable tabs.  It seems there is a property for this, but setting it
has no effect.  My guess is that this is intended to be implemented soon,
and some of the groundwork has been laid, but it isn't done yet.  Or I'm
missing something entirely and there just some other property I need to set
and it'll start working.  I coded my own "close" button, but I placed it
within the tab body because I'm not quite sure how to place the close button
on the tab itself where it makes most sense.

2.  Table Views (ExtJS calls them grids).  Has anyone tried to implement the
following with Table Views in Pivot:  Row expanders (ability to expand a row
to show more information about a record, for example, a product description
in a textarea underneath the row), column filtering (basically turn each the
column header into drop down menu that allows you to enter a filter by
string, which then limits the results to only the rows that contain the
entered value in the selected column.  My guess is that this is best done by
removing rows (Objects) from the underlying List, but you'd first need to
make an unfiltered "copy" of it so that if the filter was cleared, you could
redisplay all the rows without having to re-query the application server.

3.  Assigning values and display text to drop lists and radio buttons.
Let's say I create a ButtonList.  I then create a GetQuery to retrieve some
JSON from my application server, which is automatically placed into an
ArrayList of HashMaps by the JSON serializer.  So, let's assume that I'm
querying a product database, and I'm getting back an array of hashmaps that
look like {productID:33443435, productName:'Widget Number 1',
productDescription:'Blah blah blah'}, how do I put this into my ButtonList
so that the user sees the product name in the drop list, but when it is
serialized and sent back to the server, the id is what is actually sent?
When I simply setListData(myArrayofHashMaps), the drop list actually
displays the results of the toString() method of each hash map, which is not
what is desired.  It almost seems like the ButtonList.setListData() method
will only accept a one dimensional array of strings.

4.   I have a weird issue with rendering tree views.  I placed a tree view
in the left pane of a split pane.  When I resize the tree view's split pane
down to the point that the tree view is almost not visible (perhaps the icon
but not the text), the tree view starts throwing exceptions:

Exception thrown during paint(): java.lang.IllegalArgumentException: width
is negative.
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException:
width is negative.
        at org.apache.pivot.wtk.Component.setSize(Unknown Source)
        at org.apache.pivot.wtk.content.TreeViewNodeRenderer.setSize(Unknown
Source)
        at org.apache.pivot.wtk.skin.terra.TerraTreeViewSkin.paint(Unknown
Source)

Has anyone else experienced this, or is it more likely that I'm doing
something wrong (maybe placing the tree view inside of a container in which
it isn't supposed to go?)

Any and all feedback on the above items (or any other experience others
might have trying to move from ExtJS to Pivot) is greatly appreciated.

Mime
View raw message