/** Only add a new widget row if there are any remaining choices to make */
  @Override
  protected boolean canAddNewRowFor(PropertyDescriptor<?> desc, PropertySource source) {

    Object[] choices = desc.choices();
    Object[] values = (Object[]) source.getProperty(desc);

    return choices.length > values.length;
  }