import jalview.datamodel.PDBEntry;
import jalview.datamodel.SequenceI;
import jalview.io.AppletFormatAdapter;
+import jalview.io.StructureFile;
import jalview.schemes.ColourSchemeI;
import jalview.schemes.ResidueProperties;
import jalview.structure.AtomSpec;
import org.jmol.api.JmolViewer;
import org.jmol.c.CBK;
import org.jmol.script.T;
-import org.jmol.viewer.JC;
import org.jmol.viewer.Viewer;
public abstract class JalviewJmolBinding extends AAStructureBindingModel
implements JmolStatusListener, JmolSelectionListener,
ComponentListener
{
- /*
- * state flag used to check if the Jmol viewer's paint method can be called
- */
- private boolean finishedInit = false;
-
boolean allChainsSelected = false;
/*
public void closeViewer()
{
- viewer.acm.setModeMouse(JC.MOUSE_NONE);
// remove listeners for all structures in viewer
getSsm().removeStructureViewerListener(this, this.getPdbFile());
- // and shut down jmol
- viewer.evalStringQuiet("zap");
- viewer.setJmolStatusListener(null);
+ viewer.dispose();
lastCommand = null;
viewer = null;
releaseUIResources();
public void superposeStructures(AlignmentI alignment, int refStructure,
ColumnSelection hiddenCols)
{
- superposeStructures(new AlignmentI[]
- { alignment }, new int[]
- { refStructure }, new ColumnSelection[]
- { hiddenCols });
+ superposeStructures(new AlignmentI[] { alignment },
+ new int[] { refStructure },
+ new ColumnSelection[] { hiddenCols });
}
/**
public void superposeStructures(AlignmentI[] _alignment,
int[] _refStructure, ColumnSelection[] _hiddenCols)
{
+ while (viewer.isScriptExecuting())
+ {
+ try
+ {
+ Thread.sleep(10);
+ } catch (InterruptedException i)
+ {
+ }
+ ;
+ }
String[] files = getPdbFile();
-
if (!waitForFileLoad(files))
{
return;
String nSeconds = " ";
if (files.length > 10)
{
- nSeconds = " 0.00001 ";
+ nSeconds = " 0.005 ";
}
else
{
}
// see JAL-1345 - should really automatically turn off the animation for
// large numbers of structures, but Jmol doesn't seem to allow that.
- nSeconds = " ";
+ // nSeconds = " ";
// union of all aligned positions are collected together.
for (int a = 0; a < _alignment.length; a++)
{
}
if (selectioncom.length() > 0)
{
- System.out.println("Select regions:\n" + selectioncom.toString());
+ // System.out.println("Select regions:\n" + selectioncom.toString());
evalStateCommand("select *; cartoons off; backbone; select ("
+ selectioncom.toString() + "); cartoons; ");
// selcom.append("; ribbons; ");
String cmdString = command.toString();
- System.out
-.println("Superimpose command(s):\n" + cmdString);
+ // System.out.println("Superimpose command(s):\n" + cmdString);
evalStateCommand(cmdString);
}
{
selectioncom.setLength(selectioncom.length() - 1);
}
- System.out.println("Select regions:\n" + selectioncom.toString());
+ // System.out.println("Select regions:\n" + selectioncom.toString());
evalStateCommand("select *; cartoons off; backbone; select ("
+ selectioncom.toString() + "); cartoons; ");
// evalStateCommand("select *; backbone; select "+selcom.toString()+"; cartoons; center "+selcom.toString());
}
AlignmentI alignment = alignmentv.getAlignment();
- for (jalview.structure.StructureMappingcommandSet cpdbbyseq : getColourBySequenceCommands(files, sr, fr, alignment))
+ for (jalview.structure.StructureMappingcommandSet cpdbbyseq : getColourBySequenceCommands(
+ files, sr, fr, alignment))
{
for (String cbyseq : cpdbbyseq.commands)
{
String[] files, SequenceRenderer sr, FeatureRenderer fr,
AlignmentI alignment)
{
- return JmolCommands
- .getColourBySequenceCommand(getSsm(), files, getSequence(), sr,
- fr,
- alignment);
+ return JmolCommands.getColourBySequenceCommand(getSsm(), files,
+ getSequence(), sr, fr, alignment);
}
/**
System.out.println("JMOL CREATE IMAGE");
}
+ @Override
public String createImage(String fileName, String type,
Object textOrBytes, int quality)
{
return null;
}
+ @Override
public String eval(String strEval)
{
// System.out.println(strEval);
// End StructureListener
// //////////////////////////
+ @Override
public float[][] functionXY(String functionName, int x, int y)
{
return null;
}
+ @Override
public float[][][] functionXYZ(String functionName, int nx, int ny, int nz)
{
// TODO Auto-generated method stub
}
// TODO: verify atomIndex is selecting correct model.
// return new Color(viewer.getAtomArgb(atomIndex)); Jmol 12.2.4
- int colour = viewer.ms.at[atomIndex]
- .atomPropertyInt(T.color);
+ int colour = viewer.ms.at[atomIndex].atomPropertyInt(T.color);
return new Color(colour);
}
// applet path with docroot - discard as format won't match pdbfile
mset[0] = m;
}
+ _modelFileNameMap[0] = 0; // filename index for first model is always 0.
}
int j = 1;
for (int i = 1; i < mset.length; i++)
{
if (atoms != null)
{
+ if (resetLastRes.length() > 0)
+ {
+ viewer.evalStringQuiet(resetLastRes.toString());
+ resetLastRes.setLength(0);
+ }
for (AtomSpec atom : atoms)
{
highlightAtom(atom.getAtomIndex(), atom.getPdbResNum(),
}
jmolHistory(false);
- // if (!pdbfile.equals(pdbentry.getFile()))
- // return;
- if (resetLastRes.length() > 0)
- {
- viewer.evalStringQuiet(resetLastRes.toString());
- }
StringBuilder cmd = new StringBuilder(64);
cmd.append("select " + pdbResNum); // +modelNum
- resetLastRes.setLength(0);
resetLastRes.append("select " + pdbResNum); // +modelNum
cmd.append(":");
pdbfilename = modelFileNames[_mp];
if (pdbfilename == null)
{
- pdbfilename = new File(
- viewer.ms.getModelFileName(mnumber))
+ pdbfilename = new File(viewer.ms.getModelFileName(mnumber))
.getAbsolutePath();
}
String mdlString = "";
if ((p = strInfo.indexOf(":")) > -1)
{
- picked += strInfo.substring(p + 1, strInfo.indexOf("."));
+ picked += strInfo.substring(p, strInfo.indexOf("."));
}
if ((p = strInfo.indexOf("/")) > -1)
{
String fileName = modelfilenames[modelnum];
boolean foundEntry = false;
- MCview.PDBfile pdb = null;
+ StructureFile pdb = null;
String pdbfile = null;
// model was probably loaded inline - so check the pdb file hashcode
if (loadedInline)
pdbfile = viewer.getData("" + (1 + _modelFileNameMap[modelnum])
+ ".0", "PDB");
}
- // search pdbentries and sequences to find correct pdbentry for this
- // model
+ // search pdbentries and sequences to find correct pdbentry for this
+ // model
for (int pe = 0; pe < getPdbCount(); pe++)
{
boolean matches = false;
{
pdb = getSsm().setMapping(getSequence()[pe], getChains()[pe],
pdbfile, AppletFormatAdapter.PASTE);
- getPdbEntry(modelnum).setFile("INLINE" + pdb.id);
+ getPdbEntry(modelnum).setFile("INLINE" + pdb.getId());
matches = true;
foundEntry = true;
}
if (matches)
{
// add an entry for every chain in the model
- for (int i = 0; i < pdb.chains.size(); i++)
+ for (int i = 0; i < pdb.getChains().size(); i++)
{
- String chid = new String(pdb.id + ":"
- + pdb.chains.elementAt(i).id);
+ String chid = new String(pdb.getId() + ":"
+ + pdb.getChains().elementAt(i).id);
chainFile.put(chid, fileName);
chainNames.addElement(chid);
}
// }
if (!isLoadingFromArchive())
{
- viewer.evalStringQuiet("model 0; select backbone;restrict;cartoon;wireframe off;spacefill off");
+ viewer.evalStringQuiet("model *; select backbone;restrict;cartoon;wireframe off;spacefill off");
}
// register ourselves as a listener and notify the gui that it needs to
// update itself.
*/
public abstract void sendConsoleMessage(String strStatus);
+ @Override
public void setCallbackFunction(String callbackType,
String callbackFunction)
{
return null;
}
- public boolean isFinishedInit()
- {
- return finishedInit;
- }
-
- public void setFinishedInit(boolean finishedInit)
- {
- this.finishedInit = finishedInit;
- }
-
/**
*
*/
showConsole(false);
}
}
-