From: Jim Procter Date: Wed, 18 Oct 2017 13:22:57 +0000 (+0100) Subject: Merge branch 'bugs/JAL-2777_whitespaceChain' into develop X-Git-Tag: Release_2_10_3b1~107 X-Git-Url: http://source.jalview.org/gitweb/?a=commitdiff_plain;h=3f8731339024094fe6d68e8b96d2646805a19d34;hp=c4a72d18f6a7b2cf3de4a46b7a35cbfd0d76438f;p=jalview.git Merge branch 'bugs/JAL-2777_whitespaceChain' into develop --- diff --git a/src/jalview/ext/rbvi/chimera/AtomSpecModel.java b/src/jalview/ext/rbvi/chimera/AtomSpecModel.java index f923f7f..39d6704 100644 --- a/src/jalview/ext/rbvi/chimera/AtomSpecModel.java +++ b/src/jalview/ext/rbvi/chimera/AtomSpecModel.java @@ -120,7 +120,7 @@ public class AtomSpecModel for (String chain : modelData.keySet()) { - chain = chain.trim(); + chain = " ".equals(chain) ? chain : chain.trim(); List rangeList = modelData.get(chain); @@ -192,9 +192,10 @@ public class AtomSpecModel { sb.append(start).append("-").append(end); } - if (chain.length() > 0) - { - sb.append(".").append(chain); + + sb.append("."); + if (!" ".equals(chain)) { + sb.append(chain); } } } diff --git a/src/jalview/gui/FeatureSettings.java b/src/jalview/gui/FeatureSettings.java index c5454ab..b768339 100644 --- a/src/jalview/gui/FeatureSettings.java +++ b/src/jalview/gui/FeatureSettings.java @@ -131,6 +131,11 @@ public class FeatureSettings extends JPanel private static final int MIN_WIDTH = 400; private static final int MIN_HEIGHT = 400; + + /** + * when true, constructor is still executing - so ignore UI events + */ + protected volatile boolean inConstruction = true; /** * Constructor @@ -303,6 +308,7 @@ public class FeatureSettings extends JPanel }; }); frame.setLayer(JLayeredPane.PALETTE_LAYER); + inConstruction = false; } protected void popupSort(final int selectedRow, final String type, @@ -1237,8 +1243,11 @@ public class FeatureSettings extends JPanel @Override public void stateChanged(ChangeEvent evt) { - fr.setTransparency((100 - transparency.getValue()) / 100f); - af.alignPanel.paintAlignment(true, true); + if (!inConstruction) + { + fr.setTransparency((100 - transparency.getValue()) / 100f); + af.alignPanel.paintAlignment(true,true); + } } }); diff --git a/src/jalview/renderer/seqfeatures/FeatureRenderer.java b/src/jalview/renderer/seqfeatures/FeatureRenderer.java index f16522f..1f47da3 100644 --- a/src/jalview/renderer/seqfeatures/FeatureRenderer.java +++ b/src/jalview/renderer/seqfeatures/FeatureRenderer.java @@ -216,7 +216,8 @@ public class FeatureRenderer extends FeatureRendererModel return null; } - if (Comparison.isGap(seq.getCharAt(column))) + // column is 'base 1' but getCharAt is an array index (ie from 0) + if (Comparison.isGap(seq.getCharAt(column - 1))) { /* * returning null allows the colour scheme to provide gap colour diff --git a/test/jalview/ext/rbvi/chimera/AtomSpecModelTest.java b/test/jalview/ext/rbvi/chimera/AtomSpecModelTest.java index c9e1cad..63d5e4e 100644 --- a/test/jalview/ext/rbvi/chimera/AtomSpecModelTest.java +++ b/test/jalview/ext/rbvi/chimera/AtomSpecModelTest.java @@ -29,6 +29,11 @@ public class AtomSpecModelTest assertEquals(model.getAtomSpec(), "#0:1-4.B,5-9.C|#1:2-5.A,8.A,5-10.B"); model.addRange(0, 3, 10, "C"); // subsumes 5-9 assertEquals(model.getAtomSpec(), "#0:1-4.B,3-10.C|#1:2-5.A,8.A,5-10.B"); + model.addRange(5, 25, 35, " "); // empty chain code - e.g. from homology + // modelling + assertEquals(model.getAtomSpec(), + "#0:1-4.B,3-10.C|#1:2-5.A,8.A,5-10.B|#5:25-35."); + } } diff --git a/test/jalview/renderer/seqfeatures/FeatureColourFinderTest.java b/test/jalview/renderer/seqfeatures/FeatureColourFinderTest.java index 7fd7abc..f6dfed6 100644 --- a/test/jalview/renderer/seqfeatures/FeatureColourFinderTest.java +++ b/test/jalview/renderer/seqfeatures/FeatureColourFinderTest.java @@ -2,6 +2,7 @@ package jalview.renderer.seqfeatures; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertFalse; +import static org.testng.Assert.assertNotEquals; import static org.testng.Assert.assertNull; import static org.testng.Assert.assertTrue; @@ -285,6 +286,28 @@ public class FeatureColourFinderTest } @Test(groups = "Functional") + public void testFindFeatureAtEnd() + { + /* + * terminal residue feature + */ + seq.addSequenceFeature(new SequenceFeature("PDBRESNUM", "pdb res 1", + seq.getEnd(), seq.getEnd(), Float.NaN, "1seq.pdb")); + fr.setColour("PDBRESNUM", new FeatureColour(Color.red)); + fr.featuresAdded(); + av.setShowSequenceFeatures(true); + + /* + * final column should have PDBRESNUM feature, the others not + */ + Color c = finder.findFeatureColour(Color.blue, seq, + seq.getLength() - 2); + assertNotEquals(c, Color.red); + c = finder.findFeatureColour(Color.blue, seq, seq.getLength() - 1); + assertEquals(c, Color.red); + } + + @Test(groups = "Functional") public void testFindFeatureColour_graduatedFeatureColour() { seq.addSequenceFeature(new SequenceFeature("kd", "hydrophobicity", 2,