*
*/
protected void applyImageBannersToBand(JRDesignBand band, Collection imageBanners, JRDesignExpression printWhenExpression ) {
int maxHeight = 0;
for (Iterator iter = imageBanners.iterator(); iter.hasNext();) {
ImageBanner imageBanner = (ImageBanner) iter.next();
if (imageBanner.getHeight() > maxHeight)
maxHeight = imageBanner.getHeight();
}
if (band != null){
//move everything down
for (Iterator iter =band.getChildren().iterator(); iter.hasNext();) {
JRDesignElement element = (JRDesignElement) iter.next();
element.setY(element.getY() + maxHeight);
}
for (Iterator iter = imageBanners.iterator(); iter.hasNext();) {
ImageBanner imageBanner = (ImageBanner) iter.next();
String path = "\"" + imageBanner.getImagePath().replaceAll("\\\\", "/") + "\"";
JRDesignImage image = new JRDesignImage(new JRDesignStyle().getDefaultStyleProvider());
JRDesignExpression imageExp = new JRDesignExpression();
imageExp.setText(path);
imageExp.setValueClass(String.class);
image.setExpression(imageExp);
image.setHeight(imageBanner.getHeight());
image.setWidth(imageBanner.getWidth());
image.setPrintWhenExpression(printWhenExpression);
image.setRemoveLineWhenBlank(true);
if (imageBanner.getAlign() == ImageBanner.ALIGN_LEFT)
image.setX(0);
else if (imageBanner.getAlign() == ImageBanner.ALIGN_RIGHT)
image.setX(getReport().getOptions().getPage().getWidth() - getReport().getOptions().getLeftMargin().intValue() - getReport().getOptions().getRightMargin().intValue() - imageBanner.getWidth());
else if (imageBanner.getAlign() == ImageBanner.ALIGN_CENTER){
int x = (getReport().getOptions().getPage().getWidth() -
getReport().getOptions().getRightMargin().intValue() -
getReport().getOptions().getLeftMargin().intValue() - imageBanner.getWidth()) / 2;
image.setX(getReport().getOptions().getLeftMargin().intValue() + x);
}
image.setY(0);
band.addElement(image);