From 79a36cc7cb6815a18d92549d2470cf4714525eb8 Mon Sep 17 00:00:00 2001 From: Jakub Valtar Date: Tue, 29 Sep 2015 18:02:52 -0400 Subject: [PATCH] Update status error/warning when changing the line --- app/src/processing/app/ui/Editor.java | 8 ++++++++ app/src/processing/app/ui/EditorStatus.java | 13 ++++++++++--- java/src/processing/mode/java/JavaEditor.java | 6 ++++++ .../mode/java/pdex/ErrorCheckerService.java | 11 ++++++++--- 4 files changed, 32 insertions(+), 6 deletions(-) diff --git a/app/src/processing/app/ui/Editor.java b/app/src/processing/app/ui/Editor.java index dddd75ba1..048e0d22e 100644 --- a/app/src/processing/app/ui/Editor.java +++ b/app/src/processing/app/ui/Editor.java @@ -2789,6 +2789,14 @@ public abstract class Editor extends JFrame implements RunnerListener { } + /** + * Returns the current notice message in the editor status bar. + */ + public int getStatusMode() { + return status.mode; + } + + // /** // * Returns the current mode of the editor status bar: NOTICE, ERR or EDIT. // */ diff --git a/app/src/processing/app/ui/EditorStatus.java b/app/src/processing/app/ui/EditorStatus.java index a0daf21ef..60d884f4a 100644 --- a/app/src/processing/app/ui/EditorStatus.java +++ b/app/src/processing/app/ui/EditorStatus.java @@ -50,8 +50,9 @@ public class EditorStatus extends BasicSplitPaneDivider { //JPanel { @SuppressWarnings("hiding") static public final int ERROR = 1; - static public final int COMPILER_ERROR = 1; // temporary - static public final int WARNING = 2; + static public final int CURSOR_LINE_ERROR = 2; + static public final int WARNING = 3; + static public final int CURSOR_LINE_WARNING = 4; static public final int NOTICE = 0; static final int YES = 1; @@ -121,19 +122,25 @@ public class EditorStatus extends BasicSplitPaneDivider { //JPanel { fgColor = new Color[] { mode.getColor("status.notice.fgcolor"), mode.getColor("status.error.fgcolor"), + mode.getColor("status.error.fgcolor"), + mode.getColor("status.warning.fgcolor"), mode.getColor("status.warning.fgcolor") }; bgColor = new Color[] { mode.getColor("status.notice.bgcolor"), mode.getColor("status.error.bgcolor"), + mode.getColor("status.error.bgcolor"), + mode.getColor("status.warning.bgcolor"), mode.getColor("status.warning.bgcolor") }; bgImage = new Image[] { mode.loadImage("/lib/status/notice.png"), mode.loadImage("/lib/status/error.png"), - mode.loadImage("/lib/status/edit.png") + mode.loadImage("/lib/status/error.png"), + mode.loadImage("/lib/status/warning.png"), + mode.loadImage("/lib/status/warning.png") }; font = mode.getFont("status.font"); diff --git a/java/src/processing/mode/java/JavaEditor.java b/java/src/processing/mode/java/JavaEditor.java index 1d15991ca..7448ec944 100644 --- a/java/src/processing/mode/java/JavaEditor.java +++ b/java/src/processing/mode/java/JavaEditor.java @@ -167,6 +167,12 @@ public class JavaEditor extends Editor { public void windowGainedFocus(WindowEvent e) { } }); + + textarea.addCaretListener(new CaretListener() { + public void caretUpdate(CaretEvent e) { + errorCheckerService.updateEditorStatus(); + } + }); } diff --git a/java/src/processing/mode/java/pdex/ErrorCheckerService.java b/java/src/processing/mode/java/pdex/ErrorCheckerService.java index 385effc92..6b54a639d 100644 --- a/java/src/processing/mode/java/pdex/ErrorCheckerService.java +++ b/java/src/processing/mode/java/pdex/ErrorCheckerService.java @@ -953,13 +953,18 @@ public class ErrorCheckerService { if (errorMarker != null) { if (errorMarker.getType() == LineMarker.WARNING) { editor.statusMessage(errorMarker.getProblem().getMessage(), - EditorStatus.WARNING); + EditorStatus.CURSOR_LINE_WARNING); } else { editor.statusMessage(errorMarker.getProblem().getMessage(), - EditorStatus.COMPILER_ERROR); + EditorStatus.CURSOR_LINE_ERROR); } } else { - editor.statusEmpty(); // No error, clear the status + switch (editor.getStatusMode()) { + case EditorStatus.CURSOR_LINE_ERROR: + case EditorStatus.CURSOR_LINE_WARNING: + editor.statusEmpty(); + break; + } } }