From: <ha...@us...> - 2008-09-23 16:50:53
|
Revision: 9929 http://jmol.svn.sourceforge.net/jmol/?rev=9929&view=rev Author: hansonr Date: 2008-09-23 16:50:42 +0000 (Tue, 23 Sep 2008) Log Message: ----------- Jmol.js for 11.6 -- allowing JMOLJAR= URL variable Modified Paths: -------------- trunk/Jmol/appletweb/Jmol.js Modified: trunk/Jmol/appletweb/Jmol.js =================================================================== --- trunk/Jmol/appletweb/Jmol.js 2008-09-23 16:43:46 UTC (rev 9928) +++ trunk/Jmol/appletweb/Jmol.js 2008-09-23 16:50:42 UTC (rev 9929) @@ -1,6 +1,5 @@ +/* Jmol 11.0 script library Jmol.js (aka Jmol-11.js) 11:49 AM 9/23/2008 Bob Hanson -/* Jmol 11.0 script library Jmol.js (aka Jmol-11.js) 6:37 PM 3/28/2008 Bob Hanson - checkbox heirarchy -- see http://www.stolaf.edu/academics/jmol/docs/examples-11/check.htm based on: @@ -30,6 +29,7 @@ try{if(typeof(_jmol)!="undefined")exit() // place "?NOAPPLET" on your command line to check applet control action with a textarea +// place "?JMOLJAR=xxxxx" to use a specific jar file // bob hanson -- jmolResize(w,h) -- resizes absolutely or by percent (w or h 0.5 means 50%) // bob hanson -- jmolEvaluate -- evaluates molecular math 8:37 AM 2/23/2007 @@ -66,6 +66,28 @@ var defaultdir = "." var defaultjar = "JmolApplet.jar" + +// Note added 12:41 PM 9/21/2008 by Bob Hanson, ha...@st...: + +// JMOLJAR=xxxxx.jar on the URL for this page will override +// the JAR file specified in the jmolInitialize() call. + +// The idea is that it can be very useful to test a web page with different JAR files +// Or for an expert user to substitute a signed applet for an unsigned one +// so as to use a broader range of models or to create JPEG files, for example. + +// If the JAR file is not in the current directory (has any sort of "/" in its name) +// then the user is presented with a warning and asked whether it is OK to change Jar files. +// The default action, if the user just presses "OK" is to NOT allow the change. +// The user must type the word "yes" in the prompt box for the change to be approved. + +// If you don't want people to be able to switch in their own JAR file on your page, +// simply set this next line to read "var allowJMOLJAR = false". + + +var allowJMOLJAR = true + + var undefined; // for IE 5 ... wherein undefined is undefined //////////////////////////////////////////////////////////////// @@ -73,24 +95,22 @@ //////////////////////////////////////////////////////////////// function jmolInitialize(codebaseDirectory, fileNameOrUseSignedApplet) { - if (_jmol.initialized) { - //alert("jmolInitialize() should only be called *ONCE* within a page"); - return; + if(allowJMOLJAR && document.location.search.indexOf("JMOLJAR=")>=0) { + var f = document.location.search.split("JMOLJAR=")[1].split("&")[0]; + if (f.indexOf("/") >= 0) { + alert ("This web page URL is requesting that the applet used be " + f + ". This is a possible security risk, particularly if the applet is signed, because signed applets can read and write files on your local machine or network.") + var ok = prompt("Do you want to use applet " + f + "? ","yes or no") + if (ok == "yes") { + codebaseDirectory = f.substring(0, f.lastIndexOf("/")); + fileNameOrUseSignedApplet = f.substring(f.lastIndexOf("/") + 1); + } else { + _jmolGetJarFilename(fileNameOrUseSignedApplet); + alert("The web page URL was ignored. Continuing using " + _jmol.archivePath + ' in directory "' + codebaseDirectory + '"'); + } + } else { + fileNameOrUseSignedApplet = f; + } } - if (! codebaseDirectory) { - alert("codebaseDirectory is a required parameter to jmolInitialize"); - codebaseDirectory = "."; - } - -/* if (codebaseDirectory.indexOf("http://") == 0 || - codebaseDirectory.indexOf("https://") == 0) - alert("In general, an absolute URL is not recommended for codebaseDirectory.\n" + - "A directory- or docroot-relative reference is recommended.\n\n" + - "If you need to use an absolute URL (because, for example, the JAR and data\n" + - "files are on another server), then insert a space before\n" + - "\"http\" in your URL to avoid this warning message."); -*/ - _jmolSetCodebase(codebaseDirectory); _jmolGetJarFilename(fileNameOrUseSignedApplet); _jmolOnloadResetForms(); @@ -498,7 +518,7 @@ debugAlert: false, - codebase: ".", + codebase: "", modelbase: ".", appletCount: 0, @@ -695,7 +715,8 @@ var sz = _jmolGetAppletSize(size); var widthAndHeight = " width='" + sz[0] + "' height='" + sz[1] + "' "; var tHeader, tFooter; - + if (!codebase) + jmolInitialize("."); if (useIEObject || useHtml4Object) { params.name = 'jmolApplet' + nameSuffix; params.archive = archivePath; @@ -986,17 +1007,17 @@ } -_jmol.checkboxMasters = new Array(); -_jmol.checkboxItems = new Array(); +_jmol.checkboxMasters = {}; +_jmol.checkboxItems = {}; function jmolSetCheckboxGroup(chkMaster,chkBox) { var id = chkMaster; if(typeof(id)=="number")id = "jmolCheckbox" + id; chkMaster = document.getElementById(id); if (!chkMaster)alert("jmolSetCheckboxGroup: master checkbox not found: " + id); - var m = _jmol.checkboxMasters[id] = new Array(); + var m = _jmol.checkboxMasters[id] = {}; m.chkMaster = chkMaster; - m.chkGroup = new Array(); + m.chkGroup = {}; for (var i = 1; i < arguments.length; i++){ var id = arguments[i]; if(typeof(id)=="number")id = "jmolCheckbox" + id; @@ -1102,7 +1123,7 @@ }else if(!isNaN(A)||A==null){ sout+="\n"+key+"="+(A+""==""?"null":A) }else if(A.length){ - sout+=key+"=new Array()" + sout+=key+"=[]" for(var i=0;i<A.length;i++){ sout+="\n" if(typeof(A[i]) == "object"||typeof(A[i]) == "array"){ @@ -1113,7 +1134,7 @@ } }else{ if(key != ""){ - sout+=key+"=new Array()" + sout+=key+"={}" key+="." } @@ -1136,7 +1157,7 @@ function _jmolSortMessages(A){ if(!A || typeof(A)!="object")return [] - var B = new Array() + var B = [] for(var i=A.length-1;i>=0;i--)for(var j=0;j<A[i].length;j++)B[B.length]=A[i][j] if(B.length == 0) return B=B.sort(_jmolSortKey0) @@ -1351,7 +1372,7 @@ _jmol.thismodel=pdbid _jmol.thistargetsuffix=targetSuffix _jmol.thisurl=url - _jmol.modelArray = new Array() + _jmol.modelArray = [] url=_jmol.serverURL+"?returnfunction=_jmolLoadModel&returnArray=_jmol.modelArray&id="+targetSuffix+_jmolExtractPostData(url) _jmolDomScriptLoad(url) return url @@ -1368,7 +1389,7 @@ if(!optionalscript)optionalscript="" _jmol.optionalscript=optionalscript _jmol.thistargetsuffix=targetSuffix - _jmol.modelArray = new Array() + _jmol.modelArray = [] _jmol.thisurl = url url=_jmol.serverURL+"?returnfunction=_jmolLoadModel&returnArray=_jmol.modelArray&id="+targetSuffix+_jmolExtractPostData(url) _jmolDomScriptLoad(url) @@ -1395,7 +1416,7 @@ _jmol.thismodelMSA=value _jmol.thistargetsuffix=targetSuffix _jmol.thisurl=url - _jmol.modelArray = new Array() + _jmol.modelArray = [] loadModel=_jmolLoadModel _jmolDomScriptLoad(url) return url @@ -1410,7 +1431,7 @@ _jmol.optionalscript=optionalscript _jmol.thismodel=userid _jmol.thistargetsuffix=targetSuffix - _jmol.modelArray = new Array() + _jmol.modelArray = [] _jmol.thisurl = url url+="&returnFunction=_jmolLoadModel&returnArray=_jmol.modelArray&id="+targetSuffix _jmolDomScriptLoad(url) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2008-10-10 16:09:44
|
Revision: 10037 http://jmol.svn.sourceforge.net/jmol/?rev=10037&view=rev Author: hansonr Date: 2008-10-10 16:09:41 +0000 (Fri, 10 Oct 2008) Log Message: ----------- date stamp Modified Paths: -------------- trunk/Jmol/appletweb/Jmol.js Modified: trunk/Jmol/appletweb/Jmol.js =================================================================== --- trunk/Jmol/appletweb/Jmol.js 2008-10-10 16:07:24 UTC (rev 10036) +++ trunk/Jmol/appletweb/Jmol.js 2008-10-10 16:09:41 UTC (rev 10037) @@ -1,6 +1,6 @@ -/* Jmol 11.0 script library Jmol.js (aka Jmol-11.js) 11:49 AM 9/23/2008 Bob Hanson +/* Jmol 11.6 script library Jmol.js 11:06 AM 10/10/2008 Bob Hanson - checkbox heirarchy -- see http://www.stolaf.edu/academics/jmol/docs/examples-11/check.htm + checkbox heirarchy -- see http://chemapps.stolaf.edu/jmol/docs/examples-11/check.htm based on: * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2008-12-06 23:29:50
|
Revision: 10452 http://jmol.svn.sourceforge.net/jmol/?rev=10452&view=rev Author: hansonr Date: 2008-12-06 23:29:46 +0000 (Sat, 06 Dec 2008) Log Message: ----------- Jmol.js update Modified Paths: -------------- trunk/Jmol/appletweb/Jmol.js Modified: trunk/Jmol/appletweb/Jmol.js =================================================================== --- trunk/Jmol/appletweb/Jmol.js 2008-12-06 23:27:44 UTC (rev 10451) +++ trunk/Jmol/appletweb/Jmol.js 2008-12-06 23:29:46 UTC (rev 10452) @@ -1,4 +1,4 @@ -/* Jmol 11.6 script library Jmol.js 11:06 AM 10/10/2008 Bob Hanson +/* Jmol 11.7 script library Jmol.js 15:32 06.12.2008 Bob Hanson checkbox heirarchy -- see http://chemapps.stolaf.edu/jmol/docs/examples-11/check.htm @@ -61,8 +61,10 @@ // bh 3/2008 -- fixes IE7 bug in relation to jmolLoadInlineArray() // bh 6/2008 -- adds jmolSetAppletWindow() // Angel H. 6/2008 -- added html <label> tags to checkboxes and radio buttons [in jmolCheckbox() and _jmolRadio() functions] -// bh 7/2000 -- code fix "for(i..." not "for(var i..." - +// bh 7/2008 -- code fix "for(i..." not "for(var i..." +// bh 12/2008 -- jmolLoadInline, jmolLoadInlineArray, jmolLoadInlineScript, jmolAppendInlineScript, jmolAppendInlineArray all return error message or null (Jmol 11.7.16) +// bh 12/2008 -- jmolScriptWaitOutput() -- waits for script to complete and delivers output normally sent to console + var defaultdir = "." var defaultjar = "JmolApplet.jar" @@ -392,53 +394,55 @@ } function jmolLoadInline(model, targetSuffix) { - if (!model)return + if (!model)return "ERROR: NO MODEL" var applet=_jmolGetApplet(targetSuffix); - if (!applet)return + if (!applet)return "ERROR: NO APPLET" if (typeof(model) == "string") - applet.loadInlineString(model, "", false); + return applet.loadInlineString(model, "", false); else - applet.loadInlineArray(model, "", false); + return applet.loadInlineArray(model, "", false); } function jmolLoadInlineScript(model, script, targetSuffix) { - if (!model)return + if (!model)return "ERROR: NO MODEL" var applet=_jmolGetApplet(targetSuffix); - if (applet)applet.loadInlineString(model, script, false); + if (!applet)return "ERROR: NO APPLET" + return applet.loadInlineString(model, script, false); } function jmolLoadInlineArray(ModelArray, script, targetSuffix) { - if (!model)return + if (!model)return "ERROR: NO MODEL" if (!script)script="" var applet=_jmolGetApplet(targetSuffix); - if (!applet)return + if (!applet)return "ERROR: NO APPLET" try { - applet.loadInlineArray(ModelArray, script, false); + return applet.loadInlineArray(ModelArray, script, false); } catch (err) { //IE 7 bug - applet.loadInlineString(ModelArray.join("\n"), script, false); + return applet.loadInlineString(ModelArray.join("\n"), script, false); } } function jmolAppendInlineArray(ModelArray, script, targetSuffix) { - if (!model)return + if (!model)return "ERROR: NO MODEL" if (!script)script="" var applet=_jmolGetApplet(targetSuffix); - if (!applet)return + if (!applet)return "ERROR: NO APPLET" try { - applet.loadInlineArray(ModelArray, script, true); + return applet.loadInlineArray(ModelArray, script, true); } catch (err) { //IE 7 bug - applet.loadInlineString(ModelArray.join("\n"), script, true); + return applet.loadInlineString(ModelArray.join("\n"), script, true); } } function jmolAppendInlineScript(model, script, targetSuffix) { - if (!model)return + if (!model)return "ERROR: NO MODEL" var applet=_jmolGetApplet(targetSuffix); - if (applet)applet.loadInlineString(model, script, true); + if (!applet)return "ERROR: NO APPLET" + return applet.loadInlineString(model, script, true); } function jmolCheckBrowser(action, urlOrMessage, nowOrLater) { @@ -1256,6 +1260,20 @@ return s } +function jmolScriptWaitOutput(script, targetSuffix) { + if(!targetSuffix)targetSuffix="0" + var ret = "" + try{ + if (script) { + _jmolCheckBrowser(); + var applet=_jmolGetApplet(targetSuffix); + if (applet) ret += applet.scriptWaitOutput(script); + } + }catch(e){ + } + return ret; +} + function jmolEvaluate(molecularMath, targetSuffix) { //carries out molecular math on a model This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ahe...@us...> - 2008-12-10 22:22:24
|
Revision: 10485 http://jmol.svn.sourceforge.net/jmol/?rev=10485&view=rev Author: aherraez Date: 2008-12-10 21:58:42 +0000 (Wed, 10 Dec 2008) Log Message: ----------- Jmol.js - fix for _jmolOnloadResetForms causing "too much recursion" Modified Paths: -------------- trunk/Jmol/appletweb/Jmol.js Modified: trunk/Jmol/appletweb/Jmol.js =================================================================== --- trunk/Jmol/appletweb/Jmol.js 2008-12-10 21:58:19 UTC (rev 10484) +++ trunk/Jmol/appletweb/Jmol.js 2008-12-10 21:58:42 UTC (rev 10485) @@ -1087,17 +1087,19 @@ } function _jmolOnloadResetForms() { - _jmol.previousOnloadHandler = window.onload; - window.onload = - function() { - with (_jmol) { - if (buttonCount+checkboxCount+menuCount+radioCount+radioGroupCount > 0) { - var forms = document.forms; - for (var i = forms.length; --i >= 0; ) - forms[i].reset(); + if(window.onload && !_jmol.previousOnloadHandler) { + _jmol.previousOnloadHandler = window.onload; + window.onload = + function() { + with (_jmol) { + if (buttonCount+checkboxCount+menuCount+radioCount+radioGroupCount > 0) { + var forms = document.forms; + for (var i = forms.length; --i >= 0; ) + forms[i].reset(); + } + if (previousOnloadHandler) + previousOnloadHandler(); } - if (previousOnloadHandler) - previousOnloadHandler(); } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ahe...@us...> - 2008-12-11 20:36:28
|
Revision: 10486 http://jmol.svn.sourceforge.net/jmol/?rev=10486&view=rev Author: aherraez Date: 2008-12-11 20:36:23 +0000 (Thu, 11 Dec 2008) Log Message: ----------- undo previous revision Modified Paths: -------------- trunk/Jmol/appletweb/Jmol.js Modified: trunk/Jmol/appletweb/Jmol.js =================================================================== --- trunk/Jmol/appletweb/Jmol.js 2008-12-10 21:58:42 UTC (rev 10485) +++ trunk/Jmol/appletweb/Jmol.js 2008-12-11 20:36:23 UTC (rev 10486) @@ -1087,19 +1087,17 @@ } function _jmolOnloadResetForms() { - if(window.onload && !_jmol.previousOnloadHandler) { - _jmol.previousOnloadHandler = window.onload; - window.onload = - function() { - with (_jmol) { - if (buttonCount+checkboxCount+menuCount+radioCount+radioGroupCount > 0) { - var forms = document.forms; - for (var i = forms.length; --i >= 0; ) - forms[i].reset(); - } - if (previousOnloadHandler) - previousOnloadHandler(); + _jmol.previousOnloadHandler = window.onload; + window.onload = + function() { + with (_jmol) { + if (buttonCount+checkboxCount+menuCount+radioCount+radioGroupCount > 0) { + var forms = document.forms; + for (var i = forms.length; --i >= 0; ) + forms[i].reset(); } + if (previousOnloadHandler) + previousOnloadHandler(); } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2009-04-21 23:11:37
|
Revision: 10832 http://jmol.svn.sourceforge.net/jmol/?rev=10832&view=rev Author: hansonr Date: 2009-04-21 23:11:14 +0000 (Tue, 21 Apr 2009) Log Message: ----------- local variable i missing "var" Modified Paths: -------------- trunk/Jmol/appletweb/Jmol.js Modified: trunk/Jmol/appletweb/Jmol.js =================================================================== --- trunk/Jmol/appletweb/Jmol.js 2009-04-21 23:10:21 UTC (rev 10831) +++ trunk/Jmol/appletweb/Jmol.js 2009-04-21 23:11:14 UTC (rev 10832) @@ -1,4 +1,4 @@ -/* Jmol 11.7 script library Jmol.js 15:32 06.12.2008 Bob Hanson +/* Jmol 11.7 script library Jmol.js 12:17 AM 4/20/2009 Bob Hanson checkbox heirarchy -- see http://chemapps.stolaf.edu/jmol/docs/examples-11/check.htm @@ -789,7 +789,7 @@ function _jmolParams() { var t = ""; - for (i in _jmol.params) + for (var i in _jmol.params) if(_jmol.params[i]!="") t+=" <param name='"+i+"' value='"+_jmol.params[i]+"' />\n"; return t This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2009-05-12 03:17:37
|
Revision: 10855 http://jmol.svn.sourceforge.net/jmol/?rev=10855&view=rev Author: hansonr Date: 2009-05-12 03:17:29 +0000 (Tue, 12 May 2009) Log Message: ----------- Jmol.js with better XHTML support using jmolSetXhtml(id) Modified Paths: -------------- trunk/Jmol/appletweb/Jmol.js Modified: trunk/Jmol/appletweb/Jmol.js =================================================================== --- trunk/Jmol/appletweb/Jmol.js 2009-05-12 03:16:26 UTC (rev 10854) +++ trunk/Jmol/appletweb/Jmol.js 2009-05-12 03:17:29 UTC (rev 10855) @@ -65,6 +65,8 @@ // bh 12/2008 -- jmolLoadInline, jmolLoadInlineArray, jmolLoadInlineScript, jmolAppendInlineScript, jmolAppendInlineArray all return error message or null (Jmol 11.7.16) // bh 12/2008 -- jmolScriptWaitOutput() -- waits for script to complete and delivers output normally sent to console +// bh 5/2009 -- Support for XHTML using jmolSetXHTML(id) + var defaultdir = "." var defaultjar = "JmolApplet.jar" @@ -172,12 +174,12 @@ label = script.substring(0, 32); ++_jmol.buttonCount; var scriptIndex = _jmolAddScript(script); - var t = "<span id=\"span_"+id+"\""+(title ? " title =\"" + title + "\"":"")+"><input type='button' name='" + id + "' id='" + id + + var t = "<span id=\"span_"+id+"\""+(title ? " title=\"" + title + "\"":"")+"><input type='button' name='" + id + "' id='" + id + "' value='" + label + - "' onClick='_jmolClick(" + scriptIndex + _jmol.targetText + - ")' onMouseover='_jmolMouseOver(" + scriptIndex + - ");return true' onMouseout='_jmolMouseOut()' " + - _jmol.buttonCssText + "/></span>"; + "' onclick='_jmolClick(" + scriptIndex + _jmol.targetText + + ")' onmouseover='_jmolMouseOver(" + scriptIndex + + ");return true' onmouseout='_jmolMouseOut()' " + + _jmol.buttonCssText + " /></span>"; if (_jmol.debugAlert) alert(t); return _jmolDocumentWrite(t); @@ -201,13 +203,13 @@ var indexChecked = _jmolAddScript(scriptWhenChecked); var indexUnchecked = _jmolAddScript(scriptWhenUnchecked); var eospan = "</span>" - var t = "<span id=\"span_"+id+"\""+(title ? " title =\"" + title + "\"":"")+"><input type='checkbox' name='" + id + "' id='" + id + - "' onClick='_jmolCbClick(this," + + var t = "<span id=\"span_"+id+"\""+(title ? " title=\"" + title + "\"":"")+"><input type='checkbox' name='" + id + "' id='" + id + + "' onclick='_jmolCbClick(this," + indexChecked + "," + indexUnchecked + _jmol.targetText + - ")' onMouseover='_jmolCbOver(this," + indexChecked + "," + + ")' onmouseover='_jmolCbOver(this," + indexChecked + "," + indexUnchecked + - ");return true' onMouseout='_jmolMouseOut()' " + - (isChecked ? "checked " : "") + _jmol.checkboxCssText + "/>" + ");return true' onmouseout='_jmolMouseOut()' " + + (isChecked ? "checked='true' " : "")+ _jmol.checkboxCssText + " />" if (labelHtml.toLowerCase().indexOf("<td>")>=0) { t += eospan eospan = ""; @@ -279,9 +281,9 @@ label = script.substring(0, 32); ++_jmol.linkCount; var scriptIndex = _jmolAddScript(script); - var t = "<span id=\"span_"+id+"\""+(title ? " title =\"" + title + "\"":"")+"><a name='" + id + "' id='" + id + - "' href='javascript:_jmolClick(" + scriptIndex + _jmol.targetText + ");' onMouseover='_jmolMouseOver(" + scriptIndex + - ");return true;' onMouseout='_jmolMouseOut()' " + + var t = "<span id=\"span_"+id+"\""+(title ? " title=\"" + title + "\"":"")+"><a name='" + id + "' id='" + id + + "' href='javascript:_jmolClick(" + scriptIndex + _jmol.targetText + ");' onmouseover='_jmolMouseOver(" + scriptIndex + + ");return true;' onmouseout='_jmolMouseOut()' " + _jmol.linkCssText + ">" + label + "</a></span>"; if (_jmol.debugAlert) alert(t); @@ -297,8 +299,8 @@ if (size == undefined || isNaN(size)) size = 60; ++_jmol.cmdCount; - var t = "<span id=\"span_"+id+"\""+(title ? " title =\"" + title + "\"":"")+"><input name='" + id + "' id='" + id + - "' size='"+size+"'><input type=button value = '"+label+"' onClick='jmolScript(document.getElementById(\""+id+"\").value" + _jmol.targetText + ")'/></span>"; + var t = "<span id=\"span_"+id+"\""+(title ? " title=\"" + title + "\"":"")+"><input name='" + id + "' id='" + id + + "' size='"+size+"'><input type=button value = '"+label+"' onclick='jmolScript(document.getElementById(\""+id+"\").value" + _jmol.targetText + ")' /></span>"; if (_jmol.debugAlert) alert(t); return _jmolDocumentWrite(t); @@ -317,7 +319,7 @@ else if (size < 0) size = len; var sizeText = size ? " size='" + size + "' " : ""; - var t = "<span id=\"span_"+id+"\""+(title ? " title =\"" + title + "\"":"")+"><select name='" + id + "' id='" + id + + var t = "<span id=\"span_"+id+"\""+(title ? " title=\"" + title + "\"":"")+"><select name='" + id + "' id='" + id + "' onChange='_jmolMenuSelected(this" + _jmol.targetText + ")'" + sizeText + _jmol.menuCssText + ">"; for (var i = 0; i < len; ++i) { @@ -340,7 +342,7 @@ t += "</optgroup>"; } else { var scriptIndex = _jmolAddScript(script); - var selectedText = isSelected ? "' selected>" : "'>"; + var selectedText = isSelected ? "' selected='true'>" : "'>"; t += "<option value='" + scriptIndex + selectedText + text + "</option>"; } } @@ -822,6 +824,8 @@ "browser: " + browser + " version: " + browserVersion + " os: " + os + + " isBrowserCompliant: " + isBrowserCompliant + + " isJavaCompliant: " + isJavaCompliant + "\n\n" + ua; alert(msg); } @@ -829,12 +833,103 @@ return false; } +function jmolSetXHTML(id) { + _jmol.isXHTML = true + _jmol.XhtmlElement = null + _jmol.XhtmlAppendChild = false + if (id){ + _jmol.XhtmlElement = document.getElementById(id) + _jmol.XhtmlAppendChild = true + } +} + function _jmolDocumentWrite(text) { - if (_jmol.currentDocument) - _jmol.currentDocument.write(text); - return text; + if (_jmol.currentDocument) { + if (_jmol.isXHTML && !_jmol.XhtmlElement) { + var s = document.getElementsByTagName("script") + _jmol.XhtmlElement = s.item(s.length - 1) + _jmol.XhtmlAppendChild = false + } + if (_jmol.XhtmlElement) { + _jmolDomDocumentWrite(text) + } else { + _jmol.currentDocument.write(text); + } + } + return text; } +function _jmolDomDocumentWrite(data) { + var pt = 0 + var Ptr = [] + Ptr[0] = 0 + while (Ptr[0] < data.length) { + var child = _jmolGetDomElement(data, Ptr) + if (!child)break + if (_jmol.XhtmlAppendChild) + _jmol.XhtmlElement.appendChild(child) + else + _jmol.XhtmlElement.parentNode.insertBefore(child, _jmol.XhtmlElement); + } +} +function _jmolGetDomElement(data, Ptr, closetag, lvel) { + var e = document.createElement("span") + e.innerHTML = data + Ptr[0] = data.length + return e + +//unnecessary? + + if (!closetag)closetag = "" + if (!lvel) lvel = 0 + var pt0 = Ptr[0] + var pt = pt0 + while (pt < data.length && data.charAt(pt) != "<") pt++ + if (pt != pt0) { + var text = data.substring(pt0, pt) + Ptr[0] = pt + return document.createTextNode(text) + } + pt0 = ++pt + var ch + while (pt < data.length && "\n\r\t >".indexOf(ch = data.charAt(pt)) < 0) pt++ + var tagname = data.substring(pt0, pt) + var e = (tagname == closetag || tagname == "/" ? "" + : document.createElementNS ? document.createElementNS('http://www.w3.org/1999/xhtml', tagname) + : document.createElement(tagname)); + if (ch == ">") { + Ptr[0] = ++pt + return e + } + while (pt < data.length && (ch = data.charAt(pt)) != ">") { + while (pt < data.length && "\n\r\t ".indexOf(ch = data.charAt(pt)) >= 0) pt++ + pt0 = pt + while (pt < data.length && "\n\r\t =/>".indexOf(ch = data.charAt(pt)) < 0) pt++ + var attrname = data.substring(pt0, pt).toLowerCase() + if (attrname && ch != "=") + e.setAttribute(attrname, "true") + while (pt < data.length && "\n\r\t ".indexOf(ch = data.charAt(pt)) >= 0) pt++ + if (ch == "/") { + Ptr[0] = pt + 2 + return e + } else if (ch == "=") { + var quote = data.charAt(++pt) + pt0 = ++pt + while (pt < data.length && (ch = data.charAt(pt)) != quote) pt++ + var attrvalue = data.substring(pt0, pt) + e.setAttribute(attrname, attrvalue) + pt++ + } + } + Ptr[0] = ++pt + while (Ptr[0] < data.length) { + var child = _jmolGetDomElement(data, Ptr, "/" + tagname, lvel+1) + if (!child)break + e.appendChild(child) + } + return e +} + function _jmolPopup(url) { var popup = window.open(url, "JmolPopup", "left=150,top=150,height=400,width=600," + @@ -915,11 +1010,11 @@ separatorHtml = ""; var scriptIndex = _jmolAddScript(script); var eospan = "</span>" - var t = "<span id=\"span_"+id+"\""+(title ? " title =\"" + title + "\"":"")+"><input name='" - + groupName + "' id='"+id+"' type='radio' onClick='_jmolClick(" + - scriptIndex + _jmol.targetText + ");return true;' onMouseover='_jmolMouseOver(" + - scriptIndex + ");return true;' onMouseout='_jmolMouseOut()' " + - (isChecked ? "checked " : "") + _jmol.radioCssText + "/>" + var t = "<span id=\"span_"+id+"\""+(title ? " title=\"" + title + "\"":"")+"><input name='" + + groupName + "' id='"+id+"' type='radio' onclick='_jmolClick(" + + scriptIndex + _jmol.targetText + ");return true;' onmouseover='_jmolMouseOver(" + + scriptIndex + ");return true;' onmouseout='_jmolMouseOut()' " + + (isChecked ? "checked='true' " : "") + _jmol.radioCssText + " />" if (labelHtml.toLowerCase().indexOf("<td>")>=0) { t += eospan eospan = ""; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ahe...@us...> - 2009-06-13 11:57:27
|
Revision: 11019 http://jmol.svn.sourceforge.net/jmol/?rev=11019&view=rev Author: aherraez Date: 2009-06-13 11:57:20 +0000 (Sat, 13 Jun 2009) Log Message: ----------- update of jmolResize() so it is not tied to first applet Modified Paths: -------------- trunk/Jmol/appletweb/Jmol.js Modified: trunk/Jmol/appletweb/Jmol.js =================================================================== --- trunk/Jmol/appletweb/Jmol.js 2009-06-13 11:55:06 UTC (rev 11018) +++ trunk/Jmol/appletweb/Jmol.js 2009-06-13 11:57:20 UTC (rev 11019) @@ -32,6 +32,7 @@ // place "?JMOLJAR=xxxxx" to use a specific jar file // bob hanson -- jmolResize(w,h) -- resizes absolutely or by percent (w or h 0.5 means 50%) +// angel herraez -- update of jmolResize(w,h,targetSuffix) so it is not tied to first applet // bob hanson -- jmolEvaluate -- evaluates molecular math 8:37 AM 2/23/2007 // bob hanson -- jmolScriptMessage -- returns all "scriptStatus" messages 8:37 AM 2/23/2007 // bob hanson -- jmolScriptEcho -- returns all "scriptEcho" messages 8:37 AM 2/23/2007 @@ -1598,12 +1599,18 @@ /////////////////////////////////////////// -//new 9:49 AM 3/6/2007: +//new 9:49 AM 3/6/2007: updated 13 Jun 2009 -//both w and h are optional. -//if either is between 0 and 1, then it is taken as percent/100. -//if either is greater than 1, then it is taken as a size. -function jmolResize(w,h) { + /* + Resizes absolutely (pixels) or by percent of window (w or h 0.5 means 50%). + targetSuffix is optional and defaults to zero (first applet in page). + Both w and h are optional, but needed if you want to use targetSuffix. + h defaults to w + w defaults to 100% of window + If either w or h is between 0 and 1, then it is taken as percent/100. + If either w or h is greater than 1, then it is taken as a size (pixels). + */ +function jmolResize(w,h,targetSuffix) { _jmol.alerted = true; var percentW = (!w ? 100 : w <= 1 && w > 0 ? w * 100 : 0) var percentH = (!h ? percentW : h <= 1 && h > 0 ? h * 100 : 0) @@ -1615,10 +1622,10 @@ var width=window.innerWidth - netscapeScrollWidth; var height=window.innerHeight-netscapeScrollWidth; } - var applet = _jmolGetApplet(0); + var applet = _jmolGetApplet(targetSuffix); if(!applet)return; applet.style.width = (percentW ? width * percentW/100 : w)+"px" - applet.style.height = (percentH ? height * percentH/100 : h)+"px" + applet.style.height = (percentH ? height * percentH/100 : (h ? h : w))+"px" title=width + " " + height + " " + (new Date()) } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2009-06-14 14:31:20
|
Revision: 11023 http://jmol.svn.sourceforge.net/jmol/?rev=11023&view=rev Author: hansonr Date: 2009-06-14 14:31:13 +0000 (Sun, 14 Jun 2009) Log Message: ----------- debug comment out Modified Paths: -------------- trunk/Jmol/appletweb/Jmol.js Modified: trunk/Jmol/appletweb/Jmol.js =================================================================== --- trunk/Jmol/appletweb/Jmol.js 2009-06-14 03:58:32 UTC (rev 11022) +++ trunk/Jmol/appletweb/Jmol.js 2009-06-14 14:31:13 UTC (rev 11023) @@ -1626,6 +1626,6 @@ if(!applet)return; applet.style.width = (percentW ? width * percentW/100 : w)+"px" applet.style.height = (percentH ? height * percentH/100 : (h ? h : w))+"px" - title=width + " " + height + " " + (new Date()) + //title=width + " " + height + " " + (new Date()) } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2009-06-14 15:35:13
|
Revision: 11025 http://jmol.svn.sourceforge.net/jmol/?rev=11025&view=rev Author: hansonr Date: 2009-06-14 15:35:11 +0000 (Sun, 14 Jun 2009) Log Message: ----------- proposed changes for Angel. Modified Paths: -------------- trunk/Jmol/appletweb/Jmol.js Modified: trunk/Jmol/appletweb/Jmol.js =================================================================== --- trunk/Jmol/appletweb/Jmol.js 2009-06-14 14:46:01 UTC (rev 11024) +++ trunk/Jmol/appletweb/Jmol.js 2009-06-14 15:35:11 UTC (rev 11025) @@ -533,6 +533,7 @@ appletCount: 0, appletSuffixes: [], appletWindow: null, + allowedJmolSize = [10, 2048, 300], // min, max, default (pixels) buttonCount: 0, checkboxCount: 0, @@ -970,7 +971,6 @@ 2048 standard for GeoWall (http://geowall.geo.lsa.umich.edu/home.html) */ -if (allowedJmolSize==undefined) var allowedJmolSize = [1, 2048, 300] // min, max, default (pixels) function _jmolGetAppletSize(size) { /* AngelH, mar2007 Accepts single number or 2-value array, each one can be either: @@ -983,22 +983,18 @@ } else { width = height = size; } - // if percent, leave it as it is: - if ( width.toString().charAt(width.toString().length-1) != "%" ) { - width = parseFloat(width); // convert to nr., or strip text, or make zero - if ( width <= 1 && width > 0 ) { width = (width*100)+"%" } // decimal: convert to percent and quit - else if ( width >= allowedJmolSize[0] && width <= allowedJmolSize[1] ) { width = parseInt(width) } // accept only that range (pixels) - else { width = allowedJmolSize[2] } // default size 300 pixels - } - if ( height.toString().charAt(height.toString().length-1) != "%" ) { - height = parseFloat(height); - if ( height <= 1 && height > 0 ) { height = (height*100)+"%" } - else if ( height >= allowedJmolSize[0] && height <= allowedJmolSize[1] ) { height = parseInt(height) } - else { height = allowedJmolSize[2] } - } - return [width, height]; + return [_jmolFixDim(width), _jmolFixDim(height)]; } +function _jmolFixDim(x) { + var sx = "" + x; + return (sx.indexOf("%") == sx.length-1 ? sx + : (x = parseFloat(x)) <= 1 && x > 0 ? x * 100 + "%" + : (x = Math.floor(x)) < _jmol.allowedJmolSize[0] ? _jmol.allowedJmolSize[0] + : x > _jmol.allowedJmolSize[1] ? _jmol.allowedJmolSize[1] + : x); +} + function _jmolRadio(script, labelHtml, isChecked, separatorHtml, groupName, id, title) { ++_jmol.radioCount; if (groupName == undefined || groupName == null) @@ -1629,3 +1625,20 @@ //title=width + " " + height + " " + (new Date()) } +function jmolResizeApplet(size,targetSuffix) { + // See _jmolGetAppletSize() for the formats accepted as size [same used by jmolApplet()] + _jmol.alerted = true; + var applet = _jmolGetApplet(targetSuffix); + if(!applet)return; + var sz = _jmolGetAppletSize(size); + var szX = "" + sz[0]; + var szY = "" + sz[1]; + // Special case -1 means don't resize in that direction: + if ( (typeof size)=="object" ) { + if (size[0]==-1) szX = false + if (size[1]==-1) szY = false + } + if (szX) applet.style.width = szX.indexOf("%")!=-1 ? szX : szX+"px"; + if (szY) applet.style.height = szY.indexOf("%")!=-1 ? szY : szY+"px"; +} + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2009-06-14 16:02:03
|
Revision: 11026 http://jmol.svn.sourceforge.net/jmol/?rev=11026&view=rev Author: hansonr Date: 2009-06-14 16:02:02 +0000 (Sun, 14 Jun 2009) Log Message: ----------- proposed changes for Angel. Modified Paths: -------------- trunk/Jmol/appletweb/Jmol.js Modified: trunk/Jmol/appletweb/Jmol.js =================================================================== --- trunk/Jmol/appletweb/Jmol.js 2009-06-14 15:35:11 UTC (rev 11025) +++ trunk/Jmol/appletweb/Jmol.js 2009-06-14 16:02:02 UTC (rev 11026) @@ -992,7 +992,8 @@ : (x = parseFloat(x)) <= 1 && x > 0 ? x * 100 + "%" : (x = Math.floor(x)) < _jmol.allowedJmolSize[0] ? _jmol.allowedJmolSize[0] : x > _jmol.allowedJmolSize[1] ? _jmol.allowedJmolSize[1] - : x); + : isNaN(x) ? _jmol.allowedJmolSize[2] + : x); } function _jmolRadio(script, labelHtml, isChecked, separatorHtml, groupName, id, title) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2009-06-14 16:14:37
|
Revision: 11027 http://jmol.svn.sourceforge.net/jmol/?rev=11027&view=rev Author: hansonr Date: 2009-06-14 16:14:30 +0000 (Sun, 14 Jun 2009) Log Message: ----------- proposed changes for Angel. Modified Paths: -------------- trunk/Jmol/appletweb/Jmol.js Modified: trunk/Jmol/appletweb/Jmol.js =================================================================== --- trunk/Jmol/appletweb/Jmol.js 2009-06-14 16:02:02 UTC (rev 11026) +++ trunk/Jmol/appletweb/Jmol.js 2009-06-14 16:14:30 UTC (rev 11027) @@ -533,7 +533,7 @@ appletCount: 0, appletSuffixes: [], appletWindow: null, - allowedJmolSize = [10, 2048, 300], // min, max, default (pixels) + allowedJmolSize: [10, 2048, 300], // min, max, default (pixels) buttonCount: 0, checkboxCount: 0, @@ -989,7 +989,8 @@ function _jmolFixDim(x) { var sx = "" + x; return (sx.indexOf("%") == sx.length-1 ? sx - : (x = parseFloat(x)) <= 1 && x > 0 ? x * 100 + "%" + : (x = parseFloat(x)) < 0 ? "" + : x <= 1 && x > 0 ? x * 100 + "%" : (x = Math.floor(x)) < _jmol.allowedJmolSize[0] ? _jmol.allowedJmolSize[0] : x > _jmol.allowedJmolSize[1] ? _jmol.allowedJmolSize[1] : isNaN(x) ? _jmol.allowedJmolSize[2] @@ -1634,12 +1635,7 @@ var sz = _jmolGetAppletSize(size); var szX = "" + sz[0]; var szY = "" + sz[1]; - // Special case -1 means don't resize in that direction: - if ( (typeof size)=="object" ) { - if (size[0]==-1) szX = false - if (size[1]==-1) szY = false - } - if (szX) applet.style.width = szX.indexOf("%")!=-1 ? szX : szX+"px"; - if (szY) applet.style.height = szY.indexOf("%")!=-1 ? szY : szY+"px"; + if (szX) applet.style.width = szX.indexOf("%") >= 0 ? szX : szX+"px"; + if (szY) applet.style.height = szY.indexOf("%") >= 0 ? szY : szY+"px"; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2009-06-14 16:17:37
|
Revision: 11028 http://jmol.svn.sourceforge.net/jmol/?rev=11028&view=rev Author: hansonr Date: 2009-06-14 16:17:35 +0000 (Sun, 14 Jun 2009) Log Message: ----------- proposed changes for Angel. Modified Paths: -------------- trunk/Jmol/appletweb/Jmol.js Modified: trunk/Jmol/appletweb/Jmol.js =================================================================== --- trunk/Jmol/appletweb/Jmol.js 2009-06-14 16:14:30 UTC (rev 11027) +++ trunk/Jmol/appletweb/Jmol.js 2009-06-14 16:17:35 UTC (rev 11028) @@ -990,10 +990,10 @@ var sx = "" + x; return (sx.indexOf("%") == sx.length-1 ? sx : (x = parseFloat(x)) < 0 ? "" + : isNaN(x) ? _jmol.allowedJmolSize[2] : x <= 1 && x > 0 ? x * 100 + "%" : (x = Math.floor(x)) < _jmol.allowedJmolSize[0] ? _jmol.allowedJmolSize[0] : x > _jmol.allowedJmolSize[1] ? _jmol.allowedJmolSize[1] - : isNaN(x) ? _jmol.allowedJmolSize[2] : x); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2009-06-14 17:07:44
|
Revision: 11030 http://jmol.svn.sourceforge.net/jmol/?rev=11030&view=rev Author: hansonr Date: 2009-06-14 17:07:42 +0000 (Sun, 14 Jun 2009) Log Message: ----------- proposed changes for Angel. Modified Paths: -------------- trunk/Jmol/appletweb/Jmol.js Modified: trunk/Jmol/appletweb/Jmol.js =================================================================== --- trunk/Jmol/appletweb/Jmol.js 2009-06-14 16:43:35 UTC (rev 11029) +++ trunk/Jmol/appletweb/Jmol.js 2009-06-14 17:07:42 UTC (rev 11030) @@ -971,32 +971,6 @@ 2048 standard for GeoWall (http://geowall.geo.lsa.umich.edu/home.html) */ -function _jmolGetAppletSize(size) { - /* AngelH, mar2007 - Accepts single number or 2-value array, each one can be either: - percent (text string ending %), decimal 0 to 1 (percent/100), number, or text string (interpreted as nr.) - Size is now returned as string or number, no "px". - */ - var width, height; - if ( (typeof size) == "object" && size != null ) { - width = size[0]; height = size[1]; - } else { - width = height = size; - } - return [_jmolFixDim(width), _jmolFixDim(height)]; -} - -function _jmolFixDim(x) { - var sx = "" + x; - return (sx.indexOf("%") == sx.length-1 ? sx - : (x = parseFloat(x)) < 0 ? "" - : isNaN(x) ? _jmol.allowedJmolSize[2] - : x <= 1 && x > 0 ? x * 100 + "%" - : (x = Math.floor(x)) < _jmol.allowedJmolSize[0] ? _jmol.allowedJmolSize[0] - : x > _jmol.allowedJmolSize[1] ? _jmol.allowedJmolSize[1] - : x); -} - function _jmolRadio(script, labelHtml, isChecked, separatorHtml, groupName, id, title) { ++_jmol.radioCount; if (groupName == undefined || groupName == null) @@ -1632,10 +1606,36 @@ _jmol.alerted = true; var applet = _jmolGetApplet(targetSuffix); if(!applet)return; - var sz = _jmolGetAppletSize(size); - var szX = "" + sz[0]; - var szY = "" + sz[1]; - if (szX) applet.style.width = szX.indexOf("%") >= 0 ? szX : szX+"px"; - if (szY) applet.style.height = szY.indexOf("%") >= 0 ? szY : szY+"px"; + var sz = _jmolGetAppletSize(size, "px"); + sz[0] && (applet.style.width = sz[0]); + sz[1] && (applet.style.height = sz[1]); } +function _jmolGetAppletSize(size, units) { + /* AngelH, mar2007 + Accepts single number or 2-value array, each one can be either: + percent (text string ending %), decimal 0 to 1 (percent/100), number, or text string (interpreted as nr.) + Size is now returned as string or number, no "px". + */ + var width, height; + if ( (typeof size) == "object" && size != null ) { + width = size[0]; height = size[1]; + } else { + width = height = size; + } + return [_jmolFixDim(width, units), _jmolFixDim(height, units)]; +} + +function _jmolFixDim(x, units) { + var sx = "" + x; + return (sx.indexOf("%") == sx.length-1 ? sx + : (x = parseFloat(x)) < 0 ? "" + : x <= 1 && x > 0 ? x * 100 + "%" + : ((x = Math.floor(x)) < _jmol.allowedJmolSize[0] ? _jmol.allowedJmolSize[0] + : x > _jmol.allowedJmolSize[1] ? _jmol.allowedJmolSize[1] + : isNaN(x) ? _jmol.allowedJmolSize[2] + : x) + (units ? units : "")); +} + + + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2009-06-14 17:09:55
|
Revision: 11031 http://jmol.svn.sourceforge.net/jmol/?rev=11031&view=rev Author: hansonr Date: 2009-06-14 17:09:54 +0000 (Sun, 14 Jun 2009) Log Message: ----------- proposed changes for Angel. Modified Paths: -------------- trunk/Jmol/appletweb/Jmol.js Modified: trunk/Jmol/appletweb/Jmol.js =================================================================== --- trunk/Jmol/appletweb/Jmol.js 2009-06-14 17:07:42 UTC (rev 11030) +++ trunk/Jmol/appletweb/Jmol.js 2009-06-14 17:09:54 UTC (rev 11031) @@ -1631,9 +1631,9 @@ return (sx.indexOf("%") == sx.length-1 ? sx : (x = parseFloat(x)) < 0 ? "" : x <= 1 && x > 0 ? x * 100 + "%" - : ((x = Math.floor(x)) < _jmol.allowedJmolSize[0] ? _jmol.allowedJmolSize[0] + : (isNaN(x = Math.floor(x)) ? _jmol.allowedJmolSize[2] + : x < _jmol.allowedJmolSize[0] ? _jmol.allowedJmolSize[0] : x > _jmol.allowedJmolSize[1] ? _jmol.allowedJmolSize[1] - : isNaN(x) ? _jmol.allowedJmolSize[2] : x) + (units ? units : "")); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2009-06-14 17:18:14
|
Revision: 11032 http://jmol.svn.sourceforge.net/jmol/?rev=11032&view=rev Author: hansonr Date: 2009-06-14 17:18:12 +0000 (Sun, 14 Jun 2009) Log Message: ----------- proposed changes for Angel. Modified Paths: -------------- trunk/Jmol/appletweb/Jmol.js Modified: trunk/Jmol/appletweb/Jmol.js =================================================================== --- trunk/Jmol/appletweb/Jmol.js 2009-06-14 17:09:54 UTC (rev 11031) +++ trunk/Jmol/appletweb/Jmol.js 2009-06-14 17:18:12 UTC (rev 11032) @@ -1615,7 +1615,7 @@ /* AngelH, mar2007 Accepts single number or 2-value array, each one can be either: percent (text string ending %), decimal 0 to 1 (percent/100), number, or text string (interpreted as nr.) - Size is now returned as string or number, no "px". + [width, height] array of strings is returned, with units added if specified. */ var width, height; if ( (typeof size) == "object" && size != null ) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2009-06-14 17:19:20
|
Revision: 11033 http://jmol.svn.sourceforge.net/jmol/?rev=11033&view=rev Author: hansonr Date: 2009-06-14 17:19:18 +0000 (Sun, 14 Jun 2009) Log Message: ----------- proposed changes for Angel. Modified Paths: -------------- trunk/Jmol/appletweb/Jmol.js Modified: trunk/Jmol/appletweb/Jmol.js =================================================================== --- trunk/Jmol/appletweb/Jmol.js 2009-06-14 17:18:12 UTC (rev 11032) +++ trunk/Jmol/appletweb/Jmol.js 2009-06-14 17:19:18 UTC (rev 11033) @@ -1613,7 +1613,7 @@ function _jmolGetAppletSize(size, units) { /* AngelH, mar2007 - Accepts single number or 2-value array, each one can be either: + Accepts single number or 2-value array, each one can be one of: percent (text string ending %), decimal 0 to 1 (percent/100), number, or text string (interpreted as nr.) [width, height] array of strings is returned, with units added if specified. */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2009-06-15 15:32:27
|
Revision: 11035 http://jmol.svn.sourceforge.net/jmol/?rev=11035&view=rev Author: hansonr Date: 2009-06-15 15:32:05 +0000 (Mon, 15 Jun 2009) Log Message: ----------- proposed changes for Angel. Modified Paths: -------------- trunk/Jmol/appletweb/Jmol.js Modified: trunk/Jmol/appletweb/Jmol.js =================================================================== --- trunk/Jmol/appletweb/Jmol.js 2009-06-14 18:32:20 UTC (rev 11034) +++ trunk/Jmol/appletweb/Jmol.js 2009-06-15 15:32:05 UTC (rev 11035) @@ -1628,7 +1628,8 @@ function _jmolFixDim(x, units) { var sx = "" + x; - return (sx.indexOf("%") == sx.length-1 ? sx + return (sx.length == 0 ? (units ? "" : _jmol.allowedJmolSize[2]) + : sx.indexOf("%") == sx.length-1 ? sx : (x = parseFloat(x)) < 0 ? "" : x <= 1 && x > 0 ? x * 100 + "%" : (isNaN(x = Math.floor(x)) ? _jmol.allowedJmolSize[2] @@ -1639,3 +1640,4 @@ + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2009-11-14 16:36:55
|
Revision: 11741 http://jmol.svn.sourceforge.net/jmol/?rev=11741&view=rev Author: hansonr Date: 2009-11-14 16:36:46 +0000 (Sat, 14 Nov 2009) Log Message: ----------- Jmol.js for try/catch with different servers in different frames Modified Paths: -------------- trunk/Jmol/appletweb/Jmol.js Modified: trunk/Jmol/appletweb/Jmol.js =================================================================== --- trunk/Jmol/appletweb/Jmol.js 2009-11-14 00:00:22 UTC (rev 11740) +++ trunk/Jmol/appletweb/Jmol.js 2009-11-14 16:36:46 UTC (rev 11741) @@ -68,7 +68,7 @@ // bh 5/2009 -- Support for XHTML using jmolSetXHTML(id) // ah & bh 6/2009 -- New jmolResizeApplet() more flexible, similar to jmolApplet() size syntax - +// bh 11/2009 -- care in accessing top.document var defaultdir = "." var defaultjar = "JmolApplet.jar" @@ -91,9 +91,6 @@ // simply set this next line to read "var allowJMOLJAR = false". -var allowJMOLJAR = true - - var undefined; // for IE 5 ... wherein undefined is undefined //////////////////////////////////////////////////////////////// @@ -104,8 +101,8 @@ if (_jmol.initialized) return; _jmol.initialized = true; - if(allowJMOLJAR && top.location.search.indexOf("JMOLJAR=")>=0) { - var f = top.location.search.split("JMOLJAR=")[1].split("&")[0]; + if(_jmol.jmoljar) { + var f = _jmol.jmoljar; if (f.indexOf("/") >= 0) { alert ("This web page URL is requesting that the applet used be " + f + ". This is a possible security risk, particularly if the applet is signed, because signed applets can read and write files on your local machine or network.") var ok = prompt("Do you want to use applet " + f + "? ","yes or no") @@ -611,6 +608,10 @@ archivePath: null, // JmolApplet0.jar OR JmolAppletSigned0.jar previousOnloadHandler: null, + + jmoljar: null, + useNoApplet: false, + ready: {} } @@ -688,12 +689,19 @@ (os != "mac" && browser == "mozilla" && browserVersion >= 5) || (os == "win" && browser == "opera" && browserVersion >= 8) || (os == "mac" && browser == "safari" && browserVersion >= 412.2); - - doTranslate = true; - haveSetTranslate = false; + try { + if (top.location.search.indexOf("JMOLJAR=")>=0) + jmoljar = top.location.search.split("JMOLJAR=")[1].split("&")[0]; + } catch(e) { + // can't access top.location + } + try { + useNoApplet = (top.location.search.indexOf("NOAPPLET")>=0); + } catch(e) { + // can't access top.document + } } - function jmolSetCallback(callbackName,funcName) { _jmol.params[callbackName] = funcName } @@ -1554,7 +1562,7 @@ ///////////////applet fake for testing buttons///////////// -if(top.location.search.indexOf("NOAPPLET")>=0){ +if(_jmol.useNoApplet){ jmolApplet = function(w){ var s="<table style='background-color:black' width="+w+"><tr height="+w+">" +"<td align=center valign=center style='background-color:white'>" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2009-12-16 16:25:20
|
Revision: 11922 http://jmol.svn.sourceforge.net/jmol/?rev=11922&view=rev Author: hansonr Date: 2009-12-16 16:25:11 +0000 (Wed, 16 Dec 2009) Log Message: ----------- Jmol.js for appletweb Modified Paths: -------------- trunk/Jmol/appletweb/Jmol.js Modified: trunk/Jmol/appletweb/Jmol.js =================================================================== --- trunk/Jmol/appletweb/Jmol.js 2009-12-16 16:14:30 UTC (rev 11921) +++ trunk/Jmol/appletweb/Jmol.js 2009-12-16 16:25:11 UTC (rev 11922) @@ -69,6 +69,10 @@ // bh 5/2009 -- Support for XHTML using jmolSetXHTML(id) // ah & bh 6/2009 -- New jmolResizeApplet() more flexible, similar to jmolApplet() size syntax // bh 11/2009 -- care in accessing top.document +// bh 12/2009 -- added jmolSetParameter(name, value) +// bh 12/2009 -- added PARAMS=name:value;name:value;name:value... for command line +// bh 12/2009 -- overhaul of target checking + var defaultdir = "." var defaultjar = "JmolApplet.jar" @@ -165,12 +169,12 @@ // Basic controls //////////////////////////////////////////////////////////////// +// undefined means it wasn't there; null means it was explicitly listed as null (so as to skip it) + function jmolButton(script, label, id, title) { _jmolInitCheck(); - if (id == undefined || id == null) - id = "jmolButton" + _jmol.buttonCount; - if (label == undefined || label == null) - label = script.substring(0, 32); + id != undefined && id != null || (id = "jmolButton" + _jmol.buttonCount); + label != undefined && label != null || (label = script.substring(0, 32)); ++_jmol.buttonCount; var scriptIndex = _jmolAddScript(script); var t = "<span id=\"span_"+id+"\""+(title ? " title=\"" + title + "\"":"")+"><input type='button' name='" + id + "' id='" + id + @@ -187,8 +191,7 @@ function jmolCheckbox(scriptWhenChecked, scriptWhenUnchecked, labelHtml, isChecked, id, title) { _jmolInitCheck(); - if (id == undefined || id == null) - id = "jmolCheckbox" + _jmol.checkboxCount; + id != undefined && id != null || (id = "jmolCheckbox" + _jmol.checkboxCount); ++_jmol.checkboxCount; if (scriptWhenChecked == undefined || scriptWhenChecked == null || scriptWhenUnchecked == undefined || scriptWhenUnchecked == null) { @@ -237,12 +240,10 @@ alert("invalid arrayOfRadioButtons"); return; } - if (separatorHtml == undefined || separatorHtml == null) - separatorHtml = " "; + separatorHtml != undefined && separatorHtml != null || (separatorHtml = " "); var len = arrayOfRadioButtons.length; jmolStartNewRadioGroup(); - if (!groupName) - groupName = "jmolRadioGroup" + (_jmol.radioGroupCount - 1); + groupName || (groupName = "jmolRadioGroup" + (_jmol.radioGroupCount - 1)); var t = "<span id='"+(id ? id : groupName)+"'>"; for (var i = 0; i < len; ++i) { if (i == len - 1) @@ -274,10 +275,8 @@ function jmolLink(script, label, id, title) { _jmolInitCheck(); - if (id == undefined || id == null) - id = "jmolLink" + _jmol.linkCount; - if (label == undefined || label == null) - label = script.substring(0, 32); + id != undefined && id != null || (id = "jmolLink" + _jmol.linkCount); + label != undefined && label != null || (label = script.substring(0, 32)); ++_jmol.linkCount; var scriptIndex = _jmolAddScript(script); var t = "<span id=\"span_"+id+"\""+(title ? " title=\"" + title + "\"":"")+"><a name='" + id + "' id='" + id + @@ -291,12 +290,9 @@ function jmolCommandInput(label, size, id, title) { _jmolInitCheck(); - if (id == undefined || id == null) - id = "jmolCmd" + _jmol.cmdCount; - if (label == undefined || label == null) - label = "Execute"; - if (size == undefined || isNaN(size)) - size = 60; + id != undefined && id != null || (id = "jmolCmd" + _jmol.cmdCount); + label != undefined && label != null || (label = "Execute"); + size != undefined && !isNaN(size) || (size = 60); ++_jmol.cmdCount; var t = "<span id=\"span_"+id+"\""+(title ? " title=\"" + title + "\"":"")+"><input name='" + id + "' id='" + id + "' size='"+size+"' onkeypress='_jmolCommandKeyPress(event,\""+id+"\"" + _jmol.targetText + ")'><input type=button value = '"+label+"' onclick='jmolScript(document.getElementById(\""+id+"\").value" + _jmol.targetText + ")' /></span>"; @@ -316,8 +312,7 @@ function jmolMenu(arrayOfMenuItems, size, id, title) { _jmolInitCheck(); - if (id == undefined || id == null) - id = "jmolMenu" + _jmol.menuCount; + id != undefined && id != null || (id = "jmolMenu" + _jmol.menuCount); ++_jmol.menuCount; var type = typeof arrayOfMenuItems; if (type != null && type == "object" && arrayOfMenuItems.length) { @@ -342,9 +337,8 @@ } else { script = text = menuItem; } - if (text == undefined || text == null) - text = script; - if (script=="#optgroup") { + text != undefined && text != null || (text = script); + if (script=="#optgroup") { t += "<optgroup label='" + text + "'>"; } else if (script=="#optgroupEnd") { t += "</optgroup>"; @@ -352,7 +346,7 @@ var scriptIndex = _jmolAddScript(script); var selectedText = isSelected ? "' selected='true'>" : "'>"; t += "<option value='" + scriptIndex + selectedText + text + "</option>"; - } + } } t += "</select></span>"; if (_jmol.debugAlert) @@ -426,7 +420,7 @@ function jmolLoadInlineArray(ModelArray, script, targetSuffix) { if (!model)return "ERROR: NO MODEL" - if (!script)script="" + script || (script="") var applet=_jmolGetApplet(targetSuffix); if (!applet)return "ERROR: NO APPLET" try { @@ -439,7 +433,7 @@ function jmolAppendInlineArray(ModelArray, script, targetSuffix) { if (!model)return "ERROR: NO MODEL" - if (!script)script="" + script || (script="") var applet=_jmolGetApplet(targetSuffix); if (!applet)return "ERROR: NO APPLET" try { @@ -460,8 +454,7 @@ function jmolCheckBrowser(action, urlOrMessage, nowOrLater) { if (typeof action == "string") { action = action.toLowerCase(); - if (action != "alert" && action != "redirect" && action != "popup") - action = null; + action == "alert" || action == "redirect" || action == "popup" || (action = null); } if (typeof action != "string") alert("jmolCheckBrowser(action, urlOrMessage, nowOrLater)\n\n" + @@ -702,10 +695,27 @@ } } +function jmolSetParameter(name,value) { + _jmol.params[name] = value +} + function jmolSetCallback(callbackName,funcName) { _jmol.params[callbackName] = funcName } + try { +// note this is done FIRST, so it cannot override a setting done by the developer + if (top.location.search.indexOf("PARAMS=")>=0) { + var pars = unescape(top.location.search.split("PARAMS=")[1].split("&")[0]).split(";"); + for (var i = 0; i < pars.length; i++) { + var p = pars[i].split(":"); + jmolSetParameter(p[0],p[1]); + } + } + } catch(e) { + // can't access top.location + } + function jmolSetSyncId(n) { return _jmol.params["syncId"] = n } @@ -737,17 +747,14 @@ put "px" where needed, avoid where not. */ with (_jmol) { - if (! nameSuffix) - nameSuffix = appletCount; + nameSuffix == undefined && (nameSuffix = appletCount); appletSuffixes.push(nameSuffix); ++appletCount; - if (! script) - script = "select *"; + script || (script = "select *"); var sz = _jmolGetAppletSize(size); var widthAndHeight = " width='" + sz[0] + "' height='" + sz[1] + "' "; var tHeader, tFooter; - if (!codebase) - jmolInitialize("."); + codebase || jmolInitialize("."); if (useIEObject || useHtml4Object) { params.name = 'jmolApplet' + nameSuffix; params.archive = archivePath; @@ -903,8 +910,8 @@ //unnecessary? - if (!closetag)closetag = "" - if (!lvel) lvel = 0 + closetag || (closetag = "") + lvel || (lvel = 0) var pt0 = Ptr[0] var pt = pt0 while (pt < data.length && data.charAt(pt) != "<") pt++ @@ -986,14 +993,11 @@ function _jmolRadio(script, labelHtml, isChecked, separatorHtml, groupName, id, title) { ++_jmol.radioCount; - if (groupName == undefined || groupName == null) - groupName = "jmolRadioGroup" + (_jmol.radioGroupCount - 1); + groupName != undefined && groupName != null || (groupName = "jmolRadioGroup" + (_jmol.radioGroupCount - 1)); if (!script) return ""; - if (labelHtml == undefined || labelHtml == null) - labelHtml = script.substring(0, 32); - if (! separatorHtml) - separatorHtml = ""; + labelHtml != undefined && labelHtml != null || (labelHtml = script.substring(0, 32)); + separatorHtml || (separatorHtml = "") var scriptIndex = _jmolAddScript(script); var eospan = "</span>" var t = "<span id=\"span_"+id+"\""+(title ? " title=\"" + title + "\"":"")+"><input name='" @@ -1026,7 +1030,7 @@ var target = "jmolApplet" + (targetSuffix ? targetSuffix : "0"); var applet = _jmolFindApplet(target); if (applet) return applet - if(!_jmol.alerted)alert("could not find applet " + target); + _jmol.alerted || alert("could not find applet " + target); _jmol.alerted = true; return null } @@ -1061,7 +1065,7 @@ } function _jmolAddScript(script) { - if (! script) + if (!script) return 0; var index = _jmol.scripts.length; _jmol.scripts[index] = script; @@ -1288,7 +1292,7 @@ //called by server, but in client //overload this function to customize return _jmol.remoteURL=remoteURL - if(isError)alert(errorMessage) + isError && alert(errorMessage) jmolLoadInlineScript(array.join("\n"),_jmol.optionalscript,targetSuffix) } @@ -1304,12 +1308,12 @@ function jmolGetPropertyAsString(sKey,sValue,targetSuffix) { var applet = _jmolGetApplet(targetSuffix); - if(!sValue)sValue="" + sValue == undefined && (sValue=""); return (applet ? applet.getPropertyAsString(sKey,sValue) + "" : "") } function jmolGetPropertyAsJSON(sKey,sValue,targetSuffix) { - if(!sValue)sValue = "" + sValue == undefined && (sValue = "") var applet = _jmolGetApplet(targetSuffix); try { return (applet ? applet.getPropertyAsJSON(sKey,sValue) + "" : "") @@ -1319,7 +1323,7 @@ } function jmolGetPropertyAsJavaObject(sKey,sValue,targetSuffix) { - if(!sValue)sValue = "" + sValue == undefined && (sValue = "") var applet = _jmolGetApplet(targetSuffix); return (applet ? applet.getProperty(sKey,sValue) : null) } @@ -1333,7 +1337,7 @@ ///////// synchronous scripting //////// function jmolScriptWait(script, targetSuffix) { - if(!targetSuffix)targetSuffix="0" + targetSuffix == undefined && (targetSuffix="0") var Ret=jmolScriptWaitAsArray(script, targetSuffix) var s = "" for(var i=Ret.length;--i>=0;) @@ -1343,7 +1347,7 @@ } function jmolScriptWaitOutput(script, targetSuffix) { - if(!targetSuffix)targetSuffix="0" + targetSuffix == undefined && (targetSuffix="0") var ret = "" try{ if (script) { @@ -1360,7 +1364,7 @@ //carries out molecular math on a model - if(!targetSuffix)targetSuffix="0" + targetSuffix == undefined && (targetSuffix="0") var result = "" + jmolGetPropertyAsJavaObject("evaluate", molecularMath, targetSuffix); var s = result.replace(/\-*\d+/,"") if (s == "" && !isNaN(parseInt(result)))return parseInt(result); @@ -1371,7 +1375,7 @@ function jmolScriptEcho(script, targetSuffix) { // returns a newline-separated list of all echos from a script - if(!targetSuffix)targetSuffix="0" + targetSuffix == undefined && (targetSuffix="0") var Ret=jmolScriptWaitAsArray(script, targetSuffix) var s = "" for(var i=Ret.length;--i>=0;) @@ -1383,7 +1387,7 @@ function jmolScriptMessage(script, targetSuffix) { // returns a newline-separated list of all messages from a script, ending with "script completed\n" - if(!targetSuffix)targetSuffix="0" + targetSuffix == undefined && (targetSuffix="0") var Ret=jmolScriptWaitAsArray(script, targetSuffix) var s = "" for(var i=Ret.length;--i>=0;) @@ -1415,12 +1419,12 @@ //////////// save/restore orientation ///////////// function jmolSaveOrientation(id, targetSuffix) { - if(!targetSuffix)targetSuffix="0" - return _jmol["savedOrientation"+id] = jmolGetPropertyAsArray("orientationInfo","info",targetSuffix).moveTo + targetSuffix == undefined && (targetSuffix="0") + return _jmol["savedOrientation"+id] = jmolGetPropertyAsArray("orientationInfo","info",targetSuffix).moveTo } function jmolRestoreOrientation(id, targetSuffix) { - if(!targetSuffix)targetSuffix="0" + targetSuffix == undefined && (targetSuffix="0") var s=_jmol["savedOrientation"+id] if (!s || s == "")return s=s.replace(/1\.0/,"0") @@ -1428,8 +1432,8 @@ } function jmolRestoreOrientationDelayed(id, delay, targetSuffix) { - if(arguments.length < 2)delay=1; - if(!targetSuffix)targetSuffix="0" + arguments.length < 2 && (delay=1) + targetSuffix == undefined && (targetSuffix="0") var s=_jmol["savedOrientation"+id] if (!s || s == "")return s=s.replace(/1\.0/,delay) @@ -1449,25 +1453,24 @@ */ function jmolAppletAddParam(appletCode,name,value){ - if(value == "")return appletCode - return appletCode.replace(/\<param/,"\n<param name='"+name+"' value='"+value+"' />\n<param") + return (value == "" ? appletCode : appletCode.replace(/\<param/,"\n<param name='"+name+"' value='"+value+"' />\n<param")) } ///////////////auto load Research Consortium for Structural Biology (RCSB) data /////////// function jmolLoadAjax_STOLAF_RCSB(fileformat,pdbid,optionalscript,targetSuffix){ - if(!_jmol.thismodel)_jmol.thismodel = "1crn" - if(!_jmol.serverURL)_jmol.serverURL="http://fusion.stolaf.edu/chemistry/jmol/getajaxjs.cfm" - if(!_jmol.RCSBserver)_jmol.RCSBserver="http://www.rcsb.org" - if(!_jmol.defaultURL_RCSB)_jmol.defaultURL_RCSB=_jmol.RCSBserver+"/pdb/files/1CRN.CIF" - if(!fileformat)fileformat="PDB" - if(!pdbid)pdbid=prompt("Enter a 4-digit PDB ID:",_jmol.thismodel) + _jmol.thismodel || (_jmol.thismodel = "1crn") + _jmol.serverURL || (_jmol.serverURL="http://fusion.stolaf.edu/chemistry/jmol/getajaxjs.cfm") + _jmol.RCSBserver || (_jmol.RCSBserver="http://www.rcsb.org") + _jmol.defaultURL_RCSB || (_jmol.defaultURL_RCSB=_jmol.RCSBserver+"/pdb/files/1CRN.CIF") + fileformat || (fileformat="PDB") + pdbid || (pdbid=prompt("Enter a 4-digit PDB ID:",_jmol.thismodel)) if(!pdbid || pdbid.length != 4)return "" - if(!targetSuffix)targetSuffix="0" - if(!optionalscript)optionalscript="" + targetSuffix || (targetSuffix="0") + optionalscript || (optionalscript="") var url=_jmol.defaultURL_RCSB.replace(/1CRN/g,pdbid.toUpperCase()) - if(fileformat!="CIF")url=url.replace(/CIF/,fileformat) + fileformat=="CIF" || (url=url.replace(/CIF/,fileformat)) _jmol.optionalscript=optionalscript _jmol.thismodel=pdbid _jmol.thistargetsuffix=targetSuffix @@ -1482,11 +1485,11 @@ function jmolLoadAjax_STOLAF_ANY(url, userid, optionalscript,targetSuffix){ _jmol.serverURL="http://fusion.stolaf.edu/chemistry/jmol/getajaxjs.cfm" - if(!_jmol.thisurlANY)_jmol.thisurlANY = "http://www.stolaf.edu/depts/chemistry/mo/struc/data/ycp3-1.mol" - if(!url)url=prompt("Enter any (uncompressed file) URL:", _jmol.thisurlANY) - if(!userid)userid="0" - if(!targetSuffix)targetSuffix="0" - if(!optionalscript)optionalscript="" + _jmol.thisurlANY || (_jmol.thisurlANY = "http://www.stolaf.edu/depts/chemistry/mo/struc/data/ycp3-1.mol") + url || (url=prompt("Enter any (uncompressed file) URL:", _jmol.thisurlANY)) + userid || (userid="0") + targetSuffix || (targetSuffix="0") + optionalscript || (optionalscript="") _jmol.optionalscript=optionalscript _jmol.thistargetsuffix=targetSuffix _jmol.modelArray = [] @@ -1500,16 +1503,16 @@ function jmolLoadAjax_MSA(key,value,optionalscript,targetSuffix){ - if(!_jmol.thiskeyMSA)_jmol.thiskeyMSA = "mineral" - if(!_jmol.thismodelMSA)_jmol.thismodelMSA = "quartz" - if(!_jmol.ajaxURL_MSA)_jmol.ajaxURL_MSA="http://rruff.geo.arizona.edu/AMS/result.php?mineral=quartz&viewing=ajaxjs" - if(!key)key=prompt("Enter a field:", _jmol.thiskeyMSA) + _jmol.thiskeyMSA || (_jmol.thiskeyMSA = "mineral") + _jmol.thismodelMSA || (_jmol.thismodelMSA = "quartz") + _jmol.ajaxURL_MSA || (_jmol.ajaxURL_MSA="http://rruff.geo.arizona.edu/AMS/result.php?mineral=quartz&viewing=ajaxjs") + key || (key=prompt("Enter a field:", _jmol.thiskeyMSA)) if(!key)return "" - if(!value)value=prompt("Enter a "+key+":", _jmol.thismodelMSA) + value || (value=prompt("Enter a "+key+":", _jmol.thismodelMSA)) if(!value)return "" - if(!targetSuffix)targetSuffix="0" - if(!optionalscript)optionalscript="" - if(optionalscript == 1)optionalscript='load "" {1 1 1}' + targetSuffix || (targetSuffix="0") + optionalscript || (optionalscript="") + optionalscript == 1 && (optionalscript='load "" {1 1 1}') var url=_jmol.ajaxURL_MSA.replace(/mineral/g,key).replace(/quartz/g,value) _jmol.optionalscript=optionalscript _jmol.thiskeyMSA=key @@ -1525,9 +1528,9 @@ function jmolLoadAjaxJS(url, userid, optionalscript,targetSuffix){ - if(!userid)userid="0" - if(!targetSuffix)targetSuffix="0" - if(!optionalscript)optionalscript="" + userid || (userid="0") + targetSuffix || (targetSuffix="0") + optionalscript || (optionalscript="") _jmol.optionalscript=optionalscript _jmol.thismodel=userid _jmol.thistargetsuffix=targetSuffix This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2010-01-22 13:10:11
|
Revision: 12183 http://jmol.svn.sourceforge.net/jmol/?rev=12183&view=rev Author: hansonr Date: 2010-01-22 13:10:00 +0000 (Fri, 22 Jan 2010) Log Message: ----------- Jmol.js update allows [funcname, ....params....] to be put in place of a script in any jmolControl for execution of JavaScript function funcname(jmolControl,[funcname, ...params...]) instead of a direct jmolScript call Modified Paths: -------------- trunk/Jmol/appletweb/Jmol.js Modified: trunk/Jmol/appletweb/Jmol.js =================================================================== --- trunk/Jmol/appletweb/Jmol.js 2010-01-22 12:59:03 UTC (rev 12182) +++ trunk/Jmol/appletweb/Jmol.js 2010-01-22 13:10:00 UTC (rev 12183) @@ -1,4 +1,4 @@ -/* Jmol 11.7 script library Jmol.js 12:17 AM 4/20/2009 Bob Hanson +/* Jmol 11.9 script library Jmol.js 6:56 AM 1/20/2010 Bob Hanson checkbox heirarchy -- see http://chemapps.stolaf.edu/jmol/docs/examples-11/check.htm @@ -72,6 +72,12 @@ // bh 12/2009 -- added jmolSetParameter(name, value) // bh 12/2009 -- added PARAMS=name:value;name:value;name:value... for command line // bh 12/2009 -- overhaul of target checking +// bh 1/2010 -- all _xxxx() methods ALWAYS have complete argument list +// bh 1/2010 -- adds option to run a JavaScript function from any Jmol control. +// This is accomplished by passing an array rather than a script: +// jmolHref([myfunc,"my param 1", "my param 2"], "testing") +// function myfunc(jmolControlObject, [myfunc,"my param 1", "my param 2"], target){...} +// and allows much more flexibility with responding to controls var defaultdir = "." var defaultjar = "JmolApplet.jar" @@ -179,7 +185,7 @@ var scriptIndex = _jmolAddScript(script); var t = "<span id=\"span_"+id+"\""+(title ? " title=\"" + title + "\"":"")+"><input type='button' name='" + id + "' id='" + id + "' value='" + label + - "' onclick='_jmolClick(" + scriptIndex + _jmol.targetText + + "' onclick='_jmolClick(this," + scriptIndex + _jmol.targetText + ")' onmouseover='_jmolMouseOver(" + scriptIndex + ");return true' onmouseout='_jmolMouseOut()' " + _jmol.buttonCssText + " /></span>"; @@ -280,7 +286,7 @@ ++_jmol.linkCount; var scriptIndex = _jmolAddScript(script); var t = "<span id=\"span_"+id+"\""+(title ? " title=\"" + title + "\"":"")+"><a name='" + id + "' id='" + id + - "' href='javascript:_jmolClick(" + scriptIndex + _jmol.targetText + ");' onmouseover='_jmolMouseOver(" + scriptIndex + + "' href='javascript:_jmolClick(this," + scriptIndex + _jmol.targetText + ");' onmouseover='_jmolMouseOver(" + scriptIndex + ");return true;' onmouseout='_jmolMouseOut()' " + _jmol.linkCssText + ">" + label + "</a></span>"; if (_jmol.debugAlert) @@ -304,12 +310,18 @@ function _jmolCommandKeyPress(e, id, target) { var keycode = (window.event ? window.event.keyCode : e ? e.which : 0); if (keycode == 13) { - jmolScript(document.getElementById(id).value, target) + var inputBox = document.getElementById(id) + _jmolScriptExecute(inputBox, inputBox.value, target) } } +function _jmolScriptExecute(element,script,target) { + if (typeof(script) == "object") + script[0](element, script, target) + else + jmolScript(script, target) +} - function jmolMenu(arrayOfMenuItems, size, id, title) { _jmolInitCheck(); id != undefined && id != null || (id = "jmolMenu" + _jmol.menuCount); @@ -379,7 +391,7 @@ function jmolSetTarget(targetSuffix) { _jmol.targetSuffix = targetSuffix; - _jmol.targetText = targetSuffix ? ",\"" + targetSuffix + "\"" : ""; + _jmol.targetText = targetSuffix ? ",\"" + targetSuffix + "\"" : ",0"; } function jmolScript(script, targetSuffix) { @@ -560,7 +572,7 @@ menuCssText: "", targetSuffix: 0, - targetText: "", + targetText: ",0", scripts: [""], params: { syncId: ("" + Math.random()).substring(3), @@ -1001,7 +1013,7 @@ var scriptIndex = _jmolAddScript(script); var eospan = "</span>" var t = "<span id=\"span_"+id+"\""+(title ? " title=\"" + title + "\"":"")+"><input name='" - + groupName + "' id='"+id+"' type='radio' onclick='_jmolClick(" + + + groupName + "' id='"+id+"' type='radio' onclick='_jmolClick(this," + scriptIndex + _jmol.targetText + ");return true;' onmouseover='_jmolMouseOver(" + scriptIndex + ");return true;' onmouseout='_jmolMouseOut()' " + (isChecked ? "checked='true' " : "") + _jmol.radioCssText + " />" @@ -1072,22 +1084,22 @@ return index; } -function _jmolClick(scriptIndex, targetSuffix, elementClicked) { +function _jmolClick(elementClicked, scriptIndex, targetSuffix) { _jmol.element = elementClicked; - jmolScript(_jmol.scripts[scriptIndex], targetSuffix); + _jmolScriptExecute(elementClicked, _jmol.scripts[scriptIndex], targetSuffix); } function _jmolMenuSelected(menuObject, targetSuffix) { var scriptIndex = menuObject.value; if (scriptIndex != undefined) { - jmolScript(_jmol.scripts[scriptIndex], targetSuffix); + _jmolScriptExecute(menuObject, _jmol.scripts[scriptIndex], targetSuffix); return; } var len = menuObject.length; if (typeof len == "number") { for (var i = 0; i < len; ++i) { if (menuObject[i].selected) { - _jmolClick(menuObject[i].value, targetSuffix); + _jmolClick(menuObject[i], menuObject[i].value, targetSuffix); return; } } @@ -1145,7 +1157,7 @@ function _jmolCbClick(ckbox, whenChecked, whenUnchecked, targetSuffix) { _jmol.control = ckbox - _jmolClick(ckbox.checked ? whenChecked : whenUnchecked, targetSuffix); + _jmolClick(ckbox, ckbox.checked ? whenChecked : whenUnchecked, targetSuffix); if(_jmol.checkboxMasters[ckbox.id]) _jmolNotifyGroup(_jmol.checkboxMasters[ckbox.id], ckbox.checked) if(_jmol.checkboxItems[ckbox.id]) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2010-01-24 22:16:05
|
Revision: 12218 http://jmol.svn.sourceforge.net/jmol/?rev=12218&view=rev Author: hansonr Date: 2010-01-24 22:15:57 +0000 (Sun, 24 Jan 2010) Log Message: ----------- jmolAppletInline fix for files containing | Modified Paths: -------------- trunk/Jmol/appletweb/Jmol.js Modified: trunk/Jmol/appletweb/Jmol.js =================================================================== --- trunk/Jmol/appletweb/Jmol.js 2010-01-24 22:09:25 UTC (rev 12217) +++ trunk/Jmol/appletweb/Jmol.js 2010-01-24 22:15:57 UTC (rev 12218) @@ -1,4 +1,4 @@ -/* Jmol 11.9 script library Jmol.js 6:56 AM 1/20/2010 Bob Hanson +/* Jmol 11.9 script library Jmol.js 4:12 PM 1/24/2010 Bob Hanson checkbox heirarchy -- see http://chemapps.stolaf.edu/jmol/docs/examples-11/check.htm @@ -78,7 +78,7 @@ // jmolHref([myfunc,"my param 1", "my param 2"], "testing") // function myfunc(jmolControlObject, [myfunc,"my param 1", "my param 2"], target){...} // and allows much more flexibility with responding to controls - +// bh 1/2010 -- loadAppletInline() trashing JVXL file isosurfaces -- requires Jmol 11.9.22; no adverse effect for previous versions var defaultdir = "." var defaultjar = "JmolApplet.jar" @@ -756,7 +756,10 @@ function _jmolApplet(size, inlineModel, script, nameSuffix) { /* AngelH, mar2007 Fixed percent / pixel business, to avoid browser errors: - put "px" where needed, avoid where not. + put "px" where needed, avoid where not. + + Bob Hanson, 1/2010 + Fixed inline escape changing returns to | */ with (_jmol) { nameSuffix == undefined && (nameSuffix = appletCount); @@ -997,7 +1000,7 @@ function _jmolSterilizeInline(model) { var inlineModel = - model.replace(/\r|\n|\r\n/g, "|").replace(/'/g, "'"); + model.replace(/\r|\n|\r\n/g, (model.indexOf("|") >= 0 ? "\\/n" : "|")).replace(/'/g, "'"); if (_jmol.debugAlert) alert("inline model:\n" + inlineModel); return inlineModel; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2010-04-06 17:30:53
|
Revision: 12775 http://jmol.svn.sourceforge.net/jmol/?rev=12775&view=rev Author: hansonr Date: 2010-04-06 17:30:46 +0000 (Tue, 06 Apr 2010) Log Message: ----------- adds jmolSetMemory(nMb) Modified Paths: -------------- trunk/Jmol/appletweb/Jmol.js Modified: trunk/Jmol/appletweb/Jmol.js =================================================================== --- trunk/Jmol/appletweb/Jmol.js 2010-04-06 16:26:56 UTC (rev 12774) +++ trunk/Jmol/appletweb/Jmol.js 2010-04-06 17:30:46 UTC (rev 12775) @@ -1,4 +1,4 @@ -/* Jmol 11.9 script library Jmol.js 6:56 AM 1/20/2010 Bob Hanson +/* Jmol 12.0 script library Jmol.js 9:48 PM 4/5/2010 Bob Hanson checkbox heirarchy -- see http://chemapps.stolaf.edu/jmol/docs/examples-11/check.htm @@ -78,6 +78,7 @@ // jmolHref([myfunc,"my param 1", "my param 2"], "testing") // function myfunc(jmolControlObject, [myfunc,"my param 1", "my param 2"], target){...} // and allows much more flexibility with responding to controls +// bh 4/2010 -- added jmolSetMemoryMb(nMb) var defaultdir = "." var defaultjar = "JmolApplet.jar" @@ -564,6 +565,7 @@ buttonCssText: "", checkboxCssClass: null, checkboxCssText: "", + java_arguments: "-Xmx512m", radioCssClass: null, radioCssText: "", linkCssClass: null, @@ -707,6 +709,10 @@ } } +function jmolSetMemoryMb(nMb) { + _jmol.java_arguments = "-Xmx" + Math.round(nMb) + "m" +} + function jmolSetParameter(name,value) { _jmol.params[name] = value } @@ -776,6 +782,8 @@ params.mayscript = 'true'; params.codebase = codebase; } + if (java_arguments) + params.java_arguments = java_arguments; if (useIEObject) { // use MSFT IE6 object tag with .cab file reference winCodebase = (windowsCabUrl ? " codebase='" + windowsCabUrl + "'\n" : ""); params.code = 'JmolApplet'; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ahe...@us...> - 2011-01-30 11:57:25
|
Revision: 15071 http://jmol.svn.sourceforge.net/jmol/?rev=15071&view=rev Author: aherraez Date: 2011-01-30 11:57:19 +0000 (Sun, 30 Jan 2011) Log Message: ----------- revision of Jmol.js for Mac/Chrome change Modified Paths: -------------- trunk/Jmol/appletweb/Jmol.js Modified: trunk/Jmol/appletweb/Jmol.js =================================================================== --- trunk/Jmol/appletweb/Jmol.js 2011-01-30 11:56:54 UTC (rev 15070) +++ trunk/Jmol/appletweb/Jmol.js 2011-01-30 11:57:19 UTC (rev 15071) @@ -1,4 +1,4 @@ -/* Jmol 12.0 script library Jmol.js 9:48 PM 4/5/2010 Bob Hanson +/* Jmol 12.0 script library Jmol.js 9:48 PM 1/31/2011 Bob Hanson checkbox heirarchy -- see http://chemapps.stolaf.edu/jmol/docs/examples-11/check.htm @@ -79,6 +79,8 @@ // function myfunc(jmolControlObject, [myfunc,"my param 1", "my param 2"], target){...} // and allows much more flexibility with responding to controls // bh 4/2010 -- added jmolSetMemoryMb(nMb) +// ah 1/2011 -- wider detection of browsers; more browsers now use the object tag instead of the applet tag; +// fix of object tag (removed classid) accounts for change of behavior in Chrome var defaultdir = "." var defaultjar = "JmolApplet.jar" @@ -585,21 +587,20 @@ boxmessage: "Downloading JmolApplet ..." }, ua: navigator.userAgent.toLowerCase(), - uaVersion: parseFloat(navigator.appVersion), + // uaVersion: parseFloat(navigator.appVersion), // not used os: "unknown", browser: "unknown", browserVersion: 0, hasGetElementById: !!document.getElementById, isJavaEnabled: navigator.javaEnabled(), - isNetscape47Win: false, - isIEWin: false, + // isNetscape47Win: false, // not used, N4.7 is no longer supported even for detection useIEObject: false, useHtml4Object: false, windowsClassId: "clsid:8AD9C840-044E-11D1-B3E9-00805F499D93", windowsCabUrl: - "http://java.sun.com/update/1.5.0/jinstall-1_5_0_05-windows-i586.cab", + "http://java.sun.com/update/1.6.0/jinstall-6u22-windows-i586.cab", isBrowserCompliant: false, isJavaCompliant: false, @@ -641,21 +642,23 @@ } _jmolTestUA("konqueror") || - _jmolTestUA("safari") || + _jmolTestUA("webkit") || _jmolTestUA("omniweb") || _jmolTestUA("opera") || _jmolTestUA("webtv") || _jmolTestUA("icab") || _jmolTestUA("msie") || - (_jmol.ua.indexOf("compatible") < 0 && _jmolTestUA("mozilla")); + (_jmol.ua.indexOf("compatible") < 0 && _jmolTestUA("mozilla")); //Netscape, Mozilla, Seamonkey, Firefox and anything assimilated _jmolTestOS("linux") || _jmolTestOS("unix") || _jmolTestOS("mac") || _jmolTestOS("win"); - isNetscape47Win = (os == "win" && browser == "mozilla" && + /* not used: + isNetscape47Win = (os == "win" && browser == "mozilla" && browserVersion >= 4.78 && browserVersion <= 4.8); + */ if (os == "win") { isBrowserCompliant = hasGetElementById; @@ -673,7 +676,7 @@ } else { isBrowserCompliant = hasGetElementById && !((browser == "msie") || - (browser == "safari" && browserVersion < 125.12)); + (browser == "webkit" && browserVersion < 125.12)); } } else if (os == "linux" || os == "unix") { if (browser == "konqueror" && browserVersion <= 3.3) @@ -689,13 +692,11 @@ isFullyCompliant = isBrowserCompliant && isJavaCompliant; - // IE5.5 works just fine ... but let's push them to Sun Java - isIEWin = (os == "win" && browser == "msie" && browserVersion >= 5.5); - useIEObject = isIEWin; + useIEObject = (os == "win" && browser == "msie" && browserVersion >= 5.5); useHtml4Object = - (os != "mac" && browser == "mozilla" && browserVersion >= 5) || - (os == "win" && browser == "opera" && browserVersion >= 8) || - (os == "mac" && browser == "safari" && browserVersion >= 412.2); + (browser == "mozilla" && browserVersion >= 5) || + (browser == "opera" && browserVersion >= 8) || + (browser == "webkit" && browserVersion >= 412.2); try { if (top.location.search.indexOf("JMOLJAR=")>=0) jmoljar = top.location.search.split("JMOLJAR=")[1].split("&")[0]; @@ -777,42 +778,42 @@ var tHeader, tFooter; codebase || jmolInitialize("."); if (useIEObject || useHtml4Object) { - params.name = 'jmolApplet' + nameSuffix; params.archive = archivePath; params.mayscript = 'true'; params.codebase = codebase; - } - if (java_arguments) - params.java_arguments = java_arguments; - if (useIEObject) { // use MSFT IE6 object tag with .cab file reference - winCodebase = (windowsCabUrl ? " codebase='" + windowsCabUrl + "'\n" : ""); params.code = 'JmolApplet'; tHeader = "<object name='jmolApplet" + nameSuffix + "' id='jmolApplet" + nameSuffix + "' " + appletCssText + "\n" + - " classid='" + windowsClassId + "'\n" + winCodebase + widthAndHeight + ">\n"; + widthAndHeight + "\n"; tFooter = "</object>"; + } + if (java_arguments) + params.java_arguments = java_arguments; + if (useIEObject) { // use MSFT IE6 object tag with .cab file reference + tHeader += " classid='" + windowsClassId + "'\n" + + (windowsCabUrl ? " codebase='" + windowsCabUrl + "'\n" : "") + ">\n"; } else if (useHtml4Object) { // use HTML4 object tag - tHeader = - "<object name='jmolApplet" + nameSuffix + - "' id='jmolApplet" + nameSuffix + "' " + appletCssText + "\n" + - " classid='java:JmolApplet'\n" + - " type='application/x-java-applet'\n" + - widthAndHeight + ">\n"; - tFooter = "</object>"; + tHeader += " type='application/x-java-applet'\n>\n"; + /* " classid='java:JmolApplet'\n" + AH removed this + Chromium Issue 62076: Java Applets using an <object> with a classid paramater don't load. + http://code.google.com/p/chromium/issues/detail?id=62076 + They say this is the correct behavior according to the spec, and there's no indication at this point + that WebKit will be changing the handling, so eventually Safari will acquire this behavior too. + Removing the classid parameter seems to be well tolerated by all browsers (even IE!). + */ } else { // use applet tag tHeader = "<applet name='jmolApplet" + nameSuffix + - "' id='jmolApplet" + nameSuffix + - "' " + appletCssText + + "' id='jmolApplet" + nameSuffix + "' " + appletCssText + "\n" + + widthAndHeight + "\n" + " code='JmolApplet'" + " archive='" + archivePath + "' codebase='" + codebase + "'\n" + - widthAndHeight + " mayscript='true'>\n"; tFooter = "</applet>"; } var visitJava; - if (isIEWin || useHtml4Object) { + if (useIEObject || useHtml4Object) { var szX = "width:" + sz[0] if ( szX.indexOf("%")==-1 ) szX+="px" var szY = "height:" + sz[1] @@ -1077,8 +1078,7 @@ function _jmolFindAppletInWindow(win, target) { var doc = win.document; - // getElementById fails on MacOSX Safari & Mozilla - if (_jmol.useHtml4Object || _jmol.useIEObject) + if (doc.getElementById(target)) return doc.getElementById(target); else if (doc.applets) return doc.applets[target]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2011-04-09 16:59:30
|
Revision: 15376 http://jmol.svn.sourceforge.net/jmol/?rev=15376&view=rev Author: hansonr Date: 2011-04-09 16:59:24 +0000 (Sat, 09 Apr 2011) Log Message: ----------- adds jmolLoadAjax_STOLAF_NIH() Modified Paths: -------------- trunk/Jmol/appletweb/Jmol.js Modified: trunk/Jmol/appletweb/Jmol.js =================================================================== --- trunk/Jmol/appletweb/Jmol.js 2011-04-09 16:57:10 UTC (rev 15375) +++ trunk/Jmol/appletweb/Jmol.js 2011-04-09 16:59:24 UTC (rev 15376) @@ -81,6 +81,7 @@ // bh 4/2010 -- added jmolSetMemoryMb(nMb) // ah 1/2011 -- wider detection of browsers; more browsers now use the object tag instead of the applet tag; // fix of object tag (removed classid) accounts for change of behavior in Chrome +// bh 3/2011 -- added jmolLoadAjax_STOLAF_NIH var defaultdir = "." var defaultjar = "JmolApplet.jar" @@ -1503,6 +1504,29 @@ return url } + +///////////////auto load NIH CACTVS data -- compound name or SMILES /////////// + +function jmolLoadAjax_STOLAF_NIH(compoundid,optionalscript,targetSuffix){ + _jmol.thismodel || (_jmol.thismodel = "aspirin") + _jmol.serverURL || (_jmol.serverURL="http://fusion.stolaf.edu/chemistry/jmol/getajaxjs.cfm") + _jmol.defaultURL_NIH || (_jmol.defaultURL_NIH="http://cactus.nci.nih.gov/chemical/structure/FILE/file?format=sdf&get3d=True") + compoundid || (compoundid=prompt("Enter a compound name or a SMILES string:",_jmol.thismodel)) + if(!compoundid)return "" + targetSuffix || (targetSuffix="0") + optionalscript || (optionalscript="") + var url=_jmol.defaultURL_NIH.replace(/FILE/g,compoundid) + _jmol.optionalscript=optionalscript + _jmol.thismodel=compoundid + _jmol.thistargetsuffix=targetSuffix + _jmol.thisurl=url + _jmol.modelArray = [] + url=_jmol.serverURL+"?returnfunction=_jmolLoadModel&returnArray=_jmol.modelArray&id="+targetSuffix+_jmolExtractPostData(url) + _jmolDomScriptLoad(url) + return url +} + + /////////////// St. Olaf College AJAX server -- ANY URL /////////// function jmolLoadAjax_STOLAF_ANY(url, userid, optionalscript,targetSuffix){ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |