private synchronized void setupChangeListeners(final List<VisibilityQueryImplementation> oldVqiInstances, final List<VisibilityQueryImplementation> newVqiInstances) { if (oldVqiInstances != null) { Set<VisibilityQueryImplementation> removed = new HashSet<VisibilityQueryImplementation>(oldVqiInstances); removed.removeAll(newVqiInstances); for (VisibilityQueryImplementation vqi : removed) { vqi.removeChangeListener(vqiListener); } } Set<VisibilityQueryImplementation> added = new HashSet<VisibilityQueryImplementation>(newVqiInstances); if (oldVqiInstances != null) { added.removeAll(oldVqiInstances); } for (VisibilityQueryImplementation vqi : added) { vqi.addChangeListener(vqiListener); } cachedVqiInstances = newVqiInstances; }
/** * Check whether a file is recommended to be visible. * Default return value is visible unless at least one VisibilityQueryImplementation * provider says hidden. * @param file a file which should be checked * @return true if it is recommended to show this file */ public boolean isVisible(FileObject file) { Parameters.notNull("file", file); for (VisibilityQueryImplementation vqi : getVqiInstances()) { if (!vqi.isVisible(file)) { return false; } } return true; }
/** * Check whether a file is recommended to be visible. * Default return value is visible unless at least one VisibilityQueryImplementation * provider says hidden. * @param file a file which should be checked * @return true if it is recommended to show this file * @since org.netbeans.modules.queries/1 1.12 */ public boolean isVisible(File file) { Parameters.notNull("file", file); for (VisibilityQueryImplementation vqi : getVqiInstances()) { if (vqi instanceof VisibilityQueryImplementation2) { if (!((VisibilityQueryImplementation2)vqi).isVisible(file)) { return false; } } else { FileObject fo = FileUtil.toFileObject(file); if (fo != null) { if (!vqi.isVisible(fo)) { return false; } } } } return true; }