// call manage sizes for all sub-layout-managers
for (int i = 0; i < heads.length; i++) {
for (int j = 0; j < heads2.length; j++) {
Cell cell = grid.getCell(i, j, orientation);
if (cell instanceof OriginCell) {
LayoutComponent component = cell.getComponent();
component.setDisplay(Display.BLOCK);
// compute the position of the cell
Measure position = Measure.ZERO;
position = position.add(LayoutUtils.getPaddingBegin(orientation, getLayoutContainer()));
position = position.add(getMarginBegin(orientation));
for (int k = 0; k < i; k++) {
if (heads[k] == null || heads[k].getCurrent() == null) {
LOG.warn("Head is null, should be debugged... i=" + i + " k=" + k + " grid=\n" + grid,
new NullPointerException());
} else {
if (heads[k].isRendered() && heads[k].getCurrent().greaterThan(Measure.ZERO)) {
position = position.add(heads[k].getCurrent());
position = position.add(getSpacing(orientation));
}
}
}
if (orientation == Orientation.HORIZONTAL) {
component.setLeft(position);
} else {
component.setTop(position);
}
// call sub layout manager
if (component instanceof LayoutContainer) {
((LayoutContainer) component).getLayoutManager().postProcessing(orientation);