JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / site / j2s / jssun / swing / CachedPainter.js
1 Clazz.declarePackage ("jssun.swing");\r
2 Clazz.load (["java.util.HashMap"], "jssun.swing.CachedPainter", ["java.awt.image.BufferedImage", "$.VolatileImage", "jssun.swing.ImageCache"], function () {\r
3 c$ = Clazz.declareType (jssun.swing, "CachedPainter");\r
4 c$.getCache = Clazz.defineMethod (c$, "getCache", \r
5  function (key) {\r
6 {\r
7 var cache = jssun.swing.CachedPainter.cacheMap.get (key);\r
8 if (cache == null) {\r
9 cache =  new jssun.swing.ImageCache (1);\r
10 jssun.swing.CachedPainter.cacheMap.put (key, cache);\r
11 }return cache;\r
12 }}, "~O");\r
13 Clazz.makeConstructor (c$, \r
14 function (cacheCount) {\r
15 jssun.swing.CachedPainter.getCache (this.getClass ()).setMaxCount (cacheCount);\r
16 }, "~N");\r
17 Clazz.defineMethod (c$, "paint", \r
18 function (c, g, x, y, w, h, args) {\r
19 if (w <= 0 || h <= 0) {\r
20 return;\r
21 }if (c != null) {\r
22 this.paint0 (c, g, x, y, w, h, args);\r
23 } else {\r
24 this.paint0 (c, g, x, y, w, h, args);\r
25 }}, "java.awt.Component,java.awt.Graphics,~N,~N,~N,~N,~A");\r
26 Clazz.defineMethod (c$, "paint0", \r
27  function (c, g, x, y, w, h, args) {\r
28 var key = this.getClass ();\r
29 var config = this.getGraphicsConfiguration (c);\r
30 var cache = jssun.swing.CachedPainter.getCache (key);\r
31 var image = cache.getImage (key, config, w, h, args);\r
32 var attempts = 0;\r
33 do {\r
34 var draw = false;\r
35 if (Clazz.instanceOf (image, java.awt.image.VolatileImage)) {\r
36 switch ((image).validate (config)) {\r
37 case 2:\r
38 (image).flush ();\r
39 image = null;\r
40 break;\r
41 case 1:\r
42 draw = true;\r
43 break;\r
44 }\r
45 }if (image == null) {\r
46 image = this.createImage (c, w, h, config, args);\r
47 cache.setImage (key, config, w, h, args, image);\r
48 draw = true;\r
49 }if (draw) {\r
50 var g2 = image.getGraphics ();\r
51 this.paintToImage (c, image, g2, w, h, args);\r
52 g2.dispose ();\r
53 }this.paintImage (c, g, x, y, w, h, image, args);\r
54 } while ((Clazz.instanceOf (image, java.awt.image.VolatileImage)) && (image).contentsLost () && ++attempts < 3);\r
55 }, "java.awt.Component,java.awt.Graphics,~N,~N,~N,~N,~A");\r
56 Clazz.defineMethod (c$, "paintImage", \r
57 function (c, g, x, y, w, h, image, args) {\r
58 g.drawImage (image, x, y, null);\r
59 }, "java.awt.Component,java.awt.Graphics,~N,~N,~N,~N,java.awt.Image,~A");\r
60 Clazz.defineMethod (c$, "createImage", \r
61 function (c, w, h, config, args) {\r
62 if (config == null) {\r
63 return  new java.awt.image.BufferedImage (w, h, 1);\r
64 }return config.createCompatibleVolatileImage (w, h);\r
65 }, "java.awt.Component,~N,~N,java.awt.GraphicsConfiguration,~A");\r
66 Clazz.defineMethod (c$, "flush", \r
67 function () {\r
68 {\r
69 jssun.swing.CachedPainter.getCache (this.getClass ()).flush ();\r
70 }});\r
71 Clazz.defineMethod (c$, "getGraphicsConfiguration", \r
72  function (c) {\r
73 if (c == null) {\r
74 return null;\r
75 }return c.getGraphicsConfiguration ();\r
76 }, "java.awt.Component");\r
77 c$.cacheMap = c$.prototype.cacheMap =  new java.util.HashMap ();\r
78 });\r