/** * Renderes a list or table cell value if the value contains an OWLAnnotation. * * @param page The page that the value will be rendered into. * @param value The value that may or may not contain an OWLAnnotation. The annotation will be * extracted from this value. * @param foreground The default foreground color. * @param background The default background color. * @param isSelected Whether or not the cell containing the value is selected. */ private void renderCellValue( Page page, Object value, Color foreground, Color background, boolean isSelected) { OWLAnnotation annotation = extractOWLAnnotationFromCellValue(value); if (annotation != null) { renderAnnotationProperty(page, annotation, foreground, background, isSelected); renderAnnotationValue(page, annotation, foreground, background, isSelected); if (inlineAnnotationRendering == RENDER_COMPOUND_ANNOTATIONS_INLINE && value instanceof HasAnnotations) { Page subAnnotationPage = new Page(); for (OWLAnnotation anno : ((HasAnnotations) value).getAnnotations()) { renderCellValue(subAnnotationPage, anno, foreground, background, isSelected); } subAnnotationPage.setMarginLeft(40); subAnnotationPage.setOpacity(0.6); page.add(subAnnotationPage); } } switch (annotationRenderingStyle) { case COMFORTABLE: page.setMargin(2); page.setMarginBottom(6); break; case COSY: page.setMargin(1); page.setMarginBottom(3); break; case COMPACT: page.setMargin(0); page.setMarginBottom(1); } }
/** * Renders an IRI as a full IRI rather than as an IRI that represents an entity in the signature * of the imports closure of the active ontology. * * @param page The page that the IRI should be rendered into. * @param iri The IRI to be rendered. * @return A list of paragraphs that represent the rendering of the annotation value. */ private List<Paragraph> renderExternalIRI(Page page, IRI iri) { Paragraph paragraph; if (isLinkableAddress(iri)) { paragraph = page.addParagraph(iri.toString(), new HTTPLink(iri.toURI())); } else { paragraph = page.addParagraph(iri.toString()); } return Arrays.asList(paragraph); }
/** * Renders the annotation property into a paragraph in the page. * * @param page The page to insert the paragraph into. * @param annotation The annotation containing the property to be rendered. * @param defaultForeground The default foreground color. * @param defaultBackground The default background color. * @param isSelected Specifies whether the associated cell is selected or not. */ private Paragraph renderAnnotationProperty( Page page, OWLAnnotation annotation, Color defaultForeground, Color defaultBackground, boolean isSelected) { OWLAnnotationProperty property = annotation.getProperty(); String rendering = editorKit.getOWLModelManager().getRendering(property); Paragraph paragraph = page.addParagraph(rendering); Color foreground = getAnnotationPropertyForeground(defaultForeground, isSelected); paragraph.setForeground(foreground); // if (isReferenceOntologyActive()) { // paragraph.setBold(true); // } if (annotation.getValue() instanceof OWLLiteral) { OWLLiteral literalValue = (OWLLiteral) annotation.getValue(); paragraph.append(" ", foreground); appendTag(paragraph, literalValue, foreground, isSelected); } switch (annotationRenderingStyle) { case COMFORTABLE: paragraph.setMarginBottom(4); break; case COSY: paragraph.setMarginBottom(2); break; case COMPACT: paragraph.setMarginBottom(1); break; } return paragraph; }
/** * Renders an annotation value that is an OWLLiteral. * * @param page The page that the value will be rendered into. * @param literal The literal to be rendered. * @param foreground The default foreground. * @param background The default background. * @param isSelected Whether or not the cell containing the annotation value is selected. * @return A list of paragraphs that represent the rendering of the literal. */ private List<Paragraph> renderLiteral( Page page, OWLLiteral literal, Color foreground, Color background, boolean isSelected) { String rendering = EscapeUtils.unescapeString(literal.getLiteral()).trim(); List<Paragraph> result = new ArrayList<>(); if (rendering.length() > 0) { List<LinkSpan> linkSpans = extractLinks(rendering); Paragraph literalParagraph = new Paragraph(rendering, linkSpans); literalParagraph.setForeground(foreground); page.add(literalParagraph); result.add(literalParagraph); Paragraph tagParagraph = literalParagraph; // new Paragraph(""); tagParagraph.append(" ", foreground); page.add(tagParagraph); result.add(tagParagraph); tagParagraph.setMarginTop(2); tagParagraph.setTabCount(2); // appendTag(tagParagraph, literal, foreground, isSelected); } return result; }
/** * Renders an IRI as a full IRI rather than as an IRI that represents an entity in the signature * of the imports closure of the active ontology. * * @param page The page that the IRI should be rendered into. * @param iri The IRI to be rendered. * @return A list of paragraphs that represent the rendering of the annotation value. */ private List<Paragraph> renderExternalIRI(Page page, IRI iri) { List<Paragraph> paragraphs = new ArrayList<>(); String iriString = iri.toString(); if (isLinkableAddress(iri)) { if (isImageAddress(iri) && isDisplayThumbnails()) { try { IconBox iconBox = getImageBox(iri); page.add(iconBox); } catch (MalformedURLException e) { paragraphs.add(page.addParagraph(iriString, new HTTPLink(iri.toURI()))); } } else { paragraphs.add(page.addParagraph(iriString, new HTTPLink(iri.toURI()))); } } else { paragraphs.add(page.addParagraph(iriString)); } return paragraphs; }
/** * Renderes a set of entities as an annotation value. The idea is that the annotation value is an * IRI that corresponds to the IRI of entities in the imports closure of the active ontology. * * @param page The page that the entities will be rendered into. * @param entities The entities. * @return A list of paragraphs that represents the rendering of the entities. */ private List<Paragraph> renderEntities(Page page, Set<OWLEntity> entities) { List<Paragraph> paragraphs = new ArrayList<>(); for (OWLEntity entity : entities) { Icon icon = getIcon(entity); OWLModelManager modelManager = editorKit.getOWLModelManager(); Paragraph paragraph = new Paragraph(modelManager.getRendering(entity), new OWLEntityLink(editorKit, entity)); paragraph.setIcon(icon); page.add(paragraph); paragraphs.add(paragraph); } return paragraphs; }
/** * Renders an annotation value that is an anonymous individual. * * @param page The page that the individual should be rendered into. * @param individual The individual. * @return A list of paragraphs that represent the rendering of the individual. */ private List<Paragraph> renderAnonymousIndividual(Page page, OWLAnonymousIndividual individual) { String rendering = editorKit.getOWLModelManager().getRendering(individual); Paragraph paragraph = page.addParagraph(rendering); paragraph.setIcon(getIcon(individual)); return Arrays.asList(paragraph); }