- if (fr != null)
- fr.featuresAdded();
-
- loadingFromArchive = false;
- }
- else {
- // this is a foreign pdb file that jalview doesn't know about - add it to the dataset
- // and try to find a home - either on a matching sequence or as a new sequence.
- String pdbcontent = viewer.getData("/" + (modelnum + 1) + ".1",
- "PDB");
- // parse pdb file into a chain, etc.
- // locate best match for pdb in associated views and add mapping to
- // ssm
- modelsloaded=true;
- }
- }
- }
- if (modelsloaded)
- {
- ssm.addStructureViewerListener(this);
- jmolpopup.updateComputedMenus();
- }
- }
-
- public void sendConsoleEcho(String strEcho)
- {
- if (scriptWindow != null)
- scriptWindow.sendConsoleEcho(strEcho);
- }
-
- public void sendConsoleMessage(String strStatus)
- {
- if (scriptWindow != null)
- scriptWindow.sendConsoleMessage(strStatus);
- }
-
- public void notifyScriptTermination(String strStatus, int msWalltime)
- {
- if (scriptWindow != null)
- scriptWindow.notifyScriptTermination(strStatus, msWalltime);
- }
-
- public void handlePopupMenu(int x, int y)
- {
- jmolpopup.show(x, y);
- }
-
- public void notifyNewPickingModeMeasurement(int iatom, String strMeasure)
- {
- notifyAtomPicked(iatom, strMeasure, null);
- }
-
- public void notifyAtomPicked(int atomIndex, String strInfo, String strData)
- {
- if (strData != null)
- {
- Cache.log.info("Non null pick data string: " + strData
- + " (other info: '" + strInfo + "' pos " + atomIndex + ")");
- }
- /*
- Matcher matcher = pattern.matcher(strInfo);
- matcher.find();
-
- matcher.group(1);
- String resnum = new String(matcher.group(2));
- String chainId = matcher.group(3);
-
- String picked = resnum;
-
-
- if (chainId != null)
- picked += (":" + chainId.substring(1, chainId.length()));
-*/
- int chainSeparator = strInfo.indexOf(":");
- int p=0;
- if (chainSeparator == -1)
- chainSeparator = strInfo.indexOf(".");
-
- String picked = strInfo.substring(strInfo.indexOf("]") + 1,
- chainSeparator);
- String mdlString="";
- if ((p=strInfo.indexOf(":")) > -1)
- picked += strInfo.substring(p + 1, strInfo
- .indexOf("."));
-
- if ((p=strInfo.indexOf("/"))> -1)
- {
- mdlString += strInfo.substring(p, strInfo.indexOf(" #"));
- }
- picked = "((" + picked + ".CA" + mdlString+")|(" + picked + ".P" + mdlString+"))";
- jmolHistory(false);
- if (!atomsPicked.contains(picked))
- {
- // TODO: re-instate chain ID separator dependent labelling for both applet and application
-// if (chainId != null)
- viewer.evalString("select " + picked + ";label %n %r:%c");
-// else
-// viewer.evalString("select " + picked + ";label %n %r");
- atomsPicked.addElement(picked);
- }
- else
- {
- viewer.evalString("select " + picked + ";label off");
- atomsPicked.removeElement(picked);
- }
- jmolHistory(true);
- if (scriptWindow != null)
- {
- scriptWindow.sendConsoleMessage(strInfo);
- scriptWindow.sendConsoleMessage("\n");
- }
- }
-
- public void notifyAtomHovered(int atomIndex, String strInfo, String data)
- {
- if (data != null)
- {
- Cache.log.info("Non null hover data string: " + data
- + " (other info: '" + strInfo + "' pos " + atomIndex + ")");
- }
- mouseOverStructure(atomIndex, strInfo);