donphelix commented on code in PR #9013:
URL: https://github.com/apache/netbeans/pull/9013#discussion_r2553752693


##########
java/java.j2seproject/src/org/netbeans/modules/java/j2seproject/J2SEProject.java:
##########
@@ -278,6 +284,144 @@ public Lookup getLookup() {
     public AntProjectHelper getAntProjectHelper() {
         return helper;
     }
+    
+    private static class SiteRootFolderListener implements FileChangeListener {
+
+        private final J2SEProject p;
+        private final FileObject siteRootFolder;
+
+        SiteRootFolderListener(J2SEProject p) {
+            this.p = p;
+            siteRootFolder = p.getProjectDirectory();
+        }
+
+        @Override
+        public void fileFolderCreated(FileEvent fe) {
+            checkPreprocessors(fe.getFile());
+        }
+
+        @Override
+        public void fileDataCreated(FileEvent fe) {
+            checkPreprocessors(fe.getFile());
+        }
+
+        @Override
+        public void fileChanged(FileEvent fe) {
+            checkPreprocessors(fe.getFile());
+        }
+
+        @Override
+        public void fileDeleted(FileEvent fe) {
+            checkPreprocessors(fe.getFile());
+        }
+
+        @Override
+        public void fileRenamed(FileRenameEvent fe) {
+            // XXX: notify BrowserReload about filename change
+            checkPreprocessors(fe.getFile(), fe.getName(), fe.getExt());
+        }
+
+        @Override
+        public void fileAttributeChanged(FileAttributeEvent fe) {
+        }
+        
+        private void checkPreprocessors(FileObject fileObject) {
+            try {
+                ClassLoader globalCl = 
Lookup.getDefault().lookup(ClassLoader.class);
+                Class<?> clazz = 
Class.forName("org.netbeans.modules.web.common.api.CssPreprocessors", true, 
globalCl);
+                Object instance = clazz.getMethod("getDefault").invoke(null);
+                Method processMethod = clazz.getMethod("process",  
Project.class, FileObject.class);
+                processMethod.invoke(instance, p, fileObject);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+
+        private void checkPreprocessors(FileObject fileObject, String 
originalName, String originalExtension) {
+            try {
+                ClassLoader globalCl = 
Lookup.getDefault().lookup(ClassLoader.class);
+                Class<?> clazz = 
Class.forName("org.netbeans.modules.web.common.api.CssPreprocessors", true, 
globalCl);
+                Object instance = clazz.getMethod("getDefault").invoke(null);
+                Method processMethod = clazz.getMethod("process",   
Project.class, FileObject.class, String.class, String.class);
+                processMethod.invoke(instance, p, fileObject, originalName, 
originalExtension);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+
+//        private void checkPreprocessors(FileObject fileObject) {
+//            CssPreprocessors.getDefault().process(p, fileObject);
+//        }
+//
+//        private void checkPreprocessors(FileObject fileObject, String 
originalName, String originalExtension) {
+//            CssPreprocessors.getDefault().process(p, fileObject, 
originalName, originalExtension);
+//        }

Review Comment:
   @steelswing would it make sense to remove this entirely rather than 
commenting it out? Might keep things cleaner.



##########
ide/web.common/src/org/netbeans/modules/web/common/spi/ProjectWebRootQuery.java:
##########
@@ -67,14 +71,22 @@ public static FileObject getWebRoot(FileObject file) {
      *
      * @param project a project which you want to get web roots for
      * @return collection of web roots of the given project, can be empty but 
never {@code null}
+     *
      * @since 1.57
      */
     @NonNull
     public static Collection<FileObject> getWebRoots(@NonNull Project project) 
{
         Parameters.notNull("project", project); // NOI18N
         ProjectWebRootProvider provider = 
project.getLookup().lookup(ProjectWebRootProvider.class);
         if (provider == null) {
-            return Collections.emptyList();
+            List<FileObject> objects = new ArrayList<>();
+            Sources sources = ProjectUtils.getSources(project);
+            for (SourceGroup group : sources.getSourceGroups("java")) {
+                FileObject root = group.getRootFolder();
+                objects.add(root);
+            }
+            objects.add(project.getProjectDirectory());

Review Comment:
   Nit: blank line before the return?



##########
java/java.j2seproject/src/org/netbeans/modules/java/j2seproject/J2SEProject.java:
##########
@@ -278,6 +284,144 @@ public Lookup getLookup() {
     public AntProjectHelper getAntProjectHelper() {
         return helper;
     }
+    
+    private static class SiteRootFolderListener implements FileChangeListener {
+
+        private final J2SEProject p;
+        private final FileObject siteRootFolder;
+
+        SiteRootFolderListener(J2SEProject p) {
+            this.p = p;
+            siteRootFolder = p.getProjectDirectory();
+        }
+
+        @Override
+        public void fileFolderCreated(FileEvent fe) {
+            checkPreprocessors(fe.getFile());
+        }
+
+        @Override
+        public void fileDataCreated(FileEvent fe) {
+            checkPreprocessors(fe.getFile());
+        }
+
+        @Override
+        public void fileChanged(FileEvent fe) {
+            checkPreprocessors(fe.getFile());
+        }
+
+        @Override
+        public void fileDeleted(FileEvent fe) {
+            checkPreprocessors(fe.getFile());
+        }
+
+        @Override
+        public void fileRenamed(FileRenameEvent fe) {
+            // XXX: notify BrowserReload about filename change

Review Comment:
   Nit: no need of this comment



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to