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 dae04eaa621ee3f1e706c7c29c4f4ea7989685e6..cc95e89a67619e128e79b7a1170c3e616e72b175 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 72a28b56b0c1821bc04280993e9924e98a728a2d..e7340ae3ad41fb59021040a9a84c6f2cebaec371 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 7f86d3561bf3a4ca68a51c719e2e727d5c2466d0..30da2c3e0ef95bbe6d0432482f46b4fec9fd1773 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 25df17b09a86ce1c34fece3ed06b7f3c7db7d459..33b62b5505fb6c6cfbd59a1c777d94abdbb8b3c2 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 e9e489ee1077a0e0dcbfb174049ed18f751c2d66..be54ef69a9066feb15bd09ac9aab4756293ff663 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 7f72ffdc21e52d508b6a6f3f0f4f4f0b6d690010..d415e7e26d3182f6e5043c7d3bc73f3c2a291e56 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 ee52caef1417d6580c322e7b0079ee107a2d9e55..6247e4ee4904385fa7f8353cbad8bdc1ece86d9c 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 00e2bfdf113489f0bbb0c38bba8f25841573e00d..3eaf5009b38903e19058d6a00e285791df24d85d 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 51503c322aa17ee0e39cb9fe6fb15aec3df126e2..eee9b9b4d1e090700868632cb1309b03be37ed62 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 2a2b24c3c94af97b58b3a22baf0fd3528779ffe2..7b7a5f0dc91c3629133351246439d71c13e1dcb8 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 3a626917cbedf642c9b40b3ec6293716d4f4389a..a47523b484e1bd97f7d7c165d52dacd7cfeb5fc1 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 b1a18918ca411d74393556a0df713b4980b38c0b..3a391cef529f47ccab205fd29eaad9361fe8268e 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 08e3d0e09d91185b83b8fa5ce17a2184030a706a..509104da0fa4ba7c3fca9e023fff4cdddc848a9f 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 d25b72e4284e6124041dd97918781dcd5c6f5c0e..3ec09058d73f4440cf0291bbdf43b644dfeb551c 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 97f809d2dea636f6a121a632a57dc883b60d2630..fc0341024d631cdfae68a24d6b380c45e9658057 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 00f6c0878582b8d74c66a31667870219f326428b..103df9e2aee84f13a78a27ce7cc6ebfd96266dfa 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