diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/PropertyValueRenderers.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/PropertyValueRenderers.java index 59ce46e36457a04360c334d28e72c3fb24dc5567..6003ffa1feb1e960d5b76156ecbe02dc7b1bd62a 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/PropertyValueRenderers.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/PropertyValueRenderers.java @@ -16,6 +16,11 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.application.ui; +import com.google.gwt.event.dom.client.ClickHandler; +import com.google.gwt.user.client.ui.FlowPanel; +import com.google.gwt.user.client.ui.InlineHTML; +import com.google.gwt.user.client.ui.Widget; + import ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict; import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext; import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.renderer.VocabularyPropertyColRenderer; @@ -30,6 +35,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget. import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.MultilineHTML; import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IMessageProvider; import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolder; +import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolderWithIdentifier; import ch.systemsx.cisd.openbis.generic.shared.basic.IInvalidationProvider; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataStore; @@ -48,11 +54,6 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.VocabularyTerm; -import com.google.gwt.event.dom.client.ClickHandler; -import com.google.gwt.user.client.ui.FlowPanel; -import com.google.gwt.user.client.ui.InlineHTML; -import com.google.gwt.user.client.ui.Widget; - /** * Some {@link IPropertyValueRenderer} implementations. * @@ -93,17 +94,6 @@ public final class PropertyValueRenderers return new EntityInformationHolderPropertyValueRenderer<ExternalData>(viewContext); } - /** - * Creates a {@link IPropertyValueRenderer} implementation for rendering any - * {@link IEntityInformationHolder}. - */ - public final static IPropertyValueRenderer<IEntityInformationHolder> createEntityInformationPropertyValueRenderer( - final IViewContext<?> viewContext) - { - return new EntityInformationHolderPropertyValueRenderer<IEntityInformationHolder>( - viewContext); - } - /** * Creates a {@link IPropertyValueRenderer} implementation for rendering {@link SampleType}. */ @@ -377,12 +367,25 @@ public final class PropertyValueRenderers } } + static class InvalidationFactory + { + static boolean isInvalid(IInvalidationProvider invalidable) + { + return invalidable.getInvalidation() != null; + } + + static boolean isInvalid(Object object) + { + return false; + } + } + /** * Renderer for {@link IEntityInformationHolder}. * * @author Piotr Buczek */ - public static class EntityInformationHolderPropertyValueRenderer<T extends IEntityInformationHolder> + public static class EntityInformationHolderPropertyValueRenderer<T extends IEntityInformationHolderWithIdentifier> extends AbstractPropertyValueRenderer<T> { @@ -400,11 +403,12 @@ public final class PropertyValueRenderers public FlowPanel getAsWidget(final T entity) { - final String code = entity.getCode(); + final String displayText = getDisplayText(entity); + final boolean invalidate = getInvalidate(entity); final ClickHandler listener = new OpenEntityDetailsTabClickListener(entity, viewContext); - final Widget link = LinkRenderer.getLinkWidget(code, listener, invalidate); + final Widget link = LinkRenderer.getLinkWidget(displayText, listener, invalidate); // putting link into a panel makes it a block/row // which is important if they are rendered as an array @@ -413,6 +417,11 @@ public final class PropertyValueRenderers return panel; } + protected String getDisplayText(final T entity) + { + return entity.getIdentifier(); + } + private boolean getInvalidate(final T entity) { if (entity instanceof IInvalidationProvider) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/IEntityInformationHolderWithIdentifier.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/IEntityInformationHolderWithIdentifier.java new file mode 100644 index 0000000000000000000000000000000000000000..37b6290667776554b9bb443514c8962ec785f1bf --- /dev/null +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/IEntityInformationHolderWithIdentifier.java @@ -0,0 +1,28 @@ +/* + * 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.shared.basic; + +/** + * Contains the information stored in both {@link IIdentifierHolder} and + * {@link IEntityInformationHolder}. + * + * @author Izabela Adamczyk + */ +public interface IEntityInformationHolderWithIdentifier extends IIdentifierHolder, + IEntityInformationHolder +{ +} diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Experiment.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Experiment.java index 8750007a7b3eeb381958728aa9e44fae95fa3443..e479b3cc26a947af4599ab1148387d064691e70d 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Experiment.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Experiment.java @@ -20,7 +20,7 @@ import java.util.Date; import java.util.List; import ch.systemsx.cisd.openbis.generic.shared.basic.IAttachmentHolder; -import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolder; +import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolderWithIdentifier; import ch.systemsx.cisd.openbis.generic.shared.basic.IIdentifiable; import ch.systemsx.cisd.openbis.generic.shared.basic.IInvalidationProvider; import ch.systemsx.cisd.openbis.generic.shared.basic.IPermIdHolder; @@ -31,8 +31,8 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.IPermIdHolder; * @author Tomasz Pylak */ public class Experiment extends CodeWithRegistration<Experiment> implements IInvalidationProvider, - IEntityInformationHolder, IAttachmentHolder, IEntityPropertiesHolder, IIdentifiable, - IPermIdHolder + IEntityInformationHolderWithIdentifier, IAttachmentHolder, IEntityPropertiesHolder, + IIdentifiable, IPermIdHolder { private static final long serialVersionUID = ServiceVersionHolder.VERSION; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ExternalData.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ExternalData.java index 4515c2e6dd13c5850045277b57f76ffad780a017..ef92a22390a43eff81aecd66544c6bca5c2ed77b 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ExternalData.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ExternalData.java @@ -21,7 +21,7 @@ import java.util.Collection; import java.util.Date; import java.util.List; -import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolder; +import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolderWithIdentifier; import ch.systemsx.cisd.openbis.generic.shared.basic.IIdentifiable; import ch.systemsx.cisd.openbis.generic.shared.basic.IInvalidationProvider; import ch.systemsx.cisd.openbis.generic.shared.basic.IPermIdHolder; @@ -32,8 +32,8 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.IPermIdHolder; * @author Christian Ribeaud */ public class ExternalData extends CodeWithRegistration<ExternalData> implements - IInvalidationProvider, IEntityInformationHolder, IEntityPropertiesHolder, IIdentifiable, - IPermIdHolder + IInvalidationProvider, IEntityInformationHolderWithIdentifier, IEntityPropertiesHolder, + IIdentifiable, IPermIdHolder { private static final long serialVersionUID = ServiceVersionHolder.VERSION; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Material.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Material.java index 6e36dd9b3cfc01762bb0c9b53c33154c235df997..6c40e519df40f9c17d56d5447f13b4468d44d0ec 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Material.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Material.java @@ -19,7 +19,7 @@ package ch.systemsx.cisd.openbis.generic.shared.basic.dto; import java.util.Date; import java.util.List; -import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolder; +import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolderWithIdentifier; import ch.systemsx.cisd.openbis.generic.shared.basic.IIdentifiable; /** @@ -27,8 +27,8 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.IIdentifiable; * * @author Izabela Adamczyk */ -public class Material extends CodeWithRegistration<Material> implements IEntityInformationHolder, - IEntityPropertiesHolder, IIdentifiable +public class Material extends CodeWithRegistration<Material> implements + IEntityInformationHolderWithIdentifier, IEntityPropertiesHolder, IIdentifiable { private static final long serialVersionUID = ServiceVersionHolder.VERSION; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Sample.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Sample.java index 6af8469c4b193d602ef388cad584b0b214fe8924..ee49b699d2f613d714068d5e3748b9b9d50ae40b 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Sample.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/Sample.java @@ -22,7 +22,7 @@ import java.util.List; import ch.systemsx.cisd.common.annotation.CollectionMapping; import ch.systemsx.cisd.openbis.generic.shared.basic.IAttachmentHolder; -import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolder; +import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolderWithIdentifier; import ch.systemsx.cisd.openbis.generic.shared.basic.IIdentifiable; import ch.systemsx.cisd.openbis.generic.shared.basic.IInvalidationProvider; import ch.systemsx.cisd.openbis.generic.shared.basic.IPermIdHolder; @@ -33,8 +33,8 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.IPermIdHolder; * @author Izabela Adamczyk */ public final class Sample extends CodeWithRegistration<Sample> implements IInvalidationProvider, - Comparable<Sample>, IEntityInformationHolder, IAttachmentHolder, IEntityPropertiesHolder, - IIdentifiable, IPermIdHolder + Comparable<Sample>, IEntityInformationHolderWithIdentifier, IAttachmentHolder, + IEntityPropertiesHolder, IIdentifiable, IPermIdHolder { private static final long serialVersionUID = ServiceVersionHolder.VERSION; diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/application/ProteinViewer.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/application/ProteinViewer.java index 9396c0dd122a78c97e42ec931927b1fb81bfc9d1..461b125e01cd3dd1abb151a9826d5308ce407997 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/application/ProteinViewer.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/client/application/ProteinViewer.java @@ -43,6 +43,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.Abstrac import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.property.PropertyGrid; import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.StringUtils; import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolder; +import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolderWithIdentifier; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind; @@ -259,7 +260,7 @@ public class ProteinViewer extends AbstractViewer<IEntityInformationHolder> impl return result; } - public static class DatasetInformationHolder implements IEntityInformationHolder + public static class DatasetInformationHolder implements IEntityInformationHolderWithIdentifier { private final ProteinDetails proteinDetails;