Anonymous - 2012-07-29

Got a workaround!

Subclass (or define inline when instantiating) AggregateLayout to @Override setSize

@Override
public void setSize(Dimension size) {
Dimension oldSize = getSize();
super.setSize(size);
size = getSize();
if (size == null || oldSize == null) {
return;
}
int xOffset = (size.width - oldSize.width) / 2;
int yOffset = (size.height - oldSize.height) / 2;
for (Entry<Layout<Note, Weight>, Point2D> entry : getLayouts().entrySet()) {
double x = entry.getValue().getX() + xOffset;
double y = entry.getValue().getY() + yOffset;
entry.setValue(new Point2D.Double(x, y));
}
}