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