From a194c10a75b5599040d55b7eb6130abd728fa6d3 Mon Sep 17 00:00:00 2001 From: buczekp <buczekp> Date: Fri, 4 Mar 2011 10:02:54 +0000 Subject: [PATCH] [LMS-2116] add progress bar to all deletions SVN: 20218 --- .../client/web/client/application/Dict.java | 2 + .../ui/AuthorizationGroupGrid.java | 9 ++-- .../web/client/application/ui/SpaceGrid.java | 10 ++--- ...achmentListDeletionConfirmationDialog.java | 11 +++-- ...DataSetListDeletionConfirmationDialog.java | 26 ++++++----- ...erimentListDeletionConfirmationDialog.java | 26 ++++++----- ...aterialListDeletionConfirmationDialog.java | 12 ++---- ...ProjectListDeletionConfirmationDialog.java | 11 +++-- ...rtyTypeListDeletionConfirmationDialog.java | 11 +++-- .../ui/sample/SampleBrowserGrid.java | 43 +++++++++++-------- .../SampleListDeletionConfirmationDialog.java | 20 +++------ .../application/ui/script/ScriptGrid.java | 9 ++-- ...abularyListDeletionConfirmationDialog.java | 11 +++-- ...actDataListDeletionConfirmationDialog.java | 31 +++++++++++-- .../cisd/openbis/public/common-dictionary.js | 1 + .../SampleAbundanceBrowserGrid.java | 10 ++--- 16 files changed, 123 insertions(+), 120 deletions(-) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/Dict.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/Dict.java index dae04eaa621..cc95e89a676 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/Dict.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/Dict.java @@ -903,6 +903,8 @@ public abstract class Dict public static final String DELETE_CONFIRMATION_MESSAGE_WITH_REASON = "delete_confirmation_message_with_reason"; + public static final String DELETE_PROGRESS_MESSAGE = "delete_progress_message"; + public static final String DELETE_CONFIRMATION_WARNING = "delete_confirmation_warning"; public static final String DELETE_CONFIRMATION_WARNING_PART_FOR_EXPERIMENT = diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/AuthorizationGroupGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/AuthorizationGroupGrid.java index 72a28b56b0c..e7340ae3ad4 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/AuthorizationGroupGrid.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/AuthorizationGroupGrid.java @@ -256,22 +256,19 @@ public class AuthorizationGroupGrid extends AbstractSimpleBrowserGrid<Authorizat private final IViewContext<ICommonClientServiceAsync> viewContext; - private final AbstractAsyncCallback<Void> callback; - public GroupListDeletionConfirmationDialog( IViewContext<ICommonClientServiceAsync> viewContext, List<AuthorizationGroup> data, AbstractAsyncCallback<Void> callback) { - super(viewContext, data); + super(viewContext, data, callback); this.viewContext = viewContext; - this.callback = callback; } @Override - protected void executeConfirmedAction() + protected void executeDeletion(AsyncCallback<Void> deletionCallback) { viewContext.getCommonService().deleteAuthorizationGroups(TechId.createList(data), - reason.getValue(), callback); + reason.getValue(), deletionCallback); } @Override diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/SpaceGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/SpaceGrid.java index 7f86d3561bf..30da2c3e0ef 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/SpaceGrid.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/SpaceGrid.java @@ -216,28 +216,24 @@ public class SpaceGrid extends TypedTableGrid<Space> private final IViewContext<ICommonClientServiceAsync> viewContext; - private final AbstractAsyncCallback<Void> callback; - public GroupListDeletionConfirmationDialog( IViewContext<ICommonClientServiceAsync> viewContext, List<TableModelRowWithObject<Space>> data, AbstractAsyncCallback<Void> callback) { - super(viewContext, data); + super(viewContext, data, callback); this.viewContext = viewContext; - this.callback = callback; } @Override - protected void executeConfirmedAction() + protected void executeDeletion(AsyncCallback<Void> deletionCallback) { - List<TableModelRowWithObject<Space>> d = data; List<TechId> list = new ArrayList<TechId>(); for (TableModelRowWithObject<Space> tableModelRowWithObject : d) { list.add(new TechId(tableModelRowWithObject.getObjectOrNull().getId())); } - viewContext.getCommonService().deleteGroups(list, reason.getValue(), callback); + viewContext.getCommonService().deleteGroups(list, reason.getValue(), deletionCallback); } @Override diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/attachment/AttachmentListDeletionConfirmationDialog.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/attachment/AttachmentListDeletionConfirmationDialog.java index 25df17b09a8..33b62b5505f 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/attachment/AttachmentListDeletionConfirmationDialog.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/attachment/AttachmentListDeletionConfirmationDialog.java @@ -19,6 +19,8 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.attach import java.util.ArrayList; import java.util.List; +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; @@ -34,8 +36,6 @@ public final class AttachmentListDeletionConfirmationDialog extends private final IViewContext<ICommonClientServiceAsync> viewContext; - private final AbstractAsyncCallback<Void> callback; - private final IAttachmentHolder attachmentHolder; public AttachmentListDeletionConfirmationDialog( @@ -43,18 +43,17 @@ public final class AttachmentListDeletionConfirmationDialog extends List<AttachmentVersions> attachments, AbstractAsyncCallback<Void> callback, IAttachmentHolder attachmentHolder) { - super(viewContext, attachments); + super(viewContext, attachments, callback); this.viewContext = viewContext; - this.callback = callback; this.attachmentHolder = attachmentHolder; } @Override - protected void executeConfirmedAction() + protected void executeDeletion(AsyncCallback<Void> deletionCallback) { viewContext.getCommonService().deleteAttachments(TechId.create(attachmentHolder), attachmentHolder.getAttachmentHolderKind(), getAttachmentFileNames(data), - reason.getValue(), callback); + reason.getValue(), deletionCallback); } @Override 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 e9e489ee107..be54ef69a90 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 @@ -19,6 +19,7 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.data; import java.util.Collections; 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; @@ -37,8 +38,6 @@ public final class DataSetListDeletionConfirmationDialog extends private final IViewContext<ICommonClientServiceAsync> viewContext; - private final AbstractAsyncCallback<Void> callback; - private final SelectedAndDisplayedItems selectedAndDisplayedItemsOrNull; private final ExternalData singleData; @@ -48,9 +47,8 @@ public final class DataSetListDeletionConfirmationDialog extends AbstractAsyncCallback<Void> callback, SelectedAndDisplayedItems selectedAndDisplayedItems) { - super(viewContext, selectedAndDisplayedItems.getSelectedItems(), true); + super(viewContext, selectedAndDisplayedItems.getSelectedItems(), callback, true); this.viewContext = viewContext; - this.callback = callback; this.singleData = null; this.selectedAndDisplayedItemsOrNull = selectedAndDisplayedItems; } @@ -59,26 +57,25 @@ public final class DataSetListDeletionConfirmationDialog extends IViewContext<ICommonClientServiceAsync> viewContext, ExternalData data, AbstractAsyncCallback<Void> callback) { - super(viewContext, Collections.singletonList(data), false); + super(viewContext, Collections.singletonList(data), callback, false); this.viewContext = viewContext; - this.callback = callback; this.singleData = data; this.selectedAndDisplayedItemsOrNull = null; } @Override - protected void executeConfirmedAction() + protected void executeDeletion(AsyncCallback<Void> deletionCallback) { if (selectedAndDisplayedItemsOrNull != null) { final DisplayedOrSelectedDatasetCriteria uploadCriteria = selectedAndDisplayedItemsOrNull.createCriteria(isOnlySelected()); viewContext.getCommonService().deleteDataSets(uploadCriteria, reason.getValue(), - callback); + deletionCallback); } else { viewContext.getCommonService().deleteDataSet(singleData.getCode(), reason.getValue(), - callback); + deletionCallback); } } @@ -91,10 +88,11 @@ public final class DataSetListDeletionConfirmationDialog extends @Override protected final RadioGroup createRadio() { - return WidgetUtils.createAllOrSelectedRadioGroup(onlySelectedRadioOrNull = - WidgetUtils.createRadio(viewContext.getMessage(Dict.ONLY_SELECTED_RADIO, data - .size())), WidgetUtils.createRadio(viewContext.getMessage(Dict.ALL_RADIO, - selectedAndDisplayedItemsOrNull.getDisplayedItemsCount())), viewContext - .getMessage(Dict.DATA_SETS_RADIO_GROUP_LABEL), data.size()); + return WidgetUtils.createAllOrSelectedRadioGroup( + onlySelectedRadioOrNull = + WidgetUtils.createRadio(viewContext.getMessage(Dict.ONLY_SELECTED_RADIO, + data.size())), WidgetUtils.createRadio(viewContext.getMessage( + Dict.ALL_RADIO, selectedAndDisplayedItemsOrNull.getDisplayedItemsCount())), + viewContext.getMessage(Dict.DATA_SETS_RADIO_GROUP_LABEL), data.size()); } } 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 7f72ffdc21e..d415e7e26d3 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 @@ -19,6 +19,7 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.experi import java.util.Collections; 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; @@ -38,8 +39,6 @@ public final class ExperimentListDeletionConfirmationDialog extends private final IViewContext<ICommonClientServiceAsync> viewContext; - private final AbstractAsyncCallback<Void> callback; - private final DisplayedAndSelectedExperiments selectedAndDisplayedItemsOrNull; private final Experiment singleDataOrNull; @@ -49,9 +48,8 @@ public final class ExperimentListDeletionConfirmationDialog extends AbstractAsyncCallback<Void> callback, DisplayedAndSelectedExperiments selectedAndDisplayedItems) { - super(viewContext, selectedAndDisplayedItems.getSelectedItems(), true); + super(viewContext, selectedAndDisplayedItems.getSelectedItems(), callback, true); this.viewContext = viewContext; - this.callback = callback; this.singleDataOrNull = null; this.selectedAndDisplayedItemsOrNull = selectedAndDisplayedItems; } @@ -60,26 +58,25 @@ public final class ExperimentListDeletionConfirmationDialog extends IViewContext<ICommonClientServiceAsync> viewContext, AbstractAsyncCallback<Void> callback, Experiment experiment) { - super(viewContext, Collections.singletonList(experiment), false); + super(viewContext, Collections.singletonList(experiment), callback, false); this.viewContext = viewContext; - this.callback = callback; this.singleDataOrNull = experiment; this.selectedAndDisplayedItemsOrNull = null; } @Override - protected void executeConfirmedAction() + protected void executeDeletion(AsyncCallback<Void> deletionCallback) { if (selectedAndDisplayedItemsOrNull != null) { final DisplayedOrSelectedIdHolderCriteria<Experiment> uploadCriteria = selectedAndDisplayedItemsOrNull.createCriteria(isOnlySelected()); viewContext.getCommonService().deleteExperiments(uploadCriteria, reason.getValue(), - callback); + deletionCallback); } else { viewContext.getCommonService().deleteExperiment(TechId.create(singleDataOrNull), - reason.getValue(), callback); + reason.getValue(), deletionCallback); } } @@ -92,11 +89,12 @@ public final class ExperimentListDeletionConfirmationDialog extends @Override protected final RadioGroup createRadio() { - return WidgetUtils.createAllOrSelectedRadioGroup(onlySelectedRadioOrNull = - WidgetUtils.createRadio(viewContext.getMessage(Dict.ONLY_SELECTED_RADIO, data - .size())), WidgetUtils.createRadio(viewContext.getMessage(Dict.ALL_RADIO, - selectedAndDisplayedItemsOrNull.getDisplayedItemsCount())), viewContext - .getMessage(Dict.EXPERIMENTS_RADIO_GROUP_LABEL), data.size()); + return WidgetUtils.createAllOrSelectedRadioGroup( + onlySelectedRadioOrNull = + WidgetUtils.createRadio(viewContext.getMessage(Dict.ONLY_SELECTED_RADIO, + data.size())), WidgetUtils.createRadio(viewContext.getMessage( + Dict.ALL_RADIO, selectedAndDisplayedItemsOrNull.getDisplayedItemsCount())), + viewContext.getMessage(Dict.EXPERIMENTS_RADIO_GROUP_LABEL), data.size()); } } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialListDeletionConfirmationDialog.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialListDeletionConfirmationDialog.java index ee52caef141..6247e4ee490 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialListDeletionConfirmationDialog.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialListDeletionConfirmationDialog.java @@ -19,10 +19,10 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.materi import java.util.List; 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.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.material.MaterialBrowserGrid.DisplayedAndSelectedMaterials; @@ -38,8 +38,6 @@ public final class MaterialListDeletionConfirmationDialog extends private final IViewContext<ICommonClientServiceAsync> viewContext; - private final AbstractAsyncCallback<Void> callback; - private final DisplayedAndSelectedMaterials selectedAndDisplayedItems; public MaterialListDeletionConfirmationDialog( @@ -47,20 +45,18 @@ public final class MaterialListDeletionConfirmationDialog extends AbstractAsyncCallback<Void> callback, DisplayedAndSelectedMaterials selectedAndDisplayedItems) { - super(viewContext, data, true); + super(viewContext, data, callback, true); this.viewContext = viewContext; - this.callback = callback; this.selectedAndDisplayedItems = selectedAndDisplayedItems; } @Override - protected void executeConfirmedAction() + protected void executeDeletion(AsyncCallback<Void> deletionCallback) { final DisplayedOrSelectedIdHolderCriteria<Material> uploadCriteria = selectedAndDisplayedItems.createCriteria(isOnlySelected()); viewContext.getCommonService().deleteMaterials(uploadCriteria, reason.getValue(), - AsyncCallbackWithProgressBar.decorate(callback, "Deleting materials...")); - + deletionCallback); } @Override diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/project/ProjectListDeletionConfirmationDialog.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/project/ProjectListDeletionConfirmationDialog.java index 00e2bfdf113..3eaf5009b38 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/project/ProjectListDeletionConfirmationDialog.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/project/ProjectListDeletionConfirmationDialog.java @@ -19,6 +19,8 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.projec import java.util.Collections; import java.util.List; +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; @@ -33,15 +35,12 @@ public final class ProjectListDeletionConfirmationDialog extends private final IViewContext<ICommonClientServiceAsync> viewContext; - private final AbstractAsyncCallback<Void> callback; - public ProjectListDeletionConfirmationDialog( IViewContext<ICommonClientServiceAsync> viewContext, List<Project> data, AbstractAsyncCallback<Void> callback) { - super(viewContext, data); + super(viewContext, data, callback); this.viewContext = viewContext; - this.callback = callback; } public ProjectListDeletionConfirmationDialog( @@ -52,10 +51,10 @@ public final class ProjectListDeletionConfirmationDialog extends } @Override - protected void executeConfirmedAction() + protected void executeDeletion(AsyncCallback<Void> deletionCallback) { viewContext.getCommonService().deleteProjects(TechId.createList(data), reason.getValue(), - callback); + deletionCallback); } @Override diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeListDeletionConfirmationDialog.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeListDeletionConfirmationDialog.java index 51503c322aa..eee9b9b4d1e 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeListDeletionConfirmationDialog.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeListDeletionConfirmationDialog.java @@ -18,6 +18,8 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.proper import java.util.List; +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; @@ -32,22 +34,19 @@ public final class PropertyTypeListDeletionConfirmationDialog extends private final IViewContext<ICommonClientServiceAsync> viewContext; - private final AbstractAsyncCallback<Void> callback; - public PropertyTypeListDeletionConfirmationDialog( IViewContext<ICommonClientServiceAsync> viewContext, List<PropertyType> propertyTypes, AbstractAsyncCallback<Void> callback) { - super(viewContext, propertyTypes); + super(viewContext, propertyTypes, callback); this.viewContext = viewContext; - this.callback = callback; } @Override - protected void executeConfirmedAction() + protected void executeDeletion(AsyncCallback<Void> deletionCallback) { viewContext.getCommonService().deletePropertyTypes(TechId.createList(data), - reason.getValue(), callback); + reason.getValue(), deletionCallback); } @Override diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/SampleBrowserGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/SampleBrowserGrid.java index 2a2b24c3c94..7b7a5f0dc91 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/SampleBrowserGrid.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/SampleBrowserGrid.java @@ -88,7 +88,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRowWithObject /** * Grid showing {@link Sample} instances. - * + * * @author Franz-Josef Elmer */ public class SampleBrowserGrid extends TypedTableGrid<Sample> @@ -123,8 +123,8 @@ public class SampleBrowserGrid extends TypedTableGrid<Sample> DisplayTypeIDGenerator.ENTITY_BROWSER_GRID) { @Override - protected void showEntityViewer(TableModelRowWithObject<Sample> row, boolean editMode, - boolean active) + protected void showEntityViewer(TableModelRowWithObject<Sample> row, + boolean editMode, boolean active) { // do nothing - avoid showing the details after double click } @@ -336,10 +336,12 @@ public class SampleBrowserGrid extends TypedTableGrid<Sample> public String getGridDisplayTypeID() { ListSampleDisplayCriteria criteria = getCriteriaProvider().tryGetCriteria(); - String suffix = createDisplayIdSuffix(EntityKind.SAMPLE, criteria == null ? null : criteria.tryGetSampleType()); + String suffix = + createDisplayIdSuffix(EntityKind.SAMPLE, + criteria == null ? null : criteria.tryGetSampleType()); return createGridDisplayTypeID(suffix); } - + private static String createDisplayIdSuffix(EntityKind entityKindOrNull, EntityType entityTypeOrNull) { @@ -354,7 +356,7 @@ public class SampleBrowserGrid extends TypedTableGrid<Sample> } return suffix; } - + private void linkSample() { ICellListenerAndLinkGenerator<Sample> listenerLinkGenerator = @@ -363,7 +365,8 @@ public class SampleBrowserGrid extends TypedTableGrid<Sample> public void handle(TableModelRowWithObject<Sample> rowItem, boolean specialKeyPressed) { - showEntityInformationHolderViewer(rowItem.getObjectOrNull(), false, specialKeyPressed); + showEntityInformationHolderViewer(rowItem.getObjectOrNull(), false, + specialKeyPressed); } public String tryGetLink(Sample entity, @@ -401,7 +404,7 @@ public class SampleBrowserGrid extends TypedTableGrid<Sample> registerListenerAndLinkGenerator(SampleGridColumnIDs.EXPERIMENT_IDENTIFIER, listenerLinkGenerator); } - + private void linkProject() { registerListenerAndLinkGenerator(SampleGridColumnIDs.PROJECT, @@ -467,8 +470,8 @@ public class SampleBrowserGrid extends TypedTableGrid<Sample> public void handle(TableModelRowWithObject<Sample> rowItem, boolean specialKeyPressed) { - showEntityInformationHolderViewer(rowItem.getObjectOrNull().getContainer(), false, - specialKeyPressed); + showEntityInformationHolderViewer(rowItem.getObjectOrNull() + .getContainer(), false, specialKeyPressed); } public String tryGetLink(Sample entity, @@ -480,8 +483,6 @@ public class SampleBrowserGrid extends TypedTableGrid<Sample> }); } - - @Override protected GridCellRenderer<BaseEntityModel<?>> createInternalLinkCellRenderer() { @@ -516,7 +517,8 @@ public class SampleBrowserGrid extends TypedTableGrid<Sample> @Override protected List<String> getColumnIdsOfFilters() { - return Arrays.asList(SampleGridColumnIDs.CODE, SampleGridColumnIDs.EXPERIMENT, SampleGridColumnIDs.PROJECT); + return Arrays.asList(SampleGridColumnIDs.CODE, SampleGridColumnIDs.EXPERIMENT, + SampleGridColumnIDs.PROJECT); } @Override @@ -661,7 +663,7 @@ public class SampleBrowserGrid extends TypedTableGrid<Sample> protected Dialog createDialog(List<TableModelRowWithObject<Sample>> samples, IBrowserGridActionInvoker invoker) { - AsyncCallback<Void> callback = createRefreshCallback(invoker); + AbstractAsyncCallback<Void> callback = createRefreshCallback(invoker); DisplayedAndSelectedEntities<TableModelRowWithObject<Sample>> s = getDisplayedAndSelectedItemsAction().execute(); return new SampleListDeletionConfirmationDialog<TableModelRowWithObject<Sample>>( @@ -681,12 +683,14 @@ public class SampleBrowserGrid extends TypedTableGrid<Sample> { TableExportCriteria<TableModelRowWithObject<Sample>> tableExportCriteria = createTableExportCriteria(); - List<TableModelRowWithObject<Sample>> selectedBaseObjects = getSelectedBaseObjects(); - return new DisplayedAndSelectedEntities<TableModelRowWithObject<Sample>>(selectedBaseObjects, - tableExportCriteria, getTotalCount()); + List<TableModelRowWithObject<Sample>> selectedBaseObjects = + getSelectedBaseObjects(); + return new DisplayedAndSelectedEntities<TableModelRowWithObject<Sample>>( + selectedBaseObjects, tableExportCriteria, getTotalCount()); } }; } + public static final String createChildComponentId(final String browserId, final String childSuffix) { @@ -741,11 +745,12 @@ public class SampleBrowserGrid extends TypedTableGrid<Sample> } @Override - protected void showEntityViewer(TableModelRowWithObject<Sample> row, boolean editMode, boolean inBackground) + protected void showEntityViewer(TableModelRowWithObject<Sample> row, boolean editMode, + boolean inBackground) { showEntityInformationHolderViewer(row.getObjectOrNull(), editMode, inBackground); } - + protected final IDelegatedAction createGridRefreshDelegatedAction() { return new IDelegatedAction() 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 3a626917cbe..a47523b484e 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 @@ -24,7 +24,6 @@ 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.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.DisplayedAndSelectedEntities; @@ -41,19 +40,17 @@ public final class SampleListDeletionConfirmationDialog<T extends IIdHolder> ext private final IViewContext<ICommonClientServiceAsync> viewContext; - private final AsyncCallback<Void> callback; - private final DisplayedAndSelectedEntities<T> selectedAndDisplayedItemsOrNull; private final T singleDataOrNull; public SampleListDeletionConfirmationDialog( IViewContext<ICommonClientServiceAsync> viewContext, List<T> data, - AsyncCallback<Void> callback, DisplayedAndSelectedEntities<T> selectedAndDisplayedItems) + AbstractAsyncCallback<Void> callback, + DisplayedAndSelectedEntities<T> selectedAndDisplayedItems) { - super(viewContext, data, true); + super(viewContext, data, callback, true); this.viewContext = viewContext; - this.callback = callback; this.singleDataOrNull = null; this.selectedAndDisplayedItemsOrNull = selectedAndDisplayedItems; } @@ -62,28 +59,25 @@ public final class SampleListDeletionConfirmationDialog<T extends IIdHolder> ext IViewContext<ICommonClientServiceAsync> viewContext, List<T> data, AbstractAsyncCallback<Void> callback, T sample) { - super(viewContext, data, false); + super(viewContext, data, callback, false); this.viewContext = viewContext; - this.callback = callback; this.singleDataOrNull = sample; this.selectedAndDisplayedItemsOrNull = null; } @Override - protected void executeConfirmedAction() + protected void executeDeletion(AsyncCallback<Void> deletionCallback) { - AsyncCallback<Void> callbackWithProgressBar = - AsyncCallbackWithProgressBar.decorate(callback, "Deleting samples..."); if (selectedAndDisplayedItemsOrNull != null) { final DisplayedOrSelectedIdHolderCriteria<T> uploadCriteria = selectedAndDisplayedItemsOrNull.createCriteria(isOnlySelected()); viewContext.getCommonService().deleteSamples(uploadCriteria, reason.getValue(), - callbackWithProgressBar); + deletionCallback); } else { viewContext.getCommonService().deleteSample(TechId.create(singleDataOrNull), - reason.getValue(), callbackWithProgressBar); + reason.getValue(), deletionCallback); } } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/script/ScriptGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/script/ScriptGrid.java index b1a18918ca4..3a391cef529 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/script/ScriptGrid.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/script/ScriptGrid.java @@ -253,21 +253,18 @@ public class ScriptGrid extends TypedTableGrid<Script> private final IViewContext<ICommonClientServiceAsync> viewContext; - private final AbstractAsyncCallback<Void> callback; - public ScriptListDeletionConfirmationDialog( IViewContext<ICommonClientServiceAsync> viewContext, List<TableModelRowWithObject<Script>> data, AbstractAsyncCallback<Void> callback) { - super(viewContext, data); + super(viewContext, data, callback); this.viewContext = viewContext; - this.callback = callback; } @Override - protected void executeConfirmedAction() + protected void executeDeletion(AsyncCallback<Void> deletionCallback) { - viewContext.getCommonService().deleteScripts(TechId.createList(data), callback); + viewContext.getCommonService().deleteScripts(TechId.createList(data), deletionCallback); } @Override diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/vocabulary/VocabularyListDeletionConfirmationDialog.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/vocabulary/VocabularyListDeletionConfirmationDialog.java index 08e3d0e09d9..509104da0fa 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/vocabulary/VocabularyListDeletionConfirmationDialog.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/vocabulary/VocabularyListDeletionConfirmationDialog.java @@ -18,6 +18,8 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.vocabu import java.util.List; +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; @@ -33,23 +35,20 @@ public final class VocabularyListDeletionConfirmationDialog extends private final IViewContext<ICommonClientServiceAsync> viewContext; - private final AbstractAsyncCallback<Void> callback; - public VocabularyListDeletionConfirmationDialog( IViewContext<ICommonClientServiceAsync> viewContext, List<TableModelRowWithObject<Vocabulary>> vocabularies, AbstractAsyncCallback<Void> callback) { - super(viewContext, vocabularies); + super(viewContext, vocabularies, callback); this.viewContext = viewContext; - this.callback = callback; } @Override - protected void executeConfirmedAction() + protected void executeDeletion(AsyncCallback<Void> deletionCallback) { viewContext.getCommonService().deleteVocabularies(TechId.createList(data), - reason.getValue(), callback); + reason.getValue(), deletionCallback); } @Override 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 d25b72e4284..3ec09058d73 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 @@ -20,7 +20,10 @@ import java.util.List; 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.ui.field.ReasonField; import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IMessageProvider; @@ -43,6 +46,8 @@ public abstract class AbstractDataListDeletionConfirmationDialog<T> extends private static final String SELECTED = " selected "; + private final AbstractAsyncCallback<Void> callback; + private final boolean withRadio; protected Radio onlySelectedRadioOrNull; @@ -50,16 +55,18 @@ public abstract class AbstractDataListDeletionConfirmationDialog<T> extends protected ReasonField reason; public AbstractDataListDeletionConfirmationDialog(IMessageProvider messageProvider, - List<T> data, boolean withRadio) + List<T> data, AbstractAsyncCallback<Void> callback, boolean withRadio) { super(messageProvider, data, messageProvider.getMessage(Dict.DELETE_CONFIRMATION_TITLE)); + this.callback = callback; this.withRadio = withRadio; } // without radio - public AbstractDataListDeletionConfirmationDialog(IMessageProvider messageProvider, List<T> data) + public AbstractDataListDeletionConfirmationDialog(IMessageProvider messageProvider, + List<T> data, AbstractAsyncCallback<Void> callback) { - this(messageProvider, data, false); + this(messageProvider, data, callback, false); } @Override @@ -96,6 +103,14 @@ public abstract class AbstractDataListDeletionConfirmationDialog<T> extends protected abstract String getEntityName(); + protected abstract void executeDeletion(AsyncCallback<Void> deletionCallback); + + @Override + protected final void executeConfirmedAction() + { + executeDeletion(getCallbackWithProgressBar()); + } + /** * This method should be overriden in subclasses if dialog is supposed to use a radio and set * {@link #onlySelectedRadioOrNull}. @@ -109,4 +124,14 @@ public abstract class AbstractDataListDeletionConfirmationDialog<T> extends { return WidgetUtils.isSelected(onlySelectedRadioOrNull); } + + /** + * Returns deletion callback and shows a progress bar that will be hidden when the callback is + * finished. + */ + private AsyncCallback<Void> getCallbackWithProgressBar() + { + return AsyncCallbackWithProgressBar.decorate(callback, + messageProvider.getMessage(Dict.DELETE_PROGRESS_MESSAGE, getEntityName())); + } } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/common-dictionary.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/common-dictionary.js index 97f809d2dea..fc0341024d6 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/public/common-dictionary.js +++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/common-dictionary.js @@ -42,6 +42,7 @@ var common = { url: "URL", reason: "Reason", delete_confirmation_message_with_reason: "You are deleting {0}(s).<br><br>Please enter a reason or cancel deletion.", + delete_progress_message: "Deleting {0}(s)...", add_attachment: "Add attachment...", data_view: "Data View", main_data_set_path: "Main Data Set Path", diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/application/SampleAbundanceBrowserGrid.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/application/SampleAbundanceBrowserGrid.java index 00f6c087858..103df9e2aee 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/application/SampleAbundanceBrowserGrid.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/application/SampleAbundanceBrowserGrid.java @@ -22,6 +22,7 @@ import java.util.Set; import com.extjs.gxt.ui.client.widget.Dialog; import com.extjs.gxt.ui.client.widget.LayoutContainer; import com.extjs.gxt.ui.client.widget.button.Button; +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; @@ -227,22 +228,19 @@ public class SampleAbundanceBrowserGrid private final IViewContext<ICommonClientServiceAsync> viewContext; - private final AbstractAsyncCallback<Void> callback; - public SampleListDeletionConfirmationDialog( IViewContext<ICommonClientServiceAsync> viewContext, List<SampleWithPropertiesAndAbundance> data, AbstractAsyncCallback<Void> callback) { - super(viewContext, data); + super(viewContext, data, callback); this.viewContext = viewContext; - this.callback = callback; } @Override - protected void executeConfirmedAction() + protected void executeDeletion(AsyncCallback<Void> deletionCallback) { viewContext.getCommonService().deleteSamples(TechId.createList(data), - reason.getValue(), callback); + reason.getValue(), deletionCallback); } @Override -- GitLab