More robust implementation of #153045; do not show same build.xml multiple times.
authorJesse Glick <jglick@netbeans.org>
Fri, 09 Dec 2011 12:45:32 -0500
changeset 17704900f30d4b05a
parent 17703 308a0ce3beea
child 17705 491951709d34
child 17764 848f7ba04941
More robust implementation of #153045; do not show same build.xml multiple times.
autoproject.java/manifest.mf
autoproject.java/src/org/netbeans/modules/autoproject/java/NodeFactoryImpl.java
     1.1 --- a/autoproject.java/manifest.mf	Wed Dec 07 14:14:22 2011 -0500
     1.2 +++ b/autoproject.java/manifest.mf	Fri Dec 09 12:45:32 2011 -0500
     1.3 @@ -3,5 +3,5 @@
     1.4  OpenIDE-Module: org.netbeans.modules.autoproject.java
     1.5  OpenIDE-Module-Layer: org/netbeans/modules/autoproject/java/layer.xml
     1.6  OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/autoproject/java/Bundle.properties
     1.7 -OpenIDE-Module-Specification-Version: 1.38
     1.8 +OpenIDE-Module-Specification-Version: 1.39
     1.9  
     2.1 --- a/autoproject.java/src/org/netbeans/modules/autoproject/java/NodeFactoryImpl.java	Wed Dec 07 14:14:22 2011 -0500
     2.2 +++ b/autoproject.java/src/org/netbeans/modules/autoproject/java/NodeFactoryImpl.java	Fri Dec 09 12:45:32 2011 -0500
     2.3 @@ -42,8 +42,11 @@
     2.4  import java.beans.PropertyChangeEvent;
     2.5  import java.beans.PropertyChangeListener;
     2.6  import java.util.ArrayList;
     2.7 +import java.util.Arrays;
     2.8 +import java.util.HashSet;
     2.9  import java.util.List;
    2.10  import java.util.Map;
    2.11 +import java.util.Set;
    2.12  import javax.swing.event.ChangeEvent;
    2.13  import javax.swing.event.ChangeListener;
    2.14  import org.netbeans.api.java.project.JavaProjectConstants;
    2.15 @@ -78,13 +81,13 @@
    2.16          return new SourceChildren(p);
    2.17      }
    2.18  
    2.19 -    private class SourceChildren implements NodeList<Object>, ChangeListener, PropertyChangeListener {
    2.20 +    private static class SourceChildren implements NodeList<Object>, ChangeListener, PropertyChangeListener {
    2.21  
    2.22          private final Project p;
    2.23          private final Sources src;
    2.24          private final ChangeSupport cs = new ChangeSupport(this);
    2.25  
    2.26 -        public SourceChildren(Project p) {
    2.27 +        SourceChildren(Project p) {
    2.28              this.p = p;
    2.29              src = ProjectUtils.getSources(p);
    2.30          }
    2.31 @@ -124,11 +127,9 @@
    2.32  
    2.33          public List<Object> keys() {
    2.34              List<Object> keys = new ArrayList<Object>();
    2.35 -            for (SourceGroup g : src.getSourceGroups(JavaProjectConstants.SOURCES_TYPE_JAVA)) {
    2.36 -                keys.add(g);
    2.37 -            }
    2.38 +            keys.addAll(Arrays.asList(src.getSourceGroups(JavaProjectConstants.SOURCES_TYPE_JAVA)));
    2.39              String actionPrefix = FileUtil.toFile(p.getProjectDirectory()) + Cache.ACTION;
    2.40 -            boolean foundBuildScript = false;
    2.41 +            Set<FileObject> buildScripts = new HashSet<FileObject>();
    2.42              for (Map.Entry<String,String> entry : Cache.pairs()) {
    2.43                  if (!entry.getKey().startsWith(actionPrefix)) {
    2.44                      continue;
    2.45 @@ -137,13 +138,12 @@
    2.46                  String[] protocolScriptAndTargets = binding.split(":", 3);
    2.47                  if (protocolScriptAndTargets[0].equals("ant")) {
    2.48                      FileObject script = p.getProjectDirectory().getFileObject(protocolScriptAndTargets[1]); // XXX accept also absolute paths
    2.49 -                    if (script != null) {
    2.50 +                    if (script != null && buildScripts.add(script)) {
    2.51                          keys.add(script);
    2.52 -                        foundBuildScript = true;
    2.53                      }
    2.54                  }
    2.55               }
    2.56 -            if (!foundBuildScript) {
    2.57 +            if (buildScripts.isEmpty()) {
    2.58                  FileObject f = p.getProjectDirectory().getFileObject("build.xml");
    2.59                  if (f != null) {
    2.60                      keys.add(f);