/** Initializes the children. */ protected void addNotify () { // add as a listener for changes on nodes folder.addPropertyChangeListener (listener); // add listener to the filter if ( filter instanceof ChangeableDataFilter ) { ((ChangeableDataFilter)filter).addChangeListener( this ); } // active = true; // start the refresh task to compute the children refreshChildren(); }
/** Deinitializes the children. */ protected void removeNotify () { // removes the listener folder.removePropertyChangeListener (listener); // remove listener from filter if ( filter instanceof ChangeableDataFilter ) { ((ChangeableDataFilter)filter).removeChangeListener( this ); } // active = false; // we don't call the setKeys directly here because // there can be a task spawned by refreshChildren - so // we want to clear the children after that task is finished refreshChildren(); }
@Override protected boolean createKeys(List<DataObject> keys) { List<DataObject> files = new ArrayList<DataObject>(); for (DataObject f : folder.getChildren()) { if (!filter.acceptDataObject(f)) { continue; f.addPropertyChangeListener(WeakListeners.propertyChange(this, f)); for (DataObject kid : ((DataFolder) f).getChildren()) { if (!filter.acceptDataObject(kid)) { continue;
ReducedChildren(DataFolder folder, ChangeableDataFilter filter, SourceGroup g) { this.folder = folder; this.filter = filter; this.g = g; filter.addChangeListener(WeakListeners.change(this, filter)); folder.addPropertyChangeListener(WeakListeners.propertyChange(this, folder)); }