| (function(Clazz
|
| ,Clazz_getClassName
|
| ,Clazz_newLongArray
|
| ,Clazz_doubleToByte
|
| ,Clazz_doubleToInt
|
| ,Clazz_doubleToLong
|
| ,Clazz_declarePackage
|
| ,Clazz_instanceOf
|
| ,Clazz_load
|
| ,Clazz_instantialize
|
| ,Clazz_decorateAsClass
|
| ,Clazz_floatToInt
|
| ,Clazz_floatToLong
|
| ,Clazz_makeConstructor
|
| ,Clazz_defineEnumConstant
|
| ,Clazz_exceptionOf
|
| ,Clazz_newIntArray
|
| ,Clazz_defineStatics
|
| ,Clazz_newFloatArray
|
| ,Clazz_declareType
|
| ,Clazz_prepareFields
|
| ,Clazz_superConstructor
|
| ,Clazz_newByteArray
|
| ,Clazz_declareInterface
|
| ,Clazz_p0p
|
| ,Clazz_pu$h
|
| ,Clazz_newShortArray
|
| ,Clazz_innerTypeInstance
|
| ,Clazz_isClassDefined
|
| ,Clazz_prepareCallback
|
| ,Clazz_newArray
|
| ,Clazz_castNullAs
|
| ,Clazz_floatToShort
|
| ,Clazz_superCall
|
| ,Clazz_decorateAsType
|
| ,Clazz_newBooleanArray
|
| ,Clazz_newCharArray
|
| ,Clazz_implementOf
|
| ,Clazz_newDoubleArray
|
| ,Clazz_overrideConstructor
|
| ,Clazz_clone
|
| ,Clazz_doubleToShort
|
| ,Clazz_getInheritedLevel
|
| ,Clazz_getParamsType
|
| ,Clazz_isAF
|
| ,Clazz_isAB
|
| ,Clazz_isAI
|
| ,Clazz_isAS
|
| ,Clazz_isASS
|
| ,Clazz_isAP
|
| ,Clazz_isAFloat
|
| ,Clazz_isAII
|
| ,Clazz_isAFF
|
| ,Clazz_isAFFF
|
| ,Clazz_tryToSearchAndExecute
|
| ,Clazz_getStackTrace
|
| ,Clazz_inheritArgs
|
| ,Clazz_alert
|
| ,Clazz_defineMethod
|
| ,Clazz_overrideMethod
|
| ,Clazz_declareAnonymous
|
|
|
| ,Clazz_cloneFinals
|
| ){
|
| var $t$;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Jmol.Console = {
|
| buttons:{},
|
| buttonWidth:100,
|
| click:function(id) {
|
| Jmol.Console.buttons[id].console.appletConsole.doAction(Jmol.Console.buttons[id]);
|
| }
|
| }
|
|
|
| Jmol._consoleGetImageDialog = function(vwr, title, imageMap) {
|
|
|
| return new Jmol.Console.Image(vwr, title, imageMap);
|
| }
|
|
|
| Jmol.Console.Image = function(vwr, title, imageMap) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| this.vwr = vwr;
|
| this.title = title;
|
| this.imageMap = imageMap;
|
| this.applet = vwr.html5Applet;
|
| var id = this.applet._id + "_Image";
|
| this.id = id + "_" + (title == "" ? "app" : title).replace(/\W/g,"_");
|
| var jqobj = Jmol._$(this.id + "_holder");
|
| if (!jqobj[0] && (jqobj = Jmol._$(id + "_holder"))[0])
|
| this.id = id;
|
| if (jqobj[0])
|
| this.div = jqobj;
|
| else
|
| Jmol.Console.createDOM(this, '<div id="$ID" class="jmolImage" style="display:block;background-color:yellow;position:absolute;z-index:' + ++Jmol._z.consoleImage +'"><div id="$ID_title"></div><div id="$ID_holder"></div></div>');
|
| System.out.println("image " + this.id + " created");
|
| var obj = imageMap.get(this.id);
|
| if (obj)
|
| obj.closeMe();
|
| imageMap.put(this.id, this);
|
| imageMap.put(title, this);
|
| }
|
|
|
| Jmol.Console.Image.setCanvas = function(obj, canvas) {
|
|
|
|
|
| Jmol.$append(Jmol._$(obj.id + "_holder"), canvas);
|
| Jmol.$html(obj.id + "_title", "<table style='width:100%'><tr><td> <a href=\"javascript:Jmol.Console.buttons['"+obj.id+"'].closeMe()\">close</a></td><td align=right>" + obj.title + " [" + canvas.width + " x " + canvas.height + "]</td></tr></table>");
|
| }
|
|
|
| Jmol.Console.Image.closeImage = function(obj) {
|
|
|
| obj.imageMap.remove(obj.title);
|
| obj.imageMap.remove(obj.id);
|
| if (obj.div) {
|
| Jmol.$remove(obj.cid);
|
| } else {
|
| obj.dragBind(false);
|
| Jmol.$remove(obj.id);
|
| }
|
| }
|
|
|
| Jmol.Console.Image.prototype.setImage = function(canvas) {
|
|
|
| if (this.cid)
|
| Jmol.$remove(this.cid);
|
| var c = document.createElement("canvas");
|
| c.width = canvas.width;
|
| c.height = canvas.height;
|
| var cdx = c.getContext("2d");
|
| if (canvas.buf32) {
|
|
|
|
|
| var imgData = cdx.getImageData(0, 0, c.width, c.height);
|
| var buf8 = imgData.data;
|
| var buf32 = canvas.buf32;
|
| var n = buf8.length >> 2;
|
| for (var i = 0, j = 0; i < n; i++) {
|
| buf8[j++] = (buf32[i] >> 16) & 0xFF;
|
| buf8[j++] = (buf32[i] >> 8) & 0xFF;
|
| buf8[j++] = buf32[i] & 0xFF;
|
| buf8[j++] = 0xFF;
|
| }
|
| cdx.putImageData(imgData, 0, 0);
|
| } else {
|
|
|
| cdx.drawImage(canvas,0,0);
|
| }
|
| this.cid = c.id = this.id + "_image";
|
| Jmol.Console.Image.setCanvas(this, c);
|
| }
|
|
|
| Jmol.Console.Image.prototype.closeMe = function() {
|
|
|
| Jmol.Console.Image.closeImage(this);
|
| }
|
|
|
| Jmol.Swing.setDraggable(Jmol.Console.Image);
|
|
|
| Jmol.Console.createDOM = function(obj, s, userConsole) {
|
| var id = obj.id;
|
| Jmol.Console.buttons[id] = obj;
|
| s = s.replace(/\$ID/g,id);
|
| if (userConsole && userConsole[0]) {
|
| Jmol.$html(userConsole,s);
|
| } else {
|
| Jmol.$after("body", s);
|
| obj.setContainer(Jmol._$(id));
|
| obj.setPosition();
|
| obj.dragBind(true);
|
| }
|
| }
|
|
|
| Jmol.Console.JSConsole = function(appletConsole) {
|
| this.applet = appletConsole.vwr.html5Applet;
|
| var id = this.id = this.applet._id+"_console";
|
| var console = this;
|
| console.appletConsole = appletConsole;
|
| console.input = appletConsole.input = new Jmol.Console.Input(console);
|
| console.output = appletConsole.output = new Jmol.Console.Output(console);
|
|
|
| var userConsole = Jmol.$("#" + id);
|
|
|
|
|
|
|
|
|
|
|
| var s = '<div id=$ID_title></div><div id=$ID_label1></div><div id=$ID_outputdiv style="position:relative;left:2px"></div><div id=$ID_inputdiv style="position:relative;left:2px"></div><div id=$ID_buttondiv></div>'
|
| var w = 600, h = 362;
|
| if (userConsole[0]) {
|
| var dims = Jmol.$getSize(userConsole);
|
| if (dims[0] == 0)
|
| Jmol.$setSize(userConsole, w, h);
|
| w = dims[0] || w;
|
| h = dims[1] || h;
|
| } else {
|
| s = '<div id="$ID" class="jmolConsole" style="display:block;background-color:yellow;width:'+w+'px;height:'+h+'px;position:absolute;z-index:'
|
| + Jmol._z.console +'">' + s + '</div>';
|
| }
|
| Jmol.Console.createDOM(this, s, userConsole);
|
| var setBtn = function(console, btn) {
|
| btn.console = console;
|
| btn.id = id + "_" + btn.label.replace(/\s/g,"_");
|
| Jmol.Console.buttons[btn.id] = btn;
|
| return btn.html();
|
| }
|
| s = setBtn(console, appletConsole.runButton)
|
| + setBtn(console, appletConsole.loadButton)
|
| + setBtn(console, appletConsole.clearInButton)
|
| + setBtn(console, appletConsole.clearOutButton)
|
| + setBtn(console, appletConsole.historyButton)
|
| + setBtn(console, appletConsole.stateButton);
|
| Jmol.$html(id + "_buttondiv", s);
|
| s = "";
|
| if (!userConsole[0])
|
| s += " <a href=\"javascript:Jmol.Console.buttons['"+id+"'].setVisible(false)\">close</a>";
|
| s += " <a href=\"javascript:Jmol.script("+console.applet._id+",'help')\">help</a>";
|
| Jmol.$html(id + "_label1", s);
|
| if (userConsole[0]) {
|
|
|
| w = w - 10;
|
| h = (h - Jmol.$getSize(id + "_label1")[1] - Jmol.$getSize(id + "_buttondiv")[1] - 20)/3;
|
| } else {
|
| w = w - 10;
|
| h = (h - 62)/3;
|
| }
|
| Jmol.$html(id + "_inputdiv", '<textarea id="' + id + '_input" style="width:'+w+'px;height:'+h+'px"></textarea>');
|
| Jmol.$html(id + "_outputdiv", '<textarea id="' + id + '_output" style="width:'+w+'px;height:'+(h*2)+'px"></textarea>');
|
|
|
| Jmol.$bind("#" + id + "_input", "keydown keypress keyup", function(event) { console.input.keyEvent(event) });
|
| Jmol.$bind("#" + id + "_input", "mousedown touchstart", function(event) { console.ignoreMouse=true });
|
| Jmol.$bind("#" + id + "_output", "mousedown touchstart", function(event) { console.ignoreMouse=true });
|
|
|
| console.setButton = function(text) {
|
| return new Jmol.Console.Button(this, text);
|
| }
|
|
|
| console.setVisible = function(b) {
|
| if (b)
|
| this.container.show();
|
| else
|
| this.container.hide();
|
| this.dragBind(b);
|
| }
|
|
|
| console.setTitle = function(title) {
|
|
|
| }
|
|
|
| console.setVisible(false);
|
| }
|
|
|
| Jmol.Swing.setDraggable(Jmol.Console.JSConsole);
|
|
|
| Jmol.Console.Input = function(console) {
|
|
|
| this.console = console;
|
| this.id = console.id + "_input";
|
|
|
|
|
|
|
| this.getText = function() {
|
| return Jmol.$val(this.id);
|
| }
|
|
|
| this.setText = function(text) {
|
| if (text == null)
|
| text = "";
|
| Jmol.$val(this.id, text);
|
| }
|
|
|
| this.keyEvent = function(ev) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| var mode;
|
| var type = ev.type;
|
| var isCtrl = ev.ctrlKey;
|
| var kcode = ev.keyCode;
|
| if (kcode == 13)
|
| kcode=10;
|
|
|
| if (type == "keyup") {
|
| mode = (kcode == 38 || kcode == 40 ? 1 : this.console.appletConsole.processKey(kcode, 402, isCtrl));
|
| if ((mode & 1) == 1)
|
| ev.preventDefault();
|
| return;
|
| }
|
|
|
|
|
|
|
|
|
| var isKeydown = (type == "keydown");
|
| var key = (isKeydown ? (ev.key || ev.originalEvent.keyIdentifier) : "");
|
|
|
| switch (kcode) {
|
| case 38:
|
| case 40:
|
|
|
| if (!isKeydown)
|
| kcode = 0;
|
| break;
|
| case 8:
|
| case 9:
|
| case 10:
|
| case 27:
|
|
|
| break;
|
| default:
|
| kcode = 0;
|
| }
|
| mode = this.console.appletConsole.processKey(kcode, 401, isCtrl);
|
| if (isCtrl && kcode == 10)
|
| this.setText(this.getText() + "\n")
|
| if (mode == 0 && ev.keyCode == 9) {
|
| var me = this;
|
| setTimeout(function(){me.setText(me.getText() + "\t"); Jmol.$focus(me.id)},10);
|
| }
|
|
|
| if ((mode & 1) == 1
|
| || key == "Up" || key == "Down"
|
| || isKeydown && ev.keyCode != 8 && ev.keyCode < 32
|
| ) {
|
| ev.preventDefault();
|
| }
|
| }
|
|
|
| this.getCaretPosition = function() {
|
| var el = Jmol._$(this.id)[0];
|
| if('selectionStart' in el)
|
| return el.selectionStart;
|
| if(!('selection' in document))
|
| return 0;
|
| el.focus();
|
| var sel = document.selection.createRange();
|
| var len = document.selection.createRange().text.length;
|
| sel.moveStart('character', -el.value.length);
|
| return sel.text.length - len;
|
| }
|
|
|
| }
|
|
|
| Jmol.Console.Output = function(console) {
|
| this.id = console.id + "_output";
|
| this.getText = function() {
|
| return Jmol.$val(this.id);
|
| }
|
|
|
| this.setText = function(text) {
|
| if (text == null)
|
| text = "";
|
| Jmol.$val(this.id, text);
|
| }
|
|
|
| this.append = function(message, att) {
|
| this.setText(this.getText() + message);
|
| Jmol.$scrollTo(this.id, -1);
|
| }
|
| }
|
|
|
| Jmol.Console.Button = function(text) {
|
| this.label = text;
|
| }
|
|
|
| Jmol.Console.Button.prototype.addConsoleListener = function(appletConsole) {
|
| this.appletConsole = appletConsole;
|
| Jmol.Console.buttons[this.id] = this;
|
| }
|
|
|
| Jmol.Console.Button.prototype.html = function() {
|
| var s = '<input type="button" id="' + this.id + '" style="width:' + Jmol.Console.buttonWidth + 'px" value="' + this.label + '" onClick="Jmol.Console.click(\'' + this.id + '\')"/>'
|
| return s;
|
| }
|
|
|
| Clazz_declarePackage ("J.console");
|
| Clazz_declareInterface (J.console, "GenericTextArea");
|
| Clazz_declarePackage ("J.console");
|
| Clazz_load (["J.api.JmolAppConsoleInterface", "$.JmolCallbackListener", "java.util.Hashtable"], "J.console.GenericConsole", ["java.lang.Boolean", "JU.PT", "J.c.CBK", "J.i18n.GT", "JS.T", "JV.Viewer"], function () {
|
| c$ = Clazz_decorateAsClass (function () {
|
| this.input = null;
|
| this.output = null;
|
| this.vwr = null;
|
| this.menuMap = null;
|
| this.editButton = null;
|
| this.runButton = null;
|
| this.historyButton = null;
|
| this.stateButton = null;
|
| this.clearOutButton = null;
|
| this.clearInButton = null;
|
| this.loadButton = null;
|
| this.defaultMessage = null;
|
| this.label1 = null;
|
| this.nTab = 0;
|
| this.incompleteCmd = null;
|
| Clazz_instantialize (this, arguments);
|
| }, J.console, "GenericConsole", null, [J.api.JmolAppConsoleInterface, J.api.JmolCallbackListener]);
|
| Clazz_prepareFields (c$, function () {
|
| this.menuMap = new java.util.Hashtable ();
|
| });
|
| Clazz_defineMethod (c$, "setViewer",
|
| function (vwr) {
|
| this.vwr = vwr;
|
| if (J.console.GenericConsole.labels == null) {
|
| var l = new java.util.Hashtable ();
|
| l.put ("title", J.i18n.GT.$ ("Jmol Script Console") + " " + JV.Viewer.getJmolVersion ());
|
| this.setupLabels (l);
|
| J.console.GenericConsole.labels = l;
|
| }}, "JV.Viewer");
|
| Clazz_defineMethod (c$, "addButton",
|
| function (b, label) {
|
| b.addConsoleListener (this);
|
| this.menuMap.put (label, b);
|
| return b;
|
| }, "J.api.JmolAbstractButton,~S");
|
| Clazz_defineMethod (c$, "getLabel1",
|
| function () {
|
| return null;
|
| });
|
| Clazz_defineMethod (c$, "setupLabels",
|
| function (labels) {
|
| labels.put ("saveas", J.i18n.GT.$ ("&Save As..."));
|
| labels.put ("file", J.i18n.GT.$ ("&File"));
|
| labels.put ("close", J.i18n.GT.$ ("&Close"));
|
| this.setupLabels0 (labels);
|
| }, "java.util.Map");
|
| Clazz_defineMethod (c$, "setupLabels0",
|
| function (labels) {
|
| labels.put ("help", J.i18n.GT.$ ("&Help"));
|
| labels.put ("search", J.i18n.GT.$ ("&Search..."));
|
| labels.put ("commands", J.i18n.GT.$ ("&Commands"));
|
| labels.put ("functions", J.i18n.GT.$ ("Math &Functions"));
|
| labels.put ("parameters", J.i18n.GT.$ ("Set &Parameters"));
|
| labels.put ("more", J.i18n.GT.$ ("&More"));
|
| labels.put ("Editor", J.i18n.GT.$ ("Editor"));
|
| labels.put ("State", J.i18n.GT.$ ("State"));
|
| labels.put ("Run", J.i18n.GT.$ ("Run"));
|
| labels.put ("Clear Output", J.i18n.GT.$ ("Clear Output"));
|
| labels.put ("Clear Input", J.i18n.GT.$ ("Clear Input"));
|
| labels.put ("History", J.i18n.GT.$ ("History"));
|
| labels.put ("Load", J.i18n.GT.$ ("Load"));
|
| labels.put ("label1", J.i18n.GT.$ ("press CTRL-ENTER for new line or paste model data and press Load"));
|
| labels.put ("default", J.i18n.GT.$ ("Messages will appear here. Enter commands in the box below. Click the console Help menu item for on-line help, which will appear in a new browser window."));
|
| }, "java.util.Map");
|
| Clazz_defineMethod (c$, "setLabels",
|
| function () {
|
| var doTranslate = J.i18n.GT.setDoTranslate (true);
|
| this.editButton = this.setButton ("Editor");
|
| this.stateButton = this.setButton ("State");
|
| this.runButton = this.setButton ("Run");
|
| this.clearOutButton = this.setButton ("Clear Output");
|
| this.clearInButton = this.setButton ("Clear Input");
|
| this.historyButton = this.setButton ("History");
|
| this.loadButton = this.setButton ("Load");
|
| this.defaultMessage = J.console.GenericConsole.getLabel ("default");
|
| this.setTitle ();
|
| J.i18n.GT.setDoTranslate (doTranslate);
|
| });
|
| c$.getLabel = Clazz_defineMethod (c$, "getLabel",
|
| function (key) {
|
| return J.console.GenericConsole.labels.get (key);
|
| }, "~S");
|
| Clazz_defineMethod (c$, "displayConsole",
|
| function () {
|
| this.layoutWindow (null);
|
| this.outputMsg (this.defaultMessage);
|
| });
|
| Clazz_defineMethod (c$, "updateLabels",
|
| function () {
|
| return;
|
| });
|
| Clazz_defineMethod (c$, "completeCommand",
|
| function (thisCmd) {
|
| if (thisCmd.length == 0) return null;
|
| var strCommand = (this.nTab <= 0 || this.incompleteCmd == null ? thisCmd : this.incompleteCmd);
|
| this.incompleteCmd = strCommand;
|
| var splitCmd = J.console.GenericConsole.splitCommandLine (thisCmd);
|
| if (splitCmd == null) return null;
|
| var asCommand = splitCmd[2] == null;
|
| var inBrace = (splitCmd[3] != null);
|
| var notThis = splitCmd[asCommand ? 1 : 2];
|
| var s = splitCmd[1];
|
| if (notThis.length == 0) return null;
|
| var token = JS.T.getTokenFromName (s.trim ().toLowerCase ());
|
| var cmdtok = (token == null ? 0 : token.tok);
|
| var isSelect = JS.T.tokAttr (cmdtok, 12288);
|
| splitCmd = J.console.GenericConsole.splitCommandLine (strCommand);
|
| var cmd = null;
|
| if (!asCommand && (notThis.charAt (0) == '"' || notThis.charAt (0) == '\'')) {
|
| var q = notThis.charAt (0);
|
| notThis = JU.PT.trim (notThis, "\"\'");
|
| var stub = JU.PT.trim (splitCmd[2], "\"\'");
|
| cmd = this.nextFileName (stub, this.nTab);
|
| if (cmd != null) cmd = splitCmd[0] + splitCmd[1] + q + cmd + q;
|
| } else {
|
| var map = null;
|
| if (!asCommand) {
|
| notThis = s;
|
| if (inBrace || splitCmd[2].startsWith ("$") || isSelect) {
|
| map = new java.util.Hashtable ();
|
| this.vwr.getObjectMap (map, inBrace || isSelect ? '{' : splitCmd[2].startsWith ("$") ? '$' : '0');
|
| }}cmd = JS.T.completeCommand (map, s.equalsIgnoreCase ("set "), asCommand, asCommand ? splitCmd[1] : splitCmd[2], this.nTab);
|
| cmd = splitCmd[0] + (cmd == null ? notThis : asCommand ? cmd : splitCmd[1] + cmd);
|
| }return (cmd == null || cmd.equals (strCommand) ? null : cmd);
|
| }, "~S");
|
| Clazz_defineMethod (c$, "doAction",
|
| function (source) {
|
| if (source === this.runButton) {
|
| this.execute (null);
|
| } else if (source === this.editButton) {
|
| this.vwr.getProperty ("DATA_API", "scriptEditor", null);
|
| } else if (source === this.historyButton) {
|
| this.clearContent (this.vwr.getSetHistory (2147483647));
|
| } else if (source === this.stateButton) {
|
| this.clearContent (this.vwr.getStateInfo ());
|
| } else if (source === this.clearInButton) {
|
| this.input.setText ("");
|
| return;
|
| }if (source === this.clearOutButton) {
|
| this.output.setText ("");
|
| return;
|
| }if (source === this.loadButton) {
|
| this.vwr.loadInlineAppend (this.input.getText (), false);
|
| return;
|
| }if (this.isMenuItem (source)) {
|
| this.execute ((source).getName ());
|
| return;
|
| }}, "~O");
|
| Clazz_defineMethod (c$, "execute",
|
| function (strCommand) {
|
| var cmd = (strCommand == null ? this.input.getText () : strCommand);
|
| if (strCommand == null) this.input.setText (null);
|
| var strErrorMessage = this.vwr.script (cmd + "\u0001## EDITOR_IGNORE ##");
|
| if (strErrorMessage != null && !strErrorMessage.equals ("pending")) this.outputMsg (strErrorMessage);
|
| }, "~S");
|
| Clazz_defineMethod (c$, "destroyConsole",
|
| function () {
|
| if (this.vwr.isApplet) this.vwr.getProperty ("DATA_API", "getAppConsole", Boolean.FALSE);
|
| });
|
| c$.setAbstractButtonLabels = Clazz_defineMethod (c$, "setAbstractButtonLabels",
|
| function (menuMap, labels) {
|
| for (var key, $key = menuMap.keySet ().iterator (); $key.hasNext () && ((key = $key.next ()) || true);) {
|
| var m = menuMap.get (key);
|
| var label = labels.get (key);
|
| if (key.indexOf ("Tip") == key.length - 3) {
|
| m.setToolTipText (labels.get (key));
|
| } else {
|
| var mnemonic = J.console.GenericConsole.getMnemonic (label);
|
| if (mnemonic != ' ') m.setMnemonic (mnemonic);
|
| label = J.console.GenericConsole.getLabelWithoutMnemonic (label);
|
| m.setText (label);
|
| }}
|
| }, "java.util.Map,java.util.Map");
|
| c$.getLabelWithoutMnemonic = Clazz_defineMethod (c$, "getLabelWithoutMnemonic",
|
| function (label) {
|
| if (label == null) {
|
| return null;
|
| }var index = label.indexOf ('&');
|
| if (index == -1) {
|
| return label;
|
| }return label.substring (0, index) + ((index < label.length - 1) ? label.substring (index + 1) : "");
|
| }, "~S");
|
| c$.getMnemonic = Clazz_defineMethod (c$, "getMnemonic",
|
| function (label) {
|
| if (label == null) {
|
| return ' ';
|
| }var index = label.indexOf ('&');
|
| if ((index == -1) || (index == label.length - 1)) {
|
| return ' ';
|
| }return label.charAt (index + 1);
|
| }, "~S");
|
| c$.map = Clazz_defineMethod (c$, "map",
|
| function (button, key, label, menuMap) {
|
| var mnemonic = J.console.GenericConsole.getMnemonic (label);
|
| if (mnemonic != ' ') (button).setMnemonic (mnemonic);
|
| if (menuMap != null) menuMap.put (key, button);
|
| }, "~O,~S,~S,java.util.Map");
|
| Clazz_overrideMethod (c$, "notifyEnabled",
|
| function (type) {
|
| switch (type) {
|
| case J.c.CBK.ECHO:
|
| case J.c.CBK.MEASURE:
|
| case J.c.CBK.MESSAGE:
|
| case J.c.CBK.PICK:
|
| return true;
|
| case J.c.CBK.ANIMFRAME:
|
| case J.c.CBK.APPLETREADY:
|
| case J.c.CBK.ATOMMOVED:
|
| case J.c.CBK.CLICK:
|
| case J.c.CBK.DRAGDROP:
|
| case J.c.CBK.ERROR:
|
| case J.c.CBK.EVAL:
|
| case J.c.CBK.HOVER:
|
| case J.c.CBK.IMAGE:
|
| case J.c.CBK.LOADSTRUCT:
|
| case J.c.CBK.MINIMIZATION:
|
| case J.c.CBK.SERVICE:
|
| case J.c.CBK.RESIZE:
|
| case J.c.CBK.SCRIPT:
|
| case J.c.CBK.SYNC:
|
| case J.c.CBK.STRUCTUREMODIFIED:
|
| break;
|
| }
|
| return false;
|
| }, "J.c.CBK");
|
| Clazz_overrideMethod (c$, "notifyCallback",
|
| function (type, data) {
|
| var strInfo = (data == null || data[1] == null ? null : data[1].toString ());
|
| switch (type) {
|
| case J.c.CBK.ECHO:
|
| this.sendConsoleEcho (strInfo);
|
| break;
|
| case J.c.CBK.MEASURE:
|
| var mystatus = data[3];
|
| if (mystatus.indexOf ("Picked") >= 0 || mystatus.indexOf ("Sequence") >= 0) this.sendConsoleMessage (strInfo);
|
| else if (mystatus.indexOf ("Completed") >= 0) this.sendConsoleEcho (strInfo.substring (strInfo.lastIndexOf (",") + 2, strInfo.length - 1));
|
| break;
|
| case J.c.CBK.MESSAGE:
|
| this.sendConsoleMessage (data == null ? null : strInfo);
|
| break;
|
| case J.c.CBK.PICK:
|
| this.sendConsoleMessage (strInfo);
|
| break;
|
| }
|
| }, "J.c.CBK,~A");
|
| Clazz_overrideMethod (c$, "getText",
|
| function () {
|
| return this.output.getText ();
|
| });
|
| Clazz_overrideMethod (c$, "sendConsoleEcho",
|
| function (strEcho) {
|
| if (strEcho == null) {
|
| this.updateLabels ();
|
| this.outputMsg (null);
|
| strEcho = this.defaultMessage;
|
| } else if (strEcho.equals ("\0")) {
|
| {
|
| Clazz_Console.clear();
|
| }strEcho = null;
|
| }this.outputMsg (strEcho);
|
| }, "~S");
|
| Clazz_defineMethod (c$, "outputMsg",
|
| function (message) {
|
| var n = (message == null ? -1 : message.length);
|
| switch (n) {
|
| case -1:
|
| this.output.setText ("");
|
| return;
|
| default:
|
| if (message.charAt (n - 1) == '\n') break;
|
| case 0:
|
| message += "\n";
|
| }
|
| this.output.append (message);
|
| }, "~S");
|
| Clazz_defineMethod (c$, "clearContent",
|
| function (text) {
|
| this.output.setText (text);
|
| }, "~S");
|
| Clazz_overrideMethod (c$, "sendConsoleMessage",
|
| function (strInfo) {
|
| if (strInfo != null && this.output.getText ().startsWith (this.defaultMessage)) this.outputMsg (null);
|
| this.outputMsg (strInfo);
|
| }, "~S");
|
| Clazz_overrideMethod (c$, "setCallbackFunction",
|
| function (callbackType, callbackFunction) {
|
| }, "~S,~S");
|
| Clazz_overrideMethod (c$, "zap",
|
| function () {
|
| });
|
| Clazz_defineMethod (c$, "recallCommand",
|
| function (up) {
|
| var cmd = this.vwr.getSetHistory (up ? -1 : 1);
|
| if (cmd != null) this.input.setText (JU.PT.escUnicode (cmd));
|
| }, "~B");
|
| Clazz_defineMethod (c$, "processKey",
|
| function (kcode, kid, isControlDown) {
|
| var mode = 0;
|
| switch (kid) {
|
| case 401:
|
| switch (kcode) {
|
| case 9:
|
| var s = this.input.getText ();
|
| if (s.endsWith ("\n") || s.endsWith ("\t")) return 0;
|
| mode = 1;
|
| if (this.input.getCaretPosition () == s.length) {
|
| var cmd = this.completeCommand (s);
|
| if (cmd != null) this.input.setText (JU.PT.escUnicode (cmd).$replace ('\t', ' '));
|
| this.nTab++;
|
| return mode;
|
| }break;
|
| case 27:
|
| mode = 1;
|
| this.input.setText ("");
|
| break;
|
| }
|
| this.nTab = 0;
|
| if (kcode == 10 && !isControlDown) {
|
| this.execute (null);
|
| return mode;
|
| }if (kcode == 38 || kcode == 40) {
|
| this.recallCommand (kcode == 38);
|
| return mode;
|
| }break;
|
| case 402:
|
| if (kcode == 10 && !isControlDown) return mode;
|
| break;
|
| }
|
| return mode | 2;
|
| }, "~N,~N,~B");
|
| c$.splitCommandLine = Clazz_defineMethod (c$, "splitCommandLine",
|
| function (cmd) {
|
| var sout = new Array (4);
|
| var isEscaped1 = false;
|
| var isEscaped2 = false;
|
| var isEscaped = false;
|
| if (cmd.length == 0) return null;
|
| var ptQ = -1;
|
| var ptCmd = 0;
|
| var ptToken = 0;
|
| var nBrace = 0;
|
| var ch;
|
| for (var i = 0; i < cmd.length; i++) {
|
| switch (ch = cmd.charAt (i)) {
|
| case '"':
|
| if (!isEscaped && !isEscaped1) {
|
| isEscaped2 = !isEscaped2;
|
| if (isEscaped2) ptQ = ptToken = i;
|
| }break;
|
| case '\'':
|
| if (!isEscaped && !isEscaped2) {
|
| isEscaped1 = !isEscaped1;
|
| if (isEscaped1) ptQ = ptToken = i;
|
| }break;
|
| case '\\':
|
| isEscaped = !isEscaped;
|
| continue;
|
| case ' ':
|
| if (!isEscaped && !isEscaped1 && !isEscaped2) {
|
| ptToken = i + 1;
|
| ptQ = -1;
|
| }break;
|
| case ';':
|
| if (!isEscaped1 && !isEscaped2) {
|
| ptCmd = ptToken = i + 1;
|
| ptQ = -1;
|
| nBrace = 0;
|
| }break;
|
| case '{':
|
| case '}':
|
| if (!isEscaped1 && !isEscaped2) {
|
| nBrace += (ch == '{' ? 1 : -1);
|
| ptToken = i + 1;
|
| ptQ = -1;
|
| }break;
|
| default:
|
| if (!isEscaped1 && !isEscaped2) ptQ = -1;
|
| }
|
| isEscaped = false;
|
| }
|
| sout[0] = cmd.substring (0, ptCmd);
|
| sout[1] = (ptToken == ptCmd ? cmd.substring (ptCmd) : cmd.substring (ptCmd, (ptToken > ptQ ? ptToken : ptQ)));
|
| sout[2] = (ptToken == ptCmd ? null : cmd.substring (ptToken));
|
| sout[3] = (nBrace > 0 ? "{" : null);
|
| return sout;
|
| }, "~S");
|
| Clazz_defineStatics (c$,
|
| "labels", null);
|
| });
|
| Clazz_declarePackage ("J.consolejs");
|
| Clazz_load (["J.console.GenericConsole"], "J.consolejs.AppletConsole", null, function () {
|
| c$ = Clazz_decorateAsClass (function () {
|
| this.jsConsole = null;
|
| Clazz_instantialize (this, arguments);
|
| }, J.consolejs, "AppletConsole", J.console.GenericConsole);
|
| Clazz_makeConstructor (c$,
|
| function () {
|
| Clazz_superConstructor (this, J.consolejs.AppletConsole, []);
|
| });
|
| Clazz_overrideMethod (c$, "start",
|
| function (vwr) {
|
| this.setViewer (vwr);
|
| this.setLabels ();
|
| this.displayConsole ();
|
| }, "JV.Viewer");
|
| Clazz_overrideMethod (c$, "layoutWindow",
|
| function (enabledButtons) {
|
| {
|
| this.jsConsole = new Jmol.Console.JSConsole(this);
|
| }this.setTitle ();
|
| }, "~S");
|
| Clazz_overrideMethod (c$, "setTitle",
|
| function () {
|
| if (this.jsConsole != null) this.jsConsole.setTitle (J.console.GenericConsole.getLabel ("title"));
|
| });
|
| Clazz_overrideMethod (c$, "setVisible",
|
| function (visible) {
|
| this.jsConsole.setVisible (visible);
|
| }, "~B");
|
| Clazz_overrideMethod (c$, "setButton",
|
| function (text) {
|
| {
|
| return new Jmol.Console.Button(text);
|
| }}, "~S");
|
| Clazz_overrideMethod (c$, "dispose",
|
| function () {
|
| this.setVisible (false);
|
| });
|
| Clazz_overrideMethod (c$, "isMenuItem",
|
| function (source) {
|
| return false;
|
| }, "~O");
|
| Clazz_overrideMethod (c$, "getScriptEditor",
|
| function () {
|
| return null;
|
| });
|
| Clazz_overrideMethod (c$, "nextFileName",
|
| function (stub, nTab) {
|
| return null;
|
| }, "~S,~N");
|
| Clazz_overrideMethod (c$, "newJMenu",
|
| function (key) {
|
| return null;
|
| }, "~S");
|
| Clazz_overrideMethod (c$, "newJMenuItem",
|
| function (key) {
|
| return null;
|
| }, "~S");
|
| });
|
| })(Clazz
|
| ,Clazz.getClassName
|
| ,Clazz.newLongArray
|
| ,Clazz.doubleToByte
|
| ,Clazz.doubleToInt
|
| ,Clazz.doubleToLong
|
| ,Clazz.declarePackage
|
| ,Clazz.instanceOf
|
| ,Clazz.load
|
| ,Clazz.instantialize
|
| ,Clazz.decorateAsClass
|
| ,Clazz.floatToInt
|
| ,Clazz.floatToLong
|
| ,Clazz.makeConstructor
|
| ,Clazz.defineEnumConstant
|
| ,Clazz.exceptionOf
|
| ,Clazz.newIntArray
|
| ,Clazz.defineStatics
|
| ,Clazz.newFloatArray
|
| ,Clazz.declareType
|
| ,Clazz.prepareFields
|
| ,Clazz.superConstructor
|
| ,Clazz.newByteArray
|
| ,Clazz.declareInterface
|
| ,Clazz.p0p
|
| ,Clazz.pu$h
|
| ,Clazz.newShortArray
|
| ,Clazz.innerTypeInstance
|
| ,Clazz.isClassDefined
|
| ,Clazz.prepareCallback
|
| ,Clazz.newArray
|
| ,Clazz.castNullAs
|
| ,Clazz.floatToShort
|
| ,Clazz.superCall
|
| ,Clazz.decorateAsType
|
| ,Clazz.newBooleanArray
|
| ,Clazz.newCharArray
|
| ,Clazz.implementOf
|
| ,Clazz.newDoubleArray
|
| ,Clazz.overrideConstructor
|
| ,Clazz.clone
|
| ,Clazz.doubleToShort
|
| ,Clazz.getInheritedLevel
|
| ,Clazz.getParamsType
|
| ,Clazz.isAF
|
| ,Clazz.isAB
|
| ,Clazz.isAI
|
| ,Clazz.isAS
|
| ,Clazz.isASS
|
| ,Clazz.isAP
|
| ,Clazz.isAFloat
|
| ,Clazz.isAII
|
| ,Clazz.isAFF
|
| ,Clazz.isAFFF
|
| ,Clazz.tryToSearchAndExecute
|
| ,Clazz.getStackTrace
|
| ,Clazz.inheritArgs
|
| ,Clazz.alert
|
| ,Clazz.defineMethod
|
| ,Clazz.overrideMethod
|
| ,Clazz.declareAnonymous
|
|
|
| ,Clazz.cloneFinals
|
| );
|
|
|