}
}
String[] selcom = new String[files.length];
+ int nmatched=0;
// generate select statements to select regions to superimpose structures
{
for (int pdbfnum = 0; pdbfnum < files.length; pdbfnum++)
{
if (matched[r])
{
-
+ if (pdbfnum==0) {
+ nmatched++;
+ }
if (lpos != commonrpositions[pdbfnum][r] - 1)
{
// discontinuity
}
}
}
-
+ // TODO: consider bailing if nmatched less than 4 because superposition not well defined.
+ // TODO: refactor superposable position search (above) from jmol selection construction (below)
for (int pdbfnum = 0; pdbfnum < files.length; pdbfnum++)
{
if (pdbfnum == refStructure)
// /StructureListener
public synchronized String[] getPdbFile()
{
+ if (viewer==null)
+ {
+ return new String[0];
+ }
if (modelFileNames == null)
{
return false;
}
+ // incremented every time a load notification is successfully handled - lightweight mechanism for other threads to detect when they can start referrring to new structures.
+ private long loadNotifiesHandled=0;
+ public long getLoadNotifiesHandled()
+ {
+ return loadNotifiesHandled;
+ }
public void notifyFileLoaded(String fullPathName, String fileName2,
String modelName, String errorMsg, int modelParts)
{
fr.featuresAdded();
}
refreshGUI();
+ loadNotifiesHandled++;
}
}