1 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 41 class PointcutWizard extends JFrame { 42 private BrowserViewPanel typeTreeView = null; 43 private java.util.List 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 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 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 { 88 jLabel1.setFont(new java.awt.Font ("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 ("Dialog", 0, 11)); 95 jLabel4.setToolTipText(""); 96 jPanel3.setMaximumSize(new Dimension(32767, 34)); 97 jCheckBox5.setEnabled(false); 98 jCheckBox5.setFont(new java.awt.Font ("Dialog", 0, 11)); 99 jCheckBox5.setSelected(true); 100 jCheckBox5.setText("call"); 101 jCheckBox4.setEnabled(false); 102 jCheckBox4.setFont(new java.awt.Font ("Dialog", 0, 11)); 103 jCheckBox4.setText("execution"); 104 jCheckBox3.setEnabled(false); 105 jCheckBox3.setFont(new java.awt.Font ("Dialog", 0, 11)); 106 jCheckBox3.setText("initialization"); 107 jCheckBox2.setEnabled(false); 108 jCheckBox2.setFont(new java.awt.Font ("Dialog", 0, 11)); 109 jCheckBox2.setText("static initialization"); 110 jCheckBox1.setEnabled(false); 111 jCheckBox1.setFont(new java.awt.Font ("Dialog", 0, 11)); 112 jCheckBox1.setText("field get/set"); 113 cancel_button.setFont(new java.awt.Font ("Dialog", 0, 11)); 114 cancel_button.setText("Cancel"); 115 cancel_button.addActionListener(new java.awt.event.ActionListener () { 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 () { 122 public void actionPerformed(ActionEvent e) { 123 ok_button_actionPerformed(e); 124 } 125 }); 126 ok_button.setFont(new java.awt.Font ("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 generatePcd() { 155 String 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 |