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
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
14 Clazz.makeConstructor (c$,
\r
15 function (imageSrc) {
\r
16 Clazz.superConstructor (this, swingjs.test.SeeThroughComponent, []);
\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
25 if (Clazz.exceptionOf (e, java.io.IOException)) {
\r
26 System.out.println ("Image could not be read");
\r
31 this.setOpacity (0.5);
\r
33 Clazz.overrideMethod (c$, "getPreferredSize",
\r
35 return new java.awt.Dimension (this.bi.getWidth (null), this.bi.getHeight (null));
\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
42 Clazz.overrideMethod (c$, "paint",
\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
58 Clazz.superConstructor (this, swingjs.test.SeeThroughImageApplet, []);
\r
60 Clazz.makeConstructor (c$,
\r
61 function (imageSrc) {
\r
62 Clazz.superConstructor (this, swingjs.test.SeeThroughImageApplet, []);
\r
63 this.imageSrc = imageSrc;
\r
65 Clazz.overrideMethod (c$, "init",
\r
68 this.imageSrc = this.pathTo (swingjs.test.SeeThroughImageApplet.imageFileName);
\r
70 if (Clazz.exceptionOf (e, java.net.MalformedURLException)) {
\r
77 Clazz.defineMethod (c$, "buildUI",
\r
79 var st = new swingjs.test.SeeThroughComponent (this.imageSrc);
\r
80 this.add ("Center", st);
\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
89 if (Clazz.exceptionOf (e, Exception)) {
\r
95 c$.main = Clazz.defineMethod (c$, "main",
\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
101 imageSrc = (( new java.io.File (swingjs.test.SeeThroughImageApplet.imageFileName)).toURI ()).toURL ();
\r
103 if (Clazz.exceptionOf (e, java.net.MalformedURLException)) {
\r
108 var sta = new swingjs.test.SeeThroughImageApplet (imageSrc);
\r
110 f.add ("Center", sta);
\r
112 f.setVisible (true);
\r
114 Clazz.defineMethod (c$, "pathTo",
\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
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
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
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
140 }, "java.awt.event.WindowEvent");
\r
143 Clazz.defineStatics (c$,
\r
144 "imageFileName", "examples/duke_skateboard.jpg");
\r