From: <ha...@us...> - 2013-08-29 15:52:06
|
Revision: 18629 http://sourceforge.net/p/jmol/code/18629 Author: hansonr Date: 2013-08-29 15:52:02 +0000 (Thu, 29 Aug 2013) Log Message: ----------- ___JmolVersion="13.3.5_dev_2013.08.29" new feature: show NMR taps into NMRDB directly -- for now, application only Modified Paths: -------------- trunk/Jmol/src/org/jmol/util/Escape.java trunk/Jmol/src/org/jmol/viewer/StateCreator.java trunk/Jmol/src/org/openscience/jmol/app/jmolpanel/StatusListener.java Modified: trunk/Jmol/src/org/jmol/util/Escape.java =================================================================== --- trunk/Jmol/src/org/jmol/util/Escape.java 2013-08-29 10:35:11 UTC (rev 18628) +++ trunk/Jmol/src/org/jmol/util/Escape.java 2013-08-29 15:52:02 UTC (rev 18629) @@ -1035,7 +1035,7 @@ String s = Parser.getQuotedStringNext(data, next); if (s == null) return null; - v.addLast(s); + v.addLast(TextFormat.simpleReplace(s, "\\\"", "\"")); while (next[0] < data.length() && data.charAt(next[0]) != '"') next[0]++; } Modified: trunk/Jmol/src/org/jmol/viewer/StateCreator.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/StateCreator.java 2013-08-29 10:35:11 UTC (rev 18628) +++ trunk/Jmol/src/org/jmol/viewer/StateCreator.java 2013-08-29 15:52:02 UTC (rev 18629) @@ -108,6 +108,8 @@ this.viewer = viewer; } + public static String SIMULATION_PROTOCOL = "http://SIMULATION/"; + public Object getWrappedState(String fileName, String[] scripts, boolean isImage, boolean asJmolZip, int width, int height) { @@ -2125,9 +2127,21 @@ if (disableSend) sm.setSyncDriver(StatusManager.SYNC_DISABLE); if (script.indexOf("Mouse: ") != 0) { + if (script.startsWith("Peaks: [")) { + // JSpecView simulation + String[] list = Escape.unescapeStringArray(script.substring(7)); + JmolList<String> peaks = new JmolList<String>(); + for (int i = 0; i < list.length; i++) + peaks.addLast(list[i]); + viewer.getModelSet().setModelAuxiliaryInfo( + viewer.getCurrentModelIndex(), "jdxAtomSelect_1HNMR", peaks); + return; + } if (script.startsWith("Select: ")) { // from JSpecView peak pick String filename = Parser.getQuotedAttribute(script, "file"); + if (filename.startsWith(SIMULATION_PROTOCOL + "MOL=")) + filename = null; // from our sending; don't reload String modelID = Parser.getQuotedAttribute(script, "model"); String baseModel = Parser.getQuotedAttribute(script, "baseModel"); String atoms = Parser.getQuotedAttribute(script, "atoms"); @@ -2135,10 +2149,9 @@ String script2 = Parser.getQuotedAttribute(script, "script"); boolean isNIH = (modelID != null && modelID.startsWith("$")); if (isNIH) - filename = (modelID.substring(1).equals( - viewer.getParameter("_smilesstring")) ? null : modelID); - String id = (isNIH || modelID == null ? null : (filename == null ? "" - : filename + "#") + filename = (String) viewer.setLoadFormat(modelID, '$', false); + String id = (modelID == null ? null : (filename == null ? "" : filename + + "#") + modelID); if ("".equals(baseModel)) id += ".baseModel"; @@ -2147,6 +2160,7 @@ return; // file was found, or no file was indicated, but not this model -- ignore script = (modelIndex == -1 && filename != null ? script = "load " + Escape.eS(filename) : ""); + script = TextFormat.simpleReplace(script, SIMULATION_PROTOCOL, ""); if (id != null) script += ";model " + Escape.eS(id); if (atoms != null) Modified: trunk/Jmol/src/org/openscience/jmol/app/jmolpanel/StatusListener.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/jmolpanel/StatusListener.java 2013-08-29 10:35:11 UTC (rev 18628) +++ trunk/Jmol/src/org/openscience/jmol/app/jmolpanel/StatusListener.java 2013-08-29 15:52:02 UTC (rev 18629) @@ -376,6 +376,7 @@ jSpecViewFrame.setLocation(jmol.frame.getLocation().x + 10, jmol.frame .getLocation().y + 100); jSpecViewFrame.register("Jmol", this); + viewer.setBooleanProperty("_jspecview", true); if (peaks.length() == 0) { doLoadCheck = true; } @@ -397,9 +398,12 @@ if (data == null) return; peaks = "hidden true; load CHECK MOL " - + Escape.eS("id='~" + model + "';" + data) + ";hidden false"; + + Escape.eS("id='~" + model + "';" + data) + ";hidden false #SYNC_PEAKS"; } } + if (!jSpecViewFrame.isVisible() && peaks.contains("<PeakData")) + return; + if (!jSpecViewFrame.isVisible()) { // && !peaks.toLowerCase().startsWith("hidden")) { jSpecViewFrame.awaken(true); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |