* @param af
* @param counter
*/
- public AnnotationWorker(AlignViewportI viewport,
- AlignmentViewPanel panel, AnnotationProviderI counter)
+ public AnnotationWorker(AlignViewportI viewport, AlignmentViewPanel panel,
+ AnnotationProviderI counter)
{
super(viewport, panel);
- ourAnnots = new ArrayList<AlignmentAnnotation>();
+ ourAnnots = new ArrayList<>();
this.counter = counter;
calcMan.registerWorker(this);
}
return;
}
- removeAnnotation();
+ // removeAnnotation();
AlignmentI alignment = alignViewport.getAlignment();
if (alignment != null)
{
alignment, new FeatureRenderer(alignViewport));
for (AlignmentAnnotation ann : anns)
{
- ann.showAllColLabels = true;
- ann.graph = AlignmentAnnotation.BAR_GRAPH;
- ourAnnots.add(ann);
- alignment.addAnnotation(ann);
+ AlignmentAnnotation theAnn = alignment.findOrCreateAnnotation(
+ ann.label, ann.description, false, null, null);
+ theAnn.showAllColLabels = true;
+ theAnn.graph = AlignmentAnnotation.BAR_GRAPH;
+ theAnn.scaleColLabel = true;
+ theAnn.annotations = ann.annotations;
+ setGraphMinMax(theAnn, theAnn.annotations);
+ theAnn.validateRangeAndDisplay();
+ if (!ourAnnots.contains(theAnn))
+ {
+ ourAnnots.add(theAnn);
+ }
+ // alignment.addAnnotation(ann);
}
} catch (IndexOutOfBoundsException x)
{
if (ap != null)
{
ap.adjustAnnotationHeight();
- ap.paintAlignment(true);
+ // TODO: only need to update colour and geometry if panel height changes
+ // and view is coloured by annotation, and the annotation is actually
+ // changed!
+ ap.paintAlignment(true, true);
}
}