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 15e311a [NETBEANS-4770] Handle source type correctly in GradleSourcesImpl 15e311a is described below commit 15e311afa79c92b6d72c2db690b929b0ca5c66df Author: Laszlo Kishalmi <laszlo.kisha...@gmail.com> AuthorDate: Thu Sep 3 07:44:58 2020 -0700 [NETBEANS-4770] Handle source type correctly in GradleSourcesImpl --- .../modules/gradle/NbGradleProjectImpl.java | 3 ++- .../gradle/java/classpath/GradleSourcesImpl.java | 31 +++++++++++++++------- .../gradle/java/nodes/SourcesNodeFactory.java | 11 ++++++-- 3 files changed, 33 insertions(+), 12 deletions(-) diff --git a/extide/gradle/src/org/netbeans/modules/gradle/NbGradleProjectImpl.java b/extide/gradle/src/org/netbeans/modules/gradle/NbGradleProjectImpl.java index 6f29dab..0801593 100644 --- a/extide/gradle/src/org/netbeans/modules/gradle/NbGradleProjectImpl.java +++ b/extide/gradle/src/org/netbeans/modules/gradle/NbGradleProjectImpl.java @@ -165,11 +165,12 @@ public final class NbGradleProjectImpl implements Project { aux, aux.getProblemProvider(), new GradleAuxiliaryPropertiesImpl(this), - new GradleSharabilityQueryImpl(this), UILookupMergerSupport.createProjectOpenHookMerger(new ProjectOpenedHookImpl()), UILookupMergerSupport.createProjectProblemsProviderMerger(), UILookupMergerSupport.createRecommendedTemplatesMerger(), UILookupMergerSupport.createPrivilegedTemplatesMerger(), + LookupProviderSupport.createSourcesMerger(), + LookupProviderSupport.createSharabilityQueryMerger(), state ); } diff --git a/java/gradle.java/src/org/netbeans/modules/gradle/java/classpath/GradleSourcesImpl.java b/java/gradle.java/src/org/netbeans/modules/gradle/java/classpath/GradleSourcesImpl.java index 5dda8c2..e2db217 100644 --- a/java/gradle.java/src/org/netbeans/modules/gradle/java/classpath/GradleSourcesImpl.java +++ b/java/gradle.java/src/org/netbeans/modules/gradle/java/classpath/GradleSourcesImpl.java @@ -107,6 +107,8 @@ import org.openide.util.Pair; public class GradleSourcesImpl implements Sources, SourceGroupModifierImplementation { private static final Map<String, String> COMMON_NAMES = new HashMap<>(); + public static final String SOURCE_TYPE_GROOVY = "groovy"; //NOI18N + public static final String SOURCE_TYPE_GENERATED = "generated"; //NOI18N static { COMMON_NAMES.put("main.JAVA", "01main.java"); @@ -153,23 +155,24 @@ public class GradleSourcesImpl implements Sources, SourceGroupModifierImplementa if (Sources.TYPE_GENERIC.equals(type)) { return new SourceGroup[]{new GradleSourceGroup(proj.getProjectDirectory(), "ProjectRoot", //NOI18N ProjectUtils.getInformation(proj).getDisplayName())}; - } else { - checkChanges(false); + } + checkChanges(false); + SourceType stype = soureType2SourceType(type); + if (stype != null) { ArrayList<SourceGroup> ret = new ArrayList<>(); for (String group : gradleSources.keySet()) { - for (SourceType langType : SourceType.values()) { - Set<File> dirs = gradleSources.get(group).getSourceDirs(langType); - boolean unique = dirs.size() == 1; - for (File dir : dirs) { - if (dir.isDirectory()) { - ret.add(createSourceGroup(unique, group, dir, langType)); - } + Set<File> dirs = gradleSources.get(group).getSourceDirs(stype); + boolean unique = dirs.size() == 1; + for (File dir : dirs) { + if (dir.isDirectory()) { + ret.add(createSourceGroup(unique, group, dir, stype)); } } } Collections.sort(ret, Comparator.comparing(SourceGroup::getName)); return ret.toArray(new SourceGroup[ret.size()]); } + return new SourceGroup[0]; } SourceGroup createSourceGroup(boolean unique, String group, File dir, @@ -331,6 +334,16 @@ public class GradleSourcesImpl implements Sources, SourceGroupModifierImplementa return ret && gp.getSourceSets().containsKey(hint); } + private static SourceType soureType2SourceType(String type) { + switch (type) { + case JavaProjectConstants.SOURCES_TYPE_JAVA: return SourceType.JAVA; + case JavaProjectConstants.SOURCES_TYPE_RESOURCES: return SourceType.RESOURCES; + case SOURCE_TYPE_GENERATED: return SourceType.GENERATED; + case SOURCE_TYPE_GROOVY: return SourceType.GROOVY; // Should be in the Groovy support module theoretically + } + return null; + } + private final class GradleSourceGroup implements SourceGroup { private final FileObject rootFolder; diff --git a/java/gradle.java/src/org/netbeans/modules/gradle/java/nodes/SourcesNodeFactory.java b/java/gradle.java/src/org/netbeans/modules/gradle/java/nodes/SourcesNodeFactory.java index 8cb7571..ee5ffdd 100644 --- a/java/gradle.java/src/org/netbeans/modules/gradle/java/nodes/SourcesNodeFactory.java +++ b/java/gradle.java/src/org/netbeans/modules/gradle/java/nodes/SourcesNodeFactory.java @@ -23,6 +23,7 @@ import java.util.ArrayList; import org.netbeans.modules.gradle.api.NbGradleProject; import org.netbeans.modules.gradle.spi.nodes.AbstractGradleNodeList; import java.util.Arrays; +import java.util.Comparator; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; @@ -34,6 +35,7 @@ import org.netbeans.api.project.Project; import org.netbeans.api.project.ProjectUtils; import org.netbeans.api.project.SourceGroup; import org.netbeans.api.project.Sources; +import org.netbeans.modules.gradle.java.classpath.GradleSourcesImpl; import org.netbeans.spi.java.project.support.ui.PackageView; import org.netbeans.spi.project.ui.support.NodeFactory; import org.netbeans.spi.project.ui.support.NodeList; @@ -69,8 +71,13 @@ public final class SourcesNodeFactory implements NodeFactory { @Override public List<SourceGroup> keys() { Sources srcs = ProjectUtils.getSources(project); - SourceGroup[] javagroup = srcs.getSourceGroups(JavaProjectConstants.SOURCES_TYPE_JAVA); - return Arrays.asList(javagroup); + List<SourceGroup> ret = new ArrayList<>(); + ret.addAll(Arrays.asList(srcs.getSourceGroups(JavaProjectConstants.SOURCES_TYPE_JAVA))); + ret.addAll(Arrays.asList(srcs.getSourceGroups(JavaProjectConstants.SOURCES_TYPE_RESOURCES))); + ret.addAll(Arrays.asList(srcs.getSourceGroups(GradleSourcesImpl.SOURCE_TYPE_GENERATED))); + ret.addAll(Arrays.asList(srcs.getSourceGroups(GradleSourcesImpl.SOURCE_TYPE_GROOVY))); + ret.sort(Comparator.comparing(SourceGroup::getName)); + return ret; } @NbBundle.Messages({ --------------------------------------------------------------------- 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