import java.beans.PropertyChangeEvent;
import java.util.Iterator;
+@SuppressWarnings("serial")
public class SeqCanvas extends Panel implements ViewportListenerI
{
FeatureRenderer fr;
if (av.hasHiddenColumns())
{
startx = av.getAlignment().getHiddenColumns()
- .adjustForHiddenColumns(startx);
+ .visibleToAbsoluteColumn(startx);
endx = av.getAlignment().getHiddenColumns()
- .adjustForHiddenColumns(endx);
- }
-
- int maxwidth = av.getAlignment().getWidth();
- if (av.hasHiddenColumns())
- {
- maxwidth = av.getAlignment().getHiddenColumns()
- .findColumnPosition(maxwidth) - 1;
+ .visibleToAbsoluteColumn(endx);
}
// WEST SCALE
if (av.hasHiddenColumns())
{
endx = av.getAlignment().getHiddenColumns()
- .adjustForHiddenColumns(endx);
+ .visibleToAbsoluteColumn(endx);
}
SequenceI seq;
int endx;
int ypos = hgap;
- int maxwidth = av.getAlignment().getWidth();
-
- if (av.hasHiddenColumns())
- {
- maxwidth = av.getAlignment().getHiddenColumns()
- .findColumnPosition(maxwidth);
- }
+ int maxwidth = av.getAlignment().getVisibleWidth();
while ((ypos <= canvasHeight) && (startRes < maxwidth))
{
HiddenColumns hidden = av.getAlignment().getHiddenColumns();
g.setColor(Color.blue);
int res;
- Iterator<Integer> it = hidden.getBoundedStartIterator(startRes,
+ Iterator<Integer> it = hidden.getStartRegionIterator(startRes,
endx + 1);
while (it.hasNext())
{
int blockEnd;
HiddenColumns hidden = av.getAlignment().getHiddenColumns();
- VisibleContigsIterator regions = (VisibleContigsIterator) hidden
- .getVisibleBlocksIterator(startRes, endRes, true);
+ VisibleContigsIterator regions = hidden
+ .getVisContigsIterator(startRes, endRes + 1, true);
while (regions.hasNext())
{
}
}
+ /**
+ * Ensure that a full paint is done next, for whatever reason. This was
+ * necessary for JavaScript; apparently in Java the timing is just right on
+ * multiple threads (EventQueue-0, Consensus, Conservation) that we can get
+ * away with one fast paint before the others, but this ensures that in the
+ * end we get a full paint. Problem arose in relation to copy/paste, where the
+ * paste was not finalized with a full paint.
+ *
+ * @author hansonr 2019.04.17
+ */
+ public void clearFastPaint()
+ {
+ fastPaint = false;
+ }
+
}