Merge branch 'master' of https://source.jalview.org/git/jalviewjs.git
[jalviewjs.git] / site / swingjs / j2s / swingjs / JSToolkit.js
index a41205b..027c59f 100644 (file)
-Clazz.declarePackage ("swingjs");\r
-Clazz.load (["jssun.awt.SunToolkit"], "swingjs.JSToolkit", ["java.io.BufferedInputStream", "$.ByteArrayInputStream", "$.InputStream", "java.lang.Boolean", "$.Thread", "java.util.Hashtable", "JU.AU", "$.Rdr", "$.SB", "java.awt.Dimension", "java.awt.image.ColorModel", "javax.swing.UIManager", "jssun.awt.AppContext", "swingjs.JSComponentPeer", "swingjs.api.Interface"], function () {\r
-c$ = Clazz.decorateAsClass (function () {\r
-this.imageKit = null;\r
-Clazz.instantialize (this, arguments);\r
-}, swingjs, "JSToolkit", jssun.awt.SunToolkit);\r
-Clazz.makeConstructor (c$, \r
-function () {\r
-Clazz.superConstructor (this, swingjs.JSToolkit);\r
-System.out.println ("JSToolkit initialized");\r
-});\r
-c$.warn = Clazz.defineMethod (c$, "warn", \r
-function (msg) {\r
-swingjs.JSToolkit.alert (msg);\r
-}, "~S");\r
-c$.alert = Clazz.defineMethod (c$, "alert", \r
-function (object) {\r
-{\r
-console.log("[JSToolkit] " + object);\r
-alert("[JSToolkit] " + object);\r
-}}, "~O");\r
-c$.log = Clazz.defineMethod (c$, "log", \r
-function (msg) {\r
-{\r
-System.out.println(msg);\r
-console.log(msg);\r
-}}, "~S");\r
-c$.confirm = Clazz.defineMethod (c$, "confirm", \r
-function (msg) {\r
-{\r
-return confirm(msg);\r
-}}, "~S");\r
-c$.prompt = Clazz.defineMethod (c$, "prompt", \r
-function (msg, defaultRet) {\r
-{\r
-return confirm(msg, defaultRet);\r
-}}, "~S,~S");\r
-c$.getPostEventQueue = Clazz.defineMethod (c$, "getPostEventQueue", \r
-function (isPost) {\r
-return (isPost ? jssun.awt.AppContext.getAppContext ().get ("PostEventQueue") : jssun.awt.AppContext.getAppContext ().get (jssun.awt.AppContext.EVENT_QUEUE_KEY));\r
-}, "~B");\r
-Clazz.overrideMethod (c$, "getScreenSize", \r
-function () {\r
-var d =  new java.awt.Dimension (0, 0);\r
-var jq = swingjs.JSToolkit.getJQuery ();\r
-{\r
-d.setSize(jq.$(window).width(), jq.$(window).height()); return\r
-d;\r
-}});\r
-Clazz.overrideMethod (c$, "getScreenResolution", \r
-function () {\r
-return 0;\r
-});\r
-Clazz.overrideMethod (c$, "getColorModel", \r
-function () {\r
-return java.awt.image.ColorModel.getRGBdefault ();\r
-});\r
-Clazz.overrideMethod (c$, "getFontList", \r
-function () {\r
-var hardwiredFontList =  Clazz.newArray (-1, ["SansSerif", "SansSerif", "Serif", "Monospaced", "DialogInput"]);\r
-return hardwiredFontList;\r
-});\r
-Clazz.overrideMethod (c$, "sync", \r
-function () {\r
-});\r
-Clazz.overrideMethod (c$, "isModalExclusionTypeSupported", \r
-function (modalExclusionType) {\r
-return true;\r
-}, "java.awt.Dialog.ModalExclusionType");\r
-Clazz.overrideMethod (c$, "isModalityTypeSupported", \r
-function (modalityType) {\r
-return false;\r
-}, "java.awt.Dialog.ModalityType");\r
-Clazz.overrideMethod (c$, "isTraySupported", \r
-function () {\r
-return false;\r
-});\r
-Clazz.overrideMethod (c$, "getScreenWidth", \r
-function () {\r
-return 0;\r
-});\r
-Clazz.overrideMethod (c$, "getScreenHeight", \r
-function () {\r
-return 0;\r
-});\r
-Clazz.overrideMethod (c$, "grab", \r
-function (w) {\r
-}, "java.awt.Window");\r
-Clazz.overrideMethod (c$, "ungrab", \r
-function (w) {\r
-}, "java.awt.Window");\r
-c$.getPropertyObject = Clazz.defineMethod (c$, "getPropertyObject", \r
-function (t, key, def) {\r
-return def;\r
-}, "~O,~S,~O");\r
-c$.getInstance = Clazz.defineMethod (c$, "getInstance", \r
-function (className) {\r
-return swingjs.api.Interface.getInstance (className, false);\r
-}, "~S");\r
-c$.getGraphicsConfiguration = Clazz.defineMethod (c$, "getGraphicsConfiguration", \r
-function () {\r
-return (swingjs.JSToolkit.gc == null ? swingjs.JSToolkit.gc = swingjs.JSToolkit.getInstance ("swingjs.JSGraphicsConfiguration") : swingjs.JSToolkit.gc);\r
-});\r
-c$.isFocused = Clazz.defineMethod (c$, "isFocused", \r
-function (window) {\r
-return false;\r
-}, "java.awt.Window");\r
-c$.getCSSFont = Clazz.defineMethod (c$, "getCSSFont", \r
-function (font) {\r
-var css = "";\r
-if (font.isItalic ()) css += "font-style:italic;";\r
-if (font.isBold ()) css += "font-weight:bold;";\r
-css += "font-size:" + font.getSize () + "px;";\r
-css += "font-family:" + font.getFamily () + ";";\r
-return css;\r
-}, "java.awt.Font");\r
-c$.getStringWidth = Clazz.defineMethod (c$, "getStringWidth", \r
-function (context, font, text) {\r
-var fontInfo = swingjs.JSToolkit.getCanvasFont (font);\r
-if (context == null) context = swingjs.JSToolkit.getDefaultCanvasContext2d ();\r
-var w = 0;\r
-{\r
-context.font = fontInfo;\r
-w = Math.ceil(context.measureText(text).width);\r
-}return w;\r
-}, "swingjs.api.HTML5CanvasContext2D,java.awt.Font,~S");\r
-c$.getDefaultCanvasContext2d = Clazz.defineMethod (c$, "getDefaultCanvasContext2d", \r
-function () {\r
-{\r
-if (this.defaultContext == null) this.defaultContext =\r
-document.createElement( 'canvas' ).getContext('2d');\r
-}return swingjs.JSToolkit.defaultContext;\r
-});\r
-c$.getCanvasFont = Clazz.defineMethod (c$, "getCanvasFont", \r
-function (font) {\r
-var strStyle = "";\r
-if (font.isItalic ()) strStyle += "italic ";\r
-if (font.isBold ()) strStyle += "bold ";\r
-return strStyle + font.getSize () + "px " + font.getFamily ();\r
-}, "java.awt.Font");\r
-c$.getFontFamily = Clazz.defineMethod (c$, "getFontFamily", \r
-function (font) {\r
-return font.getName ();\r
-}, "java.awt.Font");\r
-Clazz.overrideMethod (c$, "getFontMetrics", \r
-function (font) {\r
-var fm = swingjs.JSToolkit.getInstance ("swingjs.JSFontMetrics");\r
-fm.setFont (font);\r
-return fm;\r
-}, "java.awt.Font");\r
-c$.getCSSColor = Clazz.defineMethod (c$, "getCSSColor", \r
-function (c) {\r
-var s = "000000" + Integer.toHexString (c.getRGB () & 0xFFFFFF);\r
-return "#" + s.substring (s.length - 6);\r
-}, "java.awt.Color");\r
-c$.notImplemented = Clazz.defineMethod (c$, "notImplemented", \r
-function (msg) {\r
-var s = null;\r
-if (swingjs.JSToolkit.mapNotImpl == null) swingjs.JSToolkit.mapNotImpl =  new java.util.Hashtable ();\r
-{\r
-s = arguments.callee.caller; s = s.__CLASS_NAME__ ||\r
-s.claxxOwner.__CLASS_NAME__; s += "." +\r
-arguments.callee.caller.exName;\r
-}if (swingjs.JSToolkit.mapNotImpl.containsKey (s)) return;\r
-swingjs.JSToolkit.mapNotImpl.put (s, Boolean.TRUE);\r
-System.out.println (s + " has not been implemented in SwingJS. " + (msg === "" ? "" : (msg == null ? "" : msg) + swingjs.JSToolkit.getStackTrace (-5)));\r
-}, "~S");\r
-c$.getStackTrace = Clazz.defineMethod (c$, "getStackTrace", \r
-function () {\r
-{\r
-return Clazz.getStackTrace();\r
-}});\r
-c$.getStackTrace = Clazz.defineMethod (c$, "getStackTrace", \r
-function (n) {\r
-{\r
-return Clazz.getStackTrace(n);\r
-}}, "~N");\r
-c$.getLookAndFeelDefaults = Clazz.defineMethod (c$, "getLookAndFeelDefaults", \r
-function () {\r
-if (swingjs.JSToolkit.uid == null) swingjs.JSToolkit.uid = javax.swing.UIManager.getLookAndFeel ().getDefaults ();\r
-return swingjs.JSToolkit.uid;\r
-});\r
-c$.getComponentUI = Clazz.defineMethod (c$, "getComponentUI", \r
-function (target) {\r
-var c = swingjs.api.Interface.getInstance ("swingjs.plaf.JS" + target.getUIClassID (), true);\r
-if (c != null) c.set (target);\r
-return c;\r
-}, "javax.swing.JComponent");\r
-c$.getSwingDivId = Clazz.defineMethod (c$, "getSwingDivId", \r
-function () {\r
-return Thread.currentThread ().getName () + "_swingdiv";\r
-});\r
-c$.getJQuery = Clazz.defineMethod (c$, "getJQuery", \r
-function () {\r
-{\r
-if (!window.jQuery) alert(\r
-"jQuery is required for SwingJS, but window.jQuery is not defined."\r
-); jQuery.$ || (jQuery.$ = jQuery); return(jQuery);\r
-}});\r
-c$.getJavaResource = Clazz.defineMethod (c$, "getJavaResource", \r
-function (resourceName) {\r
-System.out.println ("JSToolkit getting Java resource " + resourceName);\r
-{\r
-return SwingJS.getJavaResource(resourceName);\r
-}}, "~S");\r
-c$.dispatchSystemEvent = Clazz.defineMethod (c$, "dispatchSystemEvent", \r
-function (runnable) {\r
-var f = null;\r
-{\r
-System.out.println("JST dispatchSystemEvent " +\r
-runnable.run.toString()); f =\r
-function(_JSToolkit_dispatchSystemEvent) {\r
-System.out.println("JST running " +\r
-runnable.run.toString());runnable.run()};\r
-}swingjs.JSToolkit.setTimeout (f, 0, 0);\r
-}, "Runnable");\r
-c$.dispatchEvent = Clazz.defineMethod (c$, "dispatchEvent", \r
-function (event, src, andWait) {\r
-var f = null;\r
-var id = ++swingjs.JSToolkit.dispatchID;\r
-{\r
-f = function()\r
-{\r
-if\r
-(src == null) event.dispatch(); else src.dispatchEvent(event);\r
-};\r
-}if (andWait) swingjs.JSToolkit.invokeAndWait (f, id);\r
- else swingjs.JSToolkit.setTimeout (f, 0, id);\r
-}, "java.awt.AWTEvent,~O,~B");\r
-c$.setTimeout = Clazz.defineMethod (c$, "setTimeout", \r
-function (f, msDelay, id) {\r
-{\r
-var thread = java.lang.Thread.thisThread;\r
-var thread0 = thread;\r
-var id0 = SwingJS.eventID || 0;\r
-setTimeout(function(_JSToolkit_setTimeout) {\r
-SwingJS.eventID = id;\r
-java.lang.Thread.thisThread = thread;\r
-try {\r
-if (f.run)\r
-f.run();\r
-else\r
-f();\r
-} catch (e) {\r
-var s = "JSToolkit.setTimeout(" + id +"): " + e;\r
-System.out.println(s);\r
-alert(s)}\r
-SwingJS.eventID = id0;\r
-java.lang.Thread.thisThread = thread0;\r
-}, msDelay);\r
-}}, "~O,~N,~N");\r
-c$.invokeAndWait = Clazz.defineMethod (c$, "invokeAndWait", \r
- function (f, id) {\r
-{\r
-var thread = java.lang.Thread.thisThread;\r
-var thread0 = thread;\r
-(function(_JSToolkit_setTimeout) {\r
-var id0 = SwingJS.eventID || 0;\r
-System.out.println("runNow " + id); SwingJS.eventID = id;\r
-java.lang.Thread.thisThread = thread;\r
-if (f.run)\r
-f.run();\r
-else\r
-f();\r
-SwingJS.eventID = id0;\r
-java.lang.Thread.thisThread = thread0;\r
-})();\r
-}}, "swingjs.api.JSFunction,~N");\r
-c$.isDispatchThread = Clazz.defineMethod (c$, "isDispatchThread", \r
-function () {\r
-{\r
-return (!!SwingJS.eventID);\r
-}});\r
-c$.checkClassMethod = Clazz.defineMethod (c$, "checkClassMethod", \r
-function (component, fname, signature) {\r
-{\r
-return component[fname] && component[fname][signature];\r
-}}, "java.awt.Component,~S,~S");\r
-c$.readyCallback = Clazz.defineMethod (c$, "readyCallback", \r
-function (aname, fname, a, me) {\r
-{\r
-Jmol._readyCallback(aname, fname, true,a, me);\r
-}}, "~S,~S,~O,~O");\r
-c$.forceRepaint = Clazz.defineMethod (c$, "forceRepaint", \r
-function (c) {\r
-}, "java.awt.Component");\r
-c$.getHTML5Applet = Clazz.defineMethod (c$, "getHTML5Applet", \r
-function (c) {\r
-return (c.getAppContext ().getThreadGroup ()).getHtmlApplet ();\r
-}, "javax.swing.JComponent");\r
-c$.taintUI = Clazz.defineMethod (c$, "taintUI", \r
-function (c) {\r
-{\r
-c.getUI && c.getUI() && c.getUI().setTainted();\r
-}}, "java.awt.Component");\r
-Clazz.overrideMethod (c$, "createComponent", \r
-function (target) {\r
-System.out.println ("JSToolkit creating LightweightPeer for " + target);\r
-var peer = swingjs.JSToolkit.getUI (target, true);\r
-return (peer == null ?  new swingjs.JSComponentPeer (target) : peer);\r
-}, "java.awt.Component");\r
-c$.getPlainDocument = Clazz.defineMethod (c$, "getPlainDocument", \r
-function (c) {\r
-return swingjs.JSToolkit.getInstance ("swingjs.JSPlainDocument");\r
-}, "javax.swing.JComponent");\r
-c$.getClassName = Clazz.defineMethod (c$, "getClassName", \r
-function (c) {\r
-{\r
-return c.__CLASS_NAME__;\r
-}}, "~O");\r
-c$.getSignedStreamBytes = Clazz.defineMethod (c$, "getSignedStreamBytes", \r
-function (bis) {\r
-try {\r
-return JU.AU.ensureSignedBytes (JU.Rdr.getStreamAsBytes (bis, null));\r
-} catch (e) {\r
-if (Clazz.exceptionOf (e, java.io.IOException)) {\r
-return null;\r
-} else {\r
-throw e;\r
-}\r
-}\r
-}, "java.io.BufferedInputStream");\r
-c$.getFileContents = Clazz.defineMethod (c$, "getFileContents", \r
-function (uri) {\r
-{\r
-return Jmol._getFileData(uri);\r
-}}, "~S");\r
-Clazz.defineMethod (c$, "getFileAsBytes", \r
-function (filename) {\r
-var data = swingjs.JSToolkit.getFileContents (filename);\r
-var b = null;\r
-if (JU.AU.isAB (data)) b = data;\r
- else if (Clazz.instanceOf (data, String)) b = (data).getBytes ();\r
- else if (Clazz.instanceOf (data, JU.SB)) b = JU.Rdr.getBytesFromSB (data);\r
- else if (Clazz.instanceOf (data, java.io.InputStream)) try {\r
-b = JU.Rdr.getLimitedStreamBytes (data, -1);\r
-} catch (e) {\r
-if (Clazz.exceptionOf (e, java.io.IOException)) {\r
-} else {\r
-throw e;\r
-}\r
-}\r
-return JU.AU.ensureSignedBytes (b);\r
-}, "~S");\r
-Clazz.defineMethod (c$, "getImagekit", \r
- function () {\r
-return (this.imageKit == null ? this.imageKit = swingjs.api.Interface.getInstance ("swingjs.JSImagekit", false) : this.imageKit);\r
-});\r
-Clazz.defineMethod (c$, "createImage", \r
-function (producer) {\r
-producer.startProduction (null);\r
-return null;\r
-}, "java.awt.image.ImageProducer");\r
-Clazz.defineMethod (c$, "createImage", \r
-function (filename) {\r
-return this.getImagekit ().createImageFromBytes (swingjs.JSToolkit.getSignedStreamBytes ( new java.io.BufferedInputStream ( new java.io.ByteArrayInputStream (this.getFileAsBytes (filename)))), 0, -1);\r
-}, "~S");\r
-Clazz.defineMethod (c$, "createImage", \r
-function (url) {\r
-try {\r
-return this.getImagekit ().createImageFromBytes (swingjs.JSToolkit.getSignedStreamBytes ( new java.io.BufferedInputStream (url.openStream ())), 0, -1);\r
-} catch (e) {\r
-if (Clazz.exceptionOf (e, java.io.IOException)) {\r
-return null;\r
-} else {\r
-throw e;\r
-}\r
-}\r
-}, "java.net.URL");\r
-Clazz.defineMethod (c$, "createImage", \r
-function (data, imageoffset, imagelength) {\r
-return this.getImagekit ().createImageFromBytes (data, imageoffset, imagelength);\r
-}, "~A,~N,~N");\r
-Clazz.overrideMethod (c$, "checkImage", \r
-function (image, width, height, observer) {\r
-return 63;\r
-}, "java.awt.Image,~N,~N,java.awt.image.ImageObserver");\r
-Clazz.overrideMethod (c$, "prepareImage", \r
-function (image, width, height, observer) {\r
-return true;\r
-}, "java.awt.Image,~N,~N,java.awt.image.ImageObserver");\r
-c$.hasFocus = Clazz.defineMethod (c$, "hasFocus", \r
-function (c) {\r
-var ui = swingjs.JSToolkit.getUI (c, false);\r
-return (ui != null && ui.hasFocus ());\r
-}, "java.awt.Component");\r
-c$.getUI = Clazz.defineMethod (c$, "getUI", \r
-function (c, isQuiet) {\r
-var ui = null;\r
-{\r
-ui = c.getUI && c.getUI();\r
-}if (ui == null) {\r
-var s = "[JSToolkit] Component " + c.getClass ().getName () + " has no cooresponding JSComponentUI.";\r
-System.out.println (s);\r
-}return ui;\r
-}, "java.awt.Component,~B");\r
-c$.requestFocus = Clazz.defineMethod (c$, "requestFocus", \r
-function (c) {\r
-var ui = swingjs.JSToolkit.getUI (c, false);\r
-if (ui == null || !ui.isFocusable ()) return false;\r
-var r = ((Clazz.isClassDefined ("swingjs.JSToolkit$1") ? 0 : swingjs.JSToolkit.$JSToolkit$1$ ()), Clazz.innerTypeInstance (swingjs.JSToolkit$1, this, Clazz.cloneFinals ("ui", ui)));\r
-swingjs.JSToolkit.setTimeout (r, 50, 0);\r
-return true;\r
-}, "java.awt.Component");\r
-c$.getCompositor = Clazz.defineMethod (c$, "getCompositor", \r
-function () {\r
-return (swingjs.JSToolkit.compositor == null ? swingjs.JSToolkit.compositor = swingjs.api.Interface.getInstance ("swingjs.JSGraphicsCompositor", false) : swingjs.JSToolkit.compositor);\r
-});\r
-c$.setGraphicsCompositeAlpha = Clazz.defineMethod (c$, "setGraphicsCompositeAlpha", \r
-function (g, rule) {\r
-return swingjs.JSToolkit.getCompositor ().setGraphicsCompositeAlpha (g, rule);\r
-}, "swingjs.JSGraphics2D,~N");\r
-c$.drawImageOp = Clazz.defineMethod (c$, "drawImageOp", \r
-function (g, img, op, x, y) {\r
-return swingjs.JSToolkit.getCompositor ().drawImageOp (g, img, op, x, y);\r
-}, "swingjs.JSGraphics2D,java.awt.image.BufferedImage,java.awt.image.BufferedImageOp,~N,~N");\r
-c$.filterRaster = Clazz.defineMethod (c$, "filterRaster", \r
-function (src, dst, op) {\r
-return swingjs.JSToolkit.getCompositor ().filterRaster (src, dst, op);\r
-}, "java.awt.image.Raster,java.awt.image.WritableRaster,java.awt.image.RasterOp");\r
-c$.filterImage = Clazz.defineMethod (c$, "filterImage", \r
-function (src, dst, op) {\r
-return swingjs.JSToolkit.getCompositor ().filterImage (src, dst, op);\r
-}, "java.awt.image.BufferedImage,java.awt.image.BufferedImage,java.awt.image.BufferedImageOp");\r
-c$.getZIndex = Clazz.defineMethod (c$, "getZIndex", \r
-function (ui, what) {\r
-{\r
-if (what) return getHTML5Applet(ui.c)._z[what];\r
-var c = ui.domNode; var z;\r
-while (c && !(z = c.style["z-index"])) {\r
-c = c.parentNode;\r
-}\r
-return z || 100000;\r
-}}, "swingjs.plaf.JSComponentUI,~S");\r
-Clazz.overrideMethod (c$, "createFrame", \r
-function (target) {\r
-return this.createWindowPeer (target, true);\r
-}, "java.awt.Frame");\r
-Clazz.overrideMethod (c$, "createWindow", \r
-function (target) {\r
-return this.createWindowPeer (target, false);\r
-}, "java.awt.Window");\r
-Clazz.defineMethod (c$, "createWindowPeer", \r
- function (target, isFrame) {\r
-return (swingjs.JSToolkit.getInstance ("swingjs.JSWindowPeer")).setFrame (target, true);\r
-}, "java.awt.Window,~B");\r
-c$.$JSToolkit$1$ = function () {\r
-Clazz.pu$h(self.c$);\r
-c$ = Clazz.declareAnonymous (swingjs, "JSToolkit$1", null, Runnable);\r
-Clazz.overrideMethod (c$, "run", \r
-function () {\r
-this.f$.ui.requestFocus (null, false, false, 0, null);\r
-});\r
-c$ = Clazz.p0p ();\r
-};\r
-Clazz.defineStatics (c$,\r
-"gc", null,\r
-"defaultContext", null,\r
-"mapNotImpl", null,\r
-"uid", null,\r
-"dispatchID", 0,\r
-"compositor", null);\r
-});\r
+Clazz.declarePackage ("swingjs");
+Clazz.load (["jssun.awt.SunToolkit"], "swingjs.JSToolkit", ["java.io.BufferedInputStream", "$.ByteArrayInputStream", "$.InputStream", "java.lang.Boolean", "$.Thread", "java.util.Hashtable", "JU.AU", "$.Rdr", "$.SB", "java.awt.Dimension", "java.awt.image.ColorModel", "javax.swing.UIManager", "jssun.awt.AppContext", "swingjs.JSComponentPeer", "swingjs.api.Interface"], function () {
+c$ = Clazz.decorateAsClass (function () {
+this.imageKit = null;
+Clazz.instantialize (this, arguments);
+}, swingjs, "JSToolkit", jssun.awt.SunToolkit);
+Clazz.makeConstructor (c$, 
+function () {
+Clazz.superConstructor (this, swingjs.JSToolkit);
+System.out.println ("JSToolkit initialized");
+});
+c$.warn = Clazz.defineMethod (c$, "warn", 
+function (msg) {
+swingjs.JSToolkit.alert (msg);
+}, "~S");
+c$.alert = Clazz.defineMethod (c$, "alert", 
+function (object) {
+{
+console.log("[JSToolkit] " + object);
+alert("[JSToolkit] " + object);
+}}, "~O");
+c$.log = Clazz.defineMethod (c$, "log", 
+function (msg) {
+{
+System.out.println(msg);
+console.log(msg);
+}}, "~S");
+c$.confirm = Clazz.defineMethod (c$, "confirm", 
+function (msg) {
+{
+return confirm(msg);
+}}, "~S");
+c$.prompt = Clazz.defineMethod (c$, "prompt", 
+function (msg, defaultRet) {
+{
+return confirm(msg, defaultRet);
+}}, "~S,~S");
+c$.getPostEventQueue = Clazz.defineMethod (c$, "getPostEventQueue", 
+function (isPost) {
+return (isPost ? jssun.awt.AppContext.getAppContext ().get ("PostEventQueue") : jssun.awt.AppContext.getAppContext ().get (jssun.awt.AppContext.EVENT_QUEUE_KEY));
+}, "~B");
+Clazz.overrideMethod (c$, "getScreenSize", 
+function () {
+var d =  new java.awt.Dimension (0, 0);
+var jq = swingjs.JSToolkit.getJQuery ();
+{
+d.setSize(jq.$(window).width(), jq.$(window).height()); return
+d;
+}});
+Clazz.overrideMethod (c$, "getScreenResolution", 
+function () {
+return 0;
+});
+Clazz.overrideMethod (c$, "getColorModel", 
+function () {
+return java.awt.image.ColorModel.getRGBdefault ();
+});
+Clazz.overrideMethod (c$, "getFontList", 
+function () {
+var hardwiredFontList =  Clazz.newArray (-1, ["SansSerif", "SansSerif", "Serif", "Monospaced", "DialogInput"]);
+return hardwiredFontList;
+});
+Clazz.overrideMethod (c$, "sync", 
+function () {
+});
+Clazz.overrideMethod (c$, "isModalExclusionTypeSupported", 
+function (modalExclusionType) {
+return true;
+}, "java.awt.Dialog.ModalExclusionType");
+Clazz.overrideMethod (c$, "isModalityTypeSupported", 
+function (modalityType) {
+return false;
+}, "java.awt.Dialog.ModalityType");
+Clazz.overrideMethod (c$, "isTraySupported", 
+function () {
+return false;
+});
+Clazz.overrideMethod (c$, "getScreenWidth", 
+function () {
+return 0;
+});
+Clazz.overrideMethod (c$, "getScreenHeight", 
+function () {
+return 0;
+});
+Clazz.overrideMethod (c$, "grab", 
+function (w) {
+}, "java.awt.Window");
+Clazz.overrideMethod (c$, "ungrab", 
+function (w) {
+}, "java.awt.Window");
+c$.getPropertyObject = Clazz.defineMethod (c$, "getPropertyObject", 
+function (t, key, def) {
+return def;
+}, "~O,~S,~O");
+c$.getInstance = Clazz.defineMethod (c$, "getInstance", 
+function (className) {
+return swingjs.api.Interface.getInstance (className, false);
+}, "~S");
+c$.getGraphicsConfiguration = Clazz.defineMethod (c$, "getGraphicsConfiguration", 
+function () {
+return (swingjs.JSToolkit.gc == null ? swingjs.JSToolkit.gc = swingjs.JSToolkit.getInstance ("swingjs.JSGraphicsConfiguration") : swingjs.JSToolkit.gc);
+});
+c$.isFocused = Clazz.defineMethod (c$, "isFocused", 
+function (window) {
+return false;
+}, "java.awt.Window");
+c$.getCSSFont = Clazz.defineMethod (c$, "getCSSFont", 
+function (font) {
+var css = "";
+if (font.isItalic ()) css += "font-style:italic;";
+if (font.isBold ()) css += "font-weight:bold;";
+css += "font-size:" + font.getSize () + "px;";
+css += "font-family:" + font.getFamily () + ";";
+return css;
+}, "java.awt.Font");
+c$.getStringWidth = Clazz.defineMethod (c$, "getStringWidth", 
+function (context, font, text) {
+var fontInfo = swingjs.JSToolkit.getCanvasFont (font);
+if (context == null) context = swingjs.JSToolkit.getDefaultCanvasContext2d ();
+var w = 0;
+{
+context.font = fontInfo;
+w = Math.ceil(context.measureText(text).width);
+}return w;
+}, "swingjs.api.HTML5CanvasContext2D,java.awt.Font,~S");
+c$.getDefaultCanvasContext2d = Clazz.defineMethod (c$, "getDefaultCanvasContext2d", 
+function () {
+{
+if (this.defaultContext == null) this.defaultContext =
+document.createElement( 'canvas' ).getContext('2d');
+}return swingjs.JSToolkit.defaultContext;
+});
+c$.getCanvasFont = Clazz.defineMethod (c$, "getCanvasFont", 
+function (font) {
+var strStyle = "";
+if (font.isItalic ()) strStyle += "italic ";
+if (font.isBold ()) strStyle += "bold ";
+return strStyle + font.getSize () + "px " + font.getFamily ();
+}, "java.awt.Font");
+c$.getFontFamily = Clazz.defineMethod (c$, "getFontFamily", 
+function (font) {
+return font.getName ();
+}, "java.awt.Font");
+Clazz.overrideMethod (c$, "getFontMetrics", 
+function (font) {
+var fm = swingjs.JSToolkit.getInstance ("swingjs.JSFontMetrics");
+fm.setFont (font);
+return fm;
+}, "java.awt.Font");
+c$.getCSSColor = Clazz.defineMethod (c$, "getCSSColor", 
+function (c) {
+var s = "000000" + Integer.toHexString (c.getRGB () & 0xFFFFFF);
+return "#" + s.substring (s.length - 6);
+}, "java.awt.Color");
+c$.notImplemented = Clazz.defineMethod (c$, "notImplemented", 
+function (msg) {
+var s = null;
+if (swingjs.JSToolkit.mapNotImpl == null) swingjs.JSToolkit.mapNotImpl =  new java.util.Hashtable ();
+{
+s = arguments.callee.caller; s = s.__CLASS_NAME__ ||
+s.claxxOwner.__CLASS_NAME__; s += "." +
+arguments.callee.caller.exName;
+}if (swingjs.JSToolkit.mapNotImpl.containsKey (s)) return;
+swingjs.JSToolkit.mapNotImpl.put (s, Boolean.TRUE);
+System.out.println (s + " has not been implemented in SwingJS. " + (msg === "" ? "" : (msg == null ? "" : msg) + swingjs.JSToolkit.getStackTrace (-5)));
+}, "~S");
+c$.getStackTrace = Clazz.defineMethod (c$, "getStackTrace", 
+function () {
+{
+return Clazz.getStackTrace();
+}});
+c$.getStackTrace = Clazz.defineMethod (c$, "getStackTrace", 
+function (n) {
+{
+return Clazz.getStackTrace(n);
+}}, "~N");
+c$.getLookAndFeelDefaults = Clazz.defineMethod (c$, "getLookAndFeelDefaults", 
+function () {
+if (swingjs.JSToolkit.uid == null) swingjs.JSToolkit.uid = javax.swing.UIManager.getLookAndFeel ().getDefaults ();
+return swingjs.JSToolkit.uid;
+});
+c$.getComponentUI = Clazz.defineMethod (c$, "getComponentUI", 
+function (target) {
+var c = swingjs.api.Interface.getInstance ("swingjs.plaf.JS" + target.getUIClassID (), true);
+if (c != null) c.set (target);
+return c;
+}, "javax.swing.JComponent");
+c$.getSwingDivId = Clazz.defineMethod (c$, "getSwingDivId", 
+function () {
+return Thread.currentThread ().getName () + "_swingdiv";
+});
+c$.getJQuery = Clazz.defineMethod (c$, "getJQuery", 
+function () {
+{
+if (!window.jQuery) alert(
+"jQuery is required for SwingJS, but window.jQuery is not defined."
+); jQuery.$ || (jQuery.$ = jQuery); return(jQuery);
+}});
+c$.getJavaResource = Clazz.defineMethod (c$, "getJavaResource", 
+function (resourceName) {
+System.out.println ("JSToolkit getting Java resource " + resourceName);
+{
+return SwingJS.getJavaResource(resourceName);
+}}, "~S");
+c$.dispatchSystemEvent = Clazz.defineMethod (c$, "dispatchSystemEvent", 
+function (runnable) {
+var f = null;
+{
+System.out.println("JST dispatchSystemEvent " +
+runnable.run.toString()); f =
+function(_JSToolkit_dispatchSystemEvent) {
+System.out.println("JST running " +
+runnable.run.toString());runnable.run()};
+}swingjs.JSToolkit.setTimeout (f, 0, 0);
+}, "Runnable");
+c$.dispatchEvent = Clazz.defineMethod (c$, "dispatchEvent", 
+function (event, src, andWait) {
+var f = null;
+var id = ++swingjs.JSToolkit.dispatchID;
+{
+f = function()
+{
+if
+(src == null) event.dispatch(); else src.dispatchEvent(event);
+};
+}if (andWait) swingjs.JSToolkit.invokeAndWait (f, id);
+ else swingjs.JSToolkit.setTimeout (f, 0, id);
+}, "java.awt.AWTEvent,~O,~B");
+c$.setTimeout = Clazz.defineMethod (c$, "setTimeout", 
+function (f, msDelay, id) {
+{
+var thread = java.lang.Thread.thisThread;
+var thread0 = thread;
+var id0 = SwingJS.eventID || 0;
+setTimeout(function(_JSToolkit_setTimeout) {
+SwingJS.eventID = id;
+java.lang.Thread.thisThread = thread;
+try {
+if (f.run)
+f.run();
+else
+f();
+} catch (e) {
+var s = "JSToolkit.setTimeout(" + id +"): " + e;
+System.out.println(s);
+alert(s)}
+SwingJS.eventID = id0;
+java.lang.Thread.thisThread = thread0;
+}, msDelay);
+}}, "~O,~N,~N");
+c$.invokeAndWait = Clazz.defineMethod (c$, "invokeAndWait", 
+ function (f, id) {
+{
+var thread = java.lang.Thread.thisThread;
+var thread0 = thread;
+(function(_JSToolkit_setTimeout) {
+var id0 = SwingJS.eventID || 0;
+System.out.println("runNow " + id); SwingJS.eventID = id;
+java.lang.Thread.thisThread = thread;
+if (f.run)
+f.run();
+else
+f();
+SwingJS.eventID = id0;
+java.lang.Thread.thisThread = thread0;
+})();
+}}, "swingjs.api.JSFunction,~N");
+c$.isDispatchThread = Clazz.defineMethod (c$, "isDispatchThread", 
+function () {
+{
+return (!!SwingJS.eventID);
+}});
+c$.checkClassMethod = Clazz.defineMethod (c$, "checkClassMethod", 
+function (component, fname, signature) {
+{
+return component[fname] && component[fname][signature];
+}}, "java.awt.Component,~S,~S");
+c$.readyCallback = Clazz.defineMethod (c$, "readyCallback", 
+function (aname, fname, a, me) {
+{
+Jmol._readyCallback(aname, fname, true,a, me);
+}}, "~S,~S,~O,~O");
+c$.forceRepaint = Clazz.defineMethod (c$, "forceRepaint", 
+function (c) {
+}, "java.awt.Component");
+c$.getHTML5Applet = Clazz.defineMethod (c$, "getHTML5Applet", 
+function (c) {
+return (c.getAppContext ().getThreadGroup ()).getHtmlApplet ();
+}, "javax.swing.JComponent");
+c$.taintUI = Clazz.defineMethod (c$, "taintUI", 
+function (c) {
+{
+c.getUI && c.getUI() && c.getUI().setTainted();
+}}, "java.awt.Component");
+Clazz.overrideMethod (c$, "createComponent", 
+function (target) {
+System.out.println ("JSToolkit creating LightweightPeer for " + target);
+var peer = swingjs.JSToolkit.getUI (target, true);
+return (peer == null ?  new swingjs.JSComponentPeer (target) : peer);
+}, "java.awt.Component");
+c$.getPlainDocument = Clazz.defineMethod (c$, "getPlainDocument", 
+function (c) {
+return swingjs.JSToolkit.getInstance ("swingjs.JSPlainDocument");
+}, "javax.swing.JComponent");
+c$.getClassName = Clazz.defineMethod (c$, "getClassName", 
+function (c) {
+{
+return c.__CLASS_NAME__;
+}}, "~O");
+c$.getSignedStreamBytes = Clazz.defineMethod (c$, "getSignedStreamBytes", 
+function (bis) {
+try {
+return JU.AU.ensureSignedBytes (JU.Rdr.getStreamAsBytes (bis, null));
+} catch (e) {
+if (Clazz.exceptionOf (e, java.io.IOException)) {
+return null;
+} else {
+throw e;
+}
+}
+}, "java.io.BufferedInputStream");
+c$.getFileContents = Clazz.defineMethod (c$, "getFileContents", 
+function (uri) {
+{
+return Jmol._getFileData(uri);
+}}, "~S");
+Clazz.defineMethod (c$, "getFileAsBytes", 
+function (filename) {
+var data = swingjs.JSToolkit.getFileContents (filename);
+var b = null;
+if (JU.AU.isAB (data)) b = data;
+ else if (Clazz.instanceOf (data, String)) b = (data).getBytes ();
+ else if (Clazz.instanceOf (data, JU.SB)) b = JU.Rdr.getBytesFromSB (data);
+ else if (Clazz.instanceOf (data, java.io.InputStream)) try {
+b = JU.Rdr.getLimitedStreamBytes (data, -1);
+} catch (e) {
+if (Clazz.exceptionOf (e, java.io.IOException)) {
+} else {
+throw e;
+}
+}
+return JU.AU.ensureSignedBytes (b);
+}, "~S");
+Clazz.defineMethod (c$, "getImagekit", 
+ function () {
+return (this.imageKit == null ? this.imageKit = swingjs.api.Interface.getInstance ("swingjs.JSImagekit", false) : this.imageKit);
+});
+Clazz.defineMethod (c$, "createImage", 
+function (producer) {
+producer.startProduction (null);
+return null;
+}, "java.awt.image.ImageProducer");
+Clazz.defineMethod (c$, "createImage", 
+function (filename) {
+return this.getImagekit ().createImageFromBytes (swingjs.JSToolkit.getSignedStreamBytes ( new java.io.BufferedInputStream ( new java.io.ByteArrayInputStream (this.getFileAsBytes (filename)))), 0, -1);
+}, "~S");
+Clazz.defineMethod (c$, "createImage", 
+function (url) {
+try {
+return this.getImagekit ().createImageFromBytes (swingjs.JSToolkit.getSignedStreamBytes ( new java.io.BufferedInputStream (url.openStream ())), 0, -1);
+} catch (e) {
+if (Clazz.exceptionOf (e, java.io.IOException)) {
+return null;
+} else {
+throw e;
+}
+}
+}, "java.net.URL");
+Clazz.defineMethod (c$, "createImage", 
+function (data, imageoffset, imagelength) {
+return this.getImagekit ().createImageFromBytes (data, imageoffset, imagelength);
+}, "~A,~N,~N");
+Clazz.overrideMethod (c$, "checkImage", 
+function (image, width, height, observer) {
+return 63;
+}, "java.awt.Image,~N,~N,java.awt.image.ImageObserver");
+Clazz.overrideMethod (c$, "prepareImage", 
+function (image, width, height, observer) {
+return true;
+}, "java.awt.Image,~N,~N,java.awt.image.ImageObserver");
+c$.hasFocus = Clazz.defineMethod (c$, "hasFocus", 
+function (c) {
+var ui = swingjs.JSToolkit.getUI (c, false);
+return (ui != null && ui.hasFocus ());
+}, "java.awt.Component");
+c$.getUI = Clazz.defineMethod (c$, "getUI", 
+function (c, isQuiet) {
+var ui = null;
+{
+ui = c.getUI && c.getUI();
+}if (ui == null) {
+var s = "[JSToolkit] Component " + c.getClass ().getName () + " has no cooresponding JSComponentUI.";
+System.out.println (s);
+}return ui;
+}, "java.awt.Component,~B");
+c$.requestFocus = Clazz.defineMethod (c$, "requestFocus", 
+function (c) {
+var ui = swingjs.JSToolkit.getUI (c, false);
+if (ui == null || !ui.isFocusable ()) return false;
+var r = ((Clazz.isClassDefined ("swingjs.JSToolkit$1") ? 0 : swingjs.JSToolkit.$JSToolkit$1$ ()), Clazz.innerTypeInstance (swingjs.JSToolkit$1, this, Clazz.cloneFinals ("ui", ui)));
+swingjs.JSToolkit.setTimeout (r, 50, 0);
+return true;
+}, "java.awt.Component");
+c$.getCompositor = Clazz.defineMethod (c$, "getCompositor", 
+function () {
+return (swingjs.JSToolkit.compositor == null ? swingjs.JSToolkit.compositor = swingjs.api.Interface.getInstance ("swingjs.JSGraphicsCompositor", false) : swingjs.JSToolkit.compositor);
+});
+c$.setGraphicsCompositeAlpha = Clazz.defineMethod (c$, "setGraphicsCompositeAlpha", 
+function (g, rule) {
+return swingjs.JSToolkit.getCompositor ().setGraphicsCompositeAlpha (g, rule);
+}, "swingjs.JSGraphics2D,~N");
+c$.drawImageOp = Clazz.defineMethod (c$, "drawImageOp", 
+function (g, img, op, x, y) {
+return swingjs.JSToolkit.getCompositor ().drawImageOp (g, img, op, x, y);
+}, "swingjs.JSGraphics2D,java.awt.image.BufferedImage,java.awt.image.BufferedImageOp,~N,~N");
+c$.filterRaster = Clazz.defineMethod (c$, "filterRaster", 
+function (src, dst, op) {
+return swingjs.JSToolkit.getCompositor ().filterRaster (src, dst, op);
+}, "java.awt.image.Raster,java.awt.image.WritableRaster,java.awt.image.RasterOp");
+c$.filterImage = Clazz.defineMethod (c$, "filterImage", 
+function (src, dst, op) {
+return swingjs.JSToolkit.getCompositor ().filterImage (src, dst, op);
+}, "java.awt.image.BufferedImage,java.awt.image.BufferedImage,java.awt.image.BufferedImageOp");
+c$.getZIndex = Clazz.defineMethod (c$, "getZIndex", 
+function (ui, what) {
+{
+if (what) return getHTML5Applet(ui.c)._z[what];
+var c = ui.domNode; var z;
+while (c && !(z = c.style["z-index"])) {
+c = c.parentNode;
+}
+return z || 100000;
+}}, "swingjs.plaf.JSComponentUI,~S");
+Clazz.overrideMethod (c$, "createFrame", 
+function (target) {
+return this.createWindowPeer (target, true);
+}, "java.awt.Frame");
+Clazz.overrideMethod (c$, "createWindow", 
+function (target) {
+return this.createWindowPeer (target, false);
+}, "java.awt.Window");
+Clazz.defineMethod (c$, "createWindowPeer", 
+ function (target, isFrame) {
+return (swingjs.JSToolkit.getInstance ("swingjs.JSWindowPeer")).setFrame (target, true);
+}, "java.awt.Window,~B");
+c$.$JSToolkit$1$ = function () {
+Clazz.pu$h(self.c$);
+c$ = Clazz.declareAnonymous (swingjs, "JSToolkit$1", null, Runnable);
+Clazz.overrideMethod (c$, "run", 
+function () {
+this.f$.ui.requestFocus (null, false, false, 0, null);
+});
+c$ = Clazz.p0p ();
+};
+Clazz.defineStatics (c$,
+"gc", null,
+"defaultContext", null,
+"mapNotImpl", null,
+"uid", null,
+"dispatchID", 0,
+"compositor", null);
+});