This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

View | Details | Raw Unified | Return to bug 258518
Collapse All | Expand All

(-)a/options.editor/manifest.mf (-1 / +1 lines)
Lines 2-7 Link Here
2
OpenIDE-Module: org.netbeans.modules.options.editor/1
2
OpenIDE-Module: org.netbeans.modules.options.editor/1
3
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/options/editor/Bundle.properties
3
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/options/editor/Bundle.properties
4
OpenIDE-Module-Layer: org/netbeans/modules/options/editor/mf-layer.xml
4
OpenIDE-Module-Layer: org/netbeans/modules/options/editor/mf-layer.xml
5
OpenIDE-Module-Specification-Version: 1.57
5
OpenIDE-Module-Specification-Version: 1.58
6
AutoUpdate-Show-In-Client: false
6
AutoUpdate-Show-In-Client: false
7
7
(-)a/options.editor/src/org/netbeans/modules/options/editor/spi/OptionsFilter.java (-5 / +13 lines)
Lines 85-98 Link Here
85
     * @param source source {@link TreeModel} - the data to show will be gathered from this model
85
     * @param source source {@link TreeModel} - the data to show will be gathered from this model
86
     * @param acceptor acceptor specifying whether the given original tree node should or should not
86
     * @param acceptor acceptor specifying whether the given original tree node should or should not
87
     *                 be visible for given user's filter
87
     *                 be visible for given user's filter
88
     * @param params params[0] is allowing to delegate tree model listeners to tree 
88
     */
89
     */
89
    public void installFilteringModel(JTree tree, TreeModel source, Acceptor acceptor) {
90
    public void installFilteringModel(JTree tree, TreeModel source, Acceptor acceptor, Boolean... params) {
90
        if (!SwingUtilities.isEventDispatchThread()) {
91
        if (!SwingUtilities.isEventDispatchThread()) {
91
            throw new IllegalStateException("Not in AWT Event Dispatch Thread");
92
            throw new IllegalStateException("Not in AWT Event Dispatch Thread");
92
        }
93
        }
93
        
94
        
94
        usedCallback.run();
95
        usedCallback.run();
95
        tree.setModel(new FilteringTreeModel(source, doc, acceptor));
96
        boolean delegatingTreeModelListeners = params.length > 0 ? params[0] : false;
97
        tree.setModel(new FilteringTreeModel(source, doc, acceptor, delegatingTreeModelListeners));
96
    }
98
    }
97
99
98
    public interface Acceptor {
100
    public interface Acceptor {
Lines 105-115 Link Here
105
        private final Document filter;
107
        private final Document filter;
106
        private final Acceptor acceptor;
108
        private final Acceptor acceptor;
107
        private final Map<Object, List<Object>> category2Nodes = new HashMap<Object, List<Object>>();
109
        private final Map<Object, List<Object>> category2Nodes = new HashMap<Object, List<Object>>();
110
        private final boolean delegatingTreeModelListener;
108
111
109
        public FilteringTreeModel(TreeModel delegate, Document filter, Acceptor acceptor) {
112
        public FilteringTreeModel(TreeModel delegate, Document filter, Acceptor acceptor, boolean delegatingTreeModelListeners) {
110
            this.delegate = delegate;
113
            this.delegate = delegate;
111
            this.filter = filter;
114
            this.filter = filter;
112
            this.acceptor = acceptor;
115
            this.acceptor = acceptor;
116
            this.delegatingTreeModelListener = delegatingTreeModelListeners;
113
117
114
            this.delegate.addTreeModelListener(this);
118
            this.delegate.addTreeModelListener(this);
115
            this.filter.addDocumentListener(this);
119
            this.filter.addDocumentListener(this);
Lines 156-168 Link Here
156
        @Override
160
        @Override
157
        public synchronized void addTreeModelListener(TreeModelListener l) {
161
        public synchronized void addTreeModelListener(TreeModelListener l) {
158
            listeners.add(l);
162
            listeners.add(l);
159
            delegate.addTreeModelListener(l);
163
            if (delegatingTreeModelListener) {
164
                delegate.addTreeModelListener(l);
165
            }
160
        }
166
        }
161
167
162
        @Override
168
        @Override
163
        public synchronized void removeTreeModelListener(TreeModelListener l) {
169
        public synchronized void removeTreeModelListener(TreeModelListener l) {
164
            listeners.remove(l);
170
            listeners.remove(l);
165
            delegate.removeTreeModelListener(l);
171
            if (delegatingTreeModelListener) {
172
                delegate.removeTreeModelListener(l);
173
            }
166
        }
174
        }
167
175
168
        private synchronized Iterable<? extends TreeModelListener> getListeners() {
176
        private synchronized Iterable<? extends TreeModelListener> getListeners() {

Return to bug 258518