X-Git-Url: http://source.jalview.org/gitweb/?p=jalviewjs.git;a=blobdiff_plain;f=site%2Fswingjs%2Fjs%2FSwingJS.js;fp=site%2Fswingjs%2Fjs%2FSwingJS.js;h=8bf0e05b63106502fd0bc96a740785c63fefeebb;hp=adb4fcdebffc415d0ae0c81ce336ab270c3c3ebc;hb=b9b7a352eee79b7764c3b09c9d19663075061d8c;hpb=7301a2415adab88038b291fc54caeeb3a5a47a44 diff --git a/site/swingjs/js/SwingJS.js b/site/swingjs/js/SwingJS.js index adb4fcd..8bf0e05 100644 --- a/site/swingjs/js/SwingJS.js +++ b/site/swingjs/js/SwingJS.js @@ -1,415 +1,415 @@ -// SwingJS.js - -// BH 4/28/2015 10:15:32 PM adds getAppletHtml -// BH 4/2/2015 5:17:44 PM adds SwingJS.getJavaResource(path) - -// BH 3/27/2015 6:34:49 AM just a shell - -if(typeof(jQuery)=="undefined") alert ("Note -- jQuery is required for SwingJS, but it's not defined.") - -if (typeof(SwingJS) == "undefined") { - - SwingJS = {}; - -(function (SwingJS, $) { - - SwingJS.getApplet = function(id, Info, checkOnly) { - return SwingJS._Applet._get(id, Info, checkOnly); - } - - SwingJS.getJavaResource = function(path) { - if (path.indexOf("http") != 0) { - var applet = Jmol._applets[java.lang.Thread.currentThread().getName()]; - path = (applet.__Info.resourcePath || applet.__Info.j2sPath) + "/" + path - } - System.out.println("Swingjs.js getJavaResource " + path) - var s = Jmol._getFileData(path); - if (s.indexOf("[Exception") == 0) - return null; - if (path.lastIndexOf(".css") == path.length - 4) { - path = path.substring(0, path.lastIndexOf("/") + 1) + "images/"; - s = s.replace(/images\//g, path) - jQuery("head").append(jQuery("")); - return s; - } else if (path.lastIndexOf(".js") == path.length - 3) { - try { - eval(s); - } catch (e) { - alert("error processing " + s) - return null; - } - } - return s; - } - - // optional Info here - SwingJS.getAppletHtml = function(applet, Info) { - if (Info) { - var d = SwingJS._document; - SwingJS._document = null; - applet = SwingJS.getApplet(applet, Info); - SwingJS._document = d; - } - return applet._code; - } - - SwingJS._Applet = function(id, Info, checkOnly){ - window[id] = this; - this._appletType = "SwingJS._Applet" + (Info.isSigned ? " (signed)" : ""); - this._isJava = true; - this._availableParams = null; // all allowed - if (checkOnly) - return this; - this._isSigned = Info.isSigned; - this._readyFunction = Info.readyFunction; - this._ready = false; - this._isJava = true; - this._isInfoVisible = false; - this._applet = null; - this._memoryLimit = Info.memoryLimit || 512; - this._canScript = function(script) {return true;}; - this._savedOrientations = []; - this._initialize = function(jarPath, jarFile) { - var doReport = false; - SwingJS._jarFile && (jarFile = SwingJS._jarFile); - if(this._jarFile) { - var f = this._jarFile; - 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") { - jarPath = f.substring(0, f.lastIndexOf("/")); - jarFile = f.substring(f.lastIndexOf("/") + 1); - } else { - doReport = true; - } - } else { - jarFile = f; - } - this_isSigned = Info.isSigned = (jarFile.indexOf("Signed") >= 0); - } - this._jarPath = Info.jarPath = jarPath || "."; - this._jarFile = Info.jarFile = jarFile; - if (doReport) - alert ("The web page URL was ignored. Continuing using " + this._jarFile + ' in directory "' + this._jarPath + '"'); - // could do something like this: Jmol.controls == undefined || Jmol.controls._onloadResetForms(); - } - this._create(id, Info); - return this; - } - - ;(function(Applet, proto) { - - Applet._get = function(id, Info, checkOnly) { - - checkOnly || (checkOnly = false); - Info || (Info = {}); - var DefaultInfo = { - code: "swingjs.test.TanSugd3S", - uncompressed: true, - color: "#FFFFFF", // applet object background color - width: 300, - height: 300, - serverURL: "http://your.server.here/jsmol.php", - console: null, // div for where the JavaScript console will be. - readyFunction: null, - use: "HTML5",//other options include JAVA - jarPath: "java", - jarFile: "[code].jar", - j2sPath: "j2s", - disableJ2SLoadMonitor: false, - disableInitialConsole: false, - debug: false - }; - - // Jmol here - - Jmol._addDefaultInfo(Info, DefaultInfo); - Info.jarFile && Info.code && Info.jarFile.replace(/\[code\]/,Info.code); - Jmol._debugAlert = Info.debug; - Info.serverURL && (Jmol._serverUrl = Info.serverURL); - - var javaAllowed = false; - var applet = null; - var List = Info.use.toUpperCase().split("#")[0].split(" "); - for (var i = 0; i < List.length; i++) { - switch (List[i]) { - case "JAVA": - javaAllowed = true; - if (Jmol.featureDetection.supportsJava()) - applet = new Applet(id, Info, checkOnly); - break; - case "HTML5": - if (Jmol.featureDetection.allowHTML5){ - applet = Applet._getCanvas(id, Info, checkOnly); - } else { - List.push("JAVA"); - } - break; - } - if (applet != null) - break; - } - if (applet == null) { - if (checkOnly || !javaAllowed) - applet = {_appletType : "none" }; - else if (javaAllowed) - applet = new Applet(id, Info); - } - - // keyed to both its string id and itself - return (checkOnly ? applet : Jmol._registerApplet(id, applet)); - } - - Applet._getCanvas = function(id, Info, checkOnly) { - Info._isLayered = true; - Info._isSwing = true; - Info._platform = ""; - Jmol._Canvas2D.prototype = Jmol._jsSetPrototype(new Applet(id, Info, true)); - return new Jmol._Canvas2D(id, Info, Info.code, checkOnly); - }; - - /* AngelH, mar2007: - By (re)setting these variables in the webpage before calling Jmol.getApplet(), - a custom message can be provided (e.g. localized for user's language) when no Java is installed. - */ - Applet._noJavaMsg = - "Either you do not have Java applets enabled in your web
browser or your browser is blocking this applet.
\ - Check the warning message from your browser and/or enable Java applets in
\ - your web browser preferences, or install the Java Runtime Environment from www.java.com"; - - Applet._setCommonMethods = function(p) { - p._showInfo = proto._showInfo; -/// p._search = proto._search; - p._getName = proto._getName; - p._readyCallback = proto._readyCallback; - } - - Applet._createApplet = function(applet, Info, params) { - applet._initialize(Info.jarPath, Info.jarFile); - var jarFile = applet._jarFile; - var jnlp = "" - if (Jmol._isFile) { - // local installations need jnlp here and should reference JmolApplet(Signed).jar, not JmolApplet(Signed)0.jar - jarFile = jarFile.replace(/0\.jar/,".jar"); - //jnlp = " jnlp_href=\"" + jarFile.replace(/\.jar/,".jnlp") + "\""; - } - // size is set to 100% of containers' size, but only if resizable. - // Note that resizability in MSIE requires: - // - var w = (applet._containerWidth.indexOf("px") >= 0 ? applet._containerWidth : "100%"); - var h = (applet._containerHeight.indexOf("px") >= 0 ? applet._containerHeight : "100%"); - var widthAndHeight = " style=\"width:" + w + ";height:" + h + "\" "; - var attributes = "name='" + applet._id + "_object' id='" + applet._id + "_object' " + "\n" - + widthAndHeight + jnlp + "\n" - params.codebase = applet._jarPath; - params.codePath = params.codebase + "/"; - if (params.codePath.indexOf("://") < 0) { - var base = document.location.href.split("#")[0].split("?")[0].split("/"); - base[base.length - 1] = params.codePath; - params.codePath = base.join("/"); - } - params.archive = jarFile; - params.mayscript = 'true'; - params.java_arguments = "-Xmx" + Math.round(Info.memoryLimit || applet._memoryLimit) + "m"; - params.permissions = (applet._isSigned ? "all-permissions" : "sandbox"); - params.documentLocation = document.location.href; - params.documentBase = document.location.href.split("#")[0].split("?")[0]; - - params.jarPath = Info.jarPath; - Jmol._syncedApplets.length && (params.synccallback = "Jmol._mySyncCallback"); - applet._startupScript && (params.script = applet._startupScript); - var t = "\n"; - for (var i in params) - if(params[i]) - t += " \n"; - if (Jmol.featureDetection.useIEObject || Jmol.featureDetection.useHtml4Object) { - t = "" - : " type='application/x-java-applet'>") - + t + "

\n" + Applet._noJavaMsg + "

\n"; - } else { // use applet tag - t = "\n" - + t + "
\n" - + Applet._noJavaMsg + "
\n"; - } - if (applet._deferApplet) - applet._javaCode = t, t=""; - t = Jmol._getWrapper(applet, true) + t + Jmol._getWrapper(applet, false) - + (Info.addSelectionOptions ? Jmol._getGrabberOptions(applet) : ""); - if (Jmol._debugAlert) - alert (t); - applet._code = Jmol._documentWrite(t); - } - - proto._newApplet = function(viewerOptions) { - this._viewerOptions = viewerOptions; - // for now assigning this._applet here instead of in readyCallback - this._appletPanel = new swingjs.JSAppletPanel(viewerOptions); - this._appletPanel.start(); - } - - proto._addCoreFiles = function() { - Jmol._addCoreFile("swingjs", this._j2sPath, this.__Info.preloadCore); - if (Jmol._debugCode) { - // no min package for that - Jmol._addExec([this, null, "swingjs.JSAppletPanel", "load " + this.__Info.code]); - - } - } - - proto._create = function(id, Info){ - Jmol._setObject(this, id, Info); - var params = { - syncId: Jmol._syncId, - progressbar: "true", - progresscolor: "blue", - boxbgcolor: this._color || "black", - boxfgcolor: "white", - boxmessage: "Downloading Applet ...", - //script: (this._color ? "background \"" + this._color +"\"": ""), - code: Info.appletClass + ".class" - }; - - Jmol._setAppletParams(this._availableParams, params, Info); - function sterilizeInline(model) { - model = model.replace(/\r|\n|\r\n/g, (model.indexOf("|") >= 0 ? "\\/n" : "|")).replace(/'/g, "'"); - if(Jmol._debugAlert) - alert ("inline model:\n" + model); - return model; - } - - params.loadInline = (Info.inlineModel ? sterilizeInline(Info.inlineModel) : ""); - params.appletReadyCallback = "Jmol._readyCallback"; - if (Jmol._syncedApplets.length) - params.synccallback = "Jmol._mySyncCallback"; - params.java_arguments = "-Xmx" + Math.round(Info.memoryLimit || this._memoryLimit) + "m"; - - this._initialize(Info.jarPath, Info.jarFile); - Applet._createApplet(this, Info, params); - } - - - proto._restoreState = function(clazzName, state) { - // applet-dependent - } - - proto._readyCallback = function(id, fullid, isReady) { - if (!isReady) - return; // ignore -- page is closing - Jmol._setDestroy(this); - this._ready = true; - var script = this._readyScript; - if (this._defaultModel) - Jmol._search(this, this._defaultModel, (script ? ";" + script : "")); - else if (script) - this._script(script); - else if (this._src) - this._script('load "' + this._src + '"'); - this._showInfo(true); - this._showInfo(false); - Jmol.Cache.setDragDrop(this); - this._readyFunction && this._readyFunction(this); - Jmol._setReady(this); - var app = this._2dapplet; - if (app && app._isEmbedded && app._ready && app.__Info.visible) - this._show2d(true); - } - - proto._showInfo = function(tf) { - if(tf && this._2dapplet) - this._2dapplet._show(false); - Jmol.$html(Jmol.$(this, "infoheaderspan"), this._infoHeader); - if (this._info) - Jmol.$html(Jmol.$(this, "infodiv"), this._info); - if ((!this._isInfoVisible) == (!tf)) - return; - this._isInfoVisible = tf; - // 1px does not work for MSIE - if (this._isJava) { - var x = (tf ? 2 : "100%"); - Jmol.$setSize(Jmol.$(this, "appletdiv"), x, x); - } - Jmol.$setVisible(Jmol.$(this, "infotablediv"), tf); - Jmol.$setVisible(Jmol.$(this, "infoheaderdiv"), tf); - this._show(!tf); - } - - proto._show = function(tf) { - var x = (!tf ? 2 : "100%"); - Jmol.$setSize(Jmol.$(this, "object"), x, x); - if (!this._isJava) - Jmol.$setVisible(Jmol.$(this, "appletdiv"), tf); - } - - proto._clearConsole = function () { - if (this._console == this._id + "_infodiv") - this.info = ""; - if (!self.Clazz)return; - Jmol._setConsoleDiv(this._console); - Clazz.Console.clear(); - } - - proto._resizeApplet = function(size) { - // See _jmolGetAppletSize() for the formats accepted as size [same used by jmolApplet()] - // Special case: an empty value for width or height is accepted, meaning no change in that dimension. - - /* - * private functions - */ - function _getAppletSize(size, units) { - /* Accepts single number, 2-value array, or object with width and height as mroperties, 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. - Percent is relative to container div or element (which should have explicitly set size). - */ - var width, height; - if(( typeof size) == "object" && size != null) { - width = size[0]||size.width; - height = size[1]||size.height; - } else { - width = height = size; - } - return [_fixDim(width, units), _fixDim(height, units)]; - } - - function _fixDim(x, units) { - var sx = "" + x; - return (sx.length == 0 ? (units ? "" : Jmol._allowedJmolSize[2]) - : sx.indexOf("%") == sx.length - 1 ? sx - : (x = parseFloat(x)) <= 1 && x > 0 ? x * 100 + "%" - : (isNaN(x = Math.floor(x)) ? Jmol._allowedJmolSize[2] - : x < Jmol._allowedJmolSize[0] ? Jmol._allowedJmolSize[0] - : x > Jmol._allowedJmolSize[1] ? Jmol._allowedJmolSize[1] - : x) - + (units ? units : "") - ); - } - - var sz = _getAppletSize(size, "px"); - var d = Jmol._getElement(this, "appletinfotablediv"); - d.style.width = sz[0]; - d.style.height = sz[1]; - this._containerWidth = sz[0]; - this._containerHeight = sz[1]; - if (this._is2D) - Jmol._repaint(this, true); - } - - proto._cover = function (doCover) { - // from using getAppletHtml() - this._newCanvas(false); - this._showInfo(false); - this._init(); - }; - - - -})(SwingJS._Applet, SwingJS._Applet.prototype); - -})(SwingJS, jQuery); - -} // SwingJS undefined +// SwingJS.js + +// BH 4/28/2015 10:15:32 PM adds getAppletHtml +// BH 4/2/2015 5:17:44 PM adds SwingJS.getJavaResource(path) + +// BH 3/27/2015 6:34:49 AM just a shell + +if(typeof(jQuery)=="undefined") alert ("Note -- jQuery is required for SwingJS, but it's not defined.") + +if (typeof(SwingJS) == "undefined") { + + SwingJS = {}; + +(function (SwingJS, $) { + + SwingJS.getApplet = function(id, Info, checkOnly) { + return SwingJS._Applet._get(id, Info, checkOnly); + } + + SwingJS.getJavaResource = function(path) { + if (path.indexOf("http") != 0) { + var applet = Jmol._applets[java.lang.Thread.currentThread().getName()]; + path = (applet.__Info.resourcePath || applet.__Info.j2sPath) + "/" + path + } + System.out.println("Swingjs.js getJavaResource " + path) + var s = Jmol._getFileData(path); + if (s.indexOf("[Exception") == 0) + return null; + if (path.lastIndexOf(".css") == path.length - 4) { + path = path.substring(0, path.lastIndexOf("/") + 1) + "images/"; + s = s.replace(/images\//g, path) + jQuery("head").append(jQuery("")); + return s; + } else if (path.lastIndexOf(".js") == path.length - 3) { + try { + eval(s); + } catch (e) { + alert("error processing " + s) + return null; + } + } + return s; + } + + // optional Info here + SwingJS.getAppletHtml = function(applet, Info) { + if (Info) { + var d = SwingJS._document; + SwingJS._document = null; + applet = SwingJS.getApplet(applet, Info); + SwingJS._document = d; + } + return applet._code; + } + + SwingJS._Applet = function(id, Info, checkOnly){ + window[id] = this; + this._appletType = "SwingJS._Applet" + (Info.isSigned ? " (signed)" : ""); + this._isJava = true; + this._availableParams = null; // all allowed + if (checkOnly) + return this; + this._isSigned = Info.isSigned; + this._readyFunction = Info.readyFunction; + this._ready = false; + this._isJava = true; + this._isInfoVisible = false; + this._applet = null; + this._memoryLimit = Info.memoryLimit || 512; + this._canScript = function(script) {return true;}; + this._savedOrientations = []; + this._initialize = function(jarPath, jarFile) { + var doReport = false; + SwingJS._jarFile && (jarFile = SwingJS._jarFile); + if(this._jarFile) { + var f = this._jarFile; + 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") { + jarPath = f.substring(0, f.lastIndexOf("/")); + jarFile = f.substring(f.lastIndexOf("/") + 1); + } else { + doReport = true; + } + } else { + jarFile = f; + } + this_isSigned = Info.isSigned = (jarFile.indexOf("Signed") >= 0); + } + this._jarPath = Info.jarPath = jarPath || "."; + this._jarFile = Info.jarFile = jarFile; + if (doReport) + alert ("The web page URL was ignored. Continuing using " + this._jarFile + ' in directory "' + this._jarPath + '"'); + // could do something like this: Jmol.controls == undefined || Jmol.controls._onloadResetForms(); + } + this._create(id, Info); + return this; + } + + ;(function(Applet, proto) { + + Applet._get = function(id, Info, checkOnly) { + + checkOnly || (checkOnly = false); + Info || (Info = {}); + var DefaultInfo = { + code: "swingjs.test.TanSugd3S", + uncompressed: true, + color: "#FFFFFF", // applet object background color + width: 300, + height: 300, + serverURL: "http://your.server.here/jsmol.php", + console: null, // div for where the JavaScript console will be. + readyFunction: null, + use: "HTML5",//other options include JAVA + jarPath: "java", + jarFile: "[code].jar", + j2sPath: "j2s", + disableJ2SLoadMonitor: false, + disableInitialConsole: false, + debug: false + }; + + // Jmol here + + Jmol._addDefaultInfo(Info, DefaultInfo); + Info.jarFile && Info.code && Info.jarFile.replace(/\[code\]/,Info.code); + Jmol._debugAlert = Info.debug; + Info.serverURL && (Jmol._serverUrl = Info.serverURL); + + var javaAllowed = false; + var applet = null; + var List = Info.use.toUpperCase().split("#")[0].split(" "); + for (var i = 0; i < List.length; i++) { + switch (List[i]) { + case "JAVA": + javaAllowed = true; + if (Jmol.featureDetection.supportsJava()) + applet = new Applet(id, Info, checkOnly); + break; + case "HTML5": + if (Jmol.featureDetection.allowHTML5){ + applet = Applet._getCanvas(id, Info, checkOnly); + } else { + List.push("JAVA"); + } + break; + } + if (applet != null) + break; + } + if (applet == null) { + if (checkOnly || !javaAllowed) + applet = {_appletType : "none" }; + else if (javaAllowed) + applet = new Applet(id, Info); + } + + // keyed to both its string id and itself + return (checkOnly ? applet : Jmol._registerApplet(id, applet)); + } + + Applet._getCanvas = function(id, Info, checkOnly) { + Info._isLayered = true; + Info._isSwing = true; + Info._platform = ""; + Jmol._Canvas2D.prototype = Jmol._jsSetPrototype(new Applet(id, Info, true)); + return new Jmol._Canvas2D(id, Info, Info.code, checkOnly); + }; + + /* AngelH, mar2007: + By (re)setting these variables in the webpage before calling Jmol.getApplet(), + a custom message can be provided (e.g. localized for user's language) when no Java is installed. + */ + Applet._noJavaMsg = + "Either you do not have Java applets enabled in your web
browser or your browser is blocking this applet.
\ + Check the warning message from your browser and/or enable Java applets in
\ + your web browser preferences, or install the Java Runtime Environment from www.java.com"; + + Applet._setCommonMethods = function(p) { + p._showInfo = proto._showInfo; +/// p._search = proto._search; + p._getName = proto._getName; + p._readyCallback = proto._readyCallback; + } + + Applet._createApplet = function(applet, Info, params) { + applet._initialize(Info.jarPath, Info.jarFile); + var jarFile = applet._jarFile; + var jnlp = "" + if (Jmol._isFile) { + // local installations need jnlp here and should reference JmolApplet(Signed).jar, not JmolApplet(Signed)0.jar + jarFile = jarFile.replace(/0\.jar/,".jar"); + //jnlp = " jnlp_href=\"" + jarFile.replace(/\.jar/,".jnlp") + "\""; + } + // size is set to 100% of containers' size, but only if resizable. + // Note that resizability in MSIE requires: + // + var w = (applet._containerWidth.indexOf("px") >= 0 ? applet._containerWidth : "100%"); + var h = (applet._containerHeight.indexOf("px") >= 0 ? applet._containerHeight : "100%"); + var widthAndHeight = " style=\"width:" + w + ";height:" + h + "\" "; + var attributes = "name='" + applet._id + "_object' id='" + applet._id + "_object' " + "\n" + + widthAndHeight + jnlp + "\n" + params.codebase = applet._jarPath; + params.codePath = params.codebase + "/"; + if (params.codePath.indexOf("://") < 0) { + var base = document.location.href.split("#")[0].split("?")[0].split("/"); + base[base.length - 1] = params.codePath; + params.codePath = base.join("/"); + } + params.archive = jarFile; + params.mayscript = 'true'; + params.java_arguments = "-Xmx" + Math.round(Info.memoryLimit || applet._memoryLimit) + "m"; + params.permissions = (applet._isSigned ? "all-permissions" : "sandbox"); + params.documentLocation = document.location.href; + params.documentBase = document.location.href.split("#")[0].split("?")[0]; + + params.jarPath = Info.jarPath; + Jmol._syncedApplets.length && (params.synccallback = "Jmol._mySyncCallback"); + applet._startupScript && (params.script = applet._startupScript); + var t = "\n"; + for (var i in params) + if(params[i]) + t += " \n"; + if (Jmol.featureDetection.useIEObject || Jmol.featureDetection.useHtml4Object) { + t = "" + : " type='application/x-java-applet'>") + + t + "

\n" + Applet._noJavaMsg + "

\n"; + } else { // use applet tag + t = "\n" + + t + "
\n" + + Applet._noJavaMsg + "
\n"; + } + if (applet._deferApplet) + applet._javaCode = t, t=""; + t = Jmol._getWrapper(applet, true) + t + Jmol._getWrapper(applet, false) + + (Info.addSelectionOptions ? Jmol._getGrabberOptions(applet) : ""); + if (Jmol._debugAlert) + alert (t); + applet._code = Jmol._documentWrite(t); + } + + proto._newApplet = function(viewerOptions) { + this._viewerOptions = viewerOptions; + // for now assigning this._applet here instead of in readyCallback + this._appletPanel = new swingjs.JSAppletPanel(viewerOptions); + this._appletPanel.start(); + } + + proto._addCoreFiles = function() { + Jmol._addCoreFile("swingjs", this._j2sPath, this.__Info.preloadCore); + if (Jmol._debugCode) { + // no min package for that + Jmol._addExec([this, null, "swingjs.JSAppletPanel", "load " + this.__Info.code]); + + } + } + + proto._create = function(id, Info){ + Jmol._setObject(this, id, Info); + var params = { + syncId: Jmol._syncId, + progressbar: "true", + progresscolor: "blue", + boxbgcolor: this._color || "black", + boxfgcolor: "white", + boxmessage: "Downloading Applet ...", + //script: (this._color ? "background \"" + this._color +"\"": ""), + code: Info.appletClass + ".class" + }; + + Jmol._setAppletParams(this._availableParams, params, Info); + function sterilizeInline(model) { + model = model.replace(/\r|\n|\r\n/g, (model.indexOf("|") >= 0 ? "\\/n" : "|")).replace(/'/g, "'"); + if(Jmol._debugAlert) + alert ("inline model:\n" + model); + return model; + } + + params.loadInline = (Info.inlineModel ? sterilizeInline(Info.inlineModel) : ""); + params.appletReadyCallback = "Jmol._readyCallback"; + if (Jmol._syncedApplets.length) + params.synccallback = "Jmol._mySyncCallback"; + params.java_arguments = "-Xmx" + Math.round(Info.memoryLimit || this._memoryLimit) + "m"; + + this._initialize(Info.jarPath, Info.jarFile); + Applet._createApplet(this, Info, params); + } + + + proto._restoreState = function(clazzName, state) { + // applet-dependent + } + + proto._readyCallback = function(id, fullid, isReady) { + if (!isReady) + return; // ignore -- page is closing + Jmol._setDestroy(this); + this._ready = true; + var script = this._readyScript; + if (this._defaultModel) + Jmol._search(this, this._defaultModel, (script ? ";" + script : "")); + else if (script) + this._script(script); + else if (this._src) + this._script('load "' + this._src + '"'); + this._showInfo(true); + this._showInfo(false); + Jmol.Cache.setDragDrop(this); + this._readyFunction && this._readyFunction(this); + Jmol._setReady(this); + var app = this._2dapplet; + if (app && app._isEmbedded && app._ready && app.__Info.visible) + this._show2d(true); + } + + proto._showInfo = function(tf) { + if(tf && this._2dapplet) + this._2dapplet._show(false); + Jmol.$html(Jmol.$(this, "infoheaderspan"), this._infoHeader); + if (this._info) + Jmol.$html(Jmol.$(this, "infodiv"), this._info); + if ((!this._isInfoVisible) == (!tf)) + return; + this._isInfoVisible = tf; + // 1px does not work for MSIE + if (this._isJava) { + var x = (tf ? 2 : "100%"); + Jmol.$setSize(Jmol.$(this, "appletdiv"), x, x); + } + Jmol.$setVisible(Jmol.$(this, "infotablediv"), tf); + Jmol.$setVisible(Jmol.$(this, "infoheaderdiv"), tf); + this._show(!tf); + } + + proto._show = function(tf) { + var x = (!tf ? 2 : "100%"); + Jmol.$setSize(Jmol.$(this, "object"), x, x); + if (!this._isJava) + Jmol.$setVisible(Jmol.$(this, "appletdiv"), tf); + } + + proto._clearConsole = function () { + if (this._console == this._id + "_infodiv") + this.info = ""; + if (!self.Clazz)return; + Jmol._setConsoleDiv(this._console); + Clazz.Console.clear(); + } + + proto._resizeApplet = function(size) { + // See _jmolGetAppletSize() for the formats accepted as size [same used by jmolApplet()] + // Special case: an empty value for width or height is accepted, meaning no change in that dimension. + + /* + * private functions + */ + function _getAppletSize(size, units) { + /* Accepts single number, 2-value array, or object with width and height as mroperties, 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. + Percent is relative to container div or element (which should have explicitly set size). + */ + var width, height; + if(( typeof size) == "object" && size != null) { + width = size[0]||size.width; + height = size[1]||size.height; + } else { + width = height = size; + } + return [_fixDim(width, units), _fixDim(height, units)]; + } + + function _fixDim(x, units) { + var sx = "" + x; + return (sx.length == 0 ? (units ? "" : Jmol._allowedJmolSize[2]) + : sx.indexOf("%") == sx.length - 1 ? sx + : (x = parseFloat(x)) <= 1 && x > 0 ? x * 100 + "%" + : (isNaN(x = Math.floor(x)) ? Jmol._allowedJmolSize[2] + : x < Jmol._allowedJmolSize[0] ? Jmol._allowedJmolSize[0] + : x > Jmol._allowedJmolSize[1] ? Jmol._allowedJmolSize[1] + : x) + + (units ? units : "") + ); + } + + var sz = _getAppletSize(size, "px"); + var d = Jmol._getElement(this, "appletinfotablediv"); + d.style.width = sz[0]; + d.style.height = sz[1]; + this._containerWidth = sz[0]; + this._containerHeight = sz[1]; + if (this._is2D) + Jmol._repaint(this, true); + } + + proto._cover = function (doCover) { + // from using getAppletHtml() + this._newCanvas(false); + this._showInfo(false); + this._init(); + }; + + + +})(SwingJS._Applet, SwingJS._Applet.prototype); + +})(SwingJS, jQuery); + +} // SwingJS undefined