if ( isInteractivityEnabled( ) ) { Trigger tg; EList elTriggers = b.getTriggers( ); Location[] loaHotspot = new Location[4]; Bounds bo = b.getBounds( ).scaledInstance( dScale ); double dLeft = bo.getLeft( ); double dTop = bo.getTop( ); double dWidth = bo.getWidth( ); double dHeight = bo.getHeight( ); loaHotspot[0] = LocationImpl.create( dLeft, dTop ); loaHotspot[1] = LocationImpl.create( dLeft + dWidth, dTop ); loaHotspot[2] = LocationImpl.create( dLeft + dWidth, dTop + dHeight ); loaHotspot[3] = LocationImpl.create( dLeft, dTop + dHeight );  if ( !elTriggers.isEmpty( ) ) { final InteractionEvent iev = (InteractionEvent) ( (EventObjectCache) ipr ).getEventObject( StructureSource.createUnknown( b ), InteractionEvent.class ); for ( int t = 0; t < elTriggers.size( ); t++ ) { tg = (Trigger) EcoreUtil.copy( (Trigger) elTriggers.get( t ) ); iev.addTrigger( tg ); }  final PolygonRenderEvent pre = (PolygonRenderEvent) ( (EventObjectCache) ipr ).getEventObject( StructureSource.createUnknown( b ), PolygonRenderEvent.class ); pre.setPoints( loaHotspot ); iev.setHotSpot( pre ); ipr.enableInteraction( iev ); }  }
	protected void renderChartBlock( IPrimitiveRenderer ipr, Block b,			Object oSource ) throws ChartException	{		final double dScale = getDevice( ).getDisplayServer( )				.getDpiResolution( ) / 72d;		final RectangleRenderEvent rre = (RectangleRenderEvent) ( (EventObjectCache) ipr ).getEventObject( oSource,				RectangleRenderEvent.class );		rre.updateFrom( b, dScale );		ipr.fillRectangle( rre );		ipr.drawRectangle( rre );	}