/** * 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); } }