Skip to content
Snippets Groups Projects
Commit c2333740 authored by tpylak's avatar tpylak
Browse files

LMS-830 material details in search results and material browser. LMS-811...

LMS-830 material details in search results and material browser. LMS-811 refresh sample/material browser when new property is assigned.

SVN: 10555
parent ed91d68f
No related branches found
No related tags found
No related merge requests found
Showing with 47 additions and 12 deletions
......@@ -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);
}
......
......@@ -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();
}
......
......@@ -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;
}
......
......@@ -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);
}
......
......@@ -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;
}
......
......@@ -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();
}
......
......@@ -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();
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment