Merge pull request #4491 from JakubValtar/error-check-toggle

Return of the error check toggle
This commit is contained in:
Ben Fry
2016-05-19 15:45:45 -04:00
3 changed files with 43 additions and 19 deletions
+15 -12
View File
@@ -65,7 +65,7 @@ public class PreferencesFrame {
ColorChooser selector;
// JCheckBox errorCheckerBox;
JCheckBox errorCheckerBox;
JCheckBox warningsCheckerBox;
JCheckBox codeCompletionBox;
JCheckBox importSuggestionsBox;
@@ -270,8 +270,11 @@ public class PreferencesFrame {
// [ ] Continuously check for errors - PDE X
// errorCheckerBox =
// new JCheckBox(Language.text("preferences.continuously_check"));
errorCheckerBox =
new JCheckBox(Language.text("preferences.continuously_check"));
errorCheckerBox.addItemListener(e -> {
warningsCheckerBox.setEnabled(errorCheckerBox.isSelected());
});
// [ ] Show Warnings - PDE X
@@ -407,9 +410,9 @@ public class PreferencesFrame {
.addComponent(presentColor, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addComponent(editorAntialiasBox)
.addComponent(inputMethodBox)
// .addGroup(layout.createSequentialGroup()
// .addComponent(errorCheckerBox)
// .addComponent(warningsCheckerBox))
.addGroup(layout.createSequentialGroup()
.addComponent(errorCheckerBox)
.addComponent(warningsCheckerBox))
.addComponent(warningsCheckerBox)
.addComponent(codeCompletionBox)
.addComponent(importSuggestionsBox)
@@ -465,10 +468,9 @@ public class PreferencesFrame {
.addComponent(presentColor))
.addComponent(editorAntialiasBox)
.addComponent(inputMethodBox)
// .addGroup(layout.createParallelGroup()
// .addComponent(errorCheckerBox)
// .addComponent(warningsCheckerBox))
.addComponent(warningsCheckerBox)
.addGroup(layout.createParallelGroup()
.addComponent(errorCheckerBox)
.addComponent(warningsCheckerBox))
.addComponent(codeCompletionBox)
.addComponent(importSuggestionsBox)
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.CENTER)
@@ -655,7 +657,7 @@ public class PreferencesFrame {
autoAssociateBox.isSelected());
}
// Preferences.setBoolean("pdex.errorCheckEnabled", errorCheckerBox.isSelected());
Preferences.setBoolean("pdex.errorCheckEnabled", errorCheckerBox.isSelected());
Preferences.setBoolean("pdex.warningsEnabled", warningsCheckerBox.isSelected());
Preferences.setBoolean("pdex.completion", codeCompletionBox.isSelected());
// Preferences.setBoolean("pdex.completion.trigger", codeCompletionTriggerBox.isSelected());
@@ -670,8 +672,9 @@ public class PreferencesFrame {
public void showFrame() {
editorAntialiasBox.setSelected(Preferences.getBoolean("editor.smooth")); //$NON-NLS-1$
inputMethodBox.setSelected(Preferences.getBoolean("editor.input_method_support")); //$NON-NLS-1$
// errorCheckerBox.setSelected(Preferences.getBoolean("pdex.errorCheckEnabled"));
errorCheckerBox.setSelected(Preferences.getBoolean("pdex.errorCheckEnabled"));
warningsCheckerBox.setSelected(Preferences.getBoolean("pdex.warningsEnabled"));
warningsCheckerBox.setEnabled(errorCheckerBox.isSelected());
codeCompletionBox.setSelected(Preferences.getBoolean("pdex.completion"));
//codeCompletionTriggerBox.setSelected(Preferences.getBoolean("pdex.completion.trigger"));
//codeCompletionTriggerBox.setEnabled(codeCompletionBox.isSelected());
+6 -6
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)
+22 -1
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();