package com.constellio.app.ui.framework.components.fields.enumWithSmallCode; import static com.constellio.app.ui.i18n.i18n.$; import java.util.List; import com.constellio.app.entities.schemasDisplay.enums.MetadataDisplayType; import com.constellio.app.ui.application.ConstellioUI; import com.constellio.app.ui.framework.components.fields.ListOptionGroup; import com.constellio.app.ui.pages.base.SessionContext; import com.constellio.model.entities.EnumWithSmallCode; public class EnumWithSmallCodeOptionGroup<E extends EnumWithSmallCode> extends ListOptionGroup implements EnumWithSmallCodeField { private Class<E> enumWithSmallCodeClass; private EnumWithSmallCodeFieldPresenter presenter; MetadataDisplayType metadataDisplayType; public EnumWithSmallCodeOptionGroup(Class<E> enumWithSmallCodeClass) { super(); this.enumWithSmallCodeClass = enumWithSmallCodeClass; this.presenter = new EnumWithSmallCodeFieldPresenter(this); this.presenter.forEnumClass(enumWithSmallCodeClass); } public EnumWithSmallCodeOptionGroup(Class<E> enumWithSmallCodeClass, MetadataDisplayType metadataDisplayType) { super(); this.metadataDisplayType = metadataDisplayType; this.enumWithSmallCodeClass = enumWithSmallCodeClass; this.presenter = new EnumWithSmallCodeFieldPresenter(this); this.presenter.forEnumClass(enumWithSmallCodeClass); } @Override public void setOptions(List<EnumWithSmallCode> enumConstants) { initStyleName(); for (EnumWithSmallCode enumWithSmallCode : enumConstants) { String enumCode = enumWithSmallCode.getCode(); addItem(enumWithSmallCode); // TODO Use EnumWithSmallCodeToCaptionConverter String caption = $(enumWithSmallCodeClass.getSimpleName() + "." + enumCode); setItemCaption(enumWithSmallCode, caption); } } @Override public SessionContext getSessionContext() { return ConstellioUI.getCurrentSessionContext(); } public void initStyleName() { if(metadataDisplayType != null && metadataDisplayType.equals(MetadataDisplayType.HORIZONTAL)) { this.addStyleName("horizontal"); } else { this.addStyleName("vertical"); } }; }