From 8e5b82cee32d61e8c98443eb5c0d670ec2b8e22e Mon Sep 17 00:00:00 2001 From: buczekp <buczekp> Date: Tue, 29 Sep 2009 13:38:03 +0000 Subject: [PATCH] [LMS-1122] change delete button label when table rows selection changes SVN: 12767 --- .../ui/data/AbstractExternalDataGrid.java | 27 ++++++++++--------- .../ui/experiment/ExperimentBrowserGrid.java | 26 +++++++++--------- .../ui/grid/AbstractBrowserGrid.java | 18 +++++++++++++ .../ui/sample/SampleBrowserGrid.java | 27 ++++++++++--------- 4 files changed, 62 insertions(+), 36 deletions(-) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/AbstractExternalDataGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/AbstractExternalDataGrid.java index 32dcb78da4c..db657dfa082 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/AbstractExternalDataGrid.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/AbstractExternalDataGrid.java @@ -103,18 +103,21 @@ public abstract class AbstractExternalDataGrid addButton(createSelectedItemButton(viewContext.getMessage(Dict.BUTTON_EDIT), asShowEntityInvoker(true))); - addButton(new Button(viewContext.getMessage(Dict.BUTTON_DELETE), - new AbstractCreateDialogListener() - { - @Override - protected Dialog createDialog(List<ExternalData> dataSets, - IBrowserGridActionInvoker invoker) - { - return new DataSetListDeletionConfirmationDialog(viewContext, - createDeletionCallback(invoker), - getSelectedAndDisplayedItemsAction().execute()); - } - })); + final String deleteTitle = viewContext.getMessage(Dict.BUTTON_DELETE); + final String deleteAllTitle = deleteTitle + " All"; + final Button deleteButton = new Button(deleteAllTitle, new AbstractCreateDialogListener() + { + + @Override + protected Dialog createDialog(List<ExternalData> dataSets, + IBrowserGridActionInvoker invoker) + { + return new DataSetListDeletionConfirmationDialog(viewContext, + createDeletionCallback(invoker), getSelectedAndDisplayedItemsAction() + .execute()); + } + }); + addButton(deleteButton); Button uploadButton = new Button(viewContext.getMessage(Dict.BUTTON_UPLOAD_DATASETS), new AbstractCreateDialogListener() diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ExperimentBrowserGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ExperimentBrowserGrid.java index 1539a674760..2a53c23d914 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ExperimentBrowserGrid.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ExperimentBrowserGrid.java @@ -159,18 +159,20 @@ public class ExperimentBrowserGrid extends editButton.setId(EDIT_BUTTON_ID); addButton(editButton); - addButton(new Button(viewContext.getMessage(Dict.BUTTON_DELETE), - new AbstractCreateDialogListener() - { - @Override - protected Dialog createDialog(List<Experiment> experiments, - IBrowserGridActionInvoker invoker) - { - return new ExperimentListDeletionConfirmationDialog(viewContext, - createDeletionCallback(invoker), - getDisplayedAndSelectedItemsAction().execute()); - } - })); + final String deleteTitle = viewContext.getMessage(Dict.BUTTON_DELETE); + final String deleteAllTitle = deleteTitle + " All"; + final Button deleteButton = new Button(deleteAllTitle, new AbstractCreateDialogListener() + { + @Override + protected Dialog createDialog(List<Experiment> experiments, + IBrowserGridActionInvoker invoker) + { + return new ExperimentListDeletionConfirmationDialog(viewContext, + createDeletionCallback(invoker), getDisplayedAndSelectedItemsAction() + .execute()); + } + }); + addButton(deleteButton); allowMultipleSelection(); // we allow deletion of multiple samples addEntityOperationsSeparator(); diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/AbstractBrowserGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/AbstractBrowserGrid.java index 7f974eb0418..2ed8a820ffe 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/AbstractBrowserGrid.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/AbstractBrowserGrid.java @@ -823,6 +823,24 @@ public abstract class AbstractBrowserGrid<T/* Entity */, M extends BaseEntityMod }); } + /** + * Given <var>button</var> will have title changed depending on number of items selected in the + * grid. + */ + protected final void changeButtonTitleOnSelectedItems(final Button button, + final String noSelectedItemsTitle, final String selectedItemsTitle) + { + addGridSelectionChangeListener(new Listener<SelectionEvent<ModelData>>() + { + public void handleEvent(SelectionEvent<ModelData> se) + { + boolean noSelected = se.selection.size() == 0; + button.setText(noSelected ? noSelectedItemsTitle : selectedItemsTitle); + } + + }); + } + private void addGridSelectionChangeListener(Listener<SelectionEvent<ModelData>> listener) { grid.getSelectionModel().addListener(Events.SelectionChange, listener); 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 3ea35c41421..a8231fdecad 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 @@ -362,18 +362,21 @@ public class SampleBrowserGrid extends editButton.setId(EDIT_BUTTON_ID); addButton(editButton); - addButton(new Button(viewContext.getMessage(Dict.BUTTON_DELETE), - new AbstractCreateDialogListener() - { - @Override - protected Dialog createDialog(List<Sample> samples, - IBrowserGridActionInvoker invoker) - { - return new SampleListDeletionConfirmationDialog(viewContext, samples, - createDeletionCallback(invoker), - getDisplayedAndSelectedItemsAction().execute()); - } - })); + final String deleteTitle = viewContext.getMessage(Dict.BUTTON_DELETE); + final String deleteAllTitle = deleteTitle + " All"; + final Button deleteButton = new Button(deleteAllTitle, new AbstractCreateDialogListener() + { + @Override + protected Dialog createDialog(List<Sample> samples, + IBrowserGridActionInvoker invoker) + { + return new SampleListDeletionConfirmationDialog(viewContext, samples, + createDeletionCallback(invoker), getDisplayedAndSelectedItemsAction() + .execute()); + } + }); + changeButtonTitleOnSelectedItems(deleteButton, deleteAllTitle, deleteTitle); + addButton(deleteButton); allowMultipleSelection(); // we allow deletion of multiple samples } -- GitLab