Skip to content
Snippets Groups Projects
Commit 41fca3cd authored by felmer's avatar felmer
Browse files

fixing a bug in proteomics: Couldn't batch update Experiments of type...

fixing a bug in proteomics: Couldn't batch update Experiments of type MS_SEARCH and MS_QUANTIFICATION

SVN: 26356
parent 515d6659
No related branches found
No related tags found
No related merge requests found
/*
* 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
...@@ -34,7 +34,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework. ...@@ -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;
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.HelpPageAction;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier.HelpPageDomain; 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.IClientPlugin;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.plugin.IModule; import ch.systemsx.cisd.openbis.generic.client.web.client.application.plugin.IModule;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.AbstractRegistrationForm; 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 ...@@ -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.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.GenericExperimentRegistrationForm;
import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.experiment.GenericExperimentViewer; 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 * @author Franz-Josef Elmer
...@@ -99,7 +100,7 @@ public class ClientPluginFactory extends AbstractClientPluginFactory<ViewContext ...@@ -99,7 +100,7 @@ public class ClientPluginFactory extends AbstractClientPluginFactory<ViewContext
{ {
if (EntityKind.EXPERIMENT.equals(entityKind)) 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 throw new UnsupportedOperationException("IClientPlugin for entity kind '" + entityKind
+ "' not implemented yet."); + "' not implemented yet.");
...@@ -109,9 +110,12 @@ public class ClientPluginFactory extends AbstractClientPluginFactory<ViewContext ...@@ -109,9 +110,12 @@ public class ClientPluginFactory extends AbstractClientPluginFactory<ViewContext
// Helper classes // Helper classes
// //
private final class ExperimentClientPlugin extends private final class ExperimentClientPlugin extends DelegatedClientPlugin<ExperimentType>
ClientPluginAdapter<ExperimentType, IIdAndCodeHolder>
{ {
private ExperimentClientPlugin(IViewContext<IPhosphoNetXClientServiceAsync> viewContext)
{
super(viewContext, EntityKind.EXPERIMENT);
}
// //
// IViewClientPlugin // IViewClientPlugin
// //
......
...@@ -25,17 +25,16 @@ import com.google.gwt.user.client.ui.Widget; ...@@ -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.ICommonClientServiceAsync;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractClientPluginFactory; 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.IViewContext;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.AbstractTabItemFactory; 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.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.DefaultTabItem;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DispatcherHelper; 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.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;
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.HelpPageAction;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier.HelpPageDomain; 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.IClientPlugin;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.plugin.IClientPluginFactory; import ch.systemsx.cisd.openbis.generic.client.web.client.application.plugin.IClientPluginFactory;
import ch.systemsx.cisd.openbis.generic.client.web.client.application.plugin.IClientPluginFactoryUsingWildcards; import ch.systemsx.cisd.openbis.generic.client.web.client.application.plugin.IClientPluginFactoryUsingWildcards;
...@@ -747,62 +746,6 @@ public final class ClientPluginFactory extends AbstractClientPluginFactory<Scree ...@@ -747,62 +746,6 @@ public final class ClientPluginFactory extends AbstractClientPluginFactory<Scree
return AbstractViewer.getTitle(messageProvider, dictTitleKey, codeProvider); 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 @Override
protected IModule maybeCreateModule() protected IModule maybeCreateModule()
{ {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment