package com.constellio.app.ui.pages.management.schemaRecords; import java.io.IOException; import com.constellio.app.services.factories.ConstellioFactories; import com.constellio.app.ui.entities.RecordVO; import com.constellio.app.ui.entities.RecordVO.VIEW_MODE; import com.constellio.app.ui.pages.base.SessionContext; import com.constellio.app.ui.pages.base.SingleSchemaBasePresenter; import com.constellio.app.ui.pages.management.sequence.SequenceServices; import com.constellio.model.entities.records.Record; import com.constellio.model.entities.records.wrappers.User; @SuppressWarnings("serial") public class DisplaySchemaRecordPresenter extends SingleSchemaBasePresenter<DisplaySchemaRecordView> { private transient SequenceServices sequenceServices; public DisplaySchemaRecordPresenter(DisplaySchemaRecordView view) { super(view); initTransientObjects(); } public void forSchema(String schemaCode) { setSchemaCode(schemaCode); } private void readObject(java.io.ObjectInputStream stream) throws IOException, ClassNotFoundException { stream.defaultReadObject(); initTransientObjects(); } private void initTransientObjects() { ConstellioFactories constellioFactories = view.getConstellioFactories(); SessionContext sessionContext = view.getSessionContext(); sequenceServices = new SequenceServices(constellioFactories, sessionContext); } public RecordVO getRecordVO(String id) { return presenterService().getRecordVO(id, VIEW_MODE.DISPLAY, view.getSessionContext()); } public void backButtonClicked() { String schemaCode = getSchemaCode(); view.navigate().to().listSchemaRecords(schemaCode); } public void editButtonClicked(RecordVO recordVO) { String schemaCode = getSchemaCode(); view.navigate().to().editSchemaRecord(schemaCode, recordVO.getId()); } public void deleteButtonClicked(RecordVO recordVO) { String schemaCode = getSchemaCode(); view.navigate().to().listSchemaRecords(schemaCode); } @Override protected boolean hasPageAccess(String params, User user) { Record restrictedRecord = recordServices().getDocumentById(params); return new SchemaRecordsPresentersServices(appLayerFactory).canViewSchemaTypeRecord(restrictedRecord, user); } public boolean isSequenceTable(RecordVO recordVO) { return !sequenceServices.getAvailableSequences(recordVO.getId()).isEmpty(); } }