KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > aspectj > ajde > ui > swing > PointcutWizard


1 /* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2  *
3  * This file is part of the IDE support 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
25 package org.aspectj.ajde.ui.swing;
26
27 import java.util.*;
28 import javax.swing.*;
29 import java.awt.*;
30 import java.awt.event.*;
31 import org.aspectj.asm.*;
32 import org.aspectj.asm.associations.*;
33 import org.aspectj.asm.views.*;
34 import org.aspectj.ajde.*;
35 import org.aspectj.ajde.internal.*;
36 import org.aspectj.ajde.ui.*;
37
38 /**
39  * @author Mik Kersten
40  */

41 class PointcutWizard extends JFrame {
42     private BrowserViewPanel typeTreeView = null;
43     private java.util.List JavaDoc signatures = null;
44
45     JPanel jPanel1 = new JPanel();
46     JPanel jPanel2 = new JPanel();
47     JPanel jPanel4 = new JPanel();
48     JLabel jLabel1 = new JLabel();
49     BorderLayout borderLayout1 = new BorderLayout();
50     BorderLayout borderLayout2 = new BorderLayout();
51     BorderLayout borderLayout3 = new BorderLayout();
52     JLabel jLabel4 = new JLabel();
53     JPanel jPanel3 = new JPanel();
54     JCheckBox jCheckBox5 = new JCheckBox();
55     JCheckBox jCheckBox4 = new JCheckBox();
56     JCheckBox jCheckBox3 = new JCheckBox();
57     JCheckBox jCheckBox2 = new JCheckBox();
58     JCheckBox jCheckBox1 = new JCheckBox();
59     JButton cancel_button = new JButton();
60     JButton ok_button = new JButton();
61     JPanel jPanel5 = new JPanel();
62
63     public PointcutWizard(java.util.List JavaDoc signatures) {
64         this.signatures = signatures;
65         ArrayList views = new ArrayList();
66         views.add(StructureViewProperties.Hierarchy.INHERITANCE);
67         typeTreeView = new BrowserViewPanel(AjdeUIManager.getDefault().getIconRegistry(), views, StructureViewProperties.Hierarchy.INHERITANCE);
68         typeTreeView.updateTree(Ajde.getDefault().getEditorManager().getCurrFile());
69         try {
70             jbInit();
71         }
72         catch(Exception JavaDoc e) {
73             Ajde.getDefault().getErrorHandler().handleError("Could not initialize GUI.", e);
74         }
75         this.setSize(400, 400);
76         this.setIconImage(((ImageIcon)AjdeUIManager.getDefault().getIconRegistry().getStructureSwingIcon(ProgramElementNode.Kind.POINTCUT)).getImage());
77     }
78
79     private Map getViewProperties() {
80         Map views = new HashMap();
81         GlobalViewProperties INHERITANCE_VIEW = new GlobalViewProperties(StructureViewProperties.Hierarchy.INHERITANCE);
82         INHERITANCE_VIEW.addRelation(Inheritance.INHERITS_RELATION);
83         views.put(INHERITANCE_VIEW.toString(), INHERITANCE_VIEW);
84         return views;
85     }
86
87     private void jbInit() throws Exception JavaDoc {
88         jLabel1.setFont(new java.awt.Font JavaDoc("Dialog", 0, 11));
89         jLabel1.setText("Generate pointcut designator for corresponding joinpoints:");
90         jPanel1.setLayout(borderLayout1);
91         jPanel4.setLayout(borderLayout2);
92         jPanel2.setLayout(borderLayout3);
93         jLabel4.setText("Select the target type that will host the generated pointcut:");
94         jLabel4.setFont(new java.awt.Font JavaDoc("Dialog", 0, 11));
95         jLabel4.setToolTipText("");
96         jPanel3.setMaximumSize(new Dimension(32767, 34));
97         jCheckBox5.setEnabled(false);
98         jCheckBox5.setFont(new java.awt.Font JavaDoc("Dialog", 0, 11));
99         jCheckBox5.setSelected(true);
100         jCheckBox5.setText("call");
101         jCheckBox4.setEnabled(false);
102         jCheckBox4.setFont(new java.awt.Font JavaDoc("Dialog", 0, 11));
103         jCheckBox4.setText("execution");
104         jCheckBox3.setEnabled(false);
105         jCheckBox3.setFont(new java.awt.Font JavaDoc("Dialog", 0, 11));
106         jCheckBox3.setText("initialization");
107         jCheckBox2.setEnabled(false);
108         jCheckBox2.setFont(new java.awt.Font JavaDoc("Dialog", 0, 11));
109         jCheckBox2.setText("static initialization");
110         jCheckBox1.setEnabled(false);
111         jCheckBox1.setFont(new java.awt.Font JavaDoc("Dialog", 0, 11));
112         jCheckBox1.setText("field get/set");
113         cancel_button.setFont(new java.awt.Font JavaDoc("Dialog", 0, 11));
114         cancel_button.setText("Cancel");
115         cancel_button.addActionListener(new java.awt.event.ActionListener JavaDoc() {
116             public void actionPerformed(ActionEvent e) {
117                 cancel_button_actionPerformed(e);
118             }
119         });
120         ok_button.setText("OK");
121         ok_button.addActionListener(new java.awt.event.ActionListener JavaDoc() {
122             public void actionPerformed(ActionEvent e) {
123                 ok_button_actionPerformed(e);
124             }
125         });
126         ok_button.setFont(new java.awt.Font JavaDoc("Dialog", 0, 11));
127         this.setTitle("Pointcut Wizard");
128         this.getContentPane().add(jPanel1, BorderLayout.CENTER);
129         jPanel1.add(jPanel4, BorderLayout.NORTH);
130         jPanel4.add(jLabel1, BorderLayout.NORTH);
131         jPanel4.add(jPanel3, BorderLayout.CENTER);
132         jPanel3.add(jCheckBox5, null);
133         jPanel3.add(jCheckBox4, null);
134         jPanel3.add(jCheckBox3, null);
135         jPanel3.add(jCheckBox2, null);
136         jPanel3.add(jCheckBox1, null);
137         jPanel1.add(jPanel2, BorderLayout.CENTER);
138         jPanel2.add(jLabel4, BorderLayout.NORTH);
139         jPanel2.add(typeTreeView, BorderLayout.CENTER);
140         jPanel1.add(jPanel5, BorderLayout.SOUTH);
141         jPanel5.add(ok_button, null);
142         jPanel5.add(cancel_button, null);
143     }
144
145     private void ok_button_actionPerformed(ActionEvent e) {
146         Ajde.getDefault().getEditorManager().pasteToCaretPos(generatePcd());
147         this.dispose();
148     }
149
150     private void cancel_button_actionPerformed(ActionEvent e) {
151         this.dispose();
152     }
153
154     private String JavaDoc generatePcd() {
155         String JavaDoc pcd = "\n\n" +
156             " pointcut temp(): \n";
157         for (Iterator it = signatures.iterator(); it.hasNext(); ) {
158             pcd += " call(* " + it.next() + ")";
159             if (it.hasNext()) {
160                 pcd += " ||";
161             } else {
162                 pcd += ";";
163             }
164             pcd += "\n";
165         }
166         return pcd;
167     }
168 }
169
170
Popular Tags