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 4ca2b9a089998b82be0653e8134cb9d57760b36e..a3a61dfaba99d1d7912bfe5cd13eb3fb43b95aef 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 40b403217a45935d0989d54f501015f1e14185c3..0b7089519309f719976f351fb810d75d3980b89e 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 8dcf4440cf9da966ec33b4c019f85bac85d9c7f8..ae9bf247e8eada6a8ae597fa2576dc4bd3ebc784 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 0000000000000000000000000000000000000000..4bd790e9f1648cdc6154bca02a0a1bae7588ceb5 --- /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 2623232c7220868437a986248347d804db7020a1..e20df7990c37477cf8dd22212302b62f04f4aeba 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 Binary files /dev/null and b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/trash.gif differ 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 cc48672fd3eb06dfa5342f343bd12bcf52bbc106..222125a708a28437e907836f5d12198bbadd96ab 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 7d5e3bfccfe15b3a33297aeb325663287aaf6f85..20c81c6e042ed6d306bb1f906829cb5aa6371816 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.",