public static Element svgWaitIcon(Document document,double x,double y,double w,double h){
  Element g=SVGUtil.svgElement(document,SVGConstants.SVG_G_TAG);
  setAtt(g,SVGConstants.SVG_TRANSFORM_ATTRIBUTE,"translate(" + x + " "+ y+ ") scale("+ w+ " "+ h+ ")");
  Element thro=SVGUtil.svgElement(document,SVGConstants.SVG_PATH_TAG);
  setAtt(thro,SVGConstants.SVG_D_ATTRIBUTE,THROBBER_PATH);
  setStyle(thro,THROBBER_STYLE);
  Element anim=SVGUtil.svgElement(document,SVGConstants.SVG_ANIMATE_TRANSFORM_TAG);
  setAtt(anim,SVGConstants.SVG_ATTRIBUTE_NAME_ATTRIBUTE,SVGConstants.SVG_TRANSFORM_ATTRIBUTE);
  setAtt(anim,SVGConstants.SVG_ATTRIBUTE_TYPE_ATTRIBUTE,"XML");
  setAtt(anim,SVGConstants.SVG_TYPE_ATTRIBUTE,SVGConstants.SVG_ROTATE_ATTRIBUTE);
  setAtt(anim,SVGConstants.SVG_FROM_ATTRIBUTE,"0 .5 .5");
  setAtt(anim,SVGConstants.SVG_TO_ATTRIBUTE,"360 .5 .5");
  setAtt(anim,SVGConstants.SVG_BEGIN_ATTRIBUTE,fmt(Math.random() * 2) + "s");
  setAtt(anim,SVGConstants.SVG_DUR_ATTRIBUTE,"2s");
  setAtt(anim,SVGConstants.SVG_REPEAT_COUNT_ATTRIBUTE,"indefinite");
  setAtt(anim,SVGConstants.SVG_FILL_ATTRIBUTE,"freeze");
  thro.appendChild(anim);
  g.appendChild(thro);
  return g;
}

public static Element svgWaitIcon ( Document document , double x , double y , double w , double h ) { Element g = SVGUtil . svgElement ( document , SVGConstants . SVG_G_TAG ) ; setAtt ( g , SVGConstants . SVG_TRANSFORM_ATTRIBUTE , "translate(" + x + " " + y + ") scale(" + w + " " + h + ")" ) ; Element thro = SVGUtil . svgElement ( document , SVGConstants . SVG_PATH_TAG ) ; setAtt ( thro , SVGConstants . SVG_D_ATTRIBUTE , THROBBER_PATH ) ; setStyle ( thro , THROBBER_STYLE ) ; Element anim = SVGUtil . svgElement ( document , SVGConstants . SVG_ANIMATE_TRANSFORM_TAG ) ; setAtt ( anim , SVGConstants . SVG_ATTRIBUTE_NAME_ATTRIBUTE , SVGConstants . SVG_TRANSFORM_ATTRIBUTE ) ; setAtt ( anim , SVGConstants . SVG_ATTRIBUTE_TYPE_ATTRIBUTE , "XML" ) ; setAtt ( anim , SVGConstants . SVG_TYPE_ATTRIBUTE , SVGConstants . SVG_ROTATE_ATTRIBUTE ) ; setAtt ( anim , SVGConstants . SVG_FROM_ATTRIBUTE , "0 .5 .5" ) ; setAtt ( anim , SVGConstants . SVG_TO_ATTRIBUTE , "360 .5 .5" ) ; setAtt ( anim , SVGConstants . SVG_BEGIN_ATTRIBUTE , fmt ( Math . random ( ) * 2 ) + "s" ) ; setAtt ( anim , SVGConstants . SVG_DUR_ATTRIBUTE , "2s" ) ; setAtt ( anim , SVGConstants . SVG_REPEAT_COUNT_ATTRIBUTE , "indefinite" ) ; setAtt ( anim , SVGConstants . SVG_FILL_ATTRIBUTE , "freeze" ) ; thro . appendChild ( anim ) ; g . appendChild ( thro ) ; return g ; }
draw a simple " please wait " icon ( in - progress ) as placeholder for running renderings .
