home *** CD-ROM | disk | FTP | other *** search
- import java.applet.Applet;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Dimension;
- import java.awt.Event;
- import java.awt.Font;
- import java.awt.FontMetrics;
- import java.awt.Graphics;
- import java.awt.Image;
- import java.net.MalformedURLException;
- import java.net.URL;
-
- public class OCVscroll extends OCAviewerExtend implements Runnable {
- private Font m_font;
- private Font[] m_cur_font;
- // $FF: renamed from: fm java.awt.FontMetrics
- FontMetrics field_0;
- Thread animator;
- // $FF: renamed from: d java.awt.Dimension
- Dimension field_1;
- Image off;
- Graphics g_off;
- Graphics g_erase;
- Image erase;
- URL goURL;
- boolean mouseIn = false;
- boolean break_pause = false;
- boolean tag = false;
- long next_time;
- // $FF: renamed from: my int
- int field_2;
- int hLine = -1;
- int l_h = -1;
- int soff;
- int[] m_size_pause;
- int num_links;
- int[] link_cords;
- String[] link_urls;
- int[] line_coords;
- int[] re_draw;
- int font_style;
- int num_descrips;
- int scroll_y;
- int last_h = -1;
- int cur_dline;
- int hold_move;
- int link_ref = 0;
- boolean done_draw = false;
- boolean first_run = false;
- boolean paused;
- boolean mdown = false;
- boolean dragged = false;
- private boolean m_def_size_extra = false;
- private boolean[] m_size_extra;
- private int m_def_align = 0;
- private int m_def_delay = 10;
- private int m_scroll_delay = 20;
- private Color m_def_textcolor;
- private Color m_bgcolor;
- private Color m_def_hlcolor;
- private String m_onsbtext;
- private int m_xoffset;
- private String m_def_loadwhere;
- private String m_offsbtext;
- int i_h;
- private int[] m_delay;
- private Color[] m_textcolor;
- private String[] m_desc;
- private String[] m_linkurl;
- private int[] m_align;
- private String[] m_loadwhere;
- private String[] d_temp;
-
- public void stop() {
- if (this.animator != null) {
- this.animator.stop();
- }
-
- this.animator = null;
- }
-
- public boolean mouseEnter(Event var1, int var2, int var3) {
- this.mouseIn = true;
- ((OCAviewerExtend)this).showStatus(this.m_onsbtext);
- return true;
- }
-
- public void mCheck() {
- for(int var1 = 0; var1 < this.num_links; ++var1) {
- if (!this.mouseIn) {
- this.hLine = -1;
- this.chl(var1);
- return;
- }
-
- if (this.field_2 > this.link_cords[var1 * 3] + this.scroll_y && this.field_2 < this.link_cords[var1 * 3 + 1] + this.scroll_y) {
- this.hLine = this.link_cords[var1 * 3 + 2];
- this.link_ref = var1;
- this.chl(var1);
- return;
- }
-
- if (var1 == this.num_links - 1) {
- this.hLine = -1;
- this.chl(var1);
- return;
- }
- }
-
- }
-
- public boolean mouseExit(Event var1, int var2, int var3) {
- this.mouseIn = false;
- ((OCAviewerExtend)this).showStatus(this.m_offsbtext);
- this.mCheck();
- return true;
- }
-
- static int getAlignValue(String var0) {
- if (var0.equalsIgnoreCase("right")) {
- return 2;
- } else {
- return var0.equalsIgnoreCase("center") ? 1 : 0;
- }
- }
-
- public void WhereAmI() {
- for(int var1 = this.num_descrips - 1; var1 > -1; --var1) {
- if (this.scroll_y > -this.line_coords[var1]) {
- this.cur_dline = var1;
- }
- }
-
- }
-
- public void paint(Graphics var1) {
- if (!this.tag) {
- var1.drawString(this.m_onsbtext, 5, 20);
- } else {
- if (this.done_draw) {
- this.DrawBG(var1);
- var1.drawImage(this.off, 0, this.scroll_y + 1, this);
- var1.setColor(this.m_bgcolor);
- }
-
- }
- }
-
- public OCVscroll() {
- this.m_def_textcolor = Color.black;
- this.m_bgcolor = Color.white;
- this.m_def_hlcolor = Color.blue;
- this.m_onsbtext = "OpenCube - Smooth Scroll Up II (www.opencube.com)";
- this.m_xoffset = 5;
- this.m_def_loadwhere = "_self";
- this.m_offsbtext = "Java By OpenCube (www.opencube.com)";
- }
-
- public boolean mouseUp(Event var1, int var2, int var3) {
- this.WhereAmI();
- this.mdown = false;
- if (this.dragged) {
- this.dragged = false;
- return true;
- } else {
- if (this.hLine != -1 && !this.link_urls[this.link_ref].equals("-1")) {
- try {
- this.goURL = new URL(((OCAviewerExtend)this).getDocumentBase(), this.link_urls[this.link_ref]);
- } catch (MalformedURLException var4) {
- }
-
- ((Applet)this).getAppletContext().showDocument(this.goURL, this.m_loadwhere[this.hLine]);
- }
-
- return true;
- }
- }
-
- public void start() {
- if (this.tag) {
- if (!this.first_run) {
- this.DrawBG(((Component)this).getGraphics());
- ((OCAviewerExtend)this).showStatus(this.m_onsbtext);
- this.first_run = true;
- }
-
- this.paused = false;
- if (this.first_run) {
- this.WhereAmI();
- }
-
- this.animator = new Thread(this);
- this.animator.start();
- }
- }
-
- public void DrawBG(Graphics var1) {
- var1.setColor(this.m_bgcolor);
- var1.fillRect(0, 0, this.field_1.width, this.field_1.height);
- }
-
- public void ScrollIt(boolean var1) {
- if (var1 && this.scroll_y == -this.line_coords[this.cur_dline] && this.cur_dline != this.num_descrips) {
- this.paused = true;
- if (this.m_delay[this.cur_dline] > 0) {
- this.next_time = System.currentTimeMillis() + (long)this.m_delay[this.cur_dline];
-
- while(System.currentTimeMillis() < this.next_time) {
- try {
- Thread.sleep(10L);
- } catch (InterruptedException var2) {
- }
-
- if (this.break_pause) {
- this.break_pause = false;
- break;
- }
- }
- }
-
- this.paused = false;
- if (this.cur_dline != this.num_descrips - 1) {
- ++this.cur_dline;
- }
- }
-
- ((Component)this).getGraphics().drawImage(this.off, 0, this.scroll_y, this);
- if (this.scroll_y < -this.off.getHeight(this)) {
- this.scroll_y = this.field_1.height;
- this.cur_dline = 0;
- }
-
- }
-
- public void DrawScroll() {
- Object var1 = null;
- int var2 = 0;
- int var3 = 0;
- int var4 = 0;
- int var5 = 0;
- boolean var6 = false;
- int var7 = 0;
-
- do {
- var2 = 0;
-
- for(int var8 = 0; var8 < this.num_descrips; ++var8) {
- if (var7 == 0) {
- this.field_0 = ((Component)this).getFontMetrics(this.m_cur_font[var8]);
- if (this.m_size_pause[var8] == 1) {
- var5 = var2;
- var6 = true;
- } else if (!var6) {
- var5 = var2;
- }
-
- String[] var11 = ocwordw.WrapText(this.m_desc[var8], this.field_1.width - this.m_xoffset * 2, this.field_0);
-
- for(int var14 = 0; var14 < var11.length; ++var14) {
- var2 += this.field_0.getHeight();
- }
-
- if (var8 == this.m_desc.length - 1) {
- this.i_h = var2 + this.field_0.getDescent() + 5;
- this.off = ((Component)this).createImage(this.field_1.width, this.i_h);
- this.g_off = this.off.getGraphics();
- this.g_off.setColor(this.m_bgcolor);
- this.g_off.fillRect(0, 0, this.field_1.width, this.i_h);
- } else if (var2 - var5 < this.field_1.height && this.m_size_pause[var8] == 2) {
- if (this.m_size_extra[var8]) {
- var2 = var2 + (this.field_1.height - (var2 - var5)) + 1 + (var2 - var5);
- } else {
- var2 = var2 + (this.field_1.height - (var2 - var5)) + 1;
- }
-
- var6 = false;
- }
- } else {
- this.g_off.setFont(this.m_cur_font[var8]);
- this.field_0 = this.g_off.getFontMetrics(this.m_cur_font[var8]);
- var3 = var2;
- if (this.m_size_pause[var8] == 1) {
- var5 = var2;
- var6 = true;
- } else if (!var6) {
- var5 = var2;
- }
-
- this.line_coords[var8] = var2 + this.field_0.getDescent() + 1;
- this.re_draw[var8] = var2;
- String[] var10 = ocwordw.WrapText(this.m_desc[var8], this.field_1.width - this.m_xoffset * 2, this.field_0);
-
- for(int var9 = 0; var9 < var10.length; ++var9) {
- var2 += this.field_0.getHeight();
- this.g_off.setColor(this.m_textcolor[var8]);
- if (this.m_align[var8] == 1) {
- this.g_off.drawString(var10[var9], (this.field_1.width - this.field_0.stringWidth(var10[var9])) / 2, var2);
- } else if (this.m_align[var8] == 0) {
- this.g_off.drawString(var10[var9], this.m_xoffset, var2);
- } else if (this.m_align[var8] == 2) {
- this.g_off.drawString(var10[var9], this.field_1.width - this.m_xoffset - this.field_0.stringWidth(var10[var9]), var2);
- }
- }
-
- if (this.m_linkurl[var8].length() > 3) {
- if (var8 == this.m_desc.length - 1) {
- var2 += this.field_0.getDescent();
- }
-
- this.link_cords[var4 * 3] = var3;
- this.link_cords[var4 * 3 + 1] = var2;
- this.link_cords[var4 * 3 + 2] = var8;
- this.link_urls[var4] = this.m_linkurl[var8];
- ++var4;
- }
-
- if (var8 != this.m_desc.length - 1 && var2 - var5 < this.field_1.height && this.m_size_pause[var8] == 2) {
- if (this.m_size_extra[var8]) {
- var2 = var2 + (this.field_1.height - (var2 - var5)) + 1 + (var2 - var5);
- } else {
- var2 = var2 + (this.field_1.height - (var2 - var5)) + 1;
- }
-
- var6 = false;
- }
- }
- }
-
- ++var7;
- } while(var7 < 2);
-
- this.done_draw = true;
- }
-
- public String CheckSPart(String var1) {
- return var1.trim().length() == 0 ? " " : var1.trim();
- }
-
- public boolean mouseDown(Event var1, int var2, int var3) {
- this.mdown = true;
- this.hold_move = this.field_2;
- this.cur_dline = 0;
- if (this.hLine == -1 && this.paused) {
- this.break_pause = true;
- }
-
- return true;
- }
-
- private void chl(int var1) {
- if (this.l_h != this.hLine) {
- if (this.l_h != -1) {
- this.method_0(this.l_h, this.m_textcolor[this.l_h]);
- ((OCAviewerExtend)this).showStatus(this.m_onsbtext);
- }
-
- if (this.hLine != -1) {
- this.method_0(this.hLine, this.m_def_hlcolor);
- ((OCAviewerExtend)this).showStatus(this.link_urls[var1]);
- }
-
- if (this.paused) {
- this.soff = 1;
- } else {
- this.soff = 0;
- }
-
- ((Component)this).getGraphics().drawImage(this.off, 0, this.scroll_y + this.soff, this);
- }
-
- this.l_h = this.hLine;
- }
-
- public void run() {
- while(true) {
- if (!this.mdown) {
- --this.scroll_y;
- this.ScrollIt(true);
- this.mCheck();
- }
-
- try {
- Thread.sleep((long)this.m_scroll_delay);
- } catch (InterruptedException var1) {
- }
- }
- }
-
- public void init() {
- String var1 = "Smooth Scroll Up II, Copyright (c) 1999, OpenCube Inc.";
- this.field_1 = ((Component)this).size();
- int var3 = 0;
- this.scroll_y = this.field_1.height;
- String var2 = ((OCAviewerExtend)this).getParameter("Notice");
- if (var2 == null) {
- this.m_onsbtext = "Missing 'Notice' Tag";
- this.tag = false;
- } else if (!var2.equalsIgnoreCase(var1)) {
- this.tag = false;
- this.m_onsbtext = "Invalid Copyright 'Notice' Tag";
- } else {
- this.tag = true;
- var2 = ((OCAviewerExtend)this).getParameter("extrasize");
- if (var2 != null) {
- this.m_def_size_extra = Boolean.valueOf(var2);
- }
-
- var2 = ((OCAviewerExtend)this).getParameter("font");
- if (var2 != null) {
- this.m_font = ocfontc.getFontSD(var2, ",");
- } else {
- this.m_font = new Font("Helvetica", 0, 12);
- }
-
- var2 = ((OCAviewerExtend)this).getParameter("loadwhere");
- if (var2 != null) {
- this.m_def_loadwhere = var2;
- }
-
- var2 = ((OCAviewerExtend)this).getParameter("textcolor");
- if (var2 != null) {
- this.m_def_textcolor = occcolor.ConvertColor(var2);
- }
-
- var2 = ((OCAviewerExtend)this).getParameter("bgcolor");
- if (var2 != null) {
- this.m_bgcolor = occcolor.ConvertColor(var2);
- }
-
- ((Component)this).setBackground(this.m_bgcolor);
- var2 = ((OCAviewerExtend)this).getParameter("delay");
- if (var2 != null) {
- this.m_def_delay = Integer.parseInt(var2);
- }
-
- var2 = ((OCAviewerExtend)this).getParameter("scrolldelay");
- if (var2 != null) {
- this.m_scroll_delay = Integer.parseInt(var2);
- }
-
- var2 = ((OCAviewerExtend)this).getParameter("lrmargin");
- if (var2 != null) {
- this.m_xoffset = Integer.parseInt(var2);
- }
-
- var2 = ((OCAviewerExtend)this).getParameter("hlcolor");
- if (var2 != null) {
- this.m_def_hlcolor = occcolor.ConvertColor(var2);
- }
-
- var2 = ((OCAviewerExtend)this).getParameter("halign");
- if (var2 != null) {
- this.m_def_align = getAlignValue(var2);
- }
-
- while(((OCAviewerExtend)this).getParameter("desc" + var3) != null) {
- ++var3;
- ++this.num_descrips;
- }
-
- this.m_cur_font = new Font[this.num_descrips];
- this.m_delay = new int[this.num_descrips];
- this.m_textcolor = new Color[this.num_descrips];
- this.m_desc = new String[this.num_descrips];
- this.m_linkurl = new String[this.num_descrips];
- this.m_align = new int[this.num_descrips];
- this.m_loadwhere = new String[this.num_descrips];
- this.m_size_pause = new int[this.num_descrips];
- this.m_size_extra = new boolean[this.num_descrips];
- this.line_coords = new int[this.num_descrips];
- this.re_draw = new int[this.num_descrips];
-
- for(int var23 = 0; var23 < this.num_descrips; ++var23) {
- var2 = ((OCAviewerExtend)this).getParameter("desc" + var23);
- if (var2 != null) {
- this.m_desc[var23] = var2;
- } else {
- this.m_desc[var23] = " ";
- }
-
- var2 = ((OCAviewerExtend)this).getParameter("loadwhere" + var23);
- if (var2 != null) {
- this.m_loadwhere[var23] = var2;
- } else {
- this.m_loadwhere[var23] = this.m_def_loadwhere;
- }
-
- var2 = ((OCAviewerExtend)this).getParameter("font" + var23);
- if (var2 != null) {
- this.m_cur_font[var23] = ocfontc.getFontSD(var2, ",");
- } else {
- this.m_cur_font[var23] = this.m_font;
- }
-
- var2 = ((OCAviewerExtend)this).getParameter("halign" + var23);
- if (var2 != null) {
- this.m_align[var23] = getAlignValue(var2);
- } else {
- this.m_align[var23] = this.m_def_align;
- }
-
- var2 = ((OCAviewerExtend)this).getParameter("delay" + var23);
- if (var2 != null) {
- this.m_delay[var23] = Integer.parseInt(var2);
- } else {
- this.m_delay[var23] = this.m_def_delay;
- }
-
- var2 = ((OCAviewerExtend)this).getParameter("textcolor" + var23);
- if (var2 != null) {
- this.m_textcolor[var23] = occcolor.ConvertColor(var2);
- } else {
- this.m_textcolor[var23] = this.m_def_textcolor;
- }
-
- var2 = ((OCAviewerExtend)this).getParameter("desturl" + var23);
- if (var2 != null) {
- ++this.num_links;
- this.m_linkurl[var23] = var2;
- } else {
- this.m_linkurl[var23] = "-1";
- }
-
- var2 = ((OCAviewerExtend)this).getParameter("sizepause" + var23);
- if (var2 != null) {
- this.m_size_pause[var23] = getAutoValue(var2);
- } else {
- this.m_size_pause[var23] = 0;
- }
-
- var2 = ((OCAviewerExtend)this).getParameter("extrasize" + var23);
- if (var2 != null) {
- this.m_size_extra[var23] = Boolean.valueOf(var2);
- } else {
- this.m_size_extra[var23] = this.m_def_size_extra;
- }
- }
-
- this.link_cords = new int[this.num_links * 3];
- this.link_urls = new String[this.num_links];
- this.DrawScroll();
- }
- }
-
- static int getAutoValue(String var0) {
- if (var0.equalsIgnoreCase("end")) {
- return 2;
- } else if (var0.equalsIgnoreCase("fit")) {
- return 2;
- } else {
- return var0.equalsIgnoreCase("start") ? 1 : 0;
- }
- }
-
- public boolean mouseDrag(Event var1, int var2, int var3) {
- this.field_2 = var3;
- if (this.hold_move == this.field_2) {
- return true;
- } else {
- if (this.paused) {
- this.break_pause = true;
- }
-
- if (!this.dragged && Math.abs(this.hold_move - this.field_2) > 1) {
- this.hLine = -1;
- this.chl(0);
- this.dragged = true;
- }
-
- this.scroll_y += this.field_2 - this.hold_move;
- if (this.scroll_y > this.field_1.height || this.scroll_y < -this.i_h) {
- if (this.scroll_y > this.field_1.height) {
- this.scroll_y = this.field_1.height;
- }
-
- if (this.scroll_y < -this.i_h) {
- this.scroll_y = -this.i_h;
- }
- }
-
- this.ScrollIt(false);
- int var4 = Math.abs(this.field_2 - this.hold_move);
- this.erase = ((Component)this).createImage(this.field_1.width, var4);
- this.g_erase = this.erase.getGraphics();
- this.g_erase.setColor(this.m_bgcolor);
- this.g_erase.fillRect(0, 0, this.field_1.width, var4);
- if (this.scroll_y > 0) {
- ((Component)this).getGraphics().drawImage(this.erase, 0, this.scroll_y - var4, this);
- }
-
- if (this.scroll_y + this.i_h < this.field_1.height) {
- ((Component)this).getGraphics().drawImage(this.erase, 0, this.scroll_y + this.i_h, this);
- }
-
- this.hold_move = this.field_2;
- return true;
- }
- }
-
- // $FF: renamed from: HL (int, java.awt.Color) void
- public void method_0(int var1, Color var2) {
- int var3 = this.re_draw[var1];
- this.g_off.setFont(this.m_cur_font[var1]);
- this.field_0 = this.g_off.getFontMetrics(this.m_cur_font[var1]);
- this.g_off.setColor(var2);
- String[] var4 = ocwordw.WrapText(this.m_desc[var1], this.field_1.width - this.m_xoffset * 2, this.field_0);
-
- for(int var5 = 0; var5 < var4.length; ++var5) {
- var3 += this.field_0.getHeight();
- if (this.m_align[var1] == 1) {
- this.g_off.drawString(var4[var5], (this.field_1.width - this.field_0.stringWidth(var4[var5])) / 2, var3);
- } else if (this.m_align[var1] == 0) {
- this.g_off.drawString(var4[var5], this.m_xoffset, var3);
- } else if (this.m_align[var1] == 2) {
- this.g_off.drawString(var4[var5], this.field_1.width - this.m_xoffset - this.field_0.stringWidth(var4[var5]), var3);
- }
- }
-
- }
-
- public boolean mouseMove(Event var1, int var2, int var3) {
- this.field_2 = var3;
- if (this.paused) {
- this.mCheck();
- }
-
- return true;
- }
- }
-