KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > aspectj > debugger > gui > AJActions


1 /* -*- Mode: JDE; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2  *
3  * This file is part of the debugger and core tools for the AspectJ(tm)
4  * programming language; see http://aspectj.org
5  *
6  * The contents of this file are subject to the Mozilla Public License
7  * Version 1.1 (the "License"); you may not use this file except in
8  * compliance with the License. You may obtain a copy of the License at
9  * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/.
10  *
11  * Software distributed under the License is distributed on an "AS IS" basis,
12  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
13  * for the specific language governing rights and limitations under the
14  * License.
15  *
16  * The Original Code is AspectJ.
17  *
18  * The Initial Developer of the Original Code is Xerox Corporation. Portions
19  * created by Xerox Corporation are Copyright (C) 1999-2002 Xerox Corporation.
20  * All Rights Reserved.
21  */

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 JavaDoc QUIT = "Quit";
61     final static String JavaDoc STEPUP = "Step up";
62     final static String JavaDoc STEPI = "I-Step";
63     final static String JavaDoc STEP = "Step";
64     final static String JavaDoc NEXT = "Next";
65     final static String JavaDoc CONT = "Continue";
66     final static String JavaDoc RUN = "Run";
67     final static String JavaDoc BREAKPOINT = "Break";
68     final static String JavaDoc RESUME = "Resume";
69     final static String JavaDoc SUSPEND = "Suspend";
70     final static String JavaDoc WHERE = "Where";
71     final static String JavaDoc USE = "Use";
72     final static String JavaDoc CLEAR = "Clear";
73     final static String JavaDoc DUMP = "Dump";
74     final static String JavaDoc EVAL = "Evaluate";
75     final static String JavaDoc FIELDS = "Fields";
76     final static String JavaDoc LOCALS = "Locals";
77     final static String JavaDoc PRINT = "Print";
78     final static String JavaDoc HELP = "Help";
79     final static String JavaDoc ABOUT = "About";
80     final static String JavaDoc DISCONNECT = "Disconnect";
81     final static String JavaDoc CATCH = "Catch";
82     final static String JavaDoc EXECUTE = "Execute";
83     final static String JavaDoc WATCH = "Watch";
84 }
85
86 interface C {
87     final static String JavaDoc QUIT = "quit";
88     final static String JavaDoc STEPUP = "step up";
89     final static String JavaDoc STEPI = "stepi";
90     final static String JavaDoc STEP = "step";
91     final static String JavaDoc NEXT = "next";
92     final static String JavaDoc CONT = "cont";
93     final static String JavaDoc RUN = "run";
94     final static String JavaDoc BREAKPOINT = "stop";
95     final static String JavaDoc RESUME = "resume";
96     final static String JavaDoc SUSPEND = "suspend";
97     final static String JavaDoc WHERE = "where";
98     final static String JavaDoc USE = "use";
99     final static String JavaDoc CLEAR = "clear";
100     final static String JavaDoc DUMP = "dump";
101     final static String JavaDoc EVAL = "eval";
102     final static String JavaDoc FIELDS = "fields";
103     final static String JavaDoc LOCALS = "locals";
104     final static String JavaDoc PRINT = "print";
105     final static String JavaDoc HELP = "help";
106     final static String JavaDoc ABOUT = "about";
107     final static String JavaDoc DISCONNECT = "disconnect";
108     final static String JavaDoc CATCH = "catch";
109     final static String JavaDoc 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 JavaDoc LABEL = "label";
116     public final static String JavaDoc 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 JavaDoc 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 JavaDoc 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 JavaDoc 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 JavaDoc 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 // class JBuilderLineBreakpointAction extends BreakpointAction {
194
// public JBuilderLineBreakpointAction(GUIDebugger guid) {
195
// super(guid, "Add Breakpoint");
196

197 // }
198
// public void actionPerformed(ActionEvent e) {
199
// ((IDEComponentDirector)guid().getGui()).showBreakpointDialog();
200
// }
201
// }
202

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 JavaDoc 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     //XXX
493
public void _actionPerformed(ActionEvent e) {
494         guid().getGui().setVisible(false);
495         guid().getGui().dispose();
496     }
497 }
498
499 interface ThreadGetter {
500     public String JavaDoc getThread();
501 }
502
503 abstract class CtrlThreadGetterNeedingActionStruct
504     extends CtrlAbstractActionStruct {
505
506     protected ThreadGetter getter;
507     protected String JavaDoc cmd;
508
509     public CtrlThreadGetterNeedingActionStruct(GUIDebugger guid, String JavaDoc label, Icon icon,
510                                                String JavaDoc 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 JavaDoc thread = getter.getThread();
519         if (thread == null) {
520             return;
521         }
522         String JavaDoc 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