You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by "Thierry Danard (JIRA)" <ji...@apache.org> on 2019/05/13 21:04:00 UTC

[jira] [Updated] (NETBEANS-1792) Behavior of BooleanStateAction has changed

     [ https://issues.apache.org/jira/browse/NETBEANS-1792?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Thierry Danard updated NETBEANS-1792:
-------------------------------------
    Affects Version/s: 11.0

> Behavior of BooleanStateAction has changed
> ------------------------------------------
>
>                 Key: NETBEANS-1792
>                 URL: https://issues.apache.org/jira/browse/NETBEANS-1792
>             Project: NetBeans
>          Issue Type: Bug
>          Components: platform - Actions
>    Affects Versions: 10.0, 11.0
>            Reporter: Thierry Danard
>            Assignee: Svatopluk Dedic
>            Priority: Major
>             Fix For: Next
>
>         Attachments: DemoNetBeans1792.zip, image-2018-12-10-19-26-40-055.png, image-2018-12-11-09-23-24-408.png, image-2018-12-11-09-47-54-474.png
>
>
> I used the latest release candidate of NetBeans 10 (vc4), and found that BooleanStateAction fires two "booleanState" events instead of one when a button backed by a BooleanStateAction is pressed, the first event reporting that the state is changing to "true", the second event reporting that the state is changing back to "false" (even though the button is still showing as "pressed")
> In my case, this BooleanStateAction is inside a JToolbar.
> javax.swing.JToolBar toolbar = new JToolBar();
>  toolbar.setFloatable(false);
>  toolbar.setRollover(true);
> Component tp1 = SystemAction.get(MyBooleanStateAction1.class).getToolbarPresenter();
>  Component tp2 = SystemAction.get(MyBooleanStateAction2.class).getToolbarPresenter();
>  Component tp3 = SystemAction.get(MyBooleanStateAction3.class).getToolbarPresenter();
> tp1.setFocusable(false);
>  tp2.setFocusable(false);
>  tp3.setFocusable(false);
> toolbar.add(tp1);
>  toolbar.add(tp2);
>  toolbar.add(tp3);
> JPanel toolbarPanel = new JPanel(new BorderLayout());
>  toolbarPanel.add(toolbar, BorderLayout.WEST);
>  
> This is a breaking change, it was working just fine in NetBeans 9. It breaks a lot of code in my app as I rely on the booleanState event to enable to disable behaviors: right now, when a user clicks a button, it shows as "pressed", but the associated function gets disabled right after it gets enabled.
> I wasn't able to find a root cause after running from NetBeans source.
> I did note that the BooleanStateAction is deprecated.
> I'll try to provide a sample code to reproduce.
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists