# This patch file was generated by NetBeans IDE # Following Index: paths are relative to: C:\Users\mkleint\src\core-main # This patch can be applied using context Tools: Patch action on respective folder. # It uses platform neutral UTF-8 encoding and \n newlines. # Above lines and this line are ignored by the patching process. Index: projectuiapi/apichanges.xml --- projectuiapi/apichanges.xml +++ projectuiapi/apichanges.xml @@ -108,6 +108,24 @@ + + + Allow creating ProjectProblemsProvider.ProjectProblem without a ProjectProblemResolver + + + + + +

+ ProjectProblemsProvider.ProjectProblem has so far required a ProjectProblemResolver effectively + making all problems resolvable, however a few places emerged where an automated resolution is not at hand and still we want to report the + error/warning. 2 new factory methods introduced. +

+
+ + +
+ Moved CustomizerProvider2 from java.api.common Index: projectuiapi/nbproject/project.properties --- projectuiapi/nbproject/project.properties +++ projectuiapi/nbproject/project.properties @@ -42,7 +42,7 @@ javac.compilerargs=-Xlint -Xlint:-serial javac.source=1.6 -spec.version.base=1.73.0 +spec.version.base=1.74.0 is.autoload=true javadoc.arch=${basedir}/arch.xml javadoc.apichanges=${basedir}/apichanges.xml Index: projectuiapi/src/org/netbeans/spi/project/ui/ProjectProblemsProvider.java --- projectuiapi/src/org/netbeans/spi/project/ui/ProjectProblemsProvider.java +++ projectuiapi/src/org/netbeans/spi/project/ui/ProjectProblemsProvider.java @@ -44,6 +44,7 @@ import java.beans.PropertyChangeListener; import java.util.Collection; import java.util.concurrent.Future; +import java.util.concurrent.FutureTask; import org.netbeans.api.annotations.common.CheckForNull; import org.netbeans.api.annotations.common.NonNull; import org.netbeans.api.annotations.common.NullAllowed; @@ -212,11 +213,10 @@ @NonNull final Severity severity, @NonNull final String displayName, @NonNull final String description, - @NonNull final ProjectProblemResolver resolver) { + @NullAllowed final ProjectProblemResolver resolver) { Parameters.notNull("severity", severity); //NOI18N Parameters.notNull("displayName", displayName); //NOI18N Parameters.notNull("description", description); //NOI18N - Parameters.notNull("resolver", resolver); //NOI18N this.severity = severity; this.displayName = displayName; this.description = description; @@ -253,6 +253,15 @@ } /** + * Is the problem resolvable? + * @return + * @since 1.74 + */ + public boolean isResolvable() { + return resolver != null; + } + + /** * Resolves the problem. * Called by the Event Dispatch Thread. * When the resolution needs to be done by a background thread, eg. downloading @@ -261,6 +270,14 @@ * @return the {@link Future} holding the problem resolution status. */ public Future resolve() { + if (resolver == null) { + return new FutureTask(new Runnable() { + @Override + public void run() { + //noop + } + }, Result.create(Status.UNRESOLVED)); + } return resolver.resolve(); } @@ -278,7 +295,7 @@ final ProjectProblem otherProblem = (ProjectProblem) other; return displayName.equals(otherProblem.displayName) && description.equals(otherProblem.description) && - resolver.equals(otherProblem.resolver); + (resolver != null ? resolver.equals(otherProblem.resolver) : otherProblem.resolver == null); } /** @@ -289,7 +306,7 @@ int result = 17; result = 31 * result + displayName.hashCode(); result = 31 * result + description.hashCode(); - result = 31 * result + resolver.hashCode(); + result = 31 * result + (resolver != null ? resolver.hashCode() : 0); return result; } @@ -321,6 +338,20 @@ } /** + * Creates a new unresolvable instance of the {@link ProjectProblem} with error {@link Severity}. + * @param displayName the project problem display name. + * @param description the project problem description. + * @return a new instance of {@link ProjectProblem} + * @since 1.74 + */ + @NonNull + public static ProjectProblem createError( + @NonNull final String displayName, + @NonNull final String description) { + return new ProjectProblem(Severity.ERROR, displayName, description, null); + } + + /** * Creates a new instance of the {@link ProjectProblem} with warning {@link Severity}. * @param displayName the project problem display name. * @param description the project problem description. @@ -335,6 +366,20 @@ return new ProjectProblem(Severity.WARNING, displayName,description,resolver); } + /** + * Creates a new unresolvable instance of the {@link ProjectProblem} with warning {@link Severity}. + * @param displayName the project problem display name. + * @param description the project problem description. + * @return a new instance of {@link ProjectProblem} + * @since 1.74 + */ + @NonNull + public static ProjectProblem createWarning( + @NonNull final String displayName, + @NonNull final String description) { + return new ProjectProblem(Severity.WARNING, displayName, description, null); } } + +}