From 41fca3cd965a45fb4fe97cf84c3ba0c2396e9528 Mon Sep 17 00:00:00 2001 From: felmer <felmer> Date: Mon, 13 Aug 2012 14:03:54 +0000 Subject: [PATCH] fixing a bug in proteomics: Couldn't batch update Experiments of type MS_SEARCH and MS_QUANTIFICATION SVN: 26356 --- .../plugin/DelegatedClientPlugin.java | 84 +++++++++++++++++++ .../application/ClientPluginFactory.java | 12 ++- .../application/ClientPluginFactory.java | 59 +------------ 3 files changed, 93 insertions(+), 62 deletions(-) create mode 100644 openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/plugin/DelegatedClientPlugin.java diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/plugin/DelegatedClientPlugin.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/plugin/DelegatedClientPlugin.java new file mode 100644 index 00000000000..58a9f0aaef5 --- /dev/null +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/plugin/DelegatedClientPlugin.java @@ -0,0 +1,84 @@ +/* + * Copyright 2012 ETH Zuerich, CISD + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.generic.client.web.client.application.plugin; + +import com.google.gwt.user.client.ui.Widget; + +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ActionContext; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.AbstractTabItemFactory; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DatabaseModificationAwareWidget; +import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolderWithPermId; +import ch.systemsx.cisd.openbis.generic.shared.basic.IIdAndCodeHolder; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.BasicEntityType; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind; + +/** + * delegates all operations to generic plugin, should be subclasssed and the needed + * functionality can override the default behaviour + */ +public class DelegatedClientPlugin<T extends BasicEntityType> implements + IClientPlugin<T, IIdAndCodeHolder> +{ + private final IClientPlugin<T, IIdAndCodeHolder> delegator; + + public DelegatedClientPlugin(IViewContext<?> viewContext, EntityKind entityKind) + { + this.delegator = createGenericClientFactory(viewContext).createClientPlugin(entityKind); + } + + private static ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.ClientPluginFactory createGenericClientFactory( + IViewContext<?> viewContext) + { + ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.ClientPluginFactory clientPluginFactory = + new ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.ClientPluginFactory( + viewContext.getCommonViewContext()); + return clientPluginFactory; + } + + @Override + public AbstractTabItemFactory createEntityViewer( + final IEntityInformationHolderWithPermId entity) + { + return delegator.createEntityViewer(entity); + } + + @Override + public Widget createBatchRegistrationForEntityType(final T entityType) + { + return delegator.createBatchRegistrationForEntityType(entityType); + } + + @Override + public Widget createBatchUpdateForEntityType(final T entityType) + { + return delegator.createBatchUpdateForEntityType(entityType); + } + + @Override + public AbstractTabItemFactory createEntityEditor(final IIdAndCodeHolder identifiable) + { + return delegator.createEntityEditor(identifiable); + } + + @Override + public DatabaseModificationAwareWidget createRegistrationForEntityType(T entityType, + ActionContext context) + { + return delegator.createRegistrationForEntityType(entityType, context); + } +} \ No newline at end of file diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ClientPluginFactory.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ClientPluginFactory.java index 315c8a52095..fc4c0ad2507 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ClientPluginFactory.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ClientPluginFactory.java @@ -34,7 +34,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework. import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier; import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier.HelpPageAction; import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier.HelpPageDomain; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.plugin.ClientPluginAdapter; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.plugin.DelegatedClientPlugin; import ch.systemsx.cisd.openbis.generic.client.web.client.application.plugin.IClientPlugin; import ch.systemsx.cisd.openbis.generic.client.web.client.application.plugin.IModule; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.AbstractRegistrationForm; @@ -51,6 +51,7 @@ import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.Gen import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.experiment.GenericExperimentEditForm; import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.experiment.GenericExperimentRegistrationForm; import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.experiment.GenericExperimentViewer; +import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.IPhosphoNetXClientServiceAsync; /** * @author Franz-Josef Elmer @@ -99,7 +100,7 @@ public class ClientPluginFactory extends AbstractClientPluginFactory<ViewContext { if (EntityKind.EXPERIMENT.equals(entityKind)) { - return (IClientPlugin<T, I>) new ExperimentClientPlugin(); + return (IClientPlugin<T, I>) new ExperimentClientPlugin(getViewContext()); } throw new UnsupportedOperationException("IClientPlugin for entity kind '" + entityKind + "' not implemented yet."); @@ -109,9 +110,12 @@ public class ClientPluginFactory extends AbstractClientPluginFactory<ViewContext // Helper classes // - private final class ExperimentClientPlugin extends - ClientPluginAdapter<ExperimentType, IIdAndCodeHolder> + private final class ExperimentClientPlugin extends DelegatedClientPlugin<ExperimentType> { + private ExperimentClientPlugin(IViewContext<IPhosphoNetXClientServiceAsync> viewContext) + { + super(viewContext, EntityKind.EXPERIMENT); + } // // IViewClientPlugin // diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/ClientPluginFactory.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/ClientPluginFactory.java index af2cc7d5f93..0d2df429417 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/ClientPluginFactory.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/ClientPluginFactory.java @@ -25,17 +25,16 @@ import com.google.gwt.user.client.ui.Widget; import ch.systemsx.cisd.openbis.generic.client.web.client.ICommonClientServiceAsync; import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractClientPluginFactory; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.ActionContext; import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.AbstractTabItemFactory; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DatabaseModificationAwareComponent; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DatabaseModificationAwareWidget; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DefaultTabItem; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DispatcherHelper; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.ITabItem; import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier; import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier.HelpPageAction; import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier.HelpPageDomain; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.plugin.DelegatedClientPlugin; import ch.systemsx.cisd.openbis.generic.client.web.client.application.plugin.IClientPlugin; import ch.systemsx.cisd.openbis.generic.client.web.client.application.plugin.IClientPluginFactory; import ch.systemsx.cisd.openbis.generic.client.web.client.application.plugin.IClientPluginFactoryUsingWildcards; @@ -747,62 +746,6 @@ public final class ClientPluginFactory extends AbstractClientPluginFactory<Scree return AbstractViewer.getTitle(messageProvider, dictTitleKey, codeProvider); } - /** - * delegates all operations to generic plugin, should be subclasssed and the needed - * functionality can override the default behaviour - */ - private static class DelegatedClientPlugin<T extends BasicEntityType> implements - IClientPlugin<T, IIdAndCodeHolder> - { - private final IClientPlugin<T, IIdAndCodeHolder> delegator; - - private DelegatedClientPlugin(IViewContext<?> viewContext, EntityKind entityKind) - { - this.delegator = createGenericClientFactory(viewContext).createClientPlugin(entityKind); - } - - private static ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.ClientPluginFactory createGenericClientFactory( - IViewContext<?> viewContext) - { - ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.ClientPluginFactory clientPluginFactory = - new ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.ClientPluginFactory( - viewContext.getCommonViewContext()); - return clientPluginFactory; - } - - @Override - public AbstractTabItemFactory createEntityViewer( - final IEntityInformationHolderWithPermId entity) - { - return delegator.createEntityViewer(entity); - } - - @Override - public Widget createBatchRegistrationForEntityType(final T entityType) - { - return delegator.createBatchRegistrationForEntityType(entityType); - } - - @Override - public Widget createBatchUpdateForEntityType(final T entityType) - { - return delegator.createBatchUpdateForEntityType(entityType); - } - - @Override - public AbstractTabItemFactory createEntityEditor(final IIdAndCodeHolder identifiable) - { - return delegator.createEntityEditor(identifiable); - } - - @Override - public DatabaseModificationAwareWidget createRegistrationForEntityType(T entityType, - ActionContext context) - { - return delegator.createRegistrationForEntityType(entityType, context); - } - } - @Override protected IModule maybeCreateModule() { -- GitLab