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

Reply via email to