private <PK extends Serializable, T extends TimeableAttrRow<PK>, U extends EntityWithConfigurableAttr & EntityWithTimeableAttr<PK, T> & EntityWithAttributes> void createAttrPanel(
final DivPanel divPanel, final U entity, final AbstractEditPage<?, ?, ?> parentPage,
final Function<AttrGroup, T> addNewEntryFunction,
final AttrGroup group)
{
switch (group.getType()) {
case PERIOD:
case INSTANT_OF_TIME:
divPanel.add(new TimedAttributePanel<>(divPanel.newChildId(), group, entity, parentPage, addNewEntryFunction));
break;
case NOT_TIMEABLE:
divPanel.add(new AttributePanel(divPanel.newChildId(), group, entity));
break;
default:
log.error("The Type " + group.getType() + " is not supported.");
break;
}
}