private Rectangle2D createShadow(RectangularShape bar,double xOffset,double yOffset,RectangleEdge base,boolean pegShadow){
  double x0=bar.getMinX();
  double x1=bar.getMaxX();
  double y0=bar.getMinY();
  double y1=bar.getMaxY();
  if (base == RectangleEdge.TOP) {
    x0+=xOffset;
    x1+=xOffset;
    if (!pegShadow) {
      y0+=yOffset;
    }
    y1+=yOffset;
  }
 else   if (base == RectangleEdge.BOTTOM) {
    x0+=xOffset;
    x1+=xOffset;
    y0+=yOffset;
    if (!pegShadow) {
      y1+=yOffset;
    }
  }
 else   if (base == RectangleEdge.LEFT) {
    if (!pegShadow) {
      x0+=xOffset;
    }
    x1+=xOffset;
    y0+=yOffset;
    y1+=yOffset;
  }
 else   if (base == RectangleEdge.RIGHT) {
    x0+=xOffset;
    if (!pegShadow) {
      x1+=xOffset;
    }
    y0+=yOffset;
    y1+=yOffset;
  }
  return new Rectangle2D.Double(x0,y0,(x1 - x0),(y1 - y0));
}

private Rectangle2D createShadow ( RectangularShape bar , double xOffset , double yOffset , RectangleEdge base , boolean pegShadow ) { double x0 = bar . getMinX ( ) ; double x1 = bar . getMaxX ( ) ; double y0 = bar . getMinY ( ) ; double y1 = bar . getMaxY ( ) ; if ( base == RectangleEdge . TOP ) { x0 += xOffset ; x1 += xOffset ; if ( ! pegShadow ) { y0 += yOffset ; } y1 += yOffset ; } else if ( base == RectangleEdge . BOTTOM ) { x0 += xOffset ; x1 += xOffset ; y0 += yOffset ; if ( ! pegShadow ) { y1 += yOffset ; } } else if ( base == RectangleEdge . LEFT ) { if ( ! pegShadow ) { x0 += xOffset ; } x1 += xOffset ; y0 += yOffset ; y1 += yOffset ; } else if ( base == RectangleEdge . RIGHT ) { x0 += xOffset ; if ( ! pegShadow ) { x1 += xOffset ; } y0 += yOffset ; y1 += yOffset ; } return new Rectangle2D . Double ( x0 , y0 , ( x1 - x0 ) , ( y1 - y0 ) ) ; }
creates a shadow for the bar .
