@Override
	public void draw(Graphics2D g2, XYPlot plot, Rectangle2D dataArea,
					 ValueAxis domainAxis, ValueAxis rangeAxis,
			         int rendererIndex, PlotRenderingInfo info) 
	{
		PlotOrientation orientation = plot.getOrientation();
		RectangleEdge domainEdge = Plot.resolveDomainAxisLocation(plot.getDomainAxisLocation(), orientation);
		RectangleEdge rangeEdge = Plot.resolveRangeAxisLocation(plot.getRangeAxisLocation(), orientation);
		
		float anchorX = (float) domainAxis.valueToJava2D(this.getX(), dataArea, domainEdge);
		float anchorY = (float) rangeAxis.valueToJava2D(this.getY(), dataArea, rangeEdge);
		
		if (orientation == PlotOrientation.HORIZONTAL) {
			float tempAnchor = anchorX;
			anchorX = anchorY;
			anchorY = tempAnchor;
        }
    
        g2.setFont(getFont());
        Shape hotspot = TextUtilities.calculateRotatedStringBounds(getText(), g2, anchorX, anchorY, getTextAnchor(),
                    											   getRotationAngle(), getRotationAnchor());
        if (this.getBackgroundPaint() != null) 
        {
        	g2.setPaint(this.getBackgroundPaint());
			g2.fill(hotspot);
		}
        
		g2.setPaint(getPaint());
		TextUtilities.drawRotatedString(getText(), g2, anchorX + (3.6f * DOT_SIZE), anchorY + (0.2f * DOT_SIZE),
										getTextAnchor(), getRotationAngle(), getRotationAnchor());
		if (this.isOutlineVisible()) 
		{
			g2.setStroke(this.getOutlineStroke());
			g2.setPaint(this.getOutlinePaint());
			g2.draw(hotspot);
		}
		
		// cross drawing
//		g2.setPaint(getPaint());
//		g2.setStroke(new BasicStroke(1.0f));
//		g2.drawLine((int) anchorX - CROSS_SIZE / 2, (int) anchorY, (int) anchorX + CROSS_SIZE / 2, (int) anchorY);
//		g2.drawLine((int) anchorX, (int) anchorY - CROSS_SIZE / 2, (int) anchorX, (int) anchorY + CROSS_SIZE / 2);
		
		// dot drawing
		g2.setPaint(getPaint());
		g2.setStroke(new BasicStroke(1.0f));
		Ellipse2D e = new Ellipse2D.Double(anchorX - DOT_SIZE/2, anchorY - DOT_SIZE/2, DOT_SIZE, DOT_SIZE);
		g2.fill(e);
		
		String toolTip = getToolTipText();
		String url = getURL();
		if (toolTip != null || url != null) {
			addEntity(info, hotspot, rendererIndex, toolTip, url);
		}
	}