package cit.PureATN.Inspector; import java.awt.Color; import java.awt.Graphics; import java.awt.geom.AffineTransform; import java.util.ArrayList; import javax.swing.JFrame; import javax.swing.JPanel; import org.piccolo2d.PNode; import org.piccolo2d.event.PInputEventListener; import org.piccolo2d.nodes.PText; import cit.PureATN.ShortStroke; public class InspectorPanel extends JPanel { private static final long serialVersionUID = 1137383242193843501L; JFrame jf; InspectorHandler handler; ArrayList<PNode> pnlist = new ArrayList<PNode>(); public InspectorPanel(JFrame f, InspectorHandler h){ jf = f; handler = h; } public void paintComponent(Graphics g){ g.clearRect(0, 0, getWidth(), getHeight()); int y = 13; for(PNode pn: pnlist){ g.setColor(Color.black); g.drawString(pn.getClass().getName()+" "+pn.hashCode(), 10, y); y+=13; g.drawString("xy : "+f(pn.getX())+" | "+f(pn.getY()), 20, y); y+=13; g.drawString("wh : "+f(pn.getWidth())+" | "+f(pn.getHeight()), 20, y); y+=13; g.setColor(Color.blue); g.drawString("offset: "+f(pn.getOffset().getX())+" | "+f(pn.getOffset().getY()), 20, y); y+=13; g.drawString("zoom: "+f(pn.getScale()), 20, y); y+=13; AffineTransform at = pn.getTransform(); double[] d = new double[6]; at.getMatrix(d); g.setColor(Color.black); g.drawString("affine: "+g(d[0])+" "+g(d[2])+" "+g(d[4]), 20, y); y+=13; g.drawString(" "+g(d[1])+" "+g(d[3])+" "+g(d[5]), 28, y); y+=13; g.setColor(Color.green); for(PInputEventListener pie: pn.getInputEventListeners()){ if (pie.getClass().getName().length()<1){ String fullname = pie.getClass().getName(); int lastdotpos = fullname.lastIndexOf("."); g.drawString("event: "+fullname.substring(lastdotpos+1), 20, y); y+=13; } else { g.drawString("event: "+pie.getClass().getSimpleName(), 20, y); y+=13; } } g.setColor(Color.black); if (pn instanceof PText){ g.drawString("text: "+((PText)pn).getText(), 20, y); y+=13; } if (pn instanceof ShortStroke){ ShortStroke ss = (ShortStroke)pn; g.drawString("gentime: "+ss.getDateTime(), 20, y); y+=13; } g.setColor(Color.blue); g.drawString("children: "+pn.getChildrenCount(), 20, y); y+=13; y+=8; } } public String f(double d){ return String.format("%5.1f", d); } public String g(double d){ return String.format("%4.1f", d); } }