/** * @see prefuse.render.Renderer#render(java.awt.Graphics2D, prefuse.visual.VisualItem) */ public void render(Graphics2D g, VisualItem item) { Shape s = getShape(item); GraphicsLib.paint(g, item, m_line, getStroke(item), getRenderType(item)); // check if we have a text label, if so, render it if ( item.canGetString(VisualItem.LABEL) ) { float x = (float)m_box.getMinX(); float y = (float)m_box.getMinY() + m_ascent; // draw label background GraphicsLib.paint(g, item, s, null, RENDER_TYPE_FILL); String str = item.getString(VisualItem.LABEL); AffineTransform origTransform = g.getTransform(); AffineTransform transform = this.getTransform(item); if ( transform != null ) g.setTransform(transform); g.setFont(item.getFont()); g.setColor(ColorLib.getColor(item.getTextColor())); g.drawString(str, x, y); if ( transform != null ) g.setTransform(origTransform); } }
/** * @see prefuse.render.Renderer#setBounds(prefuse.visual.VisualItem) */ public void setBounds(VisualItem item) { if ( !m_manageBounds ) return; Shape shape = getShape(item); if ( shape == null ) { item.setBounds(item.getX(), item.getY(), 0, 0); } else if ( shape == m_line ) { GraphicsLib.setBounds(item, shape, getStroke(item)); } else { m_box.add(m_line.getX1(),m_line.getY1()); m_box.add(m_line.getX2(),m_line.getY2()); item.setBounds(m_box.getMinX(), m_box.getMinY(), m_box.getWidth(), m_box.getHeight()); } }
/** * @see prefuse.render.Renderer#locatePoint(java.awt.geom.Point2D, prefuse.visual.VisualItem) */ public boolean locatePoint(Point2D p, VisualItem item) { Shape s = getShape(item); if ( s == null ) { return false; } else if ( s == m_box && m_box.contains(p) ) { return true; } else { double width = Math.max(2, item.getSize()); double halfWidth = width/2.0; return s.intersects(p.getX()-halfWidth, p.getY()-halfWidth, width,width); } }
AbstractShapeRenderer sr = new ShapeRenderer(); ShapeRenderer sr_big = new ShapeRenderer(20); Renderer arY = new AxisRenderer(Constants.LEFT, Constants.TOP); Renderer arX = new AxisRenderer(Constants.CENTER, Constants.BOTTOM); PolygonRenderer pr = new PolygonRenderer(Constants.POLY_TYPE_LINE); LabelRenderer lr = new LabelRenderer("label");