diff --git a/openbis/dist/server/web-client.properties b/openbis/dist/server/web-client.properties index 14d50a0e7c06d923383b2f149a9c318dc2028bbb..fe408435c107642294b93a4715aeb724ec7cbdbb 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 80f1f99e8b21e16b10f03c86a0e4019802a07d3a..f946e8e9637b650d76c5bb464b0dffb5d75843af 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 ae9bf247e8eada6a8ae597fa2576dc4bd3ebc784..1be451d3979869add42b747189ba376e053001c3 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 222125a708a28437e907836f5d12198bbadd96ab..75761a861837f79fb2cb9b93844a6c1727550e5d 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 984e2a0e733b4b0dc056272bbc14e7854acf4317..514b51702fcd52009748a785a6a4b476b90ee992 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 c68192fc957e2474f28022b53df5be74aaf2fb1d..968726b147d8eac9328fa404b5335ef0bfdb3695 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 a3f59bddbdb0947c5727c1d43a0af8e57c9d362a..cc53c1fdaec584e7f2e7acce1df08fa254c88e60 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 b371b36f162ab4691e722fbcca64312a549f0256..4a521da11c371c02022a1dc454a558242e95a771 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 1ad5174950aec6e0435b09b7e08faecbe42fab67..162c6e9875cfa91312bd2161491de765a603a62e 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 e19c35c365f4ea55ad694a25272a8f36da3d6395..7af2733fd41c1d8eea78b2e956417a40d251add4 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 25046d5a59a842b43e5dd4c02979fab1dba5b883..590ebd9526872518442b6bdcc37f58b6f8a30cc3 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 50dce4f327356932e5e481a6f8fb499cebbe6763..7705c3ac1e026726cf38b44c3cb1882fffd3a5c6 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 babe33785f83926b9e5272cabc9a7ad9b35462a1..081c0fbd020f16946eca87face78a490e37f9c0e 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 bca0633a55f2ba0394633f651bbd7ce90748d1ba..79d3fd3aa88cfc08eaff3d67e81a09e10fc8a830 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 29734c47a433e8b24542c1f0c3bae5abc6ba7689..ebd80bdb8ffd3331381e9a6b27a52884460af165 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()