From: <ha...@us...> - 2013-10-18 06:44:55
|
Revision: 18821 http://sourceforge.net/p/jmol/code/18821 Author: hansonr Date: 2013-10-18 06:44:49 +0000 (Fri, 18 Oct 2013) Log Message: ----------- JavaScript version working with dialogs; no menu; no simulation. Modified Paths: -------------- trunk/Jmol/src/com/sparshui/server/GestureServer.java trunk/Jmol/src/com/sparshui/server/Group.java trunk/Jmol/src/javajs/swing/JComboBox.java trunk/Jmol/src/javajs/swing/JComponent.java trunk/Jmol/src/javajs/swing/JDialog.java trunk/Jmol/src/javajs/swing/JScrollPane.java trunk/Jmol/src/javajs/swing/JTable.java trunk/Jmol/src/javajs/util/List.java trunk/Jmol/srcjs/java/util/ArrayList.js Modified: trunk/Jmol/src/com/sparshui/server/GestureServer.java =================================================================== --- trunk/Jmol/src/com/sparshui/server/GestureServer.java 2013-10-18 05:03:43 UTC (rev 18820) +++ trunk/Jmol/src/com/sparshui/server/GestureServer.java 2013-10-18 06:44:49 UTC (rev 18821) @@ -276,7 +276,7 @@ } if (clients_to_remove != null) for (int i = 0; i < clients_to_remove.size(); i++) { - main._clients.remove(clients_to_remove.get(i)); + main._clients.removeObj(clients_to_remove.get(i)); Logger.info("[GestureServer] Client Disconnected"); } return isClaimed; Modified: trunk/Jmol/src/com/sparshui/server/Group.java =================================================================== --- trunk/Jmol/src/com/sparshui/server/Group.java 2013-10-18 05:03:43 UTC (rev 18820) +++ trunk/Jmol/src/com/sparshui/server/Group.java 2013-10-18 06:44:49 UTC (rev 18821) @@ -104,7 +104,7 @@ // moved to after processing. if (state == TouchState.DEATH) - _touchPoints.remove(changedPoint); + _touchPoints.removeObj(changedPoint); try { _clientProtocol.processEvents(_id, events); Modified: trunk/Jmol/src/javajs/swing/JComboBox.java =================================================================== --- trunk/Jmol/src/javajs/swing/JComboBox.java 2013-10-18 05:03:43 UTC (rev 18820) +++ trunk/Jmol/src/javajs/swing/JComboBox.java 2013-10-18 06:44:49 UTC (rev 18821) @@ -35,7 +35,7 @@ @Override public String toHTML() { SB sb = new SB(); - sb.append("\n<select id='JCmB" + id + "' class='JComboBox' onchange='Jmol.Dialog.click(this)'>\n"); + sb.append("\n<select id='" + id + "' class='JComboBox' onchange='Jmol.Dialog.click(this)'>\n"); for (int i = 0; i < info.length; i++) sb.append("\n<option class='JComboBox_option'" + (i == selectedIndex ? "selected":"") + ">" + info[i] + "</option>"); sb.append("\n</select>\n"); Modified: trunk/Jmol/src/javajs/swing/JComponent.java =================================================================== --- trunk/Jmol/src/javajs/swing/JComponent.java 2013-10-18 05:03:43 UTC (rev 18820) +++ trunk/Jmol/src/javajs/swing/JComponent.java 2013-10-18 06:44:49 UTC (rev 18821) @@ -117,4 +117,9 @@ + (height > 0 ?"height:" + height + "px;" : defaultPercent > 0 ? "height:"+defaultPercent+"%;" : "") + (bgcolor == null ? "" : "background-color:" + JSVColorUtil.colorToCssString(bgcolor) + ";"); } + + public void repaint() { + // for inheritance + } + } Modified: trunk/Jmol/src/javajs/swing/JDialog.java =================================================================== --- trunk/Jmol/src/javajs/swing/JDialog.java 2013-10-18 05:03:43 UTC (rev 18820) +++ trunk/Jmol/src/javajs/swing/JDialog.java 2013-10-18 06:44:49 UTC (rev 18821) @@ -58,9 +58,9 @@ setDialog(); } + @Override public void repaint() { - setDialog(); - // TODO not sure this is necessary. +// setDialog(); } /** @@ -92,7 +92,7 @@ renderHeight = defaultHeight; int h = renderHeight - headerHeight; SB sb = new SB(); - sb.append("\n<div id='" + id + "' class='JDialog' style='" + getCSSstyle(0) + "position:relative;top:0px;left:0px;reize:both;'>\n"); + sb.append("\n<div id='" + id + "' class='JDialog' style='" + getCSSstyle(0) + "z-index:9000;position:relative;top:0px;left:0px;reize:both;'>\n"); sb.append("\n<div id='" + id + "_title' class='JDialogTitle' style='width:100%;height:25px;padding:5px 5px 5px 5px;height:"+headerHeight+"px'>" +"<span style='text-align:center;'>" + title + "</span><span style='position:absolute;text-align:right;right:1px;'>" + "<input type=button id='" + id + "_closer' onclick='Jmol.Dialog.windowClosing(this)' value='x' /></span></div>\n"); Modified: trunk/Jmol/src/javajs/swing/JScrollPane.java =================================================================== --- trunk/Jmol/src/javajs/swing/JScrollPane.java 2013-10-18 05:03:43 UTC (rev 18820) +++ trunk/Jmol/src/javajs/swing/JScrollPane.java 2013-10-18 06:44:49 UTC (rev 18821) @@ -19,7 +19,7 @@ sb.append("\n</div>\n"); return sb.toString(); } - + public void setMinimumSize(Dimension dimension) { // TODO Auto-generated method stub Modified: trunk/Jmol/src/javajs/swing/JTable.java =================================================================== --- trunk/Jmol/src/javajs/swing/JTable.java 2013-10-18 05:03:43 UTC (rev 18820) +++ trunk/Jmol/src/javajs/swing/JTable.java 2013-10-18 06:44:49 UTC (rev 18821) @@ -58,6 +58,8 @@ * It will be the function of the JavaScript on the * page to do with selectionListener what is desired. * + * @param listener + * */ public void addListSelectionListener(Object listener) { selectionListener = listener; @@ -70,7 +72,7 @@ @Override public String toHTML() { SB sb = new SB(); - sb.append("\n<table id='" + id + "_table' class='JTable' style='width:100%;height:100%'>"); + sb.append("\n<table id='" + id + "_table' class='JTable' >"); tableModel.toHTML(sb, id, bsSelectedRows); sb.append("\n</table>\n"); return sb.toString(); Modified: trunk/Jmol/src/javajs/util/List.java =================================================================== --- trunk/Jmol/src/javajs/util/List.java 2013-10-18 05:03:43 UTC (rev 18820) +++ trunk/Jmol/src/javajs/util/List.java 2013-10-18 06:44:49 UTC (rev 18821) @@ -62,6 +62,16 @@ } } + /** + * @j2sIgnore + * + */ + @Override + @Deprecated + public boolean remove(Object v) { + throw new NullPointerException("use removeObj(obj), not remove(obj) in List for JavaScript compatibility"); + } + public boolean removeObj(Object v) { /** * no overloading of remove(Object) in JavaScript Modified: trunk/Jmol/srcjs/java/util/ArrayList.js =================================================================== --- trunk/Jmol/srcjs/java/util/ArrayList.js 2013-10-18 05:03:43 UTC (rev 18820) +++ trunk/Jmol/srcjs/java/util/ArrayList.js 2013-10-18 06:44:49 UTC (rev 18821) @@ -334,7 +334,12 @@ return result; },"~N"); -//$_M(c$, "removeObject") +$_M(c$, "removeObject", function(o) { + var i = this.indexOf(o); + if (i < 0)return null; + return this.remove(i); +}, "~O"); + $_V(c$,"removeRange", function(start,end){ if(start>=0&&start<=end&&end<=this.size()){ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2013-11-21 20:03:30
|
Revision: 18993 http://sourceforge.net/p/jmol/code/18993 Author: hansonr Date: 2013-11-21 20:03:23 +0000 (Thu, 21 Nov 2013) Log Message: ----------- ___JmolVersion="13.3.9_dev_2013.11.21" cleaning up Google Closure Compiler catches Modified Paths: -------------- trunk/Jmol/appletfiles/jsmol_nojars.zip trunk/Jmol/appletweb/jsmol.zip trunk/Jmol/src/org/jmol/popup/GenericPopup.java trunk/Jmol/src/org/jmol/viewer/FileManager.java trunk/Jmol/src/org/jmol/viewer/Viewer.java trunk/Jmol/srcjs/com/jcraft/jzlib/InfBlocks.java Removed Paths: ------------- trunk/Jmol/org.jmol.adapter.smarter.TestSmarterJmolAdapter.junit.html Modified: trunk/Jmol/appletfiles/jsmol_nojars.zip =================================================================== (Binary files differ) Modified: trunk/Jmol/appletweb/jsmol.zip =================================================================== (Binary files differ) Deleted: trunk/Jmol/org.jmol.adapter.smarter.TestSmarterJmolAdapter.junit.html =================================================================== --- trunk/Jmol/org.jmol.adapter.smarter.TestSmarterJmolAdapter.junit.html 2013-11-21 18:53:08 UTC (rev 18992) +++ trunk/Jmol/org.jmol.adapter.smarter.TestSmarterJmolAdapter.junit.html 2013-11-21 20:03:23 UTC (rev 18993) @@ -1,109 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" -"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head> -<meta http-equiv="content-type" content="text/html; charset=utf-8"/> -<title>org.jmol.adapter.smarter.TestSmarterJmolAdapter</title> -<style text="text/css"> -div.powered { - position:absolute; - right:0; - top:0; - margin:1em; -} -a.alaa { - display:block; - white-space:nowrap; - width:1em; - overflow-x:visible; - text-decoration:none; - padding-left:32px; - margin:2em; - color:navy; - cursor:pointer; - cursor:hand; -} -span.alaa-icon { - display:block; - position:absolute; - width:16px; - height:16px; - margin:2px 8px 0 -24px; - background-color:rgb(57,61,254); -} -</style> -</head> -<body> -<!-- A Link An Application (ALAA) --> -<div class="powered">Powered by <a href="http://java2script.org/">Java2Script</a></div> -<a class="alaa" title="Launch org.jmol.adapter.smarter.TestSmarterJmolAdapter" href="javascript:if(a='org.jmol.adapter.smarter.TestSmarterJmolAdapter@bin',window['ClazzLoader']!=null)$u$(a);else{var d=document,t='onreadystatechange',x=d.createElement('SCRIPT'),f=function(){var s=this.readyState;if(s==null||s=='loaded'||s=='complete'){$u$(a);}};x.src='../../eclipse/plugins/net.sf.j2s.lib_2.0.0/j2slib/j2slib.z.js';(typeof x[t]=='undefined')?x.onload=f:x[t]=f;d.getElementsByTagName('HEAD')[0].appendChild(x);void(0);}"><span class="alaa-icon"></span>org.jmol.adapter.smarter.TestSmarterJmolAdapter</a> - -<script type="text/javascript"> -window["j2s.lib"] = { - /*base : "http://archive.java2script.org/",*/ - base : "../../eclipse/plugins/net.sf.j2s.lib_2.0.0/", - /*alias : "2.0.0",*/ - alias : "j2slib", - version : "20081203", - /*forward : true,*/ - mode : "dailybuild", - onload : function () { - ClazzLoader.setPrimaryFolder ("bin"); - ClazzLoader.loadClass ("junit.textui.TestRunner", function () { - ClazzLoader.loadClass ("org.jmol.adapter.smarter.TestSmarterJmolAdapter", function () { - junit.textui.TestRunner.run (org.jmol.adapter.smarter.TestSmarterJmolAdapter.suite ()); - }); - }); - } -}; - -// mozilla.addon.js -// Following script will make J2SLib compatiable with Java2Script addon -function generateScriptCallback () { - return function () { - var s = this.readyState; - if (s == null || s == "loaded" || s == "complete") { - if (window["ClazzLoader"] != null) { - window["j2s.lib"].onload (this); - } - this.onreadystatechange = null; - this.onload = null; - } - }; -}; -function loadJ2SLibZJS (path, cb) { - var sxr = document.createElement ("SCRIPT"); - sxr.src = path; - sxr.type = "text/javascript"; - if (cb) { - var t = "onreadystatechange"; - var xhrCallback = generateScriptCallback (); - if (typeof sxr[t] == "undefined") { - sxr.onload = xhrCallback; - } else { - sxr[t] = xhrCallback; - } - } - document.getElementsByTagName ("HEAD")[0].appendChild (sxr); -}; -if (navigator.userAgent.toLowerCase ().indexOf ("gecko") != -1) { - loadJ2SLibZJS("chrome://java2script/content/j2slib.js"); - window.setTimeout (function () { - if (window["j2s.addon.loaded"]) return; // Loaded by Firefox addon! - var o = window["j2s.lib"]; - if (o.base == null) { - o.base = "http://archive.java2script.org/"; - } - o.j2sBase = o.base + (o.alias ? o.alias : o.version) + "/"; - loadJ2SLibZJS(o.j2sBase + "j2slib.z.js", o.onload); - }, 300); // with 0.3 second lag! 0.3 is enough for chrome://*.js to be loaded. -} else { - var o = window["j2s.lib"]; - if (o.base == null) { - o.base = "http://archive.java2script.org/"; - } - o.j2sBase = o.base + (o.alias ? o.alias : o.version) + "/"; - loadJ2SLibZJS(o.j2sBase + "j2slib.z.js", o.onload); -}</script> -</body> -</html> \ No newline at end of file Modified: trunk/Jmol/src/org/jmol/popup/GenericPopup.java =================================================================== --- trunk/Jmol/src/org/jmol/popup/GenericPopup.java 2013-11-21 18:53:08 UTC (rev 18992) +++ trunk/Jmol/src/org/jmol/popup/GenericPopup.java 2013-11-21 20:03:23 UTC (rev 18993) @@ -48,7 +48,7 @@ JmolAbstractMenu { //list is saved in http://www.stolaf.edu/academics/chemapps/jmol/docs/misc - protected final static boolean dumpList = false; + //protected final static boolean dumpList = false; protected final static int UPDATE_NEVER = -1; private final static int UPDATE_ALL = 0; private final static int UPDATE_CONFIG = 1; @@ -533,12 +533,12 @@ if (item.indexOf("SPECIAL") >= 0) Special.addLast(newMenu); - if (dumpList) { - String str = item.endsWith("Menu") ? "----" : id + "." + item + "\t" - + label + "\t" + fixScript(id + "." + item, script); - str = "addMenuItem('\t" + str + "\t')"; - Logger.info(str); - } +// if (dumpList) { +// String str = item.endsWith("Menu") ? "----" : id + "." + item + "\t" +// + label + "\t" + fixScript(id + "." + item, script); +// str = "addMenuItem('\t" + str + "\t')"; +// Logger.info(str); +// } } } Modified: trunk/Jmol/src/org/jmol/viewer/FileManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/FileManager.java 2013-11-21 18:53:08 UTC (rev 18992) +++ trunk/Jmol/src/org/jmol/viewer/FileManager.java 2013-11-21 20:03:23 UTC (rev 18993) @@ -857,23 +857,22 @@ * for the image to load, and it is single-threaded * * @j2sNative - * - * return; + * + * fullPathName = null; break; */ - {} - + { + if (apiPlatform.getImageWidth(image) < 1) { + fullPathName = "invalid or missing image " + fullPathName; + image = null; + } + break; + } } catch (Exception e) { System.out.println(e.toString()); fullPathName = e.toString() + " opening 4 " + fullPathName; image = null; break; } - if (apiPlatform.getImageWidth(image) < 1) { - fullPathName = "invalid or missing image " + fullPathName; - image = null; - break; - } - break; } viewer.loadImageData(image, fullPathName, echoName, null); } Modified: trunk/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Viewer.java 2013-11-21 18:53:08 UTC (rev 18992) +++ trunk/Jmol/src/org/jmol/viewer/Viewer.java 2013-11-21 20:03:23 UTC (rev 18993) @@ -9045,6 +9045,8 @@ void loadImageData(Object image, String nameOrError, String echoName, ScriptContext sc) { + if (nameOrError == null) + return; if (image == null) Logger.info(nameOrError); if (echoName == null) { Modified: trunk/Jmol/srcjs/com/jcraft/jzlib/InfBlocks.java =================================================================== --- trunk/Jmol/srcjs/com/jcraft/jzlib/InfBlocks.java 2013-11-21 18:53:08 UTC (rev 18992) +++ trunk/Jmol/srcjs/com/jcraft/jzlib/InfBlocks.java 2013-11-21 20:03:23 UTC (rev 18993) @@ -128,8 +128,8 @@ } void reset(){ - if(mode==BTREE || mode==DTREE){ - } + //if(mode==BTREE || mode==DTREE){ + //} if(mode==CODES){ codes.free(z); } @@ -400,9 +400,9 @@ k+=8; } - if(tb[0]==-1){ - //System.err.println("null..."); - } + //if(tb[0]==-1){ + // //System.err.println("null..."); + //} t=hufts[(tb[0]+(b&inflate_mask[t]))*3+1]; c=hufts[(tb[0]+(b&inflate_mask[t]))*3+2]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2014-03-10 22:37:07
|
Revision: 19442 http://sourceforge.net/p/jmol/code/19442 Author: hansonr Date: 2014-03-10 22:36:59 +0000 (Mon, 10 Mar 2014) Log Message: ----------- ___JmolVersion="14.1.12_2014.03.09" bug fix: msCIF reader not accepting normalized commensurate Fourier vectors bug fix: JSmol/HTML MSIE local installation AJAX working again (still no binary files) Modified Paths: -------------- trunk/Jmol/appletweb/jsmol.zip trunk/Jmol/jars/JSpecView.jar trunk/Jmol/src/org/jmol/adapter/readers/cif/MSReader.java trunk/Jmol/src/org/jmol/script/ScriptCompiler.java trunk/Jmol/src/org/jmol/script/ScriptEval.java trunk/Jmol/src/org/jmol/script/T.java trunk/Jmol/src/org/jmol/scriptext/CmdExt.java trunk/Jmol/src/org/jmol/viewer/Jmol.properties trunk/Jmol/tools/build-i18n.xml Modified: trunk/Jmol/appletweb/jsmol.zip =================================================================== (Binary files differ) Modified: trunk/Jmol/jars/JSpecView.jar =================================================================== (Binary files differ) Modified: trunk/Jmol/src/org/jmol/adapter/readers/cif/MSReader.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/readers/cif/MSReader.java 2014-03-10 20:26:09 UTC (rev 19441) +++ trunk/Jmol/src/org/jmol/adapter/readers/cif/MSReader.java 2014-03-10 22:36:59 UTC (rev 19442) @@ -467,9 +467,8 @@ // test n * q for (int i = 0; i < modDim; i++) if (qs[i] != null) { - float fn = pt.dot(qs[i]) / qs[i].dot(qs[i]); - int ifn = Math.round(fn); - if (Math.abs(fn - ifn) < 0.001f) { + int ifn = approxInt(pt.dot(qs[i]) / qs[i].dot(qs[i])); + if (ifn != 0) { p = new double[modDim]; p[i] = ifn; return p; @@ -506,9 +505,42 @@ return p; } } + + // test dropped rational component + // eg: + // q = 0 0.33333 0.166666 + // and f = 0 0.33333 0.666666 + + pt = toP3(p); + for (int i = 0; i < modDim; i++) + if (qs[i] != null) { + p3 = qs[i]; + int ifn = 0; + if (pt.x != 0) + ifn = approxInt(pt.x / p3.x); + if (pt.y != 0) + ifn = Math.max(approxInt(pt.y / p3.y), ifn); + if (ifn == 0 && pt.z != 0) + ifn = Math.max(approxInt(pt.z / p3.z), ifn); + if (ifn == 0) + continue; + if (p3.x != 0 && approxInt(10 + p3.x * ifn - pt.x) == 0 + || p3.y != 0 && approxInt(10 + p3.y * ifn - pt.y) == 0 + || p3.z != 0 && approxInt(10 + p3.z * ifn - pt.z) == 0) + continue; + + p = new double[modDim]; + p[i] = ifn; + return p; + } return null; } + private int approxInt(float fn) { + int ifn = Math.round(fn); + return (Math.abs(fn - ifn) < 0.001f ? ifn : 0); + } + private P3 toP3(double[] x) { return P3.new3((float) x[0], (float) x[1], (float) x[2]); } Modified: trunk/Jmol/src/org/jmol/script/ScriptCompiler.java =================================================================== --- trunk/Jmol/src/org/jmol/script/ScriptCompiler.java 2014-03-10 20:26:09 UTC (rev 19441) +++ trunk/Jmol/src/org/jmol/script/ScriptCompiler.java 2014-03-10 22:36:59 UTC (rev 19442) @@ -1071,7 +1071,7 @@ case T.model: case T.smiles: case T.trajectory: - case T.sync: + case T.async: addTokenToPrefix(token); break; default: Modified: trunk/Jmol/src/org/jmol/script/ScriptEval.java =================================================================== --- trunk/Jmol/src/org/jmol/script/ScriptEval.java 2014-03-10 20:26:09 UTC (rev 19441) +++ trunk/Jmol/src/org/jmol/script/ScriptEval.java 2014-03-10 22:36:59 UTC (rev 19442) @@ -3958,6 +3958,7 @@ boolean isInline = false; boolean isSmiles = false; boolean isData = false; + boolean isAsync = false; BS bsModels; int i = (tokAt(0) == T.data ? 0 : 1); boolean appendNew = viewer.getBoolean(T.appendnew); @@ -4093,7 +4094,8 @@ isSmiles = true; i++; break; - case T.sync: + case T.async: + isAsync = true; htParams.put("async", Boolean.TRUE); i++; break; @@ -4561,7 +4563,7 @@ loadScript = new SB().append("{\n var ") .append(filename.substring(1)).append(" = ").append(PT.esc(s)) .append(";\n ").appendSB(loadScript); - } else if (filename.startsWith("?") && viewer.isJS) { + } else if (viewer.isJS && (isAsync || filename.startsWith("?"))) { localName = null; filename = loadFileAsync("LOAD" + (isAppend ? "_APPEND_" : "_"), filename, i, !isAppend); @@ -5915,7 +5917,7 @@ int pc = 0; int lineEnd = 0; int pcEnd = 0; - int i = 2; + int i = 1; String localPath = null; String remotePath = null; String scriptPath = null; @@ -5927,15 +5929,21 @@ viewer.jsEval(paramAsStr(1)); return; } + boolean isAsync = false; if (filename == null && theScript == null) { - tok = tokAt(1); + tok = tokAt(i); if (tok != T.string) error(ERROR_filenameExpected); - filename = paramAsStr(1); + filename = paramAsStr(i); + + if (filename.equalsIgnoreCase("async")) { + isAsync = true; + filename = paramAsStr(++i); + } if (filename.equalsIgnoreCase("applet")) { // script APPLET x "....." - String appID = paramAsStr(2); - theScript = parameterExpressionString(3, 0); // had _script variable?? + String appID = paramAsStr(++i); + theScript = parameterExpressionString(++i, 0); // had _script variable?? checkLast(iToken); if (chk) return; @@ -5950,26 +5958,26 @@ tok = tokAt(slen - 1); doStep = (tok == T.step); if (filename.equalsIgnoreCase("inline")) { - theScript = parameterExpressionString(2, (doStep ? slen - 1 : 0)); - i = iToken + 1; + theScript = parameterExpressionString(++i, (doStep ? slen - 1 : 0)); + i = iToken; } while (filename.equalsIgnoreCase("localPath") || filename.equalsIgnoreCase("remotePath") || filename.equalsIgnoreCase("scriptPath")) { if (filename.equalsIgnoreCase("localPath")) - localPath = paramAsStr(i++); + localPath = paramAsStr(++i); else if (filename.equalsIgnoreCase("scriptPath")) - scriptPath = paramAsStr(i++); + scriptPath = paramAsStr(++i); else - remotePath = paramAsStr(i++); - filename = paramAsStr(i++); + remotePath = paramAsStr(++i); + filename = paramAsStr(++i); } - if (filename.startsWith("?") && viewer.isJS) { + if (viewer.isJS && (isAsync || filename.startsWith("?"))) { filename = loadFileAsync("SCRIPT_", filename, i, true); // on first pass a ScriptInterruption will be thrown; // on the second pass we will have the file name, which will be cache://local_n__m } - if ((tok = tokAt(i)) == T.check) { + if ((tok = tokAt(++i)) == T.check) { isCheck = true; tok = tokAt(++i); } Modified: trunk/Jmol/src/org/jmol/script/T.java =================================================================== --- trunk/Jmol/src/org/jmol/script/T.java 2014-03-10 20:26:09 UTC (rev 19441) +++ trunk/Jmol/src/org/jmol/script/T.java 2014-03-10 22:36:59 UTC (rev 19442) @@ -1100,6 +1100,7 @@ public final static int aromatic = misc | 20 | predefinedset; public final static int arrow = misc | 22; public final static int as = misc | 24; // for LOAD and ISOSURFACE only + public final static int async = misc | 25; public final static int atomicorbital = misc | 26; public final static int auto = misc | 28; public final static int axis = misc | 30; Modified: trunk/Jmol/src/org/jmol/scriptext/CmdExt.java =================================================================== --- trunk/Jmol/src/org/jmol/scriptext/CmdExt.java 2014-03-10 20:26:09 UTC (rev 19441) +++ trunk/Jmol/src/org/jmol/scriptext/CmdExt.java 2014-03-10 22:36:59 UTC (rev 19442) @@ -417,7 +417,7 @@ setShapeProperty(JC.SHAPE_STICKS, "type", Integer.valueOf(Edge.BOND_COVALENT_MASK)); } - showString(GT.i(GT._("{0} struts mp.added"), n)); + showString(GT.i(GT._("{0} struts added"), n)); } return; case T.surface: Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2014-03-10 20:26:09 UTC (rev 19441) +++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2014-03-10 22:36:59 UTC (rev 19442) @@ -12,8 +12,20 @@ # important for the JavaScript version of Jmol. -___JmolVersion="14.1.12_2014.03.09" +___JmolVersion="14.1.12_2014.03.10" +bug fix: some translations not being carried out. + +new feature: load ASYNC .... +new feature: script ASYNC .... + -- load and script ASYNC start a new asynchronous thread to load the file + and then continue after that. + -- JSmol/HTML5 only; others ignore + +bug fix: msCIF reader not accepting normalized commensurate Fourier vectors + +bug fix: JSmol/HTML MSIE local installation AJAX working again (still no binary files) + new feature: Mol3D reader new feature: show CHEMICAL STDINCHIKEY Modified: trunk/Jmol/tools/build-i18n.xml =================================================================== --- trunk/Jmol/tools/build-i18n.xml 2014-03-10 20:26:09 UTC (rev 19441) +++ trunk/Jmol/tools/build-i18n.xml 2014-03-10 22:36:59 UTC (rev 19442) @@ -46,7 +46,7 @@ <!-- Properties that can be useful to change the build --> <property name="do.create.pot" value="false" /> <property name="do.create.po" value="false" /> - + <!-- Filesets for the rest of the build --> <fileset id="Jmol.java.files" dir="${basedir}/${src.dir}"> <include name="**/*.java"/> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2014-09-06 21:45:48
|
Revision: 19980 http://sourceforge.net/p/jmol/code/19980 Author: hansonr Date: 2014-09-06 21:45:41 +0000 (Sat, 06 Sep 2014) Log Message: ----------- Modified Paths: -------------- trunk/Jmol/src/org/jmol/symmetry/SymmetryDesc.java trunk/Jmol/srcjs/js/package.js Modified: trunk/Jmol/src/org/jmol/symmetry/SymmetryDesc.java =================================================================== --- trunk/Jmol/src/org/jmol/symmetry/SymmetryDesc.java 2014-09-06 20:46:05 UTC (rev 19979) +++ trunk/Jmol/src/org/jmol/symmetry/SymmetryDesc.java 2014-09-06 21:45:41 UTC (rev 19980) @@ -189,9 +189,7 @@ // axis, and the // symop(sym,{0 0 0}) function will return the overall translation. - T3[] info = Measure.computeHelicalAxis( - pta00, - pt0, + T3[] info = Measure.computeHelicalAxis(pta00, pt0, Quat.getQuaternionFrame(pt0, pt1, pt2).div( Quat.getQuaternionFrame(pta00, pta01, pta02))); // new T3[] { pt_a_prime, n, r, P3.new3(theta, pitch, residuesPerTurn), pt_b_prime }; @@ -473,8 +471,6 @@ // check for drawing - SB draw1 = new SB(); - if (id != null) { String drawid; @@ -483,7 +479,8 @@ // delete previous elements of this user-settable ID - draw1 = new SB(); + SB draw1 = new SB(); + draw1 .append( ("// " + op.xyzOriginal + "|" + xyzNew + "|" + info1).replace( @@ -504,7 +501,7 @@ color = "red"; ang = ang1; - float scale = 1.0f; + float scale = 1f; vtemp.setT(ax1); // draw the lines associated with a rotation @@ -563,7 +560,7 @@ .append(Escape.eP(pt0)).append(" color red"); } draw1.append(drawid) - .append("rotRotArrow arrow width 0.10 scale " + scale + " arc ") + .append("rotRotArrow arrow width 0.10 scale " + PT.escF(scale) + " arc ") .append(Escape.eP(ptr)).append(Escape.eP(ptemp)); ptemp.setT(haveInversion ? ptinv : pta00); if (ptemp.distance(pt0) < 0.1f) @@ -720,7 +717,7 @@ .append(Escape.eP(vt3)).append("*0.9} color purple"); draw1.append("\n}\n"); cmds = draw1.toString(); - draw1 = null; + draw1 = null; drawid = null; } if (trans == null) Modified: trunk/Jmol/srcjs/js/package.js =================================================================== --- trunk/Jmol/srcjs/js/package.js 2014-09-06 20:46:05 UTC (rev 19979) +++ trunk/Jmol/srcjs/js/package.js 2014-09-06 21:45:41 UTC (rev 19980) @@ -19,7 +19,7 @@ if (Jmol._debugCode) return; - var base = ClazzLoader.fastGetJ2SLibBase() + "core/"; + var base = ClazzLoader.getJ2SLibBase() + "core/"; // note - we don't need to list ALL the classes -- only the ones that are entry points. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2015-06-08 04:24:53
|
Revision: 20559 http://sourceforge.net/p/jmol/code/20559 Author: hansonr Date: 2015-06-08 04:24:50 +0000 (Mon, 08 Jun 2015) Log Message: ----------- allows for font change in console and also in FRANK using FONT FRANK .... Modified Paths: -------------- trunk/Jmol/src/javajs/util/PT.java trunk/Jmol/src/org/jmol/adapter/readers/pymol/PyMOLReader.java trunk/Jmol/src/org/jmol/console/JmolConsole.java trunk/Jmol/src/org/jmol/modelset/ModelLoader.java trunk/Jmol/src/org/jmol/modelset/ModelSet.java trunk/Jmol/src/org/jmol/modelset/Text.java trunk/Jmol/src/org/jmol/render/EchoRenderer.java trunk/Jmol/src/org/jmol/render/FontLineShapeRenderer.java trunk/Jmol/src/org/jmol/render/FrankRenderer.java trunk/Jmol/src/org/jmol/render/LabelsRenderer.java trunk/Jmol/src/org/jmol/render/RepaintManager.java trunk/Jmol/src/org/jmol/render/TextRenderer.java trunk/Jmol/src/org/jmol/script/ScriptEval.java trunk/Jmol/src/org/jmol/script/ScriptExpr.java trunk/Jmol/src/org/jmol/script/T.java trunk/Jmol/src/org/jmol/scriptext/MathExt.java trunk/Jmol/src/org/jmol/shape/FontLineShape.java trunk/Jmol/src/org/jmol/shape/Frank.java trunk/Jmol/src/org/jmol/shape/Labels.java trunk/Jmol/src/org/jmol/shape/MeshCollection.java trunk/Jmol/src/org/jmol/shape/Shape.java trunk/Jmol/src/org/jmol/viewer/JC.java trunk/Jmol/src/org/jmol/viewer/Jmol.properties trunk/Jmol/src/org/jmol/viewer/PropertyManager.java trunk/Jmol/src/org/jmol/viewer/StateCreator.java trunk/Jmol/src/org/jmol/viewer/StatusManager.java trunk/Jmol/src/org/jmol/viewer/Viewer.java trunk/Jmol/src/org/openscience/jmol/app/HistoryFile.java trunk/Jmol/src/org/openscience/jmol/app/jmolpanel/GuiMap.java trunk/Jmol/src/org/openscience/jmol/app/jmolpanel/JmolPanel.java trunk/Jmol/src/org/openscience/jmol/app/jmolpanel/PreferencesDialog.java trunk/Jmol/src/org/openscience/jmol/app/jmolpanel/StatusListener.java trunk/Jmol/src/org/openscience/jmol/app/jmolpanel/console/AppConsole.java Added Paths: ----------- trunk/Jmol/unused/ trunk/Jmol/unused/FontShape.java Removed Paths: ------------- trunk/Jmol/src/org/jmol/shape/FontShape.java trunk/Jmol/src/unused/ Modified: trunk/Jmol/src/javajs/util/PT.java =================================================================== --- trunk/Jmol/src/javajs/util/PT.java 2015-06-07 01:01:28 UTC (rev 20558) +++ trunk/Jmol/src/javajs/util/PT.java 2015-06-08 04:24:50 UTC (rev 20559) @@ -723,6 +723,8 @@ } public static String trim(String str, String chars) { + if (str == null || str.length() == 0) + return str; if (chars.length() == 0) return str.trim(); int len = str.length(); Modified: trunk/Jmol/src/org/jmol/adapter/readers/pymol/PyMOLReader.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/readers/pymol/PyMOLReader.java 2015-06-07 01:01:28 UTC (rev 20558) +++ trunk/Jmol/src/org/jmol/adapter/readers/pymol/PyMOLReader.java 2015-06-08 04:24:50 UTC (rev 20559) @@ -225,7 +225,7 @@ String[] scenes = new String[sceneOrder.size()]; for (int i = scenes.length; --i >= 0;) scenes[i] = (String) sceneOrder.get(i); - vwr.getModelSetAuxiliaryInfo().put("scenes", scenes); + vwr.ms.msInfo.put("scenes", scenes); } vwr.ms.setTrajectoryBs(BSUtil.newBitSet2(baseModelIndex, Modified: trunk/Jmol/src/org/jmol/console/JmolConsole.java =================================================================== --- trunk/Jmol/src/org/jmol/console/JmolConsole.java 2015-06-07 01:01:28 UTC (rev 20558) +++ trunk/Jmol/src/org/jmol/console/JmolConsole.java 2015-06-08 04:24:50 UTC (rev 20559) @@ -184,6 +184,7 @@ */ @Override public void windowActivated(WindowEvent we) { + updateFontSize(); } @Override @@ -239,6 +240,11 @@ return new KeyJMenuItem(key, getLabel(key), null); } + public void updateFontSize() { + // TODO + + } + } Modified: trunk/Jmol/src/org/jmol/modelset/ModelLoader.java =================================================================== --- trunk/Jmol/src/org/jmol/modelset/ModelLoader.java 2015-06-07 01:01:28 UTC (rev 20558) +++ trunk/Jmol/src/org/jmol/modelset/ModelLoader.java 2015-06-08 04:24:50 UTC (rev 20559) @@ -729,11 +729,6 @@ sNum = "" + ms.getModelNumber(i); filenumber = 1; } else { - // //if only one file, just return the integer file number - // if (modelnumber == 1 - // && (i + 1 == modelCount || models[i + 1].modelNumber / 1000000 != filenumber)) - // sNum = filenumber + ""; - // else sNum = filenumber + "." + modelnumber; } ms.modelNumbersForAtomLabel[i] = sNum; @@ -1170,14 +1165,13 @@ distinguishAndPropagateGroup(i, chainOf[i], group3Of[i], seqcodes[i], firstAtomIndexes[i], (i == groupCount - 1 ? ms.ac : firstAtomIndexes[i + 1]) - 1); - if (group3Lists != null) - if (ms.msInfo != null) { - ms.msInfo.put("group3Lists", group3Lists); - ms.msInfo.put("group3Counts", group3Counts); - for (int i = 0; i < group3Counts.length; i++) - if (group3Counts[i] == null) - group3Counts[i] = new int[0]; - } + if (group3Lists != null) { + ms.msInfo.put("group3Lists", group3Lists); + ms.msInfo.put("group3Counts", group3Counts); + for (int i = 0; i < group3Counts.length; i++) + if (group3Counts[i] == null) + group3Counts[i] = new int[0]; + } } private void distinguishAndPropagateGroup(int groupIndex, Chain chain, Modified: trunk/Jmol/src/org/jmol/modelset/ModelSet.java =================================================================== --- trunk/Jmol/src/org/jmol/modelset/ModelSet.java 2015-06-07 01:01:28 UTC (rev 20558) +++ trunk/Jmol/src/org/jmol/modelset/ModelSet.java 2015-06-08 04:24:50 UTC (rev 20559) @@ -637,12 +637,15 @@ public BS deleteModels(BS bsModels) { // full models are deleted for any model containing the specified atoms - moleculeCount = 0; includeAllRelatedFrames(bsModels); int nModelsDeleted = BSUtil.cardinalityOf(bsModels); if (nModelsDeleted == 0) return null; + + moleculeCount = 0; + if (msInfo != null) + msInfo.remove("models"); // clear references to this frame if it is a dataFrame @@ -894,7 +897,9 @@ modelNames = mergeModelSet.modelNames; modelNumbers = mergeModelSet.modelNumbers; frameTitles = mergeModelSet.frameTitles; - mergeAtomArrays(mergeModelSet); + if (msInfo != null) + msInfo.remove("models"); + mergeAtomArrays(mergeModelSet); } public SymmetryInterface getUnitCell(int modelIndex) { @@ -3327,15 +3332,27 @@ return (fname == null && !haveFile ? -2 : errCode); } + /** + * Retrieve the main modelset info Hashtable (or a new non-null Hashtable) + * with an up-to-date "models" key. + * + * @param bsModels + * @return Map + */ public Map<String, Object> getAuxiliaryInfo(BS bsModels) { Map<String, Object> info = msInfo; if (info == null) - return null; - Lst<Map<String, Object>> minfo = new Lst<Map<String, Object>>(); - for (int i = 0; i < mc; ++i) - if (bsModels == null || bsModels.get(i)) - minfo.addLast(getModelAuxiliaryInfo(i)); - info.put("models", minfo); + info = new Hashtable<String, Object>(); + if (bsModels != null || !info.containsKey("models")) { + Lst<Map<String, Object>> minfo = new Lst<Map<String, Object>>(); + for (int i = 0; i < mc; ++i) + if (bsModels == null || bsModels.get(i)) { + Map<String, Object> m = getModelAuxiliaryInfo(i); + m.put("modelIndex", Integer.valueOf(i)); + minfo.addLast(m); + } + info.put("models", minfo); + } return info; } Modified: trunk/Jmol/src/org/jmol/modelset/Text.java =================================================================== --- trunk/Jmol/src/org/jmol/modelset/Text.java 2015-06-07 01:01:28 UTC (rev 20558) +++ trunk/Jmol/src/org/jmol/modelset/Text.java 2015-06-08 04:24:50 UTC (rev 20559) @@ -132,7 +132,8 @@ if (image != null) getFontMetrics(); image = null; - text = fixText(text); + if (text != null && text.length() == 0) + text = null; if (this.text != null && this.text.equals(text)) return; this.text = text; @@ -179,15 +180,6 @@ setFont(vwr.gdata.getFont3DScaled(font, scale), true); } - String fixText(String text) { - if (text == null || text.length() == 0) - return null; - int pt; - while ((pt = text.indexOf("\n")) >= 0) - text = text.substring(0, pt) + "|" + text.substring(pt + 1); - return text; - } - @Override protected void recalc() { if (image != null) { @@ -205,7 +197,7 @@ } if (font == null) return; - lines = PT.split(text, "|"); + lines = PT.split(text, (text.indexOf("\n") >= 0 ? "\n" : "|")); textWidth = 0; widths = new int[lines.length]; for (int i = lines.length; --i >= 0;) @@ -277,7 +269,7 @@ boxXY[1] = movableY - yAdj; y0 = movableY - dy - descent; isAbsolute = true; - boxYoff2 = -2; // empirica fudge factor + boxYoff2 = -2; // empirical fudge factor } else { boxYoff2 = 0; } Modified: trunk/Jmol/src/org/jmol/render/EchoRenderer.java =================================================================== --- trunk/Jmol/src/org/jmol/render/EchoRenderer.java 2015-06-07 01:01:28 UTC (rev 20558) +++ trunk/Jmol/src/org/jmol/render/EchoRenderer.java 2015-06-08 04:24:50 UTC (rev 20559) @@ -43,7 +43,7 @@ imageFontScaling = vwr.imageFontScaling; boolean haveTranslucent = false; setZcutoff(); - for (Text t: echo.objects.values()) { + for (Text t : echo.objects.values()) { if (!t.visible || t.hidden) { continue; } @@ -54,10 +54,10 @@ if (t.valign == JC.ECHO_XYZ) { tm.transformPtScr(t.xyz, pt0i); t.setXYZs(pt0i.x, pt0i.y, pt0i.z, pt0i.z); - } + } if (t.movableZPercent != Integer.MAX_VALUE) { int z = vwr.tm.zValueFromPercent(t.movableZPercent % 1000); - if (t.valign == JC.ECHO_XYZ && Math.abs(t.movableZPercent)>= 1000) + if (t.valign == JC.ECHO_XYZ && Math.abs(t.movableZPercent) >= 1000) z = pt0i.z - vwr.tm.zValueFromPercent(0) + z; t.setZs(z, z); } @@ -74,10 +74,14 @@ if (t.zSlab == Integer.MIN_VALUE) t.zSlab = 1; } - TextRenderer.render(t, g3d, scalePixelsPerMicron, imageFontScaling, - false, null, xy); - if (C.renderPass2(t.bgcolix) || C.renderPass2(t.colix)) - haveTranslucent = true; + if (TextRenderer.render(t, g3d, scalePixelsPerMicron, imageFontScaling, + false, null, xy) + && t.valign == JC.ECHO_BOTTOM + && t.align == JC.TEXT_ALIGN_RIGHT) + vwr.noFrankEcho = false; + + if (C.renderPass2(t.bgcolix) || C.renderPass2(t.colix)) + haveTranslucent = true; } if (!isExport) { String frameTitle = vwr.getFrameTitle(); @@ -93,7 +97,7 @@ } private void renderFrameTitle(String frameTitle) { - vwr.gdata.setFontFid(vwr.gdata.getFontFidFS("Serif", 14 * imageFontScaling)); + vwr.gdata.setFontFid(vwr.gdata.getFontFidFS("arial", (int) (24 * imageFontScaling))); int y = (int) Math.floor(vwr.getScreenHeight() * (g3d.isAntialiased() ? 2 : 1) - 10 * imageFontScaling); int x = (int) Math.floor(5 * imageFontScaling); g3d.drawStringNoSlab(frameTitle, null, x, y, 0, (short) 0); Modified: trunk/Jmol/src/org/jmol/render/FontLineShapeRenderer.java =================================================================== --- trunk/Jmol/src/org/jmol/render/FontLineShapeRenderer.java 2015-06-07 01:01:28 UTC (rev 20558) +++ trunk/Jmol/src/org/jmol/render/FontLineShapeRenderer.java 2015-06-08 04:24:50 UTC (rev 20559) @@ -38,7 +38,7 @@ public abstract class FontLineShapeRenderer extends ShapeRenderer { - // Axes, Bbcage, Measures, Uccage, also Sticks + // Axes, Bbcage, Measures, Uccage, also Sticks, Echo, Measures, Labels protected float imageFontScaling; protected P3 tickA, tickB, tickAs, tickBs; Modified: trunk/Jmol/src/org/jmol/render/FrankRenderer.java =================================================================== --- trunk/Jmol/src/org/jmol/render/FrankRenderer.java 2015-06-07 01:01:28 UTC (rev 20558) +++ trunk/Jmol/src/org/jmol/render/FrankRenderer.java 2015-06-08 04:24:50 UTC (rev 20559) @@ -30,30 +30,34 @@ //we render Frank last just for the touch that if there are translucent //objects, then it becomes translucent. Just for fun. - + // no Frank export - + @Override protected boolean render() { Frank frank = (Frank) shape; boolean allowKeys = vwr.getBooleanProperty("allowKeyStrokes"); boolean modelKitMode = vwr.getBoolean(T.modelkitmode); - colix = (modelKitMode ? C.MAGENTA - : vwr.isSignedApplet ? (allowKeys || vwr.isJS && !vwr.isWebGL ? C.ORANGE : C.RED) : allowKeys ? C.BLUE : C.GRAY); - if (isExport || !vwr.getShowFrank()) + colix = (modelKitMode ? C.MAGENTA : vwr.isSignedApplet ? (allowKeys + || vwr.isJS && !vwr.isWebGL ? C.ORANGE : C.RED) : allowKeys ? C.BLUE + : C.GRAY); + if (isExport + || !vwr.getShowFrank() + || !g3d.setC(C.getColixTranslucent3(colix, + g3d.haveTranslucentObjects(), 0.5f))) return false; - if (!g3d.setC(C.getColixTranslucent3(colix, - g3d.haveTranslucentObjects(), 0.5f))) - return true; + if (vwr.frankOn && !vwr.noFrankEcho) + return vwr.noFrankEcho; + vwr.noFrankEcho = true; float imageFontScaling = vwr.imageFontScaling; frank.getFont(imageFontScaling); int dx = (int) (frank.frankWidth + Frank.frankMargin * imageFontScaling); int dy = frank.frankDescent; - g3d.drawStringNoSlab(frank.frankString, frank.font3d, - vwr.gdata.width - dx, vwr.gdata.height - dy, 0, (short) 0); + g3d.drawStringNoSlab(frank.frankString, frank.font3d, vwr.gdata.width - dx, + vwr.gdata.height - dy, 0, (short) 0); if (modelKitMode) { - //g3d.setColix(GData.GRAY); - g3d.fillRect(0, 0, 0, 0, dy * 2, dx * 3 / 2); + //g3d.setColix(GData.GRAY); + g3d.fillRect(0, 0, 0, 0, dy * 2, dx * 3 / 2); } return false; } Modified: trunk/Jmol/src/org/jmol/render/LabelsRenderer.java =================================================================== --- trunk/Jmol/src/org/jmol/render/LabelsRenderer.java 2015-06-07 01:01:28 UTC (rev 20558) +++ trunk/Jmol/src/org/jmol/render/LabelsRenderer.java 2015-06-08 04:24:50 UTC (rev 20559) @@ -116,8 +116,7 @@ boolean labelsFront = ((offset & JC.LABEL_ZPOS_FRONT) != 0); boolean labelsGroup = ((offset & JC.LABEL_ZPOS_GROUP) != 0); textAlign = JC.getAlignment(offset); - isAbsolute = JC.isOffsetExplicit(offset); - + isAbsolute = JC.isOffsetAbsolute(offset); pointer = JC.getPointer(offset); zSlab = atom.sZ - atom.sD / 2 - 3; if (zSlab > zCutoff) Modified: trunk/Jmol/src/org/jmol/render/RepaintManager.java =================================================================== --- trunk/Jmol/src/org/jmol/render/RepaintManager.java 2015-06-07 01:01:28 UTC (rev 20558) +++ trunk/Jmol/src/org/jmol/render/RepaintManager.java 2015-06-08 04:24:50 UTC (rev 20559) @@ -180,9 +180,10 @@ } /////////// actual rendering /////////// - + @Override - public void render(GData gdata, ModelSet modelSet, boolean isFirstPass, int[] navMinMax) { + public void render(GData gdata, ModelSet modelSet, boolean isFirstPass, + int[] navMinMax) { JmolRendererInterface g3d = (JmolRendererInterface) gdata; if (renderers == null) renderers = new ShapeRenderer[JC.SHAPE_MAX]; @@ -190,26 +191,29 @@ try { boolean logTime = vwr.getBoolean(T.showtiming); g3d.renderBackground(null); - if (isFirstPass) { + if (isFirstPass) { bsTranslucent.clearAll(); if (navMinMax != null) - g3d.renderCrossHairs(navMinMax, vwr.getScreenWidth(), vwr.getScreenHeight(), - vwr.tm.getNavigationOffset(), vwr.tm.navigationDepthPercent); + g3d.renderCrossHairs(navMinMax, vwr.getScreenWidth(), + vwr.getScreenHeight(), vwr.tm.getNavigationOffset(), + vwr.tm.navigationDepthPercent); Rectangle band = vwr.getRubberBandSelection(); - if (band != null && g3d.setC(vwr.cm.colixRubberband)) - g3d.drawRect(band.x, band.y, 0, 0, band.width, band.height); + if (band != null && g3d.setC(vwr.cm.colixRubberband)) + g3d.drawRect(band.x, band.y, 0, 0, band.width, band.height); + vwr.noFrankEcho = true; } String msg = null; for (int i = 0; i < JC.SHAPE_MAX && gdata.currentlyRendering; ++i) { Shape shape = shapeManager.getShape(i); if (shape == null) continue; - + if (logTime) { msg = "rendering " + JC.getShapeClassName(i, false); Logger.startTimer(msg); } - if((isFirstPass || bsTranslucent.get(i)) && getRenderer(i).renderShape(g3d, modelSet, shape)) + if ((isFirstPass || bsTranslucent.get(i)) + && getRenderer(i).renderShape(g3d, modelSet, shape)) bsTranslucent.set(i); if (logTime) Logger.checkTimer(msg, false); Modified: trunk/Jmol/src/org/jmol/render/TextRenderer.java =================================================================== --- trunk/Jmol/src/org/jmol/render/TextRenderer.java 2015-06-07 01:01:28 UTC (rev 20558) +++ trunk/Jmol/src/org/jmol/render/TextRenderer.java 2015-06-08 04:24:50 UTC (rev 20559) @@ -33,16 +33,16 @@ class TextRenderer { - static void render(Text text, JmolRendererInterface g3d, + static boolean render(Text text, JmolRendererInterface g3d, float scalePixelsPerMicron, float imageFontScaling, boolean isAbsolute, float[] boxXY, float[] temp) { if (text == null || text.image == null && !text.doFormatText && text.lines == null) - return; + return false; boolean showText = g3d.setC(text.colix); if (!showText && (text.image == null && (text.bgcolix == 0 || !g3d .setC(text.bgcolix)))) - return; + return false; text.setPosition(scalePixelsPerMicron, imageFontScaling, isAbsolute, boxXY); // draw the box if necessary; colix has been set if (text.image == null && text.bgcolix != 0) { @@ -51,7 +51,7 @@ + text.boxYoff2 * 2, text.z + 2, text.zSlab, (int) text.boxWidth, (int) text.boxHeight, text.fontScale, text.isLabelOrHover); if (!showText) - return; + return false; } // text colix will be opaque, but we need to render it in translucent pass // now set x and y positions for text from (new?) box position @@ -67,7 +67,7 @@ text.zSlab, text.bgcolix, (int) text.boxWidth, (int) text.boxHeight); } drawPointer(text, g3d); - return; + return true; } static void drawPointer(Text text, JmolRendererInterface g3d) { Modified: trunk/Jmol/src/org/jmol/script/ScriptEval.java =================================================================== --- trunk/Jmol/src/org/jmol/script/ScriptEval.java 2015-06-07 01:01:28 UTC (rev 20558) +++ trunk/Jmol/src/org/jmol/script/ScriptEval.java 2015-06-08 04:24:50 UTC (rev 20559) @@ -559,7 +559,7 @@ private void resumeViewer(String why) { vwr.setTainted(true); - vwr.popHoldRepaint(why); + vwr.popHoldRepaint(why + (chk ? JC.REPAINT_IGNORE : "")); vwr.queueOnHold = false; } Modified: trunk/Jmol/src/org/jmol/script/ScriptExpr.java =================================================================== --- trunk/Jmol/src/org/jmol/script/ScriptExpr.java 2015-06-07 01:01:28 UTC (rev 20558) +++ trunk/Jmol/src/org/jmol/script/ScriptExpr.java 2015-06-08 04:24:50 UTC (rev 20559) @@ -574,13 +574,19 @@ } else if (localVars == null || (v = PT.getMapValueNoCase(localVars, name)) == null && allContext) { - if (name.equals("_")) - v = (vwr.am.cmi >= 0 ? vwr.ms.getInfo(vwr.am.cmi, "auxiliaryinfo") : null); + if (name.startsWith("_")) { + v = (name.equals("_") ? vwr.ms.msInfo + : name.equals("_m") && vwr.am.cmi >= 0 ? + vwr.ms.getModelAuxiliaryInfo(vwr.am.cmi) + : null); + } if (v == null) - v = getContextVariableAsVariable(name); + v = getContextVariableAsVariable(name); + else if (ptEq == 0) + invArg(); } if (v == null) { - + if (T.tokAttr(theTok, T.identifier) && vwr.isFunction(name)) { if (!rpn.addOp(SV.newV(T.function, theToken.value))) invArg(); Modified: trunk/Jmol/src/org/jmol/script/T.java =================================================================== --- trunk/Jmol/src/org/jmol/script/T.java 2015-06-07 01:01:28 UTC (rev 20558) +++ trunk/Jmol/src/org/jmol/script/T.java 2015-06-08 04:24:50 UTC (rev 20559) @@ -723,6 +723,7 @@ public final static int cache = 23 | 0 << 9 | mathfunc | scriptCommand; // new in Jmol 13.1.2 public final static int tensor = 24 | 0 << 9 | mathfunc | mathproperty; public final static int modulation = 25 | 0 << 9 | mathfunc | mathproperty | scriptCommand; + public final static int _ = 26 | 0 << 9 | mathfunc | mathproperty; // same as getProperty // xxx(a) @@ -1869,6 +1870,7 @@ // misc + "_", "abs", "absolute", "acos", @@ -2895,6 +2897,7 @@ // misc + _, // "_" (getProperty function) abs, // "abs" absolute, // "absolute" acos, // "acos" Modified: trunk/Jmol/src/org/jmol/scriptext/MathExt.java =================================================================== --- trunk/Jmol/src/org/jmol/scriptext/MathExt.java 2015-06-07 01:01:28 UTC (rev 20558) +++ trunk/Jmol/src/org/jmol/scriptext/MathExt.java 2015-06-08 04:24:50 UTC (rev 20559) @@ -156,6 +156,7 @@ case T.function: return evaluateUserFunction(mp, (String) op.value, args, op.intValue, op.tok == T.propselector); + case T._: case T.getproperty: return evaluateGetProperty(mp, args, op.tok == T.propselector); case T.helix: @@ -1115,7 +1116,7 @@ if (propertyName.startsWith("$")) { // TODO } - if (isAtomProperty && !propertyName.equalsIgnoreCase("bondInfo")) + if (isAtomProperty && !lc.startsWith("bondinfo") && !lc.startsWith("atominfo")) propertyName = "atomInfo." + propertyName; Object propertyValue = ""; if (propertyName.equalsIgnoreCase("fileContents") && args.length > 2) { @@ -1144,17 +1145,18 @@ SV x = mp.getX(); if (x.tok != T.bitset) return false; - int iAtom = SV.bsSelectVar(x).nextSetBit(0); + BS bs = SV.bsSelectVar(x); + int iAtom = bs.nextSetBit(0); if (iAtom < 0) return mp.addXStr(""); - propertyValue = BSUtil.newAndSetBit(iAtom); + propertyValue = bs;//BSUtil.newAndSetBit(iAtom); } Object property = vwr.getProperty(null, propertyName, propertyValue); if (pt < args.length) property = vwr.extractProperty(property, args, pt); - if (isAtomProperty && property instanceof Lst) - property = (((Lst<?>) property).size() > 0 ? ((Lst<?>) property).get(0) - : ""); +// if (isAtomProperty && property instanceof Lst) +// property = (((Lst<?>) property).size() > 0 ? ((Lst<?>) property).get(0) +// : ""); return mp.addXObj(isJSON ? "{" + PT.toJSON("value", property) + "}" : SV .isVariableType(property) ? property : Escape.toReadable(propertyName, property)); Modified: trunk/Jmol/src/org/jmol/shape/FontLineShape.java =================================================================== --- trunk/Jmol/src/org/jmol/shape/FontLineShape.java 2015-06-07 01:01:28 UTC (rev 20558) +++ trunk/Jmol/src/org/jmol/shape/FontLineShape.java 2015-06-08 04:24:50 UTC (rev 20559) @@ -25,15 +25,24 @@ package org.jmol.shape; +import javajs.awt.Font; + import org.jmol.modelset.TickInfo; -public abstract class FontLineShape extends FontShape { +public abstract class FontLineShape extends Shape { // Axes, Bbcage, Uccage public TickInfo[] tickInfos = new TickInfo[4]; public short mad; + public Font font3d; + + @Override + public void initShape() { + translucentAllowed = false; + } + protected void setPropFLS(String propertyName, Object value) { if ("tickInfo" == propertyName) { @@ -49,7 +58,10 @@ tickInfos["xyz".indexOf(t.type) + 1] = t; return; } - setPropFS(propertyName, value); + if ("font" == propertyName) { + font3d = (Font) value; + return; + } } @Override Deleted: trunk/Jmol/src/org/jmol/shape/FontShape.java =================================================================== --- trunk/Jmol/src/org/jmol/shape/FontShape.java 2015-06-07 01:01:28 UTC (rev 20558) +++ trunk/Jmol/src/org/jmol/shape/FontShape.java 2015-06-08 04:24:50 UTC (rev 20559) @@ -1,50 +0,0 @@ -/* $RCSfile$ - * $Author: hansonr $ - * $Date: 2007-10-03 20:53:36 -0500 (Wed, 03 Oct 2007) $ - * $Revision: 8351 $ - * - * Copyright (C) 2004-2005 The Jmol Development Team - * - * Contact: jmo...@li... - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -package org.jmol.shape; - -import javajs.awt.Font; - - -public abstract class FontShape extends Shape { - - // Frank, Axes, Bbcage, Uccage - - protected String myType; - - public Font font3d; - - @Override - public void initShape() { - translucentAllowed = false; - } - - public void setPropFS(String propertyName, Object value) { - if ("font" == propertyName) { - font3d = (Font) value; - return; - } - } - -} Modified: trunk/Jmol/src/org/jmol/shape/Frank.java =================================================================== --- trunk/Jmol/src/org/jmol/shape/Frank.java 2015-06-07 01:01:28 UTC (rev 20558) +++ trunk/Jmol/src/org/jmol/shape/Frank.java 2015-06-08 04:24:50 UTC (rev 20559) @@ -46,6 +46,8 @@ public int frankAscent; public int frankDescent; int x, y, dx, dy; + private float scaling; + @Override public void initShape() { @@ -57,7 +59,15 @@ @Override public void setProperty(String propertyName, Object value, BS bs) { - setPropFS(propertyName, value); + if ("font" == propertyName) { + Font f = (Font) value; + if (f.fontSize >= 10) { + baseFont3d = f; + scaling = 0; + } + } + // no other aspects + return; } @Override @@ -96,13 +106,16 @@ } public void getFont(float imageFontScaling) { - font3d = vwr.gdata.getFont3DScaled(baseFont3d, imageFontScaling); - calcMetrics(); + if (imageFontScaling != scaling) { + scaling = imageFontScaling; + font3d = vwr.gdata.getFont3DScaled(baseFont3d, imageFontScaling); + calcMetrics(); + } } @Override public String getShapeState() { - return vwr.getFontState(myType, font3d); + return vwr.getFontState(myType, baseFont3d); } } Modified: trunk/Jmol/src/org/jmol/shape/Labels.java =================================================================== --- trunk/Jmol/src/org/jmol/shape/Labels.java 2015-06-07 01:01:28 UTC (rev 20558) +++ trunk/Jmol/src/org/jmol/shape/Labels.java 2015-06-08 04:24:50 UTC (rev 20559) @@ -38,7 +38,6 @@ import javajs.util.AU; import javajs.util.Lst; import javajs.util.P3; -import javajs.util.PT; import org.jmol.viewer.ActionManager; import org.jmol.viewer.JC; @@ -96,8 +95,6 @@ public void setProperty(String propertyName, Object value, BS bsSelected) { isActive = true; - //System.out.println(propertyName + " Labels " + value); - if ("setDefaults" == propertyName) { setDefaults = ((Boolean) value).booleanValue(); return; Modified: trunk/Jmol/src/org/jmol/shape/MeshCollection.java =================================================================== --- trunk/Jmol/src/org/jmol/shape/MeshCollection.java 2015-06-07 01:01:28 UTC (rev 20558) +++ trunk/Jmol/src/org/jmol/shape/MeshCollection.java 2015-06-08 04:24:50 UTC (rev 20559) @@ -58,7 +58,6 @@ public boolean isFixed; public int nUnnamed; public short colix; - public String myType; public boolean explicitID; protected String previousMeshID; protected Mesh linkedMesh; Modified: trunk/Jmol/src/org/jmol/shape/Shape.java =================================================================== --- trunk/Jmol/src/org/jmol/shape/Shape.java 2015-06-07 01:01:28 UTC (rev 20558) +++ trunk/Jmol/src/org/jmol/shape/Shape.java 2015-06-08 04:24:50 UTC (rev 20559) @@ -87,6 +87,8 @@ */ public abstract class Shape { + public String myType; + abstract public String getShapeState(); abstract public void setProperty(String propertyName, Object value, BS bsSelected); Modified: trunk/Jmol/src/org/jmol/viewer/JC.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/JC.java 2015-06-07 01:01:28 UTC (rev 20558) +++ trunk/Jmol/src/org/jmol/viewer/JC.java 2015-06-08 04:24:50 UTC (rev 20559) @@ -918,7 +918,7 @@ : (pointer & LABEL_POINTER_BACKGROUND) > 0 ? "background" : "on"); } - public static boolean isOffsetExplicit(int offset) { + public static boolean isOffsetAbsolute(int offset) { return ((offset & LABEL_EXPLICIT) != 0); } Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2015-06-07 01:01:28 UTC (rev 20558) +++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2015-06-08 04:24:50 UTC (rev 20559) @@ -14,12 +14,28 @@ TODO: remove HTML5 dependency on synchronous file loading (check SCRIPT command for problems) -Jmol.___JmolVersion="14.3.14_2015.06.06" +Jmol.___JmolVersion="14.3.14_2015.06.07" -new feature: @{_.aflow} shortcut for @{getProperty("auxiliaryInfo.models[<currentModel>]")} +new feature: _m.xxx _m shortcut for @{getProperty("auxiliaryInfo.models[<currentModel>]")} + -- much easier syntax for getting auxiliary information + -- <currentModel> was not available, so this was not easily determined + -- for example - a dynamic echo with model-specific info that changes when the frame is changed + set echo top center + echo "@{_m.modelNumber} + +new feature: _.currentModelIndex _ shortcut for @{getProperty("auxiliaryInfo", "")} + -- much easier syntax for getting auxiliary information +new feature: -JmolVersion="14.3.14_2015.06.06" +new feature: {*}.getProperty("atomInfo.xxx") alternative for getProperty("atominfo.xxx", {*}) +new feature: {*}.getProperty("xxx") same as {*}.getProperty("atomInfo.xxx") +new feature: {*}.getProperty("bondInfo.xxx") alternative for getProperty("bondinfo.xxx", {*}) +new feature: {*}._(...) same as {*}._getProperty(...) + -- note that {*}.getProperty was present but undocumented and not useful +bug fix: Console should be checking scripts after space-bar is pressed. +bug fix: script checking should not trigger screen refresh + code: refactoring of viewer.JC for label/echo business new feature: set labeloffset range expanded to [-500,500] Modified: trunk/Jmol/src/org/jmol/viewer/PropertyManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/PropertyManager.java 2015-06-07 01:01:28 UTC (rev 20558) +++ trunk/Jmol/src/org/jmol/viewer/PropertyManager.java 2015-06-08 04:24:50 UTC (rev 20559) @@ -833,6 +833,7 @@ ModelSet m = vwr.ms; Map<String, Object> info = new Hashtable<String, Object>(); info.put("modelSetName", m.modelSetName); + info.put("modelIndex", Integer.valueOf(vwr.am.cmi)); info.put("modelCount", Integer.valueOf(m.mc)); info.put("isTainted", Boolean.valueOf(m.tainted != null)); info.put("canSkipLoad", Boolean.valueOf(m.canSkipLoad)); Modified: trunk/Jmol/src/org/jmol/viewer/StateCreator.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/StateCreator.java 2015-06-07 01:01:28 UTC (rev 20558) +++ trunk/Jmol/src/org/jmol/viewer/StateCreator.java 2015-06-08 04:24:50 UTC (rev 20559) @@ -1214,7 +1214,7 @@ i, i, "set " - + (JC.isOffsetExplicit(offsetFull) ? "labelOffsetAbsolute " + + (JC.isOffsetAbsolute(offsetFull) ? "labelOffsetAbsolute " : "labelOffset ") + JC.getXOffset(offsetFull) + " " Modified: trunk/Jmol/src/org/jmol/viewer/StatusManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/StatusManager.java 2015-06-07 01:01:28 UTC (rev 20558) +++ trunk/Jmol/src/org/jmol/viewer/StatusManager.java 2015-06-08 04:24:50 UTC (rev 20559) @@ -629,11 +629,14 @@ } } - public void syncSend(String script, String appletName, int port) { + public Object syncSend(String script, Object appletNameOrProp, int port) { // no jmolscript option for syncSend - if (port != 0 || notifyEnabled(CBK.SYNC)) - cbl.notifyCallback(CBK.SYNC, - new Object[] { null, script, appletName, Integer.valueOf(port) }); + if (port != 0 || notifyEnabled(CBK.SYNC)) { + Object[] o = new Object[] { null, script, appletNameOrProp, Integer.valueOf(port) }; + cbl.notifyCallback(CBK.SYNC, o); + return o[0]; + } + return null; } public void modifySend(int atomIndex, int modelIndex, int mode, String msg) { Modified: trunk/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Viewer.java 2015-06-07 01:01:28 UTC (rev 20558) +++ trunk/Jmol/src/org/jmol/viewer/Viewer.java 2015-06-08 04:24:50 UTC (rev 20559) @@ -2652,7 +2652,7 @@ @Override public Map<String, Object> getModelSetAuxiliaryInfo() { - return ms.msInfo; + return ms.getAuxiliaryInfo(null); } @Override @@ -4314,7 +4314,8 @@ /** * @param isVib - * @param doNotify -- force even if same frame (file loading) + * @param doNotify + * ignored; not implemented */ void setStatusFrameChanged(boolean isVib, boolean doNotify) { if (isVib) { @@ -4360,6 +4361,7 @@ g.setI("_morphCount", am.morphCount); g.setF("_currentMorphFrame", currentMorphModel); g.setI("_frameID", frameID); + g.setI("_modelIndex", modelIndex); g.setO("_modelNumber", strModelNo); g.setO("_modelName", (modelIndex < 0 ? "" : getModelName(modelIndex))); String title = (modelIndex < 0 ? "" : ms.getModelTitle(modelIndex)); @@ -4369,7 +4371,7 @@ g.setO("_modelType", (modelIndex < 0 ? "" : ms.getModelFileType(modelIndex))); - if (!doNotify && currentFrame == prevFrame && currentMorphModel == prevMorphModel) + if (currentFrame == prevFrame && currentMorphModel == prevMorphModel) return; prevFrame = currentFrame; prevMorphModel = currentMorphModel; @@ -6787,7 +6789,8 @@ return getObjectMad(StateManager.OBJ_AXIS1) != 0; } - private boolean frankOn = true; + public boolean frankOn = true; + public boolean noFrankEcho = true; // set when Echo bottom right renders @Override public void setFrankOn(boolean TF) { @@ -6935,7 +6938,7 @@ public boolean scriptEditorVisible; - JmolAppConsoleInterface appConsole; + public JmolAppConsoleInterface appConsole; JmolScriptEditorInterface scriptEditor; GenericMenuInterface jmolpopup; private GenericMenuInterface modelkitPopup; @@ -6976,6 +6979,7 @@ + "defaultDirectory...." // 180 + "getPopupMenu........" // 200 + "shapeManager........" // 220 + + "getPreference......." // 240 ).indexOf(infoType)) { case 0: @@ -7055,6 +7059,8 @@ return getPopupMenu(); case 220: return shm.getProperty(paramInfo); + case 240: + return sm.syncSend("getPreference", paramInfo, 1); } Logger.error("ERROR in getProperty DATA_API: " + infoType); return null; Modified: trunk/Jmol/src/org/openscience/jmol/app/HistoryFile.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/HistoryFile.java 2015-06-07 01:01:28 UTC (rev 20558) +++ trunk/Jmol/src/org/openscience/jmol/app/HistoryFile.java 2015-06-08 04:24:50 UTC (rev 20559) @@ -356,7 +356,7 @@ /** * Saves properties to the history file. */ - private void save() { + public void save() { if (file == null) return; try { Modified: trunk/Jmol/src/org/openscience/jmol/app/jmolpanel/GuiMap.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/jmolpanel/GuiMap.java 2015-06-07 01:01:28 UTC (rev 20558) +++ trunk/Jmol/src/org/openscience/jmol/app/jmolpanel/GuiMap.java 2015-06-08 04:24:50 UTC (rev 20559) @@ -232,6 +232,8 @@ ._("File Preview (requires restarting Jmol)")); labels.put("Prefs.clearHistory", GT ._("Clear history (requires restarting Jmol)")); + labels.put("Prefs.largeFont", GT + ._("Large Console Font")); labels.put("Prefs.isLabelAtomColor", GT._("Use Atom Color")); labels.put("Prefs.isBondAtomColor", GT._("Use Atom Color")); labels.put("rotateScriptTip", GT._("Rotate molecule.")); Modified: trunk/Jmol/src/org/openscience/jmol/app/jmolpanel/JmolPanel.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/jmolpanel/JmolPanel.java 2015-06-07 01:01:28 UTC (rev 20558) +++ trunk/Jmol/src/org/openscience/jmol/app/jmolpanel/JmolPanel.java 2015-06-08 04:24:50 UTC (rev 20559) @@ -56,6 +56,7 @@ import java.awt.Component; import java.awt.Cursor; import java.awt.Dimension; +import java.awt.Font; import java.awt.Image; import java.awt.Insets; import java.awt.Point; @@ -136,7 +137,7 @@ public GuiMap guimap = new GuiMap(); private ExecuteScriptAction executeScriptAction; - private PreferencesDialog preferencesDialog; + PreferencesDialog preferencesDialog; private StatusListener myStatusListener; private SurfaceTool surfaceTool; @@ -218,7 +219,8 @@ try { say("history file is " + historyFile.getFile().getAbsolutePath()); - } catch (Exception e) { + say("user properties file is " + jmolApp.userPropsFile.getAbsolutePath()); + } catch (Exception e) { } frame.setTitle("Jmol"); @@ -462,7 +464,7 @@ jmol.consoleframe.setIconImage(jmol.frame.getIconImage()); try { final ConsoleTextArea consoleTextArea = new ConsoleTextArea(true); - consoleTextArea.setFont(java.awt.Font.decode("monospaced")); + consoleTextArea.setFont(Font.decode("monospaced")); jmol.consoleframe.getContentPane().add(new JScrollPane(consoleTextArea), java.awt.BorderLayout.CENTER); JButton buttonClear = jmol.guimap.newJButton("JavaConsole.Clear"); @@ -476,7 +478,7 @@ java.awt.BorderLayout.SOUTH); } catch (IOException e) { JTextArea errorTextArea = new JTextArea(); - errorTextArea.setFont(java.awt.Font.decode("monospaced")); + errorTextArea.setFont(Font.decode("monospaced")); jmol.consoleframe.getContentPane().add(new JScrollPane(errorTextArea), java.awt.BorderLayout.CENTER); errorTextArea.append(GT._("Could not create ConsoleTextArea: ") + e); @@ -1370,8 +1372,9 @@ @Override public void actionPerformed(ActionEvent e) { AppConsole console = (AppConsole) vwr.getProperty("DATA_API","getAppConsole", null); - if (console != null) + if (console != null) { console.setVisible(true); + } } } @@ -1774,4 +1777,15 @@ : nboService); } + public void updateConsoleFont() { + AppConsole console = (AppConsole) vwr.getProperty("DATA_API", + "getAppConsole", null); + if (console != null) + console.updateFontSize(); + } + + public Object getPreference(String key) { + return preferencesDialog.currentProperties.get(key); + } + } Modified: trunk/Jmol/src/org/openscience/jmol/app/jmolpanel/PreferencesDialog.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/jmolpanel/PreferencesDialog.java 2015-06-07 01:01:28 UTC (rev 20558) +++ trunk/Jmol/src/org/openscience/jmol/app/jmolpanel/PreferencesDialog.java 2015-06-08 04:24:50 UTC (rev 20559) @@ -83,11 +83,13 @@ boolean axesOrientationRasmol; boolean openFilePreview; boolean clearHistory; + boolean largeFont; float minBondDistance; float bondTolerance; short marBond; int percentVdwAtom; int bondingVersion; + JButton bButton, pButton, tButton, eButton, vButton; private JRadioButton /*pYes, pNo, */abYes, abNo; private JSlider vdwPercentSlider; @@ -98,6 +100,7 @@ private JCheckBox cbAxesOrientationRasmol; private JCheckBox cbOpenFilePreview; private JCheckBox cbClearHistory; + private JCheckBox cbLargeFont; private Properties originalSystemProperties; private Properties jmolDefaultProperties; Properties currentProperties; @@ -283,6 +286,11 @@ cbClearHistory.addItemListener(checkBoxListener); otherPanel.add(cbClearHistory); + cbLargeFont = + guimap.newJCheckBox("Prefs.largeFont", largeFont); + cbLargeFont.addItemListener(checkBoxListener); + otherPanel.add(cbLargeFont); + constraints = new GridBagConstraints(); constraints.gridwidth = GridBagConstraints.REMAINDER; constraints.fill = GridBagConstraints.HORIZONTAL; @@ -554,6 +562,7 @@ cbOpenFilePreview.setSelected(openFilePreview); cbClearHistory.setSelected(clearHistory); + cbLargeFont.setSelected(largeFont); // Atom panel controls: vdwPercentSlider.setValue(vwr.getInt(T.percentvdwatom)); @@ -572,7 +581,7 @@ vwr.refresh(3, "PreferencesDialog:apply()"); } - private void save() { + void save() { try { FileOutputStream fileOutputStream = new FileOutputStream(jmol.jmolApp.userPropsFile); @@ -653,6 +662,7 @@ Integer.parseInt(currentProperties.getProperty("percentVdwAtom")); bondingVersion = Integer.parseInt(currentProperties.getProperty("bondingVersion")); + largeFont = "true".equals(currentProperties.getProperty("largeConsoleFont")); if (Boolean.getBoolean("jmolDefaults")) @@ -672,6 +682,9 @@ vwr.setBooleanProperty("showAxes", showAxes); vwr.setBooleanProperty("showBoundBox", showBoundingBox); vwr.setBooleanProperty("axesOrientationRasmol", axesOrientationRasmol); + + jmol.updateConsoleFont(); + } class PrefsAction extends AbstractAction { @@ -744,6 +757,8 @@ currentProperties.put("clearHistory", strSelected); if (JmolPanel.historyFile != null) JmolPanel.historyFile.addProperty("clearHistory", strSelected); + } else if (key.equals("Prefs.largeFont")) { + setLargeFont(strSelected); } } }; @@ -769,4 +784,11 @@ } } + public void setLargeFont(String selected) { + largeFont = (selected == null ? !largeFont : "true".equals(selected)); + currentProperties.put("largeConsoleFont", "" + largeFont); + save(); + jmol.updateConsoleFont(); + } + } Modified: trunk/Jmol/src/org/openscience/jmol/app/jmolpanel/StatusListener.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/jmolpanel/StatusListener.java 2015-06-07 01:01:28 UTC (rev 20558) +++ trunk/Jmol/src/org/openscience/jmol/app/jmolpanel/StatusListener.java 2015-06-08 04:24:50 UTC (rev 20559) @@ -201,10 +201,16 @@ jmol.gaussianDialog.updateModel(-1); break; case SYNC: - if (strInfo != null && strInfo.toLowerCase().startsWith("jspecview")) { + String lc = (strInfo == null ? "" : strInfo.toLowerCase()); + if (lc.startsWith("jspecview")) { setJSpecView(strInfo.substring(9).trim(), false, false); return; } + if (lc.equals("getpreference")) { + data[0] = (data[2] == null ? jmol.preferencesDialog : jmol.getPreference(data[2].toString())); + return; + } + jmol.sendNioMessage(((Integer) data[3]).intValue(), strInfo); return; case DRAGDROP: Modified: trunk/Jmol/src/org/openscience/jmol/app/jmolpanel/console/AppConsole.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/jmolpanel/console/AppConsole.java 2015-06-07 01:01:28 UTC (rev 20558) +++ trunk/Jmol/src/org/openscience/jmol/app/jmolpanel/console/AppConsole.java 2015-06-08 04:24:50 UTC (rev 20559) @@ -25,33 +25,33 @@ import java.awt.BorderLayout; import java.awt.Color; +import java.awt.Component; import java.awt.Container; -import java.awt.Component; import java.awt.Dimension; +import java.awt.Font; import java.awt.Window; +import java.awt.event.ActionEvent; import java.awt.event.KeyEvent; -import java.awt.event.ActionEvent; import java.net.URL; import java.util.List; import java.util.Map; - import javajs.util.PT; import javax.swing.JButton; import javax.swing.JDialog; +import javax.swing.JFrame; import javax.swing.JPanel; -import javax.swing.JFrame; import javax.swing.JScrollBar; +import javax.swing.JScrollPane; import javax.swing.JSplitPane; -import javax.swing.JTextPane; //import javax.swing.SwingUtilities; +import javax.swing.JTextPane; +import javax.swing.text.AttributeSet; +import javax.swing.text.BadLocationException; +import javax.swing.text.DefaultStyledDocument; import javax.swing.text.Position; -import javax.swing.text.DefaultStyledDocument; -import javax.swing.text.BadLocationException; -import javax.swing.text.AttributeSet; import javax.swing.text.SimpleAttributeSet; import javax.swing.text.StyleConstants; -import javax.swing.JScrollPane; import org.jmol.api.JmolAbstractButton; import org.jmol.api.JmolViewer; @@ -62,13 +62,16 @@ import org.jmol.util.Logger; import org.jmol.viewer.JC; import org.jmol.viewer.Viewer; - import org.openscience.jmol.app.jmolpanel.HelpDialog; +import org.openscience.jmol.app.jmolpanel.PreferencesDialog; +//import javax.swing.SwingUtilities; public class AppConsole extends JmolConsole implements EnterListener { - public static final String ALL_BUTTONS = "Editor Variables Clear History State UndoRedo Close Help"; + public static final String ALL_BUTTONS = "Editor Variables Clear History State UndoRedo Close Font Help"; + private int fontSize; + // note: "Check" "Top" "Step" not included in 12.1 public AppConsole() { @@ -112,13 +115,22 @@ } addWindowListener(); layoutWindow(enabledButtons); + //setVisible(true); } + @Override + public void updateFontSize() { + String prop = (String) vwr.getProperty("DATA_API", "getPreference", "largeConsoleFont"); + fontSize = ("true".equals(prop) ? 32 : 16); + if (console != null) + console.setFont(new Font("dialog", Font.PLAIN, fontSize)); + } + public JDialog jcd; protected ConsoleTextPane console; private JmolAbstractButton varButton, haltButton, closeButton, clearButton, stepButton; - private JmolAbstractButton helpButton, undoButton, redoButton, checkButton, topButton; + private JmolAbstractButton helpButton, undoButton, redoButton, checkButton, topButton, fontButton; private JPanel buttonPanel = new JPanel(); protected JScrollBar vBar; @@ -175,6 +187,7 @@ labels.put("Top", GT._("Top")); labels.put("Undo", GT._("Undo")); labels.put("Redo", GT._("Redo")); + labels.put("Font", GT._("Font")); labels.put("Variables", GT._("Variables")); } @@ -234,6 +247,7 @@ "Step " + "Top " + "UndoRedo " + + "Font " + "Variables ").indexOf(name)) { case 0: checkButton = setButton("Check"); @@ -272,6 +286,9 @@ case 110: varButton = setButton("Variables"); break; + case 120: + fontButton = setButton("Font"); + fontButton.setToolTipText(GT._("toggle font size")); } } @@ -338,6 +355,12 @@ return; } else if (strCommand.equalsIgnoreCase("exitJmol")) { System.exit(0); + } else if (strCommand.startsWith("font console")) { + String s = strCommand.substring(12); + if (PT.parseInt(s) > 0) + s = "sansserif-" + s; + console.setFont(Font.decode(s)); + strCommand = " "; } else if (strCommand.length() == 0) { strCommand = "!resume"; undoSetEnabled(); @@ -567,6 +590,12 @@ undoRedo(true); return; } + if (source == fontButton) { + PreferencesDialog d = (PreferencesDialog) vwr.getProperty("DATA_API", "getPreference", null); + if (d != null) + d.setLargeFont(null); + return; + } if (source == helpButton) { URL url = this.getClass().getClassLoader().getResource( "org/openscience/jmol/Data/guide/ch04.html"); @@ -585,9 +614,10 @@ boolean checking = false; private String pageUpBuffer; - + ConsoleTextPane(AppConsole appConsole) { super(new ConsoleDocument()); + updateFontSize(); consoleDoc = (ConsoleDocument) getDocument(); consoleDoc.setConsoleTextPane(this); this.enterListener = appConsole; @@ -716,7 +746,7 @@ } else { // Standard processing for other events. super.processKeyEvent(ke); - // check command for compiler-identifyable syntax issues + // check command for compiler-identifiable syntax issues // this may have to be taken out if people start complaining // that only some of the commands are being checked // that is -- that the script itself is not being fully checked @@ -724,7 +754,7 @@ // not perfect -- help here? if (kid == KeyEvent.KEY_RELEASED && ke.getModifiers() < 2 - && (kcode > KeyEvent.VK_DOWN && kcode < 400 || kcode == KeyEvent.VK_BACK_SPACE)) + && (kcode == 32 || kcode > KeyEvent.VK_DOWN && kcode < 400 || kcode == KeyEvent.VK_BACK_SPACE)) checkCommand(); } } Copied: trunk/Jmol/unused/FontShape.java (from rev 20300, trunk/Jmol/src/org/jmol/shape/FontShape.java) =================================================================== --- trunk/Jmol/unused/FontShape.java (rev 0) +++ trunk/Jmol/unused/FontShape.java 2015-06-08 04:24:50 UTC (rev 20559) @@ -0,0 +1,34 @@ +/* $RCSfile$ + * $Author: hansonr $ + * $Date: 2007-10-03 20:53:36 -0500 (Wed, 03 Oct 2007) $ + * $Revision: 8351 $ + * + * Copyright (C) 2004-2005 The Jmol Development Team + * + * Contact: jmo...@li... + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +package org.jmol.shape; + +import javajs.awt.Font; + + +public abstract class FontShape {//extends Shape { + + // Axes, Bbcage, Uccage + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2016-08-10 07:00:39
|
Revision: 21200 http://sourceforge.net/p/jmol/code/21200 Author: hansonr Date: 2016-08-10 07:00:36 +0000 (Wed, 10 Aug 2016) Log Message: ----------- Modified Paths: -------------- trunk/Jmol/src/javajs/util/OC.java trunk/Jmol/srcjsv/jspecview/app/GenericMouse.java trunk/Jmol/srcjsv/jspecview/applet/JSVApplet.java trunk/Jmol/srcjsv/jspecview/application/MainFrame.java trunk/Jmol/srcjsv/jspecview/common/GraphSet.java trunk/Jmol/srcjsv/jspecview/common/IntegralData.java trunk/Jmol/srcjsv/jspecview/common/JSViewer.java trunk/Jmol/srcjsv/jspecview/common/MeasurementData.java trunk/Jmol/srcjsv/jspecview/dialog/IntegrationDialog.java trunk/Jmol/srcjsv/jspecview/export/FormContext.java Modified: trunk/Jmol/src/javajs/util/OC.java =================================================================== --- trunk/Jmol/src/javajs/util/OC.java 2016-08-10 05:57:56 UTC (rev 21199) +++ trunk/Jmol/src/javajs/util/OC.java 2016-08-10 07:00:36 UTC (rev 21200) @@ -310,7 +310,7 @@ /** * @j2sNative * - * jmol = Jmol; self.J2S || Jmol; _function = (typeof this.fileName == "function" ? + * jmol = self.J2S || Jmol; _function = (typeof this.fileName == "function" ? * this.fileName : null); * */ Modified: trunk/Jmol/srcjsv/jspecview/app/GenericMouse.java =================================================================== --- trunk/Jmol/srcjsv/jspecview/app/GenericMouse.java 2016-08-10 05:57:56 UTC (rev 21199) +++ trunk/Jmol/srcjsv/jspecview/app/GenericMouse.java 2016-08-10 07:00:36 UTC (rev 21200) @@ -38,10 +38,10 @@ jsvp.showMenu(x, y); return true; } - if (id != -1) + if (id != MouseEvent.MOUSE_WHEEL) modifiers = applyLeftMouse(modifiers); switch (id) { - case -1: // JavaScript + case MouseEvent.MOUSE_WHEEL: // JavaScript wheeled(time, x, modifiers | Event.MOUSE_WHEEL); break; case Event.MOUSE_DOWN: Modified: trunk/Jmol/srcjsv/jspecview/applet/JSVApplet.java =================================================================== --- trunk/Jmol/srcjsv/jspecview/applet/JSVApplet.java 2016-08-10 05:57:56 UTC (rev 21199) +++ trunk/Jmol/srcjsv/jspecview/applet/JSVApplet.java 2016-08-10 07:00:36 UTC (rev 21200) @@ -523,7 +523,7 @@ if (commandWatcherThread != null) { Lst<String> q = app.vwr.scriptQueue; if (q.size() > 0) { - String scriptItem = q.remove(0); + String scriptItem = q.removeItemAt(0); if (scriptItem != null) app.siProcessCommand(scriptItem); } Modified: trunk/Jmol/srcjsv/jspecview/application/MainFrame.java =================================================================== --- trunk/Jmol/srcjsv/jspecview/application/MainFrame.java 2016-08-10 05:57:56 UTC (rev 21199) +++ trunk/Jmol/srcjsv/jspecview/application/MainFrame.java 2016-08-10 07:00:36 UTC (rev 21200) @@ -912,7 +912,7 @@ case JSViewer.FILE_OPEN_ERROR: awaken(false); awaken(true); - JOptionPane.showMessageDialog(this, "There was an error reading file " + name + " " + url); + JOptionPane.showMessageDialog(this, "There was an error reading " + (name != null ? name : url)); break; } siValidateAndRepaint(false); @@ -1080,7 +1080,7 @@ if (filePath.length() > 100) return; if (recentFilePaths.size() >= MAX_RECENT) - recentFilePaths.remove(MAX_RECENT - 1); + recentFilePaths.removeItemAt(MAX_RECENT - 1); if (recentFilePaths.contains(filePath)) recentFilePaths.removeObj(filePath); recentFilePaths.add(0, filePath); Modified: trunk/Jmol/srcjsv/jspecview/common/GraphSet.java =================================================================== --- trunk/Jmol/srcjsv/jspecview/common/GraphSet.java 2016-08-10 05:57:56 UTC (rev 21199) +++ trunk/Jmol/srcjsv/jspecview/common/GraphSet.java 2016-08-10 07:00:36 UTC (rev 21200) @@ -603,7 +603,7 @@ if (annotation.is2D ? isNearby(annotations.get(i), annotation, imageView, 10) : annotation.equals(annotations.get(i))) { removed = true; - annotations.remove(i); + annotations.removeItemAt(i); } if (annotation.text.length() > 0 && (!removed || !isToggle)) annotations.addLast(annotation); @@ -1016,7 +1016,7 @@ else for (int i = highlights.size(); --i >= 0;) if (highlights.get(i).spectrum == spec) - highlights.remove(i); + highlights.removeItemAt(i); } private Coordinate setCoordClicked(int xPixel, double x, double y) { @@ -1360,7 +1360,7 @@ // add to and clean the zoom list if (viewList.size() > currentZoomIndex + 1) for (int i = viewList.size() - 1; i > currentZoomIndex; i--) - viewList.remove(i); + viewList.removeItemAt(i); viewList.addLast(viewData); currentZoomIndex++; } @@ -1383,7 +1383,7 @@ setZoom(0, 0, 0, 0); // leave first zoom for (int i = viewList.size(); --i >= 1;) - viewList.remove(i); + viewList.removeItemAt(i); } private void drawAll(Object gMain, Object gFront, Object gRear, int iSplit, @@ -3546,7 +3546,7 @@ * the index of the highlight in the list */ void removeHighlight(int index) { - highlights.remove(index); + highlights.removeItemAt(index); } /** @@ -3561,7 +3561,7 @@ for (int i = highlights.size(); --i >= 0;) { Highlight h = highlights.get(i); if (h.x1 == x1 && h.x2 == x2) - highlights.remove(i); + highlights.removeItemAt(i); } } @@ -3731,7 +3731,7 @@ void setSpectrumJDX(Spectrum spec) { // T/A conversion for IR int pt = getFixedSelectedSpectrumIndex(); - spectra.remove(pt); + spectra.removeItemAt(pt); spectra.add(pt, spec); pendingMeasurement = null; clearViews(); Modified: trunk/Jmol/srcjsv/jspecview/common/IntegralData.java =================================================================== --- trunk/Jmol/srcjsv/jspecview/common/IntegralData.java 2016-08-10 05:57:56 UTC (rev 21199) +++ trunk/Jmol/srcjsv/jspecview/common/IntegralData.java 2016-08-10 07:00:36 UTC (rev 21200) @@ -319,7 +319,7 @@ @Override public Measurement remove(int i) { - return super.remove(i); + return removeItemAt(i); } public BS getBitSet() { @@ -440,7 +440,7 @@ public void setMinimumIntegral(double val) { for (int i = size(); --i >= 0;) if (get(i).getValue() < val) - remove(i); + removeItemAt(i); } } Modified: trunk/Jmol/srcjsv/jspecview/common/JSViewer.java =================================================================== --- trunk/Jmol/srcjsv/jspecview/common/JSViewer.java 2016-08-10 05:57:56 UTC (rev 21199) +++ trunk/Jmol/srcjsv/jspecview/common/JSViewer.java 2016-08-10 07:00:36 UTC (rev 21200) @@ -1549,7 +1549,7 @@ if (panelNodes != null) for (int i = panelNodes.size(); --i >= 0;) { panelNodes.get(i).dispose(); - panelNodes.remove(i); + panelNodes.removeItemAt(i); } } Modified: trunk/Jmol/srcjsv/jspecview/common/MeasurementData.java =================================================================== --- trunk/Jmol/srcjsv/jspecview/common/MeasurementData.java 2016-08-10 05:57:56 UTC (rev 21199) +++ trunk/Jmol/srcjsv/jspecview/common/MeasurementData.java 2016-08-10 07:00:36 UTC (rev 21200) @@ -149,7 +149,7 @@ for (int i = size(); --i >= 0;) { Measurement in = get(i); if (in.text.length() == 0 || in.overlaps(x1, x2)) { - remove(i); + removeItemAt(i); } } Modified: trunk/Jmol/srcjsv/jspecview/dialog/IntegrationDialog.java =================================================================== --- trunk/Jmol/srcjsv/jspecview/dialog/IntegrationDialog.java 2016-08-10 05:57:56 UTC (rev 21199) +++ trunk/Jmol/srcjsv/jspecview/dialog/IntegrationDialog.java 2016-08-10 07:00:36 UTC (rev 21200) @@ -125,7 +125,7 @@ private void deleteIntegral() { if (!checkSelectedIntegral()) return; - xyData.remove(iSelected); + xyData.removeItemAt(iSelected); iSelected = -1; iRowColSelected = -1; applyFromFields(); Modified: trunk/Jmol/srcjsv/jspecview/export/FormContext.java =================================================================== --- trunk/Jmol/srcjsv/jspecview/export/FormContext.java 2016-08-10 05:57:56 UTC (rev 21199) +++ trunk/Jmol/srcjsv/jspecview/export/FormContext.java 2016-08-10 07:00:36 UTC (rev 21200) @@ -103,7 +103,7 @@ strError = "misplaced #end"; return; } - cmdPtr = cmds.remove(0).intValue(); + cmdPtr = cmds.removeItemAt(0).intValue(); formTokens.get(cmdPtr).endPtr = ptr; } else { commandLevel++; @@ -128,7 +128,7 @@ return; } cmdType = VT_ELSEIF; - cmdPtr = cmds.remove(0).intValue(); + cmdPtr = cmds.removeItemAt(0).intValue(); FormToken vt = formTokens.get(cmdPtr); checkIf = true; vt.endPtr = ptr; @@ -140,7 +140,7 @@ } cmdType = VT_ELSE; checkIf = true; - cmdPtr = cmds.remove(0).intValue(); + cmdPtr = cmds.removeItemAt(0).intValue(); formTokens.get(cmdPtr).endPtr = ptr; cmds.add(0, new Integer(ptr)); } else { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2017-04-13 16:27:47
|
Revision: 21517 http://sourceforge.net/p/jmol/code/21517 Author: hansonr Date: 2017-04-13 16:27:44 +0000 (Thu, 13 Apr 2017) Log Message: ----------- Jmol.___JmolVersion="14.14.1" new feature: set jmolInJSpecView -- allows Jmol window to NOT be embedded in JSpecView when JSpecView is opened in Jmol -- default TRUE bug fix: mesh capper producing gaps bug fix: CIP chirality fixed for rule ordering; validated for IUPAC Rules 1, 2, and 3 (though still some questions about Rule 3) bug fix: print getProperty("cifinfo") without file name fails Modified Paths: -------------- trunk/Jmol/jars/JSpecView.jar trunk/Jmol/src/org/jmol/render/MeshRenderer.java trunk/Jmol/src/org/jmol/rendersurface/PmeshRenderer.java trunk/Jmol/src/org/jmol/script/T.java trunk/Jmol/src/org/jmol/util/MeshCapper.java trunk/Jmol/src/org/jmol/util/MeshSlicer.java trunk/Jmol/src/org/jmol/viewer/GlobalSettings.java trunk/Jmol/src/org/jmol/viewer/Jmol.properties trunk/Jmol/src/org/jmol/viewer/Viewer.java trunk/Jmol/src/org/openscience/jmol/app/jmolpanel/StatusListener.java Modified: trunk/Jmol/jars/JSpecView.jar =================================================================== (Binary files differ) Modified: trunk/Jmol/src/org/jmol/render/MeshRenderer.java =================================================================== --- trunk/Jmol/src/org/jmol/render/MeshRenderer.java 2017-04-13 04:13:56 UTC (rev 21516) +++ trunk/Jmol/src/org/jmol/render/MeshRenderer.java 2017-04-13 16:27:44 UTC (rev 21517) @@ -181,6 +181,7 @@ private boolean setVariables() { if (mesh.visibilityFlags == 0) return false; + forceShowTriangles = vwr.getBoolean(T.testflag3); showTriangles = forceShowTriangles || mesh.showTriangles; if (mesh.bsSlabGhost != null) g3d.setC(mesh.slabColix); // forces a second pass Modified: trunk/Jmol/src/org/jmol/rendersurface/PmeshRenderer.java =================================================================== --- trunk/Jmol/src/org/jmol/rendersurface/PmeshRenderer.java 2017-04-13 04:13:56 UTC (rev 21516) +++ trunk/Jmol/src/org/jmol/rendersurface/PmeshRenderer.java 2017-04-13 16:27:44 UTC (rev 21517) @@ -30,7 +30,6 @@ @Override protected boolean render() { - forceShowTriangles = vwr.getBoolean(T.testflag3); return renderIso(); } Modified: trunk/Jmol/src/org/jmol/script/T.java =================================================================== --- trunk/Jmol/src/org/jmol/script/T.java 2017-04-13 04:13:56 UTC (rev 21516) +++ trunk/Jmol/src/org/jmol/script/T.java 2017-04-13 16:27:44 UTC (rev 21517) @@ -1011,10 +1011,11 @@ public final static int hidenotselected = booleanparam | 86; public final static int highresolution = booleanparam | 88; // see predefinedset public final static int hydrogen = booleanparam | 90; - public final static int imagestate = booleanparam | 91; - public static final int iskiosk = booleanparam | 92; // 11.9.29 - public final static int isosurfacekey = booleanparam | 93; - public final static int isosurfacepropertysmoothing = booleanparam | 94; + public final static int imagestate = booleanparam | 89; + public static final int iskiosk = booleanparam | 90; // 11.9.29 + public final static int isosurfacekey = booleanparam | 91; + public final static int isosurfacepropertysmoothing = booleanparam | 92; + public final static int jmolinjspecview = booleanparam | 93; // 14.13.1 public final static int justifymeasurements = booleanparam | 95; public final static int languagetranslation = booleanparam | 96; public final static int legacyautobonding = booleanparam | 97; @@ -2585,6 +2586,7 @@ "isosurfaceKey", "isosurfacePropertySmoothing", "isosurfacePropertySmoothingPower", + "jmolInJSpecView", "justifyMeasurements", "languageTranslation", "leadAtom", @@ -3632,6 +3634,7 @@ isosurfacekey, // "isosurfaceKey" isosurfacepropertysmoothing, // "isosurfacePropertySmoothing" isosurfacepropertysmoothingpower, // "isosurfacePropertySmoothingPower" + jmolinjspecview, justifymeasurements, // "justifyMeasurements" languagetranslation, // "languageTranslation" leadatom, // "leadAtom" Modified: trunk/Jmol/src/org/jmol/util/MeshCapper.java =================================================================== --- trunk/Jmol/src/org/jmol/util/MeshCapper.java 2017-04-13 04:13:56 UTC (rev 21516) +++ trunk/Jmol/src/org/jmol/util/MeshCapper.java 2017-04-13 16:27:44 UTC (rev 21517) @@ -87,7 +87,7 @@ private int nPoints; - private M4 m4; + M4 m4, m4inv; /////////////// initialization ////////////////// @@ -317,7 +317,7 @@ Quat q = Quat.getQuaternionFrameV(vab, vac, null, false); M3 m3 = q.getMatrix(); m4 = M4.newMV(m3, vertices.get(0)); - M4 m4inv = M4.newM4(m4).invert(); + m4inv = M4.newM4(m4).invert(); vertices.toArray(vs); vertices = null; @@ -331,7 +331,7 @@ if (Logger.debugging) Logger.info("MeshCapper using " + vs.length + " vertices"); - CapVertex v0 = vs[0].sort(vs); + CapVertex v0 = sort(vs); if (v0 == null) { Logger.error("two identical points -- aborting"); return; @@ -359,6 +359,104 @@ } /** + * Generate qnext links based on scanning Y large to Y small and if Y1==Y2, + * then X small to large + * + * @param vs + * @return null if there are two identical points (edge crossings) + */ + public CapVertex sort(CapVertex[] vs) { + Lst<CapVertex> v0s = new Lst<CapVertex>(); + Lst<CapVertex> v1s = new Lst<CapVertex>(); + int n = vs.length; +// for (int i = n; --i >= 0;) +// System.out.println(vs[i]); +// System.out.println("#----"); + for (int i = n; --i >= 0;) { + if (vs[i].next == null) { + v0s.addLast(vs[i]); + } else if (vs[i].prev == null) { + v1s.addLast(vs[i]); + } + } + for (int i = v0s.size(); --i >= 0;) { + CapVertex v0 = v0s.get(i); + CapVertex v1 = findNearestVertex(v1s, v0); + if (v1 == null) { + System.out.println("MESHCAPPER OHOH"); + } else { + v0.link(v1); + } + + } + MeshCapperSorter sorter = new MeshCapperSorter(); +// for (int i = 0; i < n; i++) { +// CapVertex v = vs[i]; +// if (vs[i].next == null || vs[i].prev == null) +// System.out.println("null meshcapper"); +// } +// + + Arrays.sort(vs, sorter); + int pt = n; + +// int pt = 0; +// for (int i = 0; i < n; i++) { +// if (!vs[i].disabled) +// vs[pt++] = vs[i]; +// } + if (pt > 0) { + for (int i = pt; --i >= 0;) { + CapVertex v = vs[i]; + vs[i].qnext = vs[(i + 1) % pt]; + } + vs[pt - 1].qnext = vs[0]; + } + return vs[0]; + } + + private CapVertex findNearestVertex(Lst<CapVertex> v1s, CapVertex v0) { + float min = Float.MAX_VALUE; + CapVertex vmin = null; + int imin = -1; + for (int i = v1s.size(); --i >= 0;) { + CapVertex v1 = v1s.get(i); + float d = v1.distanceSquared(v0); + if (d < min) { + min = d; + vmin = v1; + imin = i; + } + } + if (imin >= 0) + v1s.removeItemAt(imin); + return vmin; + } + + public class MeshCapperSorter implements + Comparator<CapVertex> { + + + @Override + public int compare(CapVertex v1, CapVertex v2) { + // first HIGHEST Y to LOWEST Y, then LOWEST X to HIGHEST X + return (v1.y < v2.y ? 1 : v1.y > v2.y || v1.x < v2.x ? -1 + : v1.x > v2.x ? 1 + : 0);//disable(v1, v2)); + } + + + } + + int disable(CapVertex v1, CapVertex v2) { + if (!v1.disabled && !v2.disabled) { + //v2.link(null); + v2.disabled = true; + } + return 0; + } + + /** * Handle the point; mark as processed. * * @param v @@ -824,6 +922,8 @@ CapVertex[] region; boolean disabled; + + T3 cartesian; CapVertex(T3 p, int i) { ipt = i; @@ -840,93 +940,6 @@ } /** - * Generate qnext links based on scanning Y large to Y small and if Y1==Y2, - * then X small to large - * - * @param vs - * @return null if there are two identical points (edge crossings) - */ - public CapVertex sort(CapVertex[] vs) { - CapVertex v0 = null; - CapVertex v1 = null; - int n = vs.length; - for (int i = n; --i >= 0;) - System.out.println(i + "/" + n + " " + vs[i]); - System.out.println("----"); - for (int i = n; --i >= 0;) { - if (vs[i].next == null) { - System.out.println("fixing next " + vs[i]); - if (v0 == null) { - v1 = vs[i]; - System.out.println("next,v0 null; v1 is now " + v1); - } else { - vs[i].link(v0); - System.out.println("next null, v0 not null;linked\n" + vs[i] + "\n" + v0); - v0 = null; - } - } else if (vs[i].prev == null) { - System.out.println("fixing prev " + vs[i]); - if (v1 == null) { - v0 = vs[i]; - System.out.println("prev,v1 null; v0 is now " + v0); - } else { - v1.link(vs[i]); - System.out.println("prev null, v1 not null;linked\n" + v1 + "\n" + vs[i]); - v1 = null; - } - } - } - - MeshCapperSorter sorter = new MeshCapperSorter(); -// for (int i = 0; i < n; i++) { -// CapVertex v = vs[i]; -// if (vs[i].next == null || vs[i].prev == null) -// System.out.println("null meshcapper"); -// } -// - - Arrays.sort(vs, sorter); - int pt = n; - -// int pt = 0; -// for (int i = 0; i < n; i++) { -// if (!vs[i].disabled) -// vs[pt++] = vs[i]; -// } - if (pt > 0) { - for (int i = pt; --i >= 0;) { - CapVertex v = vs[i]; - vs[i].qnext = vs[(i + 1) % pt]; - } - vs[pt - 1].qnext = vs[0]; - } - return vs[0]; - } - - public class MeshCapperSorter implements - Comparator<CapVertex> { - - - @Override - public int compare(CapVertex v1, CapVertex v2) { - // first HIGHEST Y to LOWEST Y, then LOWEST X to HIGHEST X - return (v1.y < v2.y ? 1 : v1.y > v2.y || v1.x < v2.x ? -1 - : v1.x > v2.x ? 1 - : 0);//disable(v1, v2)); - } - - - } - - int disable(CapVertex v1, CapVertex v2) { - if (!v1.disabled && !v2.disabled) { - //v2.link(null); - v2.disabled = true; - } - return 0; - } - - /** * Get interpolated x for the scan line intersection with an edge. This * method is used both in finding the last point for a split and for * checking winding on same-side addition. @@ -991,14 +1004,18 @@ @Override public String toString() { + if (cartesian == null) + cartesian = new P3(); + if (m4 != null) + m4.rotTrans2(this, cartesian); return "draw p" + id + " {" - + x + + cartesian.x + " " - + y + + cartesian.y + " " - + z + + cartesian.z + "} # " + (prev == null ? "null" : prev.id) + (next == null ? " null" : " " + next.id) Modified: trunk/Jmol/src/org/jmol/util/MeshSlicer.java =================================================================== --- trunk/Jmol/src/org/jmol/util/MeshSlicer.java 2017-04-13 04:13:56 UTC (rev 21516) +++ trunk/Jmol/src/org/jmol/util/MeshSlicer.java 2017-04-13 16:27:44 UTC (rev 21517) @@ -138,9 +138,7 @@ P3[] box = (P3[]) slabbingObject; sb.append("within ").append(Escape.eAP(box)); P4[] faces = getBoxFacesFromCriticalPoints(box); - System.out.println("MeshSlicer test 4"); for (int i = 0; i < faces.length; i++) { - if (i == 1 || i == 2 || i == 4) getIntersection(0, faces[i], null, null, null, null, null, andCap, false, T.plane, isGhost); } @@ -281,9 +279,11 @@ if (m.vertexSource == null) return; fData = new float[m.vc]; - for (int i = 0; i < m.vc; i++) - if ((fData[i] = m.vertexSource[i]) == -1) + for (int i = 0; i < m.vc; i++) { + fData[i] = m.vertexSource[i]; + if (fData[i] == -1) System.out.println("meshsurface hmm"); + } } else { fData = m.vvs; } Modified: trunk/Jmol/src/org/jmol/viewer/GlobalSettings.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/GlobalSettings.java 2017-04-13 04:13:56 UTC (rev 21516) +++ trunk/Jmol/src/org/jmol/viewer/GlobalSettings.java 2017-04-13 16:27:44 UTC (rev 21517) @@ -283,6 +283,7 @@ setB("isosurfaceKey", isosurfaceKey); setB("isosurfacePropertySmoothing", isosurfacePropertySmoothing); setI("isosurfacePropertySmoothingPower", isosurfacePropertySmoothingPower); + setB("jmolInJSpecView", jmolInJSpecView); setB("justifyMeasurements", justifyMeasurements); setB("legacyAutoBonding", legacyAutoBonding); setB("legacyHAddition", legacyHAddition); @@ -467,6 +468,7 @@ boolean legacyAutoBonding = false; public boolean legacyHAddition = false; public boolean legacyJavaFloat = false; // float/double issue with crystallographic symmetry before Jmol 14.2.5 + boolean jmolInJSpecView = true; boolean modulateOccupancy = true; @@ -972,7 +974,7 @@ + ";bondingversion;contextdepthmax;debug;debugscript;defaultlatttice;defaults;defaultdropscript;diffusepercent;" + ";exportdrivers;exportscale" + ";_filecaching;_filecache;fontcaching;fontscaling;forcefield;language" - + ";legacyautobonding;legacyhaddition;legacyjavafloat" + + ";jmolinjspecview;legacyautobonding;legacyhaddition;legacyjavafloat" + ";loglevel;logfile;loggestures;logcommands;measurestylechime" + ";loadformat;loadligandformat;smilesurlformat;pubchemformat;nihresolverformat;edsurlformat;edsurlcutoff;multiprocessor;navigationmode;" + ";pathforallfiles;perspectivedepth;phongexponent;perspectivemodel;platformspeed" @@ -1061,6 +1063,7 @@ // appendCmd(str, "set autoLoadOrientation true"); app(str, "set bondingVersion " + bondingVersion); app(str, "set legacyAutoBonding " + legacyAutoBonding); + app(str, "set legacyAutoBonding " + legacyAutoBonding); app(str, "set legacyHAddition " + legacyHAddition); app(str, "set legacyJavaFloat " + legacyJavaFloat); app(str, "set minBondDistance " + minBondDistance); Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2017-04-13 04:13:56 UTC (rev 21516) +++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2017-04-13 16:27:44 UTC (rev 21517) @@ -49,19 +49,17 @@ # 10. Run jmol/tools build-release.xml # -Jmol.___JmolVersion="14.13.2" +Jmol.___JmolVersion="14.14.1" -bug fix: mesh capper produces gaps; problems with disabled.link(null) -bug fix: CIP chirality fixed for rule ordering; validated for IUPAC Rules 1, 2, and 3 +new feature: set jmolInJSpecView + -- allows Jmol window to NOT be embedded in JSpecView when JSpecView is opened in Jmol + -- default TRUE + +bug fix: mesh capper producing gaps +bug fix: CIP chirality fixed for rule ordering; validated for IUPAC Rules 1, 2, and 3 (though still some questions about Rule 3) bug fix: print getProperty("cifinfo") without file name fails -TODO: still incomplete fix - see: - load nacl.cif {1 1 1} spacegroup 225 - select @24 - spacefill ionic;lcaocartoon scale 1.0 CAP unitcell "cpk";spacefill off - JmolVersion="14.13.1" // 2017.04.09 new feature: MOL V2000 reader loads > <dataname> blocks into _M.molData Modified: trunk/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Viewer.java 2017-04-13 04:13:56 UTC (rev 21516) +++ trunk/Jmol/src/org/jmol/viewer/Viewer.java 2017-04-13 16:27:44 UTC (rev 21517) @@ -5199,6 +5199,8 @@ return g.rasmolHydrogenSetting; case T.isosurfacekey: return g.isosurfaceKey; + case T.jmolinjspecview: + return g.jmolInJSpecView; case T.justifymeasurements: return g.justifyMeasurements; case T.legacyautobonding: @@ -6454,6 +6456,9 @@ // /11.0/// setRefreshing(value); break; + case T.jmolinjspecview: + g.jmolInJSpecView = value; + break; case T.justifymeasurements: g.justifyMeasurements = value; break; Modified: trunk/Jmol/src/org/openscience/jmol/app/jmolpanel/StatusListener.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/jmolpanel/StatusListener.java 2017-04-13 04:13:56 UTC (rev 21516) +++ trunk/Jmol/src/org/openscience/jmol/app/jmolpanel/StatusListener.java 2017-04-13 16:27:44 UTC (rev 21517) @@ -42,6 +42,7 @@ import org.jmol.api.JmolSyncInterface; import org.jmol.c.CBK; import org.jmol.dialog.Dialog; +import org.jmol.script.T; import org.jmol.util.Logger; import org.jmol.viewer.Viewer; import org.openscience.jmol.app.JmolPlugin; @@ -511,7 +512,7 @@ return; } if (jSpecViewFrame == null) { - jSpecViewFrame = new MainFrame((Component) vwr.display, this); + jSpecViewFrame = new MainFrame(vwr.getBoolean(T.jmolinjspecview) ? (Component) vwr.display : null, this); jSpecViewFrame.setSize(Math.max(1000, jmol.frame.getWidth() + 50), 600); jSpecViewFrame.setLocation(jmol.frame.getLocation().x + 10, jmol.frame .getLocation().y + 100); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2021-08-06 01:39:18
|
Revision: 22195 http://sourceforge.net/p/jmol/code/22195 Author: hansonr Date: 2021-08-06 01:39:11 +0000 (Fri, 06 Aug 2021) Log Message: ----------- decimal formater fix Modified Paths: -------------- trunk/Jmol/jsv/build_info.properties trunk/Jmol/src/javajs/util/DF.java Modified: trunk/Jmol/jsv/build_info.properties =================================================================== --- trunk/Jmol/jsv/build_info.properties 2021-08-06 00:17:30 UTC (rev 22194) +++ trunk/Jmol/jsv/build_info.properties 2021-08-06 01:39:11 UTC (rev 22195) @@ -1,5 +1,5 @@ -#Tue, 03 Aug 2021 13:29:53 -0500 +#Thu, 05 Aug 2021 18:27:07 -0500 #Fri Mar 23 17:45:47 CDT 2018 build.major.number=2 -build.revision.number=11953 +build.revision.number=11954 build.minor.number=0 Modified: trunk/Jmol/src/javajs/util/DF.java =================================================================== --- trunk/Jmol/src/javajs/util/DF.java 2021-08-06 00:17:30 UTC (rev 22194) +++ trunk/Jmol/src/javajs/util/DF.java 2021-08-06 01:39:11 UTC (rev 22195) @@ -78,20 +78,21 @@ n = 0; double d; if (Math.abs(value) < 1) { - n = 10; - d = value * 1e-10; + n = 100; + d = value * 1e-100; } else { - n = -10; - d = value * 1e10; + n = -100; + d = value * 1e100; } String s = ("" + d).toUpperCase(); - int i = s.indexOf("E"); - n = PT.parseInt(s.substring(i + 1)) + n; + int i1 = s.indexOf("E"); String sf; - if (i < 0) { + if (i1 < 0) { sf = "" + value; + int i2 = s.indexOf("E+"); + n = PT.parseInt(s.substring(i1 + (i2 >= 0 ? 2 : 1))) + n; } else { - float f = PT.parseFloat(s.substring(0, i)); + float f = PT.parseFloat(s.substring(0, i1)); if (f == 10 || f == -10) { //d = 9.99999997465; n = -6 --> 10.00000E-5 f /= 10; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2021-09-29 15:30:32
|
Revision: 22235 http://sourceforge.net/p/jmol/code/22235 Author: hansonr Date: 2021-09-29 15:30:28 +0000 (Wed, 29 Sep 2021) Log Message: ----------- Modified Paths: -------------- trunk/Jmol/appletweb/jsmol.zip trunk/Jmol/jsv/build_info.properties Modified: trunk/Jmol/appletweb/jsmol.zip =================================================================== (Binary files differ) Modified: trunk/Jmol/jsv/build_info.properties =================================================================== --- trunk/Jmol/jsv/build_info.properties 2021-09-29 15:05:43 UTC (rev 22234) +++ trunk/Jmol/jsv/build_info.properties 2021-09-29 15:30:28 UTC (rev 22235) @@ -1,5 +1,5 @@ -#Fri, 06 Aug 2021 07:07:40 -0500 +#Wed, 11 Aug 2021 22:09:18 -0500 #Fri Mar 23 17:45:47 CDT 2018 build.major.number=2 -build.revision.number=11955 +build.revision.number=11957 build.minor.number=0 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2021-11-05 12:22:34
|
Revision: 22245 http://sourceforge.net/p/jmol/code/22245 Author: hansonr Date: 2021-11-05 12:22:31 +0000 (Fri, 05 Nov 2021) Log Message: ----------- Jmol.___JmolVersion="14.31.61" also 15.1.61 bug fix: JmolTable.java example does not point to correct site bug fix: CIFReader some first models 0 atoms new feature: JSpecView reading Bruker NMR (Java only; 1r only; drag and drop directory only) new feature: allow select within(cell,555) JmolVersion="14.31.60" also 15.1.60 fix for CIFReader not reading multi-model CIF files. Modified Paths: -------------- trunk/Jmol/jspecview.properties trunk/Jmol/src/jspecview/common/JSViewer.java trunk/Jmol/src/jspecview/common/Spectrum.java trunk/Jmol/src/jspecview/source/BrukerDirReader.java trunk/Jmol/src/jspecview/source/JDXDataObject.java trunk/Jmol/src/jspecview/source/JDXReader.java Modified: trunk/Jmol/jspecview.properties =================================================================== --- trunk/Jmol/jspecview.properties 2021-11-05 04:39:18 UTC (rev 22244) +++ trunk/Jmol/jspecview.properties 2021-11-05 12:22:31 UTC (rev 22245) @@ -1,5 +1,5 @@ #JSpecView Application Properties -#Mon Oct 18 06:21:51 CDT 2021 +#Fri Nov 05 07:04:53 CDT 2021 integralFactor=50 AtoTSeparateWindow=false useDirectoryLastExportedFile=false @@ -19,7 +19,7 @@ showXScale=true showSidePanel=true showToolBar=true -recentFilePaths=C\:\\Users\\hansonr\\Downloads\\odcb6.dx, C\:\\Users\\hansonr\\Downloads\\cinnamaldehyde_NMR.jdx, C\:\\Users\\hansonr\\Downloads\\BORN_C4.DX, C\:\\Users\\hansonr\\Downloads\\BORN_C5.DX, C\:\\Users\\hansonr\\Downloads\\05_CJSV.jdx, C\:\\Users\\hansonr\\Downloads\\05_C.jdx, C\:\\jmol-dev\\workspace\\JSmol\\site\\jsmol\\data\\vinylpyrr.jdx, C\:\\temp\\dv1.jdx, C\:\\jmol-dev\\bobtest\\data\\acetophenone.jdx, C\:\\Users\\hansonr\\AppData\\Local\\Temp\\BetaPinene_100000ug700uL_CDCl3_COSY_400MHz_JDX.jdx +recentFilePaths=C\:\\temp\\nmredata\\sample\\sample1\\djhap_benapyr\\10\\pdata\\1, C\:\\Users\\hansonr\\Downloads\\odcb6.dx, C\:\\Users\\hansonr\\Downloads\\cinnamaldehyde_NMR.jdx, C\:\\Users\\hansonr\\Downloads\\BORN_C4.DX, C\:\\Users\\hansonr\\Downloads\\BORN_C5.DX, C\:\\Users\\hansonr\\Downloads\\05_CJSV.jdx, C\:\\Users\\hansonr\\Downloads\\05_C.jdx, C\:\\jmol-dev\\workspace\\JSmol\\site\\jsmol\\data\\vinylpyrr.jdx, C\:\\temp\\dv1.jdx, C\:\\jmol-dev\\bobtest\\data\\acetophenone.jdx automaticallyOverlay=false showCoordinates=false integralMinY=0.1 Modified: trunk/Jmol/src/jspecview/common/JSViewer.java =================================================================== --- trunk/Jmol/src/jspecview/common/JSViewer.java 2021-11-05 04:39:18 UTC (rev 22244) +++ trunk/Jmol/src/jspecview/common/JSViewer.java 2021-11-05 12:22:31 UTC (rev 22245) @@ -1245,6 +1245,7 @@ newPath = fileName = filePath = "View" + (++nViews); } else if (strUrl != null) { try { + file = apiPlatform.newFile(strUrl); // System.out.println("strURL=" + strUrl); // System.out.println("JSVFileManager.appletDocumentBase=" + // JSVFileManager.appletDocumentBase); @@ -1255,11 +1256,8 @@ fileName = JSVFileManager.getTagName(filePath); // System.out.println("fileName=" + fileName); } catch (MalformedURLException e) { - file = apiPlatform.newFile(strUrl); fileName = file.getName(); newPath = filePath = file.getFullPath(); - if (!file.isDirectory()) - file = null; recentURL = null; } } @@ -1280,7 +1278,7 @@ si.setCursor(GenericPlatform.CURSOR_WAIT); try { si.siSetCurrentSource(isView ? JDXSource.createView(specs) : JDXReader - .createJDXSource(file == null ? data : file, filePath, + .createJDXSource(file, data, filePath, obscureTitleFromUser == Boolean.TRUE, loadImaginary, firstSpec, lastSpec, nmrMaxY)); Modified: trunk/Jmol/src/jspecview/common/Spectrum.java =================================================================== --- trunk/Jmol/src/jspecview/common/Spectrum.java 2021-11-05 04:39:18 UTC (rev 22244) +++ trunk/Jmol/src/jspecview/common/Spectrum.java 2021-11-05 12:22:31 UTC (rev 22245) @@ -243,7 +243,11 @@ return (selectedPeak != null ? selectedPeak.getTitle() : highlightedPeak != null ? highlightedPeak.getTitle() : getTitleLabel()); } + private String titleLabel; + public String getTitleLabel() { + if (titleLabel != null) + return titleLabel; String type = (peakList == null || peakList.size() == 0 ? getQualifiedDataType() : peakList.get(0).getType()); @@ -251,11 +255,10 @@ if (nucleusY != null && !nucleusY.equals("?")) { type = "2D" + type; } else { - type = nucleusX + type; + type = getNominalSpecFreq(nucleusX, getObservedFreq()) + " MHz " + nucleusX + " " + type; } - } - return (type != null && type.length() > 0 ? type + " " : "") + return titleLabel = (type != null && type.length() > 0 ? type + " " : "") + getTitle(); } Modified: trunk/Jmol/src/jspecview/source/BrukerDirReader.java =================================================================== --- trunk/Jmol/src/jspecview/source/BrukerDirReader.java 2021-11-05 04:39:18 UTC (rev 22244) +++ trunk/Jmol/src/jspecview/source/BrukerDirReader.java 2021-11-05 12:22:31 UTC (rev 22245) @@ -21,9 +21,25 @@ public BrukerDirReader() { // for dynamic loading } - public JDXSource getJDXFromBrukerDir(String fullPath) + /** + * Read a Bruker directory looking for 1r. + * + * CURRENTLY will fail to read if 1rr is present. + * + * @param fullPath + * any file in the directory containing procs or acqus or the pdata + * directory or a numbered pdata subdirectory, or the directory + * containing acqus + * @return source + * @throws FileNotFoundException + * @throws Exception + */ + public JDXSource readBrukerDir(String fullPath) throws FileNotFoundException, Exception { File dir = new File(fullPath); + if (!dir.isDirectory()) { + dir = dir.getParentFile(); + } File procs = new File(dir, "procs"); if (!procs.exists()) procs = new File(dir, "pdata/1/procs"); @@ -31,13 +47,12 @@ String brukerDir = pdata.getParentFile().getParent(); Map<String, String> map = new Hashtable<String, String>(); InputStream is = new FileInputStream(new File(brukerDir, "acqus")); - JDXReader.getHeaderMap(is, - map); + JDXReader.getHeaderMap(is, map); is.close(); is = new FileInputStream(procs); JDXReader.getHeaderMap(is, map); is.close(); - + //int np = Integer.parseInt(map.get("##$NCPROC")); not nec. int dtypp = Integer.parseInt(map.get("##$DTYPP")); int byteorp = (dtypp == TYPE_INT ? Integer.parseInt(map.get("##$BYTORDP")) @@ -56,10 +71,13 @@ if (file.exists()) { int len = (int) file.length(); InputStream in = new FileInputStream(file); - byte[] bytes = new byte[len]; + byte[] bytes = new byte[len]; + try { in.read(bytes); in.close(); return new String(bytes); + } catch (Exception e) { + } } return ""; } @@ -68,7 +86,6 @@ JDXSource source) { Lst<String[]> LDRTable = new Lst<String[]>(); - JDXDataObject spectrum = new Spectrum(); spectrum.setTitle(map.get("##TITLE")); spectrum.setJcampdx("5.01"); @@ -86,11 +103,12 @@ String nuc = cleanValue(map.get("##$NUC1")); double ref = Double.parseDouble(shiftRef); double sw_hz = Double.parseDouble(map.get("##$SWH")); - double sw = sw_hz/freq; - double xfactor = sw_hz/data.length; + double sw = sw_hz / freq; + double xfactor = sw_hz / data.length; String solvent = cleanValue(map.get("##$SOLVENT")); String shiftType = "INTERNAL"; - JDXReader.addHeader(LDRTable, "##.SHIFTREFERENCE", shiftType + ", " + solvent + ", 1, " + "INTERNAL, CDCl3, 1, " + shiftRef); + JDXReader.addHeader(LDRTable, "##.SHIFTREFERENCE", shiftType + ", " + + solvent + ", 1, " + "INTERNAL, CDCl3, 1, " + shiftRef); JDXReader.addHeader(LDRTable, "##.OBSERVEFREQUENCY", sfreq); JDXReader.addHeader(LDRTable, "##.OBSERVENUCLEUS", nuc); JDXReader.addHeader(LDRTable, "##SPECTROMETER/DATA SYSTEM", @@ -106,7 +124,8 @@ double shift = ref - sw; // for ease of plotting etc. all data is stored internally in increasing order for (int i = 0; i < npoints; i++) { - xyCoords[i] = new Coordinate().set((npoints - i - 1)*xfactor/freq+shift, data[i]); + xyCoords[i] = new Coordinate() + .set((npoints - i - 1) * xfactor / freq + shift, data[i]); } xyCoords = Coordinate.reverse(xyCoords); spectrum.setXYCoords(xyCoords); @@ -118,11 +137,14 @@ spectrum.setYUnits("ARBITRARY UNITS"); spectrum.setNumDim(1); spectrum.setObservedNucleus(nuc); + if (spectrum.getMaxY() >= 10000) + spectrum.normalizeSimulation(1000); source.addJDXSpectrum(null, (Spectrum) spectrum, false); } private String cleanValue(String val) { - return (val == null ? "" : val.startsWith("<") ? val.substring(1, val.length() - 1) : val); + return (val == null ? "" + : val.startsWith("<") ? val.substring(1, val.length() - 1) : val); } private double[] getData(File file, int dtypp, int byteorp) Modified: trunk/Jmol/src/jspecview/source/JDXDataObject.java =================================================================== --- trunk/Jmol/src/jspecview/source/JDXDataObject.java 2021-11-05 04:39:18 UTC (rev 22244) +++ trunk/Jmol/src/jspecview/source/JDXDataObject.java 2021-11-05 12:22:31 UTC (rev 22245) @@ -66,7 +66,7 @@ /** * JDXReader only */ - double fileFirstX = ERROR; + public double fileFirstX = ERROR; /** * JDXReader only Modified: trunk/Jmol/src/jspecview/source/JDXReader.java =================================================================== --- trunk/Jmol/src/jspecview/source/JDXReader.java 2021-11-05 04:39:18 UTC (rev 22244) +++ trunk/Jmol/src/jspecview/source/JDXReader.java 2021-11-05 12:22:31 UTC (rev 22245) @@ -20,6 +20,7 @@ package jspecview.source; import java.io.BufferedReader; +import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.StringReader; @@ -28,26 +29,25 @@ import java.util.Map; import java.util.StringTokenizer; -import javajs.util.AU; -import javajs.util.Lst; -import javajs.util.PT; -import javajs.util.SB; - -import org.jmol.api.JmolJDXMOLReader; import org.jmol.api.GenericFileInterface; import org.jmol.api.JmolJDXMOLParser; +import org.jmol.api.JmolJDXMOLReader; import org.jmol.util.Logger; import org.jmol.viewer.Viewer; +import javajs.api.Interface; +import javajs.util.AU; +import javajs.util.Lst; +import javajs.util.PT; +import javajs.util.SB; import jspecview.api.JSVZipReader; import jspecview.api.SourceReader; import jspecview.common.Coordinate; -import jspecview.common.Spectrum; import jspecview.common.JSVFileManager; import jspecview.common.JSViewer; import jspecview.common.PeakInfo; +import jspecview.common.Spectrum; import jspecview.exception.JSVException; -import javajs.api.Interface; /** * <code>JDXFileReader</code> reads JDX data, including complex BLOCK files that @@ -139,7 +139,7 @@ */ public static JDXSource createJDXSourceFromStream(InputStream in, boolean obscure, boolean loadImaginary, float nmrMaxY) throws Exception { - return createJDXSource(in, + return createJDXSource(null, in, "stream", obscure, loadImaginary, -1, -1, nmrMaxY); } @@ -146,7 +146,7 @@ public static Map<String, String> getHeaderMap(InputStream in, Map<String, String> map) throws Exception { if (map == null) map = new LinkedHashMap<String, String>(); - Lst<String[]> hlist = createJDXSource(in, null, false, false, 0, -1, 0).getJDXSpectrum(0).headerTable; + Lst<String[]> hlist = createJDXSource(null, in, null, false, false, 0, -1, 0).getJDXSpectrum(0).headerTable; for (int i = 0, n = hlist.size(); i < n; i++) { String[] h = hlist.get(i); // element [2] is the cleaned LABEL @@ -165,6 +165,7 @@ /** * general entrance method * + * @param file * @param in * one of: BufferedReader, InputStream, String, byte[] * @param filePath @@ -176,16 +177,12 @@ * @return source * @throws Exception */ - public static JDXSource createJDXSource(Object in, String filePath, - boolean obscure, + public static JDXSource createJDXSource(GenericFileInterface file, Object in, + String filePath, boolean obscure, boolean loadImaginary, int iSpecFirst, int iSpecLast, float nmrMaxY) throws Exception { - - - boolean isHeaderOnly = (iSpecLast < iSpecFirst); - String data = null; BufferedReader br; if (in instanceof String || AU.isAB(in)) { @@ -194,13 +191,6 @@ br = JSVFileManager.getBufferedReaderForStringOrBytes(in); } else if (in instanceof InputStream) { br = JSVFileManager.getBufferedReaderForInputStream((InputStream) in); - } else if (in instanceof GenericFileInterface){ - GenericFileInterface file = (GenericFileInterface) in; - JDXSource source = ((BrukerDirReader) Interface.getInterface("jspecview.source.BrukerDirReader")).getJDXFromBrukerDir(file.getFullPath()); - Spectrum spectrum = source.getJDXSpectrum(0); - if (spectrum.getMaxY() >= 10000) - spectrum.normalizeSimulation(1000); - return source; } else { br = (BufferedReader) in; } @@ -209,6 +199,8 @@ JDXSource source = null; try { if (br == null) { + if (file != null && file.isDirectory()) + return readBrukerFileDir(file.getFullPath()); br = JSVFileManager.getBufferedReaderFromName(filePath, "##TITLE"); } if (!isHeaderOnly) { @@ -217,6 +209,11 @@ br.read(chs, 0, 400); br.reset(); header = new String(chs); + if (header.indexOf('\0') >= 0 || header.indexOf('\u00FF') >= 0 + || header.indexOf("##TITLE= Parameter file") == 0 + || header.indexOf("##TITLE= Audit trail") == 0 + ) + return readBrukerFileDir(file.getParentAsFile().getFullPath()); int pt1 = header.indexOf('#'); int pt2 = header.indexOf('<'); if (pt1 < 0 || pt2 >= 0 && pt2 < pt1) { @@ -224,10 +221,11 @@ xmlType = (xmlType.contains("<animl") || xmlType.contains("<!doctype technique") ? "AnIML" : xmlType.contains("xml-cml") ? "CML" : null); - if (xmlType != null) - source = ((SourceReader) JSViewer - .getInterface("jspecview.source." + xmlType + "Reader")) - .getSource(filePath, br); + if (xmlType == null) + return readBrukerFileDir(file.getFullPath()); + source = ((SourceReader) JSViewer + .getInterface("jspecview.source." + xmlType + "Reader")) + .getSource(filePath, br); br.close(); if (source == null) { Logger.error(header + "..."); @@ -262,6 +260,11 @@ } } + private static JDXSource readBrukerFileDir(String filePath) throws FileNotFoundException, Exception { + return ((BrukerDirReader) Interface.getInterface("jspecview.source.BrukerDirReader")).readBrukerDir(filePath); + } + + /** * The starting point for reading all data. * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2022-01-07 21:22:27
|
Revision: 22293 http://sourceforge.net/p/jmol/code/22293 Author: hansonr Date: 2022-01-07 21:22:24 +0000 (Fri, 07 Jan 2022) Log Message: ----------- Jmol.___JmolVersion="14.32.11" retired code: Jmol applet, netscape jar and package, java.applet.Applet, and javax.swing.JApplet all moved to /unused/ Modified Paths: -------------- trunk/Jmol/.classpath trunk/Jmol/build-ASimpleJvxlWriter.xml trunk/Jmol/build-jspecview.xml trunk/Jmol/build.xml trunk/Jmol/builddist.xml trunk/Jmol/src/jspecview/java/AwtPlatform.java trunk/Jmol/src/org/jmol/viewer/Jmol.properties trunk/Jmol/unused/applet/Jmol.java trunk/Jmol/unused/applet/WrappedApplet.java trunk/Jmol/unused/applet/WrappedAppletLoader.java Added Paths: ----------- trunk/Jmol/unused/JmolApplet.java trunk/Jmol/unused/JmolSmilesApplet.java trunk/Jmol/unused/applet/ trunk/Jmol/unused/jsv/ trunk/Jmol/unused/jsv/applet/ trunk/Jmol/unused/netscape.jar Removed Paths: ------------- trunk/Jmol/jars/netscape.jar trunk/Jmol/src/JmolApplet.java trunk/Jmol/src/JmolSmilesApplet.java trunk/Jmol/src/jspecview/applet/ trunk/Jmol/src/org/jmol/applet/ Modified: trunk/Jmol/.classpath =================================================================== --- trunk/Jmol/.classpath 2022-01-06 17:45:06 UTC (rev 22292) +++ trunk/Jmol/.classpath 2022-01-07 21:22:24 UTC (rev 22293) @@ -5,7 +5,7 @@ <classpathentry kind="src" path="examples/externalAppletControls"/> <classpathentry kind="src" path="test"/> <classpathentry excluding="org/jmol/screensaver/JmolScreensaver.java" kind="src" path="screensaver/src/java"/> - <classpathentry kind="lib" path="jars/netscape.jar"/> + <!-- classpathentry kind="lib" path="jars/netscape.jar"/ --> <classpathentry kind="lib" path="screensaver/jars/saverbeans-api.jar"/> <classpathentry kind="lib" path="jars/junit.jar"/> <classpathentry kind="lib" path="jars/jni-inchi-0.7-jar-with-dependencies.jar"/> Modified: trunk/Jmol/build-ASimpleJvxlWriter.xml =================================================================== --- trunk/Jmol/build-ASimpleJvxlWriter.xml 2022-01-06 17:45:06 UTC (rev 22292) +++ trunk/Jmol/build-ASimpleJvxlWriter.xml 2022-01-07 21:22:24 UTC (rev 22293) @@ -60,7 +60,7 @@ <path id="apisio-project.class.path"> <fileset dir="${lib.dir}"> <include name="${vecmath.jar}" /> - <include name="netscape.jar" /> + <!-- include name="netscape.jar" / --> <include name="gnujaxp.jar" /> </fileset> </path> @@ -1011,7 +1011,7 @@ <copy todir="build/dist/jmolapisio-${version}/${lib.dir}" > <fileset dir="${lib.dir}"> <include name="${vecmath.jar}"/> - <include name="netscape.jar"/> + <!-- include name="netscape.jar"/ --> </fileset> </copy> Modified: trunk/Jmol/build-jspecview.xml =================================================================== --- trunk/Jmol/build-jspecview.xml 2022-01-06 17:45:06 UTC (rev 22292) +++ trunk/Jmol/build-jspecview.xml 2022-01-07 21:22:24 UTC (rev 22293) @@ -36,7 +36,7 @@ <path id="jspecview.classpath"> <pathelement location="bin"/> - <pathelement location="${lib.dir}/netscape.jar"/> + <!-- pathelement location="${lib.dir}/netscape.jar"/ --> <!-- pathelement location="${lib.dir}/${itext.jar}"/ --> </path> Modified: trunk/Jmol/build.xml =================================================================== --- trunk/Jmol/build.xml 2022-01-06 17:45:06 UTC (rev 22292) +++ trunk/Jmol/build.xml 2022-01-07 21:22:24 UTC (rev 22293) @@ -103,11 +103,11 @@ <property name="appjars.dir" value="build/appjars" /> <property name="classes.dir" value="build/classes" /> <property name="test-classes.dir" value="build/test-classes" /> - <property name="applet.classes.dir" value="build/applet-classes" /> + <!-- property name="applet.classes.dir" value="build/applet-classes" / --> <property name="apisio.classes.dir" value="build/apisio-classes" /> <property name="tests.dir" value="build/unit.tests" /> <property name="javadoc.dir" value="build/javadoc" /> - <property name="jmol.applet.web.dir" value="appletweb" /> + <!-- property name="jmol.applet.web.dir" value="appletweb" / --> <property name="docbook-xsl" value="docbook-xsl-1.76.1" /> <property name="docbook-xml" value="docbook-xml-4.4" /> <property name="naga.jar" value="naga-3_0.jar" /> @@ -141,16 +141,16 @@ </fileset> </path> - <path id="applet-project.class.path"> + <!-- path id="applet-project.class.path"> <fileset dir="${lib.dir}"> <include name="*.jar" /> </fileset> - </path> + </path> --> <path id="apisio-project.class.path"> <fileset dir="${lib.dir}"> <!-- include name="${vecmath.jar}" / --> - <include name="netscape.jar" /> + <!-- include name="netscape.jar" / --> <include name="gnujaxp.jar" /> </fileset> </path> @@ -817,7 +817,7 @@ </target> - <target name="applet-jar" id="applet-jar" + <!-- target name="applet-jar" id="applet-jar" depends="applet-classes"> <if><equals arg1="${Private.propertyFile}" arg2="none" /> <then><echo>Skipping applet-jar</echo></then><else> @@ -979,13 +979,13 @@ </fileset> </jar> -<!-- +<!- - <jar destfile="build/JmolApplet0_Spectrum.jar" manifest="manifest/applet.txt"> <fileset dir="${applet.classes.dir}"> <include name="org/jmol/spectrum/**" /> </fileset> </jar> ---> +- -> <jar destfile="build/JmolApplet0_Symmetry.jar" manifest="manifest/applet.txt"> <fileset dir="${applet.classes.dir}"> <include name="org/jmol/symmetry/**" /> @@ -993,8 +993,8 @@ </jar> - <!-- vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv --> - <!-- changes to this must be replicated below for the signed applet --> + <! - - vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv - - > + <! - - changes to this must be replicated below for the signed applet - - > <jar destfile="build/JmolApplet0.jar" manifest="manifest/applet0.txt" index="true" > <fileset dir="${applet.classes.dir}"> @@ -1027,9 +1027,9 @@ <include name="org/jmol/viewer/**" /> </fileset> - <!-- changes to this must be replicated below for the all-permissions applet --> + <! - - changes to this must be replicated below for the all-permissions applet - - > <indexjars> - <!-- no export or multitouch here - this is the sandboxed applet --> + <! - - no export or multitouch here - this is the sandboxed applet - - > <pathelement path="build/JmolApplet0_Console.jar" /> <pathelement path="build/JmolApplet0_Image.jar" /> <pathelement path="build/JmolApplet0_JSV.jar" /> @@ -1051,8 +1051,8 @@ <pathelement path="build/JmolApplet0_ShapeSurface.jar" /> <pathelement path="build/JmolApplet0_Smiles.jar" /> <pathelement path="build/JmolApplet0_Symmetry.jar" /> -<!-- <pathelement path="build/JmolApplet0_Spectrum.jar" /> - <fileset dir="build" includes="JmolApplet0_i18n_*.jar" /> --> +< ! - - <pathelement path="build/JmolApplet0_Spectrum.jar" /> + <fileset dir="build" includes="JmolApplet0_i18n_*.jar" /> - - > </indexjars> </jar> <echo message="creating JmolLib.jar" level="info" /> @@ -1076,7 +1076,7 @@ <exclude name="org/jmol/multitouch/sparshui/*" /> <exclude name="org/jmol/popup/**/*" /> <exclude name="org/openscience/**/*" /> - <!-- just need sparshUI gestureType.class --> + < ! - - just need sparshUI gestureType.class - - > <exclude name="com/sparshui/client/*" /> <exclude name="com/sparshui/common/**/**/*" /> <exclude name="com/sparshui/cpp/*" /> @@ -1251,13 +1251,13 @@ </fileset> </jar> -<!-- +< ! - - <jar destfile="build/JmolAppletSigned0_Spectrum.jar" manifest="manifest/appletSigned.txt"> <fileset dir="${applet.classes.dir}"> <include name="org/jmol/spectrum/**" /> </fileset> </jar> ---> +- - > <jar destfile="build/JmolAppletSigned0_Symmetry.jar" manifest="manifest/appletSigned.txt"> <fileset dir="${applet.classes.dir}"> @@ -1321,10 +1321,10 @@ <pathelement path="build/JmolAppletSigned0_ShapeSurface.jar" /> <pathelement path="build/JmolAppletSigned0_Smiles.jar" /> <pathelement path="build/JmolAppletSigned0_Symmetry.jar" /> - <!-- + < ! - - <pathelement path="build/JmolAppletSigned0_Spectrum.jar" /> <fileset dir="build" includes="JmolAppletSigned0_i18n_*.jar" /> - --> + - - > </indexjars> </jar> @@ -1341,7 +1341,7 @@ <if><equals arg1="${Private.propertyFile}" arg2="none" /> <then><echo>Skipping smiles-applet-jar</echo></then><else> - <!-- JmolSmilesApplet.jar is skipped for now because it has no HTML5 equivalent + <! - - JmolSmilesApplet.jar is skipped for now because it has no HTML5 equivalent <echo message="Creating JmolSmilesApplet.jar" /> <jar destfile="build/JmolSmilesApplet.jar" @@ -1378,9 +1378,9 @@ <param name="sign-jar-file-name" value="JmolSmilesApplet.jar" /> </antcall> - --> + - - > </else></if> - </target> + </target> --> <!-- target name="dist" id="dist" @@ -1585,7 +1585,7 @@ <copy todir="build/dist/jmolapisio-${version}/${lib.dir}" > <fileset dir="${lib.dir}"> <!-- include name="${vecmath.jar}"/ --> - <include name="netscape.jar"/> + <!-- include name="netscape.jar"/ --> </fileset> </copy> @@ -1934,15 +1934,15 @@ <ant antfile="tools/build-i18n.xml" target="spotless-i18n"/> </target> - <target name="dotnet" depends="applet-jar"> + <!-- target name="dotnet" depends="applet-jar"> <exec executable="${ikvm.home}/ikvmc.exe"> <arg value="-target:library"/> <arg value="-out:build/JmolLib.dll"/> <arg value="-debug"/> <arg value="build/JmolLib.jar"/> - <!-- arg value="${lib.dir}/${vecmath.jar}"/ --> + < ! - - arg value="${lib.dir}/${vecmath.jar}"/ - - > </exec> - </target> + </target> --> Modified: trunk/Jmol/builddist.xml =================================================================== --- trunk/Jmol/builddist.xml 2022-01-06 17:45:06 UTC (rev 22292) +++ trunk/Jmol/builddist.xml 2022-01-07 21:22:24 UTC (rev 22293) @@ -140,7 +140,7 @@ <path id="apisio-project.class.path"> <fileset dir="${lib.dir}"> <!-- include name="${vecmath.jar}" / --> - <include name="netscape.jar" /> + <!-- include name="netscape.jar" / --> <include name="gnujaxp.jar" /> </fileset> </path> Deleted: trunk/Jmol/jars/netscape.jar =================================================================== (Binary files differ) Deleted: trunk/Jmol/src/JmolApplet.java =================================================================== --- trunk/Jmol/src/JmolApplet.java 2022-01-06 17:45:06 UTC (rev 22292) +++ trunk/Jmol/src/JmolApplet.java 2022-01-07 21:22:24 UTC (rev 22293) @@ -1,272 +0,0 @@ -/* $RCSfile$ - * $Author: hansonr $ - * $Date: 2018-01-28 23:38:16 -0600 (Sun, 28 Jan 2018) $ - * $Revision: 21814 $ - * - * Copyright (C) 2004-2005 The Jmol Development Team - * - * Contact: jmo...@li... - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -/** - * This class only exists so that people can declare - * JmolApplet in applet tags without having to give a full package - * specification - * - * see org.jmol.applet.Jmol - * - */ - - -import java.util.Map; - -import javajs.util.SB; - -import org.jmol.api.JmolAppletInterface; -import org.jmol.api.JmolSyncInterface; -import org.jmol.applet.AppletWrapper; -import org.jmol.util.GenericApplet; - -public class JmolApplet extends AppletWrapper implements - JmolAppletInterface { - - //protected void finalize() throws Throwable { - // System.out.println("JmolApplet finalize " + this); - // super.finalize(); - //} - - public JmolApplet() { - super("jmol75x29x8.gif", 3, preloadClasses); - //System.out.println("JmolApplet constructor " + this); - //BH focus test: this.setFocusable(false); - } - - private final static String[] preloadClasses = { - "org.jmol.viewer.JC", // 1b - "org.jmol.g3d.Graphics3D", // 1c - "org.jmol.modelset.Atom", // 1d - "org.jmol.util.Escape", // 1e - "org.jmol.adapter.smarter.SmarterJmolAdapter", // 1f - //"org.jmol.popup.JmolPopup", - }; - - @Override - public String getPropertyAsString(String infoType) { - return (wrappedApplet == null ? null : "" - + ((GenericApplet) wrappedApplet).getPropertyAsString("" + infoType)); - } - - @Override - public String getPropertyAsString(String infoType, String paramInfo) { - return (wrappedApplet == null ? null : "" - + ((GenericApplet) wrappedApplet).getPropertyAsString("" + infoType, "" + paramInfo)); - } - - @Override - public String getPropertyAsJSON(String infoType) { - return (wrappedApplet == null ? null : "" - + ((GenericApplet) wrappedApplet).getPropertyAsJSON("" + infoType)); - } - - @Override - public String getPropertyAsJSON(String infoType, String paramInfo) { - return (wrappedApplet == null ? null : "" - + ((GenericApplet) wrappedApplet).getPropertyAsJSON("" + infoType, "" + paramInfo)); - } - - @Override - public Map<String, Object> getJSpecViewProperty(String infoType) { - return null; - } - - @Override - public Object getProperty(String infoType, String paramInfo) { - return (wrappedApplet == null ? null : ((GenericApplet) wrappedApplet).getProperty("" - + infoType, "" + paramInfo)); - } - - @Override - public Object getProperty(String infoType) { - return (wrappedApplet == null ? null : ((GenericApplet) wrappedApplet).getProperty("" - + infoType)); - } - - @Override - public String loadInlineArray(String[] strModels, String script, boolean isAppend) { - if (wrappedApplet == null || strModels == null || strModels.length == 0) - return null; - String s = "" + strModels[0]; - if (s.indexOf('\n') >= 0 || s.indexOf('\r') >= 0) { - String[] converted = new String[strModels.length]; - for (int i = 0; i < strModels.length; ++i) - converted[i] = "" + strModels[i]; - return ((GenericApplet) wrappedApplet).loadInlineArray(converted, "" + script, isAppend); - } - SB sb = new SB(); - for (int i = 0; i < strModels.length; ++i) - sb.append(strModels[i]).appendC('\n'); - return ((GenericApplet) wrappedApplet).loadInlineString(sb.toString(), "" + script, isAppend); - } - - @Override - public String loadInlineString(String strModel, String script, boolean isAppend) { - return (wrappedApplet == null ? null : - ((GenericApplet) wrappedApplet).loadInlineString("" + strModel, "" + script, isAppend)); - } - - // bizarre Mac OS X / Java bug: - // Mac cannot differentiate between signatures String and String[] - // so, instead, we deprecate these and go for the above two methods only. - - /** - * @deprecated - * @param strModel - * @return error or null - */ - @Override - @Deprecated - public String loadInline(String strModel) { - return (wrappedApplet == null ? null : - ((GenericApplet) wrappedApplet).loadInline("" + strModel)); - } - - /** - * @deprecated - * @param strModel - * @param script - * @return error or null - */ - @Override - @Deprecated - public String loadInline(String strModel, String script) { - return (wrappedApplet == null ? null : - ((GenericApplet) wrappedApplet).loadInline("" + strModel, "" + script)); - } - - /** - * @deprecated - * @param strModels - * @return error or null - */ - @Override - @Deprecated - public String loadInline(String[] strModels) { - return (wrappedApplet == null ? null : - ((GenericApplet) wrappedApplet).loadInline(strModels)); - } - - /** - * @deprecated - * @param strModels - * @param script - * @return error or null - */ - @Override - @Deprecated - public String loadInline(String[] strModels, String script) { - return (wrappedApplet == null ? null : - ((GenericApplet) wrappedApplet).loadInline(strModels, script)); - } - - @Override - public String loadDOMNode(Object DOMNode) { - return (wrappedApplet == null ? null : ((GenericApplet) wrappedApplet).loadDOMNode(DOMNode)); - } - - @Override - public void script(String script) { - //System.out.println("JmolApplet script test " + script + " " + wrappedApplet); - if (wrappedApplet != null) - ((GenericApplet) wrappedApplet).script("" + script); - } - - @Override - public void syncScript(String script) { - if (wrappedApplet != null) - ((GenericApplet) wrappedApplet).syncScript("" + script); - } - - @Override - public Object setStereoGraphics(boolean isStereo) { - return (wrappedApplet == null ? null : - ((GenericApplet) wrappedApplet).setStereoGraphics(isStereo)); - } - - @Override - public String scriptNoWait(String script) { - if (wrappedApplet != null) - return "" + (((GenericApplet) wrappedApplet).scriptNoWait("" + script)); - return null; - } - - @Override - public String scriptCheck(String script) { - if (wrappedApplet != null) - return "" + (((GenericApplet) wrappedApplet).scriptCheck("" + script)); - return null; - } - - @Override - public String scriptWait(String script) { - if (wrappedApplet != null) - return "" + (((GenericApplet) wrappedApplet).scriptWait("" + script)); - return null; - } - - @Override - public String scriptWait(String script, String statusParams) { - if (statusParams == null) - statusParams = ""; - if (wrappedApplet != null) - return "" + (((GenericApplet) wrappedApplet).scriptWait("" + script, statusParams)); - return null; - } - - @Override - public String scriptWaitOutput(String script) { - if (wrappedApplet != null) - return "" + (((GenericApplet) wrappedApplet).scriptWaitOutput("" + script)); - return null; - } - - public void registerApplet(String id, String fullName) { - // does not work looking for JSVApplet! - JmolSyncInterface applet = (JmolSyncInterface) getAppletContext().getApplet(id); - if (applet == null) - System.out.println("could not find " + id); - register(fullName, applet); - } - - @Override - public void register(String id, JmolSyncInterface jsi) { - if (wrappedApplet != null) - ((GenericApplet) wrappedApplet).register(id, jsi); - } - - @Override - public int getModelIndexFromId(String id) { - return (wrappedApplet == null ? Integer.MIN_VALUE : - ((GenericApplet) wrappedApplet).getModelIndexFromId(id)); - } - - @Override - public void notifyAudioEnded(Object htParams) { - if (wrappedApplet != null) - ((GenericApplet) wrappedApplet).notifyAudioEnded(htParams); - } - -} Deleted: trunk/Jmol/src/JmolSmilesApplet.java =================================================================== --- trunk/Jmol/src/JmolSmilesApplet.java 2022-01-06 17:45:06 UTC (rev 22292) +++ trunk/Jmol/src/JmolSmilesApplet.java 2022-01-07 21:22:24 UTC (rev 22293) @@ -1,151 +0,0 @@ -/* $RCSfile$ - * $Author: hansonr $ - * $Date: 2010-04-13 22:22:44 -0500 (Tue, 13 Apr 2010) $ - * $Revision: 12851 $ - * - * Copyright (C) 2004-2005 The Jmol Development Team - * - * Contact: jmo...@li... - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - */ - - -import java.applet.Applet; -import java.awt.Event; -import java.awt.Graphics; - -import org.jmol.util.Logger; -import org.jmol.viewer.JC; -import org.jmol.smiles.InvalidSmilesException; -import org.jmol.smiles.SmilesMatcher; - -/* - * JmolSmilesApplet is a small applet that can do interesting things with - * SMILES strings. It is a subset of Jmol with no graphics capability - * - * find(String pattern, String smiles, boolean isSmarts, boolean isAll) - * getLastError() - * getRelationship(String smiles1, String smiles2) - * reverseChiralit(String smiles) - * setDebug(boolean TF) - * - * - */ -public class JmolSmilesApplet extends Applet { - - @Override - public void init() { - System.out.println("JmolSmilesApplet init"); - //System.out.println(find("C[C@@H]1CCCC[C@@H]1C","C[C@@H]1CCCC[C@@H]1C", false, false)); - } - - private static String lastError; - - /** - * - * @return last error generated by the find command - * - */ - public String getLastError() { - return lastError; - } - - /** - * set debugging on or off - * - * @param TF - */ - public void setDebug(boolean TF) { - Logger.setLogLevel(TF ? Logger.LEVEL_DEBUG : Logger.LEVEL_INFO); - } - - /** - * When used for student answer checking, the student's response - * is the SMILES and the key is the PATTERN -- that is, we seek - * to know if the correct answer (pattern) is IN the student's - * answer (smiles). - * @param pattern - * @param smiles - * @param isSmarts - * @param isAll set TRUE if you want a full count - * @return n>0 with isAll TRUE: found n occurances, - * 1: found at least 1, 0: not found, -1: error - */ - public int find(String pattern, String smiles, boolean isSmarts, boolean isAll) { - lastError = null; - int ret = -1; - try { - SmilesMatcher sm = new SmilesMatcher(); - - int[][] result = sm.find(pattern, smiles, (isSmarts ? - JC.SMILES_TYPE_SMARTS : JC.SMILES_TYPE_SMILES) - | (isAll ? 0 : JC.SMILES_FIRST_MATCH_ONLY)); - ret = (result == null ? -1 : result.length); - } catch (Exception e) { - System.out.println(e.getMessage()); - lastError = InvalidSmilesException.getLastError(); - } catch (Error er) { - System.out.println(er.getMessage()); - } - return ret; - } - - /** - * compares two SMILES strings - * - * @param smiles1 - * @param smiles2 - * @return IDENTICAL, ENANTIOMERS, DIASTEREOMERS, CONSTITUTIONAL ISOMERS, NONE, or an error message - */ - public String getRelationship(String smiles1, String smiles2) { - try { - return (new SmilesMatcher()).getRelationship(smiles1, smiles2); - } catch (Exception e) { - return e.toString(); - } - } - - - /** - * reverse the chirality throughout a SMILES string - * - * @param smiles - * @return reversed chirality SMILES string - */ - public String reverseChirality(String smiles) { - return (new SmilesMatcher()).reverseChirality(smiles); - } - - @Override - public String getAppletInfo() { - return "JmolSmilesApplet"; - } - - @Override - public void update(Graphics g) {} - @Override - public void paint(Graphics g) {} - @Override - public boolean handleEvent(Event e) { - return false; - } - - @Override - public void destroy() { - System.out.println("JmolSmilesApplet destroyed"); - } - -} Modified: trunk/Jmol/src/jspecview/java/AwtPlatform.java =================================================================== --- trunk/Jmol/src/jspecview/java/AwtPlatform.java 2022-01-06 17:45:06 UTC (rev 22292) +++ trunk/Jmol/src/jspecview/java/AwtPlatform.java 2022-01-07 21:22:24 UTC (rev 22293) @@ -11,9 +11,6 @@ import java.util.Date; import java.util.Map; -import javajs.util.P3; -import javajs.util.Rdr; - import javax.swing.JDialog; import javax.swing.JOptionPane; @@ -27,12 +24,11 @@ import org.jmol.i18n.GT; import org.jmol.util.Font; +import javajs.util.P3; +import javajs.util.Rdr; import jspecview.api.JSVPanel; -import netscape.javascript.JSObject; - - public class AwtPlatform implements GenericPlatform { PlatformViewer vwr; @@ -228,13 +224,14 @@ @Override public Object getJsObjectInfo(Object[] jsObject, String method, Object[] args) { - JSObject DOMNode = (JSObject) jsObject[0]; - if (method == null) { - String namespaceURI = (String) DOMNode.getMember("namespaceURI"); - String localName = (String) DOMNode.getMember("localName"); - return "namespaceURI=\"" + namespaceURI + "\" localName=\"" + localName + "\""; - } - return (args == null ? DOMNode.getMember(method) : DOMNode.call(method, args)); + return null; +// JSObject DOMNode = (JSObject) jsObject[0]; +// if (method == null) { +// String namespaceURI = (String) DOMNode.getMember("namespaceURI"); +// String localName = (String) DOMNode.getMember("localName"); +// return "namespaceURI=\"" + namespaceURI + "\" localName=\"" + localName + "\""; +// } +// return (args == null ? DOMNode.getMember(method) : DOMNode.call(method, args)); } @Override Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2022-01-06 17:45:06 UTC (rev 22292) +++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2022-01-07 21:22:24 UTC (rev 22293) @@ -74,7 +74,11 @@ -Jmol.___JmolVersion="14.32.10" +Jmol.___JmolVersion="14.32.11" + +retired code: Jmol applet, netscape jar and package, java.applet.Applet, and javax.swing.JApplet all moved to /unused/ + +JmolVersion="14.32.10" also 15.2.10 bug fix: Amimation start during pause of previous animation will halt wrong animation thread. Copied: trunk/Jmol/unused/JmolApplet.java (from rev 22272, trunk/Jmol/src/JmolApplet.java) =================================================================== --- trunk/Jmol/unused/JmolApplet.java (rev 0) +++ trunk/Jmol/unused/JmolApplet.java 2022-01-07 21:22:24 UTC (rev 22293) @@ -0,0 +1,272 @@ +/* $RCSfile$ + * $Author: hansonr $ + * $Date: 2018-01-28 23:38:16 -0600 (Sun, 28 Jan 2018) $ + * $Revision: 21814 $ + * + * Copyright (C) 2004-2005 The Jmol Development Team + * + * Contact: jmo...@li... + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +/** + * This class only exists so that people can declare + * JmolApplet in applet tags without having to give a full package + * specification + * + * see org.jmol.applet.Jmol + * + */ + + +import java.util.Map; + +import javajs.util.SB; + +import org.jmol.api.JmolAppletInterface; +import org.jmol.api.JmolSyncInterface; +import org.jmol.applet.AppletWrapper; +import org.jmol.util.GenericApplet; + +public class JmolApplet extends AppletWrapper implements + JmolAppletInterface { + + //protected void finalize() throws Throwable { + // System.out.println("JmolApplet finalize " + this); + // super.finalize(); + //} + + public JmolApplet() { + super("jmol75x29x8.gif", 3, preloadClasses); + //System.out.println("JmolApplet constructor " + this); + //BH focus test: this.setFocusable(false); + } + + private final static String[] preloadClasses = { + "org.jmol.viewer.JC", // 1b + "org.jmol.g3d.Graphics3D", // 1c + "org.jmol.modelset.Atom", // 1d + "org.jmol.util.Escape", // 1e + "org.jmol.adapter.smarter.SmarterJmolAdapter", // 1f + //"org.jmol.popup.JmolPopup", + }; + + @Override + public String getPropertyAsString(String infoType) { + return (wrappedApplet == null ? null : "" + + ((GenericApplet) wrappedApplet).getPropertyAsString("" + infoType)); + } + + @Override + public String getPropertyAsString(String infoType, String paramInfo) { + return (wrappedApplet == null ? null : "" + + ((GenericApplet) wrappedApplet).getPropertyAsString("" + infoType, "" + paramInfo)); + } + + @Override + public String getPropertyAsJSON(String infoType) { + return (wrappedApplet == null ? null : "" + + ((GenericApplet) wrappedApplet).getPropertyAsJSON("" + infoType)); + } + + @Override + public String getPropertyAsJSON(String infoType, String paramInfo) { + return (wrappedApplet == null ? null : "" + + ((GenericApplet) wrappedApplet).getPropertyAsJSON("" + infoType, "" + paramInfo)); + } + + @Override + public Map<String, Object> getJSpecViewProperty(String infoType) { + return null; + } + + @Override + public Object getProperty(String infoType, String paramInfo) { + return (wrappedApplet == null ? null : ((GenericApplet) wrappedApplet).getProperty("" + + infoType, "" + paramInfo)); + } + + @Override + public Object getProperty(String infoType) { + return (wrappedApplet == null ? null : ((GenericApplet) wrappedApplet).getProperty("" + + infoType)); + } + + @Override + public String loadInlineArray(String[] strModels, String script, boolean isAppend) { + if (wrappedApplet == null || strModels == null || strModels.length == 0) + return null; + String s = "" + strModels[0]; + if (s.indexOf('\n') >= 0 || s.indexOf('\r') >= 0) { + String[] converted = new String[strModels.length]; + for (int i = 0; i < strModels.length; ++i) + converted[i] = "" + strModels[i]; + return ((GenericApplet) wrappedApplet).loadInlineArray(converted, "" + script, isAppend); + } + SB sb = new SB(); + for (int i = 0; i < strModels.length; ++i) + sb.append(strModels[i]).appendC('\n'); + return ((GenericApplet) wrappedApplet).loadInlineString(sb.toString(), "" + script, isAppend); + } + + @Override + public String loadInlineString(String strModel, String script, boolean isAppend) { + return (wrappedApplet == null ? null : + ((GenericApplet) wrappedApplet).loadInlineString("" + strModel, "" + script, isAppend)); + } + + // bizarre Mac OS X / Java bug: + // Mac cannot differentiate between signatures String and String[] + // so, instead, we deprecate these and go for the above two methods only. + + /** + * @deprecated + * @param strModel + * @return error or null + */ + @Override + @Deprecated + public String loadInline(String strModel) { + return (wrappedApplet == null ? null : + ((GenericApplet) wrappedApplet).loadInline("" + strModel)); + } + + /** + * @deprecated + * @param strModel + * @param script + * @return error or null + */ + @Override + @Deprecated + public String loadInline(String strModel, String script) { + return (wrappedApplet == null ? null : + ((GenericApplet) wrappedApplet).loadInline("" + strModel, "" + script)); + } + + /** + * @deprecated + * @param strModels + * @return error or null + */ + @Override + @Deprecated + public String loadInline(String[] strModels) { + return (wrappedApplet == null ? null : + ((GenericApplet) wrappedApplet).loadInline(strModels)); + } + + /** + * @deprecated + * @param strModels + * @param script + * @return error or null + */ + @Override + @Deprecated + public String loadInline(String[] strModels, String script) { + return (wrappedApplet == null ? null : + ((GenericApplet) wrappedApplet).loadInline(strModels, script)); + } + + @Override + public String loadDOMNode(Object DOMNode) { + return (wrappedApplet == null ? null : ((GenericApplet) wrappedApplet).loadDOMNode(DOMNode)); + } + + @Override + public void script(String script) { + //System.out.println("JmolApplet script test " + script + " " + wrappedApplet); + if (wrappedApplet != null) + ((GenericApplet) wrappedApplet).script("" + script); + } + + @Override + public void syncScript(String script) { + if (wrappedApplet != null) + ((GenericApplet) wrappedApplet).syncScript("" + script); + } + + @Override + public Object setStereoGraphics(boolean isStereo) { + return (wrappedApplet == null ? null : + ((GenericApplet) wrappedApplet).setStereoGraphics(isStereo)); + } + + @Override + public String scriptNoWait(String script) { + if (wrappedApplet != null) + return "" + (((GenericApplet) wrappedApplet).scriptNoWait("" + script)); + return null; + } + + @Override + public String scriptCheck(String script) { + if (wrappedApplet != null) + return "" + (((GenericApplet) wrappedApplet).scriptCheck("" + script)); + return null; + } + + @Override + public String scriptWait(String script) { + if (wrappedApplet != null) + return "" + (((GenericApplet) wrappedApplet).scriptWait("" + script)); + return null; + } + + @Override + public String scriptWait(String script, String statusParams) { + if (statusParams == null) + statusParams = ""; + if (wrappedApplet != null) + return "" + (((GenericApplet) wrappedApplet).scriptWait("" + script, statusParams)); + return null; + } + + @Override + public String scriptWaitOutput(String script) { + if (wrappedApplet != null) + return "" + (((GenericApplet) wrappedApplet).scriptWaitOutput("" + script)); + return null; + } + + public void registerApplet(String id, String fullName) { + // does not work looking for JSVApplet! + JmolSyncInterface applet = (JmolSyncInterface) getAppletContext().getApplet(id); + if (applet == null) + System.out.println("could not find " + id); + register(fullName, applet); + } + + @Override + public void register(String id, JmolSyncInterface jsi) { + if (wrappedApplet != null) + ((GenericApplet) wrappedApplet).register(id, jsi); + } + + @Override + public int getModelIndexFromId(String id) { + return (wrappedApplet == null ? Integer.MIN_VALUE : + ((GenericApplet) wrappedApplet).getModelIndexFromId(id)); + } + + @Override + public void notifyAudioEnded(Object htParams) { + if (wrappedApplet != null) + ((GenericApplet) wrappedApplet).notifyAudioEnded(htParams); + } + +} Copied: trunk/Jmol/unused/JmolSmilesApplet.java (from rev 22272, trunk/Jmol/src/JmolSmilesApplet.java) =================================================================== --- trunk/Jmol/unused/JmolSmilesApplet.java (rev 0) +++ trunk/Jmol/unused/JmolSmilesApplet.java 2022-01-07 21:22:24 UTC (rev 22293) @@ -0,0 +1,153 @@ +/* $RCSfile$ + * $Author: hansonr $ + * $Date: 2010-04-13 22:22:44 -0500 (Tue, 13 Apr 2010) $ + * $Revision: 12851 $ + * + * Copyright (C) 2004-2005 The Jmol Development Team + * + * Contact: jmo...@li... + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ + + +import java.applet.Applet; +import java.awt.Event; +import java.awt.Graphics; + +import javax.swing.JApplet; + +import org.jmol.util.Logger; +import org.jmol.viewer.JC; +import org.jmol.smiles.InvalidSmilesException; +import org.jmol.smiles.SmilesMatcher; + +/* + * JmolSmilesApplet is a small applet that can do interesting things with + * SMILES strings. It is a subset of Jmol with no graphics capability + * + * find(String pattern, String smiles, boolean isSmarts, boolean isAll) + * getLastError() + * getRelationship(String smiles1, String smiles2) + * reverseChiralit(String smiles) + * setDebug(boolean TF) + * + * + */ +public class JmolSmilesApplet extends JApplet { + + @Override + public void init() { + System.out.println("JmolSmilesApplet init"); + //System.out.println(find("C[C@@H]1CCCC[C@@H]1C","C[C@@H]1CCCC[C@@H]1C", false, false)); + } + + private static String lastError; + + /** + * + * @return last error generated by the find command + * + */ + public String getLastError() { + return lastError; + } + + /** + * set debugging on or off + * + * @param TF + */ + public void setDebug(boolean TF) { + Logger.setLogLevel(TF ? Logger.LEVEL_DEBUG : Logger.LEVEL_INFO); + } + + /** + * When used for student answer checking, the student's response + * is the SMILES and the key is the PATTERN -- that is, we seek + * to know if the correct answer (pattern) is IN the student's + * answer (smiles). + * @param pattern + * @param smiles + * @param isSmarts + * @param isAll set TRUE if you want a full count + * @return n>0 with isAll TRUE: found n occurances, + * 1: found at least 1, 0: not found, -1: error + */ + public int find(String pattern, String smiles, boolean isSmarts, boolean isAll) { + lastError = null; + int ret = -1; + try { + SmilesMatcher sm = new SmilesMatcher(); + + int[][] result = sm.find(pattern, smiles, (isSmarts ? + JC.SMILES_TYPE_SMARTS : JC.SMILES_TYPE_SMILES) + | (isAll ? 0 : JC.SMILES_FIRST_MATCH_ONLY)); + ret = (result == null ? -1 : result.length); + } catch (Exception e) { + System.out.println(e.getMessage()); + lastError = InvalidSmilesException.getLastError(); + } catch (Error er) { + System.out.println(er.getMessage()); + } + return ret; + } + + /** + * compares two SMILES strings + * + * @param smiles1 + * @param smiles2 + * @return IDENTICAL, ENANTIOMERS, DIASTEREOMERS, CONSTITUTIONAL ISOMERS, NONE, or an error message + */ + public String getRelationship(String smiles1, String smiles2) { + try { + return (new SmilesMatcher()).getRelationship(smiles1, smiles2); + } catch (Exception e) { + return e.toString(); + } + } + + + /** + * reverse the chirality throughout a SMILES string + * + * @param smiles + * @return reversed chirality SMILES string + */ + public String reverseChirality(String smiles) { + return (new SmilesMatcher()).reverseChirality(smiles); + } + + @Override + public String getAppletInfo() { + return "JmolSmilesApplet"; + } + + @Override + public void update(Graphics g) {} + @Override + public void paint(Graphics g) {} + @Override + public boolean handleEvent(Event e) { + return false; + } + + @Override + public void destroy() { + System.out.println("JmolSmilesApplet destroyed"); + } + +} Modified: trunk/Jmol/unused/applet/Jmol.java =================================================================== --- trunk/Jmol/src/org/jmol/applet/Jmol.java 2021-12-05 13:50:58 UTC (rev 22272) +++ trunk/Jmol/unused/applet/Jmol.java 2022-01-07 21:22:24 UTC (rev 22293) @@ -24,7 +24,6 @@ package org.jmol.applet; -import java.applet.Applet; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; @@ -34,6 +33,7 @@ import javajs.util.PT; +import javax.swing.JApplet; import javax.swing.UIManager; import netscape.javascript.JSObject; @@ -152,7 +152,7 @@ private FileDropper dropper; - private Applet applet; + private JApplet applet; public Jmol() { // @@ -165,8 +165,9 @@ * project. " + "See http://www.jmol.org for more information"); */ @Override - public void setApplet(Applet a, boolean isSigned) { - appletObject = applet = a; + public void setApplet(Object a, boolean isSigned) { + appletObject = a; + applet = (JApplet) a; this.isSigned = isSigned; init(appletObject); if (isSigned) { @@ -337,12 +338,12 @@ } synchronized private static void cleanRegistry() { - Applet app = null; + JApplet app = null; boolean closed = true; for (Map.Entry<String, Object> entry : htRegistry.entrySet()) { String theApplet = entry.getKey(); try { - app = (Applet) (entry.getValue()); + app = (JApplet) (entry.getValue()); JSObject theWindow = JSObject.getWindow(app); //System.out.print("checking " + app + " window : "); closed = ((Boolean) theWindow.getMember("closed")).booleanValue(); Modified: trunk/Jmol/unused/applet/WrappedApplet.java =================================================================== --- trunk/Jmol/src/org/jmol/applet/WrappedApplet.java 2021-12-05 13:50:58 UTC (rev 22272) +++ trunk/Jmol/unused/applet/WrappedApplet.java 2022-01-07 21:22:24 UTC (rev 22293) @@ -28,7 +28,7 @@ import java.awt.Graphics; public interface WrappedApplet { - public void setApplet(Applet applet, boolean isSigned); + public void setApplet(Object applet, boolean isSigned); public void update(Graphics g); public void paint(Graphics g); } Modified: trunk/Jmol/unused/applet/WrappedAppletLoader.java =================================================================== --- trunk/Jmol/src/org/jmol/applet/WrappedAppletLoader.java 2021-12-05 13:50:58 UTC (rev 22272) +++ trunk/Jmol/unused/applet/WrappedAppletLoader.java 2022-01-07 21:22:24 UTC (rev 22293) @@ -26,18 +26,20 @@ import java.applet.Applet; +import javax.swing.JApplet; + import org.jmol.api.Interface; import org.jmol.util.Logger; class WrappedAppletLoader extends Thread { - private Applet applet; + private JApplet applet; private boolean isSigned; //private final static int minimumLoadSeconds = 0; - WrappedAppletLoader(Applet applet, boolean isSigned) { - this.applet = applet; + WrappedAppletLoader(Object applet, boolean isSigned) { + this.applet = (JApplet) applet; this.isSigned = isSigned; } @@ -68,7 +70,7 @@ Object applet; boolean keepRunning = true; - TickerThread(Applet applet) { + TickerThread(JApplet applet) { this.applet = applet; this.setName("AppletLoaderTickerThread"); } Copied: trunk/Jmol/unused/netscape.jar (from rev 22272, trunk/Jmol/jars/netscape.jar) =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2022-05-12 15:38:46
|
Revision: 22410 http://sourceforge.net/p/jmol/code/22410 Author: hansonr Date: 2022-05-12 15:38:41 +0000 (Thu, 12 May 2022) Log Message: ----------- Jmol.___JmolVersion="14.32.55" // P also 15.2.55 (into Jmol 14 only from Jmol-SwingJS precision branch) feature change: axes POSITION [x y] "xyz" with symmetry -- crystal structures only -- switches to a second small axis set that is Cartesian -- [x y] or [x y%] screen position -- uses the specified label for the axes labels -- label can be one, two, or three characters, for showing just x, just xy, or xyz, respectively -- cleared using AXES POSITION OFF (axes on unit cell only) -- replaced with abc using "abc" instead of "xyz" (with no axes on unit cell itself) new feature: axes POSITION [x y] "xyzabc" -- same as "xyz" but still shows unitcell axes new feature: global user variable dragDropFileType -- allows setting the file type from within a dragDropCallback handler -- method will get the file name, though not the data. -- user variable dragDropFileType, initially set to "" can be set to the desired file type -- user variable doDrop, initially set to TRUE can be set to FALSE to ignore the drop bug fix: deleting atoms from PDB fails bug fix: ModelKit dragAtom does not update measurements bug fix: DataManager can crash if atoms are created after making atom property arrays bug fix: axes position show allow unit cell axes to be turned off -- axes position [60 60] "abc" // just small abc -- axes position [60 60] "xyz" // just small xyz -- axes position [60 60] "xyzabc" // small xyz and unit cell abc -- axes position off // just unitcell bug fix: load append PWMAT file into structure (appendNew false) fails because no symmetry operators declared Modified Paths: -------------- trunk/Jmol/src/javajs/api/JSInterface.java trunk/Jmol/src/javajs/util/Measure.java trunk/Jmol/src/jspecview/appletjs/JSVApplet.java trunk/Jmol/src/org/jmol/adapter/readers/xtal/PWmatReader.java trunk/Jmol/src/org/jmol/adapter/smarter/AtomSetCollectionReader.java trunk/Jmol/src/org/jmol/api/JmolScriptManager.java trunk/Jmol/src/org/jmol/api/JmolViewer.java trunk/Jmol/src/org/jmol/awt/FileDropper.java trunk/Jmol/src/org/jmol/minimize/Minimizer.java trunk/Jmol/src/org/jmol/modelkit/ModelKit.java trunk/Jmol/src/org/jmol/modelset/AtomCollection.java trunk/Jmol/src/org/jmol/modelset/ModelSet.java trunk/Jmol/src/org/jmol/render/AxesRenderer.java trunk/Jmol/src/org/jmol/render/UccageRenderer.java trunk/Jmol/src/org/jmol/script/ScriptManager.java trunk/Jmol/src/org/jmol/scriptext/CmdExt.java trunk/Jmol/src/org/jmol/util/GenericApplet.java trunk/Jmol/src/org/jmol/viewer/DataManager.java trunk/Jmol/src/org/jmol/viewer/Jmol.properties trunk/Jmol/src/org/jmol/viewer/StatusManager.java trunk/Jmol/src/org/jmol/viewer/Viewer.java Added Paths: ----------- trunk/Jmol/scripts/pwmat/ Modified: trunk/Jmol/src/javajs/api/JSInterface.java =================================================================== --- trunk/Jmol/src/javajs/api/JSInterface.java 2022-04-29 03:41:57 UTC (rev 22409) +++ trunk/Jmol/src/javajs/api/JSInterface.java 2022-05-12 15:38:41 UTC (rev 22410) @@ -17,7 +17,7 @@ void processTwoPointGesture(float[][][] touches); void setDisplay(Object canvas); void setScreenDimension(int width, int height); - boolean setStatusDragDropped(int mode, int x, int y, String fileName); + boolean setStatusDragDropped(int mode, int x, int y, String fileName, String[] retType); void startHoverWatcher(boolean enable); void update(); Modified: trunk/Jmol/src/javajs/util/Measure.java =================================================================== --- trunk/Jmol/src/javajs/util/Measure.java 2022-04-29 03:41:57 UTC (rev 22409) +++ trunk/Jmol/src/javajs/util/Measure.java 2022-05-12 15:38:41 UTC (rev 22410) @@ -316,8 +316,9 @@ * @param ptA input point on line * @param axisUnitVector input unit vector * @param vectorProjection return for pt.sub(ptA) + * @return projected distance */ - public static void projectOntoAxis(P3 pt, P3 ptA, + public static float projectOntoAxis(P3 pt, P3 ptA, V3 axisUnitVector, V3 vectorProjection) { vectorProjection.sub2(pt, ptA); @@ -324,6 +325,7 @@ float projectedLength = vectorProjection.dot(axisUnitVector); pt.scaleAdd2(projectedLength, axisUnitVector, ptA); vectorProjection.sub2(pt, ptA); + return projectedLength; } /** Modified: trunk/Jmol/src/jspecview/appletjs/JSVApplet.java =================================================================== --- trunk/Jmol/src/jspecview/appletjs/JSVApplet.java 2022-04-29 03:41:57 UTC (rev 22409) +++ trunk/Jmol/src/jspecview/appletjs/JSVApplet.java 2022-05-12 15:38:41 UTC (rev 22410) @@ -574,7 +574,7 @@ } @Override - public boolean setStatusDragDropped(int mode, int x, int y, String fileName) { + public boolean setStatusDragDropped(int mode, int x, int y, String fileName, String[] retType) { // TODO Auto-generated method stub return true; } Modified: trunk/Jmol/src/org/jmol/adapter/readers/xtal/PWmatReader.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/readers/xtal/PWmatReader.java 2022-04-29 03:41:57 UTC (rev 22409) +++ trunk/Jmol/src/org/jmol/adapter/readers/xtal/PWmatReader.java 2022-05-12 15:38:41 UTC (rev 22410) @@ -47,6 +47,9 @@ */ private int nAtoms; + public PWmatReader() { + } + @Override protected void initializeReader() throws Exception { doApplySymmetry = true; @@ -59,6 +62,7 @@ protected boolean checkLine() throws Exception { // first line has atom count if (nAtoms == 0) { + readComments(); setSpaceGroupName("P1"); nAtoms = PT.parseInt(line); setFractionalCoordinates(true); @@ -90,6 +94,9 @@ return true; } + private void readComments() { + } + private void readUnitCell() throws Exception { // The lattice section consists of 3 lines representing // the lattice vector. For each line, there could be an extra Modified: trunk/Jmol/src/org/jmol/adapter/smarter/AtomSetCollectionReader.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/smarter/AtomSetCollectionReader.java 2022-04-29 03:41:57 UTC (rev 22409) +++ trunk/Jmol/src/org/jmol/adapter/smarter/AtomSetCollectionReader.java 2022-05-12 15:38:41 UTC (rev 22410) @@ -1370,9 +1370,10 @@ //if (sym != null && ptSupercell != null) //asc.getXSymmetry().finalizeUnitCell(ptSupercell); - if (sym != null && iHaveFractionalCoordinates && iHaveUnitCell && merging) { + if (merging && sym != null && iHaveFractionalCoordinates && iHaveUnitCell && iHaveSymmetryOperators) { + // only do this if XtalSymmetry has not done it already fractionalizeCoordinates(false); - addJmolScript("modelkit spacegroup p1"); + addJmolScript("modelkit spacegroup P1"); } initializeSymmetry(); return sym; Modified: trunk/Jmol/src/org/jmol/api/JmolScriptManager.java =================================================================== --- trunk/Jmol/src/org/jmol/api/JmolScriptManager.java 2022-04-29 03:41:57 UTC (rev 22409) +++ trunk/Jmol/src/org/jmol/api/JmolScriptManager.java 2022-05-12 15:38:41 UTC (rev 22410) @@ -59,7 +59,7 @@ boolean isQueueProcessing(); - void openFileAsync(String fileName, int flags); + void openFileAsync(String fileName, int flags, String type); String evalFile(String strFilename); Modified: trunk/Jmol/src/org/jmol/api/JmolViewer.java =================================================================== --- trunk/Jmol/src/org/jmol/api/JmolViewer.java 2022-04-29 03:41:57 UTC (rev 22409) +++ trunk/Jmol/src/org/jmol/api/JmolViewer.java 2022-05-12 15:38:41 UTC (rev 22410) @@ -514,6 +514,8 @@ abstract public void openFileAsyncSpecial(String fileName, int flags); + abstract public void openFileAsyncSpecialType(String fileName, int flags, String fileType); + public void openFileAsync(String fileName) { openFileAsyncSpecial(fileName, 0); } Modified: trunk/Jmol/src/org/jmol/awt/FileDropper.java =================================================================== --- trunk/Jmol/src/org/jmol/awt/FileDropper.java 2022-04-29 03:41:57 UTC (rev 22409) +++ trunk/Jmol/src/org/jmol/awt/FileDropper.java 2022-05-12 15:38:41 UTC (rev 22410) @@ -114,10 +114,11 @@ fname = fname.replace('\\', '/').trim(); if (fname.indexOf("://") < 0) fname = (fname.startsWith("/") ? "file://" : "file:///") + fname; - if (!vwr.setStatusDragDropped(0, x, y, fname)) + String[] retType = new String[1]; + if (!vwr.setStatusDragDropped(0, x, y, fname, retType)) return; - vwr.openFileAsyncSpecial(fname, JmolScriptManager.FILE_DROPPED - | (statusListener == null ? 0 : JmolScriptManager.CHECK_DIMS)); + vwr.openFileAsyncSpecialType(fname, JmolScriptManager.FILE_DROPPED + | (statusListener == null ? 0 : JmolScriptManager.CHECK_DIMS), retType[0]); // vwr.openFileDropped(fname, statusListener != null); } Modified: trunk/Jmol/src/org/jmol/minimize/Minimizer.java =================================================================== --- trunk/Jmol/src/org/jmol/minimize/Minimizer.java 2022-04-29 03:41:57 UTC (rev 22409) +++ trunk/Jmol/src/org/jmol/minimize/Minimizer.java 2022-05-12 15:38:41 UTC (rev 22410) @@ -695,7 +695,7 @@ if (bsBasis.get((a = minAtom.atom).i)) { p.set((float) minAtom.coord[0], (float) minAtom.coord[1], (float) minAtom.coord[2]); - vwr.getModelkit(false).moveConstrained(a.i, p, true); + vwr.getModelkit(false).moveConstrained(a.i, p, true, true); } } // now transfer back all atom coordinates Modified: trunk/Jmol/src/org/jmol/modelkit/ModelKit.java =================================================================== --- trunk/Jmol/src/org/jmol/modelkit/ModelKit.java 2022-04-29 03:41:57 UTC (rev 22409) +++ trunk/Jmol/src/org/jmol/modelkit/ModelKit.java 2022-05-12 15:38:41 UTC (rev 22410) @@ -138,9 +138,10 @@ } - public void constrain(P3 ptOld, P3 ptNew) { + public void constrain(P3 ptOld, P3 ptNew, boolean allowProjection) { V3 v = new V3(); P3 p = P3.newP(ptOld); + float d = 0; switch (type) { case TYPE_NONE: return; @@ -151,13 +152,13 @@ return; case TYPE_VECTOR: if (pt == null) { // generic constraint - Measure.projectOntoAxis(p, offset, unitVector, v); - if (p.distanceSquared(ptOld) >= JC.UC_TOLERANCE2) { + d = Measure.projectOntoAxis(p, offset, unitVector, v); + if (d * d >= JC.UC_TOLERANCE2) { ptNew.x = Float.NaN; return; } } - Measure.projectOntoAxis(ptNew, offset, unitVector, v); + d = Measure.projectOntoAxis(ptNew, offset, unitVector, v); break; case TYPE_PLANE: if (pt == null) { // generic constraint @@ -166,10 +167,14 @@ return; } } - Measure.getPlaneProjection(ptNew, plane, v, v); + d = Measure.getPlaneProjection(ptNew, plane, v, v); ptNew.setT(v); break; - } + } + if (!allowProjection && Math.abs(d) > 1e-10) { + ptNew.x = Float.NaN; + } + } } @@ -2056,7 +2061,7 @@ * * @return */ - public int cmdAssignMoveAtoms(BS bsSelected, int iatom, P3 p) { + public int cmdAssignMoveAtoms(BS bsSelected, int iatom, P3 p, boolean allowProjection) { SymmetryInterface sym = vwr.getOperativeSymmetry(); if (sym == null) return 0; @@ -2088,8 +2093,9 @@ } } boolean isOccSet = (bsOcc.cardinality() > 1); - if ((n = moveConstrained(iatom, p, !isOccSet)) == 0 || Float.isNaN(p.x) + if ((n = moveConstrained(iatom, p, !isOccSet, allowProjection)) == 0 || Float.isNaN(p.x) || !isOccSet) { + vwr.setStatusAtomMoved(true, bsOcc); return n; } for (int i = bsOcc.nextSetBit(0); i >= 0; i = bsOcc.nextSetBit(i + 1)) { @@ -2096,6 +2102,7 @@ iatom = (constraint == null ? vwr.ms.getBasisAtom(i).i : i); n += assignMoveAtom(iatom, p, null); } + vwr.setStatusAtomMoved(true, bsOcc); return n; } @@ -2230,9 +2237,10 @@ * @param ptNew * @param bsFixed * @param doAssign allow for exit with setting ptNew but not creating atoms + * @param allowProjection * @return number of atoms moved */ - public int moveConstrained(int iatom, P3 ptNew, boolean doAssign) { + public int moveConstrained(int iatom, P3 ptNew, boolean doAssign, boolean allowProjection) { int n = 0; SymmetryInterface sym; if (iatom < 0 || (sym = vwr.getOperativeSymmetry()) == null) { @@ -2261,12 +2269,12 @@ sym.toFractional(ptNew, true); m.rotTrans(ptNew); sym.toCartesian(ptNew, true); - c.constrain(b, ptNew); + c.constrain(b, ptNew, allowProjection); iatom = b.i; } } } else { - c.constrain(vwr.ms.at[iatom], ptNew); + c.constrain(vwr.ms.at[iatom], ptNew, allowProjection); } if (iatom >= 0 && !Float.isNaN(ptNew.x)) { if (!doAssign) Modified: trunk/Jmol/src/org/jmol/modelset/AtomCollection.java =================================================================== --- trunk/Jmol/src/org/jmol/modelset/AtomCollection.java 2022-04-29 03:41:57 UTC (rev 22409) +++ trunk/Jmol/src/org/jmol/modelset/AtomCollection.java 2022-05-12 15:38:41 UTC (rev 22410) @@ -2568,8 +2568,10 @@ if (bs == null) bs = BS.newN(i + 1); bs.set(i); - while (--i >= 0 && at[i].getGroup3(true).equals(g3)) + while (--i >= 0) { + if (!isDeleted(at[i]) && at[i].getGroup3(true).equals(g3)) bs.set(i); + } i++; } } else if (isAtomNameMatch(at[i], name, checkStar, allowInitialStar)) { Modified: trunk/Jmol/src/org/jmol/modelset/ModelSet.java =================================================================== --- trunk/Jmol/src/org/jmol/modelset/ModelSet.java 2022-04-29 03:41:57 UTC (rev 22409) +++ trunk/Jmol/src/org/jmol/modelset/ModelSet.java 2022-05-12 15:38:41 UTC (rev 22410) @@ -1841,7 +1841,7 @@ || modelIndex >= mc - 1 ? ac : am[modelIndex + 1].firstAtomIndex); int a0 = (modelIndex <= 0 ? 0 : am[modelIndex].firstAtomIndex); for (int i = a1; --i >= a0;) { - if ((modelIndex < 0 || at[i].mi == modelIndex) + if ((modelIndex < 0 || at[i] != null && at[i].mi == modelIndex) && ((tok == T.modulation || tok == 0) && (v = (Vibration) getModulation(i)) != null || (tok == T.vibration || tok == 0) && (v = getVibration(i, false)) != null) && v.isNonzero()) @@ -1949,7 +1949,7 @@ bsAtoms = getModelAtomBitSetIncludingDeleted(-1, false); vwr.getOrCalcPartialCharges(am[modelIndex].bsAtoms, null); for (int i = bsAtoms.nextSetBit(0); i >= 0; i = bsAtoms.nextSetBit(i + 1)) { - if (at[i].mi != modelIndex || at[i].isDeleted()) { + if (isDeleted(at[i]) || at[i].mi != modelIndex) { continue; } float c = partialCharges[i]; @@ -4388,6 +4388,8 @@ public void updateBasisFromSite(int imodel) { if (getUnitCell(imodel) != null) { BS bsAU = am[imodel].bsAsymmetricUnit; + if (bsAU == null) + return; //BS bsSym = getAtomBitsMDb(T.symmetry, null); bsAU.clearAll();//andNot(bs); //bsSym.or(bs); Modified: trunk/Jmol/src/org/jmol/render/AxesRenderer.java =================================================================== --- trunk/Jmol/src/org/jmol/render/AxesRenderer.java 2022-04-29 03:41:57 UTC (rev 22409) +++ trunk/Jmol/src/org/jmol/render/AxesRenderer.java 2022-05-12 15:38:41 UTC (rev 22410) @@ -86,7 +86,9 @@ float scale = axes.scale; if (isabcxyz) { // both abc and xyz + if ("xyzabc".equals(axes.axes2)) render1(axes, mad10, false, axisType, isUnitCell, 2, null); + if (!"abc".equals(axes.axes2)) vwr.setBooleanProperty("axesmolecular", true); axes.initShape(); render1(axes, mad10, true, null, false, scale, axes.axes2); @@ -159,7 +161,7 @@ float scaleFactor = zoomDimension / 10f * scale; if (g3d.isAntialiased()) scaleFactor *= 2; - if (isUnitCell && isXY) + if ((isUnitCell || "abc".equals(axes.axes2)) && isXY) scaleFactor /= 2; for (int i = 0; i < 3; i++) { P3 pt = p3Screens[i]; Modified: trunk/Jmol/src/org/jmol/render/UccageRenderer.java =================================================================== --- trunk/Jmol/src/org/jmol/render/UccageRenderer.java 2022-04-29 03:41:57 UTC (rev 22409) +++ trunk/Jmol/src/org/jmol/render/UccageRenderer.java 2022-05-12 15:38:41 UTC (rev 22410) @@ -116,7 +116,7 @@ axes.reinitShape(); P3[] axisPoints = (axes == null || vwr.getObjectMad10(StateManager.OBJ_AXIS1) == 0 - || axes.axisXY.z != 0 && axes.axes2 == null + || axes.axisXY.z != 0 && (axes.axes2 == null || axes.axes2.length() == 3) || axes.fixedOrigin != null || axes.fixedOriginUC.lengthSquared() > 0 ? null : axes.axisPoints); @@ -189,7 +189,7 @@ sgName = PT.rep(sgName, ";0,0,0", ""); if (sgName.indexOf("#") < 0) { String intTab = unitcell.getIntTableNumber(); - if (intTab != null) + if (!isSlab && !isPolymer && intTab != null) sgName += " #" + intTab; } if (!sgName.equals("-- [--]")) { Modified: trunk/Jmol/src/org/jmol/script/ScriptManager.java =================================================================== --- trunk/Jmol/src/org/jmol/script/ScriptManager.java 2022-04-29 03:41:57 UTC (rev 22409) +++ trunk/Jmol/src/org/jmol/script/ScriptManager.java 2022-05-12 15:38:41 UTC (rev 22410) @@ -546,7 +546,7 @@ * */ @Override - public void openFileAsync(String fname, int flags) { + public void openFileAsync(String fname, int flags, String type) { boolean scriptOnly = ((flags & SCRIPT_ONLY) != 0); if (!scriptOnly && (flags & CHECK_DIMS) != 0 && FileManager.isEmbeddable(fname)) checkResize(fname); @@ -572,7 +572,10 @@ if (fname.endsWith("jvxl")) { cmd = "isosurface "; } else if (!fname.toLowerCase().endsWith(".spt")) { - String type = getDragDropFileTypeName(fname); + if (type == null) + type = getDragDropFileTypeName(fname); + else if (!type.endsWith("::")) + type += "::"; if (type == null) { try { BufferedInputStream bis = vwr.getBufferedInputStream(fname); Modified: trunk/Jmol/src/org/jmol/scriptext/CmdExt.java =================================================================== --- trunk/Jmol/src/org/jmol/scriptext/CmdExt.java 2022-04-29 03:41:57 UTC (rev 22409) +++ trunk/Jmol/src/org/jmol/scriptext/CmdExt.java 2022-05-12 15:38:41 UTC (rev 22410) @@ -6265,7 +6265,7 @@ e.report(GT.i(GT.$("{0} atoms deleted"), nd), false); break; case T.moveto: - int nm = vwr.getModelkit(false).cmdAssignMoveAtoms(bs, index, pt); + int nm = vwr.getModelkit(false).cmdAssignMoveAtoms(bs, index, pt, true); if (e.doReport()) e.report(GT.i(GT.$("{0} atoms moved"), nm), false); break; Modified: trunk/Jmol/src/org/jmol/util/GenericApplet.java =================================================================== --- trunk/Jmol/src/org/jmol/util/GenericApplet.java 2022-04-29 03:41:57 UTC (rev 22409) +++ trunk/Jmol/src/org/jmol/util/GenericApplet.java 2022-05-12 15:38:41 UTC (rev 22410) @@ -91,8 +91,8 @@ } @Override - public boolean setStatusDragDropped(int mode, int x, int y, String fileName) { - return viewer.setStatusDragDropped(mode, x, y, fileName); + public boolean setStatusDragDropped(int mode, int x, int y, String fileName, String[] retType) { + return viewer.setStatusDragDropped(mode, x, y, fileName, retType); } @Override Modified: trunk/Jmol/src/org/jmol/viewer/DataManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/DataManager.java 2022-04-29 03:41:57 UTC (rev 22409) +++ trunk/Jmol/src/org/jmol/viewer/DataManager.java 2022-05-12 15:38:41 UTC (rev 22410) @@ -312,7 +312,7 @@ // load array for (int i = 0, n = fff.length, p = bsSelected.nextSetBit(0); p >= 0 && i < n; p = bsSelected.nextSetBit(p + 1)) { - fnew[i++] = fff[p]; + fnew[i++] = (p < fff.length ? fff[p] : null); } return fnew; } else if (data[JmolDataManager.DATA_TYPE] == Integer @@ -322,7 +322,7 @@ // load array for (int i = 0, n = ff.length, p = bsSelected.nextSetBit(0); p >= 0 && i < n; p = bsSelected.nextSetBit(p + 1)) - fnew[i++] = ff[p]; + fnew[i++] = (p < ff.length ? ff[p] : null); return fnew; } float[] f = (float[]) data[JmolDataManager.DATA_VALUE]; @@ -330,7 +330,7 @@ // load array for (int i = 0, n = f.length, p = bsSelected.nextSetBit(0); p >= 0 && i < n; p = bsSelected.nextSetBit(p + 1)) - fnew[i++] = f[p]; + fnew[i++] = (p < f.length ? f[p] : 0); return fnew; } } Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2022-04-29 03:41:57 UTC (rev 22409) +++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2022-05-12 15:38:41 UTC (rev 22410) @@ -65,8 +65,40 @@ -Jmol.___JmolVersion="14.32.54" // P also 15.2.54 +Jmol.___JmolVersion="14.32.55" // P also 15.2.55 +(into Jmol 14 only from Jmol-SwingJS precision branch) +feature change: axes POSITION [x y] "xyz" with symmetry + -- crystal structures only + -- switches to a second small axis set that is Cartesian + -- [x y] or [x y%] screen position + -- uses the specified label for the axes labels + -- label can be one, two, or three characters, for showing just x, + just xy, or xyz, respectively + -- cleared using AXES POSITION OFF (axes on unit cell only) + -- replaced with abc using "abc" instead of "xyz" (with no axes on unit cell itself) + +new feature: axes POSITION [x y] "xyzabc" + -- same as "xyz" but still shows unitcell axes + +new feature: global user variable dragDropFileType + -- allows setting the file type from within a dragDropCallback handler + -- method will get the file name, though not the data. + -- user variable dragDropFileType, initially set to "" can be set to the desired file type + -- user variable doDrop, initially set to TRUE can be set to FALSE to ignore the drop + +bug fix: deleting atoms from PDB fails +bug fix: ModelKit dragAtom does not update measurements +bug fix: DataManager can crash if atoms are created after making atom property arrays +bug fix: axes position show allow unit cell axes to be turned off + -- axes position [60 60] "abc" // just small abc + -- axes position [60 60] "xyz" // just small xyz + -- axes position [60 60] "xyzabc" // small xyz and unit cell abc + -- axes position off // just unitcell +bug fix: load append PWMAT file into structure (appendNew false) fails because no symmetry operators declared + +JmolVersion="14.32.54" // P also 15.2.54 + (into Jmol 14 only from precision) bug fix: COMPARE {atomset} ATOMS {at1} [coord1] {at2} [coord2] .... fails bug fix: JavaScript negative int double missing minus sign @@ -255,7 +287,8 @@ -- uses the specified label for the axes labels -- label can be one, two, or three characters, for showing just x, just xy, or xyz, respectively - -- cleared using "" for the label or omitting the label or AXES POSITION OFF + -- cleared using AXES POSITION OFF (axes on unit cell only) + -- replaced with abc using "abc" instead of "xyz" (with no axes on unit cell itself) optimization: faster loading of very large (>100K atom) files Modified: trunk/Jmol/src/org/jmol/viewer/StatusManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/StatusManager.java 2022-04-29 03:41:57 UTC (rev 22409) +++ trunk/Jmol/src/org/jmol/viewer/StatusManager.java 2022-05-12 15:38:41 UTC (rev 22410) @@ -550,7 +550,7 @@ } synchronized boolean setStatusDragDropped(int mode, int x, int y, - String fileName) { + String fileName, String[] retType) { setStatusChanged("dragDrop", 0, "", false); String sJmol = getJmolScriptCallback(CBK.DRAGDROP); boolean isEnabled = notifyEnabled(CBK.DRAGDROP); @@ -557,7 +557,7 @@ if (isEnabled || sJmol != null) fireJmolScriptCallback(isEnabled, CBK.DRAGDROP, new Object[] { sJmol, Integer.valueOf(mode), Integer.valueOf(x), - Integer.valueOf(y), fileName }); + Integer.valueOf(y), fileName, retType }); return isEnabled; } Modified: trunk/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Viewer.java 2022-04-29 03:41:57 UTC (rev 22409) +++ trunk/Jmol/src/org/jmol/viewer/Viewer.java 2022-05-12 15:38:41 UTC (rev 22410) @@ -2564,9 +2564,14 @@ */ @Override public void openFileAsyncSpecial(String fileName, int flags) { - getScriptManager().openFileAsync(fileName, flags); + getScriptManager().openFileAsync(fileName, flags, null); } + @Override + public void openFileAsyncSpecialType(String fileName, int flags, String fileType) { + getScriptManager().openFileAsync(fileName, flags, fileType); + } + /** * * for JmolSimpleViewer -- external applications only (and no-script @@ -5397,21 +5402,43 @@ return (!g.disablePopupMenu && getPopupMenu() != null); } - public boolean setStatusDragDropped(int mode, int x, int y, String fileName) { + /** + * Allows a handler to set Jmol variable doDrop=false to cancel and also set + * the file type directly (Java) via the Jmol variable dropFileType (Java or + * JavaScript) if desired. + * + * @param mode + * @param x + * @param y + * @param fileName + * @param retType + * @return true if we should still handle this. + */ + public boolean setStatusDragDropped(int mode, int x, int y, String fileName, String[] retType) { if (mode == 0) { g.setO("_fileDropped", fileName); g.setUserVariable("doDrop", SV.vT); + g.setUserVariable("dropFileType", SV.newS("")); } - boolean handled = sm.setStatusDragDropped(mode, x, y, fileName); + // we should handle this if it wasn't handled or the handler did not set doDrop = false + boolean handled = sm.setStatusDragDropped(mode, x, y, fileName, retType); + String type = getP("dropFileType").toString(); + if (type.length() > 0 && retType != null) { + retType[0] = type; + } return (!handled || getP("doDrop").toString().equals("true")); } - /* + /** * resizeCallback is called whenever the applet gets a resize notification * from the browser * - * jmolSetCallback("resizeCallback", "myResizeCallback") function - * myResizeCallback(width, height) {} + * jmolSetCallback("resizeCallback", "myResizeCallback") + * + * function myResizeCallback(width, height) {} + * + * @param width + * @param height */ public void setStatusResized(int width, int height) { @@ -5418,7 +5445,7 @@ sm.setStatusResized(width, height); } - /* + /** * scriptCallback is the primary way to monitor script status. In addition, it * serves to for passing information to the user over the status line of the * browser as well as to the console. Note that console messages are also sent @@ -5448,6 +5475,9 @@ * "pick one more atom in order to spin..." for example * Viewer.evalStringWaitStatus -- see above -2, 0 only if error, >=1 at * termination Viewer.reportSelection "xxx atoms selected" + * + * @param strStatus + * */ public void scriptStatus(String strStatus) { @@ -5465,7 +5495,7 @@ strErrorMessageUntranslated); } - /* + /** * syncCallback traps script synchronization messages and allows for * cancellation (by returning "") or modification * @@ -7404,7 +7434,7 @@ } public boolean getShowNavigationPoint() { - if (!g.navigationMode/* || !tm.canNavigate()*/) + if (!g.navigationMode) return false; return (tm.isNavigating() && !g.hideNavigationPoint || g.showNavigationPointAlways || getInMotion(true)); @@ -8019,8 +8049,7 @@ sm.setStatusStructureModified(atom.i, atom.mi, MODIFY_SET_COORD, "setAtomCoords", n, bs); ms.setAtomCoords(bs, tokType, xyzValues); - checkMinimization(); - sm.setStatusAtomMoved(bs); + setStatusAtomMoved(true, bs); sm.setStatusStructureModified(atom.i, atom.mi, -MODIFY_SET_COORD, "OK", n, bs); } @@ -8041,7 +8070,7 @@ ms.setAtomCoordsRelative(offset, bs); checkMinimization(); if (doNotify) { - sm.setStatusAtomMoved(bs); + setStatusAtomMoved(false, bs); sm.setStatusStructureModified(atom.i, atom.mi, -MODIFY_SET_COORD, "OK", n, bs); } @@ -8094,8 +8123,7 @@ sm.setStatusStructureModified(atom.i, atom.mi, MODIFY_SET_COORD, "invertAtomCoords", n, bs); ms.invertSelected(pt, plane, ringAtomIndex, bs); - checkMinimization(); - sm.setStatusAtomMoved(bs); + setStatusAtomMoved(true, bs); sm.setStatusStructureModified(atom.i, atom.mi, -MODIFY_SET_COORD, "OK", n, bs); if (isClick) @@ -8110,8 +8138,7 @@ if (bsAtoms.cardinality() == 0) return; ms.invertSelected(pt, plane, iAtom, bsAtoms); - checkMinimization(); - sm.setStatusAtomMoved(bsAtoms); + setStatusAtomMoved(true, bsAtoms); } public void moveAtoms(M4 m4, M3 mNew, M3 rotation, V3 translation, P3 center, @@ -8122,8 +8149,7 @@ return; ms.moveAtoms(m4, mNew, rotation, translation, bsAtoms, center, isInternal, translationOnly); - checkMinimization(); - sm.setStatusAtomMoved(bsAtoms); + setStatusAtomMoved(true, bsAtoms); } private boolean movingSelected; @@ -8189,7 +8215,7 @@ SymmetryInterface uc = getOperativeSymmetry(); if (uc != null) { getModelkit(false).cmdAssignMoveAtoms(bsSelected, iatom, - ptNew); + ptNew, true); } if (!Float.isNaN(ptNew.x)) { ptNew.sub(ptCenter); @@ -10718,5 +10744,10 @@ return getModelkit(false).cmdAssignSpaceGroup(bs, type, modelIndex); } + public void setStatusAtomMoved(boolean andCheckMinimize, BS bs) { + if (andCheckMinimize) + checkMinimization(); + sm.setStatusAtomMoved(bs); + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2023-10-24 20:04:21
|
Revision: 22571 http://sourceforge.net/p/jmol/code/22571 Author: hansonr Date: 2023-10-24 20:04:18 +0000 (Tue, 24 Oct 2023) Log Message: ----------- Jmol.___JmolVersion="16.1.43" // (legacy) also 16.1.44 (swingJS) bug fix: MODELKIT SPACEGROUP <name or number> does not work if there are no atoms - now creates a generally satisfactory unit cell when no atoms are present - unit cells are not adjusted to have different a,b,c for "unique origin" groups bug fix: (SwingJS only) SHOW SPACEGROUP loses operator translations in SHOW SPACEGROUP bug fix: show Symmetry/SpaceGroup/Symop will show g-glide, not d-glide for cubic 3/4,1/4,1/4 glides bug fix: (undocumented) -matrix (unary minus; 3x3 or 4x4) should transpose, not - careful -- 4x4 transpose is all four rows for columns feature change: DRAW SPACEGROUP simplified (was basically unusable) - just shows geometric elements, not targets feature change: DRAW SYMOP n and DRAW SYMOP "x,-y,z" no longer default to using the first atom. - new default is the origin, {0 0 0} - allows for consistency after MODEL SPACEGROUP xxx, when there are no atoms. new feature: 3x3matrix%1 - returns trace new feature: 3x3matrix%2 - returns determinant new feature: x = symop(matrix,option) - allows introduction of a matrix as a symmetry operation - accepts various options such as "xyz"; default is still matrix new feature: MODELKIT SPACEGROUP "x,y,z;x,-y,z;..." - allows creating a space group from a full operation list new feature: DRAW SPACEGROUP ALL - displays all "additional geometric elements" (planes, axes, points) resulting from adding translations to the described symmetry operation new feature: DRAW HOVERLABEL "xxx" - allows for a hover label that appears whether or not drawHover is on. new feature: DRAW "<hover>xxx</hover>...." - used for saving the hover label in a state (or, at least it allows no error in earlier versions; will show up as text) new feature: CIFReader reads atom_site_wyckoff_label new feature: CIFReader FILTER option NOWYCKOFF - to skip reading atom_site_wyckoff_label (for Jmol development testing purposes, primariy) new feature: {atom}.wyckoff, label %[wyckoff], color PROPERTY WYCKOFF Modified Paths: -------------- trunk/Jmol/spt/ext/xtal/AFLOW.spt trunk/Jmol/src/org/jmol/viewer/Jmol.properties Removed Paths: ------------- trunk/Jmol/scripts/ trunk/Jmol/spt/ext/xtal/data/AFLOW.spt Modified: trunk/Jmol/spt/ext/xtal/AFLOW.spt =================================================================== --- trunk/Jmol/spt/ext/xtal/AFLOW.spt 2023-10-24 19:58:49 UTC (rev 22570) +++ trunk/Jmol/spt/ext/xtal/AFLOW.spt 2023-10-24 20:04:18 UTC (rev 22571) @@ -618,7 +618,7 @@ * Show a space group, possibly one of several for a set, * and turn drawHover ON */ -function showSG(n, i) { +function showSG(n, i, andSymmetry) { getAFLOWPrototypes(); var sgs = AFLOW.prototypes[n]; if (!i) i = 1; @@ -626,10 +626,11 @@ var url = AFLOW.aflowroot + "CIF/" + aname + ".cif"; load @url packed; - draw spacegroup all; - set drawhover; - color {*} translucent; - + if (andSymmetry) { + draw spacegroup all; + set drawhover; + color {*} translucent; + } print "AFLOW Encyclopedia of Crystallographic Prototypes, https://www.aflowlib.org/prototype-encyclopedia; see M. J. Mehl, D. Hicks, C. Toher, O. Levy, R. M. Hanson, G. L. W. Hart, and S. Curtarolo, The AFLOW Library of Crystallographic Prototypes: Part 1, Comp. Mat. Sci. 136, S1-S828 (2017). (doi=10.1016/j.commatsci.2017.01.017) and related publications" } Deleted: trunk/Jmol/spt/ext/xtal/data/AFLOW.spt =================================================================== --- trunk/Jmol/spt/ext/xtal/data/AFLOW.spt 2023-10-24 19:58:49 UTC (rev 22570) +++ trunk/Jmol/spt/ext/xtal/data/AFLOW.spt 2023-10-24 20:04:18 UTC (rev 22571) @@ -1,689 +0,0 @@ -//@author Jake LaNasa, St. Olaf College 6/19/2015 -//addition functionality by Ben Hinke, St. Olaf College 8/1/2016 -// showsg added by Bob Hanson 2023.10.24 - - -// 10/27/2017 5:54:40 AM BH adding prototype methods -// 6/5/2017 12:06:09 PM Bob Hanson and Mandy Nguyen -// 6/20/2017 8:23:08 AM BH switching to bz2b.spt -// 7/20/2017 11:53:38 AM BH addint aflowCompare fix for asynchronous JavaScript - -// AFLOW macro command aflowCompare - -// Created: July/6/2017 -// Revised: July/14/2017 -// Author: Bob Hanson, Simon Zhao -// St. Olaf College -// 7/14/2017 11:11:12 AM - - -AFLOWdir= "http://aflowlib.mems.duke.edu/users/jmolers/binary_new/" -AFLOWweb= "http://aflowlib.mems.duke.edu/AFLOWDATA/ICSD_WEB/" -AFLOWlib= "http://aflowlib.mems.duke.edu/users/jmolers/jmol/get.php?lib=" - -function aflowLoad(binaryAlloy){ - if(binaryAlloy){ - load @{AFLOWdir+binaryAlloy+".aflow_binary"} - } -} -print "aflowLoad(binaryAlloy) loaded" - -//loads desired binary file - -function aflowBinaries{ -var x=load("http://aflowlib.org/binary_alloys.php") -var a=[] -var noData="BrCd AlGa CoGe CoHf AlMg HgMg IrP AlPb BiPt AgRb AlRb AsRb AuRb BiRb BrRb CaRb CdRb ClRb CoRb CrRb CuRb FeRb GaRb GeRb HfRb HgRb InRb IrRb LaRb LiRb MnRb MoRb NaRb NbRb NiRb OsRb PRb PbRb PdRb PtRb RbRe PbRh RbRh RbRu RbSb RbSc RbSe RhSe MgSi RbSi AgSm AlSm AsSm AuSm BiSm BrSm CaSm CdSm ClSm CoSm CrSm CuSm FeSm GaSm GeSm HfSm HgSm InSm IrSm LaSm LiSm MgSm MnSm MoSm NaSm NbSm NiSm OsSm PSm PbSm PdSm PtSm RbSm ReSm RhSm RuSm SbSm ScSm SeSm SiSm RbSn SmSn PSr RbSr SmSr RbTa SmTa RbTc SmTc RbTe SmTe PTi RbTi SmTi CoTl RbTl SmTl RbV SmV RbW SmW AgY MgY RbY SmY AgZn BiZn MoZn RbZn SmZn RbZr SmZr" -x=x.split("phase-diagram")[2] -var n=0 -for(var l in x.split("radio\" name")){ - n++ - var y=l.split("\"")[4] - if(n=1||noData.find(y)){continue} - a.push(y) -} -return a.sort -} -print "aflowBinaries loaded" - -//Goes into source code and gives an array of the binary alloys - -function aflowDualTable(binaryAlloy, a, b) { -if(binaryAlloy){ - load @{AFLOWdir+binaryAlloy+".aflow_binary"} -} -a=_("aflowInfo."+a) -b=_("aflowInfo."+b) -var c=a.add("\t",b).sort -return c -} - -print "aflowDualTable(binaryAlloy, a, b) loaded" - -function aflowDualArray(binaryAlloy, xName, yName) { -if(binaryAlloy){ - load @{AFLOWdir+binaryAlloy+".aflow_binary"} -} -return _("aflowInfo").getproperty("[select " +xName+","+yName+",modelNumber]") -} - -print "aflowDualArray(binaryAlloy, xName, yName) loaded" - -//this takes the two properties and puts into list for graphing - -function aflowDualWrite(binaryAlloy, a, b) { -var a=load("file:///Users/user/Desktop/Jmol research/binarylist.txt") -for(i in a.split("\n")){ - try{ - load @{"file:///Users/user/Desktop/Jmol research/AFLOW Binary/"+i+".aflow_binary"} - } - catch(e){ - print e - continue - } - var c=_("aflowInfo."+a) - var d=_("aflowInfo."+b) - var e= d.add("\t",c).sort - write var e @{i+"ch.txt"} - print i -} -} - -print "aflowDualWrite(binaryAlloy, a, b) loaded" - -//Should go through and write .txt files for every group to give data points for a -//convex hull. - -function aflowConvexHull(binaryAlloy) { -if(binaryAlloy){ - load @{AFLOWdir+binaryAlloy+".aflow_binary"} -} -var x=_.modelLoadNote -var y=x.lines -var a=[] -var p=[] -var edges=[] -var cp=[] -var q=[] -var model=[] -for(var l in y.split("\n")){ - if(!l.find("REFERENCE")){ - a.push(l) - } -} -for(var k in a){ - var s=k.split("\t") - var e=0+s[6] - if(e>0){continue} - var c=0+s[2] - var m=0+s[4] - p.push([pt:point(c,e,0),model:m]) - while(true){ - if(p.length>1){ - edges.push(p[0].pt-p[-1].pt) - } - if(edges.length>1){ - var v=cross(edges[-1],edges[0]).z - if(v<0){ - var i=p.pop() - p.pop() - edges.pop() - edges.pop() - p.push(i) - continue - } - cp.push(v) - } - break - } - -} -for(var pt in p){ - q.push([Cb:pt.pt.x,Hf_atom_eV_VASP:pt.pt.y,modelNumber:pt.model]) -} -return q -} - -print "aflowConvexHull(binaryAlloy) loaded" - -function aflowCheckBinary(binaryAlloy){ - if(prompt("Do you want to read all the files?", "yes")=="yes"){ - var x=load("http://aflowlib.org/binary_alloys.php") - var list=[] - var nd=[] - x=x.split("phase-diagram")[2] - var n=0 - for(var l in x.split("value=\"")){ - n++ - var y=l.split("\"")[1] - if(n=1){continue} - list.push(y) - } - for(var t in list){ - try{ - aflowLoad(t) - } catch(e){ - print "file"+binaryAlloy+"cannot be read"+e - nd.push(t) - } - } - print nd - return nd - } - print "checking"+binaryAlloy - try{ - aflowLoad(binaryAlloy) - } catch(e){ - print "file"+binaryAlloy+"cannot be read"+e - } -} - -print "aflowCheckBinary(binaryAlloy) loaded" - -//Returns concentration, energy, and model number of points that -//make up convex hull - -function aflowGetPG(binaryAlloy, a, range1, range2,radius){ - aflowLoad(binaryAlloy) - if(!a) a=@1 - select a - if(!range1) range1=4 - if(!range2) range2=24 - if(!radius) radius=3.65 - polyhedron @range1 @{-range2} @radius unitcell - var x={*}.polyhedron.all.getProperty("pointGroup") - return x -} - -print "aflowGetPG(binaryAlloy, a, range1, range2,radius) loaded" - -function aflowGetInfo(){ - var chooseBinary=prompt("Which Binary would you like?", binary) - if(chooseBinary=="null"){quit} - aflowLoad(chooseBinary) - var chooseInfo=prompt("Do you have a model number in mind?", "Yes|No",TRUE) - if(chooseInfo=="yes"){ - var modelNumber=prompt("What is the model number? (Use Numerals)",modelnumber) - if(modelNumber=="null"){quit} - var allInfo=prompt("Do you want all info?", "Yes|No",TRUE) - if(allInfo=="yes"){ - print _("aflowInfo")[modelnumber] - } else{ - var pickInfo=prompt("State Info",info) - if(pickInfo=="null"){quit} - print _("aflowInfo."+pickInfo)[modelnumber] - } - } else{ - var allInfo2=prompt("Do you want all info?", "Yes|No",TRUE) - if(allInfo2=="yes"){ - print _("aflowInfo") - } else{ - var pickInfo2=prompt("State Info", info) - if(pickInfo2=="null"){quit} - print _("aflowInfo."+pickInfo2) - } - } - -} - -print "aflowGetInfo() ready" - -function aflowSimilarityCheck(file1, file2, range) { - load files @file1 @file2 - var latticeScaling = aflowGetLatticeScaling(range) - if (!latticeScaling)return - load append @file2 filter @{"latticeScaling="+(latticeScaling)} - print "lattice scaling is now " + aflowGetLatticeScaling(range) - -} - -function aflowGetLatticeScaling(range) { -// sample script only -// with two files loaded, create a polyhedron for -// one atom in each file of the same element. -// Using SMARTS, find the two matching polyhedra and determine their -// volumes. Then use that volume difference to reload the -// second model with scaling - - - if(!range) range=3.65 - - // first atom's element - elem1= {*}[1].element -// first and last atom with this element - atom1 = {element=@elem1}[1] - atom2 = {element=@elem1}[0] -// make sure those are in two different models - if (atom1.modelIndex == atom2.modelIndex) { - prompt "element " + elem1 + " is not in " + file2 - return - } -// create two polyhedra - select atom1 or atom2 - polyhedra 4-24 @range unitcell translucent -// calculate their symmetry, including SMILES and SMARTS representations - calculate symmetry polyhedra -// using the SMARTS for first, find the second -// this could fail the files are different or two atoms have different environments - s1 = atom1.polyhedron.getProperty("smarts") - all1 = polyhedra(s1) - print "for SMILES="+s1 +"\n found " + all1 -// pull out the volume information from the polyhedra - var volumes = getProperty("shapeInfo.polyhedra[select volume]") -// return the scaling factor - return (volumes[1]/volumes[2])**0.333333 -} - -//aflowSimilarityCheck("POSCAR_Er1Fe2_ICSD_630450" "POSCAR_Er1Fe2_ICSD_169364") - - -//This function creates the Brillouin Zone for compounds which are accessed through the ICSD file - -function aflowCreateBZ(p1,p2) { - if(!p1) {p1 = prompt("classification (e.g. MCL)?", defaultInput)} - if(!p2) {p2 = prompt("compound (e.g. Ag1Au1Te4_ICSD_24646)?", defaultInput)} - script $SCRIPT_PATH$/bz2b.spt - - // FAILS because ?geometry is not delivering the correct primitive cell - // bzg =load("http://aflowlib.mems.duke.edu/AFLOWDATA/ICSD_WEB/"+ p1 + "/" + p2 + "/?geometry").split(",") - // instead, we decode the _sprim CIF data: - // _cell_length_a 4.0099493522 - // _cell_length_b 4.0099493522 - // _cell_length_c 4.0099493522 - // _cell_angle_alpha 119.9516660506 - // _cell_angle_beta 119.9516660506 - // _cell_angle_gamma 90.0837372630 - // _symmetry_space_group_name_H-M 'P1' - - // Get the standard primitive unit cell information from AFLOW - // and get it into an array of six numbers - [a, b, c, alpha, beta, gamma] - - load_sprim = load("http://aflowlib.mems.duke.edu/AFLOWDATA/ICSD_WEB/" + p1 + "/" + p2 + "/" + p2 + "_sprim.cif") - var bzg = load_sprim.split("_symmetry")[1] - bzg = bzg.replace("\n","").split("_cell_") - bzg = [bzg[2].split(" ")[2],bzg[3].split(" ")[2],bzg[4].split(" ")[2],bzg[5].split(" ")[2],bzg[6].split(" ")[2],bzg[7].split(" ")[2]] - print bzg - - // now create the Brilloin zone - - createBZ([bzg[1],bzg[2],bzg[3],bzg[4],bzg[5],bzg[6]]) - - // and produce the band paths on it - - load_kpoints_bands = load("http://aflowlib.mems.duke.edu/AFLOWDATA/ICSD_WEB/"+ p1 + "/" + p2 +"/KPOINTS.bands") - - // for example: http://aflowlib.mems.duke.edu/AFLOWDATA/ICSD_WEB/TRI/B1Cd1Li1O3_ICSD_200615/KPOINTS.bands - - // unfortunately, this will not be sufficient for TRI1a and TRI2a systems, as those files have the TRI1B data - // instead. So we have to make that information ourselves. - - var latticeType = load("http://aflowlib.mems.duke.edu/AFLOWDATA/ICSD_WEB/"+ p1 + "/" + p2 +"/?lattice_variation_relax").trim() - - // for example http://aflowlib.mems.duke.edu/AFLOWDATA/ICSD_WEB/TRI/B1Cd1Li1O3_ICSD_200615/?lattice_variation_relax - - generatePaths(load_kpoints_bands, latticeType) -} - -// parse the KPOINTS.bands data - -function generatePaths(paths, type) { - - var tria = {} - if (type == "TRI1a" || type == "TRI2a") { - tria = {"X" : { 0.5 0 0 }, - "Y" : { 0 0.5 0 }, - "Z" : { 0 0 0.5 }, - "L" : { 0.5 0.5 0 }, - "M" : { 0 0.5 0.5 }, - "N" : { 0.5 0 0.5 }, - "R" : { 0.5 0.5 0.5 } } - } - -/* for example: - -TRI1B (triclinic) X-G-Y L-G-Z N-G-M R-G -20 ! 20 grids -Line-mode -reciprocal - 0.000 -0.500 0.000 ! X - 0.000 0.000 0.000 ! \Gamma - - 0.000 0.000 0.000 ! \Gamma - 0.500 0.000 0.000 ! Y - - 0.500 -0.500 0.000 ! L - 0.000 0.000 0.000 ! \Gamma - - 0.000 0.000 0.000 ! \Gamma - -0.500 0.000 0.500 ! Z - - -0.500 -0.500 0.500 ! N - 0.000 0.000 0.000 ! \Gamma - - 0.000 0.000 0.000 ! \Gamma - 0.000 0.000 0.500 ! M - - 0.000 -0.500 0.500 ! R - 0.000 0.000 0.000 ! \Gamma - -*/ - - var paths = paths.replace("\n \n","\n") - //var type = paths.lines[1].split(" ")[1] - var lines = paths.lines[5][0] - - set echo pathways - set echo pathways @{type} - color echo black - - var pts = {} - var bandlines =[] - var n = lines.size - 1 - var kprev = "" - - for(i=1; i<=n;i++) { - if(!lines[i]) {break} - var ptData = lines[i].split("!") - var k = ptData[2].trim() - if(k=="\\Gamma") { - k="\u0393" - } else if(k=="\\Sigma") { - k="\u03A3" - } - else if(k=="\\Sigma_1") { - k="\u03A31" - } - var x = (tria[k] ? tria[k] : point("{"+ptData[1]+"}")) - print [i,k,x] - if(!pts[k]) { - draw id @{"d"+i} diameter 0.06 @{x.xyz} color white - } - - pts[k] = x - set echo @{k} @{k} - set echo @{k} @{x.xyz} - set echo @{k} DEPTH 1010 - color echo yellow - if(i%2==0) { - bandlines.push([kprev,k]) - draw id @{"line"+i} width 0.035 @{pts[kprev].xyz} @{pts[k].xyz} color white - }else { - kprev =k - } - } - print pts -} - -print "aflowCreateBZ" - - -// AFLOW macro command aflowCompare - -var aflowid = "" - -/* - * Ask for a id and load POSCAR and CONTCAR; return initial standard deviation - */ -function loadAflowFiles (id){ - - if (!id) id = prompt ("id?","TRI/Li1Mo1S2_ICSD_95571") - if (!id) return - aflowid = id - - //load POSCAR and CONTCAR - - contcar = load(AFLOWlib + id + "&file=CONTCAR.relax2.bz2") - poscar = load(AFLOWlib + id + "&file=POSCAR.relax1.bz2") - load inline @contcar - load append inline @poscar - return calcSD() -} - -/* - * Fix CONTCAR coordinates that have been moved to the next adjacent unitcell and return the fixed standard deviation - */ -function fixCoord (){ - frame 2 - for(var a in {1.1}){ - unitcell center @a - var n=a.atomno - var b={atomno=n and 2.1} - b.xyz=b.uxyz.xyz - a.elemno=b.elemno - b.spacefill=0 - b.stars=0.5 - } - unitcell reset - frame 1 - wireframe off - return calcSD() -} - -/* - * return the rmsd of POSCAR and CONTCAR - */ -function calcSD(){ - return compare({1.1},{2.1}, "stddev") -} - -/* - * - */ -function getLatticeVariations (){ -var origLat = load (AFLOWweb + aflowid + "/?lattice_variation_orig") - -var relaxLat = load (AFLOWweb + aflowid + "/?lattice_variation_relax") - -return [origLat,relaxLat] -} - -/* - * ask for id; load POSCAR and CONTCAR; fix coordinate positions; - */ - -function aflowCompare (id){ - aflowid = "" - if (!id) id = prompt ("id?","TRI/Li1Mo1S2_ICSD_95571") //ask me what is the id - if (!id) return - - - oldrmsd = loadAflowFiles(id) - if (!aflowid) return - rmsd = fixCoord() - - lattices = getLatticeVariations.trim().join("\u2192") - - set echo bottom left - echo "Original SD =@{format('%6.4f',oldrmsd)} Fixed SD =@{format('%6.4f',rmsd)} Reduced by @{format('%4.2f',(oldrmsd-rmsd)/oldrmsd)*100}% (@{lattices})" - - set echo top center - echo "@{aflowid}" - -} - -print "aflowCompare(id) loaded - for example, aflowCompare('TRI/Li1Mo1S2_ICSD_95571')" - - - -/* - * create a key list of elements and their colors - */ -function aflowKey() { - - var elements = {*}.element.pivot - if (elements.size > 1) { - var x = 20 - var y = height - 30 - for (var e in elements){ - var c = {element=@e}.color - draw ID @{"d_"+ e} diameter 20 [ @x @y ] color @c - set echo ID @{"e_" + e} [ @{x + 10} @{y - 8} ] - echo @e - font echo 24 bold sansserif - color echo black - y -= 30 - } - } - -} - -print "aflowKey() loaded - adds a key of element symbols with their colors" - - -/* - * load an AFLOW Crystal Database prototype with the specified ID - */ -function aflowProtoLoadCif(id) { - - var dbpath = "http://aflow.org/CrystalDatabase/CIF" - - if (!id) id = "AB2_aP12_1_4a_8a" - if (!id.find(".cif")) id += ".cif" - if (!id.find("http")) id = dbpath + "/" + id - - var axisScale = 0.5 - var axisWidth = 0.06 - var fontScale = 20 - var unitcellScale = 0.02 - - load @id packed - axes center {-1.0 -1.0 -1.0} - axes scale @axisScale - axes @axisWidth - font axes @fontScale - unitcell @unitCellScale - select metal - color bonds translucent 1.0 - -} - - - -// showgs - -if (!AFLOW) - AFLOW = {}; - -AFLOW.outdir = "c:/temp/bilbao/examples/"; -AFLOW.aflowroot = "https://www.aflowlib.org/prototype-encyclopedia/"; -AFLOW.aflowpages = ["triclinic_lattice.html","monoclinic_lattice.html","orthorhombic_lattice.html","tetragonal_lattice.html", -"trigonal_lattice.html","hexagonal_lattice.html","cubic_lattice.html"]; -AFLOW.aflowjson = ""; - - - -/* does not work, because these pages are dynamically created. - -function getAFLOWPages() { - for (var page in aflowpages) { - var x = load(aflowroot + page); - write var x @{outdir + "data/aflow_" + page}; - } -} -*/ - -function createAFlowJSON() { - var out = {}; - for (var page in aflowpages) { - var fname = "$SCRIPT_PATH$/data/aflow_" + page; - var aflowdata = load(fname).split('a href="'); - for (name in aflowdata) { - var aname = name; - if (aname[1] != "A") continue; - aname = aname.split(".html")[1]; - var sg = aname.split("_")[3]; - var sgs = out[sg]; - if (!sgs) { - sgs = []; - out[sg] = sgs; - } - sgs.push(aname); - } - } - out = out.format("JSON"); - write var out @{"$SCRIPT_PATH$/data/aflow_structures.json"}; - -} - -function getAFLOWPrototypes() { - if (!AFLOW.prototypes) { - AFLOW.prototypes = load("$SCRIPT_PATH$/data/aflow_structures.json","JSON"); - } -} - - -getAFLOWPrototypes(); - -/* -* Show a space group, possibly one of several for a set, -* and turn drawHover ON -*/ -function showSG(n, i, andSymmetry) { - getAFLOWPrototypes(); - var sgs = AFLOW.prototypes[n]; - if (!i) i = 1; - var aname = sgs[i]; - - var url = AFLOW.aflowroot + "CIF/" + aname + ".cif"; - load @url packed; - if (andSymmetry) { - draw spacegroup all; - set drawhover; - color {*} translucent; - } - print "AFLOW Encyclopedia of Crystallographic Prototypes, https://www.aflowlib.org/prototype-encyclopedia; see M. J. Mehl, D. Hicks, C. Toher, O. Levy, R. M. Hanson, G. L. W. Hart, and S. Curtarolo, The AFLOW Library of Crystallographic Prototypes: Part 1, Comp. Mat. Sci. 136, S1-S828 (2017). (doi=10.1016/j.commatsci.2017.01.017) and related publications" - -} - -print "showSG(n,i) loaded - load an AFLOW prototype structure; n = space group number, i = index of prototype." -print "To see all prototypes of group 10, for example, print AFLOW.prototypes[10]" - - -/** -//prompt and get to info - prompt that asks what binary you want - then asks which info you want - if you don't specify it gives you the whole associated array - -//how does convex hull work on AFLOW -//choose concentration - -polyhedron 4-24 3.65 unitcell -print @1.polyhedron -print @1.polyhedron.keys -center @1 -model align @1 -//calculate symmetry polyhedron -//print {*}.polyhedron.pointGroup -//print {*}.x -//print {*}.label -//print {*}.x.all -//print {*}.polyhedron.all.pointGroup -print {*}.polyhedron.all.getProperty("pointGroup") -print {*}.polyhedron.all.getProperty("pointGroup").pivot -print {*}.polyhedron.all.getProperty("[select modelNumber,pointGroup where pointGroup='C2h']") -model 65 -display @1 -print {*}.polyhedron.all.getProperty("[select modelNumber, atomNumber, pointGroup where pointGroup='C2h']") -print {*}.polyhedron.all.getProperty("[select modelNumber,atomNumber,pointGroup where pointGroup='C2h']") -draw pointgroup polyhedron -print {*}.polyhedron.all.getProperty("[select energy,pointGroup]") -print {*}.polyhedron.all.getProperty("[select energy,pointGroup]").sort -print {*}.polyhedron.all.getProperty("[select energy,pointGroup]").format(["energy","pointGroup"]) -print {*}.polyhedron.all.getProperty("[select energy,pointGroup]").format(["energy","pointGroup"]).sort(1) -m=_("modelNumber") -print m -m=_("[select modelNumber where Cb=0.5]") -print m -m=_("aflowInfo[select modelNumber where Cb=0.5]") -print m -print {model=m}.polyhedron.all.getProperty("[select energy,pointGroup]").format(["energy","pointGroup"]).sort(1) -print {model=m}.polyhedron.all.getProperty("[select energy,pointGroup]").format(["energy","pointGroup"]).pointGroup -print {model=m}.polyhedron.all.getProperty("[select energy,pointGroup]").format(["energy","pointGroup"]).col(2) -print {model=m}.polyhedron.all.getProperty("[select energy,pointGroup]").format(["energy","pointGroup"]).col(2).pivot -print {model=m}.polyhedron.all.getProperty("[select energy,pointGroup]").bin(-0.07,0.2,0.01) -print {model=m}.polyhedron.all.getProperty("[select energy,pointGroup]").bin(-0.07,0.2,0.01,"energy") -print {model=m}.polyhedron.all.getProperty("[select energy,pointGroup]") -a={model=m}.polyhedron.all.getProperty("[select energy,pointGroup]") -print a.bin(-0.07,0.2,0.01,"energy") -print a Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2023-10-24 19:58:49 UTC (rev 22570) +++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2023-10-24 20:04:18 UTC (rev 22571) @@ -59,6 +59,20 @@ Jmol.___JmolVersion="16.1.43" // (legacy) also 16.1.44 (swingJS) +new feature: MACRO AFLOW adds SHOWSG(n,i,addSymmetry) + - displays example i of every space group (n) -- though not every setting + - taps https://www.aflowlib.org/prototype-encyclopedia/ + - see AFLOW Encyclopedia of Crystallographic Prototypes, + https://www.aflowlib.org/prototype-encyclopedia; + M. J. Mehl, D. Hicks, C. Toher, O. Levy, R. M. Hanson, + G. L. W. Hart, and S. Curtarolo, + The AFLOW Library of Crystallographic Prototypes: Part 1, + Comp. Mat. Sci. 136, S1-S828 (2017). + (doi=10.1016/j.commatsci.2017.01.017) and related publications + - n is space group number, from 1 to 230 + - i is index 1-m where m is the number of space groups in the encyclopedia for that number + - addSymmetry TRUE to add DRAW SPACEGROUP ALL to show operations + bug fix: MODELKIT SPACEGROUP <name or number> does not work if there are no atoms - now creates a generally satisfactory unit cell when no atoms are present - unit cells are not adjusted to have different a,b,c for "unique origin" groups This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2023-11-20 04:29:13
|
Revision: 22592 http://sourceforge.net/p/jmol/code/22592 Author: hansonr Date: 2023-11-20 04:29:10 +0000 (Mon, 20 Nov 2023) Log Message: ----------- New transpiler -- allows Java8 syntax - switch(String) and try(resource) Modified Paths: -------------- trunk/Jmol/j2s/j2s.core_5.0.1.jar Added Paths: ----------- trunk/Jmol/j2s/j2s.core.jar trunk/Jmol/unused/j2s.core_5.0.1.jar Added: trunk/Jmol/j2s/j2s.core.jar =================================================================== (Binary files differ) Index: trunk/Jmol/j2s/j2s.core.jar =================================================================== --- trunk/Jmol/j2s/j2s.core.jar 2023-11-20 04:26:07 UTC (rev 22591) +++ trunk/Jmol/j2s/j2s.core.jar 2023-11-20 04:29:10 UTC (rev 22592) Property changes on: trunk/Jmol/j2s/j2s.core.jar ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Modified: trunk/Jmol/j2s/j2s.core_5.0.1.jar =================================================================== (Binary files differ) Copied: trunk/Jmol/unused/j2s.core_5.0.1.jar (from rev 22585, trunk/Jmol/j2s/j2s.core_5.0.1.jar) =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2023-11-26 00:37:28
|
Revision: 22595 http://sourceforge.net/p/jmol/code/22595 Author: hansonr Date: 2023-11-26 00:37:23 +0000 (Sun, 26 Nov 2023) Log Message: ----------- Jmol.___JmolVersion="16.1.47" // (legacy) also 16.1.48 (swingJS) bug fix: MODELKIT SPACEGROUP ... for no-atom structure does not properly set unit cell lengths bug fix: LOAD ==HEM (PDB ligand) loading broken in 16.1.45 (2023.11.06) bug fix: LOAD =ams/quartz broken in 16.1.45 bug fix: CIFReader may misread incommensurately modulated files that have multiple structures bug fix: SCALE maximum length 1/2 what it should be with set antialiasDisplay off bug fix: fixes DRAW SPACEGROUP ALL for unit glide in #88, missing planes in #156 bug fix: fixes DRAW SPACEGROUP (ALL) diamond glides of +/-3/4 listed as "g" instead of "d" bug fix: fixes DRAW SPACEGROUP (ALL) diamond glides of +/-3/4 instead of -/+1/4 new feature: LOAD .... fill unitcell rhombohedral - fills a rhombohedral unit cell for a structure that is trigonal in file - ignored unless the symmetry is trigonal - does NOT transform operators -- for that, follow this with MODELKIT SPACEGROUP "..." new feature: LOAD .... fill unitcell trigonal - fills a trigonal unit cell for a structure that is rhombohedral in file - ignored unless the symmetry is trigonal - does NOT transform operators -- for that, follow this with MODELKIT SPACEGROUP "..." new feature: LOAD ... fill unitcell "2a,a-b,..." - allows generic fill of specified unit cell - can be used with any space group - will accept packing lattice such as {2 2 2} just before FILL - does not transform operators -- for that, follow this with MODELKIT SPACEGROUP "..." - for example: load =aflowproto/148.1 fill unitcell "2/3a+1/3b+1/3c,-1/3a+1/3b+1/3c,-1/3a-2/3b+1/3c" modelkit spacegroup "148:r" draw spacegroup all new feature: LOAD =aflowlib/155.2 - loads the second AFLOW prototype in spacegroup 155 at https://www.aflowlib.org/prototype-encyclopedia - full listing of thes AFLOW codes codes employed is in - https://github.com/BobHanson/Jmol-SwingJS/tree/master/src/org/jmol/symmetry/sg/json/aflow_structures.json JmolVersion="16.1.45" // (legacy) also 16.1.46 (swingJS) bug fix: GaussianReader misreading high-level spherical MO data (9G, 11H, 13I) new feature: x = spacegroup("ITA/155.1") - provides detailed information about general positions, generators, and Wyckoff positions for all space groups and their additional ITA settings as found using https://www.cryst.ehu.es/cgi-bin/cryst/programs/nph-getgen - retrieves the first JSON structure in org/jmol/symmetry/sg/json/ita_155.json new feature: UNITCELL RHOMBOHEDRAL and UNITCELL TRIGONAL (or HEXAGONAL - same) - allows switching back and forth between rhombohedral and hexagonal unit cells. - does not change the space group (assumes currently rhombohedral if trigonal or hexangonal is chosen and vice versa) - does not check to see that this is reasonable - applies for rhombohedral: UNITCELL "2/3a+1/3b+1/3c,-1/3a+1/3b+1/3c,-1/3a-2/3b+1/3c" - applies for trigonal: UNITCELL "a-b,b-c,a+b+c" new feature: MODELKIT ADD <elem> WYCKOFF <Aa-z> - adds an atom in a representative position for the given Wyckoff position. - generates all symmetry-equivalent atoms. - for example: modelkit add C wyckoff d - the "seed" position is at the relatively arbitrary position of (2.3/5, 2.3/7, 2.3/9). - this point is projected onto the specified Wyckoff position element (point, line, or plane). - after generation, this point can be moved within the confines of the Wyckoff position constraint using SET PICKING DRAGATOM Modified Paths: -------------- trunk/Jmol/.settings/org.eclipse.jdt.core.prefs trunk/Jmol/appletweb/jsmol.zip trunk/Jmol/examples/basic/org/jmol/Export.java trunk/Jmol/j2s/j2s.core_5.0.1.jar trunk/Jmol/j2s/timestamp trunk/Jmol/jsv/build_info.properties trunk/Jmol/site-resources-zip/Jmol-j2s-site.zip trunk/Jmol/src/com/jcraft/jzlib/Adler32.java trunk/Jmol/src/com/jcraft/jzlib/CRC32.java trunk/Jmol/src/javajs/util/CifDataParser.java trunk/Jmol/src/javajs/util/Lst.java trunk/Jmol/src/jme/AtomDisplayLabel.java trunk/Jmol/src/jspecview/api/JSVTreeNode.java trunk/Jmol/src/jspecview/app/JSVAppPro.java trunk/Jmol/src/jspecview/application/JSpecView.java trunk/Jmol/src/jspecview/application/MainFrame.java trunk/Jmol/src/jspecview/common/JSViewer.java trunk/Jmol/src/jspecview/dialog/ViewsDialog.java trunk/Jmol/src/jspecview/tree/SimpleTreeEnumeration.java trunk/Jmol/src/jspecview/tree/SimpleTreeNode.java trunk/Jmol/src/org/jmol/api/Interface.java trunk/Jmol/src/org/jmol/modelkit/ModelKit.java trunk/Jmol/src/org/jmol/modelset/AtomCollection.java trunk/Jmol/src/org/jmol/scriptext/CmdExt.java trunk/Jmol/src/org/jmol/symmetry/SpaceGroup.java trunk/Jmol/src/org/jmol/symmetry/SpaceGroupFinder.java trunk/Jmol/src/org/jmol/symmetry/Symmetry.java trunk/Jmol/src/org/jmol/util/JSONWriter.java trunk/Jmol/src/org/jmol/viewer/Jmol.properties trunk/Jmol/src/org/jmol/viewer/Viewer.java trunk/Jmol/test/jmol-jar/Jmol.jar Added Paths: ----------- trunk/Jmol/site-resources/jsmol/j2s/img/ trunk/Jmol/site-resources/jsmol/j2s/img/cursor_wait.gif trunk/Jmol/site-resources/jsmol/j2s/img/play_make_live.jpg trunk/Jmol/unused/Jmol-j2s-site2.zip Removed Paths: ------------- trunk/Jmol/site-resources/jsmol/img/cursor_wait.gif trunk/Jmol/site-resources/jsmol/img/play_make_live.jpg Modified: trunk/Jmol/.settings/org.eclipse.jdt.core.prefs =================================================================== --- trunk/Jmol/.settings/org.eclipse.jdt.core.prefs 2023-11-23 06:01:40 UTC (rev 22594) +++ trunk/Jmol/.settings/org.eclipse.jdt.core.prefs 2023-11-26 00:37:23 UTC (rev 22595) @@ -8,21 +8,26 @@ org.eclipse.jdt.core.classpath.exclusionPatterns=enabled org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error +org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnull.secondary= org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary= org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullable.secondary= org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.compliance=1.8 org.eclipse.jdt.core.compiler.debug.lineNumber=generate org.eclipse.jdt.core.compiler.debug.localVariable=do not generate org.eclipse.jdt.core.compiler.debug.sourceFile=generate org.eclipse.jdt.core.compiler.doc.comment.support=enabled org.eclipse.jdt.core.compiler.maxProblemPerUnit=100 +org.eclipse.jdt.core.compiler.problem.APILeak=warning org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.autoboxing=warning @@ -45,7 +50,7 @@ org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning -org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=error org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled @@ -72,6 +77,8 @@ org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning +org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error org.eclipse.jdt.core.compiler.problem.nullReference=warning org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error @@ -78,6 +85,7 @@ org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore @@ -89,10 +97,12 @@ org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled -org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning +org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning @@ -99,6 +109,9 @@ org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning +org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled +org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore @@ -106,6 +119,7 @@ org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore org.eclipse.jdt.core.compiler.problem.unusedImport=warning org.eclipse.jdt.core.compiler.problem.unusedLabel=warning org.eclipse.jdt.core.compiler.problem.unusedLocal=warning @@ -115,10 +129,11 @@ org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning org.eclipse.jdt.core.compiler.release=disabled -org.eclipse.jdt.core.compiler.source=1.6 +org.eclipse.jdt.core.compiler.source=1.8 org.eclipse.jdt.core.formatter.align_type_members_on_columns=false org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 Modified: trunk/Jmol/appletweb/jsmol.zip =================================================================== (Binary files differ) Modified: trunk/Jmol/examples/basic/org/jmol/Export.java =================================================================== --- trunk/Jmol/examples/basic/org/jmol/Export.java 2023-11-23 06:01:40 UTC (rev 22594) +++ trunk/Jmol/examples/basic/org/jmol/Export.java 2023-11-26 00:37:23 UTC (rev 22595) @@ -81,6 +81,7 @@ case ANIMFRAME: case APPLETREADY: case ATOMMOVED: + case AUDIO: case ERROR: case HOVER: case IMAGE: Modified: trunk/Jmol/j2s/j2s.core_5.0.1.jar =================================================================== (Binary files differ) Modified: trunk/Jmol/j2s/timestamp =================================================================== --- trunk/Jmol/j2s/timestamp 2023-11-23 06:01:40 UTC (rev 22594) +++ trunk/Jmol/j2s/timestamp 2023-11-26 00:37:23 UTC (rev 22595) @@ -1 +1 @@ -20231113043956 +20231125175756 Modified: trunk/Jmol/jsv/build_info.properties =================================================================== --- trunk/Jmol/jsv/build_info.properties 2023-11-23 06:01:40 UTC (rev 22594) +++ trunk/Jmol/jsv/build_info.properties 2023-11-26 00:37:23 UTC (rev 22595) @@ -1,4 +1,4 @@ -#Thu, 16 Nov 2023 11:13:33 -0600 +#Sat, 25 Nov 2023 18:33:32 -0600 build.major.number=2 -build.revision.number=11968 +build.revision.number=11969 build.minor.number=0 Deleted: trunk/Jmol/site-resources/jsmol/img/cursor_wait.gif =================================================================== (Binary files differ) Deleted: trunk/Jmol/site-resources/jsmol/img/play_make_live.jpg =================================================================== (Binary files differ) Added: trunk/Jmol/site-resources/jsmol/j2s/img/cursor_wait.gif =================================================================== (Binary files differ) Index: trunk/Jmol/site-resources/jsmol/j2s/img/cursor_wait.gif =================================================================== --- trunk/Jmol/site-resources/jsmol/j2s/img/cursor_wait.gif 2023-11-23 06:01:40 UTC (rev 22594) +++ trunk/Jmol/site-resources/jsmol/j2s/img/cursor_wait.gif 2023-11-26 00:37:23 UTC (rev 22595) Property changes on: trunk/Jmol/site-resources/jsmol/j2s/img/cursor_wait.gif ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Added: trunk/Jmol/site-resources/jsmol/j2s/img/play_make_live.jpg =================================================================== (Binary files differ) Index: trunk/Jmol/site-resources/jsmol/j2s/img/play_make_live.jpg =================================================================== --- trunk/Jmol/site-resources/jsmol/j2s/img/play_make_live.jpg 2023-11-23 06:01:40 UTC (rev 22594) +++ trunk/Jmol/site-resources/jsmol/j2s/img/play_make_live.jpg 2023-11-26 00:37:23 UTC (rev 22595) Property changes on: trunk/Jmol/site-resources/jsmol/j2s/img/play_make_live.jpg ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Modified: trunk/Jmol/site-resources-zip/Jmol-j2s-site.zip =================================================================== (Binary files differ) Modified: trunk/Jmol/src/com/jcraft/jzlib/Adler32.java =================================================================== --- trunk/Jmol/src/com/jcraft/jzlib/Adler32.java 2023-11-23 06:01:40 UTC (rev 22594) +++ trunk/Jmol/src/com/jcraft/jzlib/Adler32.java 2023-11-26 00:37:23 UTC (rev 22595) @@ -44,20 +44,24 @@ private long s1=1L; private long s2=0L; + @Override public void resetLong(long init){ s1=init&0xffff; s2=(init>>16)&0xffff; } + @Override public void reset(){ s1=1L; s2=0L; } + @Override public long getValue(){ return ((s2<<16)|s1); } + @Override public void update(byte[] buf, int index, int len){ if(len==1){ @@ -116,6 +120,7 @@ // } private byte[] b1 = new byte[1]; + @Override public void updateByteAsInt(int b) { b1[0] = (byte) b; update(b1, 0, 1); Modified: trunk/Jmol/src/com/jcraft/jzlib/CRC32.java =================================================================== --- trunk/Jmol/src/com/jcraft/jzlib/CRC32.java 2023-11-23 06:01:40 UTC (rev 22594) +++ trunk/Jmol/src/com/jcraft/jzlib/CRC32.java 2023-11-26 00:37:23 UTC (rev 22595) @@ -98,6 +98,7 @@ //} //} + @Override public void update(byte[] buf, int index, int len) { int c = ~crc; while (--len >= 0) @@ -105,14 +106,17 @@ crc = ~c; } + @Override public void reset() { crc = 0; } + @Override public void resetLong(long vv) { crc = (int) (vv & 0xffffffffL); } + @Override public long getValue() { return crc & 0xffffffffL; } @@ -119,6 +123,7 @@ private byte[] b1 = new byte[1]; + @Override public void updateByteAsInt(int b) { b1[0] = (byte) b; update(b1, 0, 1); Modified: trunk/Jmol/src/javajs/util/CifDataParser.java =================================================================== --- trunk/Jmol/src/javajs/util/CifDataParser.java 2023-11-23 06:01:40 UTC (rev 22594) +++ trunk/Jmol/src/javajs/util/CifDataParser.java 2023-11-26 00:37:23 UTC (rev 22595) @@ -892,6 +892,7 @@ } catch (Exception e) { System.out.println("exception in CifDataParser ; " + e); } + return "["; case ']': ich++; return "]"; Modified: trunk/Jmol/src/javajs/util/Lst.java =================================================================== --- trunk/Jmol/src/javajs/util/Lst.java 2023-11-23 06:01:40 UTC (rev 22594) +++ trunk/Jmol/src/javajs/util/Lst.java 2023-11-26 00:37:23 UTC (rev 22595) @@ -66,7 +66,7 @@ * @j2sIgnore * */ -// @Override +// @Override DON'T ADD THIS // @Deprecated public V remove(int location) { throw new NullPointerException("use Lst.removeItemAt(location), not Lst.remove(location)"); Modified: trunk/Jmol/src/jme/AtomDisplayLabel.java =================================================================== --- trunk/Jmol/src/jme/AtomDisplayLabel.java 2023-11-23 06:01:40 UTC (rev 22594) +++ trunk/Jmol/src/jme/AtomDisplayLabel.java 2023-11-26 00:37:23 UTC (rev 22595) @@ -6,7 +6,6 @@ import java.awt.FontMetrics; import java.awt.Graphics; import java.awt.geom.Rectangle2D; -import java.awt.geom.Rectangle2D.Double; /** * @author bruno Modified: trunk/Jmol/src/jspecview/api/JSVTreeNode.java =================================================================== --- trunk/Jmol/src/jspecview/api/JSVTreeNode.java 2023-11-23 06:01:40 UTC (rev 22594) +++ trunk/Jmol/src/jspecview/api/JSVTreeNode.java 2023-11-26 00:37:23 UTC (rev 22595) @@ -5,8 +5,6 @@ import java.util.Enumeration; -import javax.swing.tree.TreeNode; - import jspecview.common.PanelNode; public interface JSVTreeNode { @@ -19,7 +17,7 @@ PanelNode getPanelNode(); - Enumeration<TreeNode> children(); + Enumeration<JSVTreeNode> children(); int getIndex(); Modified: trunk/Jmol/src/jspecview/app/JSVAppPro.java =================================================================== --- trunk/Jmol/src/jspecview/app/JSVAppPro.java 2023-11-23 06:01:40 UTC (rev 22594) +++ trunk/Jmol/src/jspecview/app/JSVAppPro.java 2023-11-26 00:37:23 UTC (rev 22595) @@ -41,17 +41,16 @@ import java.util.Properties; +import org.jmol.api.JSVInterface; + import jspecview.api.AppletFrame; -import jspecview.api.ScriptInterface; -import org.jmol.api.JSVInterface; - /** * @author Bob Hanson */ public class JSVAppPro extends JSVApp implements - JSVInterface, ScriptInterface { + JSVInterface { public JSVAppPro(AppletFrame appletFrame, boolean isJS) { super(appletFrame, isJS); Modified: trunk/Jmol/src/jspecview/application/JSpecView.java =================================================================== --- trunk/Jmol/src/jspecview/application/JSpecView.java 2023-11-23 06:01:40 UTC (rev 22594) +++ trunk/Jmol/src/jspecview/application/JSpecView.java 2023-11-26 00:37:23 UTC (rev 22595) @@ -449,6 +449,7 @@ mainFrame.repaint(); } + @SuppressWarnings("deprecation") @Override public void setCursor(int id) { if (mainFrame != null) Modified: trunk/Jmol/src/jspecview/application/MainFrame.java =================================================================== --- trunk/Jmol/src/jspecview/application/MainFrame.java 2023-11-23 06:01:40 UTC (rev 22594) +++ trunk/Jmol/src/jspecview/application/MainFrame.java 2023-11-26 00:37:23 UTC (rev 22595) @@ -88,14 +88,11 @@ import jspecview.common.JSVFileManager; import jspecview.common.JSViewer; import jspecview.common.PanelNode; -import jspecview.common.Parameters; import jspecview.common.PeakPickEvent; import jspecview.common.ScriptToken; import jspecview.common.SubSpecChangeEvent; import jspecview.common.ZoomEvent; import jspecview.export.Exporter; -import jspecview.java.AwtFileHelper; -import jspecview.java.AwtMainPanel; import jspecview.source.JDXSource; // BH 1/14/17 moves command checking to JSViewer @@ -806,6 +803,8 @@ case GRIDON: toolBar.gridToggleButton.setSelected(tf); break; + default: + break; } } Modified: trunk/Jmol/src/jspecview/common/JSViewer.java =================================================================== --- trunk/Jmol/src/jspecview/common/JSViewer.java 2023-11-23 06:01:40 UTC (rev 22594) +++ trunk/Jmol/src/jspecview/common/JSViewer.java 2023-11-26 00:37:23 UTC (rev 22595) @@ -1509,14 +1509,14 @@ JSVTreeNode rootNode = spectraTree.getRootNode(); String fileName = (source == null ? null : source.getFilePath()); Lst<JSVTreeNode> toDelete = new Lst<JSVTreeNode>(); - Enumeration<?> enume = rootNode.children(); + Enumeration<JSVTreeNode> enume = rootNode.children(); while (enume.hasMoreElements()) { - JSVTreeNode node = (JSVTreeNode) enume.nextElement(); + JSVTreeNode node = enume.nextElement(); if (fileName == null || node.getPanelNode().source.matchesFilePath(fileName)) { Logger.info("Closing " + node.getPanelNode().source.getFilePath()); - for (Enumeration<?> e = node.children(); e.hasMoreElements();) { - JSVTreeNode childNode = (JSVTreeNode) e.nextElement(); + for (Enumeration<JSVTreeNode> e = node.children(); e.hasMoreElements();) { + JSVTreeNode childNode = e.nextElement(); toDelete.addLast(childNode); panelNodes.removeObj(childNode.getPanelNode()); } Modified: trunk/Jmol/src/jspecview/dialog/ViewsDialog.java =================================================================== --- trunk/Jmol/src/jspecview/dialog/ViewsDialog.java 2023-11-23 06:01:40 UTC (rev 22594) +++ trunk/Jmol/src/jspecview/dialog/ViewsDialog.java 2023-11-26 00:37:23 UTC (rev 22595) @@ -74,9 +74,9 @@ } private void addCheckBoxes(JSVTreeNode rootNode, int level, boolean isViews) { - Enumeration enume = rootNode.children(); + Enumeration<JSVTreeNode> enume = rootNode.children(); while (enume.hasMoreElements()) { - JSVTreeNode treeNode = (JSVTreeNode) enume.nextElement(); + JSVTreeNode treeNode = enume.nextElement(); PanelNode node = treeNode.getPanelNode(); if (node.isView != isViews) continue; @@ -122,9 +122,9 @@ node.getPanelNode().isSelected = true; checking = false; } - Enumeration enume = node.children(); + Enumeration<JSVTreeNode> enume = node.children(); while (enume.hasMoreElements()) { - JSVTreeNode treeNode = (JSVTreeNode) enume.nextElement(); + JSVTreeNode treeNode = enume.nextElement(); dialog.setSelected(checkBoxes.get(treeNode.getIndex()), isSelected); treeNode.getPanelNode().isSelected = isSelected; node.getPanelNode().isSelected = isSelected; Modified: trunk/Jmol/src/jspecview/tree/SimpleTreeEnumeration.java =================================================================== --- trunk/Jmol/src/jspecview/tree/SimpleTreeEnumeration.java 2023-11-23 06:01:40 UTC (rev 22594) +++ trunk/Jmol/src/jspecview/tree/SimpleTreeEnumeration.java 2023-11-26 00:37:23 UTC (rev 22595) @@ -4,7 +4,7 @@ import jspecview.api.JSVTreeNode; -public class SimpleTreeEnumeration implements Enumeration { +public class SimpleTreeEnumeration implements Enumeration<JSVTreeNode> { SimpleTreeNode node; int pt; Modified: trunk/Jmol/src/jspecview/tree/SimpleTreeNode.java =================================================================== --- trunk/Jmol/src/jspecview/tree/SimpleTreeNode.java 2023-11-23 06:01:40 UTC (rev 22594) +++ trunk/Jmol/src/jspecview/tree/SimpleTreeNode.java 2023-11-26 00:37:23 UTC (rev 22595) @@ -3,8 +3,6 @@ import java.util.Enumeration; import javajs.util.Lst; - - import jspecview.api.JSVTreeNode; import jspecview.common.PanelNode; @@ -40,7 +38,8 @@ this.index = index; } - public Enumeration children() { + @Override + public Enumeration<JSVTreeNode> children() { return new SimpleTreeEnumeration(this); } Modified: trunk/Jmol/src/org/jmol/api/Interface.java =================================================================== --- trunk/Jmol/src/org/jmol/api/Interface.java 2023-11-23 06:01:40 UTC (rev 22594) +++ trunk/Jmol/src/org/jmol/api/Interface.java 2023-11-26 00:37:23 UTC (rev 22595) @@ -38,17 +38,7 @@ */ public static Object getInterface(String name, Viewer vwr, String state) { try { - Class<?> x = null; -// if (vwr.isJSApplet) { -// /** -// * @j2sNative -// * -// * x = Clazz._4Name (name, vwr && vwr.html5Applet, state); -// * -// */ -// } else { - x = Class.forName(name); -// } + Class<?> x = Class.forName(name); return (x == null ? null : x.newInstance()); } catch (Exception e) { Logger.error("Interface.java Error creating instance for " + name Modified: trunk/Jmol/src/org/jmol/modelkit/ModelKit.java =================================================================== --- trunk/Jmol/src/org/jmol/modelkit/ModelKit.java 2023-11-23 06:01:40 UTC (rev 22594) +++ trunk/Jmol/src/org/jmol/modelkit/ModelKit.java 2023-11-26 00:37:23 UTC (rev 22595) @@ -1304,7 +1304,7 @@ name = name.substring(4); } boolean isP1 = (name.equalsIgnoreCase("P1") || name.equals("1")); - boolean isDefined = (!isP1 && name.length() > 0); + boolean isDefined = (name.length() > 0); clearAtomConstraints(); try { if (bs != null && bs.isEmpty()) @@ -1338,7 +1338,7 @@ BS basis; Object sg = null; @SuppressWarnings("unchecked") - Map<String, Object> sgInfo = (noAtoms && !isDefined || isP1 ? null + Map<String, Object> sgInfo = (noAtoms && !isDefined ? null : (Map<String, Object>) vwr.findSpaceGroup(isDefined ? null : bsAtoms, isDefined ? (isITA ? "ITA/" + name : name) : null, sym.getUnitCellParams(), false, true)); if (sgInfo == null) { Modified: trunk/Jmol/src/org/jmol/modelset/AtomCollection.java =================================================================== --- trunk/Jmol/src/org/jmol/modelset/AtomCollection.java 2023-11-23 06:01:40 UTC (rev 22594) +++ trunk/Jmol/src/org/jmol/modelset/AtomCollection.java 2023-11-26 00:37:23 UTC (rev 22595) @@ -2906,7 +2906,7 @@ public Lst<P3> generateCrystalClass(int atomIndex, P3 pt) { - SymmetryInterface sym = (atomIndex < 0 || atomIndex >= ac ? null + SymmetryInterface sym = (atomIndex < 0 || atomIndex >= ac ? vwr.getOperativeSymmetry() : at[atomIndex].getUnitCell()); boolean isRandom = (pt != null && Float.isNaN(pt.x)); return (sym == null ? new Lst<P3>() : sym Modified: trunk/Jmol/src/org/jmol/scriptext/CmdExt.java =================================================================== --- trunk/Jmol/src/org/jmol/scriptext/CmdExt.java 2023-11-23 06:01:40 UTC (rev 22594) +++ trunk/Jmol/src/org/jmol/scriptext/CmdExt.java 2023-11-26 00:37:23 UTC (rev 22595) @@ -6480,9 +6480,8 @@ String s = vwr.assignSpaceGroup(bs, type, -1); if (e.doReport()) e.showString(s); - if (isPacked) { - int n = vwr.getModelkit(false).cmdAssignAddAtoms(null, null, - bsModelAtoms, "packed", e.fullCommand, false); + if (isPacked && !s.endsWith("!")) { + int n = vwr.getModelkit(false).cmdAssignAddAtoms(null, null, bsModelAtoms, "packed", e.fullCommand, false); if (e.doReport()) e.report(GT.i(GT.$("{0} atoms added"), n), false); } Modified: trunk/Jmol/src/org/jmol/symmetry/SpaceGroup.java =================================================================== --- trunk/Jmol/src/org/jmol/symmetry/SpaceGroup.java 2023-11-23 06:01:40 UTC (rev 22594) +++ trunk/Jmol/src/org/jmol/symmetry/SpaceGroup.java 2023-11-26 00:37:23 UTC (rev 22595) @@ -28,7 +28,6 @@ import java.util.Arrays; import java.util.Hashtable; import java.util.Map; -import java.util.Set; import org.jmol.api.SymmetryInterface; import org.jmol.util.Logger; @@ -71,8 +70,25 @@ * */ -class SpaceGroup { +class SpaceGroup implements Cloneable { + SpaceGroup cloneInfoTo(SpaceGroup sg0) { + try { + SpaceGroup sg = (SpaceGroup) clone(); + sg.operations = sg0.operations; + sg.finalOperations = sg0.finalOperations; + sg.xyzList = sg0.xyzList; + return sg; + } catch (CloneNotSupportedException e) { + return null; + } + } + + SymmetryOperation[] operations; + SymmetryOperation[] finalOperations; + SymmetryOperation[] allOperations; + Map<String, Integer> xyzList; + int index; boolean isSSG; @@ -96,14 +112,8 @@ String intlTableNumberExt; HallInfo hallInfo; int latticeParameter; - //char latticeCode = '\0'; - SymmetryOperation[] operations; - SymmetryOperation[] finalOperations; - SymmetryOperation[] allOperations; int operationCount; int latticeOp = -1; - Map<String, Integer> xyzList; - private int modDim; boolean doNormalize = true; @@ -935,7 +945,36 @@ return -1; } - private final static char determineUniqueAxis(float a, float b, float c, float alpha, float beta, float gamma) { + public void setIntlTableNumberFull(String name) { + intlTableNumberFull = name; + String[] parts = PT.split(name, ":"); + intlTableNumber = parts[0]; + intlTableNumberExt = (parts.length == 1 ? "" : parts[1]); + ambiguityType = '\0'; + if (intlTableNumberExt.length() > 0) { + char c = intlTableNumberExt.charAt(0); + if (intlTableNumberExt.equals("h") || intlTableNumberExt.equals("r")) { + ambiguityType = 't'; + axisChoice = intlTableNumberExt.charAt(0); + } else if (c == '1' || c == '2') { + ambiguityType = 'o'; + // originChoice = intlTableNumberExt.charAt(0); + } else if (intlTableNumberExt.length() <= 2 + || intlTableNumberExt.length() == 3 && c == '-' ) { // :a or :b3 + ambiguityType = 'a'; + uniqueAxis = intlTableNumberExt.charAt(c == '-' ? 1 : 0); + // Q: should we include :-a1 here? + // if (intlTableNumberExt.length() == 2) + // cellChoice = intlTableNumberExt.charAt(1); + } else if (intlTableNumberExt.contains("-")) { + ambiguityType = '-'; + // skip when searching for a group by name + // added 9/28/14 Jmol 14.3.7 + } + } + } + + private final static char determineUniqueAxis(float a, float b, float c, float alpha, float beta, float gamma) { if (a == b) return (b == c ? '\0' : 'c'); if (b == c) Modified: trunk/Jmol/src/org/jmol/symmetry/SpaceGroupFinder.java =================================================================== --- trunk/Jmol/src/org/jmol/symmetry/SpaceGroupFinder.java 2023-11-23 06:01:40 UTC (rev 22594) +++ trunk/Jmol/src/org/jmol/symmetry/SpaceGroupFinder.java 2023-11-26 00:37:23 UTC (rev 22595) @@ -112,18 +112,38 @@ String name; BS basis; - if (setNew) { if (xyzList.toUpperCase().startsWith("ITA/")) { - xyzList = xyzList.substring(4); - if (xyzList.indexOf(".") < 0) + xyzList = PT.rep(xyzList.substring(4)," ",""); + boolean isJmolCode = (xyzList.indexOf(":") > 0); + int pt = xyzList.indexOf("."); + if (!isJmolCode && pt < 0 && PT.parseInt(xyzList) != Integer.MIN_VALUE) xyzList += ".1"; - @SuppressWarnings("unchecked") - Map<String, Object> sgdata = (Map<String, Object>) uc.getSpaceGroupJSON(vwr, "ITA", xyzList, 0); + Map<String, Object> sgdata = null; + Object o = uc + .getSpaceGroupJSON(vwr, "ITA", xyzList, 0); + if (o == null || o instanceof String) { + return null; + } + sgdata = (Map<String, Object>) o; + if (isJmolCode) { + name = xyzList; + Lst<Object> its = (Lst<Object>) sgdata.get("its"); + sgdata = null; + if (its == null) + return null; + for (int i = 0, c = its.size(); i < c; i++) { + Map<String, Object> setting = (Map<String, Object>) its.get(i); + if (name.equals(setting.get("itaFull"))) { + sgdata = setting; + break; + } + } if (sgdata == null) return null; + } else { name = (String) sgdata.get("itaFull"); + } boolean isKnown = (name.indexOf("?") < 0); - @SuppressWarnings("unchecked") Lst<Object> genPos = (Lst<Object>) sgdata.get("gp"); xyzList = ""; for (int i = 0, c = genPos.size(); i < c; i++) @@ -131,13 +151,20 @@ xyzList = xyzList.substring(1); sg = SpaceGroup.createSpaceGroupN(xyzList); sg.intlTableNumber = name; + SpaceGroup sgjmol = null; if (isKnown) { - SpaceGroup sgjmol = SpaceGroup.determineSpaceGroupNA(xyzList, null); - sg.intlTableNumberFull = (sgjmol == null ? name : sgjmol.intlTableNumberFull); + sgjmol = SpaceGroup.determineSpaceGroupNA(name, null); + if (sgjmol != null) { + sg = sgjmol.cloneInfoTo(sg); + } else { + sg.setIntlTableNumberFull(name); } + } + if (sgjmol == null) { String u =(String) sgdata.get("u"); - String tr = (String) sgdata.get("tr"); - sg.intlTableNumberExt = PT.rep(u, " ", "") + ";" + sgdata.get("sg") + "(" + tr + ")"; + String tr = (String) sgdata.get("tm"); + sg.intlTableNumberExt = PT.rep(u, " ", "") + ";" + sgdata.get("sg") + + "(" + tr + ")"; char axis = u.toLowerCase().charAt(0); if (isHexagonal(PT.parseInt(sg.intlTableNumber), null) && axis != 'r') axis = 'h'; @@ -151,7 +178,11 @@ break; } } - if (sg == null && (sg = SpaceGroup.determineSpaceGroupNA(xyzList, unitCellParams)) == null + } + if (setNew) { + if (sg == null + && (sg = SpaceGroup.determineSpaceGroupNA(xyzList, + unitCellParams)) == null && (sg = SpaceGroup.createSpaceGroupN(xyzList)) == null) return null; uc = createCompatibleUnitCell(sg, unitCellParams); @@ -164,7 +195,7 @@ loadData(vwr, this); if (xyzList != null) { Object ret = getGroupsWithOps(xyzList, unitCellParams, isAssign); - if (!isAssign) + if (!isAssign || ret == null) return ret; sg = (SpaceGroup) ret; uc.setUnitCell(unitCellParams, false); @@ -444,42 +475,103 @@ float[] params) { SymmetryInterface sym; int n = PT.parseInt(sg.intlTableNumber); - boolean isHexGroup = isHexagonal(n, null); - if (n <= 2 || - isHexGroup && (sg.axisChoice == 'r' ? SimpleUnitCell.isRhombohedral(params) : isHexagonal(-1, params))) { - // all set - } else if (isHexGroup) { - if (sg.axisChoice == 'r') - params = new float[] { params[0], params[0], params[0], 100, 100, 100 }; - else - params = new float[] { params[0], params[0], params[2], 90, 90, 120 }; - } else if (n >= 195){ - params = new float[] { params[0], params[0], params[0], 90, 90, 90 }; + + // make a, b, and c all distinct + + float a = params[0]; + float b = params[1]; + if (a > b) { + float d = a; + a = b; + b = d; + } + float c = params[2]; + boolean bcsame = approx0(b - c); + if (bcsame) + c = b * 1.5f; + boolean absame = approx0(a - b); + if (absame) + b = a * 1.2f; + boolean acsame = approx0(c - a); + if (acsame) + c = a * 1.1f; + + // make alpha, beta, and gamma all distinct + + float alpha = params[3]; + float beta = params[4]; + float gamma = params[5]; + if (approx0(alpha - 90)) { + alpha = 80; + } + if (approx0(beta - 90)) { + beta = 100; + } + if (approx0(gamma - 90)) { + gamma = 110; + } + if (alpha > beta) { + float d = alpha; + alpha = beta; + beta = d; + } + boolean albesame = approx0(alpha - beta); + boolean begasame = approx0(beta - gamma); + boolean algasame = approx0(gamma - alpha); + if (albesame) { + beta = alpha * 1.2f; + } + if (begasame) { + gamma = beta * 1.3f; + } + if (algasame) { + gamma = alpha * 1.4f; + } + if (isHexagonal(n, null)) { + b = a; + if (sg.axisChoice == 'r' ? SimpleUnitCell.isRhombohedral(params) + : isHexagonal(-1, params)) { + // nothing to do + } else if (sg.axisChoice == 'r') { + c = b = a; + if (alpha > 85 && alpha < 95) + alpha = 80; + gamma = beta = alpha; + } else { + alpha = beta = 90; + gamma = 120; + } + } else if (n >= 195) { // cubic - } else if (n >= 75){ + c = b = a; + alpha = beta = gamma = 90; + } else if (n >= 75) { // tetragonal - params = new float[] { params[0], params[0], params[2], 90, 90, 90 }; - } else if (n >= 16){ + b = a; + if (acsame) + c = a * 1.5f; + alpha = beta = gamma = 90; + } else if (n >= 16) { // orthorhombic - params = new float[] { params[0], params[1], params[2], 90, 90, 90 }; - } else { + alpha = beta = gamma = 90; + } else if (n >= 3) { // monoclinic switch (sg.uniqueAxis) { case 'a': - params = new float[] { params[0], params[1], params[1], 90, params[4], params[5] }; + c = b; + beta = gamma = 90; break; case 'b': - params = new float[] { params[0], params[1], params[0], params[3], 90, params[5] }; + c = a; + alpha = gamma = 90; break; case 'c': - params = new float[] { params[0], params[0], params[0],params[3], params[4], 90 }; + b = a; + alpha = beta = 90; break; - default: - // nothing to do - break; } } - sym = new Symmetry().setUnitCell(params, false); + sym = new Symmetry().setUnitCell(new float[] { a, b, c, alpha, beta, gamma }, false); sym.setSpaceGroupTo(sg); return sym; } Modified: trunk/Jmol/src/org/jmol/symmetry/Symmetry.java =================================================================== --- trunk/Jmol/src/org/jmol/symmetry/Symmetry.java 2023-11-23 06:01:40 UTC (rev 22594) +++ trunk/Jmol/src/org/jmol/symmetry/Symmetry.java 2023-11-26 00:37:23 UTC (rev 22595) @@ -905,8 +905,12 @@ } } } - for (int j = lst.size(); --j >= 0;) - unitCell.toCartesian(lst.get(j), true); // ignoreOffset + for (int j = lst.size(); --j >= 0;) { + pt = lst.get(j); + if (isRandom) + pt.scale(0.5f); + unitCell.toCartesian(pt, true); // ignoreOffset + } } return lst; } @@ -1192,6 +1196,9 @@ private static Map<String, Object> aflowStructures; private static Map<String, Object>[] itaData; + private static Lst<Object> allDataITA; + private static Lst<Object> listDataITA; + @SuppressWarnings("unchecked") @Override public Object getSpaceGroupJSON(Viewer vwr, String name, String sgname, @@ -1217,13 +1224,21 @@ throw new ArrayIndexOutOfBoundsException(itno); if (name.equalsIgnoreCase("ITA")) { if (itno == 0) { - return getResource(vwr, "sg/json/ita_all.json"); + if (allDataITA == null) + allDataITA = (Lst<Object>) getResource(vwr, "sg/json/ita_all.json"); + return allDataITA; } + if (itno == Integer.MIN_VALUE) { + if (listDataITA == null) + listDataITA = (Lst<Object>) getResource(vwr, "sg/json/ita_list.json"); + if (itno == 0) + return allDataITA; + } if (itaData == null) itaData = new Map[230]; Map<String, Object> resource = itaData[itno - 1]; if (resource == null) - itaData[itno - 1] = resource = getResource(vwr, + itaData[itno - 1] = resource = (Map<String, Object>) getResource(vwr, "sg/json/ita_" + itno + ".json"); if (resource != null) { if (index == 0) @@ -1244,7 +1259,7 @@ } } else if (name.equalsIgnoreCase("AFLOW") && tm == null) { if (aflowStructures == null) - aflowStructures = getResource(vwr, "sg/json/aflow_structures.json"); + aflowStructures = (Map<String, Object>) getResource(vwr, "sg/json/aflow_structures.json"); if (itno == 0) return aflowStructures; System.out.println(sgname + " ? " + index); @@ -1260,13 +1275,13 @@ } @SuppressWarnings("unchecked") - private Map<String, Object> getResource(Viewer vwr, String resource) { + private Object getResource(Viewer vwr, String resource) { try { BufferedReader r = FileManager.getBufferedReaderForResource(vwr, this, "org/jmol/symmetry/", resource); String[] data = new String[1]; if (Rdr.readAllAsString(r, Integer.MAX_VALUE, false, data, 0)) { - return (Map<String, Object>) new JSJSONParser().parse(data[0], true); + return new JSJSONParser().parse(data[0], true); } } catch (Throwable e) { System.err.println(e.getMessage()); Modified: trunk/Jmol/src/org/jmol/util/JSONWriter.java =================================================================== --- trunk/Jmol/src/org/jmol/util/JSONWriter.java 2023-11-23 06:01:40 UTC (rev 22594) +++ trunk/Jmol/src/org/jmol/util/JSONWriter.java 2023-11-26 00:37:23 UTC (rev 22595) @@ -76,12 +76,14 @@ writeBoolean((Boolean) o); } else if (o instanceof Number) { writeNumber((Number) o); - } else if (o.getClass().isArray()) { - writeArray(o); } else if (o instanceof SV) { append(((SV) o).toJSON()); } else { - writeString(o.toString()); +// if (o.getClass().isArray()) { +// writeArray(o); +// } else { + writeString(o.toString()); + // } } } Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2023-11-23 06:01:40 UTC (rev 22594) +++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2023-11-26 00:37:23 UTC (rev 22595) @@ -57,8 +57,12 @@ Jmol.___JmolVersion="16.1.47" // (legacy) also 16.1.48 (swingJS) +bug fix: MODELKIT SPACEGROUP ... for no-atom structure does not properly set unit cell lengths + bug fix: LOAD ==HEM (PDB ligand) loading broken in 16.1.45 (2023.11.06) +bug fix: LOAD =ams/quartz broken in 16.1.45 + bug fix: CIFReader may misread incommensurately modulated files that have multiple structures bug fix: SCALE maximum length 1/2 what it should be with set antialiasDisplay off Modified: trunk/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Viewer.java 2023-11-23 06:01:40 UTC (rev 22594) +++ trunk/Jmol/src/org/jmol/viewer/Viewer.java 2023-11-26 00:37:23 UTC (rev 22595) @@ -4926,8 +4926,8 @@ try { int pt = id.indexOf("/"); String database = id.substring(0, pt); + id = id.substring(pt + 1); if (database.equalsIgnoreCase("aflowlib")) { - id = id.substring(pt + 1); int index = 1; pt = id.indexOf('.'); if (pt >= 0) { Modified: trunk/Jmol/test/jmol-jar/Jmol.jar =================================================================== (Binary files differ) Added: trunk/Jmol/unused/Jmol-j2s-site2.zip =================================================================== (Binary files differ) Index: trunk/Jmol/unused/Jmol-j2s-site2.zip =================================================================== --- trunk/Jmol/unused/Jmol-j2s-site2.zip 2023-11-23 06:01:40 UTC (rev 22594) +++ trunk/Jmol/unused/Jmol-j2s-site2.zip 2023-11-26 00:37:23 UTC (rev 22595) Property changes on: trunk/Jmol/unused/Jmol-j2s-site2.zip ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2023-11-29 03:51:42
|
Revision: 22596 http://sourceforge.net/p/jmol/code/22596 Author: hansonr Date: 2023-11-29 03:51:29 +0000 (Wed, 29 Nov 2023) Log Message: ----------- Jmol.___JmolVersion="16.1.49" // (legacy) also 16.1.50 (swingJS) bug fix: echo ID xx {x y z} does not default to LEFT, instead a 2-angstrom shift to the right. JavaScript: refactoring of Hashtable to use JavaScript Map in legacy transpiler - should be considerably faster Modified Paths: -------------- trunk/Jmol/.j2sjmol trunk/Jmol/appletweb/jsmol.zip trunk/Jmol/build-1-just-unzip-to-site.xml trunk/Jmol/build-2-jsmol-zip.xml trunk/Jmol/site-resources/jsmol/js/core/corebottom2.js trunk/Jmol/site-resources/jsmol/js/core/coretop2.js trunk/Jmol/site-resources-zip/Jmol-j2s-site.zip trunk/Jmol/src/com/jcraft/jzlib/ZStreamException.java trunk/Jmol/src/jspecview/appletjs/JSVApplet.java trunk/Jmol/src/org/jmol/i18n/GT.java trunk/Jmol/src/org/jmol/modelset/Text.java trunk/Jmol/src/org/jmol/script/ScriptEval.java trunk/Jmol/src/org/jmol/shape/Echo.java trunk/Jmol/src/org/jmol/util/GenericApplet.java trunk/Jmol/src/org/jmol/viewer/Jmol.properties Modified: trunk/Jmol/.j2sjmol =================================================================== --- trunk/Jmol/.j2sjmol 2023-11-26 00:37:23 UTC (rev 22595) +++ trunk/Jmol/.j2sjmol 2023-11-29 03:51:29 UTC (rev 22596) @@ -1,6 +1,6 @@ #Java2Script Configuration #Wed Nov 08 16:22:00 CST 2023 -j2s.excluded.paths=AWT,JNI,application,Test,multitouch,molecularplayground,openscience,awt/,translation/Jmol/,/java/,org/jmol/BasicDnD,org/jmol/Export,org/jmol/Integration,org/jmol/JmolTable,org/jmol/util/JUnitLogger,org/jmol/util/PerformanceMeasure,org/jmol/util/Profiling,console/App,console/Img,console/Jmol,console/Key,console/Script +j2s.excluded.paths=AWT,JNI,application,Test,multitouch,sparshui,molecularplayground,openscience,awt/,translation/Jmol/,/java/,org/jmol/BasicDnD,org/jmol/Export,org/jmol/Integration,org/jmol/JmolTable,org/jmol/util/JUnitLogger,org/jmol/util/PerformanceMeasure,org/jmol/util/Profiling,console/App,console/Img,console/Jmol,console/Key,console/Script j2s.site.directory=site j2s.string.fixes=jspecview,JSV,org.jmol.minimize.forcefield,JM.FF,org.jmol.minimize,JM,org.jmol.modelsetbio,JM,org.jmol.modelset,JM,org.jmol.awtjs.swing,JS,org.jmol.scriptext,JS,org.jmol.script,JS,org.jmol.smiles,JS,org.jmol.symmetry,JS,javajs.util,JU,com.jcraft.jzlib,JU,javajs.util,JU,org.jmol.util,JU,org.jmol.viewer,JV,org.jmol,J,org/jmol/minimize/forcefield,JM/FF,org/jmol/symmetry,JS,org/jmol/util,JU,org/jmol/,J/ j2s.package.fixes=org/jmol/minimize/forcefield,JM/FF,org/jmol/minimize,JM,org/jmol/modelsetbio,JM,org/jmol/modelset,JM,org/jmol/awtjs/swing,JS,org/jmol/scriptext,JS,org/jmol/script,JS,org/jmol/smiles,JS,org/jmol/symmetry,JS,org/jmol/util,JU,javajs/util,JU,com/jcraft/jzlib,JU,org/jmol/viewer,JV,jspecview,JSV,org/jmol,J Modified: trunk/Jmol/appletweb/jsmol.zip =================================================================== (Binary files differ) Modified: trunk/Jmol/build-1-just-unzip-to-site.xml =================================================================== --- trunk/Jmol/build-1-just-unzip-to-site.xml 2023-11-26 00:37:23 UTC (rev 22595) +++ trunk/Jmol/build-1-just-unzip-to-site.xml 2023-11-29 03:51:29 UTC (rev 22596) @@ -93,7 +93,18 @@ <move file="${site.jsmol.path}/JSmol.min.js" tofile="${site.jsmol.path}/JSmol.min0.js"/> <copy file="${site.jsmol.path}/js/JSmol.full.js" tofile="${site.jsmol.path}/JSmol.min.js"/> + + <echo>...creating ${site.jsmol.path}/js/JSmolMin2.js for Wikipedia and jmol.php</echo> + <concat destfile="${site.jsmol.path}/js/JSmolMin2.js"> + <filelist dir="${site.jsmol.path}" files=" + JSmol.min0.js + js/Jmol2.js + j2s/Jmol.properties + " /> + </concat> + + <echo>...creating ${site.jsmol.path}/j2s/core/corejmoldebug.js</echo> <!-- JSmolJavaExt.js is from the java2script 4.2 transplier code, in site-resources-zip/Jmol-j2s-size.zip --> <concat destfile="${site.jsmol.path}/j2s/core/corejmoldebug.js"> Modified: trunk/Jmol/build-2-jsmol-zip.xml =================================================================== --- trunk/Jmol/build-2-jsmol-zip.xml 2023-11-26 00:37:23 UTC (rev 22595) +++ trunk/Jmol/build-2-jsmol-zip.xml 2023-11-29 03:51:29 UTC (rev 22596) @@ -989,6 +989,8 @@ </antcall> <delete file="temp.js" /> + <delete quiet="true" dir="${site.jsmol.j2s.path}/test"/> + <echo>creating distribution zip file jsmol.zip and copying it to Jmol</echo> <zip zipfile="appletweb/jsmol.zip" basedir="site" includes="**" /> <!-- copy file="README-DOWNLOAD.TXT" tofile="dist/README.TXT" / --> Modified: trunk/Jmol/site-resources/jsmol/js/core/corebottom2.js =================================================================== --- trunk/Jmol/site-resources/jsmol/js/core/corebottom2.js 2023-11-26 00:37:23 UTC (rev 22595) +++ trunk/Jmol/site-resources/jsmol/js/core/corebottom2.js 2023-11-29 03:51:29 UTC (rev 22596) @@ -15,7 +15,6 @@ ,Clazz.defineEnumConstant ,Clazz.exceptionOf ,Clazz.newIntArray -,Clazz.defineStatics ,Clazz.newFloatArray ,Clazz.declareType ,Clazz.prepareFields @@ -22,8 +21,6 @@ ,Clazz.superConstructor ,Clazz.newByteArray ,Clazz.declareInterface -,Clazz.p0p -,Clazz.pu$h ,Clazz.newShortArray ,Clazz.innerTypeInstance ,Clazz.isClassDefined Modified: trunk/Jmol/site-resources/jsmol/js/core/coretop2.js =================================================================== --- trunk/Jmol/site-resources/jsmol/js/core/coretop2.js 2023-11-26 00:37:23 UTC (rev 22595) +++ trunk/Jmol/site-resources/jsmol/js/core/coretop2.js 2023-11-29 03:51:29 UTC (rev 22596) @@ -15,7 +15,6 @@ ,Clazz_defineEnumConstant ,Clazz_exceptionOf ,Clazz_newIntArray -,Clazz_defineStatics ,Clazz_newFloatArray ,Clazz_declareType ,Clazz_prepareFields @@ -22,8 +21,6 @@ ,Clazz_superConstructor ,Clazz_newByteArray ,Clazz_declareInterface -,Clazz_p0p -,Clazz_pu$h ,Clazz_newShortArray ,Clazz_innerTypeInstance ,Clazz_isClassDefined Modified: trunk/Jmol/site-resources-zip/Jmol-j2s-site.zip =================================================================== (Binary files differ) Modified: trunk/Jmol/src/com/jcraft/jzlib/ZStreamException.java =================================================================== --- trunk/Jmol/src/com/jcraft/jzlib/ZStreamException.java 2023-11-26 00:37:23 UTC (rev 22595) +++ trunk/Jmol/src/com/jcraft/jzlib/ZStreamException.java 2023-11-29 03:51:29 UTC (rev 22596) @@ -1,44 +1,44 @@ -/* -*-mode:java; c-basic-offset:2; -*- */ -/* -Copyright (c) 2000,2001,2002,2003 ymnk, JCraft,Inc. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the distribution. - - 3. The names of the authors may not be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT, -INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, -OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* - * This program is based on zlib-1.1.3, so all credit should go authors - * Jean-loup Gailly(jl...@gz...) and Mark Adler(ma...@al...) - * and contributors of zlib. - */ - -package com.jcraft.jzlib; - -public class ZStreamException extends java.io.IOException { - public ZStreamException() { - super(); - } - public ZStreamException(String s) { - super(s); - } -} +/* -*-mode:java; c-basic-offset:2; -*- */ +/* +Copyright (c) 2000,2001,2002,2003 ymnk, JCraft,Inc. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the distribution. + + 3. The names of the authors may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT, +INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, +OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/* + * This program is based on zlib-1.1.3, so all credit should go authors + * Jean-loup Gailly(jl...@gz...) and Mark Adler(ma...@al...) + * and contributors of zlib. + */ + +package com.jcraft.jzlib; + +public class ZStreamException extends java.io.IOException { + public ZStreamException() { + super(); + } + public ZStreamException(String s) { + super(s); + } +} Modified: trunk/Jmol/src/jspecview/appletjs/JSVApplet.java =================================================================== --- trunk/Jmol/src/jspecview/appletjs/JSVApplet.java 2023-11-26 00:37:23 UTC (rev 22595) +++ trunk/Jmol/src/jspecview/appletjs/JSVApplet.java 2023-11-29 03:51:29 UTC (rev 22596) @@ -146,7 +146,7 @@ @Override public String getParameter(String paramName) { Object o = htParams.get(paramName.toLowerCase()); - return (o == null ? null : new String(o.toString())); + return (o == null ? null : o.toString()); } private boolean getBooleanValue(String propertyName, boolean defaultValue) { Modified: trunk/Jmol/src/org/jmol/i18n/GT.java =================================================================== --- trunk/Jmol/src/org/jmol/i18n/GT.java 2023-11-26 00:37:23 UTC (rev 22595) +++ trunk/Jmol/src/org/jmol/i18n/GT.java 2023-11-29 03:51:29 UTC (rev 22596) @@ -24,7 +24,6 @@ package org.jmol.i18n; import java.text.MessageFormat; -//import java.util.HashMap; import java.util.Hashtable; import java.util.Map; Modified: trunk/Jmol/src/org/jmol/modelset/Text.java =================================================================== --- trunk/Jmol/src/org/jmol/modelset/Text.java 2023-11-26 00:37:23 UTC (rev 22595) +++ trunk/Jmol/src/org/jmol/modelset/Text.java 2023-11-29 03:51:29 UTC (rev 22596) @@ -210,6 +210,23 @@ boxHeight = textHeight + (fontScale >= 2 ? 16 : 8); } + private float getPymolXYOffset(float x, int width, float ppa) { + float f = (x < -1 ? -1 : x > 1 ? 0 : (x - 1) / 2); + // x f/width offset/ppa + // -3 -1 -2 + // -2 -1 -1 + // -1 0 0 + //-0.5 -3/4 0 + // 0 -1/2 0 + // 0.5 -1/4 0 + // 1 0 0 + // 2 1 1 + // 3 1 2 + + float offset = (x < -1 || x > 1 ? x + (x < 0 ? 1 : -1) : 0); + return f * width + offset * ppa; + } + public void setPosition(float scalePixelsPerMicron, float imageFontScaling, boolean isAbsolute, float[] boxXY) { if (boxXY == null) @@ -238,6 +255,7 @@ xAdj = (fontScale >= 2 ? 8 : 4); yAdj = ascent - lineHeight + xAdj; if (!isEcho || pymolOffset != null) { + boxXY[0] = movableX; boxXY[1] = movableY; if (pymolOffset != null && pymolOffset[0] != 2 && pymolOffset[0] != 3) { @@ -249,6 +267,19 @@ z -= (int) dz; pixelsPerAngstrom = vwr.tm.scaleToScreen(z, 1000); + // dx and dy are the overall object offset, with text + dx = (xyz != null && barPixels > 0 ? 0 : getPymolXYOffset(pymolOffset[1], textWidth, pixelsPerAngstrom)); + int dh = ascent - descent; + dy = -getPymolXYOffset(-pymolOffset[2], dh, pixelsPerAngstrom) + - (textHeight + dh) / 2; + + //dy: added -lineHeight (for one line) + if (pymolOffset[0] == 1) { + // from PyMOL - back to original plan + dy -= descent; + } + + /* for whatever reason, Java returns an * ascent that is considerably higher than a capital X * forget leading! @@ -269,18 +300,6 @@ * * */ - // dx and dy are the overall object offset, with text - dx = (xyz != null && barPixels > 0 ? 0 : getPymolXYOffset(pymolOffset[1], textWidth, pixelsPerAngstrom)); - int dh = ascent - descent; - dy = -getPymolXYOffset(-pymolOffset[2], dh, pixelsPerAngstrom) - - (textHeight + dh) / 2; - - //dy: added -lineHeight (for one line) - if (pymolOffset[0] == 1) { - // from PyMOL - back to original plan - dy -= descent; - } - // xAdj and yAdj are the adjustments for the box itself relative to the text xAdj = (fontScale >= 2 ? 8 : 4); yAdj = -descent; @@ -323,22 +342,6 @@ y0 += ascent + (lines.length - 1)/2f * lineHeight; } - private float getPymolXYOffset(float off, int width, float ppa) { - float f = (off < -1 ? -1 : off > 1 ? 0 : (off - 1) / 2); - // offset - // -3 -2 - // -2 -1 - // -1 0 absolute, -1 width - //-0.5 -3/4 width - // 0 -1/2 width - // 0.5 -1/4 width - // 1 0 - // 2 1 - // 3 2 - off = (off < -1 || off > 1 ? off + (off < 0 ? 1 : -1) : 0); - return f * width + off * ppa; - } - private void setPos(float scale) { float xLeft, xCenter, xRight; boolean is3dEcho = (xyz != null); Modified: trunk/Jmol/src/org/jmol/script/ScriptEval.java =================================================================== --- trunk/Jmol/src/org/jmol/script/ScriptEval.java 2023-11-26 00:37:23 UTC (rev 22595) +++ trunk/Jmol/src/org/jmol/script/ScriptEval.java 2023-11-29 03:51:29 UTC (rev 22596) @@ -7741,6 +7741,8 @@ // PyMOL offsets -- [1, scrx, scry, scrz, molx, moly, molz] in angstroms propertyValue = floatParameterSet(pt, 7, 7); pt = iToken + 1; + } else if (tokAt(pt) == T.none) { + pt++; } break; case T.off: Modified: trunk/Jmol/src/org/jmol/shape/Echo.java =================================================================== --- trunk/Jmol/src/org/jmol/shape/Echo.java 2023-11-26 00:37:23 UTC (rev 22595) +++ trunk/Jmol/src/org/jmol/shape/Echo.java 2023-11-29 03:51:29 UTC (rev 22596) @@ -195,10 +195,11 @@ } if ("xyz" == propertyName) { - if (currentObject != null && vwr.getBoolean(T.fontscaling)) + if (currentObject != null && vwr.getBoolean(T.fontscaling)) { currentObject.setScalePixelsPerMicron( - vwr.getScalePixelsPerAngstrom(false) * 10000f); - // continue on to Object2d setting + vwr.getScalePixelsPerAngstrom(false) * 10000); + currentObject.setXYZ((P3) value, true); + } } if ("scale" == propertyName) { @@ -294,20 +295,19 @@ return; } - if ("xyz" == propertyName) { + if ("offset" == propertyName) { if (currentObject != null) { - currentObject.setXYZ((P3) value, true); - if (currentObject.pymolOffset == null) - currentObject.pymolOffset = new float[] { -1, 2, 0, 0, 0, 0, 0 }; + currentObject.pymolOffset = (float[]) value; } return; } - if ("offset" == propertyName) { + + if ("align" == propertyName) { if (currentObject != null) { - currentObject.pymolOffset = (float[]) value; + currentObject.pymolOffset = null; } - return; + // pass through } setPropTS(propertyName, value, null); Modified: trunk/Jmol/src/org/jmol/util/GenericApplet.java =================================================================== --- trunk/Jmol/src/org/jmol/util/GenericApplet.java 2023-11-26 00:37:23 UTC (rev 22595) +++ trunk/Jmol/src/org/jmol/util/GenericApplet.java 2023-11-29 03:51:29 UTC (rev 22596) @@ -127,7 +127,7 @@ @Override public void setScreenDimension(int width, int height) { - viewer.setScreenDimension(width, height); + viewer.setScreenDimension(width, height); } void resizeDisplay(int width, int height) { Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2023-11-26 00:37:23 UTC (rev 22595) +++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2023-11-29 03:51:29 UTC (rev 22596) @@ -55,8 +55,16 @@ # TODO: allow FIXED to work with MODELKIT MINIMIZE -Jmol.___JmolVersion="16.1.47" // (legacy) also 16.1.48 (swingJS) +Jmol.___JmolVersion="16.1.49" // (legacy) also 16.1.50 (swingJS) +bug fix: echo ID xx {x y z} does not default to LEFT, instead a 2-angstrom shift to the right. + +JavaScript: refactoring of Hashtable to use JavaScript Map in legacy transpiler + - should be considerably faster + + +JmolVersion="16.1.47" // (legacy) also 16.1.48 (swingJS) + bug fix: MODELKIT SPACEGROUP ... for no-atom structure does not properly set unit cell lengths bug fix: LOAD ==HEM (PDB ligand) loading broken in 16.1.45 (2023.11.06) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2024-05-05 15:18:49
|
Revision: 22624 http://sourceforge.net/p/jmol/code/22624 Author: hansonr Date: 2024-05-05 15:18:44 +0000 (Sun, 05 May 2024) Log Message: ----------- Jmol.___JmolVersion="16.2.15" // (legacy) also 16.2.16 (swingJS) bug fix: x = symop(n) broken for n a symmetry operator number bug fix: draw symop [4x4 matrix] not working bug fix: MODELKIT DRAW SPACEGROUP should use prefix "sg" not "sym" bug fix: various minor aspects of DRAW SPACEGROUP ALL and MODELKIT DRAW SPACEGROUP -- new color coding for n-axes -- new color coding and larger icons for n-bar axes -- missing split planes (mirror+glide and glide+glide) -- missing additional 2-fold rotations tangent to corners in hexagonal groups Modified Paths: -------------- trunk/Jmol/j2s/timestamp trunk/Jmol/src/org/jmol/console/GenericConsole.java trunk/Jmol/src/org/jmol/modelkit/ModelKit.java trunk/Jmol/src/org/jmol/modelset/ModelSet.java trunk/Jmol/src/org/jmol/renderspecial/PolyhedraRenderer.java trunk/Jmol/src/org/jmol/script/ScriptCompiler.java trunk/Jmol/src/org/jmol/script/ScriptEval.java trunk/Jmol/src/org/jmol/scriptext/IsoExt.java trunk/Jmol/src/org/jmol/scriptext/MathExt.java trunk/Jmol/src/org/jmol/shapespecial/Polyhedra.java trunk/Jmol/src/org/jmol/shapespecial/Polyhedron.java trunk/Jmol/src/org/jmol/symmetry/Symmetry.java trunk/Jmol/src/org/jmol/symmetry/SymmetryDesc.java trunk/Jmol/src/org/jmol/symmetry/SymmetryOperation.java trunk/Jmol/src/org/jmol/viewer/ColorManager.java trunk/Jmol/src/org/jmol/viewer/Jmol.properties Modified: trunk/Jmol/j2s/timestamp =================================================================== --- trunk/Jmol/j2s/timestamp 2024-05-02 18:36:04 UTC (rev 22623) +++ trunk/Jmol/j2s/timestamp 2024-05-05 15:18:44 UTC (rev 22624) @@ -1 +1 @@ -20240502092243 +20240503154552 Modified: trunk/Jmol/src/org/jmol/console/GenericConsole.java =================================================================== --- trunk/Jmol/src/org/jmol/console/GenericConsole.java 2024-05-02 18:36:04 UTC (rev 22623) +++ trunk/Jmol/src/org/jmol/console/GenericConsole.java 2024-05-05 15:18:44 UTC (rev 22624) @@ -431,9 +431,12 @@ } protected String trimGUI(String cmd) { - int pt = cmd.indexOf(JC.SCRIPT_GUI); + int pt = cmd.indexOf(JC.SCRIPT_EXT); if (pt >= 0) cmd = cmd.substring(0, pt); + pt = cmd.indexOf(JC.SCRIPT_GUI); + if (pt >= 0) + cmd = cmd.substring(0, pt); return PT.trim(cmd, "; "); } Modified: trunk/Jmol/src/org/jmol/modelkit/ModelKit.java =================================================================== --- trunk/Jmol/src/org/jmol/modelkit/ModelKit.java 2024-05-02 18:36:04 UTC (rev 22623) +++ trunk/Jmol/src/org/jmol/modelkit/ModelKit.java 2024-05-05 15:18:44 UTC (rev 22624) @@ -1060,7 +1060,7 @@ vwr.ms.restoreAtomPositions(apos0); bsAtoms.clearAll(); } else { - updateDrawAtomSets(JC.PROP_ATOMS_MOVED, bsAtoms); + updateDrawAtomSymmetry(JC.PROP_ATOMS_MOVED, bsAtoms); } } } @@ -1306,7 +1306,7 @@ boolean isError = msg.endsWith("!"); if (doDraw && !isError) { String s = drawSymmetry("sym", false, -1, null, Integer.MAX_VALUE, null, - null, null, 0, -2, 0, null); + null, null, 0, -2, 0, null, true); appRunScript(s); } return msg; @@ -1632,16 +1632,16 @@ } if (key == JC.PROP_ATOMS_MOVED) { - if (drawAtomSets != null) { - updateDrawAtomSets(key, ((BS[]) value)[0]); + if (drawAtomSymmetry != null) { + updateDrawAtomSymmetry(key, ((BS[]) value)[0]); } return null; } if (key == JC.MODELKIT_UPDATE_MODEL_KEYS) { if (haveElementKeys) - updateModelElementKeys(((BS[]) value)[1], true); - if (drawAtomSets != null) { - updateDrawAtomSets(JC.PROP_ATOMS_DELETED, ((BS[]) value)[0]); + updateModelElementKeys(value == null ? null : ((BS[]) value)[1], true); + if (drawAtomSymmetry != null && value != null) { + updateDrawAtomSymmetry(JC.PROP_ATOMS_DELETED, ((BS[]) value)[0]); } return null; } @@ -3089,7 +3089,7 @@ } finally { setMKState(state); if (n > 0) { - updateDrawAtomSets(JC.PROP_ATOMS_MOVED, bsMoved); + updateDrawAtomSymmetry(JC.PROP_ATOMS_MOVED, bsMoved); } } @@ -3708,8 +3708,8 @@ // don't change the first line of this message -- it will be used in packing. transform = sym.staticGetTransformABC(trm, false); - String msg = transform + "\n" + PT.join(tokens, '>', 0) + "\n basis=" - + basis; + String msg = transform + "\n" + + PT.join(tokens, '>' , 0) + (basis.isEmpty() ? "" : "\n basis=" + basis); System.out.println("ModelKit trm=" + msg); sb.append(msg).append("\n"); return transform; @@ -4702,14 +4702,14 @@ } - private Lst<DrawAtomSet> drawAtomSets; + private Lst<DrawAtomSet> drawAtomSymmetry; - public synchronized void updateDrawAtomSets(String mode, BS atoms) { - if (drawAtomSets == null) + private synchronized void updateDrawAtomSymmetry(String mode, BS atoms) { + if (drawAtomSymmetry == null) return; String cmd = ""; - for (int i = drawAtomSets.size(); --i >= 0;) { - DrawAtomSet a = drawAtomSets.get(i); + for (int i = drawAtomSymmetry.size(); --i >= 0;) { + DrawAtomSet a = drawAtomSymmetry.get(i); if (mode == JC.PROP_DELETE_MODEL_ATOMS ? atoms.get(a.bsAtoms.nextSetBit(0)) : atoms.intersects(a.bsAtoms)) { @@ -4718,12 +4718,12 @@ case JC.PROP_ATOMS_DELETED: System.out .println("remove deleteatoms " + atoms + " " + a.bsAtoms + a.id); - drawAtomSets.removeItemAt(i); + drawAtomSymmetry.removeItemAt(i); break; case JC.PROP_ATOMS_MOVED: try { if (!checkDrawID(a.id)) { - drawAtomSets.removeItemAt(i); + drawAtomSymmetry.removeItemAt(i); } else { cmd += a.cmd + JC.SCRIPT_QUIET + "\n"; } @@ -4732,8 +4732,8 @@ } break; } - if (drawAtomSets.size() == 0) - drawAtomSets = null; + if (drawAtomSymmetry.size() == 0) + drawAtomSymmetry = null; } if (cmd.length() > 0) vwr.evalStringGUI(cmd); @@ -4767,19 +4767,19 @@ String cmd = tokens[3]; BS bs = BSUtil.newAndSetBit(a1); bs.set(a2); - if (drawAtomSets == null) { - drawAtomSets = new Lst<DrawAtomSet>(); + if (drawAtomSymmetry == null) { + drawAtomSymmetry = new Lst<DrawAtomSet>(); } - drawAtomSets.addLast(new DrawAtomSet(bs, id, cmd)); + drawAtomSymmetry.addLast(new DrawAtomSet(bs, id, cmd)); } private void clearAtomSets(String id) { - if (drawAtomSets == null) + if (drawAtomSymmetry == null) return; - for (int i = drawAtomSets.size(); --i >= 0;) { - DrawAtomSet a = drawAtomSets.get(i); + for (int i = drawAtomSymmetry.size(); --i >= 0;) { + DrawAtomSet a = drawAtomSymmetry.get(i); if (a.id.equals(id)) { - drawAtomSets.remove(i); + drawAtomSymmetry.remove(i); return; } } @@ -4849,7 +4849,7 @@ public String drawSymmetry(String thisId, boolean isSymop, int iatom, String xyz, int iSym, P3 trans, P3 center, P3 target, int intScale, int nth, int options, - int[] opList) { + int[] opList, boolean isModelkit) { String s = null; if (options != 0) { @@ -4870,6 +4870,8 @@ s = "draw ID " + (isSymop ? "sg" : "sym") + "* delete;" + s; s = "draw ID " + thisId + "* delete;" + s; } + if (isModelkit) + s += ";draw ID sg_xes axes 0.05;"; return s; } Modified: trunk/Jmol/src/org/jmol/modelset/ModelSet.java =================================================================== --- trunk/Jmol/src/org/jmol/modelset/ModelSet.java 2024-05-02 18:36:04 UTC (rev 22623) +++ trunk/Jmol/src/org/jmol/modelset/ModelSet.java 2024-05-05 15:18:44 UTC (rev 22624) @@ -2276,6 +2276,7 @@ bs = new BS(); P3 pt = (P3) specInfo; SymmetryInterface uc = vwr.getSymTemp(); + System.out.println("MS test within"); for (int mi = -1, i = ac; --i >= 0;) { if (isDeleted(at[i])) continue; @@ -2291,6 +2292,7 @@ if (uc.isWithinUnitCell(ptTemp, pt.x, pt.y, pt.z)) bs.set(i); } + System.out.println("MS test within" + bs); return bs; } } Modified: trunk/Jmol/src/org/jmol/renderspecial/PolyhedraRenderer.java =================================================================== --- trunk/Jmol/src/org/jmol/renderspecial/PolyhedraRenderer.java 2024-05-02 18:36:04 UTC (rev 22623) +++ trunk/Jmol/src/org/jmol/renderspecial/PolyhedraRenderer.java 2024-05-05 15:18:44 UTC (rev 22624) @@ -119,7 +119,7 @@ } P3[] sc = this.screens3f; int[][] planes = p.triangles; - int[] elemNos = (p.pointScale > 0 ? p.getElemNos() : null); + int[] elemNos = (p.pointScale > 0 ? p.getElemNos(false) : null); for (int i = vertices.length; --i >= 0;) { Atom atom = (vertices[i] instanceof Atom ? (Atom) vertices[i] : null); P3 v = sc[i]; @@ -135,8 +135,8 @@ } if (elemNos != null && i < elemNos.length - && g3d.setC(elemNos[i] < 0 ? colix : vwr.cm.setElementArgb( - elemNos[i], Integer.MAX_VALUE))) { + && g3d.setC(elemNos[i] < 0 ? colix + : vwr.cm.getElementColix(elemNos[i]))) { g3d.fillSphereBits( (int) tm.scaleToScreen((int) v.z, (int) (p.pointScale * 1000)), v); g3d.setC(colix); Modified: trunk/Jmol/src/org/jmol/script/ScriptCompiler.java =================================================================== --- trunk/Jmol/src/org/jmol/script/ScriptCompiler.java 2024-05-02 18:36:04 UTC (rev 22623) +++ trunk/Jmol/src/org/jmol/script/ScriptCompiler.java 2024-05-05 15:18:44 UTC (rev 22624) @@ -1293,7 +1293,9 @@ } } if (!iHaveQuotedString - && lookingAtImpliedString(tokCommand == T.show, tokCommand == T.load, + && lookingAtImpliedString( + tokCommand == T.show, + tokCommand == T.load, nTokens > 1 || tokCommand != T.script && tokCommand != T.macro, false)) { String str = script.substring(ichToken, ichToken + cchToken); if (tokCommand == T.script) { @@ -1739,8 +1741,8 @@ } private boolean checkNewSetCommand() { - String name = ltoken.get(0).value.toString(); - if (!isContextVariable(name.toLowerCase())) + String name = (nTokens == 0 ? "" : ltoken.get(0).value.toString()); + if (nTokens > 0 && !isContextVariable(name.toLowerCase())) return false; T t = setNewSetCommand(false, name); setCommand(T.tokenSet); Modified: trunk/Jmol/src/org/jmol/script/ScriptEval.java =================================================================== --- trunk/Jmol/src/org/jmol/script/ScriptEval.java 2024-05-02 18:36:04 UTC (rev 22623) +++ trunk/Jmol/src/org/jmol/script/ScriptEval.java 2024-05-05 15:18:44 UTC (rev 22624) @@ -9422,42 +9422,46 @@ } private boolean setElementColor(String str, int argb) { - for (int i = Elements.elementNumberMax; --i >= 0;) { - if (str.equalsIgnoreCase(Elements.elementNameFromNumber(i))) { - if (!chk) - vwr.setElementArgb(i, argb); - return true; + int n = -1; + boolean isSym = (str.charAt(0) == '_'); + out: while (true) { + if (isSym) { + str = str.substring(1); + for (int i = Elements.elementNumberMax; --i >= 0;) { + if (str.equalsIgnoreCase(Elements.elementSymbolFromNumber(i))) { + n = i; + break out; + } + } + for (int i = Elements.altElementMax; --i >= Elements.firstIsotope;) { + if (str.equalsIgnoreCase(Elements.altElementSymbolFromIndex(i)) + || str.equalsIgnoreCase(Elements.altIsotopeSymbolFromIndex(i)) + ) { + n = Elements.altElementNumberFromIndex(i); + break out; + } + } + } else { + for (int i = Elements.elementNumberMax; --i >= 0;) { + if (str.equalsIgnoreCase(Elements.elementNameFromNumber(i))) { + n = i; + break out; + } + } + for (int i = Elements.altElementMax; --i >= 0;) { + if (str.equalsIgnoreCase(Elements.altElementNameFromIndex(i))) { + n = Elements.altElementNumberFromIndex(i); + break out; + } + } } + break; } - for (int i = Elements.altElementMax; --i >= 0;) { - if (str.equalsIgnoreCase(Elements.altElementNameFromIndex(i))) { - if (!chk) - vwr.setElementArgb(Elements.altElementNumberFromIndex(i), argb); - return true; - } - } - if (str.charAt(0) != '_') + if (chk || n < 0) { return false; - for (int i = Elements.elementNumberMax; --i >= 0;) { - if (str.equalsIgnoreCase("_" + Elements.elementSymbolFromNumber(i))) { - if (!chk) - vwr.setElementArgb(i, argb); - return true; - } } - for (int i = Elements.altElementMax; --i >= Elements.firstIsotope;) { - if (str.equalsIgnoreCase("_" + Elements.altElementSymbolFromIndex(i))) { - if (!chk) - vwr.setElementArgb(Elements.altElementNumberFromIndex(i), argb); - return true; - } - if (str.equalsIgnoreCase("_" + Elements.altIsotopeSymbolFromIndex(i))) { - if (!chk) - vwr.setElementArgb(Elements.altElementNumberFromIndex(i), argb); - return true; - } - } - return false; + vwr.setElementArgb(n, argb); + return true; } /** Modified: trunk/Jmol/src/org/jmol/scriptext/IsoExt.java =================================================================== --- trunk/Jmol/src/org/jmol/scriptext/IsoExt.java 2024-05-02 18:36:04 UTC (rev 22623) +++ trunk/Jmol/src/org/jmol/scriptext/IsoExt.java 2024-05-05 15:18:44 UTC (rev 22624) @@ -816,7 +816,7 @@ xyz = stringParameter(i); break; case T.matrix4f: - xyz = SV.sValue(getToken(i)); + xyz = (String) vwr.getSymStatic().convertTransform("xyz", (M4) getToken(i).value); break; case T.integer: default: @@ -887,7 +887,7 @@ if (bsAtoms == null && vwr.am.cmi >= 0) bsAtoms = vwr.getModelUndeletedAtomsBitSet(vwr.am.cmi); if (bsAtoms != null) { - s = vwr.getModelkit(false).drawSymmetry(thisId, isSymop, iatom, xyz, iSym, trans, center, target, intScale, nth, options, opList); + s = vwr.getModelkit(false).drawSymmetry(thisId, isSymop, iatom, xyz, iSym, trans, center, target, intScale, nth, options, opList, false); if (s == null) return; if (isSymop && target instanceof Atom && center instanceof Atom) { @@ -899,10 +899,9 @@ + "|" + eval.fullCommand) + ";"; } } - if (s != null) - eval.runBufferedSafely( - s.length() > 0 ? s : "draw ID \"" + thisId + "*\" delete", - eval.outputBuffer); + eval.runBufferedSafely( + s.length() > 0 ? s : "draw ID \"" + thisId + "*\" delete", + eval.outputBuffer); return; case T.frame: isFrame = true; Modified: trunk/Jmol/src/org/jmol/scriptext/MathExt.java =================================================================== --- trunk/Jmol/src/org/jmol/scriptext/MathExt.java 2024-05-02 18:36:04 UTC (rev 22623) +++ trunk/Jmol/src/org/jmol/scriptext/MathExt.java 2024-05-05 15:18:44 UTC (rev 22624) @@ -4102,7 +4102,7 @@ if (iOp == Integer.MIN_VALUE && tok != T.var) iOp = 0; Map<String, ?> map = null; - if (tok == 0 && xyz.indexOf(",") < 0) { + if (tok == 0 && xyz != null && xyz.indexOf(",") < 0) { if (apt == narg) { map = vwr.ms.getPointGroupInfo(null); } else if (args[apt].tok == T.hash) { Modified: trunk/Jmol/src/org/jmol/shapespecial/Polyhedra.java =================================================================== --- trunk/Jmol/src/org/jmol/shapespecial/Polyhedra.java 2024-05-02 18:36:04 UTC (rev 22623) +++ trunk/Jmol/src/org/jmol/shapespecial/Polyhedra.java 2024-05-05 15:18:44 UTC (rev 22624) @@ -467,7 +467,7 @@ private void pointsPolyhedra(BS bs, float pointScale) { bs = findPolyBS(thisID == null ? bs : null, false); for (int i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i + 1)) - polyhedrons[i].pointScale = pointScale; + polyhedrons[i].setPointScale(pointScale); } private void scalePolyhedra(float scale) { Modified: trunk/Jmol/src/org/jmol/shapespecial/Polyhedron.java =================================================================== --- trunk/Jmol/src/org/jmol/shapespecial/Polyhedron.java 2024-05-02 18:36:04 UTC (rev 22623) +++ trunk/Jmol/src/org/jmol/shapespecial/Polyhedron.java 2024-05-05 15:18:44 UTC (rev 22624) @@ -26,7 +26,6 @@ import org.jmol.util.Escape; import org.jmol.util.Logger; import org.jmol.util.MeshCapper; -import org.jmol.util.Node; import org.jmol.util.Normix; import org.jmol.util.Point3fi; import org.jmol.viewer.JC; @@ -261,7 +260,7 @@ for (int i = 0; i < nv; i++) pts[i] = P3.newP(vertices[i]); info.put("vertices", pts); - info.put("elemNos", getElemNos()); + info.put("elemNos", getElemNos(true)); if (id == null) { info.put("atomIndex", Integer.valueOf(centralAtom.i)); @@ -296,11 +295,11 @@ int[] indices = new int[nVertices]; for (int i = nVertices; --i >= 0;) { P3 pt = vertices[i]; - boolean isNode = pt instanceof Node; - names[i] = (isNode ? ((Node) pt).getAtomName() + boolean isNode = pt instanceof Atom; + names[i] = (isNode ? ((Atom) pt).getAtomName() : pt instanceof Point3fi ? Elements .elementSymbolFromNumber(((Point3fi) pt).sD) : ""); - indices[i] = (isNode ? ((Node) pt).getIndex() : -1); + indices[i] = (isNode ? ((Atom) pt).getIndex() : -1); } info.put("atomNames", names); info.put("vertexIndices", indices); @@ -370,15 +369,28 @@ private int[] elemNos; - public int[] getElemNos() { - if (elemNos == null) { - elemNos = new int[nVertices]; + void setPointScale(float scale) { + pointScale = scale; + elemNos = null; + } + + public int[] getElemNos(boolean forInfo) { + if (forInfo) { + int[] a = new int[nVertices]; for (int i = 0; i < nVertices; i++) { P3 pt = vertices[i]; - elemNos[i] = (pt instanceof Node ? ((Node) pt).getElementNumber() + a[i] = (pt instanceof Atom ? ((Atom) pt).getElementNumber() : pt instanceof Point3fi ? ((Point3fi) pt).sD : -2); } + return a; } + if (elemNos == null) + elemNos = new int[nVertices]; + for (int i = 0; i < nVertices; i++) { + P3 pt = vertices[i]; + elemNos[i] = (pt instanceof Atom ? ((Atom) pt).getAtomicAndIsotopeNumber() + : pt instanceof Point3fi ? ((Point3fi) pt).sD : -2); + } return elemNos; } Modified: trunk/Jmol/src/org/jmol/symmetry/Symmetry.java =================================================================== --- trunk/Jmol/src/org/jmol/symmetry/Symmetry.java 2024-05-02 18:36:04 UTC (rev 22623) +++ trunk/Jmol/src/org/jmol/symmetry/Symmetry.java 2024-05-05 15:18:44 UTC (rev 22624) @@ -1592,6 +1592,9 @@ if (transform == null) { return staticGetTransformABC(trm, false); } + if (transform.equals("xyz")) { + return (trm == null ? null : SymmetryOperation.getXYZFromMatrix(trm, false, false, false)); + } if (trm == null) trm = new M4(); UnitCell.getMatrixAndUnitCell(null, transform, trm); Modified: trunk/Jmol/src/org/jmol/symmetry/SymmetryDesc.java =================================================================== --- trunk/Jmol/src/org/jmol/symmetry/SymmetryDesc.java 2024-05-02 18:36:04 UTC (rev 22623) +++ trunk/Jmol/src/org/jmol/symmetry/SymmetryDesc.java 2024-05-05 15:18:44 UTC (rev 22624) @@ -121,6 +121,10 @@ private static final String PLANE_COLOR_N_GLIDE = "orange"; // naranja private static final String COLOR_SCREW_1 = "orange"; private static final String COLOR_SCREW_2 = "blue"; + private static final String COLOR_2 = "red"; + private static final String COLOR_BAR_3 = "[xA00040]"; + private static final String COLOR_BAR_4 = "[x800080]"; + private static final String COLOR_BAR_6 = "[x4000A0]"; //////////// private methods /////////// @@ -761,7 +765,7 @@ ptr.scaleAdd2(0.5f, vtemp, pa1); } ptemp.add2(pa1, vtemp); - ang2 = (int) Math + ang2 = Math .round(Measure.computeTorsion(pta00, pa1, ptemp, p0, true)); if (SymmetryOperation.approx(ang2) != 0) { ang1 = ang2; @@ -781,7 +785,7 @@ op.isIrrelevant |= isIrrelevant; Boolean isccw = op.getOpIsCCW(); int screwDir = 0; - + int nrot = 0; if (bsInfo.get(RET_LABEL) || bsInfo.get(RET_TYPE)) { info1 = type = "identity"; @@ -796,19 +800,22 @@ if (isccw != null) { screwtype = (isccw == Boolean.TRUE ? "(+)" : "(-)"); screwDir = (isccw == Boolean.TRUE ? 1 : -1); + if (haveInversion && screwDir == -1) + isIrrelevant = true; } + nrot = 360 / ang; if (haveInversion) { // n-bar - info1 = (360 / ang) + "-bar" + screwtype + " axis"; + info1 = nrot + "-bar" + screwtype + " axis"; } else if (pitch1 != 0) { // screw axis ptemp.setT(ax1); uc.toFractional(ptemp, false); - info1 = (360 / ang) + screwtype + " (" + strCoord(ptemp, op.isBio) + info1 = nrot + screwtype + " (" + strCoord(ptemp, op.isBio) + ") screw axis"; } else { - info1 = (360 / ang) + screwtype + " axis"; + info1 = nrot + screwtype + " axis"; if (order % 2 == 0) screwDir *= order / 2; // 6_3, 4_2 } @@ -904,7 +911,7 @@ if (isRotation) { - color = "red"; + color = (nrot == 2 ? COLOR_2 : nrot == 3 ? COLOR_BAR_3 : nrot == 4 ? COLOR_BAR_4 : COLOR_BAR_6); ang = ang1; float scale = 1f; @@ -912,9 +919,6 @@ // draw the lines associated with a rotation - if (haveInversion) { - color = "purple"; - } String wp = ""; if (isSpaceGroup) { pa1.setT(op.getOpPoint()); @@ -1065,7 +1069,6 @@ } P3 p2 = null; - float wscale = 1; if (pitch1 == 0 && !haveInversion) { // simple rotation ptemp.scaleAdd2(0.5f, vtemp, pa1); @@ -1085,8 +1088,7 @@ && (d = op.getOpTrans().length()) > 0.4f) { // all space group screw if (isccw == Boolean.TRUE) { - // vtemp.scale(1.02d); - // wscale = 2d; + // n/a } else if (isccw == null) { // 2-fold // maybe add a second @@ -1105,13 +1107,11 @@ } else if (isSpaceGroup && haveInversion) { // all space group n-bar // pitch1 here is 120 or 60 or 0 ?? - p2 = pt1; - vtemp.scale(-1f); scaleByOrder(vtemp, order, isccw); wp = "80"; } if (pitch1 > 0 && !haveInversion) { - wp = "" + (90 - (int) (vtemp.length() * wscale / pitch1 * 90)); + wp = "" + (90 - (int) (vtemp.length() / pitch1 * 90)); } if (!ignore) { @@ -1136,12 +1136,15 @@ } color = (screwDir < 0 ? COLOR_SCREW_2 : COLOR_SCREW_1); } - String name = opType + "_"+ order + "rotvector1"; + String name = opType + "_"+ nrot + "rotvector1"; drawOrderVector(drawSB, name, "vector", THICK_LINE + wp, pa1, - order, screwDir, haveInversion, 1, vtemp, isTimeReversed ? "gray" : color, title); + nrot, screwDir, haveInversion && isSpaceGroupAll, isccw == Boolean.TRUE, + vtemp, isTimeReversed ? "gray" : color, title); if (p2 != null) { - drawOrderVector(drawSB, name, "vector", THICK_LINE + wp, - ptr, order, screwDir, haveInversion, 2, vtemp, isTimeReversed ? "gray" : color, title); + // second standard rotation arrow on other side of unit cell only + drawOrderVector(drawSB, name + "2", "vector", THICK_LINE + wp, + ptr, order, screwDir, haveInversion, isccw == Boolean.TRUE, vtemp, + isTimeReversed ? "gray" : color, title); } } @@ -1308,11 +1311,20 @@ ptref = (isSpaceGroup ? pta00 : P3.newP(pta00)); } if (ptref != null && !ignore) { - drawVector(drawSB, (glideType == '\0' ? "centering_" : glideType + "_g") + "trans_vector", "vector", - (isTranslationOnly ? THICK_LINE : THIN_LINE), ptref, trans, - isTimeReversed && !haveInversion && !isMirrorPlane - && !isRotation ? "darkGray" : "gold", - title); + boolean isCentered = (glideType == '\0'); + color = (isTimeReversed && !haveInversion && !isMirrorPlane + && !isRotation ? "darkGray" : "gold"); + drawVector(drawSB, (isCentered ? "centering_" : glideType + "_g") + "trans_vector", "vector", + (isTranslationOnly ? THICK_LINE : THIN_LINE), ptref, trans, color, title); + if (isSpaceGroup && !isCentered && !isTranslationOnly) { + // draw reverse arrow as well + ptemp.setT(ptref); + ptemp.add(trans); + ptemp2.setT(trans); + ptemp2.scale(-1); + drawVector(drawSB, glideType + "_g" + "trans_vector2", "vector", + THIN_LINE, ptemp, ptemp2, color, title); + } } } @@ -1579,14 +1591,12 @@ @SuppressWarnings("unchecked") private void drawOrderVector(SB sb, String label, String type, String d, P3 pt, int order, int screwDir, - boolean haveInversion, int index, V3 vtemp, + boolean haveInversion, boolean isCCW, V3 vtemp, String color, String title) { - if (index == 2) - label += "b"; drawVector(sb, label, type, d, pt, vtemp, color, title); - if (order == 2) + if (order == 2 || haveInversion && !isCCW) return; - Object[] poly = getPolygon(order, 0, false, pt, vtemp); + Object[] poly = getPolygon(order, !haveInversion ? 0 : isCCW ? 1 : -1, haveInversion, pt, vtemp); Lst<Object> l = (Lst<Object>) poly[0]; sb.append(getDrawID(label + "_key")).append(" POLYGON ").appendI(l.size()); for (int i = 0, n = l.size(); i < n; i++) @@ -1593,6 +1603,7 @@ sb.appendO(l.get(i)); sb.append(" color ").append(color); if (screwDir != 0) { + // add screw axis "windmill" poly = getPolygon(order, screwDir, haveInversion, pt, vtemp); sb.append(getDrawID(label + "_key2")); l = (Lst<Object>) poly[0]; @@ -1608,7 +1619,7 @@ } private static Object[] getPolygon(int order, int screwDir, boolean haveInversion, P3 pt0, V3 v) { - float scale = 0.4f; + float scale = (haveInversion ? 0.6f : 0.4f); Lst<P3> pts = new Lst<>(); Lst<int[]> faces = new Lst<>(); V3 offset = V3.newV(v); @@ -1638,12 +1649,12 @@ if (i < order) { pts.addLast(pt); } - if (screwDir != 0 && (i % screwDir == 0) && ptLast != null) { + if (!haveInversion && screwDir != 0 && (i % screwDir == 0) && ptLast != null) { vt.sub2(pt, ptLast); int p2 = (i < order ? p++ : 0); P3 pt1 = P3.newP(pt); - pt1.scaleAdd2(1f, pt, pt1); - pt1.scaleAdd2(-1f, offset, pt1); + pt1.scaleAdd2(1, pt, pt1); + pt1.scaleAdd2(-1, offset, pt1); pts.addLast(pt1); faces.addLast(new int[] {plast, p++, p2, 0}); plast = p2; Modified: trunk/Jmol/src/org/jmol/symmetry/SymmetryOperation.java =================================================================== --- trunk/Jmol/src/org/jmol/symmetry/SymmetryOperation.java 2024-05-02 18:36:04 UTC (rev 22623) +++ trunk/Jmol/src/org/jmol/symmetry/SymmetryOperation.java 2024-05-05 15:18:44 UTC (rev 22624) @@ -42,6 +42,7 @@ import javajs.util.SB; import javajs.util.T3; import javajs.util.V3; +import javajs.util.V3d; /* * Bob Hanson 4/2006 @@ -89,7 +90,7 @@ private int opType = TYPE_UNKNOWN; private int opOrder; - private V3 opTrans; + private V3 opTrans, opGlide; private P3 opPoint, opPoint2; private V3 opAxis; P4 opPlane; @@ -619,7 +620,8 @@ int modDim = (op == null ? 0 : op.modDim); int nRows = 4 + modDim; int divisor = (op == null ? setDivisor(xyz) : op.divisor); - boolean doNormalize = halfOrLess && (op == null ? !xyz.startsWith("!") : op.doNormalize); + boolean doNormalize = halfOrLess + && (op == null ? !xyz.startsWith("!") : op.doNormalize); int dimOffset = (modDim > 0 ? 3 : 0); // allow a b c to represent x y z if (linearRotTrans != null) { int n = linearRotTrans.length - 1; @@ -1447,7 +1449,6 @@ m4.getTranslation(opTrans); opTrans.scale(1f / order); float d = approx6(opTrans.length()); - float dmax = 1; opPoint = new P3(); V3 v = null; boolean isOK = true; @@ -1524,20 +1525,13 @@ if (!checkOpPoint(p1sum)) opPoint2 = null; } - } - } // real question here... // problem here with p1 not being a vector, just the base point along the axis. if (v.dot(p1) < 0) { isOK = false; } - if (d > 0 && opTrans.z == 0 && opTrans.lengthSquared() == 1.25f) { - // SG 177 - dmax = 1.25f; - opIsLong = true; - } else { - dmax = 1.0f; } + } break; case TYPE_REFLECTION: // first plane point is half way from 0 to p1 - trans @@ -1564,28 +1558,40 @@ opPlane.w = 0; approx6Pt(opAxis); normalizePlane(opPlane); -// -// opAxis.setT(opPlane); - if (d > 0 && - (opTrans.z == 0 && opTrans.lengthSquared() == 1.25f - || opTrans.z == 0.5f && opTrans.lengthSquared() == 1.5f)) { - // SG 186 - // +/-0.5x +/-y, +/-x +/-0.5y - dmax = 1.25f; - opIsLong = true; - } else { - dmax = 0.78f; - } break; } if (d > 0) { opClean6(opTrans); + float dmax = 1; if (opType == TYPE_REFLECTION) { + // BUT opTrans is the composite translation, not just the glide?? + if (opTrans.z == 0 && opTrans.lengthSquared() == 1.25f + || opTrans.z == 0.5f && opTrans.lengthSquared() == 1.5f) { + // SG 186 + // -x+y+2,y+1,z + dmax = 1.25f; + opIsLong = true; + } else { + // this is skipping "-y+2/3,-x+1/3,z+5/6" in SG 161 + dmax = 0.78f; + } + opGlide = V3.newV(opTrans); + fixNegTrans(opGlide); + if (opGlide.length() == 0) + opGlide = null; // being careful here not to disallow this for vertical planes in #156; only for #88 if ((opTrans.x == 1 || opTrans.y == 1 || opTrans.z == 1) && m22 == -1) isOK = false; + } else { + if (opTrans.z == 0 && opTrans.lengthSquared() == 1.25f) { + // SG 177 -x+y+2,y+1,-z+2 + dmax = 1.25f; +// System.out.println("SO opLong " + opTrans + " " + getXYZFromMatrix(this, false, false, false)); + opIsLong = true; } + } opType |= TYPE_TRANSLATION; + // opTrans is the FULL translation, not just the glide! if (Math.abs(approx(opTrans.x)) >= dmax || Math.abs(approx(opTrans.y)) >= dmax || Math.abs(approx(opTrans.z)) >= dmax) { @@ -1612,6 +1618,12 @@ // return "" + ((int)approx(v1.x)) + ((int)approx(v1.y)) + ((int)approx(v1.z)); // } + private void fixNegTrans(V3 t) { + t.x = normHalf(t.x); + t.y = normHalf(t.y); + t.z = normHalf(t.z); + } + private static void normalizePlane(P4 plane) { approx6Pt(plane); plane.w = approx6(plane.w); @@ -1717,6 +1729,7 @@ SB xyzLst = new SB(); Map<String, Lst<SymmetryOperation>> mapPlanes = new Hashtable<String, Lst<SymmetryOperation>>(); + V3 vTemp = new V3(); for (int i = 0; i < n; i++) { SymmetryOperation op = ops[i]; lst.addLast(op); @@ -1723,12 +1736,12 @@ String s = op.getOpName(OP_MODE_NOTRANS); xyzLst.append(s).appendC(';'); if ((op.getOpType() & TYPE_REFLECTION) != 0) - addCoincidentMap(mapPlanes, op, TYPE_REFLECTION); + addCoincidentMap(mapPlanes, op, TYPE_REFLECTION, vTemp); else if (op.getOpType() == TYPE_SCREW_ROTATION) - addCoincidentMap(mapPlanes, op, TYPE_SCREW_ROTATION); + addCoincidentMap(mapPlanes, op, TYPE_SCREW_ROTATION, null); } for (int i = 1; i < n; i++) { // skip x,y,z - ops[i].addOps(xyzLst, lst, mapPlanes, n, i); + ops[i].addOps(xyzLst, lst, mapPlanes, n, i, vTemp); } return lst.toArray(new SymmetryOperation[lst.size()]); } @@ -1739,12 +1752,12 @@ * * @param xyzList * @param lst - * @param mapPlanes + * @param mapCoincident * @param n0 * @param isym */ void addOps(SB xyzList, Lst<SymmetryOperation> lst, - Map<String, Lst<SymmetryOperation>> mapCoincident, int n0, int isym) { + Map<String, Lst<SymmetryOperation>> mapCoincident, int n0, int isym, V3 vTemp) { V3 t0 = new V3(); getTranslation(t0); boolean isPlane = ((getOpType() & TYPE_REFLECTION) == TYPE_REFLECTION); @@ -1759,13 +1772,13 @@ if (opTemp == null) opTemp = new SymmetryOperation(null, 0, false); t.set(i, j, k); - if (checkOpSimilar(t)) + if (checkOpSimilar(t, vTemp)) continue; if (opTemp.opCheckAdd(this, t0, n0, t, xyzList, lst, isym + 1)) { if (isPlane) - addCoincidentMap(mapCoincident, opTemp, TYPE_REFLECTION); + addCoincidentMap(mapCoincident, opTemp, TYPE_REFLECTION, vTemp); else if (isScrew) - addCoincidentMap(mapCoincident, opTemp, TYPE_SCREW_ROTATION); + addCoincidentMap(mapCoincident, opTemp, TYPE_SCREW_ROTATION, null); opTemp = null; } } @@ -1783,9 +1796,11 @@ * coincident planes map * @param op * @param opType + * @param vTemp */ private static void addCoincidentMap(Map<String, Lst<SymmetryOperation>> mapCoincident, - SymmetryOperation op, int opType) { + SymmetryOperation op, int opType, + V3 vTemp) { if (op.isIrrelevant) return; String s = op.getOpName(OP_MODE_POSITION_ONLY); @@ -1812,16 +1827,50 @@ } op.iCoincident = 1; } else { - SymmetryOperation op0 = l.get(0); - if (op.opTrans != null && op0.opTrans != null) { - V3 v = V3.newV(op.opTrans); - v.add(op0.opTrans); - if (v.lengthSquared() < 1e-6) { + SymmetryOperation op0 = null; + for (int i = l.size(); --i >= 0;) { + op0 = l.get(i); + if (op.opGlide != null && op0.opGlide != null) { + vTemp.sub2(op.opGlide, op0.opGlide); + if (vTemp.lengthSquared() < 1e-6) { + // space groups 218, 225, 227 will fire this + op.isIrrelevant = true; + return; + } + vTemp.add2(op.opGlide, op0.opGlide); + if (vTemp.lengthSquared() < 1e-6) { // space groups 218, 225, 227 will fire this op.isIrrelevant = true; return; } + vTemp.add2(op.opAxis, op0.opAxis); + if (vTemp.lengthSquared() < 1e-6) { + // opposite axes. Should we reverse one? + // maybe check trans vs opAxis? + op.isIrrelevant = true; + return; + } + } else if (op.opGlide == null && op0.opGlide == null) { + + vTemp.add2(op.opAxis, op0.opAxis); + if (vTemp.lengthSquared() < 1e-6) { + // opposite axes. Should we reverse one? + // maybe check trans vs opAxis? + op.isIrrelevant = true; + return; } + vTemp.sub2(op.opAxis, op0.opAxis); + if (vTemp.lengthSquared() < 1e-6) { + // same axes + // how did this happen? + op.isIrrelevant = true; + return; + } + } + + + } + // FOR loop leaves op0 = lst.get(0); if (op0.iCoincident == 0) { op.iCoincident = 1; op0.iCoincident = -1; @@ -1844,7 +1893,7 @@ * @param t * @return true if */ - private boolean checkOpSimilar(V3 t) { + private boolean checkOpSimilar(V3 t, V3 vTemp) { switch (getOpType() &~ TYPE_TRANSLATION) { default: return false; @@ -1853,7 +1902,10 @@ case TYPE_ROTATION: // includes screw rotation return (approx6(t.dot(opAxis) - t.length()) == 0); case TYPE_REFLECTION: // includes glide reflection - return (approx6(t.dot(opAxis)) == 0); + vTemp.cross(t, opAxis); + // t.cross(opAxis)==0 is a translation PERPENDICULAR to the plane + // t.dot(opAxis)==0 is a translation IN the plane + return (approx6(vTemp.length()) == 0 ? false : approx6(t.dot(opAxis)) == 0); } } @@ -1879,14 +1931,15 @@ if (isIrrelevant || opType == TYPE_IDENTITY || opType == TYPE_TRANSLATION) return false; String s = getOpName(OP_MODE_NOTRANS) + ";"; - if (xyzList.indexOf(s) >= 0) + if ((opType & TYPE_REFLECTION) == 0 && xyzList.indexOf(s) >= 0) { return false; - xyzList.append(s); - lst.addLast(this); - isFinalized = true; - xyz = getXYZFromMatrix(this, false, false, false); - return true; - } + } + xyzList.append(s); + lst.addLast(this); + isFinalized = true; + xyz = getXYZFromMatrix(this, false, false, false); + return true; + } static void approx6Pt(T3 pt) { if (pt != null) { @@ -2197,6 +2250,10 @@ * @return normalized translation */ private static String norm(float d) { + return opF(normHalf(d)); + } + + private static float normHalf(float d) { while (d <= -0.5) { d += 1; } @@ -2203,7 +2260,7 @@ while (d > 0.5) { d -= 1; } - return opF(d); + return d; } /** Modified: trunk/Jmol/src/org/jmol/viewer/ColorManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/ColorManager.java 2024-05-02 18:36:04 UTC (rev 22623) +++ trunk/Jmol/src/org/jmol/viewer/ColorManager.java 2024-05-05 15:18:44 UTC (rev 22624) @@ -134,22 +134,26 @@ // we need to use the byte form here for speed switch (pid) { case PAL.PALETTE_PROPERTY: - return (colorData == null || atom.i >= colorData.length || Float.isNaN(colorData[atom.i]) ? C.GRAY : - ce.getColorIndex(colorData[atom.i])); + return (colorData == null || atom.i >= colorData.length + || Float.isNaN(colorData[atom.i]) ? C.GRAY + : ce.getColorIndex(colorData[atom.i])); case PAL.PALETTE_NONE: case PAL.PALETTE_CPK: + int[] a = argbsCpk; + int i = id = atom.getAtomicAndIsotopeNumber(); + if (i >= Elements.elementNumberMax) { + id = Elements.altElementIndexFromNumber(i); + if (id > 0) { + i = id; + id += Elements.elementNumberMax; + a = altArgbsCpk; + } else { + i = id = Elements.getElementNumber(i); + } + } // Note that CPK colors can be changed based upon user preference // therefore, a changeable colix is allocated in this case - id = atom.getAtomicAndIsotopeNumber(); - if (id < Elements.elementNumberMax) - return g3d.getChangeableColix(id, argbsCpk[id]); - int id0 = id; - id = Elements.altElementIndexFromNumber(id); - if (id > 0) - return g3d.getChangeableColix(Elements.elementNumberMax + id, - altArgbsCpk[id]); - id = Elements.getElementNumber(id0); - return g3d.getChangeableColix(id, argbsCpk[id]); + return g3d.getChangeableColix(id, a[i]); case PAL.PALETTE_PARTIAL_CHARGE: // This code assumes that the range of partial charges is [-1, 1]. index = ColorEncoder.quantize4(atom.getPartialCharge(), -1, 1, @@ -173,8 +177,8 @@ ColorEncoder.BWR, false); case PAL.PALETTE_STRAIGHTNESS: return ce.getColorIndexFromPalette( - atom.group.getGroupParameter(T.straightness), -1, 1, - ColorEncoder.BWR, false); + atom.group.getGroupParameter(T.straightness), -1, 1, ColorEncoder.BWR, + false); case PAL.PALETTE_SURFACE: hi = vwr.ms.getSurfaceDistanceMax(); return ce.getColorIndexFromPalette(atom.getSurfaceDistance100(), 0, hi, @@ -202,9 +206,8 @@ atom.group.chain.selectedGroupCount - 1, ColorEncoder.BGYOR, false); case PAL.PALETTE_POLYMER: Model m = vwr.ms.am[atom.mi]; - return ce.getColorIndexFromPalette( - atom.group.getBioPolymerIndexInModel(), 0, - (m.isBioModel ? ((BioModel) m).getBioPolymerCount() : 0) - 1, + return ce.getColorIndexFromPalette(atom.group.getBioPolymerIndexInModel(), + 0, (m.isBioModel ? ((BioModel) m).getBioPolymerCount() : 0) - 1, ColorEncoder.BGYOR, false); case PAL.PALETTE_MONOMER: // vwr.calcSelectedMonomersCount() must be called first ... @@ -219,18 +222,17 @@ case PAL.PALETTE_ALTLOC: //very inefficient! modelIndex = atom.mi; - return ce - .getColorIndexFromPalette( - modelSet.getAltLocIndexInModel(modelIndex, atom.altloc), 0, - modelSet.getAltLocCountInModel(modelIndex), ColorEncoder.ROYGB, - false); + return ce.getColorIndexFromPalette( + modelSet.getAltLocIndexInModel(modelIndex, atom.altloc), 0, + modelSet.getAltLocCountInModel(modelIndex), ColorEncoder.ROYGB, + false); case PAL.PALETTE_INSERTION: //very inefficient! modelIndex = atom.mi; return ce.getColorIndexFromPalette( modelSet.getInsertionCodeIndexInModel(modelIndex, - atom.group.getInsertionCode()), 0, - modelSet.getInsertionCountInModel(modelIndex), ColorEncoder.ROYGB, + atom.group.getInsertionCode()), + 0, modelSet.getInsertionCountInModel(modelIndex), ColorEncoder.ROYGB, false); case PAL.PALETTE_JMOL: id = atom.getAtomicAndIsotopeNumber(); @@ -280,25 +282,40 @@ return JC.altArgbsCpk[Elements.altElementIndexFromNumber(id)]; } - public short setElementArgb(int id, int argb) { + public short getElementColix(int elemNo) { + // could be isotope,elemno + int[] a = argbsCpk; + int i = elemNo; + if (i > Elements.elementNumberMax) { + int ialt = Elements.altElementIndexFromNumber(i); + if (ialt > 0) { + i = ialt; + a = altArgbsCpk; + } else { + i = Elements.getElementNumber(i); + } + } + return C.getColix(a[i]); + } + + public void setElementArgb(int elemNo, int argb) { if (argb == T.jmol && argbsCpk == PAL.argbsCpk) - return 0; - argb = getJmolOrRasmolArgb(id, argb); - if (argbsCpk == PAL.argbsCpk) { - argbsCpk = AU.arrayCopyRangeI(PAL.argbsCpk, 0, -1); + return; + argb = getJmolOrRasmolArgb(elemNo, argb); + if (argbsCpk == PAL.argbsCpk) { + argbsCpk = AU.arrayCopyRangeI(PAL.argbsCpk, 0, -1); altArgbsCpk = AU.arrayCopyRangeI(JC.altArgbsCpk, 0, -1); } + int id = elemNo; if (id < Elements.elementNumberMax) { - if (argb == Integer.MAX_VALUE) - return C.getColix(argbsCpk[id]); argbsCpk[id] = argb; - g3d.changeColixArgb(id, argb); - return 0; + } else { + id = Elements.altElementIndexFromNumber(elemNo); + altArgbsCpk[id] = argb; + id += Elements.elementNumberMax; } - id = Elements.altElementIndexFromNumber(id); - altArgbsCpk[id] = argb; - g3d.changeColixArgb(Elements.elementNumberMax + id, argb); - return 0; + g3d.changeColixArgb(id, argb); + vwr.setModelkitPropertySafely(JC.MODELKIT_UPDATE_MODEL_KEYS, null); } /////////////////// propertyColorScheme /////////////// @@ -365,4 +382,5 @@ c.currentPalette = c.createColorScheme(colorScheme, false, true); return (c.currentPalette == Integer.MAX_VALUE ? null : c); } + } Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2024-05-02 18:36:04 UTC (rev 22623) +++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2024-05-05 15:18:44 UTC (rev 22624) @@ -54,14 +54,32 @@ # FEATURE REQUEST: dock/undock consoles to main window. # TODO: allow FIXED to work with MODELKIT MINIMIZE +Jmol.___JmolVersion="16.2.15" // (legacy) also 16.2.16 (swingJS) -Jmol.___JmolVersion="16.2.13" // (legacy) also 16.2.14 (swingJS) +bug fix: x = symop(n) broken for n a symmetry operator number -bug fix: select UNITCELL should be inclusive, [0,1] (broken in 14.32.17) +bug fix: draw symop [4x4 matrix] not working + +bug fix: MODELKIT DRAW SPACEGROUP should use prefix "sg" not "sym" + +bug fix: various minor aspects of DRAW SPACEGROUP ALL and MODELKIT DRAW SPACEGROUP + -- new color coding for n-axes + -- new color coding and larger icons for n-bar axes + -- missing split planes (mirror+glide and glide+glide) + -- missing additional 2-fold rotations tangent to corners in hexagonal groups + + +JmolVersion="16.2.13" // (legacy) also 16.2.14 (swingJS) + +bug fix: select UNITCELL should be inclusive, [0,1] (broken in 14.32.18) -- not the same as within(unitcell), which is [0,1) exclusive -bug fix: polyhedra COLLAPSED EDGES does not just act on current polyhedra (never worked) +bug fix: polyhedra COLLAPSED EDGES does not just act on current polyhedra +bug fix: polyhedra POINTS miscolors isotopes + +bug fix: atom color change using color <element name> not reflected in element key + bug fix: MODELKIT SET KEY not working correctly (broken in 16.2.1) -- had been changed to "ELEMENTKEY" without documentation -- now just an alias for MODELKIT SET ELEMENTKEY @@ -78,13 +96,12 @@ -- presence of DRAW objects in a state sets MODELKIT SET ELEMENTKEY ON for associated models when restored, preserving the key for those models that had them when saved - -- setting persists through ZAP and LOAD + -- persistent through ZAP -new feature: MODELKIT SET ELEMENTKEY ON/OFF - -- adds or removes an element key as per SET ELEMENTKEY ON/OFF, - but only for the CURRENT model only +new feature: MODELKIT SET ELEMENTKEY ON/OFF (actually introduced in 16.2.1) + -- adds or removes an element key as per SET ELEMENTKEY ON/OFF, but only for the CURRENT model only -- indirectly saved in state as the presence of the associated DRAW objects - -- setting does NOT persist through ZAP or LOAD + -- key does NOT persist through ZAP new feature: frank (bottom right corner "Jmol") displays "JmolD" for JmolD.jar and JmolDataD.jar This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2008-09-22 12:45:42
|
Revision: 9921 http://jmol.svn.sourceforge.net/jmol/?rev=9921&view=rev Author: hansonr Date: 2008-09-22 12:45:40 +0000 (Mon, 22 Sep 2008) Log Message: ----------- simplification/reorganization of applet jar files Modified Paths: -------------- trunk/Jmol/build.xml trunk/Jmol/src/org/jmol/util/JpegEncoder.java Modified: trunk/Jmol/build.xml =================================================================== --- trunk/Jmol/build.xml 2008-09-22 10:37:58 UTC (rev 9920) +++ trunk/Jmol/build.xml 2008-09-22 12:45:40 UTC (rev 9921) @@ -458,6 +458,13 @@ <delete file="build/appletjars.timestamp"/> <delete dir="${appletjars.dir}"/> <mkdir dir="${appletjars.dir}"/> + + <copy todir="${appletjars.dir}" > + <fileset dir="src"> + <include name="com/obrador/license.txt" /> + </fileset> + </copy> + <unjar dest="${appletjars.dir}" src="${lib.dir}/${vecmath.jar}"> <patternset> <include name="**/Point3f.class"/> @@ -498,42 +505,11 @@ </fileset> <fileset dir="${appletjars.dir}" includes="**/*"/> </jar> - <jar destfile="${jmol.applet.build.dir}/JmolApplet0_Main.jar" manifest="manifest/appletMain.txt"> + <jar destfile="${jmol.applet.build.dir}/JmolApplet0_i18n.jar" manifest="manifest/applet_i18n.txt" > <fileset dir="${applet.classes.dir}"> - <include name="org/jmol/api/**" /> - <!-- note that this class is included in JmolApplet0.jar --> - <exclude name="org/jmol/api/JmolAppletInterface.class" /> - <include name="org/jmol/applet/**" /> - <include name="org/jmol/i18n/**" /> + <include name="org/jmol/translation/**" /> </fileset> </jar> - - <jar destfile="${jmol.applet.build.dir}/JmolApplet0_Jars.jar" manifest="manifest/applet.txt"> - <!-- javax/vecmath --> - <fileset dir="${appletjars.dir}" includes="**/*"/> - </jar> - - <jar destfile="${jmol.applet.build.dir}/JmolApplet0_Core.jar" manifest="manifest/applet.txt"> - <fileset dir="${applet.classes.dir}"> - <include name="org/jmol/g3d/**" /> - <include name="org/jmol/geodesic/**" /> - <include name="org/jmol/bspt/**" /> - <include name="org/jmol/util/**" /> - <include name="org/jmol/adapter/smarter/**" /> - </fileset> - </jar> - - <jar destfile="${jmol.applet.build.dir}/JmolApplet0_Viewer.jar" manifest="manifest/applet.txt" > - <fileset dir="${applet.classes.dir}"> - <include name="org/jmol/atomdata/**" /> - <include name="org/jmol/modelset/**" /> - <include name="org/jmol/shape/**" /> - <include name="org/jmol/viewer/**" /> -<!-- <include name="org/jmol/Jmol.properties" / --> - </fileset> - </jar> - - <jar destfile="${jmol.applet.build.dir}/JmolApplet0_Minimize.jar" manifest="manifest/applet.txt"> <fileset dir="${applet.classes.dir}"> <include name="org/jmol/minimize/**" /> @@ -611,29 +587,34 @@ </fileset> </jar> - <jar destfile="${jmol.applet.build.dir}/JmolApplet0_i18n.jar" manifest="manifest/applet_i18n.txt" > - <fileset dir="${applet.classes.dir}"> - <include name="org/jmol/translation/**" /> - </fileset> - </jar> <!-- vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv --> <!-- changes to this must be replicated below for the signed applet --> <jar destfile="${jmol.applet.build.dir}/JmolApplet0.jar" index="true" > - <fileset dir="${applet.classes.dir}"> - <include name="org/jmol/appletwrapper/*" /> - <include name="JmolApplet*.class" /> - <include name="jmol75x29x8.gif" /> - <include name="org/jmol/api/JmolAppletInterface.class" /> - <include name="com/obrador/license.txt" /> + <!-- javax/vecmath --> + <fileset dir="${appletjars.dir}" includes="**/*"/> + <fileset dir="${applet.classes.dir}"> + <include name="org/jmol/appletwrapper/*" /> + <include name="JmolApplet*.class" /> + <include name="jmol75x29x8.gif" /> + <include name="org/jmol/adapter/smarter/**" /> + <include name="org/jmol/api/**" /> + <include name="org/jmol/applet/**" /> + <include name="org/jmol/atomdata/**" /> + <include name="org/jmol/bspt/**" /> + <include name="org/jmol/g3d/**" /> + <include name="org/jmol/geodesic/**" /> + <include name="org/jmol/i18n/**" /> + <include name="org/jmol/modelset/**" /> + <include name="org/jmol/shape/**" /> + <include name="org/jmol/util/**" /> + <include name="org/jmol/viewer/**" /> </fileset> + <!-- changes to this must be replicated below for the signed applet --> <indexjars> - <pathelement path="${jmol.applet.build.dir}/JmolApplet0_Main.jar" /> - <pathelement path="${jmol.applet.build.dir}/JmolApplet0_Core.jar" /> - <pathelement path="${jmol.applet.build.dir}/JmolApplet0_Jars.jar" /> <!-- no export here - this is the unsigned applet --> <pathelement path="${jmol.applet.build.dir}/JmolApplet0_Minimize.jar" /> <pathelement path="${jmol.applet.build.dir}/JmolApplet0_Popup.jar" /> @@ -647,7 +628,6 @@ <pathelement path="${jmol.applet.build.dir}/JmolApplet0_ShapeSurface.jar" /> <pathelement path="${jmol.applet.build.dir}/JmolApplet0_Smiles.jar" /> <pathelement path="${jmol.applet.build.dir}/JmolApplet0_Symmetry.jar" /> - <pathelement path="${jmol.applet.build.dir}/JmolApplet0_Viewer.jar" /> <pathelement path="${jmol.applet.build.dir}/JmolApplet0_i18n.jar" /> </indexjars> </jar> @@ -669,34 +649,8 @@ keystore="selfSignedCertificate/selfSignedCertificate.store" storepass="selfSignedCertificate" alias="selfSignedCertificate" /> <delete file="${jmol.applet.build.dir}/JmolAppletSigned.jar.temp" /> - <signjar jar="${jmol.applet.build.dir}/JmolApplet0_Main.jar" - signedjar="${jmol.applet.build.dir}/JmolAppletSigned0_Main.jar" - keystore="selfSignedCertificate/selfSignedCertificate.store" - storepass="selfSignedCertificate" alias="selfSignedCertificate" /> - <signjar jar="${jmol.applet.build.dir}/JmolApplet0_Core.jar" - signedjar="${jmol.applet.build.dir}/JmolAppletSigned0_Core.jar" - keystore="selfSignedCertificate/selfSignedCertificate.store" - storepass="selfSignedCertificate" alias="selfSignedCertificate" /> - - <jar destfile="${jmol.applet.build.dir}/JmolAppletSigned0_Export.jar.temp" - manifest="manifest/applet.txt"> - <fileset dir="${applet.classes.dir}"> - <include name="org/jmol/export/**/*" /> - </fileset> - </jar> - <signjar jar="${jmol.applet.build.dir}/JmolAppletSigned0_Export.jar.temp" - signedjar="${jmol.applet.build.dir}/JmolAppletSigned0_Export.jar" - keystore="selfSignedCertificate/selfSignedCertificate.store" - storepass="selfSignedCertificate" alias="selfSignedCertificate" /> - <delete file="${jmol.applet.build.dir}/JmolAppletSigned0_Export.jar.temp"/> - - <signjar jar="${jmol.applet.build.dir}/JmolApplet0_Jars.jar" - signedjar="${jmol.applet.build.dir}/JmolAppletSigned0_Jars.jar" - keystore="selfSignedCertificate/selfSignedCertificate.store" - storepass="selfSignedCertificate" alias="selfSignedCertificate" /> - - <signjar jar="${jmol.applet.build.dir}/JmolApplet0_Minimize.jar" + <signjar jar="${jmol.applet.build.dir}/JmolApplet0_Minimize.jar" signedjar="${jmol.applet.build.dir}/JmolAppletSigned0_Minimize.jar" keystore="selfSignedCertificate/selfSignedCertificate.store" storepass="selfSignedCertificate" alias="selfSignedCertificate" /> @@ -758,16 +712,7 @@ signedjar="${jmol.applet.build.dir}/JmolAppletSigned0_Symmetry.jar" keystore="selfSignedCertificate/selfSignedCertificate.store" storepass="selfSignedCertificate" alias="selfSignedCertificate" /> - - - <signjar jar="${jmol.applet.build.dir}/JmolApplet0_Viewer.jar" - signedjar="${jmol.applet.build.dir}/JmolAppletSigned0_Viewer.jar" - keystore="selfSignedCertificate/selfSignedCertificate.store" - storepass="selfSignedCertificate" alias="selfSignedCertificate" /> - - - - + <signjar jar="${jmol.applet.build.dir}/JmolApplet0_i18n.jar" signedjar="${jmol.applet.build.dir}/JmolAppletSigned0_i18n.jar" keystore="selfSignedCertificate/selfSignedCertificate.store" @@ -780,19 +725,27 @@ <jar destfile="${jmol.applet.build.dir}/JmolAppletSigned0.jar" manifest="manifest/applet0.txt" index="true"> + <!-- javax/vecmath --> + <fileset dir="${appletjars.dir}" includes="**/*"/> <fileset dir="${applet.classes.dir}"> <include name="org/jmol/appletwrapper/*" /> <include name="JmolApplet*.class" /> <include name="jmol75x29x8.gif" /> - <include name="org/jmol/api/JmolAppletInterface.class" /> - <include name="com/obrador/license.txt" /> + <include name="org/jmol/adapter/smarter/**" /> + <include name="org/jmol/api/**" /> + <include name="org/jmol/applet/**" /> + <include name="org/jmol/atomdata/**" /> + <include name="org/jmol/bspt/**" /> + <include name="org/jmol/export/**" /> + <include name="org/jmol/g3d/**" /> + <include name="org/jmol/geodesic/**" /> + <include name="org/jmol/modelset/**" /> + <include name="org/jmol/shape/**" /> + <include name="org/jmol/viewer/**" /> + <include name="org/jmol/util/**" /> + <include name="org/jmol/i18n/**" /> </fileset> <indexjars> - <pathelement path="${jmol.applet.build.dir}/JmolAppletSigned0_Main.jar" /> - <pathelement path="${jmol.applet.build.dir}/JmolAppletSigned0_Core.jar" /> - <pathelement path="${jmol.applet.build.dir}/JmolAppletSigned0_Export.jar" /> - <pathelement path="${jmol.applet.build.dir}/JmolAppletSigned0_Jars.jar" /> - <pathelement path="${jmol.applet.build.dir}/JmolAppletSigned0_Minimize.jar" /> <pathelement path="${jmol.applet.build.dir}/JmolAppletSigned0_Popup.jar" /> <pathelement path="${jmol.applet.build.dir}/JmolAppletSigned0_Quantum.jar" /> <pathelement path="${jmol.applet.build.dir}/JmolAppletSigned0_ReadersCifPdb.jar" /> @@ -804,7 +757,6 @@ <pathelement path="${jmol.applet.build.dir}/JmolAppletSigned0_ShapeSurface.jar" /> <pathelement path="${jmol.applet.build.dir}/JmolAppletSigned0_Smiles.jar" /> <pathelement path="${jmol.applet.build.dir}/JmolAppletSigned0_Symmetry.jar" /> - <pathelement path="${jmol.applet.build.dir}/JmolAppletSigned0_Viewer.jar" /> <pathelement path="${jmol.applet.build.dir}/JmolAppletSigned0_i18n.jar" /> </indexjars> </jar> Modified: trunk/Jmol/src/org/jmol/util/JpegEncoder.java =================================================================== --- trunk/Jmol/src/org/jmol/util/JpegEncoder.java 2008-09-22 10:37:58 UTC (rev 9920) +++ trunk/Jmol/src/org/jmol/util/JpegEncoder.java 2008-09-22 12:45:40 UTC (rev 9921) @@ -39,6 +39,9 @@ /* * JpegEncoder - The JPEG main program which performs a jpeg compression of * an image. + * + * See org.com.obrador.license.txt + * */ public class JpegEncoder extends Frame This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ni...@us...> - 2008-10-09 19:36:50
|
Revision: 10030 http://jmol.svn.sourceforge.net/jmol/?rev=10030&view=rev Author: nicove Date: 2008-10-09 19:36:32 +0000 (Thu, 09 Oct 2008) Log Message: ----------- First attempt at splitting JmolApplet0_i18n.jar. Needs testing Modified Paths: -------------- trunk/Jmol/build-i18n.xml trunk/Jmol/build.xml trunk/Jmol/src/org/jmol/i18n/GT.java Modified: trunk/Jmol/build-i18n.xml =================================================================== --- trunk/Jmol/build-i18n.xml 2008-10-09 17:49:47 UTC (rev 10029) +++ trunk/Jmol/build-i18n.xml 2008-10-09 19:36:32 UTC (rev 10030) @@ -343,7 +343,7 @@ <target name="check-uptodate-application-catalog"> <condition property="uptodate-application-catalog-${Jmol_lang_value}"> <uptodate srcfile="${Jmol.po.dir}/Jmol-${Jmol_lang_value}.po" - targetfile="${classes.dir}/org/jmol/translation/Jmol/Messages_${Jmol_lang_value}.class"/> + targetfile="${classes.dir}/org/jmol/translation/Jmol/${Jmol_lang_value}/Messages_${Jmol_lang_value}.class"/> </condition> </target> @@ -360,7 +360,7 @@ <arg value="-d"/> <arg value="${basedir}/${classes.dir}"/> <arg value="-r"/> - <arg value="org.jmol.translation.Jmol.Messages"/> + <arg value="org.jmol.translation.Jmol.${Jmol_lang_value}.Messages"/> <arg value="Jmol-${Jmol_lang_value}.po"/> </exec> </target> @@ -382,7 +382,7 @@ <target name="check-uptodate-applet-catalog"> <condition property="uptodate-applet-catalog-${JmolApplet_lang_value}"> <uptodate srcfile="${JmolApplet.po.dir}/JmolApplet-${JmolApplet_lang_value}.po" - targetfile="${classes.dir}/org/jmol/translation/JmolApplet/Messages_${JmolApplet_lang_value}.class"/> + targetfile="${classes.dir}/org/jmol/translation/JmolApplet/${JmolApplet_lang_value}/Messages_${JmolApplet_lang_value}.class"/> </condition> </target> @@ -398,7 +398,7 @@ <arg value="-d"/> <arg value="${basedir}/${classes.dir}"/> <arg value="-r"/> - <arg value="org.jmol.translation.JmolApplet.Messages"/> + <arg value="org.jmol.translation.JmolApplet.${JmolApplet_lang_value}.Messages"/> <arg value="JmolApplet-${JmolApplet_lang_value}.po"/> </exec> </target> Modified: trunk/Jmol/build.xml =================================================================== --- trunk/Jmol/build.xml 2008-10-09 17:49:47 UTC (rev 10029) +++ trunk/Jmol/build.xml 2008-10-09 19:36:32 UTC (rev 10030) @@ -43,6 +43,8 @@ <property file="proxy.properties" /> + <import file="build-i18n.xml"/> + <path id="project.class.path"> <fileset dir="${lib.dir}"> <include name="*.jar" /> @@ -63,6 +65,13 @@ </fileset> </path> + <!-- <for list ...> construct needs ant-contrib.jar --> + <taskdef resource="net/sf/antcontrib/antlib.xml"> + <classpath> + <pathelement location="${lib.dir}/ant-contrib.jar"/> + </classpath> + </taskdef> + <target name="main" id="main" depends="init,jar,applet-jar"/> <target name="all" id="all" depends="doc,main"/> @@ -261,7 +270,7 @@ </copy> <copy todir="${applet.classes.dir}" > <fileset dir="${classes.dir}"> - <include name="**/JmolApplet/*.class" /> + <include name="**/JmolApplet/*/*.class" /> </fileset> </copy> </target> @@ -495,122 +504,126 @@ <touch file="build/appletjars.timestamp"/> </target> - <target name="applet-jar" id="applet-jar" - depends="applet-classes,appletjars"> - <jar destfile="${jmol.applet.build.dir}/JmolApplet.jar" - manifest="manifest/appletMonolithic.txt" index="true" > - <fileset dir="${applet.classes.dir}" > - <include name="**/*" /> - <exclude name="org/jmol/export/**/*" /> - </fileset> - <fileset dir="${appletjars.dir}" includes="**/*"/> - </jar> - <jar destfile="${jmol.applet.build.dir}/JmolApplet0_i18n.jar" manifest="manifest/applet_i18n.txt" > - <fileset dir="${applet.classes.dir}"> - <include name="org/jmol/translation/**" /> - </fileset> - </jar> - <jar destfile="${jmol.applet.build.dir}/JmolApplet0_Minimize.jar" manifest="manifest/applet.txt"> - <fileset dir="${applet.classes.dir}"> - <include name="org/jmol/minimize/**" /> - </fileset> - </jar> + <target name="applet-jar" id="applet-jar" + depends="applet-classes,appletjars"> + <jar destfile="${jmol.applet.build.dir}/JmolApplet.jar" + manifest="manifest/appletMonolithic.txt" index="true" > + <fileset dir="${applet.classes.dir}" > + <include name="**/*" /> + <exclude name="org/jmol/export/**/*" /> + </fileset> + <fileset dir="${appletjars.dir}" includes="**/*"/> + </jar> - <jar destfile="${jmol.applet.build.dir}/JmolApplet0_Popup.jar" manifest="manifest/applet.txt"> - <fileset dir="${applet.classes.dir}"> - <include name="org/jmol/popup/**" /> - </fileset> - </jar> + <for list="${all.JmolApplet.languages}" delimiter="," + param="current.Jmol.language"> + <sequential> + <jar destfile="${jmol.applet.build.dir}/JmolApplet0_i18n_@{current.Jmol.language}.jar" + manifest="manifest/applet_i18n.txt" > + <fileset dir="${applet.classes.dir}"> + <include name="org/jmol/translation/JmolApplet/@{current.Jmol.language}/**" /> + </fileset> + </jar> + </sequential> + </for> - <jar destfile="${jmol.applet.build.dir}/JmolApplet0_Quantum.jar" manifest="manifest/applet.txt"> - <fileset dir="${applet.classes.dir}"> - <include name="org/jmol/quantum/**" /> - </fileset> - </jar> + <jar destfile="${jmol.applet.build.dir}/JmolApplet0_Minimize.jar" manifest="manifest/applet.txt"> + <fileset dir="${applet.classes.dir}"> + <include name="org/jmol/minimize/**" /> + </fileset> + </jar> - <jar destfile="${jmol.applet.build.dir}/JmolApplet0_ReadersMolXyz.jar" manifest="manifest/applet.txt"> - <fileset dir="${applet.classes.dir}"> - <include name="org/jmol/adapter/readers/molxyz/**" /> - </fileset> - </jar> + <jar destfile="${jmol.applet.build.dir}/JmolApplet0_Popup.jar" manifest="manifest/applet.txt"> + <fileset dir="${applet.classes.dir}"> + <include name="org/jmol/popup/**" /> + </fileset> + </jar> - <jar destfile="${jmol.applet.build.dir}/JmolApplet0_ReadersCifPdb.jar" manifest="manifest/applet.txt"> - <fileset dir="${applet.classes.dir}"> - <include name="org/jmol/adapter/readers/cifpdb/**" /> - </fileset> - </jar> + <jar destfile="${jmol.applet.build.dir}/JmolApplet0_Quantum.jar" manifest="manifest/applet.txt"> + <fileset dir="${applet.classes.dir}"> + <include name="org/jmol/quantum/**" /> + </fileset> + </jar> + <jar destfile="${jmol.applet.build.dir}/JmolApplet0_ReadersMolXyz.jar" manifest="manifest/applet.txt"> + <fileset dir="${applet.classes.dir}"> + <include name="org/jmol/adapter/readers/molxyz/**" /> + </fileset> + </jar> - <jar destfile="${jmol.applet.build.dir}/JmolApplet0_ReadersMore.jar" manifest="manifest/applet.txt"> - <fileset dir="${applet.classes.dir}"> - <include name="org/jmol/adapter/readers/more/**" /> - </fileset> - </jar> - - - <jar destfile="${jmol.applet.build.dir}/JmolApplet0_ReadersXml.jar" manifest="manifest/applet.txt"> - <fileset dir="${applet.classes.dir}"> - <include name="org/jmol/adapter/readers/xml/**" /> - </fileset> - </jar> + <jar destfile="${jmol.applet.build.dir}/JmolApplet0_ReadersCifPdb.jar" manifest="manifest/applet.txt"> + <fileset dir="${applet.classes.dir}"> + <include name="org/jmol/adapter/readers/cifpdb/**" /> + </fileset> + </jar> + <jar destfile="${jmol.applet.build.dir}/JmolApplet0_ReadersMore.jar" manifest="manifest/applet.txt"> + <fileset dir="${applet.classes.dir}"> + <include name="org/jmol/adapter/readers/more/**" /> + </fileset> + </jar> + + <jar destfile="${jmol.applet.build.dir}/JmolApplet0_ReadersXml.jar" manifest="manifest/applet.txt"> + <fileset dir="${applet.classes.dir}"> + <include name="org/jmol/adapter/readers/xml/**" /> + </fileset> + </jar> + + <jar destfile="${jmol.applet.build.dir}/JmolApplet0_ShapeBio.jar" manifest="manifest/applet.txt" > + <fileset dir="${applet.classes.dir}"> + <include name="org/jmol/modelsetbio/**" /> + <include name="org/jmol/shapebio/**" /> + </fileset> + </jar> - <jar destfile="${jmol.applet.build.dir}/JmolApplet0_ShapeBio.jar" manifest="manifest/applet.txt" > - <fileset dir="${applet.classes.dir}"> - <include name="org/jmol/modelsetbio/**" /> - <include name="org/jmol/shapebio/**" /> - </fileset> - </jar> - - <jar destfile="${jmol.applet.build.dir}/JmolApplet0_ShapeSpecial.jar" manifest="manifest/applet.txt" > - <fileset dir="${applet.classes.dir}"> - <include name="org/jmol/shapespecial/**" /> - </fileset> - </jar> + <jar destfile="${jmol.applet.build.dir}/JmolApplet0_ShapeSpecial.jar" manifest="manifest/applet.txt" > + <fileset dir="${applet.classes.dir}"> + <include name="org/jmol/shapespecial/**" /> + </fileset> + </jar> - <jar destfile="${jmol.applet.build.dir}/JmolApplet0_ShapeSurface.jar" manifest="manifest/applet.txt" > - <fileset dir="${applet.classes.dir}"> - <include name="org/jmol/jvxl/**" /> - <include name="org/jmol/shapesurface/**" /> - </fileset> - </jar> + <jar destfile="${jmol.applet.build.dir}/JmolApplet0_ShapeSurface.jar" manifest="manifest/applet.txt" > + <fileset dir="${applet.classes.dir}"> + <include name="org/jmol/jvxl/**" /> + <include name="org/jmol/shapesurface/**" /> + </fileset> + </jar> - <jar destfile="${jmol.applet.build.dir}/JmolApplet0_Smiles.jar" manifest="manifest/applet.txt"> - <fileset dir="${applet.classes.dir}"> - <include name="org/jmol/smiles/**" /> - </fileset> - </jar> + <jar destfile="${jmol.applet.build.dir}/JmolApplet0_Smiles.jar" manifest="manifest/applet.txt"> + <fileset dir="${applet.classes.dir}"> + <include name="org/jmol/smiles/**" /> + </fileset> + </jar> - <jar destfile="${jmol.applet.build.dir}/JmolApplet0_Symmetry.jar" manifest="manifest/applet.txt"> - <fileset dir="${applet.classes.dir}"> - <include name="org/jmol/symmetry/**" /> - </fileset> - </jar> + <jar destfile="${jmol.applet.build.dir}/JmolApplet0_Symmetry.jar" manifest="manifest/applet.txt"> + <fileset dir="${applet.classes.dir}"> + <include name="org/jmol/symmetry/**" /> + </fileset> + </jar> - <!-- vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv --> <!-- changes to this must be replicated below for the signed applet --> <jar destfile="${jmol.applet.build.dir}/JmolApplet0.jar" index="true" > - <!-- javax/vecmath --> - <fileset dir="${appletjars.dir}" includes="**/*"/> - <fileset dir="${applet.classes.dir}"> - <include name="org/jmol/appletwrapper/*" /> - <include name="JmolApplet*.class" /> - <include name="jmol75x29x8.gif" /> - <include name="org/jmol/adapter/smarter/**" /> - <include name="org/jmol/api/**" /> - <include name="org/jmol/applet/**" /> - <include name="org/jmol/atomdata/**" /> - <include name="org/jmol/bspt/**" /> - <include name="org/jmol/g3d/**" /> - <include name="org/jmol/geodesic/**" /> - <include name="org/jmol/i18n/**" /> - <include name="org/jmol/modelset/**" /> - <include name="org/jmol/shape/**" /> - <include name="org/jmol/util/**" /> - <include name="org/jmol/viewer/**" /> + <!-- javax/vecmath --> + <fileset dir="${appletjars.dir}" includes="**/*"/> + <fileset dir="${applet.classes.dir}"> + <include name="org/jmol/appletwrapper/*" /> + <include name="JmolApplet*.class" /> + <include name="jmol75x29x8.gif" /> + <include name="org/jmol/adapter/smarter/**" /> + <include name="org/jmol/api/**" /> + <include name="org/jmol/applet/**" /> + <include name="org/jmol/atomdata/**" /> + <include name="org/jmol/bspt/**" /> + <include name="org/jmol/g3d/**" /> + <include name="org/jmol/geodesic/**" /> + <include name="org/jmol/i18n/**" /> + <include name="org/jmol/modelset/**" /> + <include name="org/jmol/shape/**" /> + <include name="org/jmol/util/**" /> + <include name="org/jmol/viewer/**" /> </fileset> <!-- changes to this must be replicated below for the signed applet --> @@ -628,7 +641,7 @@ <pathelement path="${jmol.applet.build.dir}/JmolApplet0_ShapeSurface.jar" /> <pathelement path="${jmol.applet.build.dir}/JmolApplet0_Smiles.jar" /> <pathelement path="${jmol.applet.build.dir}/JmolApplet0_Symmetry.jar" /> - <pathelement path="${jmol.applet.build.dir}/JmolApplet0_i18n.jar" /> + <fileset dir="${jmol.applet.build.dir}" includes="JmolApplet0_i18n_*.jar" /> </indexjars> </jar> <!-- changes to this must be replicated below for the signed applet --> @@ -712,12 +725,17 @@ signedjar="${jmol.applet.build.dir}/JmolAppletSigned0_Symmetry.jar" keystore="selfSignedCertificate/selfSignedCertificate.store" storepass="selfSignedCertificate" alias="selfSignedCertificate" /> - - <signjar jar="${jmol.applet.build.dir}/JmolApplet0_i18n.jar" - signedjar="${jmol.applet.build.dir}/JmolAppletSigned0_i18n.jar" - keystore="selfSignedCertificate/selfSignedCertificate.store" - storepass="selfSignedCertificate" alias="selfSignedCertificate" /> + <for list="${all.JmolApplet.languages}" delimiter="," + param="current.Jmol.language"> + <sequential> + <signjar jar="${jmol.applet.build.dir}/JmolApplet0_i18n_@{current.Jmol.language}.jar" + signedjar="${jmol.applet.build.dir}/JmolAppletSigned0_i18n_@{current.Jmol.language}.jar" + keystore="selfSignedCertificate/selfSignedCertificate.store" + storepass="selfSignedCertificate" alias="selfSignedCertificate" /> + </sequential> + </for> + <!-- vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv --> <!-- this one must be treated specially because of jar indexing we cannot simply rename the jar file, because the index has @@ -757,7 +775,7 @@ <pathelement path="${jmol.applet.build.dir}/JmolAppletSigned0_ShapeSurface.jar" /> <pathelement path="${jmol.applet.build.dir}/JmolAppletSigned0_Smiles.jar" /> <pathelement path="${jmol.applet.build.dir}/JmolAppletSigned0_Symmetry.jar" /> - <pathelement path="${jmol.applet.build.dir}/JmolAppletSigned0_i18n.jar" /> + <fileset dir="${jmol.applet.build.dir}" includes="JmolAppletSigned0_i18n_*.jar" /> </indexjars> </jar> <signjar jar="${jmol.applet.build.dir}/JmolAppletSigned0.jar" Modified: trunk/Jmol/src/org/jmol/i18n/GT.java =================================================================== --- trunk/Jmol/src/org/jmol/i18n/GT.java 2008-10-09 17:49:47 UTC (rev 10029) +++ trunk/Jmol/src/org/jmol/i18n/GT.java 2008-10-09 19:36:32 UTC (rev 10030) @@ -268,13 +268,13 @@ private void addBundles(String type, String la_co_va, String la_co, String la) { try { - String className = "org.jmol.translation." + type + ".Messages_"; + String className = "org.jmol.translation." + type + "."; if (la_co_va != null) - addBundle(className + la_co_va); + addBundle(className + la_co_va + ".Messages_" + la_co_va); if (la_co != null) - addBundle(className + la_co); + addBundle(className + la_co + ".Messages_" + la_co); if (la != null) - addBundle(className + la); + addBundle(className + la + ".Messages_" + la); } catch (Exception exception) { Logger.error("Some exception occurred!", exception); translationResources = null; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ni...@us...> - 2008-10-25 19:37:10
|
Revision: 10149 http://jmol.svn.sourceforge.net/jmol/?rev=10149&view=rev Author: nicove Date: 2008-10-25 19:37:04 +0000 (Sat, 25 Oct 2008) Log Message: ----------- Findbugs plugin Added Paths: ----------- trunk/Jmol/.fbprefs trunk/Jmol/tools/ trunk/Jmol/tools/FindbugsExclude.xml Added: trunk/Jmol/.fbprefs =================================================================== --- trunk/Jmol/.fbprefs (rev 0) +++ trunk/Jmol/.fbprefs 2008-10-25 19:37:04 UTC (rev 10149) @@ -0,0 +1,157 @@ +#FindBugs User Preferences +#Sat Oct 25 20:57:40 CEST 2008 +detectorAppendingToAnObjectOutputStream=AppendingToAnObjectOutputStream|true +detectorBCPMethodReturnCheck=BCPMethodReturnCheck|false +detectorBadAppletConstructor=BadAppletConstructor|false +detectorBadResultSetAccess=BadResultSetAccess|true +detectorBadSyntaxForRegularExpression=BadSyntaxForRegularExpression|true +detectorBadUseOfReturnValue=BadUseOfReturnValue|true +detectorBadlyOverriddenAdapter=BadlyOverriddenAdapter|true +detectorBooleanReturnNull=BooleanReturnNull|true +detectorBuildInterproceduralCallGraph=BuildInterproceduralCallGraph|false +detectorBuildObligationPolicyDatabase=BuildObligationPolicyDatabase|true +detectorCallToUnsupportedMethod=CallToUnsupportedMethod|true +detectorCalledMethods=CalledMethods|true +detectorCheckCalls=CheckCalls|false +detectorCheckExpectedWarnings=CheckExpectedWarnings|false +detectorCheckImmutableAnnotation=CheckImmutableAnnotation|true +detectorCheckTypeQualifiers=CheckTypeQualifiers|true +detectorCloneIdiom=CloneIdiom|true +detectorComparatorIdiom=ComparatorIdiom|true +detectorConfusedInheritance=ConfusedInheritance|true +detectorConfusionBetweenInheritedAndOuterMethod=ConfusionBetweenInheritedAndOuterMethod|true +detectorCrossSiteScripting=CrossSiteScripting|true +detectorDoInsideDoPrivileged=DoInsideDoPrivileged|true +detectorDontCatchIllegalMonitorStateException=DontCatchIllegalMonitorStateException|true +detectorDontUseEnum=DontUseEnum|true +detectorDroppedException=DroppedException|true +detectorDumbMethodInvocations=DumbMethodInvocations|true +detectorDumbMethods=DumbMethods|true +detectorDuplicateBranches=DuplicateBranches|true +detectorEmptyZipFileEntry=EmptyZipFileEntry|true +detectorEqStringTest=EqStringTest|false +detectorEqualsOperandShouldHaveClassCompatibleWithThis=EqualsOperandShouldHaveClassCompatibleWithThis|true +detectorFieldItemSummary=FieldItemSummary|true +detectorFinalizerNullsFields=FinalizerNullsFields|true +detectorFindBadCast=FindBadCast|false +detectorFindBadCast2=FindBadCast2|true +detectorFindBadEqualsImplementation=FindBadEqualsImplementation|false +detectorFindBadForLoop=FindBadForLoop|true +detectorFindBugsSummaryStats=FindBugsSummaryStats|true +detectorFindCircularDependencies=FindCircularDependencies|false +detectorFindDeadLocalStores=FindDeadLocalStores|true +detectorFindDoubleCheck=FindDoubleCheck|true +detectorFindEmptySynchronizedBlock=FindEmptySynchronizedBlock|true +detectorFindFieldSelfAssignment=FindFieldSelfAssignment|true +detectorFindFinalizeInvocations=FindFinalizeInvocations|true +detectorFindFloatEquality=FindFloatEquality|true +detectorFindFloatMath=FindFloatMath|false +detectorFindHEmismatch=FindHEmismatch|true +detectorFindInconsistentSync2=FindInconsistentSync2|true +detectorFindJSR166LockMonitorenter=FindJSR166LockMonitorenter|true +detectorFindLocalSelfAssignment2=FindLocalSelfAssignment2|true +detectorFindMaskedFields=FindMaskedFields|true +detectorFindMismatchedWaitOrNotify=FindMismatchedWaitOrNotify|true +detectorFindNakedNotify=FindNakedNotify|true +detectorFindNonSerializableStoreIntoSession=FindNonSerializableStoreIntoSession|true +detectorFindNonSerializableValuePassedToWriteObject=FindNonSerializableValuePassedToWriteObject|true +detectorFindNonShortCircuit=FindNonShortCircuit|true +detectorFindNullDeref=FindNullDeref|true +detectorFindNullDerefsInvolvingNonShortCircuitEvaluation=FindNullDerefsInvolvingNonShortCircuitEvaluation|true +detectorFindOpenStream=FindOpenStream|true +detectorFindPuzzlers=FindPuzzlers|true +detectorFindRefComparison=FindRefComparison|true +detectorFindReturnRef=FindReturnRef|true +detectorFindRunInvocations=FindRunInvocations|true +detectorFindSelfComparison=FindSelfComparison|true +detectorFindSelfComparison2=FindSelfComparison2|true +detectorFindSleepWithLockHeld=FindSleepWithLockHeld|true +detectorFindSpinLoop=FindSpinLoop|true +detectorFindSqlInjection=FindSqlInjection|true +detectorFindTwoLockWait=FindTwoLockWait|true +detectorFindUncalledPrivateMethods=FindUncalledPrivateMethods|true +detectorFindUnconditionalWait=FindUnconditionalWait|true +detectorFindUninitializedGet=FindUninitializedGet|true +detectorFindUnrelatedTypesInGenericContainer=FindUnrelatedTypesInGenericContainer|true +detectorFindUnreleasedLock=FindUnreleasedLock|true +detectorFindUnsatisfiedObligation=FindUnsatisfiedObligation|true +detectorFindUnsyncGet=FindUnsyncGet|true +detectorFindUselessControlFlow=FindUselessControlFlow|true +detectorFormatStringChecker=FormatStringChecker|true +detectorHugeSharedStringConstants=HugeSharedStringConstants|true +detectorIDivResultCastToDouble=IDivResultCastToDouble|true +detectorIncompatMask=IncompatMask|true +detectorInconsistentAnnotations=InconsistentAnnotations|true +detectorInefficientMemberAccess=InefficientMemberAccess|false +detectorInefficientToArray=InefficientToArray|true +detectorInfiniteLoop=InfiniteLoop|true +detectorInfiniteRecursiveLoop=InfiniteRecursiveLoop|true +detectorInfiniteRecursiveLoop2=InfiniteRecursiveLoop2|false +detectorInheritanceUnsafeGetResource=InheritanceUnsafeGetResource|true +detectorInitializationChain=InitializationChain|true +detectorInstantiateStaticClass=InstantiateStaticClass|true +detectorInvalidJUnitTest=InvalidJUnitTest|true +detectorIteratorIdioms=IteratorIdioms|true +detectorLazyInit=LazyInit|true +detectorLoadOfKnownNullValue=LoadOfKnownNullValue|true +detectorLockedFields=LockedFields|false +detectorMethodReturnCheck=MethodReturnCheck|true +detectorMethods=Methods|true +detectorMultithreadedInstanceAccess=MultithreadedInstanceAccess|true +detectorMutableLock=MutableLock|true +detectorMutableStaticFields=MutableStaticFields|true +detectorNaming=Naming|true +detectorNoteAnnotationRetention=NoteAnnotationRetention|true +detectorNoteCheckReturnValue=NoteCheckReturnValue|true +detectorNoteCheckReturnValueAnnotations=NoteCheckReturnValueAnnotations|true +detectorNoteDirectlyRelevantTypeQualifiers=NoteDirectlyRelevantTypeQualifiers|true +detectorNoteJCIPAnnotation=NoteJCIPAnnotation|true +detectorNoteNonNullAnnotations=NoteNonNullAnnotations|true +detectorNoteNonnullReturnValues=NoteNonnullReturnValues|true +detectorNoteSuppressedWarnings=NoteSuppressedWarnings|true +detectorNoteUnconditionalParamDerefs=NoteUnconditionalParamDerefs|true +detectorNumberConstructor=NumberConstructor|true +detectorOverridingEqualsNotSymmetrical=OverridingEqualsNotSymmetrical|true +detectorPreferZeroLengthArrays=PreferZeroLengthArrays|true +detectorPublicSemaphores=PublicSemaphores|false +detectorQuestionableBooleanAssignment=QuestionableBooleanAssignment|true +detectorReadReturnShouldBeChecked=ReadReturnShouldBeChecked|true +detectorRedundantInterfaces=RedundantInterfaces|true +detectorReflectiveClasses=ReflectiveClasses|true +detectorRepeatedConditionals=RepeatedConditionals|true +detectorResolveAllReferences=ResolveAllReferences|false +detectorRuntimeExceptionCapture=RuntimeExceptionCapture|true +detectorSerializableIdiom=SerializableIdiom|true +detectorStartInConstructor=StartInConstructor|true +detectorStaticCalendarDetector=StaticCalendarDetector|true +detectorStringConcatenation=StringConcatenation|true +detectorSuperfluousInstanceOf=SuperfluousInstanceOf|true +detectorSuspiciousThreadInterrupted=SuspiciousThreadInterrupted|true +detectorSwitchFallthrough=SwitchFallthrough|true +detectorSynchronizationOnSharedBuiltinConstant=SynchronizationOnSharedBuiltinConstant|true +detectorSynchronizeAndNullCheckField=SynchronizeAndNullCheckField|true +detectorSynchronizeOnClassLiteralNotGetClass=SynchronizeOnClassLiteralNotGetClass|true +detectorSynchronizingOnContentsOfFieldToProtectField=SynchronizingOnContentsOfFieldToProtectField|true +detectorTestASM=TestASM|false +detectorTestDataflowAnalysis=TestDataflowAnalysis|false +detectorTestingGround=TestingGround|false +detectorTrainFieldStoreTypes=TrainFieldStoreTypes|true +detectorTrainNonNullAnnotations=TrainNonNullAnnotations|true +detectorTrainUnconditionalDerefParams=TrainUnconditionalDerefParams|true +detectorURLProblems=URLProblems|true +detectorUncallableMethodOfAnonymousClass=UncallableMethodOfAnonymousClass|true +detectorUnnecessaryMath=UnnecessaryMath|true +detectorUnreadFields=UnreadFields|true +detectorUseObjectEquals=UseObjectEquals|false +detectorUselessSubclassMethod=UselessSubclassMethod|false +detectorVarArgsProblems=VarArgsProblems|true +detectorVolatileUsage=VolatileUsage|true +detectorWaitInLoop=WaitInLoop|true +detectorWrongMapIterator=WrongMapIterator|true +detectorXMLFactoryBypass=XMLFactoryBypass|true +detector_threshold=2 +effort=default +excludefilter0=tools/FindbugsExclude.xml +filter_settings=Medium|BAD_PRACTICE,CORRECTNESS,EXPERIMENTAL,I18N,MALICIOUS_CODE,MT_CORRECTNESS,PERFORMANCE,SECURITY,STYLE|false +filter_settings_neg=| +run_at_full_build=true Added: trunk/Jmol/tools/FindbugsExclude.xml =================================================================== --- trunk/Jmol/tools/FindbugsExclude.xml (rev 0) +++ trunk/Jmol/tools/FindbugsExclude.xml 2008-10-25 19:37:04 UTC (rev 10149) @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="UTF-8"?> +<FindBugsFilter> + <!-- Exclude Jmol code --> + <Match> + <Package name="~org\.jmol.*"/> + <Or> + <Bug pattern="DM_EXIT"/> + <Bug pattern="DM_GC"/> + <Bug pattern="EI_EXPOSE_REP"/> + <Bug pattern="EI_EXPOSE_REP2"/> + <Bug pattern="EI_EXPOSE_STATIC_REP2"/> + <Bug pattern="ES_COMPARING_PARAMETER_STRING_WITH_EQ"/> + <Bug pattern="ES_COMPARING_STRINGS_WITH_EQ"/> + <Bug pattern="IS2_INCONSISTENT_SYNC"/> + <Bug pattern="MS_EXPOSE_REP"/> + <Bug pattern="MS_MUTABLE_ARRAY"/> + <Bug pattern="SE_BAD_FIELD_STORE"/> + <Bug pattern="SE_COMPARATOR_SHOULD_BE_SERIALIZABLE"/> + <Bug pattern="SF_SWITCH_FALLTHROUGH"/> + </Or> + </Match> + <Match> + <Package name="~org\.openscience\.jmol\.app.*"/> + <Or> + <Bug pattern="DM_EXIT"/> + <Bug pattern="DM_GC"/> + <Bug pattern="IS2_INCONSISTENT_SYNC"/> + <Bug pattern="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE"/> + </Or> + </Match> + + <!-- Exclude libraries --> + <Match> + <Package name="~com\.obrador.*"/> + </Match> + + <!-- Exclude tests --> + <Match> + <Class name="org.jmol.adapter.smarter.TestSmarterJmolAdapter"/> + </Match> +</FindBugsFilter> \ No newline at end of file Property changes on: trunk/Jmol/tools/FindbugsExclude.xml ___________________________________________________________________ Added: svn:mime-type + text/plain This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2008-11-09 22:05:31
|
Revision: 10279 http://jmol.svn.sourceforge.net/jmol/?rev=10279&view=rev Author: hansonr Date: 2008-11-09 22:05:27 +0000 (Sun, 09 Nov 2008) Log Message: ----------- 11.7.11 VERSION # bug fix: UFF.txt not included in build # new feature: user-definable atom selector for extended select: # # select {*.ca} (myfunc < 3.0) # # new feature: user-definable atom selector functions. # _x is used for the selected atom (not _atom) as for # select {atomExpression} (property expression) # # function myFunc() # return _x.x + _x.y + _x.z # end function # # print {*}.myFunc # print {*}.myFunc.min # print {*}.myFunc.max # print {*}.myFunc.all # # parenthetical parameters are allowed provided .min, .max, .all are not used # Modified Paths: -------------- trunk/Jmol/build.xml trunk/Jmol/src/org/jmol/viewer/Jmol.properties Modified: trunk/Jmol/build.xml =================================================================== --- trunk/Jmol/build.xml 2008-11-09 22:04:46 UTC (rev 10278) +++ trunk/Jmol/build.xml 2008-11-09 22:05:27 UTC (rev 10279) @@ -205,7 +205,6 @@ <include name="**/*.jpg" /> <include name="**/*.gif" /> <include name="**/*.png" /> - <include name="**/*.prm" /> <include name="**/*.html" /> <include name="**/*.js" /> <include name="**/*.dtd" /> @@ -251,7 +250,7 @@ <copy todir="${applet.classes.dir}" > <fileset dir="src"> - <include name="org/jmol/minimize/forcefield/*.prm" /> + <include name="org/jmol/minimize/forcefield/*.txt" /> <include name="jmol75x29x8.gif" /> </fileset> </copy> Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2008-11-09 22:04:46 UTC (rev 10278) +++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2008-11-09 22:05:27 UTC (rev 10279) @@ -1,8 +1,9 @@ # Developers: to add a description of changes you have made, # add it on a line starting with # below the "version=..." line -version=11.7.11_dev +version=11.7.11 +# bug fix: UFF.txt not included in build # new feature: user-definable atom selector for extended select: # # select {*.ca} (myfunc < 3.0) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2008-11-18 03:49:53
|
Revision: 10336 http://jmol.svn.sourceforge.net/jmol/?rev=10336&view=rev Author: hansonr Date: 2008-11-18 03:49:43 +0000 (Tue, 18 Nov 2008) Log Message: ----------- version=11.7.13_dev # code: better allocateViewer method Modified Paths: -------------- trunk/Jmol/src/org/jmol/api/JmolSimpleViewer.java trunk/Jmol/src/org/jmol/api/JmolViewer.java trunk/Jmol/src/org/jmol/applet/Jmol.java trunk/Jmol/src/org/jmol/export/dialog/FilePreview.java trunk/Jmol/src/org/jmol/jvxl/readers/EfvetReader.java trunk/Jmol/src/org/jmol/modelset/ModelSet.java trunk/Jmol/src/org/jmol/viewer/Jmol.properties trunk/Jmol/src/org/jmol/viewer/Viewer.java trunk/Jmol/src/org/openscience/jmol/app/Jmol.java trunk/Jmol/test/org/jmol/api/TestScripts.java Modified: trunk/Jmol/src/org/jmol/api/JmolSimpleViewer.java =================================================================== --- trunk/Jmol/src/org/jmol/api/JmolSimpleViewer.java 2008-11-16 12:28:10 UTC (rev 10335) +++ trunk/Jmol/src/org/jmol/api/JmolSimpleViewer.java 2008-11-18 03:49:43 UTC (rev 10336) @@ -38,24 +38,16 @@ /** * This is the main access point for creating an application - * or applet viewer. After allocation it is MANDATORY that one of - * the next commands is either - * - * viewer.evalString("ZAP"); + * or applet viewer. * - * This command is necessary to establish the - * first modelset, which might be required by one or more - * later evaluated commands or file loadings. - * * @param awtComponent * @param jmolAdapter * @return a JmolViewer object */ static public JmolSimpleViewer allocateSimpleViewer(Component awtComponent, JmolAdapter jmolAdapter) { - JmolViewer viewer = Viewer.allocateViewer(awtComponent, jmolAdapter); - viewer.setAppletContext("", null, null, ""); - return viewer; + return Viewer.allocateViewer(awtComponent, jmolAdapter, + null, null, null, null, null); } abstract public void renderScreenImage(Graphics g, Dimension size, Modified: trunk/Jmol/src/org/jmol/api/JmolViewer.java =================================================================== --- trunk/Jmol/src/org/jmol/api/JmolViewer.java 2008-11-16 12:28:10 UTC (rev 10335) +++ trunk/Jmol/src/org/jmol/api/JmolViewer.java 2008-11-18 03:49:43 UTC (rev 10336) @@ -35,7 +35,6 @@ import java.io.Reader; import javax.vecmath.Matrix4f; import javax.vecmath.Point3f; - import org.jmol.viewer.Viewer; /** @@ -66,14 +65,36 @@ * * @param awtComponent * @param jmolAdapter + * @param htmlName + * @param documentBase + * @param codeBase + * @param commandOptions + * @param statusListener * @return a JmolViewer object */ static public JmolViewer allocateViewer(Component awtComponent, - JmolAdapter jmolAdapter) { + JmolAdapter jmolAdapter, + String htmlName, URL documentBase, + URL codeBase, + String commandOptions, + JmolStatusListener statusListener) { - return Viewer.allocateViewer(awtComponent, jmolAdapter); + return Viewer.allocateViewer(awtComponent, jmolAdapter, + htmlName, documentBase, codeBase, commandOptions, statusListener); } + /** + * OK, but safer to assign htmlName, URL bases, comandOptions, and statusListener now. + * + * @deprecated + * @param awtComponent + * @param jmolAdapter + * @return a viewer + */ + public static JmolViewer allocateViewer(Component awtComponent, JmolAdapter jmolAdapter) { + return Viewer.allocateViewer(awtComponent, jmolAdapter, null, null, null, null, null); + } + static public String getJmolVersion() { return Viewer.getJmolVersion(); } @@ -91,7 +112,7 @@ abstract public void setJmolStatusListener(JmolStatusListener jmolStatusListener); abstract public void setAppletContext(String htmlName, URL documentBase, URL codeBase, - String commandOptions); + String commandOptions); abstract public boolean checkHalt(String strCommand); abstract public void haltScriptExecution(); @@ -330,8 +351,6 @@ abstract public void rotateX(float radians); abstract public void rotateY(float radians); abstract public void rotateZ(float radians); - - } Modified: trunk/Jmol/src/org/jmol/applet/Jmol.java =================================================================== --- trunk/Jmol/src/org/jmol/applet/Jmol.java 2008-11-16 12:28:10 UTC (rev 10335) +++ trunk/Jmol/src/org/jmol/applet/Jmol.java 2008-11-18 03:49:43 UTC (rev 10336) @@ -150,7 +150,6 @@ AppletWrapper appletWrapper; private JmolViewer viewer; - private MyStatusListener myStatusListener; private final static boolean REQUIRE_PROGRESSBAR = true; private boolean jvm12orGreater; @@ -241,10 +240,6 @@ public void initWindows() { - // to enable CDK - // viewer = new JmolViewer(this, new CdkJmolAdapter(null)); - viewer = JmolViewer.allocateViewer(appletWrapper, - modelAdapter = new SmarterJmolAdapter()); String options = "-applet"; isSigned = getBooleanValue("signed", false) || appletWrapper.isSigned(); if (isSigned) @@ -254,16 +249,13 @@ String s = getValue("MaximumSize", null); if (s != null) options += "-maximumSize " + s; - { - // note, -appletProxy must be the LAST item added - s = getValue("JmolAppletProxy", null); - if (s != null) - options += "-appletProxy " + s; - viewer.setAppletContext(fullName, appletWrapper.getDocumentBase(), - appletWrapper.getCodeBase(), options); - } - myStatusListener = new MyStatusListener(); - viewer.setJmolStatusListener(myStatusListener); + // note, -appletProxy must be the LAST item added + s = getValue("JmolAppletProxy", null); + if (s != null) + options += "-appletProxy " + s; + viewer = JmolViewer.allocateViewer(appletWrapper, + modelAdapter = new SmarterJmolAdapter(), fullName, appletWrapper.getDocumentBase(), + appletWrapper.getCodeBase(), options, new MyStatusListener()); String menuFile = getParameter("menuFile"); if (menuFile != null) menuStructure = viewer.getFileAsString(menuFile); Modified: trunk/Jmol/src/org/jmol/export/dialog/FilePreview.java =================================================================== --- trunk/Jmol/src/org/jmol/export/dialog/FilePreview.java 2008-11-16 12:28:10 UTC (rev 10335) +++ trunk/Jmol/src/org/jmol/export/dialog/FilePreview.java 2008-11-18 03:49:43 UTC (rev 10336) @@ -152,8 +152,8 @@ JmolViewer viewer; JmolPanel(JmolAdapter modelAdapter, String appletContext) { - viewer = JmolViewer.allocateViewer(this, modelAdapter); - viewer.setAppletContext("", null, null, "#previewOnly " + appletContext); + viewer = JmolViewer.allocateViewer(this, modelAdapter, + "", null, null, "#previewOnly " + appletContext, null); } public JmolViewer getViewer() { Modified: trunk/Jmol/src/org/jmol/jvxl/readers/EfvetReader.java =================================================================== --- trunk/Jmol/src/org/jmol/jvxl/readers/EfvetReader.java 2008-11-16 12:28:10 UTC (rev 10335) +++ trunk/Jmol/src/org/jmol/jvxl/readers/EfvetReader.java 2008-11-18 03:49:43 UTC (rev 10336) @@ -31,6 +31,7 @@ /* * A simple EFVET file reader -- vertices and triangles only + * http://ef-site.hgc.jp/eF-site/about.html * */ class EfvetReader extends PolygonFileReader { Modified: trunk/Jmol/src/org/jmol/modelset/ModelSet.java =================================================================== --- trunk/Jmol/src/org/jmol/modelset/ModelSet.java 2008-11-16 12:28:10 UTC (rev 10335) +++ trunk/Jmol/src/org/jmol/modelset/ModelSet.java 2008-11-18 03:49:43 UTC (rev 10336) @@ -1,4 +1,4 @@ -/* $RCSfile$ + /* $RCSfile$ * $Author$ * $Date$ * $Revision$ Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2008-11-16 12:28:10 UTC (rev 10335) +++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2008-11-18 03:49:43 UTC (rev 10336) @@ -3,6 +3,8 @@ version=11.7.13_dev +# code: better allocateViewer method +# # ----------------------------------------------------------------------------- #version=11.7.12 Modified: trunk/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Viewer.java 2008-11-16 12:28:10 UTC (rev 10335) +++ trunk/Jmol/src/org/jmol/viewer/Viewer.java 2008-11-18 03:49:43 UTC (rev 10336) @@ -217,24 +217,38 @@ * in order to remove references to display window in listeners and hoverWatcher * * This is the main access point for creating an application - * or applet viewer. After allocation it is MANDATORY that one of - * the next commands is either - * - * viewer.evalString("ZAP"); + * or applet viewer. * - * or at least: - * - * viewer.setAppletContext("",null,null,"") - * - * One or the other of these is necessary to establish the - * first modelset, which might be required by one or more - * later evaluated commands or file loadings. - * - * @param display either DisplayPanel or WrappedApplet - * @param modelAdapter the model reader + * @param display either DisplayPanel or WrappedApplet + * @param modelAdapter the model reader + * @param fullName or null + * @param documentBase or null + * @param codeBase or null + * @param commandOptions or null + * @param statusListener or null * @return a viewer instance */ + public static JmolViewer allocateViewer(Component display, + JmolAdapter modelAdapter, + String fullName, URL documentBase, + URL codeBase, String commandOptions, + JmolStatusListener statusListener) { + JmolViewer viewer = new Viewer(display, modelAdapter); + viewer.setAppletContext(fullName, documentBase, codeBase, commandOptions); + viewer.setJmolStatusListener(statusListener); + return viewer; + } + + /** + * deprecated because setAppletContext needs to be invoked as well. + * + * @deprecated + * @param display + * @param modelAdapter + * @return a viewer instance + */ + public static JmolViewer allocateViewer(Component display, JmolAdapter modelAdapter) { return new Viewer(display, modelAdapter); } Modified: trunk/Jmol/src/org/openscience/jmol/app/Jmol.java =================================================================== --- trunk/Jmol/src/org/openscience/jmol/app/Jmol.java 2008-11-16 12:28:10 UTC (rev 10335) +++ trunk/Jmol/src/org/openscience/jmol/app/Jmol.java 2008-11-18 03:49:43 UTC (rev 10336) @@ -195,10 +195,9 @@ report("unrecognized model adapter:" + adapter + " -- using Smarter"); modelAdapter = new SmarterJmolAdapter(); } - appletContext = commandOptions; - viewer = JmolViewer.allocateViewer(display, modelAdapter); - viewer.setAppletContext("", null, null, commandOptions); - + viewer = JmolViewer.allocateViewer(display, modelAdapter, + null, null, null, appletContext = commandOptions, + new MyStatusListener()); if (display != null) display.setViewer(viewer); @@ -211,10 +210,6 @@ scriptWindow = new ScriptWindow(viewer, frame); } - MyStatusListener myStatusListener; - myStatusListener = new MyStatusListener(); - viewer.setJmolStatusListener(myStatusListener); - say(GT._("Initializing Measurements...")); measurementTable = new MeasurementTable(viewer, frame); Modified: trunk/Jmol/test/org/jmol/api/TestScripts.java =================================================================== --- trunk/Jmol/test/org/jmol/api/TestScripts.java 2008-11-16 12:28:10 UTC (rev 10335) +++ trunk/Jmol/test/org/jmol/api/TestScripts.java 2008-11-18 03:49:43 UTC (rev 10336) @@ -268,13 +268,10 @@ public void runSimpleTest() { JUnitLogger.setInformation(file.getPath()); - SmarterJmolAdapter adapter = new SmarterJmolAdapter(); - JmolViewer viewer = JmolViewer.allocateViewer(null, adapter); - if (checkOnly) { - viewer.setAppletContext("", null, null, "-n -c "); // set no display; checkOnly; no file opening - } else { - viewer.setAppletContext("", null, null, "-n -l "); // set no display; list commmands as they execute - } + JmolViewer viewer = JmolViewer.allocateViewer(null, new SmarterJmolAdapter(), + null, null, null, checkOnly ? "-n -c " : "-n -l ", null); + //"-n -c " // set no display; checkOnly; no file opening + //"-n -l " // set no display; list commmands as they execute String s = viewer.evalFile(file.getPath() + " -noqueue"); assertNull("Error in script [" + file.getPath() + ":\n" + s, s); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ni...@us...> - 2008-11-23 20:41:10
|
Revision: 10359 http://jmol.svn.sourceforge.net/jmol/?rev=10359&view=rev Author: nicove Date: 2008-11-23 20:41:05 +0000 (Sun, 23 Nov 2008) Log Message: ----------- Translation: Polish (pl) Modified Paths: -------------- trunk/Jmol/build-i18n.xml Added Paths: ----------- trunk/Jmol/src/org/jmol/translation/JmolApplet/JmolApplet-pl.po Modified: trunk/Jmol/build-i18n.xml =================================================================== --- trunk/Jmol/build-i18n.xml 2008-11-23 20:40:28 UTC (rev 10358) +++ trunk/Jmol/build-i18n.xml 2008-11-23 20:41:05 UTC (rev 10359) @@ -18,7 +18,7 @@ <property name="classes.dir" value="build/classes" /> <property name="JmolApplet.classes.dir" value="build/classes/org/jmol/translation/JmolApplet" /> <property name="all.Jmol.languages" value="ca,cs,da,de,el,en_GB,es,et,fr,hu,it,ko,nl,pl,pt,pt_BR,ru,sv,tr" /> - <property name="all.JmolApplet.languages" value="ca,cs,da,de,en_GB,es,et,fr,hu,it,ko,nb,nl,pt,pt_BR,sl,sv,tr" /> + <property name="all.JmolApplet.languages" value="ca,cs,da,de,en_GB,es,et,fr,hu,it,ko,nb,nl,pl,pt,pt_BR,sl,sv,tr" /> <!-- NOTE: gettext.path can be used if gettext tools are not in the path Added: trunk/Jmol/src/org/jmol/translation/JmolApplet/JmolApplet-pl.po =================================================================== --- trunk/Jmol/src/org/jmol/translation/JmolApplet/JmolApplet-pl.po (rev 0) +++ trunk/Jmol/src/org/jmol/translation/JmolApplet/JmolApplet-pl.po 2008-11-23 20:41:05 UTC (rev 10359) @@ -0,0 +1,1854 @@ +# Polish translation for jmol +# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 +# This file is distributed under the same license as the jmol package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: jmol\n" +"Report-Msgid-Bugs-To: jmo...@li...\n" +"POT-Creation-Date: 2008-11-20 07:25+0100\n" +"PO-Revision-Date: 2008-11-21 13:37+0000\n" +"Last-Translator: Andrzej MoST (Marcin Ostajewski) <Unknown>\n" +"Language-Team: Polish <pl...@li...>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2008-11-23 20:24+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#: org/jmol/applet/Console.java:40 +msgid "Jmol Script Console" +msgstr "Konsola skryptów Jmol" + +#: org/jmol/applet/Console.java:42 +msgid "Execute" +msgstr "Wykonaj" + +#: org/jmol/applet/Console.java:43 +msgid "Clear Output" +msgstr "Wyczyść wyniki" + +#: org/jmol/applet/Console.java:44 +msgid "Clear Input" +msgstr "Wyczyść dane wejściowe" + +#: org/jmol/applet/Console.java:45 org/jmol/popup/PopupResourceBundle.java:862 +msgid "History" +msgstr "Historia" + +#: org/jmol/applet/Console.java:46 +msgid "State" +msgstr "Stan" + +#: org/jmol/applet/Console.java:47 org/jmol/popup/PopupResourceBundle.java:872 +msgid "Load" +msgstr "Załaduj" + +#: org/jmol/applet/Console.java:111 +msgid "press CTRL-ENTER for new line or paste model data and press Load" +msgstr "" +"naciśnij CTRL-ENTER żeby rozpocząć nową linię lub wklej dane modelu i " +"wciśnij przycisk Załaduj" + +#: org/jmol/applet/GuiMap.java:41 +msgid "&Help" +msgstr "Pomoc" + +#: org/jmol/applet/GuiMap.java:42 +msgid "&Search..." +msgstr "Wy&szukaj..." + +#: org/jmol/applet/GuiMap.java:43 +msgid "&Commands" +msgstr "Pole&cenia" + +#: org/jmol/applet/GuiMap.java:44 +msgid "Math &Functions" +msgstr "&Funkcje matematyczne" + +#: org/jmol/applet/GuiMap.java:45 +msgid "Set &Parameters" +msgstr "Ustaw ¶metry" + +#: org/jmol/applet/GuiMap.java:46 +msgid "&More" +msgstr "Więcej" + +#: org/jmol/applet/Jmol.java:654 +#, java-format +msgid "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" +msgstr "" +"Aplet Jmol wersja {0} {1}.\n" +"\n" +"Projek OpenScience.\n" +"\n" +"Więcej informacji na http://www.jmol.org" + +#: org/jmol/applet/Jmol.java:877 +msgid "File Error:" +msgstr "Błąd pliku:" + +#: org/jmol/applet/Jmol.java:1064 +msgid "File creation failed." +msgstr "Tworzenie pliku zakończone niepowodzeniem." + +#: org/jmol/applet/Jmol.java:1069 +#, java-format +msgid "" +"File creation by this applet is not allowed. For Base64 JPEG format, use {0}." +msgstr "" +"Tworzenie pliku przez ten aplet jest niedozwolone. Aby tworzyć pliki formatu " +"JPEG Base64, użyj {0}" + +#: org/jmol/applet/Jmol.java:1171 +msgid "" +"Messages will appear here. Enter commands in the box below. Click the " +"console Help menu item for on-line help, which will appear in a new browser " +"window." +msgstr "" +"Tutaj będą wyświetlane informacje. Komendy należy wpisywać w polu poniżej. " +"Kliknij element Pomocy w konsoli aby uzyskać pomoc online (zostanie otwarte " +"okno przeglądarki)" + +#: org/jmol/appletwrapper/AppletWrapper.java:92 +msgid "Loading Jmol applet ..." +msgstr "Ładowanie apletu Jmol" + +#: org/jmol/appletwrapper/AppletWrapper.java:166 +#, java-format +msgid " {0} seconds" +msgstr " {0} sekund" + +#: org/jmol/export/dialog/Dialog.java:90 +msgid "File or URL:" +msgstr "Plik lub adres URL:" + +#: org/jmol/export/dialog/Dialog.java:255 +msgid "Image Type" +msgstr "Typ obrazu" + +#: org/jmol/export/dialog/Dialog.java:270 +#: org/jmol/export/dialog/Dialog.java:311 +#, java-format +msgid "JPEG Quality ({0})" +msgstr "Jakość JPEG ({0})" + +#: org/jmol/export/dialog/Dialog.java:284 +#, java-format +msgid "PNG Compression ({0})" +msgstr "Kompresja PNG ({0})" + +#: org/jmol/export/dialog/Dialog.java:314 +#, java-format +msgid "PNG Quality ({0})" +msgstr "Jakość PNG ({0})" + +#: org/jmol/export/dialog/Dialog.java:360 +#: org/jmol/export/dialog/Dialog.java:470 +msgid "Yes" +msgstr "Tak" + +#: org/jmol/export/dialog/Dialog.java:360 +#: org/jmol/export/dialog/Dialog.java:468 +msgid "No" +msgstr "Nie" + +#: org/jmol/export/dialog/Dialog.java:362 +#, java-format +msgid "Do you want to overwrite file {0}?" +msgstr "Czy chcesz nadpisać plik {0}?" + +#: org/jmol/export/dialog/Dialog.java:363 +msgid "Warning" +msgstr "Ostrzeżenie" + +#: org/jmol/export/dialog/Dialog.java:419 +msgid "All Files" +msgstr "Wszystkie pliki" + +#: org/jmol/export/dialog/Dialog.java:420 +#: org/jmol/export/dialog/Dialog.java:467 +msgid "Cancel" +msgstr "Anuluj" + +#: org/jmol/export/dialog/Dialog.java:422 +msgid "Abort file chooser dialog" +msgstr "Zamknij okno wyboru pliku" + +#: org/jmol/export/dialog/Dialog.java:424 +#: org/jmol/export/dialog/Dialog.java:425 +msgid "Details" +msgstr "Szczegóły" + +#: org/jmol/export/dialog/Dialog.java:426 +msgid "Directory" +msgstr "Folder" + +#: org/jmol/export/dialog/Dialog.java:427 +#: org/jmol/export/dialog/Dialog.java:451 +#: org/jmol/export/dialog/Dialog.java:454 +msgid "Open" +msgstr "Otwórz" + +#: org/jmol/export/dialog/Dialog.java:429 +msgid "Open selected directory" +msgstr "Otwórz wybrany folder" + +#: org/jmol/export/dialog/Dialog.java:430 +msgid "Attributes" +msgstr "Atrybuty" + +#: org/jmol/export/dialog/Dialog.java:431 +msgid "Modified" +msgstr "Zmodyfikowany" + +#: org/jmol/export/dialog/Dialog.java:432 +msgid "Generic File" +msgstr "Plik ogólny" + +#: org/jmol/export/dialog/Dialog.java:433 +msgid "Name" +msgstr "Nazwa" + +#: org/jmol/export/dialog/Dialog.java:434 +msgid "File Name:" +msgstr "Nazwa pliku" + +#: org/jmol/export/dialog/Dialog.java:435 +msgid "Size" +msgstr "Rozmiar" + +#: org/jmol/export/dialog/Dialog.java:436 +msgid "Files of Type:" +msgstr "Pliki typu:" + +#: org/jmol/export/dialog/Dialog.java:437 +msgid "Type" +msgstr "Typ" + +#: org/jmol/export/dialog/Dialog.java:438 +msgid "Help" +msgstr "Pomoc" + +#: org/jmol/export/dialog/Dialog.java:440 +msgid "FileChooser help" +msgstr "Pomoc okna wyboru plików" + +#: org/jmol/export/dialog/Dialog.java:441 +#: org/jmol/export/dialog/Dialog.java:442 +msgid "Home" +msgstr "Katalog domowy" + +#: org/jmol/export/dialog/Dialog.java:443 +#: org/jmol/export/dialog/Dialog.java:444 +msgid "List" +msgstr "Lista" + +#: org/jmol/export/dialog/Dialog.java:445 +msgid "Look In:" +msgstr "Zobacz w:" + +#: org/jmol/export/dialog/Dialog.java:447 +msgid "Error creating new folder" +msgstr "Błąd podczas tworzenia nowgo folderu" + +#: org/jmol/export/dialog/Dialog.java:448 +msgid "New Folder" +msgstr "Nowy Folder" + +#: org/jmol/export/dialog/Dialog.java:450 +msgid "Create New Folder" +msgstr "Utwórz nowy folder" + +#: org/jmol/export/dialog/Dialog.java:453 +msgid "Open selected file" +msgstr "Otwórz wybrany plik" + +#: org/jmol/export/dialog/Dialog.java:455 +#: org/jmol/export/dialog/Dialog.java:458 +#: org/jmol/popup/PopupResourceBundle.java:878 +msgid "Save" +msgstr "Zapisz" + +#: org/jmol/export/dialog/Dialog.java:457 +msgid "Save selected file" +msgstr "Zapisz wybrany plik" + +#: org/jmol/export/dialog/Dialog.java:459 +msgid "Save In:" +msgstr "Zapisz w:" + +#: org/jmol/export/dialog/Dialog.java:460 +msgid "Update" +msgstr "Aktualizacja" + +#: org/jmol/export/dialog/Dialog.java:462 +msgid "Update directory listing" +msgstr "Uaktualnij listę katalogów" + +#: org/jmol/export/dialog/Dialog.java:463 +msgid "Up" +msgstr "W górę" + +#: org/jmol/export/dialog/Dialog.java:464 +msgid "Up One Level" +msgstr "W górę o jeden poziom" + +#: org/jmol/export/dialog/Dialog.java:469 +msgid "OK" +msgstr "OK" + +#: org/jmol/export/dialog/FilePreview.java:71 +msgid "Preview" +msgstr "Podgląd" + +#: org/jmol/export/dialog/FilePreview.java:91 +msgid "Append models" +msgstr "Dołącz modele" + +#: org/jmol/i18n/GT.java:118 +msgid "Catalan" +msgstr "Kataloński" + +#: org/jmol/i18n/GT.java:119 +msgid "Czech" +msgstr "Czeski" + +#: org/jmol/i18n/GT.java:120 +msgid "Danish" +msgstr "Duński" + +#: org/jmol/i18n/GT.java:121 +msgid "Dutch" +msgstr "Holenderski" + +#: org/jmol/i18n/GT.java:122 +msgid "British English" +msgstr "Brytyjski Angielski" + +#: org/jmol/i18n/GT.java:123 +msgid "American English" +msgstr "Amerykański angielski" + +#: org/jmol/i18n/GT.java:124 +msgid "Estonian" +msgstr "Estoński" + +#: org/jmol/i18n/GT.java:125 +msgid "French" +msgstr "Francuski" + +#: org/jmol/i18n/GT.java:126 +msgid "German" +msgstr "Niemiecki" + +#: org/jmol/i18n/GT.java:127 +msgid "Greek" +msgstr "" + +#: org/jmol/i18n/GT.java:128 +msgid "Hungarian" +msgstr "Węgierski" + +#: org/jmol/i18n/GT.java:129 +msgid "Italian" +msgstr "Włoski" + +#: org/jmol/i18n/GT.java:130 +msgid "Korean" +msgstr "Koreański" + +#: org/jmol/i18n/GT.java:131 +msgid "Norwegian Bokmal" +msgstr "Norweski (Bokmal)" + +#: org/jmol/i18n/GT.java:132 +msgid "Polish" +msgstr "Polski" + +#: org/jmol/i18n/GT.java:133 +msgid "Brazilian Portuguese" +msgstr "Brazylijski Portugalski" + +#: org/jmol/i18n/GT.java:134 +msgid "Portuguese" +msgstr "Portugalski" + +#: org/jmol/i18n/GT.java:135 +msgid "Russian" +msgstr "Rosyjski" + +#: org/jmol/i18n/GT.java:136 +msgid "Slovenian" +msgstr "Słoweński" + +#: org/jmol/i18n/GT.java:137 +msgid "Spanish" +msgstr "Hiszpański" + +#: org/jmol/i18n/GT.java:138 +msgid "Swedish" +msgstr "Szwedzki" + +#: org/jmol/i18n/GT.java:139 +msgid "Turkish" +msgstr "Turecki" + +#: org/jmol/minimize/Minimizer.java:186 +#, java-format +msgid "Could not get class for force field {0}" +msgstr "" + +#: org/jmol/minimize/Minimizer.java:195 +msgid "No atoms selected -- nothing to do!" +msgstr "Nie zaznaczono żadnego atomu -- brak zadań do wykonania!" + +#: org/jmol/minimize/Minimizer.java:258 +#, java-format +msgid "{0} atoms will be minimized." +msgstr "" + +#: org/jmol/minimize/Minimizer.java:350 +#, java-format +msgid "could not setup force field {0}" +msgstr "" + +#: org/jmol/popup/JmolPopup.java:481 org/jmol/popup/JmolPopup.java:521 +#: org/jmol/popup/PopupResourceBundle.java:581 +#: org/jmol/popup/PopupResourceBundle.java:595 +#: org/jmol/popup/PopupResourceBundle.java:604 +#: org/jmol/popup/PopupResourceBundle.java:621 +msgid "All" +msgstr "Wszystkie" + +#: org/jmol/popup/JmolPopup.java:555 +msgid "Minimize" +msgstr "" + +#: org/jmol/popup/JmolPopup.java:639 +msgid "Java memory usage" +msgstr "poziom użycia pamięci Java" + +#: org/jmol/popup/JmolPopup.java:645 +#, java-format +msgid "{0} MB total" +msgstr "w całości {0} MB" + +#: org/jmol/popup/JmolPopup.java:647 +#, java-format +msgid "{0} MB free" +msgstr "{0} MB wolnych" + +#: org/jmol/popup/JmolPopup.java:650 +#, java-format +msgid "{0} MB maximum" +msgstr "{0} MB maksimum" + +#: org/jmol/popup/JmolPopup.java:653 +msgid "unknown maximum" +msgstr "maksimum nieznane" + +#: org/jmol/popup/JmolPopup.java:656 +msgid "1 processor" +msgstr "1 procesor" + +#: org/jmol/popup/JmolPopup.java:657 +#, java-format +msgid "{0} processors" +msgstr "{0} procesorów" + +#: org/jmol/popup/JmolPopup.java:659 +msgid "unknown processor count" +msgstr "nieznana liczba procesorów" + +#: org/jmol/popup/PopupResourceBundle.java:548 +msgid "No atoms loaded" +msgstr "Brak załadowanych atomów" + +#: org/jmol/popup/PopupResourceBundle.java:550 +msgid "Configurations" +msgstr "Konfiguracje" + +#: org/jmol/popup/PopupResourceBundle.java:551 +msgid "Element" +msgstr "Pierwiastek" + +#: org/jmol/popup/PopupResourceBundle.java:552 +msgid "Model/Frame" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:553 +msgid "Language" +msgstr "Język" + +#: org/jmol/popup/PopupResourceBundle.java:554 +#: org/jmol/popup/PopupResourceBundle.java:555 +#: org/jmol/popup/PopupResourceBundle.java:556 +msgid "By Residue Name" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:557 +msgid "By HETATM" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:558 +msgid "Molecular Orbitals" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:559 +#: org/jmol/popup/PopupResourceBundle.java:869 +#: org/jmol/popup/PopupResourceBundle.java:905 +msgid "Symmetry" +msgstr "Symetria" + +#: org/jmol/popup/PopupResourceBundle.java:562 +msgid "Model information" +msgstr "Informacje o modelu" + +#: org/jmol/popup/PopupResourceBundle.java:563 +#, java-format +msgid "Select ({0})" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:564 +#, java-format +msgid "All {0} models" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:565 +#, java-format +msgid "Configurations ({0})" +msgstr "Konfiguracje ({0})" + +#: org/jmol/popup/PopupResourceBundle.java:566 +#, java-format +msgid "Collection of {0} models" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:567 +#, java-format +msgid "atoms: {0}" +msgstr "atomy: {0}" + +#: org/jmol/popup/PopupResourceBundle.java:568 +#, java-format +msgid "bonds: {0}" +msgstr "wiązania: {0}" + +#: org/jmol/popup/PopupResourceBundle.java:569 +#, java-format +msgid "groups: {0}" +msgstr "grupy: {0}" + +#: org/jmol/popup/PopupResourceBundle.java:570 +#, java-format +msgid "chains: {0}" +msgstr "łańcuchy: {0}" + +#: org/jmol/popup/PopupResourceBundle.java:571 +#, java-format +msgid "polymers: {0}" +msgstr "polimery: {0}" + +#: org/jmol/popup/PopupResourceBundle.java:572 +#, java-format +msgid "model {0}" +msgstr "model {0}" + +#: org/jmol/popup/PopupResourceBundle.java:573 +#, java-format +msgid "View {0}" +msgstr "Widok {0}" + +#: org/jmol/popup/PopupResourceBundle.java:574 +msgid "Main Menu" +msgstr "Menu główne" + +#: org/jmol/popup/PopupResourceBundle.java:575 +msgid "Biomolecules" +msgstr "Biomolekuły" + +#: org/jmol/popup/PopupResourceBundle.java:576 +#, java-format +msgid "biomolecule {0} ({1} atoms)" +msgstr "biomolekuła {0} ({1} atomy)" + +#: org/jmol/popup/PopupResourceBundle.java:577 +#, java-format +msgid "load biomolecule {0} ({1} atoms)" +msgstr "ładuj biomolekułę {0} ({1} atomy)" + +#: org/jmol/popup/PopupResourceBundle.java:582 +#: org/jmol/popup/PopupResourceBundle.java:701 +#: org/jmol/popup/PopupResourceBundle.java:710 +msgid "None" +msgstr "żaden" + +#: org/jmol/popup/PopupResourceBundle.java:583 +msgid "Display Selected Only" +msgstr "Wyświetlaj tylko zaznaczone" + +#: org/jmol/popup/PopupResourceBundle.java:584 +msgid "Invert Selection" +msgstr "Odwróć zaznaczenie" + +#: org/jmol/popup/PopupResourceBundle.java:586 +msgid "View" +msgstr "Pokaż" + +#: org/jmol/popup/PopupResourceBundle.java:587 +msgid "Front" +msgstr "Przód" + +#: org/jmol/popup/PopupResourceBundle.java:588 +msgid "Left" +msgstr "Lewo" + +#: org/jmol/popup/PopupResourceBundle.java:589 +msgid "Right" +msgstr "Prawo" + +#: org/jmol/popup/PopupResourceBundle.java:590 +msgid "Top" +msgstr "Góra" + +#: org/jmol/popup/PopupResourceBundle.java:591 +msgid "Bottom" +msgstr "Dół" + +#: org/jmol/popup/PopupResourceBundle.java:592 +msgid "Back" +msgstr "W tył" + +#: org/jmol/popup/PopupResourceBundle.java:594 +msgid "Protein" +msgstr "Białka" + +#: org/jmol/popup/PopupResourceBundle.java:596 +#: org/jmol/popup/PopupResourceBundle.java:607 +#: org/jmol/popup/PopupResourceBundle.java:677 +#: org/jmol/popup/PopupResourceBundle.java:769 +msgid "Backbone" +msgstr "Szkielet" + +#: org/jmol/popup/PopupResourceBundle.java:597 +msgid "Side Chains" +msgstr "Łańcuchy boczne" + +#: org/jmol/popup/PopupResourceBundle.java:598 +msgid "Polar Residues" +msgstr "Reszty polarne" + +#: org/jmol/popup/PopupResourceBundle.java:599 +msgid "Nonpolar Residues" +msgstr "Reszty niepolanrne" + +#: org/jmol/popup/PopupResourceBundle.java:600 +msgid "Basic Residues (+)" +msgstr "Reszty zasadowe (+)" + +#: org/jmol/popup/PopupResourceBundle.java:601 +msgid "Acidic Residues (-)" +msgstr "Reszty kwasowe (-)" + +#: org/jmol/popup/PopupResourceBundle.java:602 +msgid "Uncharged Residues" +msgstr "Reszty pozbawione ładunku" + +#: org/jmol/popup/PopupResourceBundle.java:603 +msgid "Nucleic" +msgstr "Kwas nukleinowy" + +#: org/jmol/popup/PopupResourceBundle.java:605 +msgid "DNA" +msgstr "DNA" + +#: org/jmol/popup/PopupResourceBundle.java:606 +msgid "RNA" +msgstr "RNA" + +#: org/jmol/popup/PopupResourceBundle.java:608 +msgid "Bases" +msgstr "Zasady" + +#: org/jmol/popup/PopupResourceBundle.java:609 +msgid "AT pairs" +msgstr "Pary AT" + +#: org/jmol/popup/PopupResourceBundle.java:610 +msgid "GC pairs" +msgstr "Pary GC" + +#: org/jmol/popup/PopupResourceBundle.java:611 +msgid "AU pairs" +msgstr "Pary AU" + +#: org/jmol/popup/PopupResourceBundle.java:612 +msgid "Hetero" +msgstr "Hetero" + +#: org/jmol/popup/PopupResourceBundle.java:613 +msgid "All PDB \"HETATM\"" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:614 +msgid "All Solvent" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:615 +msgid "All Water" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:617 +msgid "Nonaqueous Solvent" +msgstr "Rozpuszczalnik bezwodny" + +#: org/jmol/popup/PopupResourceBundle.java:618 +msgid "Nonaqueous HETATM" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:619 +msgid "Ligand" +msgstr "Ligand" + +#: org/jmol/popup/PopupResourceBundle.java:622 +msgid "Carbohydrate" +msgstr "wodorowęglan" + +#: org/jmol/popup/PopupResourceBundle.java:623 +msgid "None of the above" +msgstr "Żaden z wymienionych" + +#: org/jmol/popup/PopupResourceBundle.java:625 +msgid "Style" +msgstr "Styl" + +#: org/jmol/popup/PopupResourceBundle.java:626 +msgid "Scheme" +msgstr "Schemat" + +#: org/jmol/popup/PopupResourceBundle.java:627 +msgid "CPK Spacefill" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:628 +msgid "Ball and Stick" +msgstr "Kula i kreska" + +#: org/jmol/popup/PopupResourceBundle.java:629 +msgid "Sticks" +msgstr "Kreski" + +#: org/jmol/popup/PopupResourceBundle.java:630 +msgid "Wireframe" +msgstr "Obraz szkieletowy" + +#: org/jmol/popup/PopupResourceBundle.java:631 +#: org/jmol/popup/PopupResourceBundle.java:678 +#: org/jmol/popup/PopupResourceBundle.java:771 +msgid "Cartoon" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:632 +#: org/jmol/popup/PopupResourceBundle.java:683 +#: org/jmol/popup/PopupResourceBundle.java:770 +msgid "Trace" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:634 +#: org/jmol/popup/PopupResourceBundle.java:723 +msgid "Atoms" +msgstr "Atomy" + +#: org/jmol/popup/PopupResourceBundle.java:635 +#: org/jmol/popup/PopupResourceBundle.java:644 +#: org/jmol/popup/PopupResourceBundle.java:653 +#: org/jmol/popup/PopupResourceBundle.java:665 +#: org/jmol/popup/PopupResourceBundle.java:676 +#: org/jmol/popup/PopupResourceBundle.java:686 +#: org/jmol/popup/PopupResourceBundle.java:689 +#: org/jmol/popup/PopupResourceBundle.java:795 +#: org/jmol/popup/PopupResourceBundle.java:845 +#: org/jmol/popup/PopupResourceBundle.java:903 +msgid "Off" +msgstr "Wyłączone" + +#: org/jmol/popup/PopupResourceBundle.java:636 +#: org/jmol/popup/PopupResourceBundle.java:637 +#: org/jmol/popup/PopupResourceBundle.java:638 +#: org/jmol/popup/PopupResourceBundle.java:639 +#: org/jmol/popup/PopupResourceBundle.java:640 +#: org/jmol/popup/PopupResourceBundle.java:641 +#, java-format +msgid "{0}% van der Waals" +msgstr "{0}% van der Waals" + +#: org/jmol/popup/PopupResourceBundle.java:643 +#: org/jmol/popup/PopupResourceBundle.java:765 +msgid "Bonds" +msgstr "Wiązania" + +#: org/jmol/popup/PopupResourceBundle.java:645 +#: org/jmol/popup/PopupResourceBundle.java:655 +#: org/jmol/popup/PopupResourceBundle.java:666 +#: org/jmol/popup/PopupResourceBundle.java:687 +#: org/jmol/popup/PopupResourceBundle.java:690 +#: org/jmol/popup/PopupResourceBundle.java:794 +msgid "On" +msgstr "Włączone" + +#: org/jmol/popup/PopupResourceBundle.java:646 +#: org/jmol/popup/PopupResourceBundle.java:647 +#: org/jmol/popup/PopupResourceBundle.java:648 +#: org/jmol/popup/PopupResourceBundle.java:649 +#: org/jmol/popup/PopupResourceBundle.java:650 +#: org/jmol/popup/PopupResourceBundle.java:658 +#: org/jmol/popup/PopupResourceBundle.java:659 +#: org/jmol/popup/PopupResourceBundle.java:660 +#: org/jmol/popup/PopupResourceBundle.java:661 +#: org/jmol/popup/PopupResourceBundle.java:662 +#: org/jmol/popup/PopupResourceBundle.java:669 +#: org/jmol/popup/PopupResourceBundle.java:670 +#: org/jmol/popup/PopupResourceBundle.java:671 +#: org/jmol/popup/PopupResourceBundle.java:672 +#: org/jmol/popup/PopupResourceBundle.java:673 +#: org/jmol/popup/PopupResourceBundle.java:692 +#: org/jmol/popup/PopupResourceBundle.java:693 +#: org/jmol/popup/PopupResourceBundle.java:926 +#: org/jmol/popup/PopupResourceBundle.java:927 +#: org/jmol/popup/PopupResourceBundle.java:928 +#: org/jmol/popup/PopupResourceBundle.java:929 +#: org/jmol/popup/PopupResourceBundle.java:930 +#, java-format +msgid "{0} Å" +msgstr "{0} Å" + +#: org/jmol/popup/PopupResourceBundle.java:652 +#: org/jmol/popup/PopupResourceBundle.java:766 +msgid "Hydrogen Bonds" +msgstr "Wiązania wodorowe" + +#: org/jmol/popup/PopupResourceBundle.java:654 +msgid "Calculate" +msgstr "Oblicz" + +#: org/jmol/popup/PopupResourceBundle.java:656 +msgid "Set H-Bonds Side Chain" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:657 +msgid "Set H-Bonds Backbone" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:664 +#: org/jmol/popup/PopupResourceBundle.java:767 +msgid "Disulfide Bonds" +msgstr "Wiązania dwusiarczkowe" + +#: org/jmol/popup/PopupResourceBundle.java:667 +msgid "Set SS-Bonds Side Chain" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:668 +msgid "Set SS-Bonds Backbone" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:675 +#: org/jmol/popup/PopupResourceBundle.java:768 +msgid "Structures" +msgstr "Struktury" + +#: org/jmol/popup/PopupResourceBundle.java:679 +msgid "Cartoon Rockets" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:680 +#: org/jmol/popup/PopupResourceBundle.java:772 +msgid "Ribbons" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:681 +#: org/jmol/popup/PopupResourceBundle.java:773 +msgid "Rockets" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:682 +#: org/jmol/popup/PopupResourceBundle.java:774 +msgid "Strands" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:685 +msgid "Vibration" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:688 +#: org/jmol/popup/PopupResourceBundle.java:778 +msgid "Vectors" +msgstr "Wektory" + +#: org/jmol/popup/PopupResourceBundle.java:691 +#, java-format +msgid "{0} pixels" +msgstr "{0} pikseli" + +#: org/jmol/popup/PopupResourceBundle.java:694 +#: org/jmol/popup/PopupResourceBundle.java:695 +#: org/jmol/popup/PopupResourceBundle.java:696 +#: org/jmol/popup/PopupResourceBundle.java:697 +#: org/jmol/popup/PopupResourceBundle.java:698 +#, java-format +msgid "Scale {0}" +msgstr "Skala {0}" + +#: org/jmol/popup/PopupResourceBundle.java:700 +msgid "Stereographic" +msgstr "Stereograficzne" + +#: org/jmol/popup/PopupResourceBundle.java:702 +msgid "Red+Cyan glasses" +msgstr "Okulary Czerwono-Cyjanowe" + +#: org/jmol/popup/PopupResourceBundle.java:703 +msgid "Red+Blue glasses" +msgstr "Okulary czerwono-Niebieskie" + +#: org/jmol/popup/PopupResourceBundle.java:704 +msgid "Red+Green glasses" +msgstr "Okulary Czerwono-Zielone" + +#: org/jmol/popup/PopupResourceBundle.java:705 +msgid "Cross-eyed viewing" +msgstr "Patrzenie zbieżne" + +#: org/jmol/popup/PopupResourceBundle.java:706 +msgid "Wall-eyed viewing" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:708 +#: org/jmol/popup/PopupResourceBundle.java:775 +msgid "Labels" +msgstr "Etykiety" + +#: org/jmol/popup/PopupResourceBundle.java:711 +msgid "With Element Symbol" +msgstr "Z symbolem atomu" + +#: org/jmol/popup/PopupResourceBundle.java:712 +msgid "With Atom Name" +msgstr "Z nazwa atomu" + +#: org/jmol/popup/PopupResourceBundle.java:713 +msgid "With Atom Number" +msgstr "Z numerem atomu" + +#: org/jmol/popup/PopupResourceBundle.java:715 +msgid "Position Label on Atom" +msgstr "Ustal pozycje etykiety" + +#: org/jmol/popup/PopupResourceBundle.java:716 +msgid "Centered" +msgstr "Wyśrodkowanie" + +#: org/jmol/popup/PopupResourceBundle.java:717 +msgid "Upper Right" +msgstr "Na górze po prawej" + +#: org/jmol/popup/PopupResourceBundle.java:718 +msgid "Lower Right" +msgstr "Na dole po prawej" + +#: org/jmol/popup/PopupResourceBundle.java:719 +msgid "Upper Left" +msgstr "Na górze po lewej" + +#: org/jmol/popup/PopupResourceBundle.java:720 +msgid "Lower Left" +msgstr "Na dole po lewej" + +#: org/jmol/popup/PopupResourceBundle.java:722 +msgid "Color" +msgstr "Kolor" + +#: org/jmol/popup/PopupResourceBundle.java:725 +msgid "By Scheme" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:726 +msgid "Element (CPK)" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:727 +msgid "Alternative Location" +msgstr "Inna lokalizacja" + +#: org/jmol/popup/PopupResourceBundle.java:728 +msgid "Molecule" +msgstr "Cząsteczka" + +#: org/jmol/popup/PopupResourceBundle.java:729 +msgid "Formal Charge" +msgstr "Ładunek" + +#: org/jmol/popup/PopupResourceBundle.java:730 +msgid "Partial Charge" +msgstr "Ładunek częściowy" + +#: org/jmol/popup/PopupResourceBundle.java:731 +msgid "Temperature (Relative)" +msgstr "Temperatura (Względna)" + +#: org/jmol/popup/PopupResourceBundle.java:732 +msgid "Temperature (Fixed)" +msgstr "Temperatura (Bezwzględna)" + +#: org/jmol/popup/PopupResourceBundle.java:734 +msgid "Amino Acid" +msgstr "Aminokwas" + +#: org/jmol/popup/PopupResourceBundle.java:735 +msgid "Secondary Structure" +msgstr "Struktura drugorzędowa" + +#: org/jmol/popup/PopupResourceBundle.java:736 +msgid "Chain" +msgstr "Łańcuch" + +#: org/jmol/popup/PopupResourceBundle.java:737 +msgid "Group" +msgstr "Grupa" + +#: org/jmol/popup/PopupResourceBundle.java:738 +msgid "Monomer" +msgstr "Monomer" + +#: org/jmol/popup/PopupResourceBundle.java:739 +msgid "Shapely" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:741 +msgid "Inherit" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:742 +msgid "Black" +msgstr "Czarny:" + +#: org/jmol/popup/PopupResourceBundle.java:743 +msgid "White" +msgstr "Biały" + +#: org/jmol/popup/PopupResourceBundle.java:744 +msgid "Cyan" +msgstr "Cyjan" + +#: org/jmol/popup/PopupResourceBundle.java:746 +msgid "Red" +msgstr "Czerwony" + +#: org/jmol/popup/PopupResourceBundle.java:747 +msgid "Orange" +msgstr "Pomarańczowy" + +#: org/jmol/popup/PopupResourceBundle.java:748 +msgid "Yellow" +msgstr "Żółty" + +#: org/jmol/popup/PopupResourceBundle.java:749 +msgid "Green" +msgstr "Zielony" + +#: org/jmol/popup/PopupResourceBundle.java:750 +msgid "Blue" +msgstr "Niebieski" + +#: org/jmol/popup/PopupResourceBundle.java:751 +msgid "Indigo" +msgstr "Indygo" + +#: org/jmol/popup/PopupResourceBundle.java:752 +msgid "Violet" +msgstr "Fioletowy" + +#: org/jmol/popup/PopupResourceBundle.java:754 +msgid "Salmon" +msgstr "Łososiowy" + +#: org/jmol/popup/PopupResourceBundle.java:755 +msgid "Olive" +msgstr "Oliwkowy" + +#: org/jmol/popup/PopupResourceBundle.java:756 +msgid "Maroon" +msgstr "Kasztanowy" + +#: org/jmol/popup/PopupResourceBundle.java:757 +msgid "Gray" +msgstr "Szary" + +#: org/jmol/popup/PopupResourceBundle.java:758 +msgid "Slate Blue" +msgstr "Niebieski łupkowy" + +#: org/jmol/popup/PopupResourceBundle.java:759 +msgid "Gold" +msgstr "Złoty" + +#: org/jmol/popup/PopupResourceBundle.java:760 +msgid "Orchid" +msgstr "Orchidowy" + +#: org/jmol/popup/PopupResourceBundle.java:762 +#: org/jmol/popup/PopupResourceBundle.java:901 +msgid "Make Opaque" +msgstr "Nieprzezroczystosty" + +#: org/jmol/popup/PopupResourceBundle.java:763 +#: org/jmol/popup/PopupResourceBundle.java:902 +msgid "Make Translucent" +msgstr "Przezroczysty" + +#: org/jmol/popup/PopupResourceBundle.java:776 +msgid "Background" +msgstr "Tło" + +#: org/jmol/popup/PopupResourceBundle.java:777 +#: org/jmol/popup/PopupResourceBundle.java:893 +msgid "Surfaces" +msgstr "Powierzchnie" + +#: org/jmol/popup/PopupResourceBundle.java:779 +#: org/jmol/popup/PopupResourceBundle.java:912 +#: org/jmol/popup/PopupResourceBundle.java:938 +msgid "Axes" +msgstr "Osie" + +#: org/jmol/popup/PopupResourceBundle.java:780 +#: org/jmol/popup/PopupResourceBundle.java:913 +#: org/jmol/popup/PopupResourceBundle.java:937 +msgid "Boundbox" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:781 +#: org/jmol/popup/PopupResourceBundle.java:890 +#: org/jmol/popup/PopupResourceBundle.java:914 +#: org/jmol/popup/PopupResourceBundle.java:939 +msgid "Unit cell" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:783 +msgid "Zoom" +msgstr "Powiększenie" + +#: org/jmol/popup/PopupResourceBundle.java:790 +msgid "Zoom In" +msgstr "Powiększ" + +#: org/jmol/popup/PopupResourceBundle.java:791 +msgid "Zoom Out" +msgstr "Pomniejsz" + +#: org/jmol/popup/PopupResourceBundle.java:793 +#: org/jmol/popup/PopupResourceBundle.java:856 +msgid "Spin" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:797 +msgid "Set X Rate" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:798 +msgid "Set Y Rate" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:799 +msgid "Set Z Rate" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:800 +#: org/jmol/popup/PopupResourceBundle.java:826 +msgid "Set FPS" +msgstr "Ilość klatek na sekundę" + +#: org/jmol/popup/PopupResourceBundle.java:810 +msgid "Animation" +msgstr "Animacja" + +#: org/jmol/popup/PopupResourceBundle.java:811 +msgid "Animation Mode" +msgstr "Tryb animacji" + +#: org/jmol/popup/PopupResourceBundle.java:812 +msgid "Play Once" +msgstr "Odtwórz raz" + +#: org/jmol/popup/PopupResourceBundle.java:813 +msgid "Palindrome" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:814 +msgid "Loop" +msgstr "Zapętlanie" + +#: org/jmol/popup/PopupResourceBundle.java:816 +msgid "Play" +msgstr "Odtwórz" + +#: org/jmol/popup/PopupResourceBundle.java:817 +msgid "Pause" +msgstr "Pauza" + +#: org/jmol/popup/PopupResourceBundle.java:818 +msgid "Resume" +msgstr "Wznów" + +#: org/jmol/popup/PopupResourceBundle.java:819 +msgid "Stop" +msgstr "Stop" + +#: org/jmol/popup/PopupResourceBundle.java:820 +msgid "Next Frame" +msgstr "Nastepna klatka" + +#: org/jmol/popup/PopupResourceBundle.java:821 +msgid "Previous Frame" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:822 +msgid "Rewind" +msgstr "Przewiń w tył" + +#: org/jmol/popup/PopupResourceBundle.java:823 +msgid "Reverse" +msgstr "Odwróć" + +#: org/jmol/popup/PopupResourceBundle.java:824 +msgid "Restart" +msgstr "Restartuj" + +#: org/jmol/popup/PopupResourceBundle.java:833 +#: org/jmol/popup/PopupResourceBundle.java:864 +msgid "Measurements" +msgstr "Pomiary" + +#: org/jmol/popup/PopupResourceBundle.java:834 +msgid "Double-Click begins and ends all measurements" +msgstr "Podwójne kliknięce rozpoczyna i kończy pomiary" + +#: org/jmol/popup/PopupResourceBundle.java:835 +msgid "Click for distance measurement" +msgstr "Kliknij dla pomiaru odległości" + +#: org/jmol/popup/PopupResourceBundle.java:836 +msgid "Click for angle measurement" +msgstr "Kliknij dla pomiaru kąta" + +#: org/jmol/popup/PopupResourceBundle.java:837 +msgid "Click for torsion (dihedral) measurement" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:838 +msgid "Delete measurements" +msgstr "Usuń pomiary" + +#: org/jmol/popup/PopupResourceBundle.java:839 +msgid "List measurements" +msgstr "Pokaż pomiary" + +#: org/jmol/popup/PopupResourceBundle.java:840 +msgid "Distance units nanometers" +msgstr "Pomiar w nanometrach" + +#: org/jmol/popup/PopupResourceBundle.java:841 +msgid "Distance units Angstroms" +msgstr "Pomiar w Angstroemach" + +#: org/jmol/popup/PopupResourceBundle.java:842 +msgid "Distance units picometers" +msgstr "Pomiar w pikometrack" + +#: org/jmol/popup/PopupResourceBundle.java:844 +msgid "Set picking" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:846 +msgid "Center" +msgstr "Wyśrodkuj" + +#: org/jmol/popup/PopupResourceBundle.java:848 +msgid "Identity" +msgstr "Identyfikacja" + +#: org/jmol/popup/PopupResourceBundle.java:849 +msgid "Label" +msgstr "Etykieta" + +#: org/jmol/popup/PopupResourceBundle.java:850 +msgid "Select atom" +msgstr "Wyberz atom" + +#: org/jmol/popup/PopupResourceBundle.java:851 +msgid "Select chain" +msgstr "Wybierz łańcuch" + +#: org/jmol/popup/PopupResourceBundle.java:852 +msgid "Select element" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:853 +msgid "Select group" +msgstr "Wybierz grupę" + +#: org/jmol/popup/PopupResourceBundle.java:854 +msgid "Select molecule" +msgstr "Wybierz cząsteczkę" + +#: org/jmol/popup/PopupResourceBundle.java:855 +msgid "Select site" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:858 +msgid "Show" +msgstr "Pokaż" + +#: org/jmol/popup/PopupResourceBundle.java:859 +msgid "Console" +msgstr "Konsola" + +#: org/jmol/popup/PopupResourceBundle.java:860 +msgid "File Contents" +msgstr "Zawartośc pliku" + +#: org/jmol/popup/PopupResourceBundle.java:861 +msgid "File Header" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:863 +msgid "Isosurface JVXL data" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:865 +msgid "Molecular orbital JVXL data" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:866 +msgid "Model" +msgstr "Model" + +#: org/jmol/popup/PopupResourceBundle.java:867 +msgid "Orientation" +msgstr "Orientacja" + +#: org/jmol/popup/PopupResourceBundle.java:868 +msgid "Space group" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:870 +msgid "Current state" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:873 +msgid "File from PDB" +msgstr "Flik z PDB" + +#: org/jmol/popup/PopupResourceBundle.java:874 +msgid "File or URL" +msgstr "Plik lub adres URL" + +#: org/jmol/popup/PopupResourceBundle.java:875 +msgid "Load full unit cell" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:876 +msgid "Script" +msgstr "Skrypt" + +#: org/jmol/popup/PopupResourceBundle.java:879 +#, java-format +msgid "File {0}" +msgstr "Plik {0}" + +#: org/jmol/popup/PopupResourceBundle.java:880 +msgid "Script with state" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:881 +msgid "Script with history" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:882 +#: org/jmol/popup/PopupResourceBundle.java:883 +#: org/jmol/popup/PopupResourceBundle.java:884 +#, java-format +msgid "{0} Image" +msgstr "{0} Obraz" + +#: org/jmol/popup/PopupResourceBundle.java:885 +msgid "JVXL Isosurface" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:886 +#: org/jmol/popup/PopupResourceBundle.java:887 +#, java-format +msgid "{0} 3D Model" +msgstr "{0} Model 3D" + +#: org/jmol/popup/PopupResourceBundle.java:891 +msgid "Extract MOL data" +msgstr "Wydobądź dane MOL" + +#: org/jmol/popup/PopupResourceBundle.java:894 +msgid "Dot Surface" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:895 +msgid "van der Waals Surface" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:896 +msgid "Molecular Surface" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:897 +#, java-format +msgid "Solvent Surface ({0}-Angstrom probe)" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:899 +#, java-format +msgid "Solvent-Accessible Surface (VDW + {0} Angstrom)" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:900 +msgid "Molecular Electrostatic Potential" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:906 +#: org/jmol/popup/PopupResourceBundle.java:907 +#: org/jmol/popup/PopupResourceBundle.java:908 +#, java-format +msgid "Reload {0}" +msgstr "Przeładuj {0}" + +#: org/jmol/popup/PopupResourceBundle.java:909 +msgid "Reload + Polyhedra" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:916 +msgid "Hide" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:917 +msgid "Dotted" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:919 +msgid "Pixel Width" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:920 +#: org/jmol/popup/PopupResourceBundle.java:921 +#: org/jmol/popup/PopupResourceBundle.java:922 +#: org/jmol/popup/PopupResourceBundle.java:923 +#, java-format +msgid "{0} px" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:925 +msgid "Angstrom Width" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:933 +msgid "Selection Halos" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:934 +msgid "Show Hydrogens" +msgstr "Pokaż Wodory" + +#: org/jmol/popup/PopupResourceBundle.java:935 +msgid "Show Measurements" +msgstr "Pokaż Pomiary" + +#: org/jmol/popup/PopupResourceBundle.java:936 +msgid "Perspective Depth" +msgstr "" + +#: org/jmol/popup/PopupResourceBundle.java:940 +msgid "RasMol Colors" +msgstr "Kolory RasMol" + +#: org/jmol/popup/PopupResourceBundle.java:941 +msgid "About Jmol" +msgstr "O programie Jmol" + +#: org/jmol/popup/PopupResourceBundle.java:946 +msgid "Mouse Manual" +msgstr "Obsługa myszy" + +#: org/jmol/popup/PopupResourceBundle.java:947 +msgid "Translations" +msgstr "Tłumaczenia" + +#: org/jmol/viewer/Compiler.java:2510 org/jmol/viewer/Eval.java:11459 +msgid "bad argument count" +msgstr "" + +#: org/jmol/viewer/Compiler.java:2511 +#, java-format +msgid "invalid context for {0}" +msgstr "" + +#: org/jmol/viewer/Compiler.java:2512 org/jmol/viewer/Eval.java:5250 +msgid "command expected" +msgstr "" + +#: org/jmol/viewer/Compiler.java:2513 +msgid "{ number number number } expected" +msgstr "{ number number number } oczekiwano" + +#: org/jmol/viewer/Compiler.java:2514 org/jmol/viewer/Eval.java:11469 +msgid "unexpected end of script command" +msgstr "nieoczekiwany koniec skryptu" + +#: org/jmol/viewer/Compiler.java:2515 +msgid "end of expression expected" +msgstr "" + +#: org/jmol/viewer/Compiler.java:2516 +msgid "identifier or residue specification expected" +msgstr "" + +#: org/jmol/viewer/Compiler.java:2517 +msgid "invalid atom specification" +msgstr "" + +#: org/jmol/viewer/Compiler.java:2518 +msgid "invalid chain specification" +msgstr "" + +#: org/jmol/viewer/Compiler.java:2519 +#, java-format +msgid "invalid expression token: {0}" +msgstr "" + +#: org/jmol/viewer/Compiler.java:2520 +msgid "invalid model specification" +msgstr "" + +#: org/jmol/viewer/Compiler.java:2521 +#, java-format +msgid "missing END for {0}" +msgstr "" + +#: org/jmol/viewer/Compiler.java:2522 org/jmol/viewer/Eval.java:11483 +msgid "number expected" +msgstr "oczekiwano liczby" + +#: org/jmol/viewer/Compiler.java:2523 +msgid "number or variable name expected" +msgstr "" + +#: org/jmol/viewer/Compiler.java:2524 +msgid "residue specification (ALA, AL?, A*) expected" +msgstr "" + +#: org/jmol/viewer/Compiler.java:2525 +#, java-format +msgid "{0} expected" +msgstr "" + +#: org/jmol/viewer/Compiler.java:2526 +#, java-format +msgid "{0} unexpected" +msgstr "" + +#: org/jmol/viewer/Compiler.java:2527 +#, java-format +msgid "unrecognized expression token: {0}" +msgstr "" + +#: org/jmol/viewer/Compiler.java:2528 org/jmol/viewer/Eval.java:11497 +#, java-format +msgid "unrecognized {0} parameter" +msgstr "" + +#: org/jmol/viewer/Compiler.java:2529 +#, java-format +msgid "unrecognized token: {0}" +msgstr "" + +#: org/jmol/viewer/Eval.java:318 org/jmol/viewer/Eval.java:5231 +msgid "script ERROR: " +msgstr "BŁĄD skryptu: " + +#: org/jmol/viewer/Eval.java:3503 +#, java-format +msgid "{0} connections deleted" +msgstr "" + +#: org/jmol/viewer/Eval.java:3524 +#, java-format +msgid "{0} new bonds; {1} modified" +msgstr "" + +#: org/jmol/viewer/Eval.java:5067 +msgid "too many rotation points were specified" +msgstr "" + +#: org/jmol/viewer/Eval.java:5356 org/jmol/viewer/Eval.java:5595 +#, java-format +msgid "{0} atoms deleted" +msgstr "{0} atomy usunięto" + +#: org/jmol/viewer/Eval.java:6085 +#, java-format +msgid "{0} hydrogen bonds" +msgstr "{0} wiązania wodorowe" + +#: org/jmol/viewer/Eval.java:6103 +#, java-format +msgid "{0} not allowed with background model displayed" +msgstr "" + +#: org/jmol/viewer/Eval.java:9216 +#, java-format +msgid "write what? {0} or {1} \"filename\"" +msgstr "" + +#: org/jmol/viewer/Eval.java:9291 +msgid "No data available" +msgstr "Beak dostepnych danych" + +#: org/jmol/viewer/Eval.java:9757 org/jmol/viewer/Eval.java:10554 +msgid "no MO basis/coefficient data available for this frame" +msgstr "" + +#: org/jmol/viewer/Eval.java:10558 +msgid "no MO coefficient data available" +msgstr "" + +#: org/jmol/viewer/Eval.java:10560 +msgid "Only one molecular orbital is available in this file" +msgstr "" + +#: org/jmol/viewer/Eval.java:10570 +msgid "no MO occupancy data available" +msgstr "" + +#: org/jmol/viewer/Eval.java:10580 +#, java-format +msgid "An MO index from 1 to {0} is required" +msgstr "" + +#: org/jmol/viewer/Eval.java:10897 +msgid "" +"No partial charges were read from the file; Jmol needs these to render the " +"MEP data." +msgstr "" + +#: org/jmol/viewer/Eval.java:11393 +#, java-format +msgid "" +"plane expected -- either three points or atom expressions or {0} or {1} or " +"{2}" +msgstr "" + +#: org/jmol/viewer/Eval.java:11458 +msgid "x y z axis expected" +msgstr "" + +#: org/jmol/viewer/Eval.java:11460 +msgid "Miller indices cannot all be zero." +msgstr "" + +#: org/jmol/viewer/Eval.java:11461 +msgid "bad [R,G,B] color" +msgstr "niewłaściwy kolor [R, G, B]" + +#: org/jmol/viewer/Eval.java:11462 +msgid "boolean expected" +msgstr "" + +#: org/jmol/viewer/Eval.java:11463 +msgid "boolean or number expected" +msgstr "" + +#: org/jmol/viewer/Eval.java:11464 +#, java-format +msgid "boolean, number, or {0} expected" +msgstr "" + +#: org/jmol/viewer/Eval.java:11465 +msgid "color expected" +msgstr "oczekiwano koloru" + +#: org/jmol/viewer/Eval.java:11466 +msgid "a color or palette name (Jmol, Rasmol) is required" +msgstr "" + +#: org/jmol/viewer/Eval.java:11467 +msgid " {x y z} or $name or (atom expression) required" +msgstr "" + +#: org/jmol/viewer/Eval.java:11468 +msgid "draw object not defined" +msgstr "" + +#: org/jmol/viewer/Eval.java:11470 +msgid "valid (atom expression) expected" +msgstr "" + +#: org/jmol/viewer/Eval.java:11471 +msgid "(atom expression) or integer expected" +msgstr "" + +#: org/jmol/viewer/Eval.java:11472 +msgid "filename expected" +msgstr "oczekiwano nazwy pliku" + +#: org/jmol/viewer/Eval.java:11473 +msgid "file not found" +msgstr "nie odnaleziono pliku" + +#: org/jmol/viewer/Eval.java:11474 +msgid "incompatible arguments" +msgstr "niepoprawne argumenty" + +#: org/jmol/viewer/Eval.java:11475 +msgid "insufficient arguments" +msgstr "niewystarczające argumenty" + +#: org/jmol/viewer/Eval.java:11476 +msgid "integer expected" +msgstr "" + +#: org/jmol/viewer/Eval.java:11477 +#, java-format +msgid "integer out of range ({0} - {1})" +msgstr "" + +#: org/jmol/viewer/Eval.java:11478 +msgid "invalid argument" +msgstr "błędny argument" + +#: org/jmol/viewer/Eval.java:11479 +msgid "invalid parameter order" +msgstr "" + +#: org/jmol/viewer/Eval.java:11480 +msgid "keyword expected" +msgstr "" + +#: org/jmol/viewer/Eval.java:11481 +#, java-format +msgid "{0} require that only one model be displayed" +msgstr "" + +#: org/jmol/viewer/Eval.java:11482 +msgid "No unit cell" +msgstr "" + +#: org/jmol/viewer/Eval.java:11484 +#, java-format +msgid "number must be ({0} or {1})" +msgstr "" + +#: org/jmol/viewer/Eval.java:11485 +#, java-format +msgid "decimal number out of range ({0} - {1})" +msgstr "" + +#: org/jmol/viewer/Eval.java:11486 +msgid "object name expected after '$'" +msgstr "" + +#: org/jmol/viewer/Eval.java:11487 +msgid "property name expected" +msgstr "" + +#: org/jmol/viewer/Eval.java:11488 +#, java-format +msgid "space group {0} was not found." +msgstr "" + +#: org/jmol/viewer/Eval.java:11489 +msgid "quoted string expected" +msgstr "" + +#: org/jmol/viewer/Eval.java:11490 +msgid "quoted string or identifier expected" +msgstr "" + +#: org/jmol/viewer/Eval.java:11491 +msgid "too many script levels" +msgstr "" + +#: org/jmol/viewer/Eval.java:11492 +msgid "unrecognized atom property" +msgstr "" + +#: org/jmol/viewer/Eval.java:11493 +msgid "unrecognized bond property" +msgstr "" + +#: org/jmol/viewer/Eval.java:11494 +msgid "unrecognized command" +msgstr "" + +#: org/jmol/viewer/Eval.java:11495 +msgid "runtime unrecognized expression" +msgstr "" + +#: org/jmol/viewer/Eval.java:11496 +msgid "unrecognized object" +msgstr "nierozpoznany obiekt" + +#: org/jmol/viewer/Eval.java:11498 +#, java-format +msgid "unrecognized {0} parameter in Jmol state script (set anyway)" +msgstr "" + +#: org/jmol/viewer/Eval.java:11499 +#, java-format +msgid "unrecognized SHOW parameter -- use {0}" +msgstr "" + +#: org/jmol/viewer/PickingManager.java:208 +msgid "pick one more atom in order to spin the model around an axis" +msgstr "wybierz atom aby obrócić model wokół osi" + +#: org/jmol/viewer/PickingManager.java:209 +msgid "pick two atoms in order to spin the model around an axis" +msgstr "wybierz dwa atomy aby obrócić model wokół osi" + +#: org/jmol/viewer/SelectionManager.java:77 +#: org/jmol/viewer/SelectionManager.java:94 +#, java-format +msgid "{0} atoms hidden" +msgstr "{0} atomy ukryte" + +#: org/jmol/viewer/SelectionManager.java:131 +#, java-format +msgid "{0} atoms selected" +msgstr "{0} atomy wybrane" + +#: org/jmol/viewer/Viewer.java:4297 +#, java-format +msgid "ERROR: cannot set boolean flag to string value: {0}" +msgstr "" + +#: org/jmol/viewer/Viewer.java:4487 org/jmol/viewer/Viewer.java:4662 +#, java-format +msgid "ERROR: cannot set boolean flag to numeric value: {0}" +msgstr "" + +#: org/jmol/viewer/Viewer.java:5148 +#, java-format +msgid "ERROR: Cannot set value of this variable to a boolean: {0}" +msgstr "" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2008-11-26 18:02:48
|
Revision: 10376 http://jmol.svn.sourceforge.net/jmol/?rev=10376&view=rev Author: hansonr Date: 2008-11-26 18:02:41 +0000 (Wed, 26 Nov 2008) Log Message: ----------- version=11.7.14_dev out of memory error handling # new feature: jmolGetPropertyAsString("errorMessage") # new feature: out-of-memory "Java heap error" trapping in scripts and image creation # bug fix: build javax package does not include AxisAngle4d.class, Matrix4d.class Modified Paths: -------------- trunk/Jmol/build.xml trunk/Jmol/src/org/jmol/viewer/Eval.java trunk/Jmol/src/org/jmol/viewer/Jmol.properties trunk/Jmol/src/org/jmol/viewer/PropertyManager.java trunk/Jmol/src/org/jmol/viewer/ScriptManager.java trunk/Jmol/src/org/jmol/viewer/Viewer.java Modified: trunk/Jmol/build.xml =================================================================== --- trunk/Jmol/build.xml 2008-11-26 18:00:36 UTC (rev 10375) +++ trunk/Jmol/build.xml 2008-11-26 18:02:41 UTC (rev 10376) @@ -497,6 +497,8 @@ <include name="**/Tuple2d.class"/> <include name="**/Point2d.class"/> <include name="**/Matrix3d.class"/> + <include name="**/Matrix4d.class"/> + <include name="**/AxisAngle4d.class"/> <include name="**/SingularMatrixException.class"/> </patternset> </unjar> Modified: trunk/Jmol/src/org/jmol/viewer/Eval.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Eval.java 2008-11-26 18:00:36 UTC (rev 10375) +++ trunk/Jmol/src/org/jmol/viewer/Eval.java 2008-11-26 18:02:41 UTC (rev 10376) @@ -287,13 +287,15 @@ timeBeginExecution = System.currentTimeMillis(); this.historyDisabled = historyDisabled; try { + try { instructionDispatchLoop(listCommands); String script = viewer.getInterruptScript(); if (script != "") runScript(script, null); + } catch (Error er) { + evalError(er.getMessage()); + } } catch (ScriptException e) { - if (error) - error = true; setErrorMessage(e.toString()); scriptStatus(errorMessage); } @@ -490,17 +492,14 @@ debugScript); String[] data = new String[2]; data[0] = filename; - if (!viewer.getFileAsString(data)) - return loadError("io error reading " + data[0] + ": " + data[1]); + if (!viewer.getFileAsString(data)) { + error = true; + errorMessage = "io error reading " + data[0] + ": " + data[1]; + return false; + } return loadScript(filename, data[1], debugScript); } - private boolean loadError(String msg) { - error = true; - errorMessage = msg; - return false; - } - public String toString() { StringBuffer str = new StringBuffer(); str.append("Eval\n pc:"); @@ -689,6 +688,9 @@ } catch (Exception e) { error = true; errorMessage = e.toString(); + } catch (Error er) { + error = true; + errorMessage = er.toString(); } pc++; if (error) Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2008-11-26 18:00:36 UTC (rev 10375) +++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2008-11-26 18:02:41 UTC (rev 10376) @@ -3,6 +3,9 @@ version=11.7.14_dev +# new feature: jmolGetPropertyAsString("errorMessage") +# new feature: out-of-memory "Java heap error" trapping in scripts and image creation +# bug fix: build javax package does not include AxisAngle4d.class, Matrix4d.class # bug fix: compilation of myfunc({1 2 3}) fails # bug fix: hover watcher occasional uncaught exception # new feature: save [bonds|coordinates|orientation|selected|state|structure] DELETE Modified: trunk/Jmol/src/org/jmol/viewer/PropertyManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/PropertyManager.java 2008-11-26 18:00:36 UTC (rev 10375) +++ trunk/Jmol/src/org/jmol/viewer/PropertyManager.java 2008-11-26 18:02:41 UTC (rev 10376) @@ -81,6 +81,7 @@ "menu" , "<type>", "current", "minimizationInfo", "", "", "PointGroupInfo" , atomExpression, "(visible)", + "errorMessage", "", "", }; private final static int PROP_APPLET_INFO = 0; @@ -120,7 +121,8 @@ private final static int PROP_MENU = 29; private final static int PROP_MINIMIZATION_INFO = 30; private final static int PROP_POINTGROUP_INFO = 31; - private final static int PROP_COUNT = 32; + private final static int PROP_ERROR_MESSAGE = 32; + private final static int PROP_COUNT = 33; //// static methods used by Eval and Viewer //// @@ -358,6 +360,8 @@ return viewer.getStateInfo(myParam.toString()); case PROP_POINTGROUP_INFO: return viewer.getPointGroupInfo(myParam); + case PROP_ERROR_MESSAGE: + return viewer.getErrorMessage(); case PROP_TRANSFORM_INFO: return viewer.getMatrixRotate(); case PROP_DATA_INFO: Modified: trunk/Jmol/src/org/jmol/viewer/ScriptManager.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/ScriptManager.java 2008-11-26 18:00:36 UTC (rev 10375) +++ trunk/Jmol/src/org/jmol/viewer/ScriptManager.java 2008-11-26 18:02:41 UTC (rev 10376) @@ -162,24 +162,23 @@ } public void run() { - while (scriptQueue.size() != 0) { - /* System.out.println("run while size != 0: " + this + " pt=" + this.pt + " size=" + scriptQueue.size()); - for (int i = 0; i < scriptQueue.size(); i++) - System.out.println("queue: " + i + " " + scriptQueue.get(i)); - System.out.println("running: " + scriptQueueRunning[0] + " " + queueThreads[0]); - System.out.println("running: " + scriptQueueRunning[1] + " " + queueThreads[1]); - */ - - if (!runNextScript()) - try { - Thread.sleep(100); //cycle for the command watcher thread - } catch (Exception e) { - System.out.println(this + " Exception " + e.getMessage()); - break; //-- interrupt? - } - } + while (scriptQueue.size() != 0) { + /* System.out.println("run while size != 0: " + this + " pt=" + this.pt + " size=" + scriptQueue.size()); + for (int i = 0; i < scriptQueue.size(); i++) + System.out.println("queue: " + i + " " + scriptQueue.get(i)); + System.out.println("running: " + scriptQueueRunning[0] + " " + queueThreads[0]); + System.out.println("running: " + scriptQueueRunning[1] + " " + queueThreads[1]); + */ + if (!runNextScript()) + try { + Thread.sleep(100); //cycle for the command watcher thread + } catch (Exception e) { + System.out.println(this + " Exception " + e.getMessage()); + break; //-- interrupt? + } + } //System.out.println("scriptquenerunnable " + pt + " done " + this); - queueThreads[pt].interrupt(); + queueThreads[pt].interrupt(); stop(); } Modified: trunk/Jmol/src/org/jmol/viewer/Viewer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Viewer.java 2008-11-26 18:00:36 UTC (rev 10375) +++ trunk/Jmol/src/org/jmol/viewer/Viewer.java 2008-11-26 18:02:41 UTC (rev 10376) @@ -3507,18 +3507,21 @@ if (historyDisabled) strScript = strScript.substring(1); historyDisabled = historyDisabled || !isQueued; //no history for scriptWait 11.5.45 + setErrorMessage(null); boolean isOK = (isScriptFile ? eval.loadScriptFile(strScript, isQuiet) : eval.loadScriptString(strScript, isQuiet)); String strErrorMessage = eval.getErrorMessage(); + setErrorMessage(strErrorMessage); if (isOK) { isScriptQueued = isQueued; if (!isQuiet) statusManager.setStatusScriptStarted(++scriptIndex, strScript); eval.runEval(checkScriptOnly, !checkScriptOnly || fileOpenCheck, historyDisabled, listCommands); + setErrorMessage(strErrorMessage = eval.getErrorMessage()); if (!isQuiet) - statusManager.setScriptStatus("Jmol script terminated", eval - .getErrorMessage(), 1 + eval.getExecutionWalltime()); + statusManager.setScriptStatus("Jmol script terminated", + strErrorMessage, 1 + eval.getExecutionWalltime()); if (isScriptFile && writeInfo != null) createImage(writeInfo); } else { @@ -3537,7 +3540,7 @@ Logger.info("(use 'exit' to stop checking)"); isScriptQueued = true; if (returnType.equalsIgnoreCase("String")) - return eval.getErrorMessage(); + return strErrorMessage; // get Vector of Vectors of Vectors info Object info = getProperty(returnType, "jmolStatus", statusList); // reset to previous status list @@ -6407,7 +6410,9 @@ quality = Integer.parseInt(squality); createImage(file, type, null, quality, width, height); } catch (Exception e) { - System.out.println("error processing write request: " + type_name); + Logger.error(setErrorMessage("error processing write request: " + type_name + " "+ e.getMessage())); + } catch (Error er) { + Logger.error(setErrorMessage("error processing write request: " + type_name + " "+ er.getMessage())); } } @@ -6495,8 +6500,11 @@ try { err = statusManager.createImage(file, type, text_or_bytes, quality); } catch (Exception e) { - Logger.error("Error creating image: " + e.getMessage()); + Logger.error(setErrorMessage("Error creating image: " + e.getMessage())); + } catch (Error er) { + Logger.error(setErrorMessage("error creating image: "+ er.getMessage())); } + creatingImage = false; if (quality != Integer.MIN_VALUE) { resizeImage(saveWidth, saveHeight, true, false, true); @@ -6781,4 +6789,14 @@ FileManager.setLocalPath(this, dir, false); return dir; } + + private String errMsg; + private String setErrorMessage(String errMsg) { + return (this.errMsg = errMsg); + } + + public String getErrorMessage() { + return errMsg; + } + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2008-12-01 17:02:32
|
Revision: 10398 http://jmol.svn.sourceforge.net/jmol/?rev=10398&view=rev Author: hansonr Date: 2008-12-01 17:02:28 +0000 (Mon, 01 Dec 2008) Log Message: ----------- Modified Paths: -------------- trunk/Jmol/examples/basic/org/jmol/Integration.java trunk/Jmol/examples/basic/org/jmol/JmolTable.java trunk/Jmol/src/org/jmol/api/JmolSimpleViewer.java Modified: trunk/Jmol/examples/basic/org/jmol/Integration.java =================================================================== --- trunk/Jmol/examples/basic/org/jmol/Integration.java 2008-12-01 16:48:10 UTC (rev 10397) +++ trunk/Jmol/examples/basic/org/jmol/Integration.java 2008-12-01 17:02:28 UTC (rev 10398) @@ -66,11 +66,12 @@ // this initial ZAP command is REQUIRED in Jmol 11.4. viewer.evalString("zap"); // viewer.openFile("../samples/caffeine.xyz"); - viewer.openFile("http://chemapps.stolaf.edu/jmol/docs/examples-11/data/caffeine.xyz"); + + String strError = viewer.openFile("http://chemapps.stolaf.edu/jmol/docs/examples-11/data/caffeine.xyz"); //viewer.openStringInline(strXyzHOH); - viewer.evalString(strScript); - String strError = viewer.getOpenFileError(); - if (strError != null) + if (strError == null) + viewer.evalString(strScript); + else Logger.error(strError); } Modified: trunk/Jmol/examples/basic/org/jmol/JmolTable.java =================================================================== --- trunk/Jmol/examples/basic/org/jmol/JmolTable.java 2008-12-01 16:48:10 UTC (rev 10397) +++ trunk/Jmol/examples/basic/org/jmol/JmolTable.java 2008-12-01 17:02:28 UTC (rev 10398) @@ -66,26 +66,24 @@ public static void main(String[] args) { - int nobject = args.length; - int ncol = 2; + int nobject = args.length; + int ncol = 2; - Object[][] data = new Object[nobject][ncol]; - for (int i = 0; i < nobject; i++) { - data[i][0] = new JmolPanel(); - JmolViewer v = (JmolViewer)((JmolPanel)data[i][0]).getViewer(); - v.openFile(args[i]); - String strError = v.getOpenFileError(); - if (strError != null) { - Logger.error(strError); - } - - data[i][1] = args[i]; - } - String[] colNames = { "Structure", "Filename" }; - - showMolecules(colNames, data, nobject); + Object[][] data = new Object[nobject][ncol]; + for (int i = 0; i < nobject; i++) { + data[i][0] = new JmolPanel(); + JmolViewer v = (JmolViewer) ((JmolPanel) data[i][0]).getViewer(); + String strError = v.openFile(args[i]); + if (strError != null) { + Logger.error(strError); + } + data[i][1] = args[i]; } + String[] colNames = { "Structure", "Filename" }; + showMolecules(colNames, data, nobject); + } + public static void showMolecules(String[] colNames, Object[][] data, int nmol) { // set up the toplevel frame Modified: trunk/Jmol/src/org/jmol/api/JmolSimpleViewer.java =================================================================== --- trunk/Jmol/src/org/jmol/api/JmolSimpleViewer.java 2008-12-01 16:48:10 UTC (rev 10397) +++ trunk/Jmol/src/org/jmol/api/JmolSimpleViewer.java 2008-12-01 17:02:28 UTC (rev 10398) @@ -59,9 +59,25 @@ abstract public String openStringInline(String strModel); abstract public String openDOM(Object DOMNode); abstract public String openFile(String fileName); - //File reading is ASYNCHRONOUS - //NOT what you think it was.... abstract public String getOpenFileError(); - //Use jmolStatusListener to trap script termination errors for openFile - //Use (String) getProperty(null, "ErrorMessage", null) for openStringInline or openDOM + // File reading now returns the error directly. + // The following was NOT what you think it was: + // abstract public String getOpenFileError(); + // Somewhere way back when, "openFile" became a method that did not create + // the model set, but just an intermediary AtomSetCollection called the "clientFile" + // (and did not necessarily closed the file) + // then "getOpenFileError()" actually created the model set, deallocated the file open thread, + // and closed the file. + // + // For Jmol 11.7.14, the openXXX methods in this interface do everything -- + // open the file, creat the intermediary atomSetCollection, close the file, + // deallocate the file open thread, create the ModelSet, and return any error message. + // so there is no longer any need for getOpenFileError(). + + /** + * @param returnType "JSON", "string", "readable", and anything else returns the Java object. + * @param infoType + * @param paramInfo + * @return property data -- see org.jmol.viewer.PropertyManager.java + */ abstract public Object getProperty(String returnType, String infoType, String paramInfo); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |