Index: java/j2seproject/build.xml =================================================================== RCS file: /cvs/java/j2seproject/build.xml,v retrieving revision 1.3 diff -u -r1.3 build.xml --- java/j2seproject/build.xml 12 May 2004 16:05:17 -0000 1.3 +++ java/j2seproject/build.xml 17 Aug 2004 13:38:39 -0000 @@ -21,7 +21,7 @@ - + Index: java/j2seproject/nbproject/project.xml =================================================================== RCS file: /cvs/java/j2seproject/nbproject/project.xml,v retrieving revision 1.10 diff -u -r1.10 project.xml --- java/j2seproject/nbproject/project.xml 15 Jun 2004 11:38:13 -0000 1.10 +++ java/j2seproject/nbproject/project.xml 17 Aug 2004 13:38:39 -0000 @@ -140,6 +140,15 @@ + + org.openidex.util + + + + 3 + 3.3 + + Index: java/j2seproject/src/org/netbeans/modules/java/j2seproject/ui/J2SEPhysicalViewProvider.java =================================================================== RCS file: /cvs/java/j2seproject/src/org/netbeans/modules/java/j2seproject/ui/J2SEPhysicalViewProvider.java,v retrieving revision 1.24 diff -u -r1.24 J2SEPhysicalViewProvider.java --- java/j2seproject/src/org/netbeans/modules/java/j2seproject/ui/J2SEPhysicalViewProvider.java 24 Jun 2004 20:04:19 -0000 1.24 +++ java/j2seproject/src/org/netbeans/modules/java/j2seproject/ui/J2SEPhysicalViewProvider.java 17 Aug 2004 13:38:39 -0000 @@ -37,6 +37,8 @@ import javax.swing.Action; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; +import org.openidex.search.DelegatingSearchInfo; +import org.openidex.search.SearchInfoFactory; import org.netbeans.api.java.project.JavaProjectConstants; import org.netbeans.api.project.FileOwnerQuery; import org.netbeans.api.project.Project; @@ -166,7 +168,14 @@ private boolean broken; public J2SELogicalViewRootNode() { - super( new LogicalViewChildren( project ), Lookups.singleton(project)); + this( new DelegatingSearchInfo()); + } + + private J2SELogicalViewRootNode(DelegatingSearchInfo searchInfo) { + super( new LogicalViewChildren( project ), + Lookups.fixed( new Object[] { project, searchInfo } )); + searchInfo.setDelegate( SearchInfoFactory + .createSearchInfoBySubnodes( this ) ); setIconBase( "org/netbeans/modules/java/j2seproject/ui/resources/j2seProject" ); // NOI18N setName( ProjectUtils.getInformation( project ).getDisplayName() ); if (hasBrokenLinks(helper, resolver)) { Index: java/project/nbproject/project.xml =================================================================== RCS file: /cvs/java/project/nbproject/project.xml,v retrieving revision 1.14 diff -u -r1.14 project.xml --- java/project/nbproject/project.xml 4 Aug 2004 10:13:38 -0000 1.14 +++ java/project/nbproject/project.xml 17 Aug 2004 13:38:40 -0000 @@ -86,7 +86,7 @@ 3 - 3.2 + 3.3 Index: java/project/src/org/netbeans/spi/java/project/support/ui/PackageRootNode.java =================================================================== RCS file: /cvs/java/project/src/org/netbeans/spi/java/project/support/ui/PackageRootNode.java,v retrieving revision 1.7 diff -u -r1.7 PackageRootNode.java --- java/project/src/org/netbeans/spi/java/project/support/ui/PackageRootNode.java 12 Aug 2004 10:45:19 -0000 1.7 +++ java/project/src/org/netbeans/spi/java/project/support/ui/PackageRootNode.java 17 Aug 2004 13:38:40 -0000 @@ -40,6 +40,7 @@ import org.openide.util.Lookup; import org.openide.util.Utilities; import org.openide.util.lookup.Lookups; +import org.openidex.search.SearchInfoFactory; /** Node displaying a packages in given SourceGroup @@ -169,7 +170,12 @@ // XXX Remove DataFolder when paste, find and refresh are reimplemented FileObject rootFolder = group.getRootFolder(); DataFolder dataFolder = DataFolder.findFolder( rootFolder ); - return Lookups.fixed( new Object[]{ dataFolder, new PathFinder( group ) } ); + return Lookups.fixed( new Object[]{ dataFolder, + new PathFinder( group ), + SearchInfoFactory.createSearchInfo( rootFolder, + true, //recursive + true, //check sharability + true )} ); //check visibility } /** If contained in the lookup can perform the search for a node Index: java/project/src/org/netbeans/spi/java/project/support/ui/PackageViewChildren.java =================================================================== RCS file: /cvs/java/project/src/org/netbeans/spi/java/project/support/ui/PackageViewChildren.java,v retrieving revision 1.26 diff -u -r1.26 PackageViewChildren.java --- java/project/src/org/netbeans/spi/java/project/support/ui/PackageViewChildren.java 12 Aug 2004 10:45:19 -0000 1.26 +++ java/project/src/org/netbeans/spi/java/project/support/ui/PackageViewChildren.java 17 Aug 2004 13:38:40 -0000 @@ -56,7 +56,7 @@ import org.openide.util.datatransfer.PasteType; import org.openide.util.lookup.Lookups; import org.openide.util.lookup.ProxyLookup; -import org.openidex.search.SimpleSearchInfo; +import org.openidex.search.SearchInfoFactory; /** * Display of Java sources in a package structure rather than folder structure. @@ -419,7 +419,11 @@ new ProxyLookup(new Lookup[] { Lookups.singleton(new NoFoldersContainer (dataFolder)), dataFolder.getNodeDelegate().getLookup(), - Lookups.singleton(new SimpleSearchInfo(dataFolder, false)), + Lookups.singleton(SearchInfoFactory.createSearchInfo( + dataFolder.getPrimaryFile(), + false, //recursivity + true, //sharability + true)), //visibility }) ); this.root = root; Index: nbbuild/build.properties =================================================================== RCS file: /cvs/nbbuild/build.properties,v retrieving revision 1.201 diff -u -r1.201 build.properties --- nbbuild/build.properties 6 Aug 2004 12:01:46 -0000 1.201 +++ nbbuild/build.properties 17 Aug 2004 13:38:41 -0000 @@ -335,6 +335,7 @@ projects/projectapi, \ projects/projectuiapi, \ projects/libraries, \ + openidex, \ debuggercore/api, \ debuggercore/viewmodel, \ debuggercore, \ Index: nbbuild/build.xml =================================================================== RCS file: /cvs/nbbuild/build.xml,v retrieving revision 1.541 diff -u -r1.541 build.xml --- nbbuild/build.xml 17 Aug 2004 11:23:41 -0000 1.541 +++ nbbuild/build.xml 17 Aug 2004 13:38:42 -0000 @@ -1090,7 +1090,7 @@ - + @@ -1102,7 +1102,7 @@ - + Index: projects/projectui/nbproject/project.xml =================================================================== RCS file: /cvs/projects/projectui/nbproject/project.xml,v retrieving revision 1.10 diff -u -r1.10 project.xml --- projects/projectui/nbproject/project.xml 30 Jul 2004 22:33:37 -0000 1.10 +++ projects/projectui/nbproject/project.xml 17 Aug 2004 13:38:42 -0000 @@ -72,15 +72,6 @@ - - org.openidex.util - - - - 3 - 3.2 - - Index: projects/projectui/src/org/netbeans/modules/project/ui/ProjectsRootNode.java =================================================================== RCS file: /cvs/projects/projectui/src/org/netbeans/modules/project/ui/ProjectsRootNode.java,v retrieving revision 1.25 diff -u -r1.25 ProjectsRootNode.java --- projects/projectui/src/org/netbeans/modules/project/ui/ProjectsRootNode.java 9 Aug 2004 14:08:12 -0000 1.25 +++ projects/projectui/src/org/netbeans/modules/project/ui/ProjectsRootNode.java 17 Aug 2004 13:38:42 -0000 @@ -23,30 +23,20 @@ import java.util.Arrays; import java.util.Collection; import java.util.Collections; -import java.util.Iterator; import java.util.List; import java.util.ResourceBundle; import javax.swing.Action; import org.netbeans.api.project.Project; import org.netbeans.api.project.ProjectUtils; -import org.netbeans.api.project.Sources; -import org.netbeans.api.project.SourceGroup; import org.netbeans.spi.project.ui.LogicalViewProvider; import org.openide.ErrorManager; -import org.openide.filesystems.FileObject; -import org.openide.loaders.DataFolder; import org.openide.nodes.AbstractNode; import org.openide.nodes.Children; import org.openide.nodes.Node; -import org.openide.util.Lookup; import org.openide.util.NbBundle; import org.openide.util.Utilities; import org.openide.util.WeakListeners; -import org.openide.util.lookup.Lookups; -import org.openide.util.lookup.ProxyLookup; import org.openide.xml.XMLUtil; -import org.openidex.search.SearchInfo; -import org.openidex.search.SimpleSearchInfo; /** Root node for list of open projects * @author Petr Hrebejk @@ -260,9 +250,7 @@ private static String badgedNamePattern = NbBundle.getMessage( ProjectsRootNode.class, "LBL_MainProject_BadgedNamePattern" ); public BadgingNode( Node n) { - super( n, - null, - new ProxyLookup(new Lookup[] {n.getLookup(), Lookups.singleton(new ProjectNodeSearchInfo(n))}) ); + super( n ); OpenProjectList.getDefault().addPropertyChangeListener( WeakListeners.propertyChange( this, OpenProjectList.getDefault() ) ); } @@ -294,63 +282,6 @@ private boolean isMain() { Project p = (Project)getLookup().lookup( Project.class ); return p != null && OpenProjectList.getDefault().isMainProject( p ); - } - - /** - * SearchInfo object for project nodes. - * - * @see SearchInfo - */ - static final class ProjectNodeSearchInfo implements SearchInfo { - - /** */ - private final Node projectNode; - - /** - */ - ProjectNodeSearchInfo(Node n) { - projectNode = n; - } - - /** - */ - public boolean canSearch() { - return true; - } - - /** - */ - public Iterator objectsToSearch() { - return createIterator(); - } - - /** - */ - private Iterator createIterator() { - /* get the project: */ - Project project = (Project) projectNode.getLookup().lookup(Project.class); - assert project != null; - - /* get the Sources object: */ - Sources sources = ProjectUtils.getSources(project); - - /* build a delegated SearchInfo object: */ - SourceGroup[] sourceGroups - = sources.getSourceGroups(Sources.TYPE_GENERIC); - if (sourceGroups.length == 0) { - return Collections.EMPTY_LIST.iterator(); - } - SimpleSearchInfo searchInfo = new SimpleSearchInfo(); - for (int i = 0; i < sourceGroups.length; i++) { - FileObject sourceRoot = sourceGroups[i].getRootFolder(); - DataFolder dataFolder = DataFolder.findFolder(sourceRoot); - searchInfo.add(new SimpleSearchInfo(dataFolder, true)); - } - - /* return the SearchInfo's iterator: */ - return searchInfo.objectsToSearch(); - } - } } Index: utilities/nbproject/project.xml =================================================================== RCS file: /cvs/utilities/nbproject/project.xml,v retrieving revision 1.5 diff -u -r1.5 project.xml --- utilities/nbproject/project.xml 15 Jun 2004 11:37:58 -0000 1.5 +++ utilities/nbproject/project.xml 17 Aug 2004 13:38:42 -0000 @@ -65,6 +65,7 @@ 3 + 3.3 Index: utilities/project/nbproject/project.xml =================================================================== RCS file: /cvs/utilities/project/nbproject/project.xml,v retrieving revision 1.3 diff -u -r1.3 project.xml --- utilities/project/nbproject/project.xml 15 Jun 2004 11:37:57 -0000 1.3 +++ utilities/project/nbproject/project.xml 17 Aug 2004 13:38:42 -0000 @@ -39,7 +39,7 @@ 3 - 3.2 + 3.3 Index: utilities/project/src/org/netbeans/modules/search/project/ProjectsSearchAction.java =================================================================== RCS file: /cvs/utilities/project/src/org/netbeans/modules/search/project/ProjectsSearchAction.java,v retrieving revision 1.4 diff -u -r1.4 ProjectsSearchAction.java --- utilities/project/src/org/netbeans/modules/search/project/ProjectsSearchAction.java 9 Aug 2004 14:08:12 -0000 1.4 +++ utilities/project/src/org/netbeans/modules/search/project/ProjectsSearchAction.java 17 Aug 2004 13:38:42 -0000 @@ -16,11 +16,7 @@ import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.Iterator; import java.util.List; -import java.util.Set; import org.netbeans.api.project.Project; import org.netbeans.api.project.ProjectUtils; import org.netbeans.api.project.SourceGroup; @@ -28,9 +24,7 @@ import org.netbeans.api.project.ui.OpenProjects; import org.netbeans.modules.search.SearchPanel; import org.netbeans.modules.search.SearchPerformer; -import org.openide.ErrorManager; -import org.openide.loaders.DataObject; -import org.openide.loaders.DataObjectNotFoundException; +import org.openide.filesystems.FileObject; import org.openide.nodes.AbstractNode; import org.openide.nodes.Children; @@ -39,7 +33,8 @@ import org.openide.util.HelpCtx; import org.openide.util.NbBundle; import org.openide.util.lookup.Lookups; -import org.openidex.search.SimpleSearchInfo; +import org.openidex.search.SearchInfo; +import org.openidex.search.SearchInfoFactory; /** @@ -98,34 +93,6 @@ /** Where to search */ private Node[] getNodesToSearch() { - Collection dataObjectsToSearch = getDataObjectsToSearch(); - - if (dataObjectsToSearch.isEmpty()) { - return new Node[0]; - } - - SimpleSearchInfo searchInfo = new SimpleSearchInfo(); - for (Iterator i = dataObjectsToSearch.iterator(); i.hasNext(); ) { - DataObject root = (DataObject) i.next(); - if (root instanceof DataObject.Container) { - searchInfo.add( - new SimpleSearchInfo((DataObject.Container) root)); - } else { - searchInfo.add(root); - } - } - - Node nodeToSearch = new AbstractNode( - Children.LEAF, - Lookups.singleton(searchInfo)); - nodeToSearch.setValue( - SearchPanel.PROP_DIALOG_TITLE, - NbBundle.getMessage(ProjectsSearchAction.class, - "LBL_Title_SearchProjects")); //NOI18N - return new Node[] {nodeToSearch}; - } - - private Collection getDataObjectsToSearch() { Project[] openProjects = OpenProjects.getDefault().getOpenProjects(); if (openProjects.length == 0) { @@ -138,28 +105,38 @@ * is being removed in another thread than this action was * invoked from. */ - return Collections.EMPTY_LIST; + return new Node[0]; } - List rootDataObjects = new ArrayList(openProjects.length * 2); - + List rootFolders = new ArrayList(); for (int i = 0; i < openProjects.length; i++) { Sources sources = ProjectUtils.getSources(openProjects[i]); SourceGroup[] sourceGroups = sources.getSourceGroups(Sources.TYPE_GENERIC); for (int j = 0; j < sourceGroups.length; j++) { - try { - rootDataObjects.add( - DataObject.find(sourceGroups[j].getRootFolder())); - } catch (DataObjectNotFoundException ex) { - ErrorManager.getDefault().notify( - ErrorManager.EXCEPTION, ex); - } + rootFolders.add(sourceGroups[j].getRootFolder()); } } + + if (rootFolders.isEmpty()) { + return new Node[0]; + } + + SearchInfo searchInfo = SearchInfoFactory.createSearchInfo( + (FileObject[]) + rootFolders.toArray(new FileObject[rootFolders.size()]), + true, //recursive + true, //check sharability + true); //check visibility - return !rootDataObjects.isEmpty() ? rootDataObjects - : Collections.EMPTY_LIST; + Node nodeToSearch = new AbstractNode( + Children.LEAF, + Lookups.singleton(searchInfo)); + nodeToSearch.setValue( + SearchPanel.PROP_DIALOG_TITLE, + NbBundle.getMessage(ProjectsSearchAction.class, + "LBL_Title_SearchProjects")); //NOI18N + return new Node[] {nodeToSearch}; } /** Perform this action. */