diff --git a/src/main/java/org/reactome/web/pwp/client/details/common/widgets/panels/DatabaseIdentifierPanel.java b/src/main/java/org/reactome/web/pwp/client/details/common/widgets/panels/DatabaseIdentifierPanel.java index 348ce1ce..4a788b29 100644 --- a/src/main/java/org/reactome/web/pwp/client/details/common/widgets/panels/DatabaseIdentifierPanel.java +++ b/src/main/java/org/reactome/web/pwp/client/details/common/widgets/panels/DatabaseIdentifierPanel.java @@ -62,6 +62,22 @@ public DatabaseIdentifierPanel(DetailsPanel parentPanel, PhysicalEntity pe) { initialize(); break; } + } else if (pe instanceof OtherEntity) { + for (DatabaseIdentifier identifier : pe.getCrossReference()) { + this.reference = identifier.getDatabaseName(); + this.id = identifier.getIdentifier(); + this.url = identifier.getUrl(); + initialize(); + break; + } + } else if (pe instanceof GenomeEncodedEntity) { + for (DatabaseIdentifier identifier : pe.getCrossReference()) { + this.reference = identifier.getDatabaseName(); + this.id = identifier.getIdentifier(); + this.url = identifier.getUrl(); + initialize(); + break; + } } else { initWidget(new Label("No reference entity")); } diff --git a/src/main/java/org/reactome/web/pwp/client/details/common/widgets/panels/PhysicalEntityPanel.java b/src/main/java/org/reactome/web/pwp/client/details/common/widgets/panels/PhysicalEntityPanel.java index 15f47236..2d4097ac 100644 --- a/src/main/java/org/reactome/web/pwp/client/details/common/widgets/panels/PhysicalEntityPanel.java +++ b/src/main/java/org/reactome/web/pwp/client/details/common/widgets/panels/PhysicalEntityPanel.java @@ -134,7 +134,6 @@ public void onClick(ClickEvent event) { Widget getCrossReferenceTree(){ TreeItem references = new TreeItem(SafeHtmlUtils.fromString("External cross-references")); - DatabaseIdentifierPanel dbIdPanel = new DatabaseIdentifierPanel(physicalEntity); TreeItem reference = dbIdPanel.asTreeItem(); reference.setState(true, false); @@ -142,7 +141,8 @@ Widget getCrossReferenceTree(){ //Links to the complex portal have been added as cross references for Complexes but they //do not have reference entity. The first condition is a hack to accommodate this case - if(!(this.physicalEntity instanceof Complex) && !this.physicalEntity.getCrossReference().isEmpty()){ + if(!(this.physicalEntity instanceof Complex) && !(this.physicalEntity instanceof GenomeEncodedEntity) && + !(this.physicalEntity instanceof OtherEntity) && !this.physicalEntity.getCrossReference().isEmpty()){ Collections.sort(physicalEntity.getCrossReference()); for (DatabaseIdentifier databaseIdentifier : this.physicalEntity.getCrossReference()) { dbIdPanel = new DatabaseIdentifierPanel(databaseIdentifier);