userCallback( sa, sb );
	public String getImageMap( )	{		List saList = getShapeActions( );		if ( saList == null || saList.size( ) == 0 )		{			return null;		}		// Generate image map using associated trigger list.		StringBuffer sb = new StringBuffer( );		for ( Iterator iter = saList.iterator( ); iter.hasNext( ); )		{			ShapedAction sa = (ShapedAction) iter.next( );									String coords = shape2polyCoords( sa.getShape( ) );			if ( coords != null )			{				HTMLTag tag = new HTMLTag( "AREA" ); //$NON-NLS-1$				tag.addAttribute( HTMLAttribute.SHAPE, POLY_SHAPE );				tag.addAttribute( HTMLAttribute.COORDS, coords );								boolean changed = false;				changed |= processOnFocus( sa, tag );				changed |= processOnBlur( sa, tag );				changed |= processOnClick( sa, tag );				changed |= processOnMouseOver( sa, tag );				if ( changed )				{					sb.append( tag );				}			}		}				return sb.toString( );	}