import jalview.structure.StructureListener;
import jalview.structure.StructureMapping;
import jalview.structure.StructureSelectionManager;
+import jalview.structures.models.SequenceStructureBindingModel;
import java.awt.Color;
import java.awt.Container;
import org.jmol.constant.EnumCallback;
import org.jmol.popup.JmolPopup;
-public abstract class JalviewJmolBinding implements StructureListener,
+public abstract class JalviewJmolBinding extends SequenceStructureBindingModel implements StructureListener,
JmolStatusListener, SequenceStructureBinding,
JmolSelectionListener, ComponentListener,
StructureSelectionManagerProvider
{
/**
- * set if Jmol state is being restored from some source - instructs binding
- * not to apply default display style when structure set is updated for first
- * time.
- */
- private boolean loadingFromArchive = false;
-
- /**
- * second flag to indicate if the jmol viewer should ignore sequence colouring
- * events from the structure manager because the GUI is still setting up
- */
- private boolean loadingFinished = true;
-
- /**
* state flag used to check if the Jmol viewer's paint method can be called
*/
private boolean finishedInit = false;
String[] files = getPdbFile();
// check to see if we are still waiting for Jmol files
- long starttime=System.currentTimeMillis();
- boolean waiting=true;
- do {
- waiting=false;
- for (String file:files)
+ long starttime = System.currentTimeMillis();
+ boolean waiting = true;
+ do
+ {
+ waiting = false;
+ for (String file : files)
{
- try {
+ try
+ {
// HACK - in Jalview 2.8 this call may not be threadsafe so we catch
// every possible exception
StructureMapping[] sm = ssm.getMapping(file);
}
}
// we wait around for a reasonable time before we give up
- } while (waiting && System.currentTimeMillis()<(10000+1000*files.length+starttime));
+ } while (waiting
+ && System.currentTimeMillis() < (10000 + 1000 * files.length + starttime));
if (waiting)
{
- System.err.println("RUNTIME PROBLEM: Jmol seems to be taking a long time to process all the structures.");
+ System.err
+ .println("RUNTIME PROBLEM: Jmol seems to be taking a long time to process all the structures.");
return;
}
StringBuffer selectioncom = new StringBuffer();
// Jmol callback has completed.
if (mapping == null || mapping.length < 1)
{
- throw new Error("Implementation error - Jmol seems to be still working on getting its data - report at http://issues.jalview.org/browse/JAL-1016");
+ throw new Error(
+ "Implementation error - Jmol seems to be still working on getting its data - report at http://issues.jalview.org/browse/JAL-1016");
}
int lastPos = -1;
for (int s = 0; s < sequence[pdbfnum].length; s++)
}
}
}
-
+
// TODO: consider bailing if nmatched less than 4 because superposition
// not
// well defined.
{
selectioncom.append("|");
}
- } else {
+ }
+ else
+ {
selcom[pdbfnum] = null;
}
}
}
for (int pdbfnum = 0; pdbfnum < files.length; pdbfnum++)
{
- if (pdbfnum == refStructure || selcom[pdbfnum]==null || selcom[refStructure]==null)
+ if (pdbfnum == refStructure || selcom[pdbfnum] == null
+ || selcom[refStructure] == null)
{
continue;
}
command.append(chainNames[pdbfnum]);
command.append(") against reference (");
command.append(chainNames[refStructure]);
- command.append(")\";\ncompare "+nSeconds);
+ command.append(")\";\ncompare " + nSeconds);
command.append("{");
command.append(1 + pdbfnum);
command.append(".1} {");
public void colourBySequence(boolean showFeatures,
jalview.api.AlignmentViewPanel alignmentv)
{
- if (!colourBySequence || !loadingFinished)
+ if (!colourBySequence || !isLoadingFinished())
return;
if (ssm == null)
{
showConsole(false);
}
- public void setLoadingFromArchive(boolean loadingFromArchive)
- {
- this.loadingFromArchive = loadingFromArchive;
- }
-
- /**
- *
- * @return true if Jmol is still restoring state or loading is still going on (see setFinsihedLoadingFromArchive)
- */
- public boolean isLoadingFromArchive()
- {
- return loadingFromArchive && !loadingFinished;
- }
-
- /**
- * modify flag which controls if sequence colouring events are honoured by the binding.
- * Should be true for normal operation
- * @param finishedLoading
- */
- public void setFinishedLoadingFromArchive(boolean finishedLoading)
- {
- loadingFinished = finishedLoading;
- }
-
public void setBackgroundColour(java.awt.Color col)
{
jmolHistory(false);