Return of the error check toggle

Show Warnings now gets greyed out if check is not enabled
This commit is contained in:
Jakub Valtar
2016-05-19 19:09:55 +02:00
parent b094175c69
commit b9c449c115
3 changed files with 43 additions and 19 deletions

View File

@@ -306,7 +306,7 @@ public class JavaMode extends Mode {
// }
// static public volatile boolean errorCheckEnabled = true;
static public volatile boolean errorCheckEnabled = true;
static public volatile boolean warningsEnabled = true;
static public volatile boolean codeCompletionsEnabled = true;
static public volatile boolean debugOutputEnabled = false;
@@ -325,7 +325,7 @@ public class JavaMode extends Mode {
*/
volatile public static int codeCompletionTriggerLength = 1;
// static public final String prefErrorCheck = "pdex.errorCheckEnabled";
static public final String prefErrorCheck = "pdex.errorCheckEnabled";
static public final String prefWarnings = "pdex.warningsEnabled";
static public final String prefDebugOP = "pdex.dbgOutput";
static public final String prefErrorLogs = "pdex.writeErrorLogs";
@@ -351,7 +351,7 @@ public class JavaMode extends Mode {
public void loadPreferences() {
Messages.log("Load PDEX prefs");
ensurePrefsExist();
// errorCheckEnabled = Preferences.getBoolean(prefErrorCheck);
errorCheckEnabled = Preferences.getBoolean(prefErrorCheck);
warningsEnabled = Preferences.getBoolean(prefWarnings);
codeCompletionsEnabled = Preferences.getBoolean(COMPLETION_PREF);
// DEBUG = Preferences.getBoolean(prefDebugOP);
@@ -370,7 +370,7 @@ public class JavaMode extends Mode {
public void savePreferences() {
Messages.log("Saving PDEX prefs");
// Preferences.setBoolean(prefErrorCheck, errorCheckEnabled);
Preferences.setBoolean(prefErrorCheck, errorCheckEnabled);
Preferences.setBoolean(prefWarnings, warningsEnabled);
Preferences.setBoolean(COMPLETION_PREF, codeCompletionsEnabled);
// Preferences.setBoolean(prefDebugOP, DEBUG);
@@ -429,8 +429,8 @@ public class JavaMode extends Mode {
public void ensurePrefsExist() {
//TODO: Need to do a better job of managing prefs. Think lists.
// if (Preferences.get(prefErrorCheck) == null)
// Preferences.setBoolean(prefErrorCheck, errorCheckEnabled);
if (Preferences.get(prefErrorCheck) == null)
Preferences.setBoolean(prefErrorCheck, errorCheckEnabled);
if (Preferences.get(prefWarnings) == null)
Preferences.setBoolean(prefWarnings, warningsEnabled);
if (Preferences.get(COMPLETION_PREF) == null)

View File

@@ -152,6 +152,7 @@ public class PDEX {
public void preferencesChanged() {
errorChecker.preferencesChanged();
sketchChanged();
}
@@ -1026,16 +1027,22 @@ public class PDEX {
private ScheduledExecutorService scheduler;
private volatile ScheduledFuture<?> scheduledUiUpdate = null;
private volatile long nextUiUpdate = 0;
private volatile boolean enabled = true;
private final Consumer<PreprocessedSketch> errorHandlerListener = this::handleSketchProblems;
private JavaEditor editor;
private PreprocessingService pps;
public ErrorChecker(JavaEditor editor, PreprocessingService pps) {
this.editor = editor;
this.pps = pps;
scheduler = Executors.newSingleThreadScheduledExecutor();
pps.registerListener(errorHandlerListener);
this.enabled = JavaMode.errorCheckEnabled;
if (enabled) {
pps.registerListener(errorHandlerListener);
}
}
@@ -1044,6 +1051,20 @@ public class PDEX {
}
public void preferencesChanged() {
if (enabled != JavaMode.errorCheckEnabled) {
enabled = JavaMode.errorCheckEnabled;
if (enabled) {
pps.registerListener(errorHandlerListener);
} else {
pps.unregisterListener(errorHandlerListener);
editor.setProblemList(Collections.emptyList());
nextUiUpdate = 0;
}
}
}
public void dispose() {
if (scheduler != null) {
scheduler.shutdownNow();