589a0b86d71c57ad45bdb64b894098340a04d9bc
[jalviewjs.git] / site / j2s / swingjs / test / SeeThroughImageApplet.js
1 Clazz.declarePackage ("swingjs.test");\r
2 Clazz.load (["javax.swing.JApplet", "$.JPanel"], ["swingjs.test.SeeThroughImageApplet", "$.SeeThroughComponent"], ["java.awt.Color", "$.Dimension", "$.Font", "java.awt.event.WindowAdapter", "java.awt.image.BufferedImage", "$.RescaleOp", "java.io.File", "java.net.URL", "javax.imageio.ImageIO", "javax.swing.JFrame", "$.JSlider", "javax.swing.event.ChangeListener"], function () {\r
3 c$ = Clazz.decorateAsClass (function () {\r
4 this.bi = null;\r
5 this.scales = null;\r
6 this.offsets = null;\r
7 this.rop = null;\r
8 Clazz.instantialize (this, arguments);\r
9 }, swingjs.test, "SeeThroughComponent", javax.swing.JPanel);\r
10 Clazz.prepareFields (c$, function () {\r
11 this.scales =  Clazz.newFloatArray (-1, [1, 1, 1, 0.5]);\r
12 this.offsets =  Clazz.newFloatArray (4, 0);\r
13 });\r
14 Clazz.makeConstructor (c$, \r
15 function (imageSrc) {\r
16 Clazz.superConstructor (this, swingjs.test.SeeThroughComponent, []);\r
17 try {\r
18 var img = javax.imageio.ImageIO.read (imageSrc);\r
19 var w = img.getWidth (null);\r
20 var h = img.getHeight (null);\r
21 this.bi =  new java.awt.image.BufferedImage (w, h, 2);\r
22 var g = this.bi.getGraphics ();\r
23 g.drawImage (img, 0, 0, null);\r
24 } catch (e) {\r
25 if (Clazz.exceptionOf (e, java.io.IOException)) {\r
26 System.out.println ("Image could not be read");\r
27 } else {\r
28 throw e;\r
29 }\r
30 }\r
31 this.setOpacity (0.5);\r
32 }, "java.net.URL");\r
33 Clazz.overrideMethod (c$, "getPreferredSize", \r
34 function () {\r
35 return  new java.awt.Dimension (this.bi.getWidth (null), this.bi.getHeight (null));\r
36 });\r
37 Clazz.defineMethod (c$, "setOpacity", \r
38 function (opacity) {\r
39 this.scales[3] = opacity;\r
40 this.rop =  new java.awt.image.RescaleOp (this.scales, this.offsets, null);\r
41 }, "~N");\r
42 Clazz.overrideMethod (c$, "paint", \r
43 function (g) {\r
44 var g2d = g;\r
45 g2d.setColor (java.awt.Color.white);\r
46 g2d.fillRect (0, 0, this.getWidth (), this.getHeight ());\r
47 g2d.setColor (java.awt.Color.black);\r
48 g2d.setFont ( new java.awt.Font ("Dialog", 1, 24));\r
49 g2d.drawString ("JavaScript is cool!", 5, 80);\r
50 g2d.drawImage (this.bi, this.rop, 0, 0);\r
51 }, "java.awt.Graphics");\r
52 c$ = Clazz.decorateAsClass (function () {\r
53 this.imageSrc = null;\r
54 Clazz.instantialize (this, arguments);\r
55 }, swingjs.test, "SeeThroughImageApplet", javax.swing.JApplet);\r
56 Clazz.makeConstructor (c$, \r
57 function () {\r
58 Clazz.superConstructor (this, swingjs.test.SeeThroughImageApplet, []);\r
59 });\r
60 Clazz.makeConstructor (c$, \r
61 function (imageSrc) {\r
62 Clazz.superConstructor (this, swingjs.test.SeeThroughImageApplet, []);\r
63 this.imageSrc = imageSrc;\r
64 }, "java.net.URL");\r
65 Clazz.overrideMethod (c$, "init", \r
66 function () {\r
67 try {\r
68 this.imageSrc = this.pathTo (swingjs.test.SeeThroughImageApplet.imageFileName);\r
69 } catch (e) {\r
70 if (Clazz.exceptionOf (e, java.net.MalformedURLException)) {\r
71 } else {\r
72 throw e;\r
73 }\r
74 }\r
75 this.buildUI ();\r
76 });\r
77 Clazz.defineMethod (c$, "buildUI", \r
78 function () {\r
79 var st =  new swingjs.test.SeeThroughComponent (this.imageSrc);\r
80 this.add ("Center", st);\r
81 try {\r
82 var opacitySlider =  new javax.swing.JSlider (0, 100);\r
83 opacitySlider.addChangeListener (((Clazz.isClassDefined ("swingjs.test.SeeThroughImageApplet$1") ? 0 : swingjs.test.SeeThroughImageApplet.$SeeThroughImageApplet$1$ ()), Clazz.innerTypeInstance (swingjs.test.SeeThroughImageApplet$1, this, Clazz.cloneFinals ("st", st))));\r
84 var size = st.getPreferredSize ();\r
85 var sliderSize = opacitySlider.getPreferredSize ();\r
86 this.resize (size.width, size.height + sliderSize.height);\r
87 this.add ("South", opacitySlider);\r
88 } catch (e) {\r
89 if (Clazz.exceptionOf (e, Exception)) {\r
90 } else {\r
91 throw e;\r
92 }\r
93 }\r
94 });\r
95 c$.main = Clazz.defineMethod (c$, "main", \r
96 function (s) {\r
97 var f =  new javax.swing.JFrame ("See Through Image");\r
98 f.addWindowListener (((Clazz.isClassDefined ("swingjs.test.SeeThroughImageApplet$2") ? 0 : swingjs.test.SeeThroughImageApplet.$SeeThroughImageApplet$2$ ()), Clazz.innerTypeInstance (swingjs.test.SeeThroughImageApplet$2, this, null)));\r
99 var imageSrc = null;\r
100 try {\r
101 imageSrc = (( new java.io.File (swingjs.test.SeeThroughImageApplet.imageFileName)).toURI ()).toURL ();\r
102 } catch (e) {\r
103 if (Clazz.exceptionOf (e, java.net.MalformedURLException)) {\r
104 } else {\r
105 throw e;\r
106 }\r
107 }\r
108 var sta =  new swingjs.test.SeeThroughImageApplet (imageSrc);\r
109 sta.buildUI ();\r
110 f.add ("Center", sta);\r
111 f.pack ();\r
112 f.setVisible (true);\r
113 }, "~A");\r
114 Clazz.defineMethod (c$, "pathTo", \r
115  function (file) {\r
116 var path = this.getDocumentBase ().toString ();\r
117 var pt = path.indexOf ("/bin/");\r
118 if (pt > 0) path = path.substring (0, pt) + "/html/" + path.substring (pt + 5);\r
119 path = path.substring (0, path.lastIndexOf ("/") + 1) + file;\r
120 if (path.startsWith ("/")) path = "file://" + path;\r
121 return  new java.net.URL (path);\r
122 }, "~S");\r
123 c$.$SeeThroughImageApplet$1$ = function () {\r
124 Clazz.pu$h(self.c$);\r
125 c$ = Clazz.declareAnonymous (swingjs.test, "SeeThroughImageApplet$1", null, javax.swing.event.ChangeListener);\r
126 Clazz.overrideMethod (c$, "stateChanged", \r
127 function (e) {\r
128 var slider = e.getSource ();\r
129 this.f$.st.setOpacity (slider.getValue () / 100);\r
130 this.f$.st.repaint ();\r
131 }, "javax.swing.event.ChangeEvent");\r
132 c$ = Clazz.p0p ();\r
133 };\r
134 c$.$SeeThroughImageApplet$2$ = function () {\r
135 Clazz.pu$h(self.c$);\r
136 c$ = Clazz.declareAnonymous (swingjs.test, "SeeThroughImageApplet$2", java.awt.event.WindowAdapter);\r
137 Clazz.overrideMethod (c$, "windowClosing", \r
138 function (e) {\r
139 System.exit (0);\r
140 }, "java.awt.event.WindowEvent");\r
141 c$ = Clazz.p0p ();\r
142 };\r
143 Clazz.defineStatics (c$,\r
144 "imageFileName", "examples/duke_skateboard.jpg");\r
145 });\r