From c2333740179d2c86a4cdce5955ab4c001e3e2dd9 Mon Sep 17 00:00:00 2001 From: tpylak <tpylak> Date: Fri, 3 Apr 2009 07:57:45 +0000 Subject: [PATCH] LMS-830 material details in search results and material browser. LMS-811 refresh sample/material browser when new property is assigned. SVN: 10555 --- .../application/MatchingEntitiesPanel.java | 3 ++- .../experiment/ExperimentBrowserToolbar.java | 7 +++-- .../ui/material/MaterialBrowserGrid.java | 8 ++++++ .../ui/material/MaterialBrowserToolbar.java | 7 +++-- .../ui/sample/SampleBrowserGrid.java | 1 + .../ui/sample/SampleBrowserToolbar.java | 7 +++-- .../client/web/client/dto/MatchingEntity.java | 26 +++++++++++++++---- 7 files changed, 47 insertions(+), 12 deletions(-) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/MatchingEntitiesPanel.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/MatchingEntitiesPanel.java index 1231eb9606d..11ab42b30be 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/MatchingEntitiesPanel.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/MatchingEntitiesPanel.java @@ -116,7 +116,8 @@ final class MatchingEntitiesPanel extends AbstractBrowserGrid<MatchingEntity, Ma matchingEntity.getEntityType()); final IClientPlugin<EntityType, EntityTypePropertyType<EntityType>, EntityProperty<EntityType, EntityTypePropertyType<EntityType>>, IIdentifierHolder, IEditableEntity<EntityType, EntityTypePropertyType<EntityType>, EntityProperty<EntityType, EntityTypePropertyType<EntityType>>>> createClientPlugin = clientPluginFactory.createClientPlugin(entityKind); - final ITabItemFactory tabView = createClientPlugin.createEntityViewer(matchingEntity); + final ITabItemFactory tabView = + createClientPlugin.createEntityViewer(matchingEntity.asIdentifierHolder()); DispatcherHelper.dispatchNaviEvent(tabView); } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ExperimentBrowserToolbar.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ExperimentBrowserToolbar.java index 14640f93fc4..b9fb5d96d2e 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ExperimentBrowserToolbar.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ExperimentBrowserToolbar.java @@ -112,12 +112,15 @@ class ExperimentBrowserToolbar extends ToolBar implements IDatabaseModificationO public DatabaseModificationKind[] getRelevantModifications() { return new DatabaseModificationKind[] - { createOrDelete(ObjectKind.EXPERIMENT_TYPE), createOrDelete(ObjectKind.PROJECT) }; + { createOrDelete(ObjectKind.EXPERIMENT_TYPE), createOrDelete(ObjectKind.PROJECT), + createOrDelete(ObjectKind.PROPERTY_TYPE_ASSIGNMENT) }; } public void update(Set<DatabaseModificationKind> observedModifications) { - if (observedModifications.contains(createOrDelete(ObjectKind.EXPERIMENT_TYPE))) + if (observedModifications.contains(createOrDelete(ObjectKind.EXPERIMENT_TYPE)) + || observedModifications + .contains(createOrDelete(ObjectKind.PROPERTY_TYPE_ASSIGNMENT))) { selectExperimentTypeCombo.refreshStore(); } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialBrowserGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialBrowserGrid.java index 354364a5085..f80b32c0261 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialBrowserGrid.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialBrowserGrid.java @@ -29,6 +29,7 @@ import com.extjs.gxt.ui.client.widget.LayoutContainer; import com.extjs.gxt.ui.client.widget.button.Button; import com.extjs.gxt.ui.client.widget.toolbar.AdapterToolItem; import com.extjs.gxt.ui.client.widget.toolbar.FillToolItem; +import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem; import ch.systemsx.cisd.openbis.generic.client.web.client.ICommonClientServiceAsync; import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractAsyncCallback; @@ -203,6 +204,12 @@ public class MaterialBrowserGrid extends AbstractBrowserGrid<Material, MaterialM if (detailsAvailable) { + String showDetailsTitle = viewContext.getMessage(Dict.BUTTON_SHOW_DETAILS); + Button showDetailsButton = + createSelectedItemButton(showDetailsTitle, asShowEntityInvoker(false)); + toolbar.add(new AdapterToolItem(showDetailsButton)); + toolbar.add(new SeparatorToolItem()); + String editTitle = viewContext.getMessage(Dict.BUTTON_EDIT); Button editButton = createSelectedItemButton(editTitle, asShowEntityInvoker(true)); toolbar.add(new AdapterToolItem(editButton)); @@ -341,6 +348,7 @@ public class MaterialBrowserGrid extends AbstractBrowserGrid<Material, MaterialM Set<DatabaseModificationKind> result = new HashSet<DatabaseModificationKind>(); result.add(createOrDelete(ObjectKind.MATERIAL)); result.add(edit(ObjectKind.MATERIAL)); + result.add(createOrDelete(ObjectKind.PROPERTY_TYPE_ASSIGNMENT)); return result; } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialBrowserToolbar.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialBrowserToolbar.java index 67b632cb365..ac0ba4587ed 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialBrowserToolbar.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialBrowserToolbar.java @@ -91,12 +91,15 @@ class MaterialBrowserToolbar extends ToolBar implements IDatabaseModificationObs public DatabaseModificationKind[] getRelevantModifications() { return new DatabaseModificationKind[] - { createOrDelete(ObjectKind.MATERIAL_TYPE) }; + { createOrDelete(ObjectKind.MATERIAL_TYPE), + createOrDelete(ObjectKind.PROPERTY_TYPE_ASSIGNMENT) }; } public void update(Set<DatabaseModificationKind> observedModifications) { - if (observedModifications.contains(createOrDelete(ObjectKind.MATERIAL_TYPE))) + if (observedModifications.contains(createOrDelete(ObjectKind.MATERIAL_TYPE)) + || observedModifications + .contains(createOrDelete(ObjectKind.PROPERTY_TYPE_ASSIGNMENT))) { selectMaterialTypeCombo.update(observedModifications); } 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 41838a324e1..d6bcff35482 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 @@ -348,6 +348,7 @@ public final class SampleBrowserGrid extends AbstractBrowserGrid<Sample, SampleM Set<DatabaseModificationKind> result = new HashSet<DatabaseModificationKind>(); result.add(createOrDelete(ObjectKind.SAMPLE)); result.add(edit(ObjectKind.SAMPLE)); + result.add(createOrDelete(ObjectKind.PROPERTY_TYPE_ASSIGNMENT)); return result; } 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 c02c04beb71..64977add64c 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 @@ -120,12 +120,15 @@ final class SampleBrowserToolbar extends ToolBar implements IDatabaseModificatio public DatabaseModificationKind[] getRelevantModifications() { return new DatabaseModificationKind[] - { createOrDelete(ObjectKind.SAMPLE_TYPE), createOrDelete(ObjectKind.GROUP) }; + { createOrDelete(ObjectKind.SAMPLE_TYPE), createOrDelete(ObjectKind.GROUP), + createOrDelete(ObjectKind.PROPERTY_TYPE_ASSIGNMENT) }; } public void update(Set<DatabaseModificationKind> observedModifications) { - if (observedModifications.contains(createOrDelete(ObjectKind.SAMPLE_TYPE))) + if (observedModifications.contains(createOrDelete(ObjectKind.SAMPLE_TYPE)) + || observedModifications + .contains(createOrDelete(ObjectKind.PROPERTY_TYPE_ASSIGNMENT))) { selectSampleTypeCombo.refreshStore(); } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/MatchingEntity.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/MatchingEntity.java index c1c5b3f30d4..3473b651f65 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/MatchingEntity.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/MatchingEntity.java @@ -21,6 +21,7 @@ import com.google.gwt.user.client.rpc.IsSerializable; import ch.systemsx.cisd.openbis.generic.shared.basic.IIdentifierHolder; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityType; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.MaterialIdentifier; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Person; /** @@ -29,7 +30,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Person; * * @author Christian Ribeaud */ -public final class MatchingEntity implements IsSerializable, IIdentifierHolder +public final class MatchingEntity implements IsSerializable { private String identifier; @@ -98,15 +99,29 @@ public final class MatchingEntity implements IsSerializable, IIdentifierHolder this.textFragment = textFragment; } - // - // IIdentifierHolder - // - public final String getIdentifier() { return identifier; } + public IIdentifierHolder asIdentifierHolder() + { + final String ident = getIdentifier(); + return new IIdentifierHolder() + { + public String getIdentifier() + { + if (getEntityKind() == EntityKind.MATERIAL) + { + return new MaterialIdentifier(ident, getEntityType().getCode()).print(); + } else + { + return ident; + } + } + }; + } + // // Object // @@ -116,4 +131,5 @@ public final class MatchingEntity implements IsSerializable, IIdentifierHolder { return getIdentifier(); } + } -- GitLab