Skip to content

Commit e37b73a

Browse files
committed
ASTGen: break the revised stuff out into PDEX
1 parent ff98113 commit e37b73a

7 files changed

Lines changed: 1065 additions & 1030 deletions

File tree

java/src/processing/mode/java/JavaEditor.java

Lines changed: 31 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,10 @@
2929
import processing.mode.java.debug.LineBreakpoint;
3030
import processing.mode.java.debug.LineHighlight;
3131
import processing.mode.java.debug.LineID;
32-
import processing.mode.java.pdex.ASTGenerator;
3332
import processing.mode.java.pdex.ErrorCheckerService;
3433
import processing.mode.java.pdex.ImportStatement;
3534
import processing.mode.java.pdex.JavaTextArea;
35+
import processing.mode.java.pdex.PDEX;
3636
import processing.mode.java.pdex.Problem;
3737
import processing.mode.java.pdex.SourceUtils;
3838
import processing.mode.java.preproc.PdePreprocessor;
@@ -71,6 +71,7 @@ public class JavaEditor extends Editor {
7171
private boolean javaTabWarned;
7272

7373
protected ErrorCheckerService errorCheckerService;
74+
protected PDEX pdex;
7475

7576
protected List<Problem> problems = Collections.emptyList();
7677

@@ -183,6 +184,21 @@ protected void initErrorChecker() {
183184
}
184185
errorCheckerService.start();
185186
errorCheckerService.notifySketchChanged();
187+
188+
pdex = new PDEX(this, errorCheckerService);
189+
190+
// Add ctrl+click listener
191+
getJavaTextArea().getPainter().addMouseListener(new MouseAdapter() {
192+
public void mouseReleased(MouseEvent evt) {
193+
if (evt.getButton() == MouseEvent.BUTTON1) {
194+
if ((evt.isControlDown() && !Platform.isMacOS()) || evt.isMetaDown()) {
195+
handleCtrlClick(evt);
196+
}
197+
} else if (evt.getButton() == MouseEvent.BUTTON2) {
198+
handleCtrlClick(evt);
199+
}
200+
}
201+
});
186202
}
187203

188204

@@ -212,6 +228,7 @@ public void rebuild() {
212228
if (errorCheckerService != null) {
213229
if (hasJavaTabsChanged) {
214230
errorCheckerService.handleHasJavaTabsChange(hasJavaTabs);
231+
pdex.handleHasJavaTabsChange(hasJavaTabs);
215232
if (hasJavaTabs) {
216233
setProblemList(Collections.emptyList());
217234
}
@@ -1358,6 +1375,7 @@ public void dispose() {
13581375
inspector.dispose();
13591376
}
13601377
errorCheckerService.stop();
1378+
pdex.dispose();
13611379
super.dispose();
13621380
}
13631381

@@ -2795,25 +2813,31 @@ public void updateErrorToggle(boolean hasErrors) {
27952813

27962814
/** Handle refactor operation */
27972815
private void handleRefactor() {
2798-
Messages.log("Caret at:" + textarea.getLineText(textarea.getCaretLine()));
2799-
ASTGenerator astGenerator = errorCheckerService.getASTGenerator();
28002816
int startOffset = getSelectionStart();
28012817
int stopOffset = getSelectionStop();
28022818
int tabIndex = sketch.getCurrentCodeIndex();
28032819

2804-
astGenerator.handleRename(tabIndex, startOffset, stopOffset);
2820+
pdex.handleRename(tabIndex, startOffset, stopOffset);
28052821
}
28062822

28072823

28082824
/** Handle show usage operation */
28092825
private void handleShowUsage() {
2810-
Messages.log("Caret at:" + textarea.getLineText(textarea.getCaretLine()));
2811-
ASTGenerator astGenerator = errorCheckerService.getASTGenerator();
28122826
int startOffset = getSelectionStart();
28132827
int stopOffset = getSelectionStop();
28142828
int tabIndex = sketch.getCurrentCodeIndex();
28152829

2816-
astGenerator.handleShowUsage(tabIndex, startOffset, stopOffset);
2830+
pdex.handleShowUsage(tabIndex, startOffset, stopOffset);
2831+
}
2832+
2833+
2834+
/** Handle ctrl+click */
2835+
private void handleCtrlClick(MouseEvent evt) {
2836+
int off = getJavaTextArea().xyToOffset(evt.getX(), evt.getY());
2837+
if (off < 0) return;
2838+
int tabIndex = sketch.getCurrentCodeIndex();
2839+
2840+
pdex.handleCtrlClick(tabIndex, off);
28172841
}
28182842

28192843

0 commit comments

Comments
 (0)