@Override public int getPreferredHeight() { int totalheight = verticalPadding; for (int i = 0; i < getNumChildren(); ++i) { Widget widget = getChild(i); int height = childDefaultHeight; if (!overrideHeight) { height = widget.getPreferredHeight(); } if (heightOverrideExceptions.containsKey(widget)) { Integer heightSet = heightOverrideExceptions.get(widget); if (heightSet < 1) { height = widget.getPreferredHeight(); heightSet = -heightSet; if ((heightSet != 0) && (heightSet > height)) { height = heightSet; } } else { height = heightSet; } } totalheight += height + defaultPadding; } return totalheight; }
@Override public void layout() { int totalheight = verticalPadding; for (int i = 0; i < getNumChildren(); ++i) { Widget w = getChild(i); int height = childDefaultHeight; int width = childDefaultWidth; if (!overrideHeight) { height = w.getPreferredHeight(); } if (heightOverrideExceptions.containsKey(w)) { Integer heightSet = heightOverrideExceptions.get(w); if (heightSet < 1) { height = w.getPreferredHeight(); heightSet = -heightSet; if ((heightSet != 0) && (heightSet > height)) { height = heightSet; } } else { height = heightSet; } } if (widthOverrideExceptions.containsKey(w)) { Integer widthSet = widthOverrideExceptions.get(w); if (widthSet < 1) { width = w.getPreferredWidth(); widthSet = -widthSet; if ((widthSet != 0) && (widthSet > width)) { width = widthSet; } } else { width = widthSet; } } w.setSize(width, height); w.setPosition((getX() + (getWidth() / 2)) - (width / 2), getY() + totalheight); totalheight += height + defaultPadding; } }