From d16c0a5072cbc810f38b2defbfe6252f0f1d4d8f Mon Sep 17 00:00:00 2001 From: Jakub Valtar Date: Fri, 6 May 2016 19:33:25 +0200 Subject: [PATCH] PDEX: add some error messages --- java/src/processing/mode/java/JavaEditor.java | 6 +++++- java/src/processing/mode/java/pdex/PDEX.java | 14 ++++++++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/java/src/processing/mode/java/JavaEditor.java b/java/src/processing/mode/java/JavaEditor.java index 7ec79c433..a585d3802 100644 --- a/java/src/processing/mode/java/JavaEditor.java +++ b/java/src/processing/mode/java/JavaEditor.java @@ -2379,7 +2379,11 @@ public class JavaEditor extends Editor { public void statusMessage(String message, int type) { - status.message(message, type); + if (EventQueue.isDispatchThread()) { + status.message(message, type); + } else { + EventQueue.invokeLater(() -> statusMessage(message, type)); + } } diff --git a/java/src/processing/mode/java/pdex/PDEX.java b/java/src/processing/mode/java/pdex/PDEX.java index 6f52fe5de..ae3248003 100644 --- a/java/src/processing/mode/java/pdex/PDEX.java +++ b/java/src/processing/mode/java/pdex/PDEX.java @@ -219,7 +219,6 @@ public class PDEX { window.addComponentListener(new ComponentAdapter() { @Override public void componentHidden(ComponentEvent e) { - // Delete references to ASTNodes so that whole AST can be GC'd binding = null; tree.setModel(null); pps.unregisterListener(reloadListener); @@ -267,13 +266,20 @@ public class PDEX { // Find the node SimpleName name = ASTUtils.getSimpleNameAt(ps.compilationUnit, startJavaOffset, stopJavaOffset); - if (name == null) return; + if (name == null) { + editor.statusMessage("Cannot find any name under cursor", EditorStatus.ERROR); + return; + } // Find binding IBinding binding = ASTUtils.resolveBinding(name); - if (binding == null) return; this.binding = binding; + if (binding == null) { + editor.statusMessage("Cannot find usages, try to fix errors in your code first", + EditorStatus.ERROR); + return; + } findUsageAndUpdateTree(ps, binding); } @@ -555,7 +561,7 @@ public class PDEX { // Thread: worker void handleRename(PreprocessedSketch ps, int tabIndex, int startTabOffset, int stopTabOffset) { if (ps.hasSyntaxErrors) { - editor.statusMessage("Can't perform action until syntax errors are fixed :(", + editor.statusMessage("Can't perform action until syntax errors are fixed", EditorStatus.WARNING); return; }