Skip to content

Commit afe01e2

Browse files
committed
Accept changes on msater for JavaEditor and Debugger.
1 parent 3979d9a commit afe01e2

File tree

2 files changed

+47
-68
lines changed

2 files changed

+47
-68
lines changed

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

Lines changed: 44 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
/* -*- mode: java; c-basic-offset: 2; indent-tabs-mode: nil -*- */
32

43
/*
@@ -76,17 +75,17 @@ public class JavaEditor extends Editor {
7675
protected LineHighlight currentLine; // where the debugger is suspended
7776
protected final String breakpointMarkerComment = " //<>//";
7877

79-
protected JMenuItem inspectorItem;
78+
JMenu modeMenu;
79+
// protected JMenuItem inspectorItem;
8080

8181
static final int ERROR_TAB_INDEX = 0;
8282

8383
private boolean hasJavaTabs;
8484
private boolean javaTabWarned;
8585

86-
// To ensure proper initalization, do not use these variables directly. Instead, call
87-
// or override getPreprocessingService and getDebugger.
88-
private PreprocService preprocService;
89-
private Debugger debugger;
86+
protected PreprocService preprocService;
87+
88+
protected Debugger debugger;
9089

9190
private InspectMode inspect;
9291
private ShowUsage usage;
@@ -107,11 +106,13 @@ protected JavaEditor(Base base, String path, EditorState state,
107106

108107
jmode = (JavaMode) mode;
109108

109+
debugger = new Debugger(this);
110+
debugger.populateMenu(modeMenu);
111+
110112
// set breakpoints from marker comments
111-
Debugger targetDebugger = getDebugger();
112113
for (LineID lineID : stripBreakpointComments()) {
113114
//System.out.println("setting: " + lineID);
114-
targetDebugger.setBreakpoint(lineID);
115+
debugger.setBreakpoint(lineID);
115116
}
116117
// setting breakpoints will flag sketch as modified, so override this here
117118
getSketch().setModified(false);
@@ -134,18 +135,19 @@ protected JavaEditor(Base base, String path, EditorState state,
134135
box.add(textAndError);
135136
*/
136137

138+
preprocService = new PreprocService(this);
139+
137140
pdexEnabled = !hasJavaTabs();
138141

139-
PreprocService targetPreprocService = getPreprocessingService();
140-
usage = new ShowUsage(this, targetPreprocService);
141-
inspect = new InspectMode(this, targetPreprocService, usage);
142-
rename = new Rename(this, targetPreprocService, usage);
142+
usage = new ShowUsage(this, preprocService);
143+
inspect = new InspectMode(this, preprocService, usage);
144+
rename = new Rename(this, preprocService, usage);
143145

144146
if (SHOW_AST_VIEWER) {
145-
astViewer = new ASTViewer(this, targetPreprocService);
147+
astViewer = new ASTViewer(this, preprocService);
146148
}
147149

148-
errorChecker = new ErrorChecker(this, targetPreprocService);
150+
errorChecker = new ErrorChecker(this, preprocService);
149151

150152
for (SketchCode code : getSketch().getCode()) {
151153
Document document = code.getDocument();
@@ -197,7 +199,7 @@ public void rebuild() {
197199

198200
if (preprocService != null) {
199201
if (hasJavaTabsChanged) {
200-
getPreprocessingService().handleHasJavaTabsChange(hasJavaTabs);
202+
preprocService.handleHasJavaTabsChange(hasJavaTabs);
201203
pdexEnabled = !hasJavaTabs;
202204
if (!pdexEnabled) {
203205
usage.hide();
@@ -269,7 +271,7 @@ public void actionPerformed(ActionEvent e) {
269271
public void actionPerformed(ActionEvent e) {
270272
if (isDebuggerEnabled()) {
271273
Messages.log("Invoked 'Stop' menu item");
272-
getDebugger().stopDebug();
274+
debugger.stopDebug();
273275
} else {
274276
handleStop();
275277
}
@@ -1099,13 +1101,12 @@ public void handleRun() {
10991101
if (isDebuggerEnabled()) {
11001102
// Hitting Run while a sketch is running should restart the sketch
11011103
// https://github.com/processing/processing/issues/3623
1102-
Debugger targetDebugger = getDebugger();
1103-
if (targetDebugger.isStarted()) {
1104-
targetDebugger.stopDebug();
1104+
if (debugger.isStarted()) {
1105+
debugger.stopDebug();
11051106
}
11061107
// Don't start the sketch paused, continue until a breakpoint or error
11071108
// https://github.com/processing/processing/issues/3096
1108-
targetDebugger.continueDebug();
1109+
debugger.continueDebug();
11091110

11101111
} else {
11111112
handleLaunch(false, false);
@@ -1161,9 +1162,9 @@ protected void handleLaunch(boolean present, boolean tweak) {
11611162
* session or performs standard stop action if not currently debugging.
11621163
*/
11631164
public void handleStop() {
1164-
Debugger targetDebugger = getDebugger();
1165-
if (targetDebugger.isStarted()) {
1166-
targetDebugger.stopDebug();
1165+
if (debugger.isStarted()) {
1166+
debugger.stopDebug();
1167+
11671168
} else {
11681169
toolbar.activateStop();
11691170

@@ -1209,7 +1210,7 @@ public void onRunnerExiting(Runner runner) {
12091210

12101211
@Override
12111212
public void toggleBreakpoint(int lineIndex) {
1212-
getDebugger().toggleBreakpoint(lineIndex);
1213+
debugger.toggleBreakpoint(lineIndex);
12131214
}
12141215

12151216

@@ -1221,15 +1222,14 @@ public boolean handleSaveAs() {
12211222
boolean saved = super.handleSaveAs();
12221223
if (saved) {
12231224
// re-set breakpoints in first tab (name has changed)
1224-
Debugger targetDebugger = getDebugger();
1225-
List<LineBreakpoint> bps = targetDebugger.getBreakpoints(oldName);
1226-
targetDebugger.clearBreakpoints(oldName);
1225+
List<LineBreakpoint> bps = debugger.getBreakpoints(oldName);
1226+
debugger.clearBreakpoints(oldName);
12271227
String newName = getSketch().getCode(0).getFileName();
12281228
//System.out.println("new name: " + newName);
12291229
for (LineBreakpoint bp : bps) {
12301230
LineID line = new LineID(newName, bp.lineID().lineIdx());
12311231
//System.out.println("setting: " + line);
1232-
targetDebugger.setBreakpoint(line);
1232+
debugger.setBreakpoint(line);
12331233
}
12341234
// add breakpoint marker comments to source file
12351235
for (SketchCode code : getSketch().getCode()) {
@@ -1292,20 +1292,20 @@ public void handleImportLibrary(String libraryName) {
12921292

12931293
@Override
12941294
public void librariesChanged() {
1295-
getPreprocessingService().notifyLibrariesChanged();
1295+
preprocService.notifyLibrariesChanged();
12961296
}
12971297

12981298

12991299
@Override
13001300
public void codeFolderChanged() {
1301-
getPreprocessingService().notifyCodeFolderChanged();
1301+
preprocService.notifyCodeFolderChanged();
13021302
}
13031303

13041304

13051305
@Override
13061306
public void sketchChanged() {
13071307
errorChecker.notifySketchChanged();
1308-
getPreprocessingService().notifySketchChanged();
1308+
preprocService.notifySketchChanged();
13091309
}
13101310

13111311

@@ -1362,17 +1362,11 @@ public void internalCloseRunner() {
13621362
public void dispose() {
13631363
//System.out.println("window dispose");
13641364
// quit running debug session
1365-
1366-
Debugger targetDebugger = getDebugger();
1367-
if (targetDebugger.isEnabled()) {
1368-
targetDebugger.stopDebug();
1365+
if (debugger.isEnabled()) {
1366+
debugger.stopDebug();
13691367
}
1370-
targetDebugger.dispose();
1371-
1372-
getPreprocessingService().dispose();
1373-
1374-
debugger = null;
1375-
preprocService = null;
1368+
debugger.dispose();
1369+
preprocService.dispose();
13761370

13771371
inspect.dispose();
13781372
usage.dispose();
@@ -1388,14 +1382,13 @@ public void dispose() {
13881382

13891383
@Override
13901384
public boolean isDebuggerEnabled() {
1391-
return getDebugger().isEnabled();
1385+
return debugger.isEnabled();
13921386
}
13931387

13941388

13951389
@Override
13961390
public JMenu buildModeMenu() {
1397-
//return buildDebugMenu();
1398-
return getDebugger().buildMenu();
1391+
return modeMenu = new JMenu(Language.text("menu.debug"));
13991392
}
14001393

14011394

@@ -1477,7 +1470,7 @@ protected void addBreakpointComments(String tabFilename) {
14771470
Messages.loge("Illegal tab name to addBreakpointComments() " + tabFilename);
14781471
return;
14791472
}
1480-
List<LineBreakpoint> bps = getDebugger().getBreakpoints(tab.getFileName());
1473+
List<LineBreakpoint> bps = debugger.getBreakpoints(tab.getFileName());
14811474

14821475
// load the source file
14831476
////switched to using methods provided by the SketchCode class
@@ -1545,7 +1538,7 @@ public void run() {
15451538
*/
15461539
protected void setTabContents(String tabFilename, String code) {
15471540
// remove all breakpoints of this tab
1548-
getDebugger().clearBreakpoints(tabFilename);
1541+
debugger.clearBreakpoints(tabFilename);
15491542

15501543
SketchCode currentTab = getCurrentTab();
15511544

@@ -1618,9 +1611,6 @@ public void switchToTab(String tabFileName) {
16181611

16191612

16201613
public Debugger getDebugger() {
1621-
if (debugger == null) {
1622-
debugger = new Debugger(this);
1623-
}
16241614
return debugger;
16251615
}
16261616

@@ -1635,9 +1625,6 @@ public JavaTextArea getJavaTextArea() {
16351625

16361626

16371627
public PreprocService getPreprocessingService() {
1638-
if (preprocService == null) {
1639-
preprocService = new PreprocService(this);
1640-
}
16411628
return preprocService;
16421629
}
16431630

@@ -1651,7 +1638,7 @@ public void prepareRun() {
16511638
autoSave();
16521639
super.prepareRun();
16531640
downloadImports();
1654-
getPreprocessingService().cancel();
1641+
preprocService.cancel();
16551642
}
16561643

16571644

@@ -1823,7 +1810,7 @@ public void actionPerformed(ActionEvent e) {
18231810

18241811

18251812
public void activateRun() {
1826-
getDebugger().enableMenuItem(false);
1813+
debugger.enableMenuItem(false);
18271814
toolbar.activateRun();
18281815
}
18291816

@@ -1836,7 +1823,7 @@ public void activateRun() {
18361823
*/
18371824
public void deactivateRun() {
18381825
toolbar.deactivateRun();
1839-
getDebugger().enableMenuItem(true);
1826+
debugger.enableMenuItem(true);
18401827
}
18411828

18421829

@@ -1875,7 +1862,6 @@ public void deactivateStep() {
18751862
public void toggleDebug() {
18761863
// debugEnabled = !debugEnabled;
18771864

1878-
getDebugger().toggleEnabled();
18791865
rebuildToolbar();
18801866
repaint(); // show/hide breakpoints in the gutter
18811867

@@ -2110,10 +2096,8 @@ public void setCode(SketchCode code) {
21102096
}
21112097
}
21122098
}
2113-
2114-
Debugger targetDebugger = getDebugger();
2115-
if (targetDebugger.isStarted()) {
2116-
targetDebugger.startTrackingLineChanges();
2099+
if (getDebugger() != null && getDebugger().isStarted()) {
2100+
getDebugger().startTrackingLineChanges();
21172101
}
21182102
if (errorColumn != null) {
21192103
errorColumn.repaint();

java/src/processing/mode/java/debug/Debugger.java

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -117,12 +117,9 @@ public Debugger(JavaEditor editor) {
117117

118118
/**
119119
* Creates the debug menu. Includes ActionListeners for the menu items.
120-
* Intended for adding to the menu bar.
121-
*
122-
* @return The debug menu
123120
*/
124-
public JMenu buildMenu() {
125-
debugMenu = new JMenu(Language.text("menu.debug"));
121+
public void populateMenu(JMenu modeMenu) {
122+
debugMenu = modeMenu;
126123
JMenuItem item;
127124

128125
debugItem = Toolkit.newJMenuItem(Language.text("menu.debug.enable"), 'D');
@@ -188,8 +185,6 @@ public void actionPerformed(ActionEvent e) {
188185
});
189186
debugMenu.add(item);
190187
item.setEnabled(false);
191-
192-
return debugMenu;
193188
}
194189

195190

@@ -203,7 +198,7 @@ public boolean isEnabled() {
203198
}
204199

205200

206-
public void toggleEnabled() {
201+
void toggleEnabled() {
207202
enabled = !enabled;
208203

209204
if (enabled) {

0 commit comments

Comments
 (0)