1 22 package org.aspectj.debugger.gui; 23 24 import org.aspectj.tools.ide.*; 25 import java.util.*; 26 27 public class AdviceNode extends AJTreeNode 28 implements Sourceable, 29 Breakable, 30 Advisable { 31 protected Declaration dec; 32 public AdviceNode(Declaration dec) { 33 super(AJIcons.ADVICE_ICON); 34 setUserObject((this.dec = dec).getSignature()); 35 setAlwaysExpand(true); 36 } 37 38 public String getToolTipText() { 39 if (dec == null) { 40 return "no declaration"; 42 } 43 if (dec.getCrosscutDeclaration() == null) { 44 return "no crosscut declaration"; 46 } 47 return showClass() + dec.getSignature() + " : " + 48 dec.getCrosscutDeclaration().getSignature(); 49 } 50 51 protected String showClass() { 52 if (getParent() instanceof MethodNode) { 53 return dec.getDeclaringType() + "."; 54 } 55 return ""; 56 } 57 58 public void showOnSource(AbstractSourcePane sourcePane) { 59 sourcePane.showSourceForFileAndLine(dec.getFilename(), dec.getBeginLine()); 60 } 61 62 public String getBreakpoint() { 63 return AJLineMapper.removeRoot(dec.getFilename()) + ":" + dec.getBeginLine(); 64 } 65 66 public List getAdvisedMethodStrings() { 67 List methods = new Vector(); 68 if (children == null) return methods; 69 Iterator iter = children.iterator(); 70 while (iter.hasNext()) { 71 methods.add(((MethodNode) iter.next()).getBreakpoint()); 72 } 73 return methods; 74 } 75 } 76 | Popular Tags |