You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by "Michael Küttner (Jira)" <ji...@apache.org> on 2020/09/29 09:40:00 UTC

[jira] [Commented] (NETBEANS-4857) ExplorerManager creates way too many PropertyChangeEvents if multiple OutlineViews are synchonized

    [ https://issues.apache.org/jira/browse/NETBEANS-4857?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17203824#comment-17203824 ] 

Michael Küttner commented on NETBEANS-4857:
-------------------------------------------

The source of the events is the method synchronizeSelectedNodes(..):

!synchronize-selected-nodes.png!

From my point of view the whole synchronization process does not need to fire any property change event.
Is there way to deactivate or change this behaviour?

 

> ExplorerManager creates way too many PropertyChangeEvents if multiple OutlineViews are synchonized 
> ---------------------------------------------------------------------------------------------------
>
>                 Key: NETBEANS-4857
>                 URL: https://issues.apache.org/jira/browse/NETBEANS-4857
>             Project: NetBeans
>          Issue Type: Bug
>          Components: platform - Outline&amp;TreeTable
>    Affects Versions: 8.2, 11.0, 12.0, 11.1, 11.2, 11.3, 12.1
>            Reporter: Michael Küttner
>            Priority: Major
>         Attachments: TreeViewMain.java, synchronize-selected-nodes.png
>
>
> An ExplorerManager can be shared by multiple OutlineViews to synchronize displayed nodes and selection. This works fine for single node selection (ListSelectionModel.SINGLE_SELECTION).
> But in case of multiple selection (ListSelectionModel.MULTIPLE_INTERVAL_SELECTION) the ExplorerManager creates way too many PropertyChangeEvents.
> I attached a small example application that contains two OutlineViews sharing a single ExplorerManger. A PropertyChangeListener is registered to the ExplorerManager and prints old/new selected node to standard out.
> If you select all nodes from "0" to "29" (e.g, usind SHIFT+Mouse1) you will get following output. The PropertyChangeListener is called *32* times!!!
> old node: [0]; new node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
> old node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]; new node: []
> old node: []; new node: [0]
> old node: [0]; new node: [0, 1]
> old node: [0, 1]; new node: [0, 1, 2]
> old node: [0, 1, 2]; new node: [0, 1, 2, 3]
> old node: [0, 1, 2, 3]; new node: [0, 1, 2, 3, 4]
> old node: [0, 1, 2, 3, 4]; new node: [0, 1, 2, 3, 4, 5]
> old node: [0, 1, 2, 3, 4, 5]; new node: [0, 1, 2, 3, 4, 5, 6]
> old node: [0, 1, 2, 3, 4, 5, 6]; new node: [0, 1, 2, 3, 4, 5, 6, 7]
> old node: [0, 1, 2, 3, 4, 5, 6, 7]; new node: [0, 1, 2, 3, 4, 5, 6, 7, 8]
> old node: [0, 1, 2, 3, 4, 5, 6, 7, 8]; new node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
> old node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; new node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
> old node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; new node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
> old node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]; new node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
> old node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; new node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
> old node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]; new node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
> old node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]; new node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
> old node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]; new node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
> old node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]; new node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
> old node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]; new node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
> old node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]; new node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
> old node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]; new node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
> old node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]; new node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]
> old node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]; new node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22]
> old node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22]; new node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]
> old node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]; new node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]
> old node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]; new node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]
> old node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]; new node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]
> old node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]; new node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27]
> old node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27]; new node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28]
> old node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28]; new node: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
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