public void draw(Graphics2D g2, XYPlot plot, Rectangle2D dataArea, ValueAxis domainAxis, ValueAxis rangeAxis, int rendererIndex, PlotRenderingInfo info) {
    	if (labels.size() == 0)
    		return;
        if (info == null)
            return;
        EntityCollection entities = info.getOwner().getEntityCollection();
        if (entities == null)
            return;
		int index = plot.getDomainAxisIndex(domainAxis);
		if (index < 0)
			return;
		RectangleEdge axisEdge = Plot.resolveDomainAxisLocation(plot.getDomainAxisLocation(index), plot.getOrientation());
		double value = domainAxis.valueToJava2D(this.value, dataArea, axisEdge);
		Line2D line = null;
        if (axisEdge.equals(RectangleEdge.LEFT))
        	line = new Line2D.Double(dataArea.getMinX(), value, dataArea.getMaxX(), value);
        else if (axisEdge.equals(RectangleEdge.RIGHT))
        	line = new Line2D.Double(dataArea.getMaxX(), value, dataArea.getMinX(), value);
        else if (axisEdge.equals(RectangleEdge.TOP))
        	line = new Line2D.Double(value, dataArea.getMinY(), value, dataArea.getMaxY());
        else if (axisEdge.equals(RectangleEdge.BOTTOM))
        	line = new Line2D.Double(value, dataArea.getMaxY(), value, dataArea.getMinY());
		if (line == null)
			return;
		g2.setPaint(paint);
		g2.setStroke(stroke);
		g2.draw(line);
		drawLabels(g2, dataArea, line.getBounds2D(), axisEdge);
        AxisAnnotationEntity entity = new AxisAnnotationEntity(ShapeUtilities.createLineRegion(line, 6), rendererIndex, this);
        entities.add(entity);
    }