public ASearchComponent getAnnotationSearchComponent(IDomeo domeo, String annotationName) {
   if (annotationSearchComponents.containsKey(annotationName)) {
     return annotationSearchComponents.get(annotationName);
   } else {
     domeo.getLogger().exception(this, "No search component found for: " + annotationName);
     domeo.getLogger().warn(this, "Default search component applied");
     return new ASearchComponent(domeo);
   }
 }
Пример #2
0
  public void createSocialBar(HorizontalPanel socialBar, final MAnnotation annotation) {
    try {
      socialBar.clear();

      if (((BooleanPreference)
              _domeo
                  .getPreferences()
                  .getPreferenceItem(Domeo.class.getName(), Domeo.PREF_ALLOW_COMMENTING))
          .getValue()) {
        Resources resource = Domeo.resources;

        Image commentIcon = new Image(resource.littleCommentIcon());
        commentIcon.setTitle("Comment on Item");
        commentIcon.setStyleName(ATileComponent.tileResources.css().button());
        commentIcon.addClickHandler(
            ActionCommentAnnotation.getClickHandler(_domeo, this, annotation));
        commentIcon.addClickHandler(
            new ClickHandler() {
              @Override
              public void onClick(ClickEvent event) {
                _curationPopup.hide();
              }
            });
        socialBar.add(commentIcon);
        socialBar.add(new Label("(10)"));

        Image usersIcon = new Image(resource.usersIcon());
        usersIcon.setTitle("Involved users");
        usersIcon.setStyleName(ATileComponent.tileResources.css().button());
        usersIcon.addClickHandler(
            ActionCommentAnnotation.getClickHandler(_domeo, this, annotation));
        usersIcon.addClickHandler(
            new ClickHandler() {
              @Override
              public void onClick(ClickEvent event) {
                _curationPopup.hide();
              }
            });
        socialBar.add(usersIcon);
        socialBar.setCellWidth(usersIcon, "24px");
        socialBar.setCellHorizontalAlignment(usersIcon, HasHorizontalAlignment.ALIGN_RIGHT);
        socialBar.add(new Label("(2)"));
      }
    } catch (Exception e) {
      _domeo.getLogger().exception(this, "create social bar" + e.getMessage());
    }
  }
Пример #3
0
 public boolean selectConnector(IDomeo domeo) {
   if (_connector != null) return true;
   _domeo = domeo;
   if (domeo.isStandaloneMode()) {
     _connector = new StandaloneBioPortalConnector();
   } else {
     if (domeo.isHostedMode()) {
       _connector = new GwtBioPortalServiceConnector();
     } else {
       // Real service
       _connector = new JsonBioPortalConnector(domeo);
     }
   }
   domeo
       .getLogger()
       .debug(this, "BioPortal Connector selected: " + _connector.getClass().getName());
   return false;
 }
  public void initializeLens(MGenericResource resource, HashMap<String, String> parameters) {
    Resources _resources = Domeo.resources;
    try {
      _resource = (MOpenTrialsDocument) resource;
      _parameters = parameters;

      if (parameters.containsKey(MOpenTrialsDocument.PARAM_URI_READONLY)) {
        if (parameters.get(MOpenTrialsDocument.PARAM_URI_READONLY).equals("true")) {
          uriField.setReadOnly(true);
        }
      }

      if (_iconClickHandler != null) _iconClickHandler.removeHandler();
      _iconClickHandler =
          urlImage.addClickHandler(
              new ClickHandler() {
                @Override
                public void onClick(ClickEvent event) {
                  Window.alert("Show extractor details not implemented yet");
                }
              });

      refresh();
    } catch (Exception e) {
      _domeo
          .getLogger()
          .exception(this, "Exception while initialing resource info " + e.getMessage());
      body.clear();
      body.add(
          new HTML(
              "<img src='"
                  + _resources.crossLittleIcon().getSafeUri().asString()
                  + "'/> Exception while initialing OpenTrials resource info "
                  + e.getMessage()));
    }
  }
Пример #5
0
  public void injectButtons(String plugin, FlowPanel content, final MAnnotation annotation) {
    try {
      if (!((BooleanPreference)
                  _domeo
                      .getPreferences()
                      .getPreferenceItem(Domeo.class.getName(), Domeo.PREF_DISPLAY_PROVENANCE))
              .getValue()
          || !(((BooleanPreference)
                  _domeo
                      .getPreferences()
                      .getPreferenceItem(Domeo.class.getName(), Domeo.PREF_DISPLAY_USER_PROVENANCE))
              .getValue())) {

        Resources resource = Domeo.resources;

        Image commentIcon = null;
        if (((BooleanPreference)
                _domeo
                    .getPreferences()
                    .getPreferenceItem(Domeo.class.getName(), Domeo.PREF_ALLOW_COMMENTING))
            .getValue()) {
          commentIcon = new Image(resource.littleCommentIcon());
          commentIcon.setTitle("Comment on Item");
          commentIcon.setStyleName(ATileComponent.tileResources.css().button());
          commentIcon.addClickHandler(
              ActionCommentAnnotation.getClickHandler(_domeo, this, annotation));
          commentIcon.addClickHandler(
              new ClickHandler() {
                @Override
                public void onClick(ClickEvent event) {
                  _curationPopup.hide();
                }
              });
        }

        Image editIcon = new Image(resource.editLittleIcon());
        editIcon.setTitle("Edit Item");
        if (_domeo.getProfileManager().getUserCurrentProfile().isPluginEnabled(plugin)) {
          editIcon.setStyleName(ATileComponent.tileResources.css().button());
          editIcon.addClickHandler(ActionEditAnnotation.getClickHandler(_domeo, this, annotation));
          editIcon.addClickHandler(
              new ClickHandler() {
                @Override
                public void onClick(ClickEvent event) {
                  _curationPopup.hide();
                }
              });
        }

        Image deleteIcon = new Image(resource.deleteLittleIcon());
        deleteIcon.setTitle("Delete Item");
        deleteIcon.setStyleName(ATileComponent.tileResources.css().button());
        deleteIcon.addClickHandler(
            ActionDeleteAnnotation.getClickHandler(_domeo, this, annotation));
        deleteIcon.addClickHandler(
            new ClickHandler() {
              @Override
              public void onClick(ClickEvent event) {
                _curationPopup.hide();
              }
            });

        if (((BooleanPreference)
                _domeo
                    .getPreferences()
                    .getPreferenceItem(Domeo.class.getName(), Domeo.PREF_ALLOW_COMMENTING))
            .getValue()) {
          content.add(commentIcon);
        }

        content.add(editIcon);
        content.add(deleteIcon);
      }
    } catch (Exception e) {
      _domeo.getLogger().exception(this, "injectButtons: " + e.getMessage());
    }
  }
Пример #6
0
  public void createCurationBar(HorizontalPanel curationBar, final MAnnotation annotation) {
    try {
      curationBar.clear();

      String myToken = CurationUtils.countCurationTokens(_domeo, annotation);

      if (((BooleanPreference)
              _domeo
                  .getPreferences()
                  .getPreferenceItem(Domeo.class.getName(), Domeo.PREF_ALLOW_CURATION))
          .getValue()) {
        Resources resource = Domeo.resources;

        HorizontalPanel curationPanel = new HorizontalPanel();

        int maxCount = 0;
        String maximum = "";
        Map<String, Integer> counts = countCurationToken(annotation);
        Set<String> keys = counts.keySet();
        for (String key : keys) {
          if (counts.containsKey(key)) {
            if (counts.get(key) > maxCount) {
              maximum = key;
              maxCount = counts.get(key);
            }
          }
        }

        final CustomButton correctButton = new CustomButton();
        final CustomButton broadButton = new CustomButton();
        final CustomButton incorrectButton = new CustomButton();

        if (counts.containsKey(MCurationToken.CORRECT)) {
          correctButton.setText("Correct [" + counts.get(MCurationToken.CORRECT) + "]");
        } else correctButton.setText("Correct");

        if (maximum.equals(MCurationToken.CORRECT)) {
          if (myToken.equals(MCurationToken.CORRECT))
            correctButton.setStyleName(widgetUtilsResources.widgetCss().curationButtonBoldGreen());
          else correctButton.setStyleName(widgetUtilsResources.widgetCss().curationButtonBold());
        } else {
          if (myToken.equals(MCurationToken.CORRECT))
            correctButton.setStyleName(widgetUtilsResources.widgetCss().curationButtonGreen());
          else correctButton.setStyleName(widgetUtilsResources.widgetCss().curationButton());
        }

        correctButton.setResource(resource.acceptIcon());
        correctButton.addClickHandler(
            new ClickHandler() {
              public void onClick(ClickEvent event) {
                correctButton.setStyleName(
                    widgetUtilsResources.widgetCss().curationButtonBoldGreen());
                broadButton.setStyleName(widgetUtilsResources.widgetCss().curationButton());
                incorrectButton.setStyleName(widgetUtilsResources.widgetCss().curationButton());

                if (_span != null) {
                  _span.setClassName(StylesManager.LIGHTGREEN_HIGHLIGHT);
                  _span.setAttribute("annotationdefcss", StylesManager.LIGHTGREEN_HIGHLIGHT);
                }

                modifyCurationToken(annotation, MCurationToken.CORRECT);

                //						MAnnotationSet set =
                // _domeo.getAnnotationPersistenceManager().getSetByAnnotationId(annotation.getLocalId());
                //
                //						MCurationToken ann = CurationFactory.createCurationToken(_domeo,
                //							_domeo.getAgentManager().getUserPerson(),
                //							_domeo.getAgentManager().getSoftware(),
                //							annotation, MCurationToken.CORRECT, "");
                //
                //						_domeo.getAnnotationPersistenceManager().addAnnotationOfAnnotation(ann,
                // annotation, _domeo.getAnnotationPersistenceManager().getCurrentSet());
                //						_domeo.refreshAnnotationComponents();
                //
                //	if(!_annotator.getPreferencesManager().isDontOpenCurationPanelWhenConfirming() &&
                //								_annotator.getPreferencesManager().isAutomaticallyOpenCurationPanel()) {
                //							_this.hide();
                //							_annotator.showAnnotationItemHistory(info,  CurationTokenDTO.CORRECT,
                // currentItems, currentSpans);
                //						} else curateAnnotationItem(span, info, CurationTokenDTO.CORRECT);
              }
            });
        curationPanel.add(correctButton);

        if (counts.containsKey(MCurationToken.CORRECT_BROAD)) {
          broadButton.setText("Broad [" + counts.get(MCurationToken.CORRECT_BROAD) + "]");
        } else broadButton.setText("Broad");

        if (maximum.equals(MCurationToken.CORRECT_BROAD)) {
          if (myToken.equals(MCurationToken.CORRECT_BROAD))
            broadButton.setStyleName(widgetUtilsResources.widgetCss().curationButtonBoldGreen());
          else broadButton.setStyleName(widgetUtilsResources.widgetCss().curationButtonBold());
        } else {
          if (myToken.equals(MCurationToken.CORRECT_BROAD))
            broadButton.setStyleName(widgetUtilsResources.widgetCss().curationButtonGreen());
          else broadButton.setStyleName(widgetUtilsResources.widgetCss().curationButton());
        }

        broadButton.setResource(resource.acceptBroadIcon());
        broadButton.addClickHandler(
            new ClickHandler() {
              public void onClick(ClickEvent event) {

                broadButton.setStyleName(
                    widgetUtilsResources.widgetCss().curationButtonBoldGreen());
                correctButton.setStyleName(widgetUtilsResources.widgetCss().curationButton());
                incorrectButton.setStyleName(widgetUtilsResources.widgetCss().curationButton());

                if (_span != null) {
                  _span.setClassName(StylesManager.LIGHTGREEN_HIGHLIGHT);
                  _span.setAttribute("annotationdefcss", StylesManager.LIGHTGREEN_HIGHLIGHT);
                }

                modifyCurationToken(annotation, MCurationToken.CORRECT_BROAD);

                //						MAnnotationSet set =
                // _domeo.getAnnotationPersistenceManager().getSetByAnnotationId(annotation.getLocalId());
                //
                //						MCurationToken ann = CurationFactory.createCurationToken(_domeo,
                //								_domeo.getAgentManager().getUserPerson(),
                //								_domeo.getAgentManager().getSoftware(),
                //								annotation, MCurationToken.CORRECT_BROAD, "");
                //
                //						_domeo.getAnnotationPersistenceManager().addAnnotationOfAnnotation(ann,
                // annotation, _domeo.getAnnotationPersistenceManager().getCurrentSet());
                //						_domeo.refreshAnnotationComponents();

                //						if(_annotator.getPreferencesManager().isAutomaticallyOpenCurationPanel()) {
                //							_this.hide();
                //							_annotator.showAnnotationItemHistory(info,  CurationTokenDTO.CORRECT_BROAD,
                // currentItems, currentSpans);
                //						} else curateAnnotationItem(span, info, CurationTokenDTO.CORRECT_BROAD);
              }
            });
        curationPanel.add(broadButton);

        if (counts.containsKey(MCurationToken.INCORRECT)) {
          incorrectButton.setText("Wrong [" + counts.get(MCurationToken.INCORRECT) + "]");
        } else incorrectButton.setText("Wrong");

        if (maximum.equals(MCurationToken.INCORRECT)) {
          if (myToken.equals(MCurationToken.INCORRECT))
            incorrectButton.setStyleName(widgetUtilsResources.widgetCss().curationButtonBoldRed());
          else incorrectButton.setStyleName(widgetUtilsResources.widgetCss().curationButtonBold());
        } else {
          if (myToken.equals(MCurationToken.INCORRECT))
            incorrectButton.setStyleName(widgetUtilsResources.widgetCss().curationButtonRed());
          else incorrectButton.setStyleName(widgetUtilsResources.widgetCss().curationButton());
        }

        incorrectButton.setResource(resource.rejectIcon());
        incorrectButton.addClickHandler(
            new ClickHandler() {
              public void onClick(ClickEvent event) {

                incorrectButton.setStyleName(
                    widgetUtilsResources.widgetCss().curationButtonBoldRed());
                correctButton.setStyleName(widgetUtilsResources.widgetCss().curationButton());
                broadButton.setStyleName(widgetUtilsResources.widgetCss().curationButton());

                if (_span != null) {
                  _span.setClassName(StylesManager.LIGHTRED_HIGHLIGHT);
                  _span.setAttribute("annotationdefcss", StylesManager.LIGHTRED_HIGHLIGHT);
                }

                modifyCurationToken(annotation, MCurationToken.INCORRECT);

                //						MAnnotationSet set =
                // _domeo.getAnnotationPersistenceManager().getSetByAnnotationId(annotation.getLocalId());

                //						MCurationToken ann = CurationFactory.createCurationToken(_domeo,
                //								_domeo.getAgentManager().getUserPerson(),
                //								_domeo.getAgentManager().getSoftware(),
                //								annotation, MCurationToken.INCORRECT, "");
                //
                //
                //
                ////
                //	if(((BooleanPreference)_domeo.getPreferences().getPreferenceItem(Domeo.class.getName(), Domeo.PREF_ALLOW_CURATION_MOTIVATION)).getValue()) {
                ////						    _curationPopup.hide();
                ////						    CurationViewer lwp = new CurationViewer(_domeo, annotation, null);
                ////			                new EnhancedGlassPanel(_domeo, lwp, lwp.getTitle(), false,
                // false, false);
                ////						} else {
                //						    _domeo.getAnnotationPersistenceManager().addAnnotationOfAnnotation(ann,
                // annotation, _domeo.getAnnotationPersistenceManager().getCurrentSet());
                //	                        _domeo.refreshAnnotationComponents();
                //						//}

                //						if(_annotator.getPreferencesManager().isAutomaticallyOpenCurationPanel()) {
                //							_this.hide();
                //							_annotator.showAnnotationItemHistory(info,  CurationTokenDTO.INCORRECT,
                // currentItems, currentSpans);
                //						} else curateAnnotationItem(span, info, CurationTokenDTO.INCORRECT);
              }
            });
        curationPanel.add(incorrectButton);

        curationBar.add(curationPanel);

        // curationBar.add(new HTML("WIP: curation bar"));

      }
    } catch (Exception e) {
      _domeo.getLogger().exception(this, "create curation bar" + e.getMessage());
    }
  }
Пример #7
0
  public void createProvenanceBar(
      String plugin, HorizontalPanel provenance, final MAnnotation annotation) {
    try {
      Resources resource = Domeo.resources;

      Image commentIcon = null;
      if (((BooleanPreference)
              _domeo
                  .getPreferences()
                  .getPreferenceItem(Domeo.class.getName(), Domeo.PREF_ALLOW_COMMENTING))
          .getValue()) {
        commentIcon = new Image(resource.littleCommentIcon());
        commentIcon.setTitle("Comment on Item");
        commentIcon.setStyleName(ATileComponent.tileResources.css().button());
        commentIcon.addClickHandler(
            ActionCommentAnnotation.getClickHandler(_domeo, this, annotation));
        commentIcon.addClickHandler(
            new ClickHandler() {
              @Override
              public void onClick(ClickEvent event) {
                _curationPopup.hide();
              }
            });
      }

      Image editIcon = new Image(resource.editLittleIcon());
      editIcon.setTitle("Edit Item");
      if (_domeo.getProfileManager().getUserCurrentProfile().isPluginEnabled(plugin)) {
        editIcon.setStyleName(ATileComponent.tileResources.css().button());
        editIcon.addClickHandler(ActionEditAnnotation.getClickHandler(_domeo, this, annotation));
        editIcon.addClickHandler(
            new ClickHandler() {
              @Override
              public void onClick(ClickEvent event) {
                _curationPopup.hide();
              }
            });
      }

      Image deleteIcon = new Image(resource.deleteLittleIcon());
      deleteIcon.setTitle("Delete Item");
      deleteIcon.setStyleName(ATileComponent.tileResources.css().button());
      deleteIcon.addClickHandler(ActionDeleteAnnotation.getClickHandler(_domeo, this, annotation));
      deleteIcon.addClickHandler(
          new ClickHandler() {
            @Override
            public void onClick(ClickEvent event) {
              _curationPopup.hide();
            }
          });

      // TODO move to an abstract tile class
      if (((BooleanPreference)
              _domeo
                  .getPreferences()
                  .getPreferenceItem(Domeo.class.getName(), Domeo.PREF_DISPLAY_PROVENANCE))
          .getValue()) {
        if (annotation
            .getCreator()
            .getUri()
            .equals(_domeo.getAgentManager().getUserPerson().getUri())) {
          if (((BooleanPreference)
                  _domeo
                      .getPreferences()
                      .getPreferenceItem(Domeo.class.getName(), Domeo.PREF_DISPLAY_USER_PROVENANCE))
              .getValue()) {
            provenance.clear();

            // TODO Externalize the icon management to the plugins
            if (SelectorUtils.isOnMultipleTargets(annotation.getSelectors())) {
              Image ic = new Image(Domeo.resources.multipleLittleIcon());
              ic.setTitle("Annotation on multiple targets");
              provenance.add(ic);
              provenance.setCellWidth(ic, "18px");
            } else if (annotation.getSelector() != null
                && annotation.getSelector().getTarget() instanceof MOnlineImage) {
              Image ic = new Image(Domeo.resources.littleImageIcon());
              ic.setTitle("Annotation on image");
              provenance.add(ic);
              provenance.setCellWidth(ic, "18px");
            } else {
              Image ic = new Image(Domeo.resources.littleTextIcon());
              ic.setTitle("Annotation on text");
              provenance.add(ic);
              provenance.setCellWidth(ic, "18px");
            }

            provenance.add(new Label("By Me on " + annotation.getFormattedCreationDate()));

            if (((BooleanPreference)
                    _domeo
                        .getPreferences()
                        .getPreferenceItem(Domeo.class.getName(), Domeo.PREF_ALLOW_COMMENTING))
                .getValue()) {
              provenance.add(commentIcon);
              provenance.setCellWidth(commentIcon, "20px");
              provenance.setCellHorizontalAlignment(
                  commentIcon, HasHorizontalAlignment.ALIGN_RIGHT);
            }

            provenance.add(editIcon);
            provenance.setCellWidth(editIcon, "20px");
            provenance.setCellHorizontalAlignment(editIcon, HasHorizontalAlignment.ALIGN_RIGHT);
            provenance.add(deleteIcon);
            provenance.setCellWidth(deleteIcon, "20px");
            provenance.setCellHorizontalAlignment(deleteIcon, HasHorizontalAlignment.ALIGN_RIGHT);
          } else {
            provenance.setVisible(false);
          }
        } else {
          provenance.clear();

          // TODO Externalize the icon management to the plugins
          if (SelectorUtils.isOnMultipleTargets(annotation.getSelectors())) {
            Image ic = new Image(Domeo.resources.multipleLittleIcon());
            ic.setTitle("Annotation on multiple targets");
            provenance.add(ic);
            provenance.setCellWidth(ic, "18px");
          } else if (annotation.getSelector() != null
              && annotation.getSelector().getTarget() instanceof MOnlineImage) {
            Image ic = new Image(Domeo.resources.littleImageIcon());
            ic.setTitle("Annotation on image");
            provenance.add(ic);
            provenance.setCellWidth(ic, "18px");
          } else {
            Image ic = new Image(Domeo.resources.littleTextIcon());
            ic.setTitle("Annotation on text");
            provenance.add(ic);
            provenance.setCellWidth(ic, "18px");
          }

          provenance.add(
              new Label(
                  "By "
                      + annotation.getCreator().getName()
                      + " on "
                      + annotation.getFormattedCreationDate()));

          if (((BooleanPreference)
                  _domeo
                      .getPreferences()
                      .getPreferenceItem(Domeo.class.getName(), Domeo.PREF_ALLOW_COMMENTING))
              .getValue()) {
            provenance.add(commentIcon);
            provenance.setCellWidth(commentIcon, "20px");
            provenance.setCellHorizontalAlignment(commentIcon, HasHorizontalAlignment.ALIGN_RIGHT);
          }

          provenance.add(editIcon);
          provenance.setCellWidth(editIcon, "20px");
          provenance.setCellHorizontalAlignment(editIcon, HasHorizontalAlignment.ALIGN_RIGHT);
          provenance.add(deleteIcon);
          provenance.setCellWidth(deleteIcon, "20px");
          provenance.setCellHorizontalAlignment(deleteIcon, HasHorizontalAlignment.ALIGN_RIGHT);
        }
      } else {
        provenance.setVisible(false);
      }
    } catch (Exception e) {
      _domeo.getLogger().exception(this, "createProvenanceBar2" + e.getMessage());
    }
  }
  public void refresh() {
    Resources _resources = Domeo.resources;

    try {
      init();
      uriField.setValue(_resource.getUrl());
      // sourceField.add(new HTML("<img src='" + Domeo.resources.externalLinkIcon().getURL() + "'/>
      // <a href='" +
      //	_resource.getSource().getHomepage() + "' target='_blank'>"+_resource.getSource().getName()
      // + "</a> "));

      String synonyms = _resource.getIsAbout().getSynonyms();
      aboutField.add(
          new HTML(
              _resource.getIsAbout().getLabel()
                  + " "
                  + (_resource.getIsAbout().getSynonyms() != null ? synonyms : "")));

      if (_domeo.getExtractorsManager().isExtractorDefined()) {
        urlImage.setResource(_resources.checkIcon());
        urlImage.setTitle(
            "Known resource, executed extractor '"
                + _domeo.getExtractorsManager().getExtractorLabel()
                + "'");
        urlImage.setVisible(true);
      } else {
        urlImage.setVisible(false);
      }

      if (_resource != null) {
        extractionProvenanceImage.setUrl(
            Domeo.resources.pluginsGrayLittleIcon().getSafeUri().asString());
        extractionProvenanceImage.setTitle(_resource.getCreator().getName());
        extractorProvenanceDetails.setText("Extracted by " + _resource.getCreator().getName());
        extractionSourceDetails.setHTML(
            "Source <a href='"
                + _resource.getSource().getHomepage()
                + "' target='_blank'> <img src='"
                + Domeo.resources.externalLinkIcon().getSafeUri().asString()
                + "'/> "
                + _resource.getSource().getName()
                + "</a>");
        extractionDateDetails.setText("On " + _resource.getFormattedCreationDate());
      }
    } catch (Exception e) {
      _domeo
          .getLogger()
          .exception(this, "Exception while rendering OpenTrials resource info " + e.getMessage());
      body.clear();
      body.add(
          new HTML(
              "<img src='"
                  + _resources.crossLittleIcon().getSafeUri().asString()
                  + "'/> Exception while rendering OpenTrials resource info "
                  + e.getMessage()));
    }

    // References
    try {
      CitationReferencesPanel p = new CitationReferencesPanel(_domeo, false);
      referencesPanel.clear();
      referencesPanel.add(p);
    } catch (Exception e) {
      _domeo
          .getLogger()
          .exception(this, "Exception while rendering resource info " + e.getMessage());
      referencesPanel.clear();
      referencesPanel.add(
          new HTML(
              "<img src='"
                  + _resources.crossLittleIcon().getSafeUri().asString()
                  + "'/> Exception while rendering PubMed resource info "
                  + e.getMessage()));
    }

    // Generic Document Resource
    try {
      LDocumentResourceCardPanel d = new LDocumentResourceCardPanel(_domeo);
      d.initializeLens(_resource, _parameters);
      contentPanel.clear();
      contentPanel.add(d);
    } catch (Exception e) {
      _domeo
          .getLogger()
          .exception(this, "Exception while rendering resource info " + e.getMessage());
      body.clear();
      body.add(
          new HTML(
              "<img src='"
                  + _resources.crossLittleIcon().getSafeUri().asString()
                  + "'/> Exception while rendering OpenTrials resource info "
                  + e.getMessage()));
    }
  }