1 22 23 package org.aspectj.debugger.gui; 24 25 import org.aspectj.debugger.base.*; 26 import org.aspectj.debugger.ide.IDEComponentDirector; 27 28 import java.awt.*; 29 import java.awt.event.*; 30 import javax.swing.*; 31 32 interface K { 33 final static int QUIT = KeyEvent.VK_Q; 34 final static int STEPUP = KeyEvent.VK_U; 35 final static int STEPI = KeyEvent.VK_I; 36 final static int STEP = KeyEvent.VK_S; 37 final static int NEXT = KeyEvent.VK_N; 38 final static int CONT = KeyEvent.VK_O; 39 final static int RUN = KeyEvent.VK_R; 40 final static int BREAKPOINT = KeyEvent.VK_B; 41 final static int RESUME = KeyEvent.VK_E; 42 final static int SUSPEND = KeyEvent.VK_X; 43 final static int WHERE = KeyEvent.VK_W; 44 final static int USE = KeyEvent.VK_K; 45 final static int CLEAR = KeyEvent.VK_L; 46 final static int DUMP = KeyEvent.VK_M; 47 final static int EVAL = KeyEvent.VK_V; 48 final static int FIELDS = KeyEvent.VK_F; 49 final static int LOCALS = KeyEvent.VK_Q; 50 final static int PRINT = KeyEvent.VK_P; 51 final static int HELP = KeyEvent.VK_F1; 52 final static int ABOUT = KeyEvent.VK_F2; 53 final static int DISCONNECT = KeyEvent.VK_D; 54 final static int CATCH = KeyEvent.VK_C; 55 final static int EXECUTE = KeyEvent.VK_1; 56 final static int WATCH = KeyEvent.VK_H; 57 } 58 59 interface S { 60 final static String QUIT = "Quit"; 61 final static String STEPUP = "Step up"; 62 final static String STEPI = "I-Step"; 63 final static String STEP = "Step"; 64 final static String NEXT = "Next"; 65 final static String CONT = "Continue"; 66 final static String RUN = "Run"; 67 final static String BREAKPOINT = "Break"; 68 final static String RESUME = "Resume"; 69 final static String SUSPEND = "Suspend"; 70 final static String WHERE = "Where"; 71 final static String USE = "Use"; 72 final static String CLEAR = "Clear"; 73 final static String DUMP = "Dump"; 74 final static String EVAL = "Evaluate"; 75 final static String FIELDS = "Fields"; 76 final static String LOCALS = "Locals"; 77 final static String PRINT = "Print"; 78 final static String HELP = "Help"; 79 final static String ABOUT = "About"; 80 final static String DISCONNECT = "Disconnect"; 81 final static String CATCH = "Catch"; 82 final static String EXECUTE = "Execute"; 83 final static String WATCH = "Watch"; 84 } 85 86 interface C { 87 final static String QUIT = "quit"; 88 final static String STEPUP = "step up"; 89 final static String STEPI = "stepi"; 90 final static String STEP = "step"; 91 final static String NEXT = "next"; 92 final static String CONT = "cont"; 93 final static String RUN = "run"; 94 final static String BREAKPOINT = "stop"; 95 final static String RESUME = "resume"; 96 final static String SUSPEND = "suspend"; 97 final static String WHERE = "where"; 98 final static String USE = "use"; 99 final static String CLEAR = "clear"; 100 final static String DUMP = "dump"; 101 final static String EVAL = "eval"; 102 final static String FIELDS = "fields"; 103 final static String LOCALS = "locals"; 104 final static String PRINT = "print"; 105 final static String HELP = "help"; 106 final static String ABOUT = "about"; 107 final static String DISCONNECT = "disconnect"; 108 final static String CATCH = "catch"; 109 final static String WATCH = "watch"; 110 } 111 112 interface AJActionsConsts { 113 public final static int ALL = -1; 114 public final static int NONE = 0; 115 public final static String LABEL = "label"; 116 public final static String ICON = "icon"; 117 } 118 119 abstract class AbstractActionStruct 120 extends AbstractAction 121 implements AJActionsConsts { 122 123 private boolean hasIcon; 124 private GUIDebugger guiDebugger; 125 126 AbstractActionStruct(GUIDebugger guiDebugger, String s, Icon i) { 127 super(s, i); 128 this.guiDebugger = guiDebugger; 129 putValue(LABEL, s); 130 putValue(ICON, i); 131 hasIcon = !i.equals(AJIcons.NO_ICON); 132 } 133 134 AbstractActionStruct(GUIDebugger guiDebugger) { 135 super(); 136 this.guiDebugger = guiDebugger; 137 } 138 139 public boolean hasIcon() { 140 return hasIcon; 141 } 142 143 protected GUIDebugger guid() { 144 return guiDebugger; 145 } 146 147 protected AJDebugger ajdb() { 148 return guid().getDebugger(); 149 } 150 151 abstract int key(); 152 abstract int mask(); 153 } 154 155 abstract class AllMaskAbstractActionStruct extends AbstractActionStruct { 156 AllMaskAbstractActionStruct(GUIDebugger guid) { 157 super(guid); 158 } 159 int mask() { return ALL; } 160 } 161 162 abstract class NoMaskAbstractActionStruct extends AbstractActionStruct { 163 NoMaskAbstractActionStruct(GUIDebugger guid, String s, Icon i) { 164 super(guid, s, i); 165 } 166 int mask() { return NONE; } 167 } 168 169 abstract class CtrlAbstractActionStruct extends AbstractActionStruct { 170 CtrlAbstractActionStruct(GUIDebugger guid, String s, Icon i) { 171 super(guid, s, i); 172 } 173 int mask() { 174 return Event.CTRL_MASK; 175 } 176 } 177 178 class BreakpointAction extends CtrlAbstractActionStruct { 179 public BreakpointAction(GUIDebugger guid) { 180 super(guid, S.BREAKPOINT, AJIcons.getIcon(AJIcons.STOP_ICON)); 181 } 182 protected BreakpointAction(GUIDebugger guid, String name) { 183 super(guid, name, AJIcons.getIcon(AJIcons.STOP_ICON)); 184 } 185 public void actionPerformed(ActionEvent e) { 186 Dialogs.showSetBreakpointDialog(); 187 } 188 int key() { 189 return K.BREAKPOINT; 190 } 191 } 192 193 197 203 class IDELineBreakpointAction extends BreakpointAction { 204 public IDELineBreakpointAction(GUIDebugger guid) { 205 super(guid, "Add Breakpoint"); 206 207 } 208 public void actionPerformed(ActionEvent e) { 209 ((IDEComponentDirector)guid().getGui()).showBreakpointDialog(); 210 } 211 } 212 213 214 class ClearAction extends CtrlAbstractActionStruct { 215 public ClearAction(GUIDebugger guid) { 216 super(guid, S.CLEAR, AJIcons.getIcon(AJIcons.CLEAR_ICON)); 217 } 218 public void actionPerformed(ActionEvent e) { 219 Dialogs.showClearBreakpointDialog(); 220 } 221 int key() { 222 return K.CLEAR; 223 } 224 } 225 226 class RunAction extends CtrlAbstractActionStruct { 227 public RunAction(GUIDebugger guid) { 228 super(guid, S.RUN, AJIcons.getIcon(AJIcons.RUN_ICON)); 229 } 230 public void actionPerformed(ActionEvent e) { 231 Dialogs.showRunDialog(); 232 } 233 int key() { 234 return K.RUN; 235 } 236 } 237 238 class NoArgsRunAction extends RunAction { 239 public NoArgsRunAction(GUIDebugger guid) { 240 super(guid); 241 } 242 public void actionPerformed(ActionEvent e) { 243 if (ajdb().vm() == null) { 244 ajdb().execute(C.RUN); 245 } else { 246 ajdb().execute(C.CONT); 247 } 248 } 249 } 250 251 class JBuilderRunAction extends NoArgsRunAction { 252 public JBuilderRunAction(GUIDebugger guid) { 253 super(guid); 254 } 255 } 256 257 class ForteRunAction extends NoArgsRunAction { 258 public ForteRunAction(GUIDebugger guid) { 259 super(guid); 260 } 261 } 262 263 class CatchAction extends CtrlAbstractActionStruct { 264 public CatchAction(GUIDebugger guid) { 265 super(guid, S.CATCH, AJIcons.getIcon(AJIcons.CATCH_ICON)); 266 } 267 public void actionPerformed(ActionEvent e) { 268 Dialogs.showCatchDialog(); 269 } 270 int key() { 271 return K.CATCH; 272 } 273 } 274 275 class WatchAction extends CtrlAbstractActionStruct { 276 public WatchAction(GUIDebugger guid) { 277 super(guid, S.WATCH, AJIcons.getIcon(AJIcons.WATCH_ICON)); 278 } 279 public void actionPerformed(ActionEvent e) { 280 Dialogs.showWatchDialog(); 281 } 282 int key() { 283 return K.WATCH; 284 } 285 } 286 287 class HelpAction extends NoMaskAbstractActionStruct { 288 public HelpAction(GUIDebugger guid) { 289 super(guid, S.HELP, AJIcons.getIcon(AJIcons.HELP_ICON)); 290 } 291 public void actionPerformed(ActionEvent e) { 292 ajdb().execute(C.HELP); 293 } 294 int key() { 295 return K.HELP; 296 } 297 } 298 299 class AboutAction extends NoMaskAbstractActionStruct { 300 public AboutAction(GUIDebugger guid) { 301 super(guid, S.ABOUT, AJIcons.getIcon(AJIcons.ABOUT_ICON)); 302 } 303 public void actionPerformed(ActionEvent e) { 304 Dialogs.showAboutDialog(); 305 } 306 int key() { 307 return K.ABOUT; 308 } 309 } 310 311 abstract class NoIconCtrlAbstractActionStruct 312 extends CtrlAbstractActionStruct { 313 public NoIconCtrlAbstractActionStruct(GUIDebugger guid, String s) { 314 super(guid, s, AJIcons.NO_ICON); 315 } 316 } 317 318 class DumpAction extends CtrlAbstractActionStruct { 319 public DumpAction(GUIDebugger guid) { 320 super(guid, S.DUMP, AJIcons.getIcon(AJIcons.DUMP_ICON)); 321 } 322 public void actionPerformed(ActionEvent e) { 323 Dialogs.showDumpDialog(); 324 } 325 int key() { 326 return K.DUMP; 327 } 328 } 329 330 class EvalAction extends CtrlAbstractActionStruct { 331 public EvalAction(GUIDebugger guid) { 332 super(guid, S.EVAL, AJIcons.getIcon(AJIcons.EVALUATE_ICON)); 333 } 334 public void actionPerformed(ActionEvent e) { 335 Dialogs.showEvalDialog(); 336 } 337 int key() { 338 return K.EVAL; 339 } 340 } 341 342 class FieldsAction extends CtrlAbstractActionStruct { 343 public FieldsAction(GUIDebugger guid) { 344 super(guid, S.FIELDS, AJIcons.getIcon(AJIcons.FIELDS_ICON)); 345 } 346 public void actionPerformed(ActionEvent e) { 347 Dialogs.showFieldsDialog(); 348 } 349 int key() { 350 return K.FIELDS; 351 } 352 } 353 354 class DisconnectAction extends CtrlAbstractActionStruct { 355 public DisconnectAction(GUIDebugger guid) { 356 super(guid, S.DISCONNECT, AJIcons.getIcon(AJIcons.DISCONNECT_ICON)); 357 } 358 public void actionPerformed(ActionEvent e) { 359 ajdb().execute(C.DISCONNECT); 360 } 361 int key() { 362 return K.DISCONNECT; 363 } 364 } 365 366 class LocalsAction extends CtrlAbstractActionStruct { 367 public LocalsAction(GUIDebugger guid) { 368 super(guid, S.LOCALS, AJIcons.getIcon(AJIcons.LOCALS_ICON)); 369 } 370 public void actionPerformed(ActionEvent e) { 371 ajdb().execute(C.LOCALS); 372 } 373 int key() { 374 return K.LOCALS; 375 } 376 } 377 378 class PrintAction extends CtrlAbstractActionStruct { 379 public PrintAction(GUIDebugger guid) { 380 super(guid, S.PRINT, AJIcons.getIcon(AJIcons.PRINT_ICON)); 381 } 382 public void actionPerformed(ActionEvent e) { 383 Dialogs.showPrintDialog(); 384 } 385 int key() { 386 return K.PRINT; 387 } 388 } 389 390 391 392 class UseAction extends CtrlAbstractActionStruct { 393 public UseAction(GUIDebugger guid) { 394 super(guid, S.USE, AJIcons.getIcon(AJIcons.USE_ICON)); 395 } 396 public void actionPerformed(ActionEvent e) { 397 Dialogs.showUseDialog(); 398 } 399 int key() { 400 return K.USE; 401 } 402 } 403 404 class ExecuteAction extends CtrlAbstractActionStruct { 405 public ExecuteAction(GUIDebugger guid) { 406 super(guid, S.EXECUTE, AJIcons.getIcon(AJIcons.BLANK_ICON)); 407 } 408 public void actionPerformed(ActionEvent e) { 409 Dialogs.showExecuteDialog(); 410 } 411 int key() { 412 return K.EXECUTE; 413 } 414 } 415 416 class ContAction extends CtrlAbstractActionStruct { 417 public ContAction(GUIDebugger guid) { 418 super(guid, S.CONT, AJIcons.getIcon(AJIcons.CONT_ICON)); 419 } 420 public void actionPerformed(ActionEvent e) { 421 ajdb().execute(C.CONT); 422 } 423 int key() { 424 return K.CONT; 425 } 426 } 427 428 class NextAction extends CtrlAbstractActionStruct { 429 public NextAction(GUIDebugger guid) { 430 super(guid, S.NEXT, AJIcons.getIcon(AJIcons.NEXT_ICON)); 431 } 432 public void actionPerformed(ActionEvent e) { 433 ajdb().execute(C.NEXT); 434 } 435 int key() { 436 return K.NEXT; 437 } 438 } 439 440 class StepAction extends CtrlAbstractActionStruct { 441 public StepAction(GUIDebugger guid) { 442 super(guid, S.STEP, AJIcons.getIcon(AJIcons.STEP_ICON)); 443 } 444 public void actionPerformed(ActionEvent e) { 445 ajdb().execute(C.STEP); 446 } 447 int key() { 448 return K.STEP; 449 } 450 } 451 452 class StepIAction extends CtrlAbstractActionStruct { 453 public StepIAction(GUIDebugger guid) { 454 super(guid, S.STEPI, AJIcons.getIcon(AJIcons.STEPI_ICON)); 455 } 456 public void actionPerformed(ActionEvent e) { 457 ajdb().execute(C.STEPI); 458 } 459 int key() { 460 return K.STEPI; 461 } 462 } 463 464 class StepUpAction extends CtrlAbstractActionStruct { 465 public StepUpAction(GUIDebugger guid) { 466 super(guid, S.STEPUP, AJIcons.getIcon(AJIcons.STEPUP_ICON)); 467 } 468 public void actionPerformed(ActionEvent e) { 469 ajdb().execute(C.STEPUP); 470 } 471 int key() { 472 return K.STEPUP; 473 } 474 } 475 476 class QuitAction extends CtrlAbstractActionStruct { 477 public QuitAction(GUIDebugger guid) { 478 super(guid, S.QUIT, AJIcons.getIcon(AJIcons.QUIT_ICON)); 479 } 480 public void actionPerformed(ActionEvent e) { 481 ajdb().execute(C.QUIT); 482 } 483 int key() { 484 return K.QUIT; 485 } 486 } 487 488 class JBuilderQuitAction extends QuitAction { 489 public JBuilderQuitAction(GUIDebugger guid) { 490 super(guid); 491 } 492 public void _actionPerformed(ActionEvent e) { 494 guid().getGui().setVisible(false); 495 guid().getGui().dispose(); 496 } 497 } 498 499 interface ThreadGetter { 500 public String getThread(); 501 } 502 503 abstract class CtrlThreadGetterNeedingActionStruct 504 extends CtrlAbstractActionStruct { 505 506 protected ThreadGetter getter; 507 protected String cmd; 508 509 public CtrlThreadGetterNeedingActionStruct(GUIDebugger guid, String label, Icon icon, 510 String cmd, ThreadGetter getter) 511 { 512 super(guid, label, icon); 513 this.getter = getter; 514 this.cmd = cmd; 515 } 516 517 public void actionPerformed(ActionEvent e) { 518 String thread = getter.getThread(); 519 if (thread == null) { 520 return; 521 } 522 String command = cmd + " " + thread; 523 ajdb().execute(command); 524 } 525 526 } 527 528 class WhereAction extends CtrlThreadGetterNeedingActionStruct { 529 public WhereAction(GUIDebugger guid, ThreadGetter getter) { 530 super(guid, S.WHERE, AJIcons.getIcon(AJIcons.WHERE_ICON), 531 C.WHERE, getter); 532 } 533 int key() { 534 return K.WHERE; 535 } 536 } 537 538 class SuspendAction extends CtrlThreadGetterNeedingActionStruct { 539 public SuspendAction(GUIDebugger guid, ThreadGetter getter) { 540 super(guid, S.SUSPEND, AJIcons.getIcon(AJIcons.SUSPEND_ICON), 541 C.SUSPEND, getter); 542 } 543 int key() { 544 return K.SUSPEND; 545 } 546 } 547 548 class ResumeAction extends CtrlThreadGetterNeedingActionStruct { 549 public ResumeAction(GUIDebugger guid, ThreadGetter getter) { 550 super(guid, S.RESUME, AJIcons.getIcon(AJIcons.RESUME_ICON), 551 C.RESUME, getter); 552 } 553 int key() { 554 return K.RESUME; 555 } 556 } 557 558 class ForteResumeAction extends ResumeAction { 559 public ForteResumeAction(GUIDebugger guid, ThreadGetter getter) { 560 super(guid, getter); 561 } 562 public void actionPerformed(ActionEvent e) { 563 if (ajdb().vm() == null) { 564 ajdb().execute(C.RUN); 565 } else { 566 super.actionPerformed(e); 567 } 568 } 569 } 570 | Popular Tags |