@Override
  public Dimension minimumLayoutSize(Container parent) {
    ComponentOperation.SizeCalculator calculator = new ComponentOperation.SizeCalculator(SizeProperty.MINIMUM_SIZE);
    withAllVisibleDo(parent, calculator);
    OrientedDimensionSum result = calculator.getSum();
    result.addInsets(parent.getInsets());
    return result.getSum();
  }
@Override
  public Dimension minimumLayoutSize(Container parent)