1.1 --- a/PLSQL/Navigator/src/org/netbeans/modules/plsql/navigator/PlsqlSearchProvider.java Wed Jun 20 16:59:53 2012 +0200
1.2 +++ b/PLSQL/Navigator/src/org/netbeans/modules/plsql/navigator/PlsqlSearchProvider.java Fri Jun 22 10:26:29 2012 +0530
1.3 @@ -5,7 +5,6 @@
1.4 package org.netbeans.modules.plsql.navigator;
1.5
1.6 import java.io.File;
1.7 -import java.io.FileFilter;
1.8 import java.util.*;
1.9 import java.util.regex.Pattern;
1.10 import org.netbeans.api.db.explorer.DatabaseConnection;
1.11 @@ -13,7 +12,6 @@
1.12 import org.netbeans.api.project.ui.OpenProjects;
1.13 import org.netbeans.modules.plsql.lexer.PlsqlBlockType;
1.14 import org.netbeans.modules.plsql.utilities.NotConnectedToDbException;
1.15 -import org.netbeans.modules.plsql.utilities.PlsqlExecutorService;
1.16 import org.netbeans.modules.plsql.utilities.PlsqlFileLocatorService;
1.17 import org.netbeans.modules.plsql.utilities.PlsqlFileUtil;
1.18 import org.netbeans.modules.plsqlsupport.db.DatabaseConnectionManager;
1.19 @@ -22,7 +20,6 @@
1.20 import org.netbeans.spi.quicksearch.SearchRequest;
1.21 import org.netbeans.spi.quicksearch.SearchResponse;
1.22 import org.openide.cookies.OpenCookie;
1.23 -import org.openide.filesystems.FileObject;
1.24 import org.openide.loaders.DataObject;
1.25 import org.openide.util.Exceptions;
1.26 import org.openide.util.Lookup;
1.27 @@ -30,7 +27,6 @@
1.28 public class PlsqlSearchProvider implements SearchProvider {
1.29
1.30 final static String MODEL_DIRECTORY_PATH = "#COMPONENT#" + File.separator + "database" + File.separator + "#COMPONENT#";
1.31 - private final PlsqlExecutorService executorService = Lookup.getDefault().lookup(PlsqlExecutorService.class);
1.32 private final PlsqlFileLocatorService locatorService = Lookup.getDefault().lookup(PlsqlFileLocatorService.class);
1.33
1.34 /**
1.35 @@ -52,29 +48,25 @@
1.36 query = query.replaceAll("\\*", ".*");
1.37 }
1.38
1.39 - final List<String> fileExtentions = new ArrayList<String>(executorService.getExecutionOrder());
1.40 - fileExtentions.add(".body");
1.41 - fileExtentions.add(".spec");
1.42 -
1.43 for (Project project : projects) {
1.44 //For Local Files
1.45 - for (String fileExtention : fileExtentions) {
1.46 - Map<String, String> plsqlObjects = getLocalPlsqlObjects(project, fileExtention);
1.47 - for (String plsqlObject : plsqlObjects.keySet()) {
1.48 - boolean match = useRegExp ? Pattern.matches(query, plsqlObject) : plsqlObject.contains(query);
1.49 - if (match) {
1.50 - if (!response.addResult(new OpenLocalPLSQLFile(plsqlObjects.get(plsqlObject)), plsqlObject.toLowerCase() + " (" + project.getProjectDirectory().getName() + ")")) {
1.51 - return;
1.52 - }
1.53 + Collection<File> allObjects = locatorService.getAllPlsqlFiles(project);
1.54 + for (File fileObj : allObjects) {
1.55 + String name = fileObj.getName().toLowerCase().substring(0, fileObj.getName().indexOf("."));
1.56 + boolean match = useRegExp ? Pattern.matches(query, name) : name.contains(query);
1.57 + if (match) {
1.58 + if (!response.addResult(new OpenLocalPlsqlFile(fileObj.getPath()), fileObj.getName() + "(" + project.getProjectDirectory().getName() + ")")) {
1.59 + return;
1.60 }
1.61 }
1.62 }
1.63 +
1.64 //for Package files in DB. Do not consider tables, views, etc
1.65 Set<String> DBFiles = getPlsqlFilesFromDB(project);
1.66 for (String DBFile : DBFiles) {
1.67 boolean match = useRegExp ? Pattern.matches(query, DBFile.toLowerCase()) : DBFile.toLowerCase().contains(query);
1.68 if (match) {
1.69 - if (!response.addResult(new OpenPLSQLFileFromDB(DBFile, project), DBFile.toLowerCase() + " (" + project.getProjectDirectory().getName() + ")")) {
1.70 + if (!response.addResult(new OpenPlsqlFileFromDB(DBFile, project), DBFile.toLowerCase() + " (" + project.getProjectDirectory().getName() + ")")) {
1.71 return;
1.72 }
1.73 }
1.74 @@ -82,37 +74,6 @@
1.75 }
1.76 }
1.77
1.78 - private Map<String, String> getLocalPlsqlObjects(Project project, final String fileExtention) {
1.79 - FileObject workspace = project.getProjectDirectory().getFileObject("workspace");
1.80 - Map<String, String> dbObj = new HashMap<String, String>();
1.81 - if (workspace != null && workspace.isFolder()) {
1.82 - final FileObject[] folders = workspace.getChildren();
1.83 - for (FileObject folder : folders) {
1.84 - if (folder.isFolder() && !folder.getName().startsWith(".")) {
1.85 -
1.86 - File filePath = new File(workspace.getPath() + File.separator + MODEL_DIRECTORY_PATH.replaceAll("#COMPONENT#", folder.getName()));
1.87 - if (filePath.exists()) {
1.88 - final FileFilter filter = new FileFilter() {
1.89 -
1.90 - @Override
1.91 - public boolean accept(final File file) {
1.92 - return (file.isFile() && file.getName().endsWith(fileExtention));
1.93 - }
1.94 - };
1.95 - final File[] objectFiles = filePath.listFiles(filter);
1.96 - if (objectFiles != null) {
1.97 - for (File objectFile : objectFiles) {
1.98 - dbObj.put(objectFile.getName().toString().toLowerCase(), objectFile.getPath().toString().toLowerCase());
1.99 - }
1.100 - }
1.101 - }
1.102 - }
1.103 - }
1.104 - return dbObj;
1.105 - }
1.106 - return dbObj;
1.107 - }
1.108 -
1.109 private Set<String> getPlsqlFilesFromDB(Project project) {
1.110 DatabaseConnectionManager connectionProvider = project.getLookup().lookup(DatabaseConnectionManager.class);
1.111 DatabaseContentManager cache = DatabaseContentManager.getInstance(connectionProvider.getTemplateConnection());
1.112 @@ -123,12 +84,11 @@
1.113 return allPackages;
1.114 }
1.115
1.116 - private static class OpenLocalPLSQLFile implements Runnable {
1.117 + private static class OpenLocalPlsqlFile implements Runnable {
1.118
1.119 - File objectFile;
1.120 String filePath;
1.121
1.122 - public OpenLocalPLSQLFile(String filePath_) {
1.123 + public OpenLocalPlsqlFile(String filePath_) {
1.124 filePath = filePath_;
1.125 }
1.126
1.127 @@ -142,13 +102,12 @@
1.128 }
1.129 }
1.130
1.131 - private static class OpenPLSQLFileFromDB implements Runnable {
1.132 + private static class OpenPlsqlFileFromDB implements Runnable {
1.133
1.134 - File objectFile;
1.135 String packageName;
1.136 Project project;
1.137
1.138 - public OpenPLSQLFileFromDB(String packageName_, Project project_) {
1.139 + public OpenPlsqlFileFromDB(String packageName_, Project project_) {
1.140 packageName = packageName_;
1.141 project = project_;
1.142 }
2.1 --- a/PLSQL/Utilities/src/org/netbeans/modules/plsql/utilities/PlsqlFileLocatorService.java Wed Jun 20 16:59:53 2012 +0200
2.2 +++ b/PLSQL/Utilities/src/org/netbeans/modules/plsql/utilities/PlsqlFileLocatorService.java Fri Jun 22 10:26:29 2012 +0530
2.3 @@ -41,8 +41,10 @@
2.4 */
2.5 package org.netbeans.modules.plsql.utilities;
2.6
2.7 +import java.io.File;
2.8 import org.netbeans.modules.plsql.lexer.PlsqlBlockType;
2.9 import java.io.IOException;
2.10 +import java.util.Collection;
2.11 import org.netbeans.api.project.Project;
2.12 import org.openide.filesystems.FileObject;
2.13 import org.openide.loaders.DataObject;
2.14 @@ -92,4 +94,10 @@
2.15 public void addFileToCache(Project project, FileObject fileObject) throws IOException;
2.16
2.17 public void rebuildCache(Project project);
2.18 +
2.19 + /**
2.20 + * Give all objects in a project.
2.21 + * @param project
2.22 + */
2.23 + public Collection<File> getAllPlsqlFiles(Project project);
2.24 }
3.1 --- a/PLSQL/Utilities/src/org/netbeans/modules/plsql/utilities/localization/PlsqlFileLocatorServiceImpl.java Wed Jun 20 16:59:53 2012 +0200
3.2 +++ b/PLSQL/Utilities/src/org/netbeans/modules/plsql/utilities/localization/PlsqlFileLocatorServiceImpl.java Fri Jun 22 10:26:29 2012 +0530
3.3 @@ -41,6 +41,7 @@
3.4 */
3.5 package org.netbeans.modules.plsql.utilities.localization;
3.6
3.7 +import java.util.Collection;
3.8 import org.netbeans.modules.plsqlsupport.db.DatabaseConnectionManager;
3.9 import org.netbeans.modules.plsql.lexer.PlsqlBlockType;
3.10 import org.netbeans.modules.plsql.utilities.PlsqlFileLocatorService;
3.11 @@ -179,4 +180,16 @@
3.12 }
3.13 }
3.14 }
3.15 +
3.16 + @Override
3.17 + public Collection<File> getAllPlsqlFiles(Project project) {
3.18 + if (project != null) {
3.19 + PlsqlProjectFileCacheManager fileCache = cachePerProject.get(getProjectName(project));
3.20 + if (fileCache != null) {
3.21 + Collection<File> allPlsqlFiles = fileCache.getAllPlsqlObjects();
3.22 + return allPlsqlFiles;
3.23 + }
3.24 + }
3.25 + return null;
3.26 + }
3.27 }
4.1 --- a/PLSQL/Utilities/src/org/netbeans/modules/plsql/utilities/localization/PlsqlProjectFileCacheManager.java Wed Jun 20 16:59:53 2012 +0200
4.2 +++ b/PLSQL/Utilities/src/org/netbeans/modules/plsql/utilities/localization/PlsqlProjectFileCacheManager.java Fri Jun 22 10:26:29 2012 +0530
4.3 @@ -106,6 +106,12 @@
4.4 FileObject get(final PlsqlSearchObject searchObject) {
4.5 return cache.get(searchObject);
4.6 }
4.7 +
4.8 + Collection<File> getAllPlsqlObjects(){
4.9 + final PlsqlFileFinder scanner = new PlsqlFileFinder(rootFolder);
4.10 + final Collection<File> listFiles = scanner.findPlsqlFiles();
4.11 + return listFiles;
4.12 + }
4.13
4.14 int numberPlsqlObjects() {
4.15 return cache.numberPlsqlObjects();