public void animatorFinished(AnimatorEvent arg0) { animations--; if (animations == 0) { for (Iterator iter = getNewSizes().keySet().iterator(); iter.hasNext(); ) { JRDesignElement element = (JRDesignElement) iter.next(); Rectangle rectangle = getNewSizes().get(element); element.setX(rectangle.x); element.setY(rectangle.y); element.setWidth(rectangle.width); element.setHeight(rectangle.height); // Calculate the best font height... if (element instanceof JRDesignTextElement) { JRStyledTextParser styledTextParser = JRStyledTextParser.getInstance(); JRDesignTextElement dte = (JRDesignTextElement) element; dte.setFontSize(null); for (int i = dte.getFontSize() - 1; i > 1; --i) { String text = "test"; // Convert the element in a print element... Map<Attribute, Object> attributes = JRFontUtil.getAttributes(new HashMap(), dte, Locale.getDefault()); JRStyledText styledText = styledTextParser.getStyledText( attributes, text, JRCommonText.MARKUP_STYLED_TEXT.equals( dte .getMarkup()), // FIXMEMARKUP only static styled text appears on // preview. no other markup Locale.getDefault()); JasperReportsContext context = IRLocalJasperReportsContext.getInstance(); JRTextMeasurerUtil measurerUtil = JRTextMeasurerUtil.getInstance(context); JRTextMeasurer measurer = measurerUtil.createTextMeasurer(dte); JRMeasuredText measuredText = measurer.measure(styledText, 0, dte.getHeight(), true); if (measuredText.getTextHeight() > dte.getHeight()) { if (i > 1) { dte.setFontSize(i); } else { break; } } else { break; } } } } } }
protected Map getStyledTextAttributes() { JRStyle style = getStyle(); Map styledTextAttributes = (Map) styledTextAttributesMap.get(style); if (styledTextAttributes == null) { styledTextAttributes = new HashMap(); JRFontUtil.getAttributes(styledTextAttributes, this, filler.getLocale()); styledTextAttributes.put(TextAttribute.FOREGROUND, getForecolor()); if (getMode() == JRElement.MODE_OPAQUE) { styledTextAttributes.put(TextAttribute.BACKGROUND, getBackcolor()); } styledTextAttributesMap.put(style, styledTextAttributes); } return styledTextAttributes; }