Skip to content
Snippets Groups Projects
Commit b80dc266 authored by felmer's avatar felmer
Browse files

bug fixed and code clean up around MatchingEntitiesPanel

SVN: 20003
parent b9d2e8df
No related branches found
No related tags found
No related merge requests found
......@@ -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();
}
......
/*
* 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;
}
}
}
......@@ -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)
......
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