+
+ @Override
+ public void propertyChange(PropertyChangeEvent evt)
+ {
+ if (!av.getWrapAlignment())
+ {
+ if (evt.getPropertyName().equals("startres"))
+ {
+ // scroll - startres and endres both change
+
+ // Make sure we're not trying to draw a panel
+ // larger than the visible window
+ ViewportRanges vpRanges = av.getRanges();
+ int scrollX = (int) evt.getNewValue() - (int) evt.getOldValue();
+ if (scrollX > vpRanges.getEndRes() - vpRanges.getStartRes())
+ {
+ scrollX = vpRanges.getEndRes() - vpRanges.getStartRes();
+ }
+ else if (scrollX < vpRanges.getStartRes() - vpRanges.getEndRes())
+ {
+ scrollX = vpRanges.getStartRes() - vpRanges.getEndRes();
+ }
+ fastPaint(scrollX, 0, false);
+ }
+ else if (evt.getPropertyName().equals("endres"))
+ {
+ // resize - only endres changes
+ int scrollX = (int) evt.getNewValue() - (int) evt.getOldValue();
+ fastPaint(scrollX, 0, true);
+ }
+ else if (evt.getPropertyName().equals("startseq"))
+ {
+ // scroll
+ fastPaint(0, (int) evt.getNewValue() - (int) evt.getOldValue(), false);
+ }
+ else if (evt.getPropertyName().equals("endseq"))
+ {
+ // resize
+ fastPaint(0, (int) evt.getNewValue() - (int) evt.getOldValue(),
+ true);
+ }
+ }
+ }