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 7de30f3a0458c79f9dea116db48ce90dc107003a..92c36759464166d47b4082091de8bd1ff496424f 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 @@ -37,16 +37,17 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.ICommonClientServiceAs 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.framework.DisplayTypeIDGenerator; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.MatchingEntityModel.MatchingEntityColumnKind; 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.renderer.PersonRenderer; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.TypedTableGrid; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.framework.LinkExtractor; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.ColumnDefsAndConfigs; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.ICellListener; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.ICellListenerAndLinkGenerator; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.IDisposableComponent; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.IDataRefreshCallback; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DefaultResultSetConfig; +import ch.systemsx.cisd.openbis.generic.client.web.client.dto.MatchingEntitiesPanelColumnIDs; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.SearchableEntity; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TableExportCriteria; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TypedTableResultSet; @@ -55,6 +56,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.BasicEntityType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind.ObjectKind; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ISerializableComparable; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.MatchingEntity; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRowWithObject; @@ -95,15 +97,23 @@ public final class MatchingEntitiesPanel extends TypedTableGrid<MatchingEntity> updateDefaultRefreshButton(); - registerLinkClickListenerFor(MatchingEntityColumnKind.IDENTIFIER.id(), - new ICellListener<TableModelRowWithObject<MatchingEntity>>() + ICellListenerAndLinkGenerator<MatchingEntity> listenerLinkGenerator = + new ICellListenerAndLinkGenerator<MatchingEntity>() { public void handle(TableModelRowWithObject<MatchingEntity> rowItem, - boolean keyPressed) + boolean specialKeyPressed) { - showEntityViewer(rowItem, false, keyPressed); + showEntityViewer(rowItem, false, specialKeyPressed); } - }); + + public String tryGetLink(MatchingEntity entity, + ISerializableComparable comparableValue) + { + return LinkExtractor.tryExtract(entity); + } + }; + registerListenerAndLinkGenerator(MatchingEntitiesPanelColumnIDs.IDENTIFIER, + listenerLinkGenerator); extendBottomToolbar(); } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/MatchingEntityModel.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/MatchingEntityModel.java deleted file mode 100644 index e7c4d5d25ccdff6fe3be07249527c7ece0c848d2..0000000000000000000000000000000000000000 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/model/MatchingEntityModel.java +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Copyright 2008 ETH Zuerich, CISD - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package ch.systemsx.cisd.openbis.generic.client.web.client.application.model; - -import com.extjs.gxt.ui.client.data.ModelData; - -import ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.renderer.PersonRenderer; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.framework.AbstractColumnDefinitionKind; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.framework.IColumnDefinitionKind; -import ch.systemsx.cisd.openbis.generic.shared.basic.GridRowModel; -import ch.systemsx.cisd.openbis.generic.shared.basic.dto.MatchingEntity; -import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Person; - -/** - * A {@link ModelData} implementation for {@link MatchingEntity}. - * - * @author Christian Ribeaud - */ -public final class MatchingEntityModel extends BaseEntityModel<MatchingEntity> -{ - private static final long serialVersionUID = 1L; - - public MatchingEntityModel(final GridRowModel<MatchingEntity> entity) - { - super(entity, getStaticColumnsDefinition()); - - // override registrator column adding a link - Person registratorOrNull = entity.getOriginalObject().getRegistrator(); - if (registratorOrNull != null) - { - String person = PersonRenderer.createPersonAnchor(registratorOrNull); - set(MatchingEntityColumnKind.REGISTRATOR.id(), person); - } - } - - public static IColumnDefinitionKind<MatchingEntity>[] getStaticColumnsDefinition() - { - return MatchingEntityColumnKind.values(); - } - - public enum MatchingEntityColumnKind implements IColumnDefinitionKind<MatchingEntity> - { - ENTITY_KIND(new AbstractColumnDefinitionKind<MatchingEntity>(Dict.ENTITY_KIND) - { - @Override - public String tryGetValue(MatchingEntity entity) - { - return entity.getEntityKind().getDescription(); - } - }), - - ENTITY_TYPE(new AbstractColumnDefinitionKind<MatchingEntity>(Dict.ENTITY_TYPE) - { - @Override - public String tryGetValue(MatchingEntity entity) - { - return entity.getEntityType().getCode(); - } - }), - - IDENTIFIER(new AbstractColumnDefinitionKind<MatchingEntity>(Dict.IDENTIFIER, 140, false) - { - @Override - public String tryGetValue(MatchingEntity entity) - { - return entity.getIdentifier(); - } - }), - - REGISTRATOR(new AbstractColumnDefinitionKind<MatchingEntity>(Dict.REGISTRATOR) - { - @Override - public String tryGetValue(MatchingEntity entity) - { - return renderRegistratorPerson(entity.getRegistrator()); - } - }), - - MATCHING_FIELD(new AbstractColumnDefinitionKind<MatchingEntity>(Dict.MATCHING_FIELD, 140, - false) - { - @Override - public String tryGetValue(MatchingEntity entity) - { - return entity.getFieldDescription(); - } - }), - - MATCHING_TEXT(new AbstractColumnDefinitionKind<MatchingEntity>(Dict.MATCHING_TEXT, 200, - false) - { - @Override - public String tryGetValue(MatchingEntity entity) - { - return entity.getTextFragment(); - } - }); - - private final AbstractColumnDefinitionKind<MatchingEntity> columnDefinitionKind; - - private MatchingEntityColumnKind( - AbstractColumnDefinitionKind<MatchingEntity> columnDefinitionKind) - { - this.columnDefinitionKind = columnDefinitionKind; - } - - public String id() - { - return name(); - } - - public AbstractColumnDefinitionKind<MatchingEntity> getDescriptor() - { - return columnDefinitionKind; - } - } - -} diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/SearchTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/SearchTest.java index 8e79435c3f8f87190d6d818e6f49c0daa814b34a..6db9328febe779e31e19f943cbf2e9161b93e718 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/SearchTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/SearchTest.java @@ -16,10 +16,10 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.application; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.MatchingEntityModel.MatchingEntityColumnKind; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.Login; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.specific.data.CommonExternalDataColDefKind; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.data.RelatedDataSetGrid; +import ch.systemsx.cisd.openbis.generic.client.web.client.dto.MatchingEntitiesPanelColumnIDs; import ch.systemsx.cisd.openbis.generic.client.web.client.testframework.AbstractDefaultTestCommand; import ch.systemsx.cisd.openbis.generic.client.web.client.testframework.AbstractGWTTestCase; import ch.systemsx.cisd.openbis.generic.client.web.client.testframework.CheckTableCommand; @@ -181,7 +181,7 @@ public class SearchTest extends AbstractGWTTestCase private static Row createMatchingEntityRowWithIdentifier(String identifier) { - return new Row().withCell(MatchingEntityColumnKind.IDENTIFIER.id(), identifier); + return new Row().withCell(MatchingEntitiesPanelColumnIDs.IDENTIFIER, identifier); } private static Row createRelatedDatasetRowWithLocation(String location)