Merge pull request #3575 from mbien/nb-javac-libname-fix_delivery
fixed wrong nb-javac module name so that it can be installed.
diff --git a/extide/gradle/src/org/netbeans/modules/gradle/nodes/SubProjectsNode.java b/extide/gradle/src/org/netbeans/modules/gradle/nodes/SubProjectsNode.java
index 662284b..54b0fe0 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/nodes/SubProjectsNode.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/nodes/SubProjectsNode.java
@@ -26,8 +26,8 @@
import java.awt.event.ActionEvent;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
-import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
import java.util.List;
import javax.swing.AbstractAction;
import javax.swing.Action;
@@ -48,6 +48,8 @@
import static org.netbeans.modules.gradle.nodes.Bundle.*;
import java.util.Set;
+import java.util.logging.Level;
+import java.util.logging.Logger;
import org.netbeans.api.project.ProjectUtils;
import org.netbeans.modules.gradle.api.GradleBaseProject;
import org.netbeans.modules.gradle.spi.Utils;
@@ -59,6 +61,8 @@
*/
public class SubProjectsNode extends AbstractNode {
+ private static final Logger LOG = Logger.getLogger(SubProjectsNode.class.getName());
+
@StaticResource
private static final String SP_BADGE
= "org/netbeans/modules/gradle/resources/gradle-large-badge.png";
@@ -122,13 +126,21 @@
protected boolean createKeys(final List<Project> projects) {
Set<Project> containedProjects = ProjectUtils.getContainedProjects(project, false);
- projects.addAll(containedProjects);
+ if (containedProjects != null) {
+ projects.addAll(containedProjects);
+ } else {
+ LOG.log(Level.FINE, "No ProjectContainerProvider in the lookup of: {0}", project);
+ }
return true;
}
@Override
protected Node createNodeForKey(Project key) {
Set<Project> containedProjects = ProjectUtils.getContainedProjects(key, false);
+ if (containedProjects == null) {
+ containedProjects = Collections.emptySet();
+ LOG.log(Level.FINE, "No ProjectContainerProvider in the lookup of: {0}", project);
+ }
GradleBaseProject gbp = GradleBaseProject.get(project);
String prefix = (gbp != null && !gbp.isRoot() ? gbp.getPath() : "") + ':';
Children ch = containedProjects.isEmpty() ? Children.LEAF : Children.create(new SubProjectsChildFactory(key), true);
@@ -182,9 +194,7 @@
@Override
public Action[] getActions(boolean b) {
- ArrayList<Action> lst = new ArrayList<Action>();
- lst.add(OpenProjectAction.SINGLETON);
- return lst.toArray(new Action[lst.size()]);
+ return new Action[]{OpenProjectAction.SINGLETON};
}
@Override
diff --git a/ide/csl.api/src/org/netbeans/modules/csl/navigation/ElementNode.java b/ide/csl.api/src/org/netbeans/modules/csl/navigation/ElementNode.java
index 077d3f6..0649d3b 100644
--- a/ide/csl.api/src/org/netbeans/modules/csl/navigation/ElementNode.java
+++ b/ide/csl.api/src/org/netbeans/modules/csl/navigation/ElementNode.java
@@ -29,6 +29,7 @@
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
+import java.util.Objects;
import java.util.Set;
import javax.swing.Action;
import javax.swing.Icon;
@@ -242,7 +243,15 @@
Node[] children = ch.getNodes();
for (int i = 0; i < children.length; i++) {
ElementNode c = (ElementNode) children[i];
- if (this.getFileObject() != c.getDescription().getElementHandle().getFileObject()) {
+ // The promise of the API is broken at several places in the
+ // codebase and thus this needs to be guarded. The assert is in
+ // place to find the violating places.
+ assert c.getDescription().getElementHandle() != null;
+ @SuppressWarnings("null")
+ FileObject childFileObject = c.getDescription().getElementHandle() != null
+ ? c.getDescription().getElementHandle().getFileObject()
+ : null;
+ if (! Objects.equals(this.getFileObject(), childFileObject)) {
// e.g. inherited items may be in another file
// in such a case, incorrect item is highlighted on the navigator window if the FileObjects are not checked
continue;
diff --git a/ide/css.editor/src/org/netbeans/modules/css/editor/module/main/TopLevelStructureItem.java b/ide/css.editor/src/org/netbeans/modules/css/editor/module/main/TopLevelStructureItem.java
index 4452e15..4897b90 100644
--- a/ide/css.editor/src/org/netbeans/modules/css/editor/module/main/TopLevelStructureItem.java
+++ b/ide/css.editor/src/org/netbeans/modules/css/editor/module/main/TopLevelStructureItem.java
@@ -24,13 +24,18 @@
import java.util.List;
import java.util.Set;
import javax.swing.ImageIcon;
+import org.netbeans.lib.editor.util.StringEscapeUtils;
import org.netbeans.modules.csl.api.ElementHandle;
import org.netbeans.modules.csl.api.ElementKind;
import org.netbeans.modules.csl.api.HtmlFormatter;
import org.netbeans.modules.csl.api.Modifier;
+import org.netbeans.modules.csl.api.OffsetRange;
import org.netbeans.modules.csl.api.StructureItem;
+import org.netbeans.modules.csl.spi.ParserResult;
+import org.netbeans.modules.css.editor.csl.CssLanguage;
import org.netbeans.modules.css.editor.module.spi.FeatureContext;
import org.netbeans.modules.parsing.api.Snapshot;
+import org.openide.filesystems.FileObject;
import org.openide.util.NbBundle;
/**
@@ -39,29 +44,40 @@
*/
public abstract class TopLevelStructureItem implements StructureItem {
+ private final ElementHandle elementHandle;
+
+ public TopLevelStructureItem(String name, FileObject fileObject) {
+ this.elementHandle = new TopElementHandle(fileObject, name);
+ }
+
+ @Override
+ public String getName() {
+ return elementHandle.getName();
+ }
+
@Override
public String getSortText() {
- return getName();
+ return this.elementHandle.getName();
}
@Override
public String getHtml(HtmlFormatter formatter) {
- return getName();
+ return StringEscapeUtils.escapeHtml(this.elementHandle.getName());
}
@Override
public ElementHandle getElementHandle() {
- return null;
+ return elementHandle;
}
@Override
public ElementKind getKind() {
- return ElementKind.PACKAGE; //xxx fix - add mode categories to csl
+ return elementHandle.getKind();
}
@Override
public Set<Modifier> getModifiers() {
- return Collections.emptySet();
+ return elementHandle.getModifiers();
}
@Override
@@ -102,9 +118,10 @@
public abstract static class ChildrenSetStructureItem extends TopLevelStructureItem {
- private Collection<StructureItem> items;
+ private final Collection<StructureItem> items;
- public ChildrenSetStructureItem(Collection<StructureItem> items) {
+ public ChildrenSetStructureItem(String name, FileObject fileObject, Collection<StructureItem> items) {
+ super(name, fileObject);
this.items = items;
}
@@ -116,15 +133,17 @@
public abstract static class ChildrenListStructureItem extends TopLevelStructureItem {
- private List<StructureItem> items;
+ private final List<StructureItem> items;
- public ChildrenListStructureItem(List<StructureItem> items) {
+ public ChildrenListStructureItem(String name, FileObject fileObject, List<StructureItem> items) {
+ super(name, fileObject);
this.items = items;
}
@Override
+ @SuppressWarnings("ReturnOfCollectionOrArrayField")
public List<? extends StructureItem> getNestedItems() {
- return items;
+ return new ArrayList<>(items);
}
}
@@ -133,15 +152,12 @@
private final Snapshot snapshot;
public Rules(List<StructureItem> children, FeatureContext context) {
- super(children);
+ super(NbBundle.getMessage(TopLevelStructureItem.class, "Rules"), //NOI18N
+ context.getSnapshot().getSource().getFileObject(),
+ children);
this.snapshot = context.getSnapshot();
}
- @Override
- public String getName() {
- return NbBundle.getMessage(TopLevelStructureItem.class, "Rules"); //NOI18N
- }
-
//return the element range 0 - source lenght to ensure the recursive
//leaf node search mechanism in CSL navigator will try to match
//the rule children
@@ -157,75 +173,91 @@
}
public static class Elements extends ChildrenSetStructureItem {
-
public Elements(Collection<StructureItem> items) {
- super(items);
- }
-
- @Override
- public String getName() {
- return NbBundle.getMessage(TopLevelStructureItem.class, "Elements"); //NOI18N
+ super(NbBundle.getMessage(TopLevelStructureItem.class, "Elements"), null, items); //NOI18N
}
}
public static class Classes extends ChildrenSetStructureItem {
-
public Classes(Collection<StructureItem> children) {
- super(children);
- }
-
- @Override
- public String getName() {
- return NbBundle.getMessage(TopLevelStructureItem.class, "Classes"); //NOI18N
+ super(NbBundle.getMessage(TopLevelStructureItem.class, "Classes"), null, children);
}
}
public static class Ids extends ChildrenSetStructureItem {
-
public Ids(Collection<StructureItem> children) {
- super(children);
- }
-
- @Override
- public String getName() {
- return NbBundle.getMessage(TopLevelStructureItem.class, "Ids"); //NOI18N
+ super(NbBundle.getMessage(TopLevelStructureItem.class, "Ids"), null, children); //NOI18N
}
}
public static class Namespaces extends ChildrenListStructureItem {
public Namespaces(List<StructureItem> children) {
- super(children);
+ super(NbBundle.getMessage(TopLevelStructureItem.class, "Namespaces"), null, children); //NOI18N
}
- @Override
- public String getName() {
- return NbBundle.getMessage(TopLevelStructureItem.class, "Namespaces"); //NOI18N
- }
}
public static class AtRules extends ChildrenListStructureItem {
-
public AtRules(List<StructureItem> children) {
- super(children);
- }
-
- @Override
- public String getName() {
- return NbBundle.getMessage(TopLevelStructureItem.class, "AtRules"); //NOI18N
+ super(NbBundle.getMessage(TopLevelStructureItem.class, "AtRules"), null, children); //NOI18N
}
}
@NbBundle.Messages("imports=Imports")
public static class Imports extends ChildrenSetStructureItem {
-
public Imports(Collection<StructureItem> children) {
- super(children);
+ super(Bundle.imports(), null, children);
+ }
+ }
+
+ private static class TopElementHandle implements ElementHandle {
+ private final FileObject fileObject;
+ private final String name;
+
+ public TopElementHandle(FileObject fileObject, String name) {
+ this.fileObject = fileObject;
+ this.name = name;
+ }
+
+ @Override
+ public FileObject getFileObject() {
+ return fileObject;
+ }
+
+ @Override
+ public String getMimeType() {
+ return CssLanguage.CSS_MIME_TYPE;
}
@Override
public String getName() {
- return Bundle.imports();
+ return name;
+ }
+
+ @Override
+ public String getIn() {
+ return null;
+ }
+
+ @Override
+ public ElementKind getKind() {
+ return ElementKind.PACKAGE; //xxx fix - add mode categories to csl
+ }
+
+ @Override
+ public Set<Modifier> getModifiers() {
+ return Collections.emptySet();
+ }
+
+ @Override
+ public boolean signatureEquals(ElementHandle handle) {
+ return false;
+ }
+
+ @Override
+ public OffsetRange getOffsetRange(ParserResult result) {
+ return new OffsetRange(-1, -1);
}
}
}
diff --git a/ide/css.prep/src/org/netbeans/modules/css/prep/editor/CPCategoryStructureItem.java b/ide/css.prep/src/org/netbeans/modules/css/prep/editor/CPCategoryStructureItem.java
index e403a24..e231a1d 100644
--- a/ide/css.prep/src/org/netbeans/modules/css/prep/editor/CPCategoryStructureItem.java
+++ b/ide/css.prep/src/org/netbeans/modules/css/prep/editor/CPCategoryStructureItem.java
@@ -28,9 +28,12 @@
import org.netbeans.modules.csl.api.ElementKind;
import org.netbeans.modules.csl.api.HtmlFormatter;
import org.netbeans.modules.csl.api.Modifier;
+import org.netbeans.modules.csl.api.OffsetRange;
import org.netbeans.modules.csl.api.StructureItem;
+import org.netbeans.modules.csl.spi.ParserResult;
import org.netbeans.modules.css.editor.module.spi.FeatureContext;
import org.netbeans.modules.parsing.api.Snapshot;
+import org.openide.filesystems.FileObject;
import org.openide.util.ImageUtilities;
import org.openide.util.NbBundle;
@@ -42,7 +45,18 @@
//let the CP items to be at the top of the navigator
private static final String SORT_TEXT_PREFIX = "0_"; //NOI18N
-
+
+ private final ElementHandle elementHandle;
+
+ public CPCategoryStructureItem(ElementHandle elementHandle) {
+ this.elementHandle = elementHandle;
+ }
+
+ @Override
+ public String getName() {
+ return this.elementHandle.getName();
+ }
+
@Override
public String getSortText() {
return new StringBuilder().append(SORT_TEXT_PREFIX).append(getName()).toString();
@@ -55,17 +69,17 @@
@Override
public ElementHandle getElementHandle() {
- return null;
+ return elementHandle;
}
@Override
public ElementKind getKind() {
- return ElementKind.PACKAGE; //xxx fix - add mode categories to csl
+ return elementHandle.getKind();
}
@Override
public Set<Modifier> getModifiers() {
- return Collections.emptySet();
+ return elementHandle.getModifiers();
}
@Override
@@ -104,12 +118,12 @@
return true;
}
-
public abstract static class ChildrenSetStructureItem extends CPCategoryStructureItem {
- private Collection<StructureItem> items;
+ private final Collection<StructureItem> items;
- public ChildrenSetStructureItem(Collection<StructureItem> items) {
+ public ChildrenSetStructureItem(ElementHandle elementHandle, Collection<StructureItem> items) {
+ super(elementHandle);
this.items = items;
}
@@ -123,31 +137,26 @@
public static class Variables extends ChildrenSetStructureItem {
private static final ImageIcon ICON = new ImageIcon(ImageUtilities.loadImage("org/netbeans/modules/css/prep/editor/resources/variables.gif")); //NOI18N
-
- public Variables(Set<StructureItem> children) {
- super(children);
+
+ public Variables(Set<StructureItem> children, FeatureContext context) {
+ super(new DummyElementHandle(context.getFileObject(), Bundle.navigator_item_name_variables()), children);
}
@Override
public ImageIcon getCustomIcon() {
return ICON;
}
-
- @Override
- public String getName() {
- return Bundle.navigator_item_name_variables();
- }
}
@NbBundle.Messages("navigator.item.name.mixins=Mixins")
public static class Mixins extends ChildrenSetStructureItem {
private static final ImageIcon ICON = new ImageIcon(ImageUtilities.loadImage("org/netbeans/modules/css/prep/editor/resources/methods.gif")); //NOI18N
-
- private FeatureContext context;
+
+ private final FeatureContext context;
public Mixins(Collection<StructureItem> items, FeatureContext context) {
- super(items);
+ super(new DummyElementHandle(context.getFileObject(), Bundle.navigator_item_name_mixins()), items);
this.context = context;
}
@@ -156,11 +165,6 @@
return ICON;
}
- @Override
- public String getName() {
- return Bundle.navigator_item_name_mixins();
- }
-
//return the element range 0 - source lenght to ensure the recursive
//leaf node search mechanism in CSL navigator will try to match
//the rule children
@@ -175,4 +179,54 @@
return s.getOriginalOffset(s.getText().length());
}
}
+
+ private static class DummyElementHandle implements ElementHandle {
+ private final FileObject fileObject;
+ private final String name;
+
+ public DummyElementHandle(FileObject fileObject, String name) {
+ this.fileObject = fileObject;
+ this.name = name;
+ }
+
+ @Override
+ public FileObject getFileObject() {
+ return fileObject;
+ }
+
+ @Override
+ public String getMimeType() {
+ return "text/css";
+ }
+
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ @Override
+ public String getIn() {
+ return null;
+ }
+
+ @Override
+ public ElementKind getKind() {
+ return ElementKind.PACKAGE; //xxx fix - add mode categories to csl
+ }
+
+ @Override
+ public Set<Modifier> getModifiers() {
+ return Collections.emptySet();
+ }
+
+ @Override
+ public boolean signatureEquals(ElementHandle handle) {
+ return false;
+ }
+
+ @Override
+ public OffsetRange getOffsetRange(ParserResult result) {
+ return new OffsetRange(-1, -1);
+ }
+ }
}
diff --git a/ide/css.prep/src/org/netbeans/modules/css/prep/editor/CPCssEditorModule.java b/ide/css.prep/src/org/netbeans/modules/css/prep/editor/CPCssEditorModule.java
index 4e6b456..e1e5539 100644
--- a/ide/css.prep/src/org/netbeans/modules/css/prep/editor/CPCssEditorModule.java
+++ b/ide/css.prep/src/org/netbeans/modules/css/prep/editor/CPCssEditorModule.java
@@ -712,7 +712,7 @@
}
if (!vars.isEmpty()) {
- result.add(new CPCategoryStructureItem.Variables(vars));
+ result.add(new CPCategoryStructureItem.Variables(vars, context));
}
if (!mixins.isEmpty()) {
result.add(new CPCategoryStructureItem.Mixins(mixins, context));