- String[] modelFileNames = null;
-
- // ////////////////////////////////
- // /StructureListener
- public String[] getPdbFile()
- {
- if (modelFileNames == null)
- {
- String mset[] = new String[viewer.getModelCount()];
- for (int i = 0; i < mset.length; i++)
- {
- mset[i] = viewer.getModelFileName(i);
- }
- modelFileNames = mset;
- }
- return modelFileNames;
- }
-
- String lastMessage;
-
- // jmol/ssm only
- public void mouseOverStructure(int atomIndex, String strInfo)
- {
- int pdbResNum;
- int mdlSep = strInfo.indexOf("/");
- int chainSeparator = strInfo.indexOf(":"), chainSeparator1 = -1;
-
- if (chainSeparator == -1)
- {
- chainSeparator = strInfo.indexOf(".");
- if (mdlSep > -1 && mdlSep < chainSeparator)
- {
- chainSeparator1 = chainSeparator;
- chainSeparator = mdlSep;
- }
- }
- pdbResNum = Integer.parseInt(strInfo.substring(
- strInfo.indexOf("]") + 1, chainSeparator));
-
- String chainId;
-
- if (strInfo.indexOf(":") > -1)
- chainId = strInfo.substring(strInfo.indexOf(":") + 1, strInfo
- .indexOf("."));
- else
- {
- chainId = " ";
- }
-
- String pdbfilename = pdbentry.getFile();
- if (mdlSep > -1)
- {
- if (chainSeparator1 == -1)
- {
- chainSeparator1 = strInfo.indexOf(".", mdlSep);
- }
- String mdlId = (chainSeparator1 > -1) ? strInfo.substring(mdlSep + 1,
- chainSeparator1) : strInfo.substring(mdlSep + 1);
- try
- {
- // recover PDB filename for the model hovered over.
- pdbfilename = viewer
- .getModelFileName(new Integer(mdlId).intValue() - 1);
- } catch (Exception e)
- {
- }
- ;
- }
- if (lastMessage == null || !lastMessage.equals(strInfo))
- ssm.mouseOverStructure(pdbResNum, chainId, pdbfilename);
-
- lastMessage = strInfo;
- }
-
- StringBuffer resetLastRes = new StringBuffer();
-
- StringBuffer eval = new StringBuffer();
-
- // jmol/ssm only
- public void highlightAtom(int atomIndex, int pdbResNum, String chain,
- String pdbfile)
- {
- int mdlNum = 1+getModelNum(pdbfile);
- if (mdlNum==0)
- {
- return;
- }
-
- jmolHistory(false);
- // if (!pdbfile.equals(pdbentry.getFile()))
- // return;
- if (resetLastRes.length() > 0)
- {
- viewer.evalStringQuiet(resetLastRes.toString());
- }
-
- eval.setLength(0);
- eval.append("select " + pdbResNum); // +modelNum
-
- resetLastRes.setLength(0);
- resetLastRes.append("select " + pdbResNum); // +modelNum
-
- if (!chain.equals(" "))
- {
- eval.append(":");
- resetLastRes.append(":");
- eval.append(chain);
- resetLastRes.append(chain);
- }
- // if (mdlNum != 0)
- {
- eval.append(" /" + (mdlNum));
- resetLastRes.append("/" + (mdlNum));
- }
- eval.append(";wireframe 100;" + eval.toString() + " and not hetero;");
-
- resetLastRes.append(";wireframe 0;" + resetLastRes.toString()
- + " and not hetero; spacefill 0;");
-
- eval.append("spacefill 200;select none");
-
- viewer.evalStringQuiet(eval.toString());
- jmolHistory(true);
-
- }
-