package com.constellio.app.ui.framework.components.fields.record;
import java.util.List;
import com.constellio.app.entities.schemasDisplay.enums.MetadataDisplayType;
import com.constellio.app.ui.application.ConstellioUI;
import com.constellio.app.ui.entities.MetadataVO;
import com.constellio.app.ui.entities.RecordVO;
import com.constellio.app.ui.framework.components.converters.RecordIdToCaptionConverter;
import com.constellio.app.ui.framework.components.fields.ListOptionGroup;
import com.constellio.app.ui.framework.data.RecordVODataProvider;
import com.constellio.app.ui.pages.base.SessionContext;
public class RecordOptionGroup extends ListOptionGroup implements RecordOptionField {
private RecordIdToCaptionConverter captionConverter = new RecordIdToCaptionConverter();
private RecordOptionFieldPresenter presenter;
private MetadataDisplayType metadataDisplayType;
public RecordOptionGroup(String schemaCode) {
super();
this.presenter = new RecordOptionFieldPresenter(this);
this.presenter.forSchemaCode(schemaCode);
}
public RecordOptionGroup(String schemaCode, MetadataDisplayType metadataDisplayType) {
super();
this.metadataDisplayType = metadataDisplayType;
this.presenter = new RecordOptionFieldPresenter(this);
this.presenter.forSchemaCode(schemaCode);
}
@Override
public void setDataProvider(RecordVODataProvider dataProvider) {
initStyleName();
int size = dataProvider.size();
List<RecordVO> records = dataProvider.listRecordVOs(0, size);
for (RecordVO recordVO : records) {
String recordId = recordVO.getId();
String itemCaption = captionConverter.convertToPresentation(recordId, String.class, getLocale());
addItem(recordId);
setItemCaption(recordId, itemCaption);
}
}
@Override
public SessionContext getSessionContext() {
return ConstellioUI.getCurrentSessionContext();
}
public void initStyleName() {
if (metadataDisplayType != null && metadataDisplayType.equals(MetadataDisplayType.HORIZONTAL)) {
this.addStyleName("horizontal");
this.addStyleName("horizontal-option-group");
}
else {
this.addStyleName("vertical");
}
};
}