* In unwrapped mode, only responds to a vertical scroll, as horizontal scroll * leaves sequence ids unchanged. In wrapped mode, only vertical scroll is * provided, but it generates a change of "startres" which does require an * update here. */ @Override public void propertyChange(PropertyChangeEvent evt) { String propertyName = evt.getPropertyName(); switch (propertyName) { case ViewportRanges.STARTSEQ: fastPaint((int) evt.getNewValue() - (int) evt.getOldValue()); break; case ViewportRanges.STARTRES: if (av.getWrapAlignment()) { fastPaint((int) evt.getNewValue() - (int) evt.getOldValue()); } break; case ViewportRanges.STARTRESANDSEQ: fastPaint(((int[]) evt.getNewValue())[1] - ((int[]) evt.getOldValue())[1]); break; case ViewportRanges.MOVE_VIEWPORT: repaint(); break; default: } } /** * Clears the flag that allows a 'fast paint' on the next repaint, so * requiring a full repaint */ public void setNoFastPaint() { allowFastPaint = false; } }