use of java.awt.font.LineBreakMeasurer in project OpenNotebook by jaltekruse.
the class AnswerBoxGUI method drawMathObject.
public void drawMathObject(AnswerBoxObject object, Graphics g, Point pageOrigin, float zoomLevel) {
ScaledSizeAndPosition sap = getSizeAndPositionWithFontSize(object, pageOrigin, zoomLevel, object.getFontSize());
// TODO - decide how extra whitespace should be handled, should it always be stored?
// students may use it to format a multi-line answer
// although useful whitespace will likely not coming at the very beginning or very end
// of an answer
List<? extends MathObjectAttribute> correctAnswers = object.getListWithName(AnswerBoxObject.CORRECT_ANSWERS).getValues();
if (!object.getStudentAnswer().trim().equals("") || !correctAnswers.isEmpty()) {
Font f = g.getFont();
g.setColor(new Color(150, 210, 255));
g.fillRect(sap.getxOrigin(), sap.getyOrigin(), sap.getWidth(), sap.getHeight());
String message = object.getStudentAnswer();
for (MathObjectAttribute mAtt : correctAnswers) {
message += mAtt.getValue().toString() + ";";
}
message = message.substring(0, message.length() - 1);
if (message.isEmpty()) {
// cannot have an empty string in AttributedString
message = " ";
}
g.setFont(f.deriveFont(sap.getFontSize()));
g.setColor(Color.BLACK);
Graphics2D graphics2D = (Graphics2D) g;
GraphicsEnvironment.getLocalGraphicsEnvironment();
AttributedString messageAS = new AttributedString(message);
messageAS.addAttribute(TextAttribute.FONT, g.getFont());
AttributedCharacterIterator messageIterator = messageAS.getIterator();
FontRenderContext messageFRC = graphics2D.getFontRenderContext();
LineBreakMeasurer messageLBM = new LineBreakMeasurer(messageIterator, messageFRC);
Insets insets = new Insets(2, 2, 2, 2);
float wrappingWidth = sap.getWidth() - insets.left - insets.right;
float x = sap.getxOrigin() + insets.left;
float y = sap.getyOrigin() + insets.top;
while (messageLBM.getPosition() < messageIterator.getEndIndex()) {
TextLayout textLayout = messageLBM.nextLayout(wrappingWidth);
y += textLayout.getAscent();
textLayout.draw(graphics2D, x, y);
y += textLayout.getDescent() + textLayout.getLeading();
x = sap.getxOrigin() + insets.left;
}
g.setFont(f);
} else {
g.setColor(new Color(230, 230, 230));
g.fillRect(sap.getxOrigin(), sap.getyOrigin(), sap.getWidth(), sap.getHeight());
}
g.setColor(Color.BLACK);
g.drawRect(sap.getxOrigin(), sap.getyOrigin(), sap.getWidth(), sap.getHeight());
}
use of java.awt.font.LineBreakMeasurer in project hid-serial by rayshobby.
the class StyledString method getLines.
/**
* Get the text layouts for display if the string has changed since last call
* to this method regenerate them.
*
* @param g2d Graphics2D display context
* @return a list of text layouts for rendering
*/
public LinkedList<TextLayoutInfo> getLines(Graphics2D g2d) {
if (font != g2d.getFont()) {
setFont(g2d.getFont());
invalidText = true;
}
if (invalidText) {
styledText = new AttributedString(plainText);
styledText = insertParagraphMarkers(plainText, styledText);
applyAttributes();
invalidText = false;
invalidLayout = true;
}
if (invalidLayout) {
linesInfo.clear();
if (plainText.length() > 0) {
textHeight = 0;
maxLineLength = 0;
maxLineHeight = 0;
nbrLines = 0;
AttributedCharacterIterator paragraph = styledText.getIterator(null, 0, plainText.length());
FontRenderContext frc = g2d.getFontRenderContext();
lineMeasurer = new LineBreakMeasurer(paragraph, frc);
float yposinpara = 0;
int charssofar = 0;
while (lineMeasurer.getPosition() < plainText.length()) {
TextLayout layout = lineMeasurer.nextLayout(wrapWidth);
float advance = layout.getVisibleAdvance();
if (justify) {
if (justify && advance > justifyRatio * wrapWidth) {
//System.out.println(layout.getVisibleAdvance() + " " + breakWidth + " "+ layout.get);
// If advance > breakWidth then we have a line break
float jw = (advance > wrapWidth) ? advance - wrapWidth : wrapWidth;
layout = layout.getJustifiedLayout(jw);
}
}
// Remember the longest and tallest value for a layout so far.
float lh = getHeight(layout);
if (lh > maxLineHeight)
maxLineHeight = lh;
textHeight += lh;
if (advance <= wrapWidth && advance > maxLineLength)
maxLineLength = advance;
// Store layout and line info
linesInfo.add(new TextLayoutInfo(nbrLines, layout, charssofar, layout.getCharacterCount(), yposinpara));
charssofar += layout.getCharacterCount();
yposinpara += lh;
nbrLines++;
}
}
invalidLayout = false;
}
return linesInfo;
}
use of java.awt.font.LineBreakMeasurer in project adempiere by adempiere.
the class WFNode method paintComponent.
// getPreferredSize
/**
* Paint Component
* @param g Graphics
*/
protected void paintComponent(Graphics g) {
Graphics2D g2D = (Graphics2D) g;
Rectangle bounds = getBounds();
m_icon.paintIcon(this, g2D, 0, 0);
// Paint Text
Color color = getForeground();
g2D.setPaint(color);
Font font = getFont();
//
AttributedString aString = new AttributedString(m_name);
aString.addAttribute(TextAttribute.FONT, font);
aString.addAttribute(TextAttribute.FOREGROUND, color);
AttributedCharacterIterator iter = aString.getIterator();
//
LineBreakMeasurer measurer = new LineBreakMeasurer(iter, g2D.getFontRenderContext());
float width = s_size.width - m_icon.getIconWidth() - 2;
TextLayout layout = measurer.nextLayout(width);
float xPos = m_icon.getIconWidth();
float yPos = layout.getAscent() + 2;
//
layout.draw(g2D, xPos, yPos);
// 2 pt
width = s_size.width - 4;
while (measurer.getPosition() < iter.getEndIndex()) {
layout = measurer.nextLayout(width);
yPos += layout.getAscent() + layout.getDescent() + layout.getLeading();
layout.draw(g2D, 2, yPos);
}
}
use of java.awt.font.LineBreakMeasurer in project adempiere by adempiere.
the class TableElement method printColumn.
// paint
/**
* Print non zero width Column
* @param g2D graphics
* @param col column index
* @param origX start X
* @param origY start Y
* @param leftVline if true print left vertical line (for first column)
* @param firstRow first row index
* @param nextPageRow row index of next page
* @param isView true if online view (IDs are links)
*/
private void printColumn(Graphics2D g2D, int col, final int origX, final int origY, boolean leftVline, final int firstRow, final int nextPageRow, boolean isView) {
int curX = origX;
// start from top
int curY = origY;
//
// includes 2*Gaps+Line
float colWidth = ((Float) m_columnWidths.get(col)).floatValue();
float netWidth = colWidth - (2 * H_GAP) - m_tFormat.getVLineStroke().floatValue();
if (leftVline)
netWidth -= m_tFormat.getVLineStroke().floatValue();
int rowHeight = m_headerHeight;
float netHeight = rowHeight - (4 * m_tFormat.getLineStroke().floatValue()) + (2 * V_GAP);
if (DEBUG_PRINT)
log.finer("#" + col + " - x=" + curX + ", y=" + curY + ", width=" + colWidth + "/" + netWidth + ", HeaderHeight=" + rowHeight + "/" + netHeight);
String alignment = m_columnJustification[col];
// paint header ***************************************************
if (// draw left | line
leftVline) {
g2D.setPaint(m_tFormat.getVLine_Color());
g2D.setStroke(m_tFormat.getVLine_Stroke());
if (// -> | (left)
m_tFormat.isPaintBoundaryLines())
g2D.drawLine(origX, (int) (origY + m_tFormat.getLineStroke().floatValue()), origX, (int) (origY + rowHeight - (4 * m_tFormat.getLineStroke().floatValue())));
curX += m_tFormat.getVLineStroke().floatValue();
}
// X - start line
if (m_tFormat.isPaintHeaderLines()) {
g2D.setPaint(m_tFormat.getHeaderLine_Color());
g2D.setStroke(m_tFormat.getHeader_Stroke());
// -> - (top)
g2D.drawLine(// -> - (top)
origX, // -> - (top)
origY, (int) (origX + colWidth - m_tFormat.getVLineStroke().floatValue()), origY);
}
// thick
curY += (2 * m_tFormat.getLineStroke().floatValue());
// Background
Color bg = getBackground(HEADER_ROW, col);
if (!bg.equals(Color.white)) {
g2D.setPaint(bg);
g2D.fillRect(curX, (int) (curY - m_tFormat.getLineStroke().floatValue()), (int) (colWidth - m_tFormat.getVLineStroke().floatValue()), (int) (rowHeight - (4 * m_tFormat.getLineStroke().floatValue())));
}
int tempCurY = curY;
// upper left gap
curX += H_GAP;
curY += V_GAP;
// Header
AttributedString aString = null;
AttributedCharacterIterator iter = null;
LineBreakMeasurer measurer = null;
float usedHeight = 0;
// Calculate column header height - teo_sarca [ 1673429 ]
String headerString = m_columnHeader[col].toString();
if (headerString.length() == 0)
headerString = " ";
//if (m_columnHeader[col].toString().length() > 0)
{
aString = new AttributedString(headerString);
aString.addAttribute(TextAttribute.FONT, getFont(HEADER_ROW, col));
aString.addAttribute(TextAttribute.FOREGROUND, getColor(HEADER_ROW, col));
//
boolean fastDraw = LayoutEngine.s_FASTDRAW;
if (fastDraw && !isView && !Util.is8Bit(headerString))
fastDraw = false;
iter = aString.getIterator();
measurer = new LineBreakMeasurer(iter, g2D.getFontRenderContext());
while (// print header
measurer.getPosition() < iter.getEndIndex()) {
TextLayout layout = measurer.nextLayout(netWidth + 2);
if (iter.getEndIndex() != measurer.getPosition())
fastDraw = false;
float lineHeight = layout.getAscent() + layout.getDescent() + layout.getLeading();
if (alignment.equals(MPrintFormatItem.FIELDALIGNMENTTYPE_Block)) {
layout = layout.getJustifiedLayout(netWidth + 2);
fastDraw = false;
}
curY += layout.getAscent();
float penX = curX;
if (alignment.equals(MPrintFormatItem.FIELDALIGNMENTTYPE_Center))
penX += (netWidth - layout.getAdvance()) / 2;
else if ((alignment.equals(MPrintFormatItem.FIELDALIGNMENTTYPE_TrailingRight) && layout.isLeftToRight()) || (alignment.equals(MPrintFormatItem.FIELDALIGNMENTTYPE_LeadingLeft) && !layout.isLeftToRight()))
penX += netWidth - layout.getAdvance();
//
if (fastDraw) {
// Bug - set Font/Color explicitly
g2D.setFont(getFont(HEADER_ROW, col));
g2D.setColor(getColor(HEADER_ROW, col));
g2D.drawString(iter, penX, curY);
} else
// -> text
layout.draw(g2D, penX, curY);
curY += layout.getDescent() + layout.getLeading();
usedHeight += layout.getAscent() + layout.getDescent();
if (// one line only
!m_multiLineHeader)
break;
}
}
curX += netWidth + H_GAP;
curY = tempCurY + (int) (rowHeight - (4 * m_tFormat.getLineStroke().floatValue()));
// Y end line
g2D.setPaint(m_tFormat.getVLine_Color());
g2D.setStroke(m_tFormat.getVLine_Stroke());
if (// -> | (right)
m_tFormat.isPaintVLines())
g2D.drawLine(curX, (int) (origY + m_tFormat.getLineStroke().floatValue()), curX, (int) (origY + rowHeight - (4 * m_tFormat.getLineStroke().floatValue())));
curX += m_tFormat.getVLineStroke().floatValue();
// X end line
if (m_tFormat.isPaintHeaderLines()) {
g2D.setPaint(m_tFormat.getHeaderLine_Color());
g2D.setStroke(m_tFormat.getHeader_Stroke());
// -> - (button)
g2D.drawLine(// -> - (button)
origX, // -> - (button)
curY, (int) (origX + colWidth - m_tFormat.getVLineStroke().floatValue()), curY);
}
// thick
curY += (2 * m_tFormat.getLineStroke().floatValue());
// paint Data ***************************************************
for (int row = firstRow; row < nextPageRow; row++) {
// includes 2*Gaps+Line
rowHeight = ((Float) m_rowHeights.get(row)).intValue();
netHeight = rowHeight - (2 * V_GAP) - m_tFormat.getLineStroke().floatValue();
int rowYstart = curY;
curX = origX;
if (// draw left | line
leftVline) {
g2D.setPaint(m_tFormat.getVLine_Color());
g2D.setStroke(m_tFormat.getVLine_Stroke());
if (m_tFormat.isPaintBoundaryLines())
// -> | (left)
g2D.drawLine(// -> | (left)
curX, // -> | (left)
rowYstart, curX, (int) (rowYstart + rowHeight - m_tFormat.getLineStroke().floatValue()));
curX += m_tFormat.getVLineStroke().floatValue();
}
// Background
bg = getBackground(row, col);
if (!bg.equals(Color.white)) {
g2D.setPaint(bg);
g2D.fillRect(curX, curY, (int) (colWidth - m_tFormat.getVLineStroke().floatValue()), (int) (rowHeight - m_tFormat.getLineStroke().floatValue()));
}
// upper left gap
curX += H_GAP;
curY += V_GAP;
// actual data
Object[] printItems = getPrintItems(row, col);
float penY = curY;
// suppress repeated values
boolean suppress = false;
if (m_colSuppressRepeats[col] && row > 0 && row != firstRow) {
Object[] lastItems = {};
lastItems = getPrintItems(row - 1, col);
if (Arrays.equals(lastItems, printItems))
suppress = true;
}
if (!suppress) {
for (int index = 0; index < printItems.length; index++) {
if (printItems[index] == null)
;
else if (printItems[index] instanceof ImageElement) {
Image imageToDraw = ((ImageElement) printItems[index]).getImage();
if (// teo_sarca [ 1674706 ]
imageToDraw != null) {
// Draw image using the scale factor - teo_sarca, [ 1673548 ] Image is not scaled in a report table cell
double scale = ((ImageElement) printItems[index]).getScaleFactor();
if (scale != 1.0) {
AffineTransform transform = new AffineTransform();
transform.translate(curX, penY);
transform.scale(scale, scale);
g2D.drawImage(imageToDraw, transform, this);
} else {
g2D.drawImage(imageToDraw, curX, (int) penY, this);
}
}
} else if (printItems[index] instanceof BarcodeElement) {
try {
Barcode barcode = ((BarcodeElement) printItems[index]).getBarcode();
if (barcode != null) {
double scale = ((BarcodeElement) printItems[index]).getScaleFactor();
if (scale != 1.0) {
int w = barcode.getWidth();
int h = barcode.getHeight();
// draw barcode to buffer
BufferedImage image = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
Graphics2D temp = (Graphics2D) image.getGraphics();
barcode.draw(temp, 0, 0);
// scale barcode and paint
AffineTransform transform = new AffineTransform();
transform.translate(curX, penY);
transform.scale(scale, scale);
g2D.drawImage(image, transform, this);
} else {
barcode.draw(g2D, curX, (int) penY);
}
}
} catch (OutputException e) {
}
} else if (printItems[index] instanceof Boolean) {
// center
int penX = curX + (int) ((netWidth - LayoutEngine.IMAGE_SIZE.width) / 2);
if (((Boolean) printItems[index]).booleanValue())
g2D.drawImage(LayoutEngine.IMAGE_TRUE, penX, (int) penY, this);
else
g2D.drawImage(LayoutEngine.IMAGE_FALSE, penX, (int) penY, this);
penY += LayoutEngine.IMAGE_SIZE.height;
} else if (printItems[index] instanceof HTMLRenderer) {
HTMLRenderer renderer = (HTMLRenderer) printItems[index];
Rectangle allocation = new Rectangle((int) colWidth, (int) netHeight);
// log.finest( "printColumn HTML - " + allocation);
g2D.translate(curX, penY);
renderer.paint(g2D, allocation);
g2D.translate(-curX, -penY);
penY += allocation.getHeight();
} else {
String str = printItems[index].toString();
if (DEBUG_PRINT)
log.fine("row=" + row + ",col=" + col + " - " + str + " 8Bit=" + Util.is8Bit(str));
if (str.length() > 0) {
usedHeight = 0;
String[] lines = Pattern.compile("$", Pattern.MULTILINE).split(str);
for (int lineNo = 0; lineNo < lines.length; lineNo++) {
aString = new AttributedString(lines[lineNo]);
aString.addAttribute(TextAttribute.FONT, getFont(row, col));
if (// ID
isView && printItems[index] instanceof NamePair) {
aString.addAttribute(TextAttribute.FOREGROUND, LINK_COLOR);
aString.addAttribute(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_LOW_ONE_PIXEL, 0, str.length());
} else
aString.addAttribute(TextAttribute.FOREGROUND, getColor(row, col));
//
iter = aString.getIterator();
boolean fastDraw = LayoutEngine.s_FASTDRAW;
if (fastDraw && !isView && !Util.is8Bit(lines[lineNo]))
fastDraw = false;
measurer = new LineBreakMeasurer(iter, g2D.getFontRenderContext());
while (// print element
measurer.getPosition() < iter.getEndIndex()) {
TextLayout layout = measurer.nextLayout(netWidth + 2);
if (iter.getEndIndex() != measurer.getPosition())
fastDraw = false;
float lineHeight = layout.getAscent() + layout.getDescent() + layout.getLeading();
if ((m_columnMaxHeight[col] <= 0 || (usedHeight + lineHeight) <= m_columnMaxHeight[col]) && (usedHeight + lineHeight) <= netHeight) {
if (alignment.equals(MPrintFormatItem.FIELDALIGNMENTTYPE_Block) && measurer.getPosition() < iter.getEndIndex()) {
layout = layout.getJustifiedLayout(netWidth + 2);
fastDraw = false;
}
penY += layout.getAscent();
float penX = curX;
if (alignment.equals(MPrintFormatItem.FIELDALIGNMENTTYPE_Center))
penX += (netWidth - layout.getAdvance()) / 2;
else if ((alignment.equals(MPrintFormatItem.FIELDALIGNMENTTYPE_TrailingRight) && layout.isLeftToRight()) || (alignment.equals(MPrintFormatItem.FIELDALIGNMENTTYPE_LeadingLeft) && !layout.isLeftToRight()))
penX += netWidth - layout.getAdvance();
//
if (fastDraw) {
// Bug - set Font/Color explicitly
g2D.setFont(getFont(row, col));
if (// ID
isView && printItems[index] instanceof NamePair) {
g2D.setColor(LINK_COLOR);
// TextAttribute.UNDERLINE
} else
g2D.setColor(getColor(row, col));
g2D.drawString(iter, penX, penY);
} else
// -> text
layout.draw(g2D, penX, penY);
if (DEBUG_PRINT)
log.fine("row=" + row + ",col=" + col + " - " + str + " - x=" + penX + ",y=" + penY);
penY += layout.getDescent() + layout.getLeading();
usedHeight += lineHeight;
//
if (// FirstLineOny
m_columnMaxHeight[col] == -1)
break;
}
}
// print element
}
// for all lines
}
// length > 0
}
// non boolean
}
// for all print items
}
// not suppressed
curY += netHeight + V_GAP;
curX += netWidth + H_GAP;
// Y end line
g2D.setPaint(m_tFormat.getVLine_Color());
g2D.setStroke(m_tFormat.getVLine_Stroke());
if (m_tFormat.isPaintVLines())
// -> | (right)
g2D.drawLine(// -> | (right)
curX, // -> | (right)
rowYstart, curX, (int) (rowYstart + rowHeight - m_tFormat.getLineStroke().floatValue()));
curX += m_tFormat.getVLineStroke().floatValue();
// X end line
if (// last Line
row == m_data.length - 1) {
/**
* Bug fix - Bottom line was always displayed whether or not header lines was set to be visible
* @author ashley
*/
if (m_tFormat.isPaintHeaderLines()) {
g2D.setPaint(m_tFormat.getHeaderLine_Color());
g2D.setStroke(m_tFormat.getHeader_Stroke());
// -> - (last line)
g2D.drawLine(// -> - (last line)
origX, // -> - (last line)
curY, (int) (origX + colWidth - m_tFormat.getVLineStroke().floatValue()), curY);
// thick
curY += (2 * m_tFormat.getLineStroke().floatValue());
} else {
curY += m_tFormat.getLineStroke().floatValue();
}
} else {
// next line is a funcion column -> underline this
boolean nextIsFunction = m_functionRows.contains(new Integer(row + 1));
if (nextIsFunction && m_functionRows.contains(new Integer(row)))
// this is a function line too
nextIsFunction = false;
if (nextIsFunction) {
g2D.setPaint(m_tFormat.getFunctFG_Color());
g2D.setStroke(m_tFormat.getHLine_Stroke());
// -> - (bottom)
g2D.drawLine(// -> - (bottom)
origX, // -> - (bottom)
curY, (int) (origX + colWidth - m_tFormat.getVLineStroke().floatValue()), curY);
} else if (m_tFormat.isPaintHLines()) {
g2D.setPaint(m_tFormat.getHLine_Color());
g2D.setStroke(m_tFormat.getHLine_Stroke());
// -> - (bottom)
g2D.drawLine(// -> - (bottom)
origX, // -> - (bottom)
curY, (int) (origX + colWidth - m_tFormat.getVLineStroke().floatValue()), curY);
}
curY += m_tFormat.getLineStroke().floatValue();
}
}
// for all rows
}
use of java.awt.font.LineBreakMeasurer in project adempiere by adempiere.
the class StringElement method calculateSize.
// translate
/**************************************************************************
* Layout and Calculate Size.
* Set p_width & p_height
* @return Size
*/
protected boolean calculateSize() {
if (p_sizeCalculated)
return true;
//
FontRenderContext frc = new FontRenderContext(null, true, true);
TextLayout layout = null;
p_height = 0f;
p_width = 0f;
// No Limit
if (p_maxWidth == 0f && p_maxHeight == 0f) {
for (int i = 0; i < m_string_paper.length; i++) {
AttributedCharacterIterator iter = m_string_paper[i].getIterator();
if (iter.getBeginIndex() == iter.getEndIndex())
continue;
// Check for Tab (just first)
int tabPos = -1;
for (char c = iter.first(); c != CharacterIterator.DONE && tabPos == -1; c = iter.next()) {
if (c == '\t')
tabPos = iter.getIndex();
}
if (tabPos == -1) {
layout = new TextLayout(iter, frc);
p_height += layout.getAscent() + layout.getDescent() + layout.getLeading();
if (p_width < layout.getAdvance())
p_width = layout.getAdvance();
} else // with tab
{
LineBreakMeasurer measurer = new LineBreakMeasurer(iter, frc);
layout = measurer.nextLayout(9999, tabPos, false);
p_height += layout.getAscent() + layout.getDescent() + layout.getLeading();
float width = getTabPos(0, layout.getAdvance());
layout = measurer.nextLayout(9999, iter.getEndIndex(), true);
width += layout.getAdvance();
if (p_width < width)
p_width = width;
}
}
// Add CheckBox Size
if (m_check != null) {
p_width += LayoutEngine.IMAGE_SIZE.width;
if (p_height < LayoutEngine.IMAGE_SIZE.height)
p_height = LayoutEngine.IMAGE_SIZE.height;
}
} else // Size Limits
{
p_width = p_maxWidth;
for (int i = 0; i < m_string_paper.length; i++) {
AttributedCharacterIterator iter = m_string_paper[i].getIterator();
if (iter.getBeginIndex() == iter.getEndIndex())
continue;
LineBreakMeasurer measurer = new LineBreakMeasurer(iter, frc);
// System.out.println("StringLength=" + m_originalString.length() + " MaxWidth=" + p_maxWidth + " MaxHeight=" + p_maxHeight);
while (measurer.getPosition() < iter.getEndIndex()) {
// no need to expand tab space for limited space
layout = measurer.nextLayout(p_maxWidth);
float lineHeight = layout.getAscent() + layout.getDescent() + layout.getLeading();
// System.out.println(" LineWidth=" + layout.getAdvance() + " LineHeight=" + lineHeight);
if (// one line only
p_maxHeight == -1f && i == 0)
p_maxHeight = lineHeight;
if (p_maxHeight == 0f || (p_height + lineHeight) <= p_maxHeight)
p_height += lineHeight;
}
}
// Add CheckBox Size
if (m_check != null) {
// p_width += LayoutEngine.IMAGE_SIZE.width;
if (p_height < LayoutEngine.IMAGE_SIZE.height)
p_height = LayoutEngine.IMAGE_SIZE.height;
}
// System.out.println(" Width=" + p_width + " Height=" + p_height);
}
// Enlarge Size when aligned and max size is given
if (p_FieldAlignmentType != null) {
boolean changed = false;
if (p_height < p_maxHeight) {
p_height = p_maxHeight;
changed = true;
}
if (p_width < p_maxWidth) {
p_width = p_maxWidth;
changed = true;
}
// if (changed)
// System.out.println("StringElement.calculate size - Width="
// + p_width + "(" + p_maxWidth + ") - Height=" + p_height + "(" + p_maxHeight + ")");
}
return true;
}
Aggregations