pivot-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Chris Bartlett <cbartlet...@gmail.com>
Subject Re: TableView selectedRowChanged
Date Tue, 30 Nov 2010 15:41:49 GMT
Firstly, I must state that I have only briefly examined the recent row
editing changes, so apologies if any of the below text is inaccurate.

A quick look suggests that the problem is due to the row editor being open
when another call to RowEditor#edit(TableView, int, int) is made.
That attempts to open the TableViewRowEditor and add a
ContainerMouseListener, but one is already there.
The pre-existing ContainerMouseListeners would normally be removed in the
TableViewRowEditor#close(boolean) method.

I imagine that you are more likely to see this problem if you are using an
edit effect as this will prolong the time taken for the row editor window to

I assume that you are using the provided
org.apache.pivot.wtk.content.TableViewRowEditor class for your RowEditor?
This extends Window, so you if you have a reference to it, you should be
able to call Window#isOpen() to first check to see if the editor is still
open, and avoid opening another one.
You could also explicitly call the Window#close() or Window#close(boolean)
 methods and wait for the window to close before opening the row editor on
another row.
You may find it useful to register a WindowStateListener on
the TableViewRowEditor to better track and control window closing.

When trying to replicate this with the (unchanged)
org.apache.pivot.tests.TableViewTest2 class from trunk, I was also able to
produce another exception by rapidly left-clicking in the TableView.

java.lang.IndexOutOfBoundsException: index -1 out of bounds.
at org.apache.pivot.collections.ArrayList.get(ArrayList.java:346)
at org.apache.pivot.wtk.TablePane$Row.get(TablePane.java:263)
at org.apache.pivot.wtk.CardPane.setSelectedIndex(CardPane.java:93)
at org.apache.pivot.wtk.effects.Transition$1.run(Transition.java:52)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)



On 30 November 2010 21:33, lello <rborrelli@gmail.com> wrote:

> Hi all,
> I have been trying to implement a tableview in which the row editor is
> called every time a row is selected (no need for a double click).
> The code I used is the following:
> myTableView.getTableViewSelectionListeners().add(new
> TableViewSelectionListener.Adapter() {
>                        @Override
>                        public void selectedRowChanged(TableView tv, Object
> o) {
>                                int row = tv.getSelectedIndex();
>                                tv.getRowEditor().edit(tv, row, 0);
>                        }
>                }
>                );
> The code seems to work. Indeed the row editor is called when I move with
> the
> cursor on the row.
> However, when I move "too fast", i get the following error:
> Duplicate listener org.apache.pivot.wtk.content.TableViewRowEditor$1@d2f5f1
> added to org.apache.pivot.wtk.Container$ContainerMouseListenerList@10c276
> java.lang.IllegalArgumentException: Component already has a parent.
>        at org.apache.pivot.wtk.TablePane$Row.insert(TablePane.java:199)
>        at org.apache.pivot.wtk.TablePane$Row.add(TablePane.java:187)
>        at
> org.apache.pivot.wtk.content.TableViewRowEditor.open(TableViewRowEditor.java:291)
>        at org.apache.pivot.wtk.Window.open(Window.java:585)
>        at
> org.apache.pivot.wtk.content.TableViewRowEditor.edit(TableViewRowEditor.java:182)
> Any help is appreciated,
> Lello
> --
> View this message in context:
> http://apache-pivot-users.399431.n3.nabble.com/TableView-selectedRowChanged-tp1992938p1992938.html
> Sent from the Apache Pivot - Users mailing list archive at Nabble.com.

View raw message