addingStructures = true; // already files loaded.
for (int c = 0; c < filesInViewer.length; c++)
{
- if (filesInViewer[c].equals(file))
+ if (Platform.pathEquals(filesInViewer[c], file))
{
file = null;
break;
import jalview.io.StructureFile;
import jalview.util.MappingUtils;
import jalview.util.MessageManager;
+import jalview.util.Platform;
import jalview.ws.sifts.SiftsClient;
import jalview.ws.sifts.SiftsException;
import jalview.ws.sifts.SiftsSettings;
StringBuilder sb = new StringBuilder(64);
for (StructureMapping sm : mappings)
{
- if (sm.pdbfile.equals(pdbfile) && seqs.contains(sm.sequence))
+ if (Platform.pathEquals(sm.pdbfile, pdbfile)
+ && seqs.contains(sm.sequence))
{
sb.append(sm.mappingDetails);
sb.append(NEWLINE);
*/
package jalview.util;
-import java.awt.Toolkit;
import java.awt.event.MouseEvent;
/**
}
return e.isControlDown();
}
+
+ /**
+ * A (case sensitive) file path comparator that ignores the difference between /
+ * and \
+ *
+ * @param path1
+ * @param path2
+ * @return
+ */
+ public static boolean pathEquals(String path1, String path2)
+ {
+ if (path1 == null)
+ {
+ return path2 == null;
+ }
+ if (path2 == null)
+ {
+ return false;
+ }
+ String p1 = path1.replace('\\', '/');
+ String p2 = path2.replace('\\', '/');
+ return p1.equals(p2);
+ }
}
assertTrue(Platform.isControlDown(new MouseEvent(b, 0, 0L, mods, 0, 0,
0, 0, clickCount, isPopupTrigger, buttonNo), mac));
}
+
+ @Test(groups = "Functional")
+ public void testPathEquals()
+ {
+ assertTrue(Platform.pathEquals(null, null));
+ assertFalse(Platform.pathEquals(null, "apath"));
+ assertFalse(Platform.pathEquals("apath", null));
+ assertFalse(Platform.pathEquals("apath", "APATH"));
+ assertTrue(Platform.pathEquals("apath", "apath"));
+ assertTrue(Platform.pathEquals("apath/a/b", "apath\\a\\b"));
+ }
}