mirror of
https://github.com/processing/processing4.git
synced 2026-01-27 10:21:26 +01:00
clean up debugger init by delaying some calls until ready (fixes #73)
This commit is contained in:
@@ -75,7 +75,8 @@ public class JavaEditor extends Editor {
|
||||
protected LineHighlight currentLine; // where the debugger is suspended
|
||||
protected final String breakpointMarkerComment = " //<>//";
|
||||
|
||||
protected JMenuItem inspectorItem;
|
||||
JMenu modeMenu;
|
||||
// protected JMenuItem inspectorItem;
|
||||
|
||||
static final int ERROR_TAB_INDEX = 0;
|
||||
|
||||
@@ -104,7 +105,9 @@ public class JavaEditor extends Editor {
|
||||
super(base, path, state, mode);
|
||||
|
||||
jmode = (JavaMode) mode;
|
||||
|
||||
debugger = new Debugger(this);
|
||||
debugger.populateMenu(modeMenu);
|
||||
|
||||
// set breakpoints from marker comments
|
||||
for (LineID lineID : stripBreakpointComments()) {
|
||||
@@ -1385,8 +1388,7 @@ public class JavaEditor extends Editor {
|
||||
|
||||
@Override
|
||||
public JMenu buildModeMenu() {
|
||||
//return buildDebugMenu();
|
||||
return debugger.buildMenu();
|
||||
return modeMenu = new JMenu(Language.text("menu.debug"));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -37,24 +37,33 @@ import processing.mode.java.debug.Debugger;
|
||||
public class JavaToolbar extends EditorToolbar {
|
||||
JavaEditor jeditor;
|
||||
|
||||
// boolean debug; // true if this is the expanded debug feller
|
||||
EditorButton stepButton;
|
||||
EditorButton continueButton;
|
||||
|
||||
|
||||
// public JavaToolbar(Editor editor, boolean debug) {
|
||||
public JavaToolbar(Editor editor) {
|
||||
super(editor);
|
||||
// this.debug = debug;
|
||||
jeditor = (JavaEditor) editor;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Check if 'debugger' is available and enabled.
|
||||
*/
|
||||
private boolean isDebuggerArmed() {
|
||||
// 'jeditor' not ready yet because this is called by super()
|
||||
// 'debugger' also null during init
|
||||
if (jeditor == null) {
|
||||
return false;
|
||||
}
|
||||
return jeditor.isDebuggerEnabled();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<EditorButton> createButtons() {
|
||||
// jeditor not ready yet because this is called by super()
|
||||
final boolean debug = ((JavaEditor) editor).isDebuggerEnabled();
|
||||
// System.out.println("creating buttons in JavaToolbar, debug:" + debug);
|
||||
final boolean debug = isDebuggerArmed();
|
||||
|
||||
List<EditorButton> outgoing = new ArrayList<>();
|
||||
|
||||
final String runText = debug ?
|
||||
@@ -130,10 +139,9 @@ public class JavaToolbar extends EditorToolbar {
|
||||
}
|
||||
};
|
||||
|
||||
if (((JavaEditor) editor).isDebuggerEnabled()) {
|
||||
if (isDebuggerArmed()) {
|
||||
debugButton.setSelected(true);
|
||||
}
|
||||
// debugButton.setRolloverLabel(label);
|
||||
box.add(debugButton);
|
||||
addGap(box);
|
||||
}
|
||||
|
||||
@@ -117,12 +117,9 @@ public class Debugger {
|
||||
|
||||
/**
|
||||
* Creates the debug menu. Includes ActionListeners for the menu items.
|
||||
* Intended for adding to the menu bar.
|
||||
*
|
||||
* @return The debug menu
|
||||
*/
|
||||
public JMenu buildMenu() {
|
||||
debugMenu = new JMenu(Language.text("menu.debug"));
|
||||
public void populateMenu(JMenu modeMenu) {
|
||||
debugMenu = modeMenu;
|
||||
JMenuItem item;
|
||||
|
||||
debugItem = Toolkit.newJMenuItem(Language.text("menu.debug.enable"), 'D');
|
||||
@@ -188,8 +185,6 @@ public class Debugger {
|
||||
});
|
||||
debugMenu.add(item);
|
||||
item.setEnabled(false);
|
||||
|
||||
return debugMenu;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user