if (! isAllocationValid()) layout(a.width, a.height);
  protected void childAllocation(int index, Rectangle a)  {    if (! isAllocationValid())      layout(a.width, a.height);    a.x += offsets[X_AXIS][index];    a.y += offsets[Y_AXIS][index];    a.width = spans[X_AXIS][index];    a.height = spans[Y_AXIS][index];  }