KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > aspectj > debugger > ide > IDEComponentDirector


1 /* -*- Mode: JDE; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2  *
3  * This file is part of the compiler 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  * Contributor(s):
23  */

24 package org.aspectj.debugger.ide;
25
26 import org.aspectj.debugger.base.DebuggerException;
27 import org.aspectj.debugger.base.NoVMException;
28 import org.aspectj.debugger.gui.AJUtil;
29 import org.aspectj.debugger.gui.ComponentDirector;
30 import java.io.File JavaDoc;
31 import java.util.*;
32
33 public class IDEComponentDirector extends ComponentDirector {
34
35     public static IDEComponentDirector proto;
36
37     protected IDEInterface ide;
38
39     public IDEComponentDirector(String JavaDoc title, String JavaDoc mode, IDEInterface ide) {
40         super(title, mode);
41         if (ide == null) {
42             ide = new IDEInterfaceImpl();
43         }
44         this.ide = ide;
45     }
46
47     public void go() {
48         if (proto != null) {
49             AJUtil.info("Only one debugger may run at once");
50             getGUIDebugger().exit();
51             return;
52         }
53         proto = this;
54         super.go();
55     }
56
57     public /*abstract*/ void showBreakpointDialog() {
58
59     }
60
61     public void finishUp() {
62         setBreakpoints();
63     }
64
65     public void title(String JavaDoc msg) {}
66     public final void title() {
67         title("");
68     }
69
70     public IDEInterface getIde() {
71         return ide;
72     }
73
74     protected void setBreakpoints() {
75         ((IDEInterfaceHelper)getIde()).settingBreakpointsFromIDE();
76         try {
77             setBreakpoints_();
78         } catch (Exception JavaDoc t) {
79             getGUIDebugger().getDebugger().handle(t);
80         } finally {
81             ((IDEInterfaceHelper)getIde()).doneSettingBreakpointsFromIDE();
82         }
83     }
84
85     protected void setBreakpoints_() {
86         Iterator iter = ide.getInitialBreakpoints().iterator();
87         while (iter.hasNext()) {
88             IDEInterface.SourceLineBreakable request = (IDEInterface.SourceLineBreakable)iter.next();
89             try {
90                 //String source = new File(request.getSourceName()).getAbsolutePath();
91
String JavaDoc source = request.getSourceName();
92                 int line = request.getLine();
93                 getDebugger().stopOnCommand(source, line);
94             } catch (DebuggerException de) {
95                 getGUIDebugger().handleDebuggerException(de);
96             }
97         }
98     }
99
100     public void shutDown() {
101         proto = null;
102         super.shutDown();
103     }
104 }
105
Popular Tags