|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*/ |
|
|
|
/* |
|
* This source code is provided to illustrate the usage of a given feature |
|
* or technique and has been deliberately simplified. Additional steps |
|
* required for a production-quality application, such as security checks, |
|
* input validation and proper error handling, might not be present in |
|
* this sample code. |
|
*/ |
|
|
|
|
|
package com.sun.tools.example.debug.gui; |
|
|
|
import javax.swing.*; |
|
import java.awt.event.*; |
|
|
|
import com.sun.tools.example.debug.bdi.*; |
|
|
|
class JDBToolBar extends JToolBar { |
|
|
|
Environment env; |
|
|
|
ExecutionManager runtime; |
|
ClassManager classManager; |
|
SourceManager sourceManager; |
|
|
|
CommandInterpreter interpreter; |
|
|
|
JDBToolBar(Environment env) { |
|
|
|
this.env = env; |
|
this.runtime = env.getExecutionManager(); |
|
this.classManager = env.getClassManager(); |
|
this.sourceManager = env.getSourceManager(); |
|
this.interpreter = new CommandInterpreter(env, true); |
|
|
|
//===== Configure toolbar here ===== |
|
|
|
addTool("Run application", "run", "run"); |
|
addTool("Connect to application", "connect", "connect"); |
|
addSeparator(); |
|
|
|
addTool("Step into next line", "step", "step"); |
|
addTool("Step over next line", "next", "next"); |
|
// addSeparator(); |
|
|
|
// addTool("Step into next instruction", "stepi", "stepi"); |
|
// addTool("Step over next instruction", "nexti", "nexti"); |
|
// addSeparator(); |
|
|
|
addTool("Step out of current method call", "step up", "step up"); |
|
addSeparator(); |
|
|
|
addTool("Suspend execution", "interrupt", "interrupt"); |
|
addTool("Continue execution", "cont", "cont"); |
|
addSeparator(); |
|
|
|
// addTool("Display current stack", "where", "where"); |
|
// addSeparator(); |
|
|
|
addTool("Move up one stack frame", "up", "up"); |
|
addTool("Move down one stack frame", "down", "down"); |
|
// addSeparator(); |
|
|
|
// addTool("Display command list", "help", "help"); |
|
// addSeparator(); |
|
|
|
// addTool("Exit debugger", "exit", "exit"); |
|
|
|
//================================== |
|
|
|
} |
|
|
|
private void addTool(String toolTip, String labelText, String command) { |
|
JButton button = new JButton(labelText); |
|
button.setToolTipText(toolTip); |
|
final String cmd = command; |
|
button.addActionListener(new ActionListener() { |
|
@Override |
|
public void actionPerformed(ActionEvent e) { |
|
interpreter.executeCommand(cmd); |
|
} |
|
}); |
|
this.add(button); |
|
} |
|
|
|
} |