# HG changeset patch # User Alexander Simon # Date 1391420076 -14400 # Node ID a42bf6f6287c422d756f380057b97a4700874c61 # Parent 7c5a1816bfeb86a68c8f6f9462024ffde3caef32 fixing Bug 216856 - Static code analysis API is class path oriented. - add folder scope diff --git a/code.analysis/src/org/netbeans/modules/analysis/RunAnalysisPanel.java b/code.analysis/src/org/netbeans/modules/analysis/RunAnalysisPanel.java --- a/code.analysis/src/org/netbeans/modules/analysis/RunAnalysisPanel.java +++ b/code.analysis/src/org/netbeans/modules/analysis/RunAnalysisPanel.java @@ -154,15 +154,20 @@ Icon currentProjectIcon = null; NonRecursiveFolder pack = context.lookup(NonRecursiveFolder.class); FileObject currentFile = context.lookup(FileObject.class); + DataFolder folder = context.lookup(DataFolder.class); if (currentFile != null && currentFile.isData()) { scopes.add(new FileScopeDescription(currentFile)); } + if (folder != null) { + scopes.add(new FolderScopeDescription(folder)); + } + if (pack != null && currentFile == null) { currentFile = pack.getFolder(); } - + if (currentFile != null) { Project p = FileOwnerQuery.getOwner(currentFile); @@ -962,6 +967,31 @@ } } + private static final class FolderScopeDescription implements ScopeDescription { + private final DataFolder folder; + public FolderScopeDescription(DataFolder folder) { + this.folder = folder; + } + @Override + @Messages({"# {0} - folder display name", "DN_CurrentFolder=Current Folder ({0})"}) + public String getDisplayName() { + return Bundle.DN_CurrentFolder(folder.getName()); + } + @Override + public Icon getIcon() { + return ImageUtilities.image2Icon(folder.getNodeDelegate().getIcon(1)); + } + + @Override + public Scope getScope(AtomicBoolean cancel) { + return Scope.create(null, null, folder.files()); + } + + public String getId() { + return "*currentFolder"; // NOI18N + } + } + private static final class FileScopeDescription implements ScopeDescription { private static final Logger LOG = Logger.getLogger(FileScopeDescription.class.getName()); private final FileObject file;