From e3d6da99577e924b3efeffdb09527f6b0449f941 Mon Sep 17 00:00:00 2001 From: buczekp <buczekp> Date: Tue, 12 Jul 2011 14:08:29 +0000 Subject: [PATCH] [LMS-2368] forbid edition of entities moved to trash in UI SVN: 22093 --- .../client/web/client/application/Dict.java | 6 +++++ .../ui/grid/AbstractBrowserGrid.java | 5 ++++ .../OpenEntityEditorTabClickListener.java | 25 +++++++++++++++++++ .../cisd/openbis/public/common-dictionary.js | 2 ++ 4 files changed, 38 insertions(+) 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 1b5fe8f10b9..fe3ba287f1f 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 @@ -508,6 +508,12 @@ public abstract class Dict public static final String DELETE_PROGRESS_MESSAGE = "delete_progress_message"; + public static final String CANNOT_MODIFY_DELETED_ENTITY_TITLE = + "cannot_modify_deleted_entity_title"; + + public static final String CANNOT_MODIFY_DELETED_ENTITY_MSG = + "cannot_modify_deleted_entity_msg"; + // // Sample Viewer // 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 80a54771a85..c40c4a430f4 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 @@ -103,6 +103,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.specific.GridCustomColumnDefinition; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.BrowserGridPagingToolBar.PagingToolBarButtonKind; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.expressions.filter.FilterToolbar; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.listener.OpenEntityEditorTabClickListener; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.IDataRefreshCallback; import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.GWTUtils; import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.GWTUtils.DisplayInfoTime; @@ -387,6 +388,10 @@ public abstract class AbstractBrowserGrid<T/* Entity */, M extends BaseEntityMod protected void showEntityInformationHolderViewer(IEntityInformationHolderWithPermId entity, boolean editMode, boolean inBackground) { + if (OpenEntityEditorTabClickListener.forbidDeletedEntityModification(viewContext, entity)) + { + return; + } final EntityKind entityKind = entity.getEntityKind(); final AbstractTabItemFactory tabView; BasicEntityType entityType = entity.getEntityType(); diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/listener/OpenEntityEditorTabClickListener.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/listener/OpenEntityEditorTabClickListener.java index 02f0e474187..78930ee19c0 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/listener/OpenEntityEditorTabClickListener.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/listener/OpenEntityEditorTabClickListener.java @@ -16,15 +16,19 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.listener; +import com.extjs.gxt.ui.client.widget.MessageBox; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; +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.AbstractTabItemFactory; import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DispatcherHelper; import ch.systemsx.cisd.openbis.generic.client.web.client.application.plugin.IClientPlugin; import ch.systemsx.cisd.openbis.generic.client.web.client.application.plugin.IClientPluginFactory; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IMessageProvider; import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.WidgetUtils; +import ch.systemsx.cisd.openbis.generic.shared.basic.DeletionUtils; import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolder; import ch.systemsx.cisd.openbis.generic.shared.basic.IIdAndCodeHolder; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.BasicEntityType; @@ -59,6 +63,10 @@ public final class OpenEntityEditorTabClickListener implements ClickHandler IEntityInformationHolder entity, boolean inBackground) { assert entity != null : "entity is not provided"; + if (forbidDeletedEntityModification(viewContext, entity)) + { + return; + } final AbstractTabItemFactory tabView; // NOTE: most plugins require a specific type class here! BasicEntityType entityType = entity.getEntityType(); @@ -72,4 +80,21 @@ public final class OpenEntityEditorTabClickListener implements ClickHandler tabView.setInBackground(inBackground); DispatcherHelper.dispatchNaviEvent(tabView); } + + public static boolean forbidDeletedEntityModification(IMessageProvider messageProvider, + IEntityInformationHolder entity) + { + if (DeletionUtils.isDeleted(entity)) + { + String title = + messageProvider.getMessage(Dict.CANNOT_MODIFY_DELETED_ENTITY_TITLE, entity + .getEntityKind().getDescription()); + String msg = + messageProvider.getMessage(Dict.CANNOT_MODIFY_DELETED_ENTITY_MSG, entity + .getEntityKind().getDescription(), entity.getCode()); + MessageBox.alert(title, msg, null); + return true; + } + return false; + } } 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 ba0b829f204..169b3cc0c4d 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 @@ -72,6 +72,8 @@ var common = { deleting: "Deleting", delete_permanently_progress_message: "Deleting {0}(s)...", delete_progress_message: "Moving {0}(s) to trash ...", + cannot_modify_deleted_entity_title: "Can't modify deleted {0}", + cannot_modify_deleted_entity_msg": "{0} '{1}' has been moved to trash and therefore can't be modified.', // // Table Modifications -- GitLab