Merge branch 'develop' into features/JAL-2446NCList
authorgmungoc <g.m.carstairs@dundee.ac.uk>
Tue, 8 Aug 2017 10:30:04 +0000 (11:30 +0100)
committergmungoc <g.m.carstairs@dundee.ac.uk>
Tue, 8 Aug 2017 10:30:04 +0000 (11:30 +0100)
src/jalview/gui/Jalview2XML.java
src/jalview/gui/SliderPanel.java
src/jalview/viewmodel/AlignmentViewport.java
test/jalview/gui/AlignFrameTest.java

index 8168ce1..5070884 100644 (file)
@@ -4418,13 +4418,6 @@ public class Jalview2XML
 
     }
     // recover view properties and display parameters
-    if (view.getViewName() != null)
-    {
-      af.viewport.viewName = view.getViewName();
-      af.setInitialTabVisible();
-    }
-    af.setBounds(view.getXpos(), view.getYpos(), view.getWidth(),
-            view.getHeight());
 
     af.viewport.setShowAnnotation(view.getShowAnnotation());
     af.viewport.setAbovePIDThreshold(view.getPidSelected());
@@ -4458,6 +4451,14 @@ public class Jalview2XML
     af.viewport.setShowUnconserved(view.hasShowUnconserved() ? view
             .isShowUnconserved() : false);
     af.viewport.getRanges().setStartRes(view.getStartRes());
+
+    if (view.getViewName() != null)
+    {
+      af.viewport.viewName = view.getViewName();
+      af.setInitialTabVisible();
+    }
+    af.setBounds(view.getXpos(), view.getYpos(), view.getWidth(),
+            view.getHeight());
     // startSeq set in af.alignPanel.updateLayout below
     af.alignPanel.updateLayout();
     ColourSchemeI cs = null;
index ec53e93..2176719 100755 (executable)
@@ -365,7 +365,7 @@ public class SliderPanel extends GSliderPanel
     }
     if (forConservation)
     {
-      if (!scheme.conservationApplied())
+      if (!scheme.conservationApplied() && sg != null)
       {
         /*
          * first time the colour scheme has had Conservation shading applied
index 5a7a27f..70f16d9 100644 (file)
@@ -641,6 +641,20 @@ public abstract class AlignmentViewport implements AlignViewportI,
     {
       if (getConservationSelected())
       {
+        int retry = 0;
+        synchronized (this)
+        {
+          while (isCalcInProgress() && retry < 10)
+          {
+            try
+            {
+              wait(50);
+              retry++;
+            } catch (InterruptedException e)
+            {
+            }
+          }
+        }
         residueShading.setConservation(hconservation);
       }
       residueShading.alignmentChanged(alignment, hiddenRepSequences);
index 67098ae..af9c045 100644 (file)
@@ -544,10 +544,11 @@ public class AlignFrameTest
     assertEquals(af.alignPanel.getViewName(), "View 1");
     AlignViewport av2 = af.getViewport();
     assertNotSame(av, av2);
+    assertSame(av2, af.alignPanel.av);
     rs = av2.getResidueShading();
     assertNotSame(av.getResidueShading(), rs);
     assertEquals(rs.getThreshold(), 10);
-    assertTrue(rs.conservationApplied());
+    assertTrue(rs.conservationApplied(), rs.toString());
     assertEquals(rs.getConservationInc(), 20);
     assertEquals(av2.getAlignment().getGroups().size(), 1);
     sg = av2.getAlignment().getGroups().get(0);