This is an automated email from the ASF dual-hosted git repository. lkishalmi pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/netbeans.git
The following commit(s) were added to refs/heads/master by this push: new f6a745c [NETBEANS-4252] Added PathFinder to Gradle Build Scripts Node f6a745c is described below commit f6a745c5b9b0460ac4482c207e5a617cef1c2e64 Author: Laszlo Kishalmi <laszlo.kisha...@gmail.com> AuthorDate: Sun May 2 13:18:35 2021 -0700 [NETBEANS-4252] Added PathFinder to Gradle Build Scripts Node --- .../modules/gradle/nodes/BuildScriptsNode.java | 32 +++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/extide/gradle/src/org/netbeans/modules/gradle/nodes/BuildScriptsNode.java b/extide/gradle/src/org/netbeans/modules/gradle/nodes/BuildScriptsNode.java index b6f4fa1..3513723 100644 --- a/extide/gradle/src/org/netbeans/modules/gradle/nodes/BuildScriptsNode.java +++ b/extide/gradle/src/org/netbeans/modules/gradle/nodes/BuildScriptsNode.java @@ -34,6 +34,7 @@ import java.util.logging.Logger; import java.util.prefs.PreferenceChangeEvent; import java.util.prefs.PreferenceChangeListener; import org.netbeans.api.annotations.common.StaticResource; +import org.netbeans.api.project.FileOwnerQuery; import org.netbeans.api.project.Project; import org.netbeans.api.project.ProjectManager; import org.netbeans.modules.gradle.spi.GradleFiles.Kind; @@ -54,6 +55,7 @@ import org.openide.util.Pair; import org.openide.util.lookup.Lookups; import static org.netbeans.modules.gradle.spi.GradleFiles.Kind.*; +import org.netbeans.spi.project.ui.PathFinder; import org.openide.util.Exceptions; /** * @@ -70,7 +72,7 @@ public final class BuildScriptsNode extends AnnotatedAbstractNode { @NbBundle.Messages("LBL_Build_Scripts=Build Scripts") public BuildScriptsNode(NbGradleProjectImpl prj) { super(Children.create(new ProjectFilesChildren(prj), true), - Lookups.fixed(prj.getProjectDirectory())); + Lookups.fixed(prj.getProjectDirectory(), new Finder(prj))); setName("buildscripts"); //NOI18N setDisplayName(Bundle.LBL_Build_Scripts()); } @@ -96,6 +98,34 @@ public final class BuildScriptsNode extends AnnotatedAbstractNode { return img; } + private static class Finder implements PathFinder { + + final Project project; + + public Finder(Project project) { + this.project = project; + } + + @Override + public Node findPath(Node node, Object target) { + if (target instanceof FileObject) { + FileObject fo = (FileObject) target; + if (project != FileOwnerQuery.getOwner(fo)) { + return null; // Don't waste time if project does not own the fo + } + Node[] nodes = node.getChildren().getNodes(true); + for (Node n : nodes) { + FileObject nf = n.getLookup().lookup(FileObject.class); + if ((nf != null) && (nf.equals(fo))) { + return n; + } + } + } + + return null; + } + } + private static class ProjectFilesChildren extends ChildFactory.Detachable<Pair<FileObject, GradleFiles.Kind>> implements PropertyChangeListener { private final NbGradleProjectImpl project; --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@netbeans.apache.org For additional commands, e-mail: commits-h...@netbeans.apache.org For further information about the NetBeans mailing lists, visit: https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists