Remove dependencies on Error Checker Service

This commit is contained in:
Jakub Valtar
2016-04-04 22:31:11 +02:00
parent 347d2d8cec
commit 8be49dc5d0
7 changed files with 39 additions and 47 deletions

View File

@@ -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();
}
});

View File

@@ -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;

View File

@@ -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<CompletionCandidate> 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){

View File

@@ -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<ImportStatement> getProgramImports() {
return programImports;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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<ImportStatement> 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));
}
}
}