Merge remote-tracking branch 'origin/bug/JAL-2282' into develop
authorkiramt <k.mourao@dundee.ac.uk>
Fri, 4 Nov 2016 16:44:59 +0000 (16:44 +0000)
committerkiramt <k.mourao@dundee.ac.uk>
Fri, 4 Nov 2016 16:44:59 +0000 (16:44 +0000)
src/MCview/PDBChain.java
src/jalview/analysis/AlignSeq.java
src/jalview/structure/StructureSelectionManager.java
src/jalview/util/Comparison.java
src/jalview/util/Platform.java
src/jalview/ws/sifts/SiftsClient.java
test/jalview/util/ComparisonTest.java

index 7774dac..34f09c8 100755 (executable)
@@ -31,6 +31,7 @@ import jalview.schemes.ColourSchemeI;
 import jalview.schemes.ResidueProperties;
 import jalview.structure.StructureImportSettings;
 import jalview.structure.StructureMapping;
+import jalview.util.Comparison;
 
 import java.awt.Color;
 import java.util.List;
@@ -146,7 +147,9 @@ public class PDBChain
         pdbpos++;
       }
 
-      if (as.astr1.charAt(i) == as.astr2.charAt(i))
+      boolean sameResidue = Comparison.compareChars(as.astr1.charAt(i),
+              as.astr2.charAt(i), false);
+      if (sameResidue)
       {
         if (pdbpos >= residues.size())
         {
index 3ad3188..f7e8f2e 100755 (executable)
@@ -620,7 +620,10 @@ public class AlignSeq
       {
         if ((i + (j * len)) < astr1.length())
         {
-          if (astr1.charAt(i + (j * len)) == astr2.charAt(i + (j * len))
+          boolean sameChar = Comparison.compareChars(
+                  astr1.charAt(i + (j * len)), astr2.charAt(i + (j * len)),
+                  false);
+          if (sameChar
                   && !jalview.util.Comparison.isGap(astr1.charAt(i
                           + (j * len))))
           {
index 7e691be..cad2303 100644 (file)
@@ -391,7 +391,7 @@ public class StructureSelectionManager
         registerPDBFile(pdb.getId().trim(), pdbFile);
       }
       // if PDBId is unavailable then skip SIFTS mapping execution path
-      isMapUsingSIFTs = pdb.isPPDBIdAvailable();
+      isMapUsingSIFTs = isMapUsingSIFTs && pdb.isPPDBIdAvailable();
 
     } catch (Exception ex)
     {
index 0beb45b..5269d4f 100644 (file)
@@ -415,4 +415,35 @@ public class Comparison
             .size()]);
     return isNucleotide(oneDArray);
   }
+
+  /**
+   * Compares two chars either case sensitively or case insensitively depending
+   * on the caseSensitive flag
+   * 
+   * @param c1
+   *          first char
+   * @param c2
+   *          second char to compare with
+   * @param caseSensitive
+   *          if true comparison will be case sensitive otherwise its not
+   * @return
+   */
+  public static boolean compareChars(char c1, char c2, boolean caseSensitive)
+  {
+    boolean sameCase = (Character.isUpperCase(c1) && Character
+            .isUpperCase(c2))
+            || (Character.isLowerCase(c1) && Character.isLowerCase(c2));
+    if (sameCase)
+    {
+      return c1 == c2;
+    }
+    else if (caseSensitive)
+    {
+      return false;
+    }
+    else
+    {
+      return Character.toUpperCase(c1) == Character.toUpperCase(c2);
+    }
+  }
 }
index 3fb384f..9df2060 100644 (file)
@@ -91,6 +91,13 @@ public class Platform
   {
     if (isAMac())
     {
+      /*
+       * answer false for right mouse button
+       */
+      if (e.isPopupTrigger())
+      {
+        return false;
+      }
       return (Toolkit.getDefaultToolkit().getMenuShortcutKeyMask() & e
               .getModifiers()) != 0;
       // could we use e.isMetaDown() here?
index 83af0e0..2afcfe4 100644 (file)
@@ -29,6 +29,7 @@ import jalview.datamodel.SequenceI;
 import jalview.io.StructureFile;
 import jalview.schemes.ResidueProperties;
 import jalview.structure.StructureMapping;
+import jalview.util.Comparison;
 import jalview.util.DBRefUtils;
 import jalview.util.Format;
 import jalview.xml.binding.sifts.Entry;
@@ -1004,8 +1005,10 @@ public class SiftsClient implements SiftsClientI
         {
           if ((i + (j * len)) < seqRes.length())
           {
-            if (seqRes.charAt(i + (j * len)) == strRes
-                    .charAt(i + (j * len))
+            boolean sameChar = Comparison.compareChars(
+                    seqRes.charAt(i + (j * len)),
+                    strRes.charAt(i + (j * len)), false);
+            if (sameChar
                     && !jalview.util.Comparison.isGap(seqRes.charAt(i
                             + (j * len))))
             {
index 9aab66c..bce34d4 100644 (file)
@@ -188,4 +188,16 @@ public class ComparisonTest
     assertTrue(Comparison.isNucleotideSequence("a A-g.GcCtTuU", true));
     assertFalse(Comparison.isNucleotideSequence("a A-g.GcCtTuU", false));
   }
+
+  @Test(groups = { "Functional" })
+  public void compareCharsTest()
+  {
+    assertTrue(Comparison.compareChars('a', 'a', false));
+    assertTrue(Comparison.compareChars('a', 'a', true));
+    assertTrue(Comparison.compareChars('A', 'a', false));
+    assertTrue(Comparison.compareChars('a', 'A', false));
+
+    assertFalse(Comparison.compareChars('a', 'A', true));
+    assertFalse(Comparison.compareChars('A', 'a', true));
+  }
 }