X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FPaintRefresher.java;fp=src%2Fjalview%2Fgui%2FPaintRefresher.java;h=7e203b22d54066c60870b587050eeb85a3717a44;hb=586ade46bdcd05ff028a1cff82c3c527326d28ec;hp=953fdc549b46b4af0631498b9b92cd2f0df6ad4f;hpb=adcef27f5747b4e70e89a56c3735bc3afb8ce9bf;p=jalview.git diff --git a/src/jalview/gui/PaintRefresher.java b/src/jalview/gui/PaintRefresher.java index 953fdc5..7e203b2 100755 --- a/src/jalview/gui/PaintRefresher.java +++ b/src/jalview/gui/PaintRefresher.java @@ -39,6 +39,9 @@ import java.util.Map; */ public class PaintRefresher { + private static final int ALIGNMENT_CHANGED = 1 << 0; + private static final int VALIDATE_SEQUENCES = 1 << 1; + static Map> components = new HashMap<>(); /** @@ -101,25 +104,32 @@ public class PaintRefresher { List comps = components.get(id); + int mode = (alignmentChanged ? ALIGNMENT_CHANGED : 0) | (validateSequences ? VALIDATE_SEQUENCES : 0); if (comps == null) { return; } + repaintComponents(source, mode, comps.toArray(new Component[comps.size()])); + } - for (Component comp : comps) + public static void repaintComponents(Component source, int mode, + Component... comps) + { + for (int i = 0; i < comps.length; i++) { - if (comp == source) + Component comp = comps[i]; + if (comp == null) { continue; } if (comp instanceof AlignmentPanel) { - if (validateSequences && source instanceof AlignmentPanel) + if ((mode & VALIDATE_SEQUENCES) != 0 && source instanceof AlignmentPanel) { validateSequences(((AlignmentPanel) source).av.getAlignment(), ((AlignmentPanel) comp).av.getAlignment()); } - if (alignmentChanged) + if ((mode & ALIGNMENT_CHANGED) != 0) { ((AlignmentPanel) comp).alignmentChanged(); } @@ -128,13 +138,13 @@ public class PaintRefresher { // BH 2019.04.22 fixes JS problem of repaint() consolidation // that occurs in JavaScript but not Java [JAL-3226] - ((IdCanvas) comp).fastPaint = false; + ((IdCanvas) comp).setNoFastPaint(); } else if (comp instanceof SeqCanvas) { // BH 2019.04.22 fixes JS problem of repaint() consolidation // that occurs in JavaScript but not Java [JAL-3226] - ((SeqCanvas) comp).fastPaint = false; + ((SeqCanvas) comp).setNoFastPaint(); } comp.repaint(); } @@ -262,4 +272,5 @@ public class PaintRefresher return tmp.toArray(new AlignmentPanel[tmp.size()]); } + }