diff --git a/pdex/Todo, GSoC 2013.txt b/pdex/Todo, GSoC 2013.txt index a22e4c02f..94f0d757f 100644 --- a/pdex/Todo, GSoC 2013.txt +++ b/pdex/Todo, GSoC 2013.txt @@ -145,7 +145,8 @@ x boolean warningsEnabled - made it volatile General Stuff ============= -* Consult Ben on where to save preferences - main preferences.txt or custom one +x Consult Ben on where to save preferences - main preferences.txt or custom one. - Main prefs file +x Save preferences to main preference.txt x Hide breakpoint markers when Debugger isn't active x Ensure gutter mouse handler is taken care of when hiding Debugger breakpoint bar. x Ensure all editor windows are closed when editor is closed. diff --git a/pdex/src/processing/mode/experimental/ASTGenerator.java b/pdex/src/processing/mode/experimental/ASTGenerator.java index b0a47eb88..62b4e908a 100644 --- a/pdex/src/processing/mode/experimental/ASTGenerator.java +++ b/pdex/src/processing/mode/experimental/ASTGenerator.java @@ -156,7 +156,6 @@ public class ASTGenerator { //addCompletionPopupListner(); addListeners(); //loadJavaDoc(); - predictionsEnabled = new AtomicBoolean(true); } protected void setupGUI(){ diff --git a/pdex/src/processing/mode/experimental/DebugEditor.java b/pdex/src/processing/mode/experimental/DebugEditor.java index 23d42fae9..af738e75e 100755 --- a/pdex/src/processing/mode/experimental/DebugEditor.java +++ b/pdex/src/processing/mode/experimental/DebugEditor.java @@ -326,6 +326,7 @@ public class DebugEditor extends JavaEditor implements ActionListener { // Added temporarily to dump error log. TODO: Remove this later public void internalCloseRunner(){ + dmode.savePreferences(); if(ExperimentalMode.errorLogsEnabled) writeErrorsToFile(); super.internalCloseRunner(); } @@ -521,7 +522,6 @@ public class DebugEditor extends JavaEditor implements ActionListener { // XQMode menu items JCheckBoxMenuItem item; - final DebugEditor thisEditor = this; item = new JCheckBoxMenuItem("Error Checker Enabled"); item.setSelected(ExperimentalMode.errorCheckEnabled); item.addActionListener(new ActionListener() { @@ -529,23 +529,7 @@ public class DebugEditor extends JavaEditor implements ActionListener { @Override public void actionPerformed(ActionEvent e) { ExperimentalMode.errorCheckEnabled = ((JCheckBoxMenuItem) e.getSource()).isSelected(); - if (!((JCheckBoxMenuItem) e.getSource()).isSelected()) { - // unticked Menu Item - errorCheckerService.pauseThread(); - System.out.println(thisEditor.getSketch().getName() - + " - Error Checker paused."); - errorBar.errorPoints.clear(); - errorCheckerService.problemsList.clear(); - errorCheckerService.updateErrorTable(); - errorCheckerService.updateEditorStatus(); - getTextArea().repaint(); - errorBar.repaint(); - } else { - errorCheckerService.resumeThread(); - System.out.println(thisEditor.getSketch().getName() - + " - Error Checker resumed."); - errorCheckerService.runManualErrorCheck(); - } + errorCheckerService.handleErrorCheckingToggle(); } }); debugMenu.add(item); @@ -582,7 +566,7 @@ public class DebugEditor extends JavaEditor implements ActionListener { debugMenu.add(showWarnings); completionsEnabled = new JCheckBoxMenuItem("Code Completion Enabled"); - completionsEnabled.setSelected(true); + completionsEnabled.setSelected(ExperimentalMode.codeCompletionsEnabled); completionsEnabled.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { @@ -612,7 +596,8 @@ public class DebugEditor extends JavaEditor implements ActionListener { writeErrorLog.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - ExperimentalMode.errorLogsEnabled = !ExperimentalMode.errorLogsEnabled; + ExperimentalMode.errorLogsEnabled = ((JCheckBoxMenuItem) e + .getSource()).isSelected(); } }); debugMenu.add(writeErrorLog); diff --git a/pdex/src/processing/mode/experimental/ErrorCheckerService.java b/pdex/src/processing/mode/experimental/ErrorCheckerService.java index 7ca5ba89f..34a0e302f 100644 --- a/pdex/src/processing/mode/experimental/ErrorCheckerService.java +++ b/pdex/src/processing/mode/experimental/ErrorCheckerService.java @@ -19,6 +19,7 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.regex.Matcher; import java.util.regex.Pattern; +import javax.swing.JCheckBoxMenuItem; import javax.swing.table.DefaultTableModel; import org.eclipse.jdt.core.JavaCore; @@ -262,6 +263,7 @@ public class ErrorCheckerService implements Runnable{ // Completion wouldn't be complete, but it'd be still something // better than nothing astGenerator.buildAST(cu); + handleErrorCheckingToggle(); while (!stopThread.get()) { try { // Take a nap. @@ -1399,6 +1401,26 @@ public class ErrorCheckerService implements Runnable{ return new String(p2, 0, index); } + public void handleErrorCheckingToggle(){ + if (!ExperimentalMode.errorCheckEnabled) { + // unticked Menu Item + pauseThread(); + log(editor.getSketch().getName() + + " - Error Checker paused."); + editor.errorBar.errorPoints.clear(); + problemsList.clear(); + updateErrorTable(); + updateEditorStatus(); + editor.getTextArea().repaint(); + editor.errorBar.repaint(); + } else { + resumeThread(); + log(editor.getSketch().getName() + + " - Error Checker resumed."); + runManualErrorCheck(); + } + } + /** * Stops the Error Checker Service thread */ diff --git a/pdex/src/processing/mode/experimental/ExperimentalMode.java b/pdex/src/processing/mode/experimental/ExperimentalMode.java index b530782fb..9417f94c0 100755 --- a/pdex/src/processing/mode/experimental/ExperimentalMode.java +++ b/pdex/src/processing/mode/experimental/ExperimentalMode.java @@ -100,6 +100,7 @@ public class ExperimentalMode extends JavaMode { // String titleAndVersion = p.getImplementationTitle() + " (v" + p.getImplementationVersion() + ")"; // //log(titleAndVersion); // Logger.getLogger(ExperimentalMode.class.getName()).log(Level.INFO, titleAndVersion); + loadPreferences(); loadIcons(); } @@ -125,19 +126,21 @@ public class ExperimentalMode extends JavaMode { prefDebugOP = "pdex.dbgOutput", prefErrorLogs = "pdex.writeErrorLogs"; public void loadPreferences(){ + log("Load PDEX prefs"); ensurePrefsExist(); errorCheckEnabled = Preferences.getBoolean(prefErrorCheck); warningsEnabled = Preferences.getBoolean(prefWarnings); codeCompletionsEnabled = Preferences.getBoolean(prefCodeCompletionEnabled); - debugOutputEnabled = Preferences.getBoolean(prefDebugOP); - errorCheckEnabled = Preferences.getBoolean(prefErrorLogs); + DEBUG = Preferences.getBoolean(prefDebugOP); + errorLogsEnabled = Preferences.getBoolean(prefErrorLogs); } public void savePreferences(){ + log("Saving PDEX prefs"); Preferences.setBoolean(prefErrorCheck, errorCheckEnabled); Preferences.setBoolean(prefWarnings, warningsEnabled); Preferences.setBoolean(prefCodeCompletionEnabled, codeCompletionsEnabled); - Preferences.setBoolean(prefDebugOP, debugOutputEnabled); + Preferences.setBoolean(prefDebugOP, DEBUG); Preferences.setBoolean(prefErrorLogs,errorLogsEnabled); } @@ -149,7 +152,7 @@ public class ExperimentalMode extends JavaMode { if(Preferences.get(prefCodeCompletionEnabled) == null) Preferences.setBoolean(prefCodeCompletionEnabled,codeCompletionsEnabled); if(Preferences.get(prefDebugOP) == null) - Preferences.setBoolean(prefDebugOP,debugOutputEnabled); + Preferences.setBoolean(prefDebugOP,DEBUG); if(Preferences.get(prefErrorLogs) == null) Preferences.setBoolean(prefErrorLogs,errorLogsEnabled); } diff --git a/pdex/src/processing/mode/experimental/TextArea.java b/pdex/src/processing/mode/experimental/TextArea.java index 4a083e60c..beb084683 100644 --- a/pdex/src/processing/mode/experimental/TextArea.java +++ b/pdex/src/processing/mode/experimental/TextArea.java @@ -185,6 +185,7 @@ public class TextArea extends JEditTextArea { protected Object doInBackground() throws Exception { errorCheckerService.runManualErrorCheck(); // Provide completions only if it's enabled + if(ExperimentalMode.codeCompletionsEnabled) log(" Typing: " + fetchPhrase(evt2) + " " + (evt2.getKeyChar() == KeyEvent.VK_ENTER)); return null;