From 4549cabbff0b944e46e97d8fc12b424f9ecf0af5 Mon Sep 17 00:00:00 2001 From: felmer <felmer> Date: Mon, 12 Sep 2016 12:14:59 +0000 Subject: [PATCH] SSDM-3998: WebClientConfigUtils refactored in order to avoid dependency between package shared and server SVN: 37048 --- .../web/server/CommonClientService.java | 7 ++-- .../resultset/MatchingEntitiesProvider.java | 10 ++++-- .../web/server/resultset/ScriptProvider.java | 13 +++++--- .../bo/AbstractDataSetBusinessObject.java | 8 ++++- .../shared/util/WebClientConfigUtils.java | 33 +++++++++---------- .../server/resultset/ScriptProviderTest.java | 2 +- 6 files changed, 44 insertions(+), 29 deletions(-) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientService.java index 409bf66e2f6..3b5298c8f0a 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientService.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientService.java @@ -714,7 +714,7 @@ public final class CommonClientService extends AbstractClientService implements MatchingEntitiesProvider provider = new MatchingEntitiesProvider(commonServer, getSessionToken(), matchingEntities, matchingSearchDomains, - queryText, useWildcardSearchMode); + queryText, useWildcardSearchMode, webClientConfigurationProvider); return listEntities(provider, resultSetConfig); } @@ -755,7 +755,7 @@ public final class CommonClientService extends AbstractClientService implements { ScriptProvider scriptProvider = new ScriptProvider(commonServer, getSessionToken(), criteria.tryGetScriptType(), - criteria.tryGetEntityKind()); + criteria.tryGetEntityKind(), webClientConfigurationProvider); return listEntities(scriptProvider, criteria); } @@ -1058,7 +1058,8 @@ public final class CommonClientService extends AbstractClientService implements { SearchableEntity searchableEntity = new SearchableEntity(); searchableEntity.setName(entity.name()); - searchableEntity.setDescription(WebClientConfigUtils.getTranslatedDescription(entity)); + searchableEntity.setDescription( + WebClientConfigUtils.getTranslatedDescription(webClientConfigurationProvider, entity)); searchableEntity.setType(Type.ENTITY); searchableEntities.add(searchableEntity); } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/MatchingEntitiesProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/MatchingEntitiesProvider.java index d7cc8fe098f..5f04f696f89 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/MatchingEntitiesProvider.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/MatchingEntitiesProvider.java @@ -32,6 +32,7 @@ import java.util.List; import ch.systemsx.cisd.openbis.generic.client.web.server.translator.SearchableEntityTranslator; import ch.systemsx.cisd.openbis.generic.shared.ICommonServer; +import ch.systemsx.cisd.openbis.generic.shared.WebClientConfigurationProvider; import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SearchDomain; import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SearchDomainSearchOption; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataTypeCode; @@ -65,8 +66,11 @@ public class MatchingEntitiesProvider implements ITableModelProvider<MatchingEnt private final boolean useWildcardSearchMode; + private final WebClientConfigurationProvider webClientConfigurationProvider; + public MatchingEntitiesProvider(ICommonServer commonServer, String sessionToken, - SearchableEntity[] matchingEntities, SearchDomain[] matchingSearchDomains, String queryText, boolean useWildcardSearchMode) + SearchableEntity[] matchingEntities, SearchDomain[] matchingSearchDomains, String queryText, + boolean useWildcardSearchMode, WebClientConfigurationProvider webClientConfigurationProvider) { this.commonServer = commonServer; this.sessionToken = sessionToken; @@ -76,6 +80,7 @@ public class MatchingEntitiesProvider implements ITableModelProvider<MatchingEnt this.queryText = queryText; this.useWildcardSearchMode = useWildcardSearchMode; + this.webClientConfigurationProvider = webClientConfigurationProvider; } @Override @@ -110,7 +115,8 @@ public class MatchingEntitiesProvider implements ITableModelProvider<MatchingEnt { builder.addRow(matchingEntity); builder.column(ENTITY_KIND).addString( - WebClientConfigUtils.getTranslatedDescription(matchingEntity.getEntityKind())); + WebClientConfigUtils.getTranslatedDescription(webClientConfigurationProvider, + matchingEntity.getEntityKind())); builder.column(ENTITY_TYPE).addString(matchingEntity.getEntityType().getCode()); builder.column(SEARCH_DOMAIN_TYPE).addString(matchingEntity.getSearchDomain()); builder.column(IDENTIFIER).addString(matchingEntity.getIdentifier()); diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/ScriptProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/ScriptProvider.java index f7e04368fdb..250adbebb04 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/ScriptProvider.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/ScriptProvider.java @@ -30,6 +30,7 @@ import java.util.List; import ch.systemsx.cisd.common.shared.basic.string.CommaSeparatedListBuilder; import ch.systemsx.cisd.openbis.generic.shared.ICommonServer; +import ch.systemsx.cisd.openbis.generic.shared.WebClientConfigurationProvider; import ch.systemsx.cisd.openbis.generic.shared.basic.SimpleYesNoRenderer; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Script; @@ -49,12 +50,16 @@ public class ScriptProvider extends AbstractCommonTableModelProvider<Script> private final EntityKind entityKindOrNull; + private final WebClientConfigurationProvider webClientConfigurationProvider; + public ScriptProvider(ICommonServer commonServer, String sessionToken, - ScriptType scriptTypeOrNull, EntityKind entityKindOrNull) + ScriptType scriptTypeOrNull, EntityKind entityKindOrNull, + WebClientConfigurationProvider webClientConfigurationProvider) { super(commonServer, sessionToken); this.scriptTypeOrNull = scriptTypeOrNull; this.entityKindOrNull = entityKindOrNull; + this.webClientConfigurationProvider = webClientConfigurationProvider; } @Override @@ -89,20 +94,20 @@ public class ScriptProvider extends AbstractCommonTableModelProvider<Script> return builder.getModel(); } - private static String buildDescription(EntityKind[] entityKinds) + private String buildDescription(EntityKind[] entityKinds) { if (entityKinds == null) { return "All"; } else if (entityKinds.length == 1) { - return WebClientConfigUtils.getTranslatedDescription(entityKinds[0]); + return WebClientConfigUtils.getTranslatedDescription(webClientConfigurationProvider, entityKinds[0]); } CommaSeparatedListBuilder builder = new CommaSeparatedListBuilder(); for (EntityKind entityKind : entityKinds) { - builder.append(WebClientConfigUtils.getTranslatedDescription(entityKind)); + builder.append(WebClientConfigUtils.getTranslatedDescription(webClientConfigurationProvider, entityKind)); } return builder.toString(); diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AbstractDataSetBusinessObject.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AbstractDataSetBusinessObject.java index 4432d9569e8..4c7427495ca 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AbstractDataSetBusinessObject.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AbstractDataSetBusinessObject.java @@ -28,12 +28,15 @@ import java.util.Set; import ch.systemsx.cisd.common.collection.CollectionUtils; import ch.systemsx.cisd.common.exceptions.UserFailureException; +import ch.systemsx.cisd.openbis.generic.server.CommonServiceProvider; import ch.systemsx.cisd.openbis.generic.server.business.IRelationshipService; import ch.systemsx.cisd.openbis.generic.server.business.IServiceConversationClientManagerLocal; import ch.systemsx.cisd.openbis.generic.server.business.bo.util.DataSetTypeWithoutExperimentChecker; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDAOFactory; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDataDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IEntityPropertiesConverter; +import ch.systemsx.cisd.openbis.generic.shared.ResourceNames; +import ch.systemsx.cisd.openbis.generic.shared.WebClientConfigurationProvider; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; import ch.systemsx.cisd.openbis.generic.shared.dto.DataPE; import ch.systemsx.cisd.openbis.generic.shared.dto.DataSetRelationshipPE; @@ -120,8 +123,11 @@ public abstract class AbstractDataSetBusinessObject extends AbstractSampleIdenti identifier.getSpaceCode(), identifier.getProjectCode()); if (project == null) { + WebClientConfigurationProvider provider = + (WebClientConfigurationProvider) CommonServiceProvider.tryToGetBean( + ResourceNames.WEB_CLIENT_CONFIGURATION_PROVIDER); throw UserFailureException.fromTemplate("Unkown %s because of unkown project: %s", - WebClientConfigUtils.getExperimentText(), identifier); + WebClientConfigUtils.getExperimentText(provider), identifier); } return getExperimentDAO().tryFindByCodeAndProject(project, identifier.getExperimentCode()); } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/util/WebClientConfigUtils.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/util/WebClientConfigUtils.java index a05941703d6..2de94d5d719 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/util/WebClientConfigUtils.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/util/WebClientConfigUtils.java @@ -16,8 +16,6 @@ package ch.systemsx.cisd.openbis.generic.shared.util; -import ch.systemsx.cisd.openbis.generic.server.CommonServiceProvider; -import ch.systemsx.cisd.openbis.generic.shared.ResourceNames; import ch.systemsx.cisd.openbis.generic.shared.WebClientConfigurationProvider; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.WebClientConfiguration; @@ -30,53 +28,52 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.SearchableEntity; */ public class WebClientConfigUtils { - public static String getTranslatedDescription(SearchableEntity entity) + public static String getTranslatedDescription(WebClientConfigurationProvider provider, SearchableEntity entity) { String description = entity.getDescription(); - if (getWebClientConfiguration() != null) + WebClientConfiguration webClientConfiguration = getWebClientConfiguration(provider); + if (webClientConfiguration != null) { if (entity == SearchableEntity.SAMPLE) { - description = getSampleText(); + description = webClientConfiguration.getSampleText(); } else if (entity == SearchableEntity.EXPERIMENT) { - description = getExperimentText(); + description = webClientConfiguration.getExperimentText(); } } return description; } - public static String getTranslatedDescription(EntityKind entityKind) + public static String getTranslatedDescription(WebClientConfigurationProvider provider, EntityKind entityKind) { String description = entityKind.getDescription(); - if (getWebClientConfiguration() != null) + WebClientConfiguration webClientConfiguration = getWebClientConfiguration(provider); + if (webClientConfiguration != null) { if (entityKind == EntityKind.SAMPLE) { - description = getSampleText(); + description = webClientConfiguration.getSampleText(); } else if (entityKind == EntityKind.EXPERIMENT) { - description = getExperimentText(); + description = webClientConfiguration.getExperimentText(); } } return description; } - public static String getSampleText() + public static String getSampleText(WebClientConfigurationProvider provider) { - return getWebClientConfiguration().getSampleText(); + return getWebClientConfiguration(provider).getSampleText(); } - public static String getExperimentText() + public static String getExperimentText(WebClientConfigurationProvider provider) { - return getWebClientConfiguration().getExperimentText(); + return getWebClientConfiguration(provider).getExperimentText(); } - public static WebClientConfiguration getWebClientConfiguration() + private static WebClientConfiguration getWebClientConfiguration(WebClientConfigurationProvider provider) { - WebClientConfigurationProvider provider = - (WebClientConfigurationProvider) CommonServiceProvider.tryToGetBean( - ResourceNames.WEB_CLIENT_CONFIGURATION_PROVIDER); return provider == null ? null : provider.getWebClientConfiguration(); } diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/ScriptProviderTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/ScriptProviderTest.java index 82018af27cc..556a6250dbc 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/ScriptProviderTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/ScriptProviderTest.java @@ -51,7 +51,7 @@ public class ScriptProviderTest extends AbstractProviderTest }); ScriptProvider scriptProvider = new ScriptProvider(server, SESSION_TOKEN, ScriptType.DYNAMIC_PROPERTY, - EntityKind.EXPERIMENT); + EntityKind.EXPERIMENT, null); TypedTableModel<Script> tableModel = scriptProvider.createTableModel(); -- GitLab