package com.constellio.app.modules.rm.ui.navigation; import java.io.IOException; import com.constellio.app.modules.rm.navigation.RMViews; import com.constellio.app.modules.rm.wrappers.ContainerRecord; import com.constellio.app.modules.rm.wrappers.Document; import com.constellio.app.modules.rm.wrappers.Folder; import com.constellio.app.modules.rm.wrappers.RetentionRule; import com.constellio.app.services.factories.ConstellioFactories; import com.constellio.app.ui.application.ConstellioUI; import com.constellio.app.ui.framework.navigation.AbstractRecordNavigationHandler; public class RMRecordNavigationHandler extends AbstractRecordNavigationHandler { public RMRecordNavigationHandler(ConstellioFactories constellioFactories) { super(constellioFactories); initTransientObjects(); } private void readObject(java.io.ObjectInputStream stream) throws IOException, ClassNotFoundException { stream.defaultReadObject(); initTransientObjects(); } private void initTransientObjects() { } @Override public boolean isViewForSchemaTypeCode(String schemaTypeCode) { boolean viewForSchemaTypeCode; if (Folder.SCHEMA_TYPE.equals(schemaTypeCode)) { viewForSchemaTypeCode = true; } else if (Document.SCHEMA_TYPE.equals(schemaTypeCode)) { viewForSchemaTypeCode = true; } else if (ContainerRecord.SCHEMA_TYPE.equals(schemaTypeCode)) { viewForSchemaTypeCode = true; } else viewForSchemaTypeCode = RetentionRule.SCHEMA_TYPE.equals(schemaTypeCode); return viewForSchemaTypeCode; } @Override protected void navigateToView(String recordId, String schemaTypeCode) { if (Folder.SCHEMA_TYPE.equals(schemaTypeCode)) { ConstellioUI.getCurrent().navigate().to(RMViews.class).displayFolder(recordId); } else if (Document.SCHEMA_TYPE.equals(schemaTypeCode)) { ConstellioUI.getCurrent().navigate().to(RMViews.class).displayDocument(recordId); } else if (ContainerRecord.SCHEMA_TYPE.equals(schemaTypeCode)) { ConstellioUI.getCurrent().navigate().to(RMViews.class).displayContainer(recordId); } else if (RetentionRule.SCHEMA_TYPE.equals(schemaTypeCode)) { ConstellioUI.getCurrent().navigate().to(RMViews.class).displayRetentionRule(recordId); } else { throw new UnsupportedOperationException("No navigation for schema type code " + schemaTypeCode); } } }