Skip to content

Commit b94acc4

Browse files
committed
more refactoring and cleanup
1 parent 70819be commit b94acc4

7 files changed

Lines changed: 178 additions & 159 deletions

File tree

java/src/processing/mode/java/DebugToolbar.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,8 @@ public class DebugToolbar extends JavaToolbar {
7474
public DebugToolbar(Editor editor, Base base) {
7575
super(editor, base);
7676
}
77+
78+
7779
public Image[][] loadDebugImages() {
7880
int res = Toolkit.highResDisplay() ? 2 : 1;
7981

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

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -92,19 +92,19 @@ public class JavaEditor extends Editor {
9292
protected JScrollPane errorTableScrollPane;
9393
protected JPanel consoleProblemsPane;
9494
protected XQErrorTable errorTable;
95-
95+
96+
// TODO how is this different from hasJavaTabs?
9697
public boolean compilationCheckEnabled = true;
9798

9899
// protected JCheckBoxMenuItem showWarnings;
99-
public JCheckBoxMenuItem problemWindowMenuCB;
100+
// public JCheckBoxMenuItem problemWindowMenuCB;
100101
// protected JCheckBoxMenuItem debugMessagesEnabled;
101102
// protected JMenuItem showOutline;
102103
// protected JMenuItem showTabOutline;
103104
// protected JCheckBoxMenuItem writeErrorLog;
104105
// protected JCheckBoxMenuItem completionsEnabled;
105106

106-
// TODO no way should this be public; make an accessor or protected
107-
public boolean hasJavaTabs;
107+
private boolean hasJavaTabs;
108108

109109

110110
protected JavaEditor(Base base, String path, EditorState state, Mode mode) {
@@ -161,7 +161,7 @@ public void actionPerformed(ActionEvent e) {
161161
}
162162
getSketch().setModified(false); // setting breakpoints will flag sketch as modified, so override this here
163163

164-
checkForJavaTabs();
164+
hasJavaTabs = checkForJavaTabs();
165165
initializeErrorChecker();
166166

167167
getJavaTextArea().setECSandThemeforTextArea(errorCheckerService, jmode);
@@ -2415,24 +2415,28 @@ private void handleShowUsage() {
24152415
}
24162416

24172417

2418+
public boolean hasJavaTabs() {
2419+
return hasJavaTabs;
2420+
}
2421+
2422+
24182423
/**
2419-
* Checks if the sketch contains java tabs. If it does, the editor ain't built
2420-
* for it, yet. Also, user should really start looking at more powerful IDEs
2421-
* likeEclipse. Disable compilation check and some more features.
2424+
* Checks if the sketch contains java tabs. If it does, the editor ain't
2425+
* built for it, yet. Also, user should really start looking at a full IDE
2426+
* like Eclipse. Disable compilation check and some more features.
24222427
*/
2423-
private void checkForJavaTabs() {
2424-
hasJavaTabs = false;
2425-
for (int i = 0; i < this.getSketch().getCodeCount(); i++) {
2426-
if (this.getSketch().getCode(i).getExtension().equals("java")) {
2428+
private boolean checkForJavaTabs() {
2429+
for (SketchCode code : getSketch().getCode()) {
2430+
if (code.getExtension().equals("java")) {
24272431
compilationCheckEnabled = false;
2428-
hasJavaTabs = true;
2429-
JOptionPane.showMessageDialog(new Frame(), this
2430-
.getSketch().getName()
2431-
+ " contains .java tabs. Some editor features are not supported " +
2432-
"for .java tabs and will be disabled.");
2433-
break;
2432+
final String msg =
2433+
getSketch().getName() + " contains .java tabs. Some editor " +
2434+
"features are not supported for .java tabs and will be disabled.";
2435+
Base.showWarning("Cannot debug advanced sketches", msg);
2436+
return true;
24342437
}
24352438
}
2439+
return false;
24362440
}
24372441

24382442

java/src/processing/mode/java/pdex/ASTGenerator.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2127,8 +2127,9 @@ public void highlightPDECode(int tab, int lineNumber, int lineStartWSOffset,
21272127
editor.getTextArea().select(lineStartWSOffset, lineStartWSOffset + length);
21282128
}
21292129

2130-
public void handleShowUsage(){
2131-
if(editor.hasJavaTabs) return; // show usage disabled if java tabs
2130+
public void handleShowUsage() {
2131+
if (editor.hasJavaTabs()) return; // show usage disabled if java tabs
2132+
21322133
log("Last clicked word:" + lastClickedWord);
21332134
if (lastClickedWord == null &&
21342135
getSelectedText() == null) {
@@ -2383,8 +2384,9 @@ else if (prop.isChildListProperty()) {
23832384

23842385
protected SketchOutline sketchOutline;
23852386

2386-
public void showSketchOutline(){
2387-
if(editor.hasJavaTabs) return; // sketch outline disabled if java tabs
2387+
public void showSketchOutline() {
2388+
if (editor.hasJavaTabs()) return;
2389+
23882390
sketchOutline = new SketchOutline(codeTree, errorCheckerService);
23892391
sketchOutline.show();
23902392
}
@@ -2472,7 +2474,8 @@ protected boolean isInstanceOfType(ASTNode node,ASTNode decl, String name){
24722474
}
24732475

24742476
public void handleRefactor() {
2475-
if(editor.hasJavaTabs) return; // refactoring disabled if java tabs
2477+
if (editor.hasJavaTabs()) return; // refactoring disabled w/ java tabs
2478+
24762479
log("Last clicked word:" + lastClickedWord);
24772480
if (lastClickedWord == null &&
24782481
getSelectedText() == null) {

java/src/processing/mode/java/pdex/ErrorWindow.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,8 @@ public void componentHidden(ComponentEvent e) {
167167

168168
@Override
169169
public void windowClosing(WindowEvent e) {
170-
thisEditor.problemWindowMenuCB.setSelected(false);
170+
// removing b/c this was the only use of problemWindowMenuCB [fry 150125]
171+
// thisEditor.problemWindowMenuCB.setSelected(false);
171172
}
172173

173174
@Override

java/src/processing/mode/java/pdex/JavaTextArea.java

Lines changed: 67 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -163,22 +163,21 @@ public void setECSandThemeforTextArea(ErrorCheckerService ecs,
163163

164164

165165
/**
166-
* Handles KeyEvents for TextArea
167-
* Code completion begins from here.
166+
* Handles KeyEvents for TextArea (code completion begins from here).
168167
*/
169168
public void processKeyEvent(KeyEvent evt) {
170-
//if(Base.isMacOS() && evt.isControlDown()) System.out.println("Ctrl down: " + evt);
171-
if(evt.getKeyCode() == KeyEvent.VK_ESCAPE){
172-
if(suggestion != null){
173-
if(suggestion.isVisible()){
169+
if (evt.getKeyCode() == KeyEvent.VK_ESCAPE) {
170+
if (suggestion != null){
171+
if (suggestion.isVisible()){
174172
Base.log("esc key");
175173
hideSuggestion();
176174
evt.consume();
177175
return;
178176
}
179177
}
180-
}
181-
else if(evt.getKeyCode() == KeyEvent.VK_ENTER && evt.getID() == KeyEvent.KEY_PRESSED){
178+
179+
} else if (evt.getKeyCode() == KeyEvent.VK_ENTER &&
180+
evt.getID() == KeyEvent.KEY_PRESSED) {
182181
if (suggestion != null) {
183182
if (suggestion.isVisible()) {
184183
if (suggestion.insertSelection(CompletionPanel.KEYBOARD_COMPLETION)) {
@@ -228,62 +227,27 @@ else if(evt.getKeyCode() == KeyEvent.VK_ENTER && evt.getID() == KeyEvent.KEY_PRE
228227
}
229228
super.processKeyEvent(evt);
230229

231-
if (editor.hasJavaTabs) return; // code completion disabled if java tabs
232-
233-
if (evt.getID() == KeyEvent.KEY_TYPED) {
234-
char keyChar = evt.getKeyChar();
235-
if (keyChar == KeyEvent.VK_ENTER ||
236-
keyChar == KeyEvent.VK_ESCAPE ||
237-
keyChar == KeyEvent.VK_TAB ||
238-
keyChar == KeyEvent.CHAR_UNDEFINED) {
239-
return;
240-
}
241-
else if (keyChar == ')') {
242-
hideSuggestion(); // See #2741
243-
return;
244-
}
245-
246-
final KeyEvent evt2 = evt;
230+
// code completion disabled if java tabs
231+
if (!editor.hasJavaTabs()) {
232+
if (evt.getID() == KeyEvent.KEY_TYPED) {
233+
processCompletionKeys(evt);
247234

248-
if (keyChar == '.') {
249-
if (JavaMode.codeCompletionsEnabled) {
250-
Base.log("[KeyEvent]" + KeyEvent.getKeyText(evt2.getKeyCode()) + " |Prediction started");
251-
Base.log("Typing: " + fetchPhrase(evt2));
252-
}
253-
} else if (keyChar == ' ') { // Trigger on Ctrl-Space
254-
if (!Base.isMacOS() && JavaMode.codeCompletionsEnabled &&
255-
(evt.isControlDown() || evt.isMetaDown())) {
256-
SwingWorker<Object, Object> worker = new SwingWorker<Object, Object>() {
257-
protected Object doInBackground() throws Exception {
258-
// Provide completions only if it's enabled
259-
if (JavaMode.codeCompletionsEnabled) {
260-
getDocument().remove(getCaretPosition() - 1, 1); // Remove the typed space
261-
Base.log("[KeyEvent]" + evt2.getKeyChar() + " |Prediction started");
262-
Base.log("Typing: " + fetchPhrase(evt2));
263-
}
264-
return null;
265-
}
266-
};
267-
worker.execute();
268-
} else {
269-
hideSuggestion(); // hide on spacebar
270-
}
271-
} else {
272-
if (JavaMode.codeCompletionsEnabled) {
273-
prepareSuggestions(evt2);
274-
}
235+
} else if (Base.isMacOS() && evt.getID() == KeyEvent.KEY_RELEASED) {
236+
processControlSpace(evt);
275237
}
276238
}
277-
// #2699 - Special case for OS X, where Ctrl-Space is not detected as Key_Typed -_-
278-
else if (Base.isMacOS() && evt.getID() == KeyEvent.KEY_RELEASED
279-
&& evt.getKeyCode() == KeyEvent.VK_SPACE && evt.isControlDown()) {
280-
final KeyEvent evt2 = evt;
239+
}
240+
241+
242+
// #2699 - Special case for OS X, where Ctrl-Space is not detected as Key_Typed -_-
243+
private void processControlSpace(final KeyEvent event) {
244+
if (event.getKeyCode() == KeyEvent.VK_SPACE && event.isControlDown()) {
281245
SwingWorker<Object, Object> worker = new SwingWorker<Object, Object>() {
282246
protected Object doInBackground() throws Exception {
283247
// Provide completions only if it's enabled
284248
if (JavaMode.codeCompletionsEnabled) {
285-
Base.log("[KeyEvent]" + KeyEvent.getKeyText(evt2.getKeyCode()) + " |Prediction started");
286-
Base.log("Typing: " + fetchPhrase(evt2));
249+
Base.log("[KeyEvent]" + KeyEvent.getKeyText(event.getKeyCode()) + " |Prediction started");
250+
Base.log("Typing: " + fetchPhrase(event));
287251
}
288252
return null;
289253
}
@@ -292,10 +256,52 @@ protected Object doInBackground() throws Exception {
292256
}
293257
}
294258

259+
260+
private void processCompletionKeys(final KeyEvent event) {
261+
char keyChar = event.getKeyChar();
262+
if (keyChar == KeyEvent.VK_ENTER ||
263+
keyChar == KeyEvent.VK_ESCAPE ||
264+
keyChar == KeyEvent.VK_TAB ||
265+
keyChar == KeyEvent.CHAR_UNDEFINED) {
266+
return;
267+
268+
} else if (keyChar == ')') {
269+
hideSuggestion(); // See #2741
270+
return;
271+
}
272+
273+
if (keyChar == '.') {
274+
if (JavaMode.codeCompletionsEnabled) {
275+
Base.log("[KeyEvent]" + KeyEvent.getKeyText(event.getKeyCode()) + " |Prediction started");
276+
Base.log("Typing: " + fetchPhrase(event));
277+
}
278+
} else if (keyChar == ' ') { // Trigger on Ctrl-Space
279+
if (!Base.isMacOS() && JavaMode.codeCompletionsEnabled &&
280+
(event.isControlDown() || event.isMetaDown())) {
281+
SwingWorker<Object, Object> worker = new SwingWorker<Object, Object>() {
282+
protected Object doInBackground() throws Exception {
283+
// Provide completions only if it's enabled
284+
if (JavaMode.codeCompletionsEnabled) {
285+
getDocument().remove(getCaretPosition() - 1, 1); // Remove the typed space
286+
Base.log("[KeyEvent]" + event.getKeyChar() + " |Prediction started");
287+
Base.log("Typing: " + fetchPhrase(event));
288+
}
289+
return null;
290+
}
291+
};
292+
worker.execute();
293+
} else {
294+
hideSuggestion(); // hide on spacebar
295+
}
296+
} else {
297+
if (JavaMode.codeCompletionsEnabled) {
298+
prepareSuggestions(event);
299+
}
300+
}
301+
}
302+
295303

296-
/**
297-
* Kickstart auto-complete suggestions
298-
*/
304+
/** Kickstart auto-complete suggestions */
299305
private void prepareSuggestions(final KeyEvent evt){
300306
SwingWorker<Object, Object> worker = new SwingWorker<Object, Object>() {
301307
protected Object doInBackground() throws Exception {
@@ -315,7 +321,6 @@ protected Object doInBackground() throws Exception {
315321
/**
316322
* Retrieves the word on which the mouse pointer is present
317323
* @param evt - the MouseEvent which triggered this method
318-
* @return
319324
*/
320325
private String fetchPhrase(MouseEvent evt) {
321326
Base.log("--handle Mouse Right Click--");
@@ -726,7 +731,7 @@ public void mousePressed(MouseEvent me) {
726731
}
727732

728733
if (me.getButton() == MouseEvent.BUTTON3) {
729-
if(!editor.hasJavaTabs){ // tooltips, etc disabled for java tabs
734+
if (!editor.hasJavaTabs()) { // tooltips, etc disabled for java tabs
730735
fetchPhrase(me);
731736
}
732737
}

0 commit comments

Comments
 (0)