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

(-)java/j2seproject/build.xml (-1 / +1 lines)
Lines 21-27 Link Here
21
                <attribute name="OpenIDE-Module-Specification-Version" value="1.0"/>
21
                <attribute name="OpenIDE-Module-Specification-Version" value="1.0"/>
22
                <attribute name="OpenIDE-Module-Public-Packages" value="${public.packages}"/>
22
                <attribute name="OpenIDE-Module-Public-Packages" value="${public.packages}"/>
23
                <attribute name="OpenIDE-Module-IDE-Dependencies" value="${ide.dependencies}"/>
23
                <attribute name="OpenIDE-Module-IDE-Dependencies" value="${ide.dependencies}"/>
24
                <attribute name="OpenIDE-Module-Module-Dependencies" value="org.apache.tools.ant.module/3 > 3.9, org.netbeans.api.java/1, org.netbeans.modules.ant.browsetask, org.netbeans.modules.debugger.jpda.ant, org.netbeans.modules.java.platform/0, org.netbeans.modules.java.project/0 = ${java.project.impl.version}, org.netbeans.modules.junit/2, org.netbeans.modules.project.ant/0, org.netbeans.modules.projectapi/0, org.netbeans.modules.project.libraries/0, org.netbeans.modules.projectuiapi/0, org.netbeans.modules.queries/0, org.openide.src, org.openide.loaders, org.openide.execution > 1.2"/>
24
                <attribute name="OpenIDE-Module-Module-Dependencies" value="org.apache.tools.ant.module/3 > 3.9, org.netbeans.api.java/1, org.netbeans.modules.ant.browsetask, org.netbeans.modules.debugger.jpda.ant, org.netbeans.modules.java.platform/0, org.netbeans.modules.java.project/0 = ${java.project.impl.version}, org.netbeans.modules.junit/2, org.netbeans.modules.project.ant/0, org.netbeans.modules.projectapi/0, org.netbeans.modules.project.libraries/0, org.netbeans.modules.projectuiapi/0, org.netbeans.modules.queries/0, org.openide.src, org.openide.loaders, org.openide.execution > 1.2, org.openidex.util/3 > 3.3"/>
25
                <attribute name="OpenIDE-Module-Implementation-Version" value="${buildnumber}"/>
25
                <attribute name="OpenIDE-Module-Implementation-Version" value="${buildnumber}"/>
26
            </manifest>
26
            </manifest>
27
            <fileset dir="${build.classes.dir}"/>
27
            <fileset dir="${build.classes.dir}"/>
(-)java/j2seproject/nbproject/project.xml (+9 lines)
Lines 140-145 Link Here
140
                    <compile-dependency/>
140
                    <compile-dependency/>
141
                    <run-dependency/>
141
                    <run-dependency/>
142
                </dependency>
142
                </dependency>
143
                <dependency>
144
                    <code-name-base>org.openidex.util</code-name-base>
145
                    <build-prerequisite/>
146
                    <compile-dependency/>
147
                    <run-dependency>
148
                        <release-version>3</release-version>
149
                        <specification-version>3.3</specification-version>
150
                    </run-dependency>
151
                </dependency>
143
            </module-dependencies>
152
            </module-dependencies>
144
            <public-packages/>
153
            <public-packages/>
145
        </data>
154
        </data>
(-)java/j2seproject/src/org/netbeans/modules/java/j2seproject/ui/J2SEPhysicalViewProvider.java (-1 / +10 lines)
Lines 37-42 Link Here
37
import javax.swing.Action;
37
import javax.swing.Action;
38
import javax.swing.event.ChangeEvent;
38
import javax.swing.event.ChangeEvent;
39
import javax.swing.event.ChangeListener;
39
import javax.swing.event.ChangeListener;
40
import org.openidex.search.DelegatingSearchInfo;
41
import org.openidex.search.SearchInfoFactory;
40
import org.netbeans.api.java.project.JavaProjectConstants;
42
import org.netbeans.api.java.project.JavaProjectConstants;
41
import org.netbeans.api.project.FileOwnerQuery;
43
import org.netbeans.api.project.FileOwnerQuery;
42
import org.netbeans.api.project.Project;
44
import org.netbeans.api.project.Project;
Lines 166-172 Link Here
166
        private boolean broken;
168
        private boolean broken;
167
        
169
        
168
        public J2SELogicalViewRootNode() {
170
        public J2SELogicalViewRootNode() {
169
            super( new LogicalViewChildren( project ), Lookups.singleton(project));
171
            this( new DelegatingSearchInfo());
172
        }
173
174
        private J2SELogicalViewRootNode(DelegatingSearchInfo searchInfo) {
175
            super( new LogicalViewChildren( project ),
176
                   Lookups.fixed( new Object[] { project, searchInfo } ));
177
            searchInfo.setDelegate( SearchInfoFactory
178
                                    .createSearchInfoBySubnodes( this ) );
170
            setIconBase( "org/netbeans/modules/java/j2seproject/ui/resources/j2seProject" ); // NOI18N
179
            setIconBase( "org/netbeans/modules/java/j2seproject/ui/resources/j2seProject" ); // NOI18N
171
            setName( ProjectUtils.getInformation( project ).getDisplayName() );            
180
            setName( ProjectUtils.getInformation( project ).getDisplayName() );            
172
            if (hasBrokenLinks(helper, resolver)) {
181
            if (hasBrokenLinks(helper, resolver)) {
(-)java/project/nbproject/project.xml (-1 / +1 lines)
Lines 86-92 Link Here
86
                    <compile-dependency/>
86
                    <compile-dependency/>
87
                    <run-dependency>
87
                    <run-dependency>
88
                        <release-version>3</release-version>
88
                        <release-version>3</release-version>
89
                        <specification-version>3.2</specification-version>
89
                        <specification-version>3.3</specification-version>
90
                    </run-dependency>
90
                    </run-dependency>
91
                </dependency>
91
                </dependency>
92
                <dependency>
92
                <dependency>
(-)java/project/src/org/netbeans/spi/java/project/support/ui/PackageRootNode.java (-1 / +7 lines)
Lines 40-45 Link Here
40
import org.openide.util.Lookup;
40
import org.openide.util.Lookup;
41
import org.openide.util.Utilities;
41
import org.openide.util.Utilities;
42
import org.openide.util.lookup.Lookups;
42
import org.openide.util.lookup.Lookups;
43
import org.openidex.search.SearchInfoFactory;
43
44
44
45
45
/** Node displaying a packages in given SourceGroup
46
/** Node displaying a packages in given SourceGroup
Lines 169-175 Link Here
169
        // XXX Remove DataFolder when paste, find and refresh are reimplemented
170
        // XXX Remove DataFolder when paste, find and refresh are reimplemented
170
        FileObject rootFolder = group.getRootFolder();
171
        FileObject rootFolder = group.getRootFolder();
171
        DataFolder dataFolder = DataFolder.findFolder( rootFolder );        
172
        DataFolder dataFolder = DataFolder.findFolder( rootFolder );        
172
        return Lookups.fixed( new Object[]{ dataFolder, new PathFinder( group ) } );
173
        return Lookups.fixed( new Object[]{ dataFolder,
174
                                            new PathFinder( group ),
175
                                            SearchInfoFactory.createSearchInfo( rootFolder,
176
                                                                                true,        //recursive
177
                                                                                true,        //check sharability
178
                                                                                true )} );   //check visibility
173
    }
179
    }
174
    
180
    
175
    /** If contained in the lookup can perform the search for a node
181
    /** If contained in the lookup can perform the search for a node
(-)java/project/src/org/netbeans/spi/java/project/support/ui/PackageViewChildren.java (-2 / +6 lines)
Lines 56-62 Link Here
56
import org.openide.util.datatransfer.PasteType;
56
import org.openide.util.datatransfer.PasteType;
57
import org.openide.util.lookup.Lookups;
57
import org.openide.util.lookup.Lookups;
58
import org.openide.util.lookup.ProxyLookup;
58
import org.openide.util.lookup.ProxyLookup;
59
import org.openidex.search.SimpleSearchInfo;
59
import org.openidex.search.SearchInfoFactory;
60
60
61
/**
61
/**
62
 * Display of Java sources in a package structure rather than folder structure.
62
 * Display of Java sources in a package structure rather than folder structure.
Lines 419-425 Link Here
419
                   new ProxyLookup(new Lookup[] {
419
                   new ProxyLookup(new Lookup[] {
420
                        Lookups.singleton(new NoFoldersContainer (dataFolder)),
420
                        Lookups.singleton(new NoFoldersContainer (dataFolder)),
421
                        dataFolder.getNodeDelegate().getLookup(),
421
                        dataFolder.getNodeDelegate().getLookup(),
422
                        Lookups.singleton(new SimpleSearchInfo(dataFolder, false)),
422
                        Lookups.singleton(SearchInfoFactory.createSearchInfo(
423
                                                  dataFolder.getPrimaryFile(),
424
                                                  false,      //recursivity
425
                                                  true,       //sharability
426
                                                  true)),     //visibility
423
                   })
427
                   })
424
            );
428
            );
425
            this.root = root;
429
            this.root = root;
(-)nbbuild/build.properties (+1 lines)
Lines 335-340 Link Here
335
        projects/projectapi, \
335
        projects/projectapi, \
336
        projects/projectuiapi, \
336
        projects/projectuiapi, \
337
        projects/libraries, \
337
        projects/libraries, \
338
	openidex, \
338
        debuggercore/api, \
339
        debuggercore/api, \
339
        debuggercore/viewmodel, \
340
        debuggercore/viewmodel, \
340
        debuggercore, \
341
        debuggercore, \
(-)nbbuild/build.xml (-2 / +2 lines)
Lines 1090-1096 Link Here
1090
      <echo message="Building module projects/libraries..."/>
1090
      <echo message="Building module projects/libraries..."/>
1091
      <ant dir="../projects/libraries" target="netbeans"/>
1091
      <ant dir="../projects/libraries" target="netbeans"/>
1092
  </target>
1092
  </target>
1093
  <target name="all-projects/projectui" depends="build-platform,all-projects/projectapi,all-projects/projectuiapi,all-projects/queries,all-openide/masterfs,all-openidex">
1093
  <target name="all-projects/projectui" depends="build-platform,all-projects/projectapi,all-projects/projectuiapi,all-projects/queries,all-openide/masterfs">
1094
      <echo message="Building module projects/projectui..."/>
1094
      <echo message="Building module projects/projectui..."/>
1095
      <ant dir="../projects/projectui" target="netbeans"/>
1095
      <ant dir="../projects/projectui" target="netbeans"/>
1096
  </target>
1096
  </target>
Lines 1102-1108 Link Here
1102
    <echo message="Building module java/j2seplatform..."/>
1102
    <echo message="Building module java/j2seplatform..."/>
1103
    <ant dir="../java/j2seplatform" target="netbeans"/>
1103
    <ant dir="../java/j2seplatform" target="netbeans"/>
1104
  </target>
1104
  </target>
1105
  <target name="all-java/j2seproject" depends="build-platform,all-java/api,all-java/platform,all-java/project,all-ant/project,all-projects/projectapi,all-projects/libraries,all-projects/projectuiapi,all-ant">
1105
  <target name="all-java/j2seproject" depends="build-platform,all-java/api,all-java/platform,all-java/project,all-ant/project,all-projects/projectapi,all-projects/libraries,all-projects/projectuiapi,all-ant,all-openidex">
1106
    <echo message="Building module java/j2seproject..."/>
1106
    <echo message="Building module java/j2seproject..."/>
1107
    <ant dir="../java/j2seproject" target="netbeans"/>
1107
    <ant dir="../java/j2seproject" target="netbeans"/>
1108
  </target>
1108
  </target>
(-)projects/projectui/nbproject/project.xml (-9 lines)
Lines 72-86 Link Here
72
                    <compile-dependency/>
72
                    <compile-dependency/>
73
                    <run-dependency/>
73
                    <run-dependency/>
74
                </dependency>
74
                </dependency>
75
                <dependency>
76
                    <code-name-base>org.openidex.util</code-name-base>
77
                    <build-prerequisite/>
78
                    <compile-dependency/>
79
                    <run-dependency>
80
                        <release-version>3</release-version>
81
                        <specification-version>3.2</specification-version>
82
                    </run-dependency>
83
                </dependency>
84
            </module-dependencies>
75
            </module-dependencies>
85
            <public-packages/>
76
            <public-packages/>
86
        </data>
77
        </data>
(-)projects/projectui/src/org/netbeans/modules/project/ui/ProjectsRootNode.java (-70 / +1 lines)
Lines 23-52 Link Here
23
import java.util.Arrays;
23
import java.util.Arrays;
24
import java.util.Collection;
24
import java.util.Collection;
25
import java.util.Collections;
25
import java.util.Collections;
26
import java.util.Iterator;
27
import java.util.List;
26
import java.util.List;
28
import java.util.ResourceBundle;
27
import java.util.ResourceBundle;
29
import javax.swing.Action;
28
import javax.swing.Action;
30
import org.netbeans.api.project.Project;
29
import org.netbeans.api.project.Project;
31
import org.netbeans.api.project.ProjectUtils;
30
import org.netbeans.api.project.ProjectUtils;
32
import org.netbeans.api.project.Sources;
33
import org.netbeans.api.project.SourceGroup;
34
import org.netbeans.spi.project.ui.LogicalViewProvider;
31
import org.netbeans.spi.project.ui.LogicalViewProvider;
35
import org.openide.ErrorManager;
32
import org.openide.ErrorManager;
36
import org.openide.filesystems.FileObject;
37
import org.openide.loaders.DataFolder;
38
import org.openide.nodes.AbstractNode;
33
import org.openide.nodes.AbstractNode;
39
import org.openide.nodes.Children;
34
import org.openide.nodes.Children;
40
import org.openide.nodes.Node;
35
import org.openide.nodes.Node;
41
import org.openide.util.Lookup;
42
import org.openide.util.NbBundle;
36
import org.openide.util.NbBundle;
43
import org.openide.util.Utilities;
37
import org.openide.util.Utilities;
44
import org.openide.util.WeakListeners;
38
import org.openide.util.WeakListeners;
45
import org.openide.util.lookup.Lookups;
46
import org.openide.util.lookup.ProxyLookup;
47
import org.openide.xml.XMLUtil;
39
import org.openide.xml.XMLUtil;
48
import org.openidex.search.SearchInfo;
49
import org.openidex.search.SimpleSearchInfo;
50
40
51
/** Root node for list of open projects
41
/** Root node for list of open projects
52
 * @author Petr Hrebejk
42
 * @author Petr Hrebejk
Lines 260-268 Link Here
260
        private static String badgedNamePattern = NbBundle.getMessage( ProjectsRootNode.class, "LBL_MainProject_BadgedNamePattern" );
250
        private static String badgedNamePattern = NbBundle.getMessage( ProjectsRootNode.class, "LBL_MainProject_BadgedNamePattern" );
261
        
251
        
262
        public BadgingNode( Node n) {
252
        public BadgingNode( Node n) {
263
            super( n,
253
            super( n );
264
                   null,
265
                   new ProxyLookup(new Lookup[] {n.getLookup(), Lookups.singleton(new ProjectNodeSearchInfo(n))}) );
266
            OpenProjectList.getDefault().addPropertyChangeListener( WeakListeners.propertyChange( this, OpenProjectList.getDefault() ) );
254
            OpenProjectList.getDefault().addPropertyChangeListener( WeakListeners.propertyChange( this, OpenProjectList.getDefault() ) );
267
        }
255
        }
268
        
256
        
Lines 294-356 Link Here
294
        private boolean isMain() {
282
        private boolean isMain() {
295
            Project p = (Project)getLookup().lookup( Project.class );
283
            Project p = (Project)getLookup().lookup( Project.class );
296
            return p != null && OpenProjectList.getDefault().isMainProject( p );
284
            return p != null && OpenProjectList.getDefault().isMainProject( p );
297
        }
298
299
        /**
300
         * SearchInfo object for project nodes.
301
         *
302
         * @see  SearchInfo
303
         */
304
        static final class ProjectNodeSearchInfo implements SearchInfo {
305
306
            /** */
307
            private final Node projectNode;
308
309
            /**
310
             */
311
            ProjectNodeSearchInfo(Node n) {
312
                projectNode = n;
313
            }
314
315
            /**
316
             */
317
            public boolean canSearch() {
318
                return true;
319
            }
320
321
            /**
322
             */
323
            public Iterator objectsToSearch() {
324
                return createIterator();
325
            }
326
327
            /**
328
             */
329
            private Iterator createIterator() {
330
                /* get the project: */
331
                Project project = (Project) projectNode.getLookup().lookup(Project.class);
332
                assert project != null;
333
334
                /* get the Sources object: */
335
                Sources sources = ProjectUtils.getSources(project);
336
337
                /* build a delegated SearchInfo object: */
338
                SourceGroup[] sourceGroups
339
                        = sources.getSourceGroups(Sources.TYPE_GENERIC);
340
                if (sourceGroups.length == 0) {
341
                    return Collections.EMPTY_LIST.iterator();
342
                }
343
                SimpleSearchInfo searchInfo = new SimpleSearchInfo();
344
                for (int i = 0; i < sourceGroups.length; i++) {
345
                    FileObject sourceRoot = sourceGroups[i].getRootFolder();
346
                    DataFolder dataFolder = DataFolder.findFolder(sourceRoot);
347
                    searchInfo.add(new SimpleSearchInfo(dataFolder, true));
348
                }
349
350
                /* return the SearchInfo's iterator: */
351
                return searchInfo.objectsToSearch();
352
            }
353
354
        }
285
        }
355
        
286
        
356
    }
287
    }
(-)utilities/nbproject/project.xml (+1 lines)
Lines 65-70 Link Here
65
                    <compile-dependency/>
65
                    <compile-dependency/>
66
                    <run-dependency>
66
                    <run-dependency>
67
                        <release-version>3</release-version>
67
                        <release-version>3</release-version>
68
                        <specification-version>3.3</specification-version>
68
                    </run-dependency>
69
                    </run-dependency>
69
                </dependency>
70
                </dependency>
70
            </module-dependencies>
71
            </module-dependencies>
(-)utilities/project/nbproject/project.xml (-1 / +1 lines)
Lines 39-45 Link Here
39
                    <compile-dependency/>
39
                    <compile-dependency/>
40
                    <run-dependency>
40
                    <run-dependency>
41
                        <release-version>3</release-version>
41
                        <release-version>3</release-version>
42
                        <specification-version>3.2</specification-version>
42
                        <specification-version>3.3</specification-version>
43
                    </run-dependency>
43
                    </run-dependency>
44
                </dependency>
44
                </dependency>
45
                <dependency>
45
                <dependency>
(-)utilities/project/src/org/netbeans/modules/search/project/ProjectsSearchAction.java (-48 / +25 lines)
Lines 16-26 Link Here
16
import java.beans.PropertyChangeEvent;
16
import java.beans.PropertyChangeEvent;
17
import java.beans.PropertyChangeListener;
17
import java.beans.PropertyChangeListener;
18
import java.util.ArrayList;
18
import java.util.ArrayList;
19
import java.util.Collection;
20
import java.util.Collections;
21
import java.util.Iterator;
22
import java.util.List;
19
import java.util.List;
23
import java.util.Set;
24
import org.netbeans.api.project.Project;
20
import org.netbeans.api.project.Project;
25
import org.netbeans.api.project.ProjectUtils;
21
import org.netbeans.api.project.ProjectUtils;
26
import org.netbeans.api.project.SourceGroup;
22
import org.netbeans.api.project.SourceGroup;
Lines 28-36 Link Here
28
import org.netbeans.api.project.ui.OpenProjects;
24
import org.netbeans.api.project.ui.OpenProjects;
29
import org.netbeans.modules.search.SearchPanel;
25
import org.netbeans.modules.search.SearchPanel;
30
import org.netbeans.modules.search.SearchPerformer;
26
import org.netbeans.modules.search.SearchPerformer;
31
import org.openide.ErrorManager;
27
import org.openide.filesystems.FileObject;
32
import org.openide.loaders.DataObject;
33
import org.openide.loaders.DataObjectNotFoundException;
34
import org.openide.nodes.AbstractNode;
28
import org.openide.nodes.AbstractNode;
35
import org.openide.nodes.Children;
29
import org.openide.nodes.Children;
36
30
Lines 39-45 Link Here
39
import org.openide.util.HelpCtx;
33
import org.openide.util.HelpCtx;
40
import org.openide.util.NbBundle;
34
import org.openide.util.NbBundle;
41
import org.openide.util.lookup.Lookups;
35
import org.openide.util.lookup.Lookups;
42
import org.openidex.search.SimpleSearchInfo;
36
import org.openidex.search.SearchInfo;
37
import org.openidex.search.SearchInfoFactory;
43
38
44
39
45
/**
40
/**
Lines 98-131 Link Here
98
93
99
    /** Where to search */
94
    /** Where to search */
100
    private Node[] getNodesToSearch() {
95
    private Node[] getNodesToSearch() {
101
        Collection dataObjectsToSearch = getDataObjectsToSearch();
102
        
103
        if (dataObjectsToSearch.isEmpty()) {
104
            return new Node[0];
105
        }
106
        
107
        SimpleSearchInfo searchInfo = new SimpleSearchInfo();
108
        for (Iterator i = dataObjectsToSearch.iterator(); i.hasNext(); ) {
109
            DataObject root = (DataObject) i.next();
110
            if (root instanceof DataObject.Container) {
111
                searchInfo.add(
112
                        new SimpleSearchInfo((DataObject.Container) root));
113
            } else {
114
                searchInfo.add(root);
115
            }
116
        }
117
        
118
        Node nodeToSearch = new AbstractNode(
119
                Children.LEAF,
120
                Lookups.singleton(searchInfo));
121
        nodeToSearch.setValue(
122
                SearchPanel.PROP_DIALOG_TITLE,
123
                NbBundle.getMessage(ProjectsSearchAction.class,
124
                                    "LBL_Title_SearchProjects"));       //NOI18N
125
        return new Node[] {nodeToSearch};
126
    }
127
    
128
    private Collection getDataObjectsToSearch() {
129
        Project[] openProjects = OpenProjects.getDefault().getOpenProjects();
96
        Project[] openProjects = OpenProjects.getDefault().getOpenProjects();
130
        
97
        
131
        if (openProjects.length == 0) {
98
        if (openProjects.length == 0) {
Lines 138-165 Link Here
138
             * is being removed in another thread than this action was
105
             * is being removed in another thread than this action was
139
             * invoked from.
106
             * invoked from.
140
             */
107
             */
141
            return Collections.EMPTY_LIST;
108
            return new Node[0];
142
        }
109
        }
143
        
110
        
144
        List rootDataObjects = new ArrayList(openProjects.length * 2);
111
        List rootFolders = new ArrayList();
145
        
146
        for (int i = 0; i < openProjects.length; i++) {
112
        for (int i = 0; i < openProjects.length; i++) {
147
            Sources sources = ProjectUtils.getSources(openProjects[i]);
113
            Sources sources = ProjectUtils.getSources(openProjects[i]);
148
            SourceGroup[] sourceGroups
114
            SourceGroup[] sourceGroups
149
                    = sources.getSourceGroups(Sources.TYPE_GENERIC);
115
                    = sources.getSourceGroups(Sources.TYPE_GENERIC);
150
            for (int j = 0; j < sourceGroups.length; j++) {
116
            for (int j = 0; j < sourceGroups.length; j++) {
151
                try {
117
                rootFolders.add(sourceGroups[j].getRootFolder());
152
                    rootDataObjects.add(
153
                            DataObject.find(sourceGroups[j].getRootFolder()));
154
                } catch (DataObjectNotFoundException ex) {
155
                    ErrorManager.getDefault().notify(
156
                            ErrorManager.EXCEPTION, ex);
157
                }
158
            }
118
            }
159
        }
119
        }
120
121
        if (rootFolders.isEmpty()) {
122
            return new Node[0];
123
        }
124
125
        SearchInfo searchInfo = SearchInfoFactory.createSearchInfo(
126
                (FileObject[])
127
                        rootFolders.toArray(new FileObject[rootFolders.size()]),
128
                true,           //recursive
129
                true,           //check sharability
130
                true);          //check visibility
160
        
131
        
161
        return !rootDataObjects.isEmpty() ? rootDataObjects
132
        Node nodeToSearch = new AbstractNode(
162
                                          : Collections.EMPTY_LIST;
133
                Children.LEAF,
134
                Lookups.singleton(searchInfo));
135
        nodeToSearch.setValue(
136
                SearchPanel.PROP_DIALOG_TITLE,
137
                NbBundle.getMessage(ProjectsSearchAction.class,
138
                                    "LBL_Title_SearchProjects"));       //NOI18N
139
        return new Node[] {nodeToSearch};
163
    }
140
    }
164
141
165
    /** Perform this action. */
142
    /** Perform this action. */

Return to bug 42741