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 1231eb9606d20a7fd45c05f5102fcab5884a460e..11ab42b30bec6f5bd8fda68bfa37fd51f6b96c05 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 14640f93fc4a2a88066ea42266135a5c3cb7d527..b9fb5d96d2ed25423508dd46556966ee46190921 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 354364a50854a719b24ba746816f4be02af4cc9c..f80b32c0261c93cb6730bb78d80f5cbef4de89c2 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 67b632cb365fa9399bb6d641e90f79907233080f..ac0ba4587ed6fb7508304a4d80a4843592330b3e 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 41838a324e17602f2b839bb6a176f426893ef935..d6bcff354824c8b546c466b1f8f8c44fca16213e 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 c02c04beb71c37b08c97bd8c9f86245cf3cffaf0..64977add64c5f991f43ee809e1114cdfb7381591 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 c1c5b3f30d4376a43a55fb4124e7f9551d2c48a1..3473b651f65c69d9ed860081aaa4051a04904e5f 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(); } + }