// process auto tokens
int i = 0;
for (BankHead head : heads) {
LayoutToken token = head.getToken();
if (token instanceof PixelLayoutToken) {
if (head.isRendered() || isRigid()) {
int pixel = ((PixelLayoutToken) token).getPixel();
heads[i].setCurrent(Measure.valueOf(pixel)); // XXX refactor
} else {
heads[i].setCurrent(Measure.ZERO);
}
}
IntervalList intervalList = new IntervalList();
for (int j = 0; j < heads2.length; j++) {
Cell cell = grid.getCell(i, j, orientation);
if (cell instanceof OriginCell) {
OriginCell origin = (OriginCell) cell;
LayoutComponent component = cell.getComponent();
if (component instanceof LayoutContainer && (component.isRendered() || isRigid())) {
((LayoutContainer) component).getLayoutManager().preProcessing(orientation);
}
if (token instanceof AutoLayoutToken || token instanceof RelativeLayoutToken) {
if (origin.getSpan(orientation) == 1 && (component.isRendered() || isRigid())) {
intervalList.add(new Interval(component, orientation));
} else {
if (LOG.isDebugEnabled()) {
LOG.debug("Components with span > 1 will be ignored in 'auto' layout rows/columns.");
// todo: give this information to the developer
}
}
}
}
}
intervalList.evaluate();
if (token instanceof AutoLayoutToken || token instanceof RelativeLayoutToken) {
heads[i].setIntervalList(intervalList);
}
if (token instanceof AutoLayoutToken) {
heads[i].setCurrent(intervalList.getCurrent());
}
i++;
}
/*
IntervalList relatives = new IntervalList();
for (BankHead head : heads) {
LayoutToken token = head.getToken();
if (token instanceof RelativeLayoutToken) {
final int factor = ((RelativeLayoutToken) token).getFactor();
for (Interval interval : head.getIntervalList()) {
relatives.add(new Interval(interval, factor));
}
}
}
relatives.evaluate();
*/
// set the size if all sizes of the grid are set
Measure sum = Measure.ZERO;
for (BankHead head : heads) {
Measure size = null;
final LayoutToken token = head.getToken();
if (token instanceof RelativeLayoutToken) {
// final int factor = ((RelativeLayoutToken) token).getFactor();
// size = relatives.getCurrent().multiply(factor);
} else {
size = head.getCurrent();