From d1f520f4fa290761f8c703c8c99708117ecabc44 Mon Sep 17 00:00:00 2001 From: tpylak <tpylak> Date: Tue, 27 Oct 2009 12:38:45 +0000 Subject: [PATCH] bugfix: refresh sample browser toolbar after sample type update (isListable field can influence the view) SVN: 13085 --- .../ui/data/AbstractExternalDataGrid.java | 4 +--- .../ui/sample/SampleBrowserToolbar.java | 17 ++++++++++++----- .../basic/dto/DatabaseModificationKind.java | 8 ++++++++ 3 files changed, 21 insertions(+), 8 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 4242a63e5bd..fd6e7ffe34d 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 @@ -16,7 +16,6 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.data; -import static ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind.createOrDelete; import static ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind.edit; import java.util.List; @@ -375,8 +374,7 @@ public abstract class AbstractExternalDataGrid getGridRelevantModifications(ObjectKind.DATA_SET); relevantMods.add(edit(ObjectKind.EXPERIMENT)); relevantMods.add(edit(ObjectKind.SAMPLE)); - relevantMods.add(edit(ObjectKind.VOCABULARY_TERM)); - relevantMods.add(createOrDelete(ObjectKind.VOCABULARY_TERM)); + DatabaseModificationKind.addAny(relevantMods, ObjectKind.VOCABULARY_TERM); return relevantMods; } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/SampleBrowserToolbar.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/SampleBrowserToolbar.java index db970b212bd..e33181cfc3d 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/SampleBrowserToolbar.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/SampleBrowserToolbar.java @@ -146,7 +146,8 @@ final class SampleBrowserToolbar extends ToolBar implements ISampleCriteriaProvi public DatabaseModificationKind[] getRelevantModifications() { return new DatabaseModificationKind[] - { createOrDelete(ObjectKind.SAMPLE_TYPE), createOrDelete(ObjectKind.GROUP), + { createOrDelete(ObjectKind.SAMPLE_TYPE), edit(ObjectKind.SAMPLE_TYPE), + createOrDelete(ObjectKind.GROUP), createOrDelete(ObjectKind.PROPERTY_TYPE_ASSIGNMENT), edit(ObjectKind.PROPERTY_TYPE_ASSIGNMENT) }; } @@ -154,10 +155,9 @@ final class SampleBrowserToolbar extends ToolBar implements ISampleCriteriaProvi public void update(Set<DatabaseModificationKind> observedModifications, IDataRefreshCallback entityTypeRefreshCallback) { - if (observedModifications.contains(createOrDelete(ObjectKind.SAMPLE_TYPE)) - || observedModifications - .contains(createOrDelete(ObjectKind.PROPERTY_TYPE_ASSIGNMENT)) - || observedModifications.contains(edit(ObjectKind.PROPERTY_TYPE_ASSIGNMENT))) + if (containsAnyModificationsOf(observedModifications, ObjectKind.SAMPLE_TYPE) + || containsAnyModificationsOf(observedModifications, + ObjectKind.PROPERTY_TYPE_ASSIGNMENT)) { selectSampleTypeCombo.refreshStore(entityTypeRefreshCallback); } else @@ -171,6 +171,13 @@ final class SampleBrowserToolbar extends ToolBar implements ISampleCriteriaProvi } + private boolean containsAnyModificationsOf(Set<DatabaseModificationKind> observedModifications, + ObjectKind objectKind) + { + return observedModifications.contains(createOrDelete(objectKind)) + || observedModifications.contains(edit(objectKind)); + } + public void setEntityTypes(Set<SampleType> availableEntityTypes) { // TODO 2009-08-27, Tomasz Pylak: use this info to narrow properties when displaying "all" diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DatabaseModificationKind.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DatabaseModificationKind.java index a2648932dfe..d9736088358 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DatabaseModificationKind.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DatabaseModificationKind.java @@ -17,6 +17,7 @@ package ch.systemsx.cisd.openbis.generic.shared.basic.dto; import java.util.ArrayList; +import java.util.Collection; import java.util.List; import com.google.gwt.user.client.rpc.IsSerializable; @@ -55,6 +56,13 @@ public class DatabaseModificationKind implements IsSerializable { } + public static final void addAny(Collection<DatabaseModificationKind> result, + ObjectKind objectType) + { + result.add(createOrDelete(objectType)); + result.add(edit(objectType)); + } + public static final DatabaseModificationKind[] any(ObjectKind objectType) { List<DatabaseModificationKind> result = new ArrayList<DatabaseModificationKind>(); -- GitLab