@Override
        public void setInput(Object input) {
            AnnotationsHoverInfo hoverInfo = (AnnotationsHoverInfo) input;
            this.tooltipAnchorLine = hoverInfo.tooltipAnchorLine;
            for (AnnotationsGroupInfo annotationGroup : hoverInfo.annotationsGroups()) {
                Composite linksGroupContainer;
                if (hoverInfo.annotationsGroups().size() > 1) {
                    linksGroupContainer = UIUtils.createComposite(linksContainer, 2);
                    DBIcon icon = annotationGroup.getIcon();
                    if (icon != null) {
                        UIUtils.createLabel(linksGroupContainer, icon);
                    } else {
                        UIUtils.createPlaceholder(linksGroupContainer, 1);
                    }
                } else {
                    linksGroupContainer = this.linksContainer;
                }
                List<AnnotationHyperlinkInfo> hyperlinks = annotationGroup.getAnnotations();
                assert hyperlinks.size() > 0;
                final int alsoLinksLimit = 5;
                final int alsoLinksToShow = Math.min(alsoLinksLimit, hyperlinks.size() - 1) + 1;
                Composite groupLinksContainer = UIUtils.createPlaceholder(linksGroupContainer, hyperlinks.size() == 1 ? 1 : (alsoLinksToShow * 2 + 1), 0);
                this.createHyperlinkControl(groupLinksContainer, hyperlinks.get(0), annotationGroup.getMessage());
                if (hyperlinks.size() > 2) {
                    UIUtils.createLabel(groupLinksContainer, " (also at position ");
                    for (int i = 1; i < alsoLinksToShow; i++) {
                        AnnotationHyperlinkInfo hyperlink = hyperlinks.get(i);
                        if (i > 1) {
                            UIUtils.createLabel(groupLinksContainer, ", ");
                        }
                        this.createHyperlinkControl(groupLinksContainer, hyperlink, Integer.toString(hyperlink.getPosition().getOffset()));
                    }
                    UIUtils.createLabel(groupLinksContainer, hyperlinks.size() <= alsoLinksLimit ? ")" : (", ... " + hyperlinks.size() + " such problems in line)"));
                }
            }
            super.getShell().pack(true);
        }
Show info from annotations on the specified line
plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/util/SQLAnnotationHover.java