From 8be49dc5d078db7ff0316cc7d2a6c16d1a088d5d Mon Sep 17 00:00:00 2001 From: Jakub Valtar Date: Mon, 4 Apr 2016 22:31:11 +0200 Subject: [PATCH] Remove dependencies on Error Checker Service --- java/src/processing/mode/java/JavaEditor.java | 4 ++-- .../processing/mode/java/MarkerColumn.java | 1 - .../mode/java/pdex/ASTGenerator.java | 14 ++++++-------- .../mode/java/pdex/ErrorCheckerService.java | 15 ++++++--------- .../mode/java/pdex/SketchOutline.java | 19 +++++++++---------- .../processing/mode/java/pdex/TabOutline.java | 16 +++++++--------- .../mode/java/pdex/XQPreprocessor.java | 17 +++++++++-------- 7 files changed, 39 insertions(+), 47 deletions(-) diff --git a/java/src/processing/mode/java/JavaEditor.java b/java/src/processing/mode/java/JavaEditor.java index 32be87410..38af50642 100644 --- a/java/src/processing/mode/java/JavaEditor.java +++ b/java/src/processing/mode/java/JavaEditor.java @@ -1619,7 +1619,7 @@ public class JavaEditor extends Editor { item = Toolkit.newJMenuItem(Language.text("menu.debug.show_sketch_outline"), KeyEvent.VK_L); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - Base.log("Show Sketch Outline:"); + Messages.log("Show Sketch Outline:"); errorCheckerService.getASTGenerator().showSketchOutline(); } }); @@ -1628,7 +1628,7 @@ public class JavaEditor extends Editor { item = Toolkit.newJMenuItem(Language.text("menu.debug.show_tabs_list"), KeyEvent.VK_Y); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - Base.log("Show Tab Outline:"); + Messages.log("Show Tab Outline:"); errorCheckerService.getASTGenerator().showTabOutline(); } }); diff --git a/java/src/processing/mode/java/MarkerColumn.java b/java/src/processing/mode/java/MarkerColumn.java index fea97eb0c..3fb5bec7a 100644 --- a/java/src/processing/mode/java/MarkerColumn.java +++ b/java/src/processing/mode/java/MarkerColumn.java @@ -28,7 +28,6 @@ import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionAdapter; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import javax.swing.JPanel; diff --git a/java/src/processing/mode/java/pdex/ASTGenerator.java b/java/src/processing/mode/java/pdex/ASTGenerator.java index 8d6fb87b5..02995ae13 100644 --- a/java/src/processing/mode/java/pdex/ASTGenerator.java +++ b/java/src/processing/mode/java/pdex/ASTGenerator.java @@ -119,7 +119,7 @@ import com.google.classpath.RegExpResourceFilter; @SuppressWarnings({ "unchecked" }) public class ASTGenerator { protected final ErrorCheckerService errorCheckerService; - protected JavaEditor editor; + protected final JavaEditor editor; public DefaultMutableTreeNode codeTree = new DefaultMutableTreeNode(); protected JFrame frmASTView; @@ -139,9 +139,9 @@ public class ASTGenerator { protected JLabel lblRefactorOldName; - public ASTGenerator(ErrorCheckerService ecs) { + public ASTGenerator(JavaEditor editor, ErrorCheckerService ecs) { + this.editor = editor; this.errorCheckerService = ecs; - this.editor = ecs.getEditor(); setupGUI(); //addCompletionPopupListner(); addListeners(); @@ -809,7 +809,6 @@ public class ASTGenerator { */ public List preparePredictions(final String pdePhrase, final int line) { - ErrorCheckerService errorCheckerService = editor.getErrorChecker(); ASTNode astRootNode = (ASTNode) errorCheckerService.getLatestCU().types().get(0); // If the parsed code contains pde enhancements, take 'em out. @@ -1650,7 +1649,6 @@ public class ASTGenerator { int pdeLineNumber = lineNumber + errorCheckerService.mainClassOffset; // log("----getASTNodeAt---- CU State: " // + errorCheckerService.compilationUnitState); - editor = errorCheckerService.getEditor(); int codeIndex = editor.getSketch().getCodeIndex(editor.getCurrentTab()); if (codeIndex > 0) { for (int i = 0; i < codeIndex; i++) { @@ -2349,15 +2347,15 @@ public class ASTGenerator { public void showSketchOutline() { if (editor.hasJavaTabs()) return; - sketchOutline = new SketchOutline(codeTree, errorCheckerService); + sketchOutline = new SketchOutline(editor, codeTree); sketchOutline.show(); } - */ public void showTabOutline() { - new TabOutline(errorCheckerService).show(); + new TabOutline(editor).show(); } + */ public int javaCodeOffsetToLineStartOffset(int line, int jOffset){ diff --git a/java/src/processing/mode/java/pdex/ErrorCheckerService.java b/java/src/processing/mode/java/pdex/ErrorCheckerService.java index 45e79d7a3..2fff61bb6 100644 --- a/java/src/processing/mode/java/pdex/ErrorCheckerService.java +++ b/java/src/processing/mode/java/pdex/ErrorCheckerService.java @@ -176,10 +176,11 @@ public class ErrorCheckerService { public static final String IMPORT_REGEX = "(?:^|;)\\s*(import\\s+)((?:static\\s+)?\\S+)(\\s*;)"; - public ErrorCheckerService(JavaEditor debugEditor) { - this.editor = debugEditor; - xqpreproc = new XQPreprocessor(this); - astGenerator = new ASTGenerator(this); + + public ErrorCheckerService(JavaEditor editor) { + this.editor = editor; + xqpreproc = new XQPreprocessor(editor); + astGenerator = new ASTGenerator(editor, this); loadCompClass = true; } @@ -318,7 +319,7 @@ public class ErrorCheckerService { public void addListener(Document doc) { - doc.addDocumentListener(sketchChangedListener); + if (doc != null) doc.addDocumentListener(sketchChangedListener); } @@ -1516,10 +1517,6 @@ public class ErrorCheckerService { } - public JavaEditor getEditor() { - return editor; - } - public ArrayList getProgramImports() { return programImports; } diff --git a/java/src/processing/mode/java/pdex/SketchOutline.java b/java/src/processing/mode/java/pdex/SketchOutline.java index 77de4e5d1..e8c76aecf 100644 --- a/java/src/processing/mode/java/pdex/SketchOutline.java +++ b/java/src/processing/mode/java/pdex/SketchOutline.java @@ -61,21 +61,20 @@ import processing.mode.java.JavaEditor; public class SketchOutline { + protected final JavaEditor editor; + protected JFrame frmOutlineView; - protected ErrorCheckerService errorCheckerService; protected JScrollPane jsp; protected DefaultMutableTreeNode soNode, tempNode; protected final JTree soTree; protected JTextField searchField; - protected JavaEditor editor; protected boolean internalSelection = false; ImageIcon classIcon, fieldIcon, methodIcon; - public SketchOutline(DefaultMutableTreeNode codeTree, ErrorCheckerService ecs) { - errorCheckerService = ecs; - editor = ecs.getEditor(); + public SketchOutline(JavaEditor editor, DefaultMutableTreeNode codeTree) { + this.editor = editor; soNode = new DefaultMutableTreeNode(); generateSketchOutlineTree(soNode, codeTree); soNode = (DefaultMutableTreeNode) soNode.getChildAt(0); @@ -95,7 +94,7 @@ public class SketchOutline { frmOutlineView = new JFrame(); frmOutlineView.setAlwaysOnTop(true); frmOutlineView.setUndecorated(true); - Point tp = errorCheckerService.getEditor().getTextArea().getLocationOnScreen(); + Point tp = editor.getTextArea().getLocationOnScreen(); int minWidth = (int) (editor.getMinimumSize().width * 0.7f); int maxWidth = (int) (editor.getMinimumSize().width * 0.9f); @@ -130,10 +129,10 @@ public class SketchOutline { frmOutlineView.add(panelBottom); frmOutlineView.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); frmOutlineView.pack(); - frmOutlineView.setBounds(tp.x + errorCheckerService.getEditor().getTextArea().getWidth() - minWidth, tp.y, minWidth, + frmOutlineView.setBounds(tp.x + editor.getTextArea().getWidth() - minWidth, tp.y, minWidth, Math.min(editor.getTextArea().getHeight(), frmOutlineView.getHeight())); - frmOutlineView.setMinimumSize(new Dimension(minWidth, Math.min(errorCheckerService.getEditor().getTextArea().getHeight(), frmOutlineView.getHeight()))); - frmOutlineView.setLocation(tp.x + errorCheckerService.getEditor().getTextArea().getWidth()/2 - frmOutlineView.getWidth()/2, + frmOutlineView.setMinimumSize(new Dimension(minWidth, Math.min(editor.getTextArea().getHeight(), frmOutlineView.getHeight()))); + frmOutlineView.setLocation(tp.x + editor.getTextArea().getWidth()/2 - frmOutlineView.getWidth()/2, frmOutlineView.getY() + (editor.getTextArea().getHeight() - frmOutlineView.getHeight()) / 2); addListeners(); } @@ -221,7 +220,7 @@ public class SketchOutline { protected Object doInBackground() throws Exception { String text = searchField.getText().toLowerCase(); tempNode = new DefaultMutableTreeNode(); - filterTree(text, tempNode, soNode); + filterTree(text, tempNode, soNode); // TODO: is using soNode thread-safe? [jv] return null; } diff --git a/java/src/processing/mode/java/pdex/TabOutline.java b/java/src/processing/mode/java/pdex/TabOutline.java index ca57781a6..e521c697a 100644 --- a/java/src/processing/mode/java/pdex/TabOutline.java +++ b/java/src/processing/mode/java/pdex/TabOutline.java @@ -63,13 +63,11 @@ public class TabOutline { protected JTextField searchField; protected JLabel lblCaption; protected JavaEditor editor; - protected ErrorCheckerService errorCheckerService; protected boolean internalSelection = false; - public TabOutline(ErrorCheckerService ecs) { - errorCheckerService = ecs; - editor = ecs.getEditor(); + public TabOutline(JavaEditor editor) { + this.editor = editor; createGUI(); } @@ -78,7 +76,7 @@ public class TabOutline { frmOutlineView = new JFrame(); frmOutlineView.setAlwaysOnTop(true); frmOutlineView.setUndecorated(true); - Point tp = errorCheckerService.getEditor().getTextArea().getLocationOnScreen(); + Point tp = editor.getTextArea().getLocationOnScreen(); lblCaption = new JLabel("Tabs List (type to filter)"); int minWidth = estimateFrameWidth(); int maxWidth = (int) (editor.getMinimumSize().width * 0.9f); @@ -108,14 +106,14 @@ public class TabOutline { frmOutlineView.add(panelBottom); frmOutlineView.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); frmOutlineView.pack(); - frmOutlineView.setBounds(tp.x + errorCheckerService.getEditor().getTextArea().getWidth() - minWidth, + frmOutlineView.setBounds(tp.x + editor.getTextArea().getWidth() - minWidth, tp.y, minWidth, estimateFrameHeight()); frmOutlineView.setMinimumSize(new Dimension(minWidth, Math - .min(errorCheckerService.getEditor().getTextArea().getHeight(), + .min(editor.getTextArea().getHeight(), frmOutlineView.getHeight()))); - frmOutlineView.setLocation(tp.x + errorCheckerService.getEditor().getTextArea().getWidth()/2 - frmOutlineView.getWidth()/2, + frmOutlineView.setLocation(tp.x + editor.getTextArea().getWidth()/2 - frmOutlineView.getWidth()/2, frmOutlineView.getY() + (editor.getTextArea().getHeight() - frmOutlineView.getHeight()) / 2); DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer) tabTree.getCellRenderer(); renderer.setLeafIcon(null); @@ -202,7 +200,7 @@ public class TabOutline { protected Object doInBackground() throws Exception { String text = searchField.getText().toLowerCase(); tempNode = new DefaultMutableTreeNode(); - filterTree(text, tempNode, tabNode); + filterTree(text, tempNode, tabNode); // TODO: is using tabNode thread-safe? [jv] return null; } diff --git a/java/src/processing/mode/java/pdex/XQPreprocessor.java b/java/src/processing/mode/java/pdex/XQPreprocessor.java index 582c1d50c..e7f65f856 100644 --- a/java/src/processing/mode/java/pdex/XQPreprocessor.java +++ b/java/src/processing/mode/java/pdex/XQPreprocessor.java @@ -37,6 +37,7 @@ import org.eclipse.text.edits.TextEdit; import processing.app.Util; import processing.data.StringList; +import processing.mode.java.JavaEditor; import processing.mode.java.preproc.PdePreprocessor; @@ -47,17 +48,17 @@ import processing.mode.java.preproc.PdePreprocessor; public class XQPreprocessor { private ASTRewrite rewrite = null; private List extraImports; - private ErrorCheckerService ecs; + private final JavaEditor editor; private String[] coreImports; private String[] defaultImports; - public XQPreprocessor(ErrorCheckerService ecs) { - this.ecs = ecs; + public XQPreprocessor(JavaEditor editor) { + this.editor = editor; // get parameters from the main preproc // PdePreprocessor p = new PdePreprocessor(null); - PdePreprocessor p = ecs.editor.createPreprocessor(null); + PdePreprocessor p = editor.createPreprocessor(null); defaultImports = p.getDefaultImports(); coreImports = p.getCoreImports(); } @@ -105,16 +106,16 @@ public class XQPreprocessor { for (String imp : defaultImports) { imports.append("import " + imp + ";"); } - if (ecs.getEditor().getSketch().getCodeFolder().exists()) { + if (editor.getSketch().getCodeFolder().exists()) { StringList codeFolderPackages = null; - String codeFolderClassPath = Util.contentsToClassPath(ecs.getEditor().getSketch().getCodeFolder()); + String codeFolderClassPath = Util.contentsToClassPath(editor.getSketch().getCodeFolder()); codeFolderPackages = Util.packageListFromClassPath(codeFolderClassPath); if (codeFolderPackages != null) { - ecs.codeFolderImports.clear(); + editor.getErrorChecker().codeFolderImports.clear(); for (String item : codeFolderPackages) { // Messages.log("CF import " + item); imports.append("import " + item + ".*;"); - ecs.codeFolderImports.add(new ImportStatement("import " + item + ".*;",0,0)); + editor.getErrorChecker().codeFolderImports.add(new ImportStatement("import " + item + ".*;",0,0)); } } }