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 44368
Collapse All | Expand All

(-)openide/loaders/src/org/openide/loaders/FolderChildren.java (-1 / +30 lines)
Lines 15-20 Link Here
15
15
16
import java.beans.*;
16
import java.beans.*;
17
import java.util.*;
17
import java.util.*;
18
import javax.swing.event.ChangeEvent;
19
import javax.swing.event.ChangeListener;
18
20
19
import org.openide.ErrorManager;
21
import org.openide.ErrorManager;
20
import org.openide.filesystems.FileObject;
22
import org.openide.filesystems.FileObject;
Lines 29-35 Link Here
29
* @author Jaroslav Tulach
31
* @author Jaroslav Tulach
30
*/
32
*/
31
final class FolderChildren extends Children.Keys 
33
final class FolderChildren extends Children.Keys 
32
implements PropertyChangeListener {
34
implements PropertyChangeListener, ChangeListener {
33
    /** the folder */
35
    /** the folder */
34
    private DataFolder folder;
36
    private DataFolder folder;
35
    /** filter of objects */
37
    /** filter of objects */
Lines 95-100 Link Here
95
            return;
97
            return;
96
        }
98
        }
97
    }
99
    }
100
    
101
    public void stateChanged( ChangeEvent e ) {
102
        // Filtering changed need to recompute children
103
        //setKeys( Collections.EMPTY_SET );
104
        refreshRunnable.refresh = true;
105
        refreshChildren().schedule(0);
106
        postClearTask();
107
        return;
108
    }
98
109
99
    /**
110
    /**
100
     * refreshRunnable holds references to the data object
111
     * refreshRunnable holds references to the data object
Lines 198-203 Link Here
198
    protected void addNotify () {
209
    protected void addNotify () {
199
        // add as a listener for changes on nodes
210
        // add as a listener for changes on nodes
200
        folder.addPropertyChangeListener (listener);
211
        folder.addPropertyChangeListener (listener);
212
        // add listener to the filter
213
        if ( filter instanceof ChangeableDataFilter ) {
214
            ((ChangeableDataFilter)filter).addChangeListener( this );
215
        }
201
        // 
216
        // 
202
        active = true;
217
        active = true;
203
        // start the refresh task to compute the children
218
        // start the refresh task to compute the children
Lines 209-214 Link Here
209
    protected void removeNotify () {
224
    protected void removeNotify () {
210
        // removes the listener
225
        // removes the listener
211
        folder.removePropertyChangeListener (listener);
226
        folder.removePropertyChangeListener (listener);
227
        // remove listener from filter
228
        if ( filter instanceof ChangeableDataFilter ) {
229
            ((ChangeableDataFilter)filter).removeChangeListener( this );
230
        }
212
        //
231
        //
213
        active = false;
232
        active = false;
214
        // we don't call the setKeys directly here because
233
        // we don't call the setKeys directly here because
Lines 233-242 Link Here
233
         */
252
         */
234
        private DataObject[] ch;
253
        private DataObject[] ch;
235
        
254
        
255
        private boolean refresh;
256
        
236
        /** calls setKeys with the folder children 
257
        /** calls setKeys with the folder children 
237
         * or with empty collection if active is false
258
         * or with empty collection if active is false
238
         */
259
         */
239
        public void run() {
260
        public void run() {
261
            
240
            if (! active) {
262
            if (! active) {
241
                setKeys (java.util.Collections.EMPTY_SET);
263
                setKeys (java.util.Collections.EMPTY_SET);
242
                return;
264
                return;
Lines 247-252 Link Here
247
                keys[i] = new Pair(ch[i].getPrimaryFile());
269
                keys[i] = new Pair(ch[i].getPrimaryFile());
248
            }
270
            }
249
            setKeys(Arrays.asList(keys));
271
            setKeys(Arrays.asList(keys));
272
            
273
            if ( refresh ) {
274
                refresh = false;
275
                for (int i = 0; i < keys.length; i++) {
276
                    refreshKey( keys[i] );
277
                }
278
            }
250
        }
279
        }
251
        
280
        
252
        /** stop holding the references to the data objects. After
281
        /** stop holding the references to the data objects. After

Return to bug 44368