Skip to content

Commit db4878b

Browse files
committed
Return of the error check toggle
Show Warnings now gets greyed out if check is not enabled
1 parent 803365d commit db4878b

File tree

3 files changed

+43
-19
lines changed

3 files changed

+43
-19
lines changed

app/src/processing/app/ui/PreferencesFrame.java

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ public class PreferencesFrame {
6565

6666
ColorChooser selector;
6767

68-
// JCheckBox errorCheckerBox;
68+
JCheckBox errorCheckerBox;
6969
JCheckBox warningsCheckerBox;
7070
JCheckBox codeCompletionBox;
7171
JCheckBox importSuggestionsBox;
@@ -270,8 +270,11 @@ public void mouseClicked(MouseEvent e) {
270270

271271
// [ ] Continuously check for errors - PDE X
272272

273-
// errorCheckerBox =
274-
// new JCheckBox(Language.text("preferences.continuously_check"));
273+
errorCheckerBox =
274+
new JCheckBox(Language.text("preferences.continuously_check"));
275+
errorCheckerBox.addItemListener(e -> {
276+
warningsCheckerBox.setEnabled(errorCheckerBox.isSelected());
277+
});
275278

276279

277280
// [ ] Show Warnings - PDE X
@@ -407,9 +410,9 @@ public void actionPerformed(ActionEvent e) {
407410
.addComponent(presentColor, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
408411
.addComponent(editorAntialiasBox)
409412
.addComponent(inputMethodBox)
410-
// .addGroup(layout.createSequentialGroup()
411-
// .addComponent(errorCheckerBox)
412-
// .addComponent(warningsCheckerBox))
413+
.addGroup(layout.createSequentialGroup()
414+
.addComponent(errorCheckerBox)
415+
.addComponent(warningsCheckerBox))
413416
.addComponent(warningsCheckerBox)
414417
.addComponent(codeCompletionBox)
415418
.addComponent(importSuggestionsBox)
@@ -465,10 +468,9 @@ public void actionPerformed(ActionEvent e) {
465468
.addComponent(presentColor))
466469
.addComponent(editorAntialiasBox)
467470
.addComponent(inputMethodBox)
468-
// .addGroup(layout.createParallelGroup()
469-
// .addComponent(errorCheckerBox)
470-
// .addComponent(warningsCheckerBox))
471-
.addComponent(warningsCheckerBox)
471+
.addGroup(layout.createParallelGroup()
472+
.addComponent(errorCheckerBox)
473+
.addComponent(warningsCheckerBox))
472474
.addComponent(codeCompletionBox)
473475
.addComponent(importSuggestionsBox)
474476
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.CENTER)
@@ -655,7 +657,7 @@ protected void applyFrame() {
655657
autoAssociateBox.isSelected());
656658
}
657659

658-
// Preferences.setBoolean("pdex.errorCheckEnabled", errorCheckerBox.isSelected());
660+
Preferences.setBoolean("pdex.errorCheckEnabled", errorCheckerBox.isSelected());
659661
Preferences.setBoolean("pdex.warningsEnabled", warningsCheckerBox.isSelected());
660662
Preferences.setBoolean("pdex.completion", codeCompletionBox.isSelected());
661663
// Preferences.setBoolean("pdex.completion.trigger", codeCompletionTriggerBox.isSelected());
@@ -670,8 +672,9 @@ protected void applyFrame() {
670672
public void showFrame() {
671673
editorAntialiasBox.setSelected(Preferences.getBoolean("editor.smooth")); //$NON-NLS-1$
672674
inputMethodBox.setSelected(Preferences.getBoolean("editor.input_method_support")); //$NON-NLS-1$
673-
// errorCheckerBox.setSelected(Preferences.getBoolean("pdex.errorCheckEnabled"));
675+
errorCheckerBox.setSelected(Preferences.getBoolean("pdex.errorCheckEnabled"));
674676
warningsCheckerBox.setSelected(Preferences.getBoolean("pdex.warningsEnabled"));
677+
warningsCheckerBox.setEnabled(errorCheckerBox.isSelected());
675678
codeCompletionBox.setSelected(Preferences.getBoolean("pdex.completion"));
676679
//codeCompletionTriggerBox.setSelected(Preferences.getBoolean("pdex.completion.trigger"));
677680
//codeCompletionTriggerBox.setEnabled(codeCompletionBox.isSelected());

java/src/processing/mode/java/JavaMode.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,7 @@ void initLogger() {
306306
// }
307307

308308

309-
// static public volatile boolean errorCheckEnabled = true;
309+
static public volatile boolean errorCheckEnabled = true;
310310
static public volatile boolean warningsEnabled = true;
311311
static public volatile boolean codeCompletionsEnabled = true;
312312
static public volatile boolean debugOutputEnabled = false;
@@ -325,7 +325,7 @@ void initLogger() {
325325
*/
326326
volatile public static int codeCompletionTriggerLength = 1;
327327

328-
// static public final String prefErrorCheck = "pdex.errorCheckEnabled";
328+
static public final String prefErrorCheck = "pdex.errorCheckEnabled";
329329
static public final String prefWarnings = "pdex.warningsEnabled";
330330
static public final String prefDebugOP = "pdex.dbgOutput";
331331
static public final String prefErrorLogs = "pdex.writeErrorLogs";
@@ -351,7 +351,7 @@ void initLogger() {
351351
public void loadPreferences() {
352352
Messages.log("Load PDEX prefs");
353353
ensurePrefsExist();
354-
// errorCheckEnabled = Preferences.getBoolean(prefErrorCheck);
354+
errorCheckEnabled = Preferences.getBoolean(prefErrorCheck);
355355
warningsEnabled = Preferences.getBoolean(prefWarnings);
356356
codeCompletionsEnabled = Preferences.getBoolean(COMPLETION_PREF);
357357
// DEBUG = Preferences.getBoolean(prefDebugOP);
@@ -370,7 +370,7 @@ public void loadPreferences() {
370370

371371
public void savePreferences() {
372372
Messages.log("Saving PDEX prefs");
373-
// Preferences.setBoolean(prefErrorCheck, errorCheckEnabled);
373+
Preferences.setBoolean(prefErrorCheck, errorCheckEnabled);
374374
Preferences.setBoolean(prefWarnings, warningsEnabled);
375375
Preferences.setBoolean(COMPLETION_PREF, codeCompletionsEnabled);
376376
// Preferences.setBoolean(prefDebugOP, DEBUG);
@@ -429,8 +429,8 @@ public void loadSuggestionsMap() {
429429

430430
public void ensurePrefsExist() {
431431
//TODO: Need to do a better job of managing prefs. Think lists.
432-
// if (Preferences.get(prefErrorCheck) == null)
433-
// Preferences.setBoolean(prefErrorCheck, errorCheckEnabled);
432+
if (Preferences.get(prefErrorCheck) == null)
433+
Preferences.setBoolean(prefErrorCheck, errorCheckEnabled);
434434
if (Preferences.get(prefWarnings) == null)
435435
Preferences.setBoolean(prefWarnings, warningsEnabled);
436436
if (Preferences.get(COMPLETION_PREF) == null)

java/src/processing/mode/java/pdex/PDEX.java

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ public void sketchChanged() {
152152

153153

154154
public void preferencesChanged() {
155+
errorChecker.preferencesChanged();
155156
sketchChanged();
156157
}
157158

@@ -1026,16 +1027,22 @@ private static class ErrorChecker {
10261027
private ScheduledExecutorService scheduler;
10271028
private volatile ScheduledFuture<?> scheduledUiUpdate = null;
10281029
private volatile long nextUiUpdate = 0;
1030+
private volatile boolean enabled = true;
10291031

10301032
private final Consumer<PreprocessedSketch> errorHandlerListener = this::handleSketchProblems;
10311033

10321034
private JavaEditor editor;
1035+
private PreprocessingService pps;
10331036

10341037

10351038
public ErrorChecker(JavaEditor editor, PreprocessingService pps) {
10361039
this.editor = editor;
1040+
this.pps = pps;
10371041
scheduler = Executors.newSingleThreadScheduledExecutor();
1038-
pps.registerListener(errorHandlerListener);
1042+
this.enabled = JavaMode.errorCheckEnabled;
1043+
if (enabled) {
1044+
pps.registerListener(errorHandlerListener);
1045+
}
10391046
}
10401047

10411048

@@ -1044,6 +1051,20 @@ public void notifySketchChanged() {
10441051
}
10451052

10461053

1054+
public void preferencesChanged() {
1055+
if (enabled != JavaMode.errorCheckEnabled) {
1056+
enabled = JavaMode.errorCheckEnabled;
1057+
if (enabled) {
1058+
pps.registerListener(errorHandlerListener);
1059+
} else {
1060+
pps.unregisterListener(errorHandlerListener);
1061+
editor.setProblemList(Collections.emptyList());
1062+
nextUiUpdate = 0;
1063+
}
1064+
}
1065+
}
1066+
1067+
10471068
public void dispose() {
10481069
if (scheduler != null) {
10491070
scheduler.shutdownNow();

0 commit comments

Comments
 (0)