You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

381 lines
9.8 KiB
Java

Ad Banner Rotator
import java.applet.Applet;
import java.applet.AppletContext;
import java.awt.*;
import java.io.PrintStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.StringTokenizer;
import java.util.Vector;
public class BhuBanner extends Applet
implements Runnable {
Thread A;
int B;
int C;
int D;
int E;
int F;
int G;
int H;
int I;
int J;
int K;
int L;
int M;
int N;
int O;
int P;
int Q;
int R;
int S;
int T;
int U;
Font V;
String W;
String X;
String Y;
String Z;
FontMetrics a;
Color b;
Color c;
Color d;
Image e;
Graphics f;
char g[];
Vector h;
Vector i;
Vector j;
int k;
int l;
int m;
int n;
int o;
int p;
int q;
boolean r;
final int s = 0;
final int t = 1;
int u;
int v[];
public void init() {
B = 0;
h = new Vector(10, 10);
i = new Vector(10, 10);
j = new Vector(10, 10);
B();
W = (String)h.elementAt(0);
setBackground(b);
E = size().width;
F = size().height;
v = new int[Q];
V = new Font(Y, S, I);
a = getFontMetrics(V);
J = a.getHeight();
H = a.stringWidth(W);
G = (F - a.getHeight()) / 2 + a.getAscent();
e = createImage(E, F);
f = e.getGraphics();
f.setFont(V);
g = W.toCharArray();
L = g.length;
K = (E - H) / 2;
P = K;
k = b.getRed();
l = b.getGreen();
m = b.getBlue();
d = c;
n = c.getRed();
p = c.getGreen();
o = c.getBlue();
for(int i1 = 0; i1 < Q; i1++) {
String s1 = (String)j.elementAt(i1);
if(s1.equalsIgnoreCase("DROP"))
v[i1] = 1;
else
if(s1.equalsIgnoreCase("SCROLL"))
v[i1] = 0;
else
v[i1] = 0;
}
u = v[0];
}
public void B() {
W = getParameter("TextToDisplay");
if(W == null)
W = "String not defined;";
Q = D(W, h);
W = getParameter("URLtoDisplay");
if(W == null)
W = "";
D(W, i);
W = getParameter("Effect");
if(W == null)
W = "DROP;SCROLL;DROP";
D(W, j);
X = getParameter("FontSize");
if(X == null)
I = 24;
else
I = Integer.parseInt(X);
Y = getParameter("FontName");
if(Y == null)
Y = "TimesRoman";
String s1 = getParameter("FontStyle");
if(s1 == null)
S = 1;
else
if(s1.equalsIgnoreCase("PLAIN"))
S = 0;
else
if(s1.equalsIgnoreCase("BOLD"))
S = 1;
else
if(s1.equalsIgnoreCase("ITALIC"))
S = 2;
else
if(s1.equalsIgnoreCase("BOLDandITALIC"))
S = 3;
else
S = 1;
Z = getParameter("target");
if(Z == null)
Z = "_blank";
String s2 = getParameter("speed");
if(s2 == null)
O = 5;
else
O = Integer.parseInt(s2);
String s3 = getParameter("xStep");
if(s3 == null)
T = 20;
else
T = Integer.parseInt(s3);
String s4 = getParameter("yStep");
if(s4 == null)
U = 10;
else
U = Integer.parseInt(s4);
String s5 = getParameter("Delay");
if(s5 == null)
R = 3000;
else
R = Integer.parseInt(s5);
String s6 = getParameter("bgCOLOR");
if(s6 == null)
b = Color.white;
else
if((b = C(s6)) == null)
b = Color.white;
String s7 = getParameter("textCOLOR");
if(s7 == null)
c = Color.black;
else
if((c = C(s7)) == null)
c = Color.black;
String s8 = getParameter("Author");
if(s8 == null || !s8.equals("www")) {
c = Color.black;
b = Color.black;
}
String s9 = getParameter("Email");
if(s9 == null || !s9.equals("x@xxx")) {
c = Color.black;
b = Color.black;
}
}
public int D(String s1, Vector vector) {
StringTokenizer stringtokenizer = new StringTokenizer(s1, ";", false);
int i1;
for(i1 = 0; stringtokenizer.hasMoreTokens(); i1++) {
String s2 = stringtokenizer.nextToken().trim();
vector.addElement(s2);
}
return i1;
}
public Color C(String s1) {
int i1;
int j1;
int k1;
try {
i1 = Integer.parseInt(s1.substring(0, s1.indexOf(",")).trim());
j1 = Integer.parseInt(s1.substring(s1.indexOf(",") + 1, s1.lastIndexOf(",")).trim());
k1 = Integer.parseInt(s1.substring(s1.lastIndexOf(",") + 1).trim());
}
catch(NumberFormatException numberformatexception) {
System.out.println("can't convert to integer, Switching to default colors" + numberformatexception);
return null;
}
try {
return new Color(i1, j1, k1);
}
catch(IllegalArgumentException illegalargumentexception) {
System.out.println("can't create new color, Switching to default colors" + illegalargumentexception);
}
return null;
}
public void start() {
if(A == null) {
A = new Thread(this);
A.start();
}
}
public void stop() {
if(A != null) {
A.stop();
A = null;
}
}
public void destroy() {
f.dispose();
}
public void run() {
do {
d = c;
r = true;
switch(u) {
default:
break;
case 1: // '\001'
M = 0;
for(N = 0; M < L; N++) {
if(g[N] == ' ') {
M++;
N++;
}
P = K + a.charsWidth(g, 0, M);
D = -J;
C = P;
for(; G - D > U; D += U) {
repaint();
try {
Thread.sleep(O);
}
catch(InterruptedException interruptedexception) { }
}
D = G;
repaint();
try {
Thread.sleep(O);
}
catch(InterruptedException interruptedexception1) { }
M++;
}
for(int i1 = 0; i1 <= 100; i1 += q) {
r = false;
A(i1);
repaint();
try {
Thread.sleep(200L);
}
catch(InterruptedException interruptedexception2) { }
}
break;
case 0: // '\0'
M = 0;
for(N = 0; M < L; N++) {
if(g[N] == ' ') {
M++;
N++;
}
P = K + a.charsWidth(g, 0, M);
C = E;
D = G;
for(; C - P > T; C -= T) {
repaint();
try {
Thread.sleep(O);
}
catch(InterruptedException interruptedexception3) { }
}
C = P;
repaint();
try {
Thread.sleep(O);
}
catch(InterruptedException interruptedexception4) { }
M++;
}
for(int j1 = 0; j1 <= 100; j1 += q) {
r = false;
A(j1);
repaint();
try {
Thread.sleep(200L);
}
catch(InterruptedException interruptedexception5) { }
}
break;
}
B++;
if(B > Q - 1)
B = 0;
W = (String)h.elementAt(B);
H = a.stringWidth(W);
g = W.toCharArray();
L = g.length;
K = (E - H) / 2;
u = v[B];
} while(true);
}
public void A(int i1) {
int j1 = ((k - n) * i1) / 100 + n;
int k1 = ((l - p) * i1) / 100 + p;
int l1 = ((m - o) * i1) / 100 + o;
d = new Color(j1, k1, l1);
}
public void paint(Graphics g1) {
f.setColor(b);
f.fillRect(0, 0, E, F);
f.setColor(d);
if(r) {
f.drawChars(g, 0, M, K, G);
f.drawChars(g, N, 1, C, D);
} else {
f.drawString(W, K, G);
}
g1.drawImage(e, 0, 0, this);
}
public void update(Graphics g1) {
paint(g1);
}
public boolean mouseDown(Event event, int i1, int j1) {
try {
getAppletContext().showDocument(new URL((String)i.elementAt(B)), Z);
}
catch(MalformedURLException malformedurlexception) {
System.out.println("Wrong URL");
}
return true;
}
public BhuBanner() {
q = 5;
r = true;
}
}