public AnnotationComponent addAnnotationComponent(Annotation annotation){
        // initialize annotations
        if (annotations == null){
            annotations = new ArrayList<AnnotationComponent>();
        }
        // make sure we don't add the following types.
        if (!(annotation.getFlagInvisible() ||
                annotation.getFlagHidden())) {
            AnnotationComponentImpl comp = new AnnotationComponentImpl(annotation,
                    documentViewController,
                    pageViewComponent, documentViewModel);
            // add them to the container, using absolute positioning.
            pageViewComponent.add(comp);
            // add the comp reference locally so we have easier access
            this.annotations.add(comp);
            // set the new annotation as the selected one.
            documentViewController.clearSelectedAnnotations();
            return comp;
        }
        return null;
    }