home *** CD-ROM | disk | FTP | other *** search
- import java.applet.Applet;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Graphics;
- import java.awt.Image;
-
- public class Ripple extends Applet implements Runnable {
- static boolean dispCopy;
- Image origImg;
- Image backImg;
- Image finImg;
- // $FF: renamed from: w1 int
- int field_0;
- // $FF: renamed from: h1 int
- int field_1;
- Graphics backG;
- Graphics finG;
- int phase;
- Thread thrRipple;
- int frameNo;
- int frames;
- int period;
- boolean stopIt = true;
- boolean borderGap = true;
- boolean imLoaded = false;
-
- public void init() {
- if (!dispCopy) {
- System.out.println("Ripple v 1.0 for Java");
- dispCopy = true;
- }
-
- ((Component)this).setBackground(Color.white);
- this.origImg = ((Applet)this).getImage(((Applet)this).getDocumentBase(), ((Applet)this).getParameter("image"));
- this.borderGap = "on".equals(((Applet)this).getParameter("bordergap"));
- this.field_0 = this.origImg.getWidth(this);
- this.field_1 = this.origImg.getHeight(this);
- if (this.field_1 > 0 && this.field_0 > 0) {
- this.stopIt = false;
- }
-
- String var1 = ((Applet)this).getParameter("period");
- if (var1 != null) {
- this.period = Integer.parseInt(var1);
- } else {
- this.period = 24;
- }
-
- var1 = ((Applet)this).getParameter("frames");
- if (var1 != null) {
- this.frames = Integer.parseInt(var1);
- } else {
- this.frames = 12;
- }
- }
-
- public void start() {
- if (this.thrRipple == null) {
- this.thrRipple = new Thread(this);
- this.thrRipple.start();
- }
-
- }
-
- public void stop() {
- if (this.thrRipple != null) {
- this.thrRipple.stop();
- this.thrRipple = null;
- }
-
- }
-
- public boolean imageUpdate(Image var1, int var2, int var3, int var4, int var5, int var6) {
- boolean var7 = true;
- if ((var2 & 2) > 0) {
- this.field_1 = var6;
- }
-
- if ((var2 & 1) > 0) {
- this.field_0 = var5;
- }
-
- if ((var2 & 32) > 0) {
- this.imLoaded = true;
- }
-
- if (this.imLoaded && this.field_0 > 0 && this.field_1 > 0) {
- this.stopIt = false;
- var7 = false;
- }
-
- return var7;
- }
-
- public void createIt() {
- this.backImg = ((Component)this).createImage(this.field_0, this.field_1);
- this.backG = this.backImg.getGraphics();
- this.finImg = ((Component)this).createImage(this.field_0, this.frames * this.field_1);
- this.finG = this.finImg.getGraphics();
- this.backG.setColor(Color.white);
-
- for(this.phase = 0; this.phase < this.frames; ++this.phase) {
- this.backG.drawImage(this.origImg, 0, 0, this);
- this.transformImage(this.backG);
- this.finG.drawImage(this.backImg, 0, this.phase * this.field_1, this);
- }
-
- }
-
- public void transformImage(Graphics var1) {
- this.translateX(var1);
- this.translateY(var1);
- }
-
- public void translateX(Graphics var1) {
- for(int var2 = 0; var2 < this.field_1; ++var2) {
- double var3 = (double)(this.period >> 1) * Math.sin((double)var2 / (double)this.period + (Math.PI * 2D) * (double)this.phase / (double)this.frames);
- var1.copyArea(0, var2, this.field_0, 1, (int)var3, 0);
- if (this.borderGap) {
- var1.drawLine((int)var3, var2, 0, var2);
- var1.drawLine((int)var3 + this.field_0, var2, this.field_0, var2);
- }
- }
-
- }
-
- public void translateY(Graphics var1) {
- for(int var2 = 0; var2 < this.field_0; ++var2) {
- double var3 = (double)(this.period >> 1) * Math.sin((double)var2 / (double)this.period + (Math.PI * 2D) * (double)this.phase / (double)this.frames);
- var1.copyArea(var2, 0, 1, this.field_1, 0, (int)var3);
- if (this.borderGap) {
- var1.drawLine(var2, (int)var3, var2, 0);
- var1.drawLine(var2, (int)var3 + this.field_1, var2, this.field_1);
- }
- }
-
- }
-
- public void run() {
- while(this.thrRipple != null) {
- try {
- Thread.sleep(50L);
- } catch (InterruptedException var1) {
- }
-
- this.frameNo = (this.frameNo + 1) % this.frames;
- ((Component)this).repaint();
- }
-
- }
-
- public void update(Graphics var1) {
- this.paint(var1);
- }
-
- public void paint(Graphics var1) {
- if (!this.stopIt) {
- this.stopIt = true;
- this.createIt();
- }
-
- if (this.finImg != null) {
- var1.drawImage(this.finImg, 0, -this.frameNo * this.field_1, this);
- var1.drawImage(this.finImg, 0, (this.frames - this.frameNo) * this.field_1, this);
- } else {
- var1.drawImage(this.origImg, 0, 0, this);
- }
- }
- }
-