You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by lk...@apache.org on 2021/05/12 00:20:47 UTC
[netbeans] branch master updated: [NETBEANS-5668] Fix slipping
-s in the Project Problem Dialog
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 99e1b1c [NETBEANS-5668] Fix slipping <br/>-s in the Project Problem Dialog
99e1b1c is described below
commit 99e1b1ca22b744e88c85bd0989cce112d61ae0e5
Author: Laszlo Kishalmi <la...@gmail.com>
AuthorDate: Mon May 10 09:21:59 2021 -0700
[NETBEANS-5668] Fix slipping <br/>-s in the Project Problem Dialog
---
.../gradle/tooling/NetBeansToolingPlugin.java | 14 ++++++--
.../gradle/GradleProjectErrorNotifications.java | 37 +++++++++++++++------
.../gradle/loaders/LegacyProjectLoader.java | 38 ++++++++++++----------
3 files changed, 60 insertions(+), 29 deletions(-)
diff --git a/extide/gradle/netbeans-gradle-tooling/src/main/groovy/org/netbeans/modules/gradle/tooling/NetBeansToolingPlugin.java b/extide/gradle/netbeans-gradle-tooling/src/main/groovy/org/netbeans/modules/gradle/tooling/NetBeansToolingPlugin.java
index 15e8459..9b1da37 100644
--- a/extide/gradle/netbeans-gradle-tooling/src/main/groovy/org/netbeans/modules/gradle/tooling/NetBeansToolingPlugin.java
+++ b/extide/gradle/netbeans-gradle-tooling/src/main/groovy/org/netbeans/modules/gradle/tooling/NetBeansToolingPlugin.java
@@ -30,6 +30,7 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import javax.inject.Inject;
+import org.gradle.api.GradleException;
import org.gradle.api.Plugin;
import org.gradle.api.Project;
import org.gradle.tooling.provider.model.ToolingModelBuilder;
@@ -97,12 +98,21 @@ public class NetBeansToolingPlugin implements Plugin<Project> {
pw.println(ex.toString());
ex.printStackTrace(pw);
- BaseModel ret = new NbProjectInfoModel();
+ NbProjectInfoModel ret = new NbProjectInfoModel();
ret.setGradleException(sw.toString());
+
+ Throwable cause = ex;
+ while ((cause != null) || (cause.getCause() != cause)) {
+ if (cause instanceof GradleException) {
+ ret.noteProblem((GradleException) cause);
+ break;
+ }
+ cause = cause.getCause();
+ }
return ret;
}
}
-
+
}
}
diff --git a/extide/gradle/src/org/netbeans/modules/gradle/GradleProjectErrorNotifications.java b/extide/gradle/src/org/netbeans/modules/gradle/GradleProjectErrorNotifications.java
index 7ec2df5..d284d43 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/GradleProjectErrorNotifications.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/GradleProjectErrorNotifications.java
@@ -36,10 +36,10 @@ public class GradleProjectErrorNotifications {
public synchronized void openNotification(String title, String problem, String details) {
StringBuilder sb = new StringBuilder(details.length());
- sb.append("<html>");
- String[] lines = details.split("\n");
+ sb.append("<html>"); //NOI18N
+ String[] lines = details.split("\n"); //NOI18N
for (String line : lines) {
- sb.append(line).append("<br/>");
+ sb.append(line).append("<br/>"); //NOI18N
}
Notification ntn = NotificationDisplayer.getDefault().notify(title,
NbGradleProject.getWarningIcon(),
@@ -59,22 +59,39 @@ public class GradleProjectErrorNotifications {
public static String bulletedList(Collection<? extends Object> elements) {
StringBuilder sb = new StringBuilder();
- sb.append("<ul>");
+ sb.append("<ul>"); //NOI18N
for (Object element : elements) {
- sb.append("<li>");
- String[] lines = element.toString().split("\n");
+ sb.append("<li>"); //NOI18N
+ String[] lines = element.toString().split("\n"); //NOI18N
for (int i = 0; i < lines.length; i++) {
String line = lines[i];
- sb.append(line);
+ sb.append(lineWrap(line, 78));
if (i < lines.length - 1) {
- sb.append("<br/>");
+ sb.append("<br/>"); //NOI18N
}
}
- sb.append("</li>");
+ sb.append("</li>"); //NOI18N
}
- sb.append("</ul>");
+ sb.append("</ul>"); //NOI18N
return sb.toString();
}
+ private static String lineWrap(String line, int maxCol) {
+ StringBuilder sb = new StringBuilder(line.length());
+ String[] parts = line.split(" "); //NOI18N
+ int col = 0;
+ String delim = ""; //NOI18N
+ for (String part : parts) {
+ if ((sb.length() > 0) && (col + part.length() > maxCol)) {
+ sb.append("<br/>").append(part); //NOI18N
+ col = part.length();
+ } else {
+ sb.append(delim).append(part);
+ col += delim.length() + part.length();
+ delim = " "; //NOI18N
+ }
+ }
+ return sb.toString();
+ }
}
diff --git a/extide/gradle/src/org/netbeans/modules/gradle/loaders/LegacyProjectLoader.java b/extide/gradle/src/org/netbeans/modules/gradle/loaders/LegacyProjectLoader.java
index 96e422a..6845c50 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/loaders/LegacyProjectLoader.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/loaders/LegacyProjectLoader.java
@@ -19,6 +19,8 @@
package org.netbeans.modules.gradle.loaders;
import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.atomic.AtomicInteger;
@@ -142,38 +144,40 @@ public class LegacyProjectLoader extends AbstractProjectLoader {
errors.clear();
info = retrieveProjectInfo(goOnline, pconn, cmd, token, pl);
+ if (!info.getProblems().isEmpty()) {
+ errors.openNotification(
+ TIT_LOAD_ISSUES(base.getProjectDir().getName()),
+ TIT_LOAD_ISSUES(base.getProjectDir().getName()),
+ GradleProjectErrorNotifications.bulletedList(info.getProblems()));
+ }
if (!info.hasException()) {
if (!info.getProblems().isEmpty()) {
// If we do not have exception, but seen some problems the we mark the quality as SIMPLE
quality = SIMPLE;
- errors.openNotification(
- TIT_LOAD_ISSUES(base.getProjectDir().getName()),
- TIT_LOAD_ISSUES(base.getProjectDir().getName()),
- GradleProjectErrorNotifications.bulletedList(info.getProblems()));
-
} else {
quality = ctx.aim;
}
} else {
- String problem = info.getGradleException();
- String[] lines = problem.split("\n");
- LOG.log(INFO, "Failed to retrieve project information for: {0}\nReason: {1}", new Object[] {base.getProjectDir(), problem}); //NOI18N
- errors.openNotification(TIT_LOAD_FAILED(base.getProjectDir().getName()), lines[0], problem);
- return ctx.previous.invalidate(problem);
+ if (info.getProblems().isEmpty()) {
+ String problem = info.getGradleException();
+ String[] lines = problem.split("\n");
+ LOG.log(INFO, "Failed to retrieve project information for: {0}\nReason: {1}", new Object[] {base.getProjectDir(), problem}); //NOI18N
+ errors.openNotification(TIT_LOAD_FAILED(base.getProjectDir().getName()), lines[0], problem);
+ return ctx.previous.invalidate(problem);
+ } else {
+ return ctx.previous.invalidate(info.getProblems().toArray(new String[0]));
+ }
}
} catch (GradleConnectionException | IllegalStateException ex) {
LOG.log(FINE, "Failed to retrieve project information for: " + base.getProjectDir(), ex);
- StringBuilder sb = new StringBuilder();
+ List<String> problems = new ArrayList<>();
Throwable th = ex;
- String separator = "";
while (th != null) {
- sb.insert(0, separator);
- sb.insert(0, th.getMessage());
+ problems.add(th.getMessage());
th = th.getCause();
- separator = "<br/>";
}
- errors.openNotification(TIT_LOAD_FAILED(base.getProjectDir()), ex.getMessage(), sb.toString());
- return ctx.previous.invalidate(sb.toString());
+ errors.openNotification(TIT_LOAD_FAILED(base.getProjectDir()), ex.getMessage(), GradleProjectErrorNotifications.bulletedList(problems));
+ return ctx.previous.invalidate(problems.toArray(new String[0]));
} finally {
loadedProjects.incrementAndGet();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists