From 96b8368bb31fb2ce59356381bc8e04ed933567b2 Mon Sep 17 00:00:00 2001
From: buczekp <buczekp>
Date: Mon, 18 Jul 2011 17:24:05 +0000
Subject: [PATCH] [LMS-2367] introduced trash button in top menu (instead of
 option in Administration menu)

SVN: 22186
---
 .../client/web/client/application/Dict.java   |   4 +++
 .../application/IGenericImageBundle.java      |   3 ++
 .../web/client/application/menu/TopMenu.java  |   3 +-
 .../client/application/menu/TrashButton.java  |  34 ++++++++++++++++++
 .../administration/AdministrationMenu.java    |   2 --
 .../client/web/client/application/trash.gif   | Bin 0 -> 132 bytes
 .../client/application/ui/AbstractViewer.java |  12 +++++--
 .../cisd/openbis/public/common-dictionary.js  |   2 ++
 8 files changed, 55 insertions(+), 5 deletions(-)
 create mode 100644 openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/menu/TrashButton.java
 create mode 100644 openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/trash.gif

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 4ca2b9a0899..a3a61dfaba9 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
@@ -539,6 +539,10 @@ public abstract class Dict
     public static final String PERMANENT_DELETIONS_CONFIRMATION_MSG =
             "permanent_deletions_confirmation_msg";
 
+    public static final String USE_TRASH_BROWSER = "use_trash_browser";
+
+    public static final String TRASH_BUTTON_TOOLTIP = "trash_button_tooltip";
+
     public static final String EMPTY_TRASH_CONFIRMATION_TITLE = "empty_trash_confirmation_title";
 
     public static final String EMPTY_TRASH_CONFIRMATION_MSG = "empty_trash_confirmation_msg";
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/IGenericImageBundle.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/IGenericImageBundle.java
index 40b403217a4..0b708951930 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/IGenericImageBundle.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/IGenericImageBundle.java
@@ -62,4 +62,7 @@ public interface IGenericImageBundle extends ClientBundle
     @Source("cancel.gif")
     public ImageResource getCancelIcon();
 
+    @Source("trash.gif")
+    public ImageResource getTrashIcon();
+
 }
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 8dcf4440cf9..ae9bf247e8e 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
@@ -55,7 +55,7 @@ public class TopMenu extends LayoutContainer
         AUTHORIZATION_MENU_USERS, AUTHORIZATION_MENU_ROLES,
         AUTHORIZATION_MENU_AUTHORIZATION_GROUPS,
 
-        TRASH, LOGGING_CONSOLE,
+        LOGGING_CONSOLE,
 
         DATA_SET_MENU_SEARCH, DATA_SET_MENU_TYPES, DATA_SET_MENU_FILE_FORMATS,
         DATA_SET_MENU_UPLOAD, DATA_SET_MENU_UPLOAD_CLIENT, DATA_SET_MENU_MASS_UPDATE,
@@ -124,6 +124,7 @@ 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));
         toolBar.add(new LoggedUserMenu(viewContext, componentProvider));
     }
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/menu/TrashButton.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/menu/TrashButton.java
new file mode 100644
index 00000000000..4bd790e9f16
--- /dev/null
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/menu/TrashButton.java
@@ -0,0 +1,34 @@
+package ch.systemsx.cisd.openbis.generic.client.web.client.application.menu;
+
+import com.extjs.gxt.ui.client.event.ButtonEvent;
+import com.extjs.gxt.ui.client.event.SelectionListener;
+import com.extjs.gxt.ui.client.widget.button.Button;
+import com.google.gwt.user.client.ui.AbstractImagePrototype;
+
+import ch.systemsx.cisd.openbis.generic.client.web.client.ICommonClientServiceAsync;
+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.framework.ComponentProvider;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DispatcherHelper;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.GWTUtils;
+
+/** {@link Button} opening trash browser */
+public class TrashButton extends Button
+{
+    public TrashButton(final IViewContext<ICommonClientServiceAsync> viewContext,
+            final ComponentProvider componentProvider)
+    {
+        setIcon(AbstractImagePrototype.create(viewContext.getImageBundle().getTrashIcon()));
+        GWTUtils.setToolTip(this, viewContext.getMessage(Dict.TRASH_BUTTON_TOOLTIP));
+        addSelectionListener(new SelectionListener<ButtonEvent>()
+            {
+
+                @Override
+                public void componentSelected(ButtonEvent ce)
+                {
+                    DispatcherHelper.dispatchNaviEvent(componentProvider.getDeletionBrowser());
+                }
+            });
+        setWidth(24);
+    }
+}
\ No newline at end of file
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/menu/administration/AdministrationMenu.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/menu/administration/AdministrationMenu.java
index 2623232c722..e20df7990c3 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/menu/administration/AdministrationMenu.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/menu/administration/AdministrationMenu.java
@@ -51,8 +51,6 @@ public class AdministrationMenu extends TopMenuItem
         submenu.add(new AuthorizationMenu(messageProvider, componentProvider));
         submenu.add(new ActionMenu(TopMenu.ActionMenuKind.DATA_SET_MENU_FILE_FORMATS,
                 messageProvider, componentProvider.getFileFormatTypeBrowser()));
-        submenu.add(new ActionMenu(TopMenu.ActionMenuKind.TRASH, messageProvider, componentProvider
-                .getDeletionBrowser()));
         if (viewContext.isLoggingEnabled())
         {
             submenu.add(new ActionMenu(TopMenu.ActionMenuKind.LOGGING_CONSOLE, messageProvider,
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/trash.gif b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/trash.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5f47780f0e61161f1fb21701d68f697fe80cbec9
GIT binary patch
literal 132
zcmV-~0DJ#ONk%w1VGsZi0Kx|VhLob9uDr9s&%Mjp$JFB5==JpZ{{R30A^8LW000L7
zEC2ui01yBW0009?c&gC8kOf0c0P(oZ7pO)d76c&(n8vM*SB<2ZGNDimwh*AuSJ=4U
mZl<Z-a>Jf6sN=bQN1>AjWhS3M<g{4T5<e7JX{%z*5&%0O4>!*M

literal 0
HcmV?d00001

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 cc48672fd3e..222125a708a 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
@@ -317,7 +317,15 @@ public abstract class AbstractViewer<D extends IEntityInformationHolder> extends
 
     protected final AbstractAsyncCallback<Void> createDeletionCallback()
     {
-        return new RefreshViewerCallback(viewContext);
+        return new RefreshViewerCallback(viewContext)
+            {
+                @Override
+                protected void process(Void result)
+                {
+                    super.process(result);
+                    GWTUtils.displayInfo(viewContext.getMessage(Dict.USE_TRASH_BROWSER));
+                }
+            };
     }
 
     protected final AbstractAsyncCallback<Void> createRevertDeletionCallback()
@@ -339,7 +347,7 @@ public abstract class AbstractViewer<D extends IEntityInformationHolder> extends
         }
     }
 
-    private final class RefreshViewerCallback extends AbstractAsyncCallback<Void>
+    private class RefreshViewerCallback extends AbstractAsyncCallback<Void>
     {
         public RefreshViewerCallback(IViewContext<?> viewContext)
         {
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 7d5e3bfccfe..20c81c6e042 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
@@ -85,6 +85,8 @@ var common = {
   revert_deletions_confirmation_msg: "Are you sure you want to revert {0} selected deletion(s)?",
   permanent_deletions_confirmation_title: "Confirm Permanent Deletion",
   permanent_deletions_confirmation_msg: "Are you sure you want to <b>permanently</b> delete all entities that were moved to trash in selected {0} deletion(s)?</br></br>You can't undo this action.",
+  use_trash_browser: "Use trash browser (click on the trash button in top menu) to delete entities permanently.",
+  trash_button_tooltip: "Displays browser of deletions, allows to revert them or confirm (delete permanently).",
   empty_trash_confirmation_title: "Confirm Empty Trash",
   empty_trash_confirmation_msg: "Are you sure you want to <b>permanently</b> delete all entities that were moved to trash?</br></br>You can't undo this action.",
 	 
-- 
GitLab