package com.constellio.app.ui.framework.components.menuBar; import java.io.IOException; import com.constellio.app.services.factories.ConstellioFactories; import com.constellio.app.ui.entities.RecordVO; import com.constellio.model.entities.records.Record; import com.constellio.model.services.records.RecordServices; import com.constellio.model.services.schemas.SchemaUtils; public abstract class AbstractRecordMenuBarHandler implements RecordMenuBarHandler { protected transient ConstellioFactories constellioFactories; public AbstractRecordMenuBarHandler(ConstellioFactories constellioFactories) { this.constellioFactories = constellioFactories; initTransientObjects(); } private void readObject(java.io.ObjectInputStream stream) throws IOException, ClassNotFoundException { stream.defaultReadObject(); initTransientObjects(); } private void initTransientObjects() { if (constellioFactories == null) { constellioFactories = ConstellioFactories.getInstance(); } } @Override public boolean isMenuBarForRecordId(String recordId) { RecordServices recordServices = constellioFactories.getModelLayerFactory().newRecordServices(); Record record = recordServices.getDocumentById(recordId); String schemaCode = record.getSchemaCode(); return isMenuBarForSchemaCode(schemaCode); } @Override public boolean isMenuBarForSchemaCode(String schemaCode) { String schemaTypeCode = getSchemaTypeCodeForSchemaCode(schemaCode); return isMenuBarForSchemaTypeCode(schemaTypeCode); } @Override public boolean isMenuBar(RecordVO recordVO) { String schemaCode = recordVO.getSchema().getCode(); String schemaTypeCode = getSchemaTypeCodeForSchemaCode(schemaCode); return isMenuBarForSchemaTypeCode(schemaTypeCode); } protected String getSchemaTypeCodeForSchemaCode(String schemaCode) { return SchemaUtils.getSchemaTypeCode(schemaCode); } }