Details
Description
When a JVP project opens, it may read both final frame and original dataset features. The frame is read first, then the dataset. There are close to a dozen calls to AlignPanel.repaint() that occur during this first process that are totally unnecessary, because the dataset file is still being read from the zip file. These requests come from all over the system, including various Swing UI classes as well as Jalview's own classes.
The (preliminary) solution was to add a holdRepaint boolean in AlignPanel that is checked in SeqCanvas.paintComponent as well as AlignPanel.repaint to cancel repaints while this is happening. AlignPanel.setHoldRepaint(true/false) is called by Jalview2XML but could be called from elsewhere. These seemed like a good starting point at least. SeeJAL-3253-applet branch for implementation.
More thought should go into exactly where these hooks should go.
The (preliminary) solution was to add a holdRepaint boolean in AlignPanel that is checked in SeqCanvas.paintComponent as well as AlignPanel.repaint to cancel repaints while this is happening. AlignPanel.setHoldRepaint(true/false) is called by Jalview2XML but could be called from elsewhere. These seemed like a good starting point at least. See
More thought should go into exactly where these hooks should go.