Hi Greg,
if i add this

            whatIsThisMenuItem.setEnabled(false);

after the line
                        
            whatIsThisMenuItem.setAction(new Action() {
                        ...
            });

at runtime I get this exception:

java.lang.IllegalArgumentException: Button and action enabled states are not
consistent.
        at org.apache.pivot.wtk.Button.setEnabled(Button.java:401)
        at org.apache.pivot.wtk.Menu$Item.setEnabled(Menu.java:90)
        at
org.apache.pivot.tutorials.menus.ContextMenus$1.configureContextMenu(ContextMenus.java:53)
        at
org.apache.pivot.wtk.ApplicationContext$DisplayHost.processMouseEvent(ApplicationContext.java:858)
        at java.awt.Component.processEvent(Component.java:6054)
        at
org.apache.pivot.wtk.ApplicationContext$DisplayHost.processEvent(ApplicationContext.java:709)
        at java.awt.Component.dispatchEventImpl(Component.java:4652)
        at java.awt.Component.dispatchEvent(Component.java:4482)
        at 
java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4235)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
        at java.awt.Container.dispatchEventImpl(Container.java:2085)
        at java.awt.Window.dispatchEventImpl(Window.java:2478)
        at java.awt.Component.dispatchEvent(Component.java:4482)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)
        at java.awt.EventQueue.access$000(EventQueue.java:85)
        at java.awt.EventQueue$1.run(EventQueue.java:603)
        at java.awt.EventQueue$1.run(EventQueue.java:601)
        at java.security.AccessController.doPrivileged(Native Method)
        at
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
        at
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
        at java.awt.EventQueue$2.run(EventQueue.java:617)
        at java.awt.EventQueue$2.run(EventQueue.java:615)
        at java.security.AccessController.doPrivileged(Native Method)
        at
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:614)
        at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

note that in my case in my contextual menu now I have added other items (one
before this item, and another after, just for example) , so I don't know it
it's good to have this exception. 

But in any case I think that the issue is the following:
if I add the same line but just before the setAction, i get no exception,
and the related item is selectable and the action is executed ...

I see that in the 
                public void perform(Component source) {
source is the Menu.Item, but as inspected by the debugger it has enabled =
true (and that's strange) ... and probably should be fixed, and the caller
of perform should call it only if source is enabled, ok ?
Than as a workaround I suggest to check if source is enabled, otherwise do
nothing (and maybe close the context menu).

What do you think ?

Bye,
Sandro


--
View this message in context: 
http://apache-pivot-developers.417237.n3.nabble.com/jira-Created-PIVOT-737-TerraTableViewSkin-opens-a-TableViewRowEditor-listening-to-both-mouse-buttons-tp2871532p2899010.html
Sent from the Apache Pivot - Developers mailing list archive at Nabble.com.

Reply via email to