From f112d4fd76f4d24f9171fac6efab02bab3f5c4f2 Mon Sep 17 00:00:00 2001 From: buczekp <buczekp> Date: Wed, 27 Jul 2011 08:27:08 +0000 Subject: [PATCH] [LMS-2417] configurable switch of logical deletion / trash SVN: 22264 --- openbis/dist/server/web-client.properties | 4 +++ openbis/etc/web-client.properties | 4 +++ .../web/client/application/menu/TopMenu.java | 6 +++- .../client/application/ui/AbstractViewer.java | 6 ++++ ...DataSetListDeletionConfirmationDialog.java | 12 +++---- ...erimentListDeletionConfirmationDialog.java | 11 +++---- .../SampleListDeletionConfirmationDialog.java | 11 +++---- ...actDataListDeletionConfirmationDialog.java | 33 ++++++++++++++++--- ...stPermanentDeletionConfirmationDialog.java | 8 +++-- ...taListTrashDeletionConfirmationDialog.java | 3 +- .../WebClientConfigurationProvider.java | 11 +++++++ .../basic/dto/WebClientConfiguration.java | 12 +++++++ .../dataset/GenericDataSetViewer.java | 5 ++- .../experiment/GenericExperimentViewer.java | 7 ++-- .../sample/GenericSampleViewer.java | 6 ++-- 15 files changed, 105 insertions(+), 34 deletions(-) diff --git a/openbis/dist/server/web-client.properties b/openbis/dist/server/web-client.properties index 14d50a0e7c0..fe408435c10 100644 --- a/openbis/dist/server/web-client.properties +++ b/openbis/dist/server/web-client.properties @@ -1,3 +1,7 @@ +# Experimental: Enable moving entities to trash (non-permanent deletion). +# Default value: false +#enable-trash = true + # Default view mode that should be used if user doesn't have it specified in URL. # Options: # 'NORMAL' (standard mode - default), diff --git a/openbis/etc/web-client.properties b/openbis/etc/web-client.properties index 80f1f99e8b2..f946e8e9637 100644 --- a/openbis/etc/web-client.properties +++ b/openbis/etc/web-client.properties @@ -1,3 +1,7 @@ +# Experimental: Enable moving entities to trash (non-permanent deletion). +# Default value: false +enable-trash = true + # Default view mode that should be used if user doesn't have it specified in URL. # Options: 'NORMAL' (standard mode - default), 'SIMPLE' (readonly mode with simplified GUI). # diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/menu/TopMenu.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/menu/TopMenu.java index ae9bf247e8e..1be451d3979 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/menu/TopMenu.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/menu/TopMenu.java @@ -124,7 +124,11 @@ public class TopMenu extends LayoutContainer toolBar.add(new SearchWidget(viewContext)); toolBar.add(new SeparatorToolItem()); toolBar.add(new InfoButton(viewContext)); - toolBar.add(new TrashButton(viewContext, componentProvider)); + if (viewContext.getModel().getApplicationInfo().getWebClientConfiguration() + .getEnableTrash()) + { + toolBar.add(new TrashButton(viewContext, componentProvider)); + } toolBar.add(new LoggedUserMenu(viewContext, componentProvider)); } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/AbstractViewer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/AbstractViewer.java index 222125a708a..75761a86183 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/AbstractViewer.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/AbstractViewer.java @@ -310,6 +310,12 @@ public abstract class AbstractViewer<D extends IEntityInformationHolder> extends return BorderLayoutDataFactory.create(region); } + protected final boolean isTrashEnabled() + { + return viewContext.getModel().getApplicationInfo().getWebClientConfiguration() + .getEnableTrash(); + } + protected final AbstractAsyncCallback<Void> createPermanentDeletionCallback() { return new CloseViewerCallback(viewContext); diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/DataSetListDeletionConfirmationDialog.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/DataSetListDeletionConfirmationDialog.java index 984e2a0e733..514b51702fc 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/DataSetListDeletionConfirmationDialog.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/DataSetListDeletionConfirmationDialog.java @@ -22,21 +22,20 @@ import com.extjs.gxt.ui.client.widget.form.RadioGroup; import com.google.gwt.user.client.rpc.AsyncCallback; import ch.systemsx.cisd.openbis.generic.client.web.client.ICommonClientServiceAsync; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractAsyncCallback; import ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict; import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.data.AbstractExternalDataGrid.SelectedAndDisplayedItems; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.AbstractDataListTrashDeletionConfirmationDialog; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.AbstractDataListDeletionConfirmationDialog; import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.WidgetUtils; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DisplayedOrSelectedDatasetCriteria; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DeletionType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData; +// TODO extend AbstractDataListTrashDeletionConfirmationDialog when trash is working properly public final class DataSetListDeletionConfirmationDialog extends - AbstractDataListTrashDeletionConfirmationDialog<ExternalData> + AbstractDataListDeletionConfirmationDialog<ExternalData> { - private final IViewContext<ICommonClientServiceAsync> viewContext; private final SelectedAndDisplayedItems selectedAndDisplayedItemsOrNull; @@ -44,8 +43,7 @@ public final class DataSetListDeletionConfirmationDialog extends private final ExternalData singleData; public DataSetListDeletionConfirmationDialog( - IViewContext<ICommonClientServiceAsync> viewContext, - AbstractAsyncCallback<Void> callback, + IViewContext<ICommonClientServiceAsync> viewContext, AsyncCallback<Void> callback, SelectedAndDisplayedItems selectedAndDisplayedItems) { super(viewContext, selectedAndDisplayedItems.getSelectedItems(), callback); @@ -57,7 +55,7 @@ public final class DataSetListDeletionConfirmationDialog extends public DataSetListDeletionConfirmationDialog( IViewContext<ICommonClientServiceAsync> viewContext, - AbstractAsyncCallback<Void> deletionCallback, ExternalData data) + AsyncCallback<Void> deletionCallback, ExternalData data) { super(viewContext, Collections.singletonList(data), deletionCallback); this.viewContext = viewContext; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ExperimentListDeletionConfirmationDialog.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ExperimentListDeletionConfirmationDialog.java index c68192fc957..968726b147d 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ExperimentListDeletionConfirmationDialog.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ExperimentListDeletionConfirmationDialog.java @@ -22,11 +22,10 @@ import com.extjs.gxt.ui.client.widget.form.RadioGroup; import com.google.gwt.user.client.rpc.AsyncCallback; import ch.systemsx.cisd.openbis.generic.client.web.client.ICommonClientServiceAsync; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractAsyncCallback; import ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict; import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.experiment.ExperimentBrowserGrid.DisplayedAndSelectedExperiments; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.AbstractDataListTrashDeletionConfirmationDialog; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.AbstractDataListDeletionConfirmationDialog; import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.WidgetUtils; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DisplayedOrSelectedIdHolderCriteria; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; @@ -35,8 +34,9 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRowWithObject; +// TODO extend AbstractDataListTrashDeletionConfirmationDialog when trash is working properly public final class ExperimentListDeletionConfirmationDialog extends - AbstractDataListTrashDeletionConfirmationDialog<Experiment> + AbstractDataListDeletionConfirmationDialog<Experiment> { private final IViewContext<ICommonClientServiceAsync> viewContext; @@ -46,8 +46,7 @@ public final class ExperimentListDeletionConfirmationDialog extends private final Experiment singleDataOrNull; public ExperimentListDeletionConfirmationDialog( - IViewContext<ICommonClientServiceAsync> viewContext, - AbstractAsyncCallback<Void> callback, + IViewContext<ICommonClientServiceAsync> viewContext, AsyncCallback<Void> callback, DisplayedAndSelectedExperiments selectedAndDisplayedItems) { super(viewContext, selectedAndDisplayedItems.getExperiments(), callback); @@ -59,7 +58,7 @@ public final class ExperimentListDeletionConfirmationDialog extends public ExperimentListDeletionConfirmationDialog( IViewContext<ICommonClientServiceAsync> viewContext, - AbstractAsyncCallback<Void> deletionCallback, Experiment experiment) + AsyncCallback<Void> deletionCallback, Experiment experiment) { super(viewContext, Collections.singletonList(experiment), deletionCallback); this.viewContext = viewContext; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/SampleListDeletionConfirmationDialog.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/SampleListDeletionConfirmationDialog.java index a3f59bddbdb..cc53c1fdaec 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/SampleListDeletionConfirmationDialog.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/SampleListDeletionConfirmationDialog.java @@ -23,11 +23,10 @@ import com.extjs.gxt.ui.client.widget.form.RadioGroup; import com.google.gwt.user.client.rpc.AsyncCallback; import ch.systemsx.cisd.openbis.generic.client.web.client.ICommonClientServiceAsync; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractAsyncCallback; import ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict; import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.DisplayedAndSelectedEntities; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.AbstractDataListTrashDeletionConfirmationDialog; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.AbstractDataListDeletionConfirmationDialog; import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.WidgetUtils; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DisplayedOrSelectedIdHolderCriteria; import ch.systemsx.cisd.openbis.generic.shared.basic.IIdHolder; @@ -35,8 +34,9 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DeletionType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind; +//TODO extend AbstractDataListTrashDeletionConfirmationDialog when trash is working properly public final class SampleListDeletionConfirmationDialog<T extends IIdHolder> extends - AbstractDataListTrashDeletionConfirmationDialog<T> + AbstractDataListDeletionConfirmationDialog<T> { private final IViewContext<ICommonClientServiceAsync> viewContext; @@ -47,8 +47,7 @@ public final class SampleListDeletionConfirmationDialog<T extends IIdHolder> ext public SampleListDeletionConfirmationDialog( IViewContext<ICommonClientServiceAsync> viewContext, List<T> data, - AbstractAsyncCallback<Void> callback, - DisplayedAndSelectedEntities<T> selectedAndDisplayedItems) + AsyncCallback<Void> callback, DisplayedAndSelectedEntities<T> selectedAndDisplayedItems) { super(viewContext, data, callback); this.withRadio(); @@ -59,7 +58,7 @@ public final class SampleListDeletionConfirmationDialog<T extends IIdHolder> ext public SampleListDeletionConfirmationDialog( IViewContext<ICommonClientServiceAsync> viewContext, List<T> data, - AbstractAsyncCallback<Void> deletionCallback, T sample) + AsyncCallback<Void> deletionCallback, T sample) { super(viewContext, data, deletionCallback); this.viewContext = viewContext; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/AbstractDataListDeletionConfirmationDialog.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/AbstractDataListDeletionConfirmationDialog.java index b371b36f162..4a521da11c3 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/AbstractDataListDeletionConfirmationDialog.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/AbstractDataListDeletionConfirmationDialog.java @@ -22,12 +22,12 @@ import com.extjs.gxt.ui.client.widget.form.Radio; import com.extjs.gxt.ui.client.widget.form.RadioGroup; import com.google.gwt.user.client.rpc.AsyncCallback; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractAsyncCallback; import ch.systemsx.cisd.openbis.generic.client.web.client.application.AsyncCallbackWithProgressBar; import ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict; import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.ReasonField; import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.WidgetUtils; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DeletionType; /** * {@link AbstractDataConfirmationDialog} abstract implementation for deleting given list of data on @@ -48,7 +48,7 @@ public abstract class AbstractDataListDeletionConfirmationDialog<T> extends protected final IViewContext<?> viewContext; - private final AbstractAsyncCallback<Void> deletionCallback; + private final AsyncCallback<Void> deletionCallback; private boolean withRadio = false; @@ -57,7 +57,7 @@ public abstract class AbstractDataListDeletionConfirmationDialog<T> extends protected ReasonField reason; public AbstractDataListDeletionConfirmationDialog(IViewContext<?> viewContext, List<T> data, - AbstractAsyncCallback<Void> deletionCallback) + AsyncCallback<Void> deletionCallback) { super(viewContext, data, viewContext.getMessage(Dict.DELETE_CONFIRMATION_TITLE)); this.viewContext = viewContext; @@ -110,9 +110,32 @@ public abstract class AbstractDataListDeletionConfirmationDialog<T> extends protected abstract void executeDeletion(AsyncCallback<Void> callback); - abstract String getOperationName(); + // property based enabling of trash is only a temporary solution - abstract String getProgressMessage(); + protected DeletionType getDeletionType() + { + return isTrashEnabled() ? DeletionType.TRASH : DeletionType.PERMANENT; + } + + String getOperationName() + { + final String dictKey = isTrashEnabled() ? Dict.DELETING : Dict.DELETING_PERMANENTLY; + return viewContext.getMessage(dictKey); + } + + String getProgressMessage() + { + final String dictKey = + isTrashEnabled() ? Dict.DELETE_PROGRESS_MESSAGE + : Dict.DELETE_PERMANENTLY_PROGRESS_MESSAGE; + return viewContext.getMessage(dictKey); + } + + private final boolean isTrashEnabled() + { + return viewContext.getModel().getApplicationInfo().getWebClientConfiguration() + .getEnableTrash(); + } @Override protected final void executeConfirmedAction() diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/AbstractDataListPermanentDeletionConfirmationDialog.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/AbstractDataListPermanentDeletionConfirmationDialog.java index 1ad5174950a..162c6e9875c 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/AbstractDataListPermanentDeletionConfirmationDialog.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/AbstractDataListPermanentDeletionConfirmationDialog.java @@ -18,7 +18,8 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget import java.util.List; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractAsyncCallback; +import com.google.gwt.user.client.rpc.AsyncCallback; + import ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict; import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DeletionType; @@ -33,12 +34,13 @@ public abstract class AbstractDataListPermanentDeletionConfirmationDialog<T> ext AbstractDataListDeletionConfirmationDialog<T> { public AbstractDataListPermanentDeletionConfirmationDialog(IViewContext<?> viewContext, - List<T> data, AbstractAsyncCallback<Void> deletionCallback) + List<T> data, AsyncCallback<Void> deletionCallback) { super(viewContext, data, deletionCallback); } - protected final DeletionType getDeletionType() + @Override + protected DeletionType getDeletionType() { return DeletionType.PERMANENT; } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/AbstractDataListTrashDeletionConfirmationDialog.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/AbstractDataListTrashDeletionConfirmationDialog.java index e19c35c365f..7af2733fd41 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/AbstractDataListTrashDeletionConfirmationDialog.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/AbstractDataListTrashDeletionConfirmationDialog.java @@ -38,7 +38,8 @@ public abstract class AbstractDataListTrashDeletionConfirmationDialog<T> extends super(viewContext, data, deletionCallback); } - protected final DeletionType getDeletionType() + @Override + protected DeletionType getDeletionType() { return DeletionType.TRASH; } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/WebClientConfigurationProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/WebClientConfigurationProvider.java index 25046d5a59a..590ebd95268 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/WebClientConfigurationProvider.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/WebClientConfigurationProvider.java @@ -74,6 +74,10 @@ public class WebClientConfigurationProvider private static final boolean DEFAULT_ALLOW_ADDING_UNOFFICIAL_TERMS = false; + private static final String ENABLE_TRASH = "enable-trash"; + + private static final boolean DEFAULT_ENABLE_TRASH = false; + static final String TECHNOLOGIES = "technologies"; private WebClientConfiguration webClientConfiguration = new WebClientConfiguration(); @@ -101,6 +105,7 @@ public class WebClientConfigurationProvider webClientConfiguration.setMaxVisibleColumns(DEFAULT_MAX_VISIBLE_COLUMNS); webClientConfiguration.setMaxEntityVisits(DEFAULT_MAX_ENTITY_VISITS); webClientConfiguration.setAllowAddingUnofficialTerms(DEFAULT_ALLOW_ADDING_UNOFFICIAL_TERMS); + webClientConfiguration.setEnableTrash(DEFAULT_ENABLE_TRASH); } private void init(Properties properties) @@ -115,6 +120,7 @@ public class WebClientConfigurationProvider webClientConfiguration .setDataSetTypesWithImageOverview(extractDataSetTypesWithImageOverview(properties)); webClientConfiguration.setViews(extractHiddenSections(properties)); + webClientConfiguration.setEnableTrash(extractEnableTrash(properties)); SectionProperties[] props = PropertyParametersUtil.extractSectionProperties(properties, TECHNOLOGIES, false); for (SectionProperties sectionProperties : props) @@ -221,6 +227,11 @@ public class WebClientConfigurationProvider DEFAULT_ALLOW_ADDING_UNOFFICIAL_TERMS); } + private boolean extractEnableTrash(Properties properties) + { + return PropertyUtils.getBoolean(properties, ENABLE_TRASH, DEFAULT_ENABLE_TRASH); + } + public WebClientConfiguration getWebClientConfiguration() { return webClientConfiguration; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/WebClientConfiguration.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/WebClientConfiguration.java index 50dce4f3273..7705c3ac1e0 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/WebClientConfiguration.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/WebClientConfiguration.java @@ -53,6 +53,8 @@ public class WebClientConfiguration implements ISerializable private int maxEntityVisits; + private boolean enableTrash; + private boolean allowAddingUnofficielTerms; public String getPropertyOrNull(String technology, String key) @@ -136,6 +138,16 @@ public class WebClientConfiguration implements ISerializable this.allowAddingUnofficielTerms = allowAddingUnofficialTerms; } + public boolean getEnableTrash() + { + return enableTrash; + } + + public void setEnableTrash(boolean enableTrash) + { + this.enableTrash = enableTrash; + } + public WebClientConfiguration() { } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/dataset/GenericDataSetViewer.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/dataset/GenericDataSetViewer.java index babe33785f8..081c0fbd020 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/dataset/GenericDataSetViewer.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/dataset/GenericDataSetViewer.java @@ -146,8 +146,11 @@ abstract public class GenericDataSetViewer extends AbstractViewerWithVerticalSpl { public void execute() { + final AsyncCallback<Void> callback = + isTrashEnabled() ? createDeletionCallback() + : createPermanentDeletionCallback(); new DataSetListDeletionConfirmationDialog(viewContext.getCommonViewContext(), - createDeletionCallback(), getOriginalData()).show(); + callback, getOriginalData()).show(); } })); diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/GenericExperimentViewer.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/GenericExperimentViewer.java index bca0633a55f..79d3fd3aa88 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/GenericExperimentViewer.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/GenericExperimentViewer.java @@ -24,6 +24,7 @@ import java.util.Set; import com.extjs.gxt.ui.client.widget.Component; import com.extjs.gxt.ui.client.widget.Html; import com.extjs.gxt.ui.client.widget.layout.BorderLayout; +import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.Widget; import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractAsyncCallback; @@ -128,9 +129,11 @@ public class GenericExperimentViewer extends AbstractViewerWithVerticalSplit<Exp { public void execute() { + final AsyncCallback<Void> callback = + isTrashEnabled() ? createDeletionCallback() + : createPermanentDeletionCallback(); new ExperimentListDeletionConfirmationDialog( - viewContext.getCommonViewContext(), createDeletionCallback(), - getOriginalData()).show(); + viewContext.getCommonViewContext(), callback, getOriginalData()).show(); } })); addToolBarButton(createRevertDeletionButton(new IDelegatedAction() diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleViewer.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleViewer.java index 29734c47a43..ebd80bdb8ff 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleViewer.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleViewer.java @@ -162,9 +162,11 @@ abstract public class GenericSampleViewer extends AbstractViewerWithVerticalSpli @SuppressWarnings("unchecked") public void execute() { + final AsyncCallback<Void> callback = + isTrashEnabled() ? createDeletionCallback() + : createPermanentDeletionCallback(); new SampleListDeletionConfirmationDialog(viewContext.getCommonViewContext(), - getOriginalDataAsSingleton(), createDeletionCallback(), - getOriginalData()).show(); + getOriginalDataAsSingleton(), callback, getOriginalData()).show(); } })); addToolBarButton(createRevertDeletionButton(new IDelegatedAction() -- GitLab