home *** CD-ROM | disk | FTP | other *** search
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Container;
- 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.awt.LayoutManager;
- import java.awt.Panel;
- import java.awt.Scrollbar;
- import java.util.Vector;
-
- public class OCTexmlh extends Panel {
- public int appWidth;
- public int appHeight;
- public Color bgColor = new Color(153, 153, 153);
- int offimgx;
- int offimgy;
- int max_d;
- private int m_yoffset = 5;
- int actappx;
- int actappy;
- // $FF: renamed from: bo int
- int field_0;
- private Font m_font;
- private Font[] m_cur_font;
- // $FF: renamed from: fm java.awt.FontMetrics
- FontMetrics field_1;
- // $FF: renamed from: ds java.awt.Dimension
- Dimension field_2 = new Dimension(0, 0);
- Image off;
- Graphics g_off;
- Graphics g_erase;
- Image erase;
- boolean mouseIn = false;
- boolean break_pause = false;
- boolean tag = false;
- boolean paint_called = false;
- long next_time;
- // $FF: renamed from: my int
- int field_3;
- 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 last_h = -1;
- int cur_dline;
- int hold_move;
- int link_ref = 0;
- boolean done_draw = false;
- boolean first_run = true;
- 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 Color m_def_textcolor;
- private Color m_bgcolor;
- private Color m_def_hlcolor;
- 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[] def_pn;
- private String[] def_pv;
- private String[] spe_pn;
- private Vector spe_pv;
- int sb_width;
- // $FF: renamed from: sb java.awt.Scrollbar
- Scrollbar field_4;
- Scrollbar hsb;
- int scroll_y;
- int scroll_x;
- int sb_linedist;
- int hsb_linedist;
- boolean first_sb_run;
- boolean first_hsb_run;
- boolean use_sb;
- boolean use_hsb;
- int last_scroll_y;
- int last_scroll_x;
- int sEdge;
- int sbImgWidth;
- int sbImgHeight;
-
- public void reshape(int var1, int var2, int var3, int var4) {
- if (var3 * var4 > 0) {
- this.field_2 = new Dimension(var3, var4);
- this.centerAppArea();
- super.reshape(var1, var2, var3, var4);
- }
- }
-
- public boolean mouseEnter(Event var1, int var2, int var3) {
- this.mouseIn = true;
- 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_3 > this.link_cords[var1 * 3] + this.actappy && this.field_3 < this.link_cords[var1 * 3 + 1] + this.actappy) {
- 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;
- this.mCheck();
- return true;
- }
-
- private String getParameterSpecific(String var1, int var2) {
- for(int var3 = 0; var3 < this.spe_pn.length; ++var3) {
- if (this.spe_pn[var3].equals(var1)) {
- String var4 = ((String[])this.spe_pv.elementAt(var2))[var3];
- if (var4 != null && !var4.equals("") && !var4.equalsIgnoreCase("<default>")) {
- return var4;
- }
-
- return null;
- }
- }
-
- return null;
- }
-
- OCTexmlh() {
- this.m_def_textcolor = Color.black;
- this.m_bgcolor = Color.white;
- this.m_def_hlcolor = Color.blue;
- this.m_xoffset = 5;
- this.m_def_loadwhere = "_self";
- this.m_offsbtext = "Java by OpenCube";
- this.sb_width = 12;
- this.sb_linedist = 1;
- this.hsb_linedist = 1;
- this.first_sb_run = true;
- this.first_hsb_run = true;
- this.use_sb = false;
- this.use_hsb = false;
- this.sEdge = 5;
- ((Container)this).setLayout((LayoutManager)null);
- }
-
- public void paint(Graphics var1) {
- this.paint_called = true;
- this.paintIt();
- }
-
- public boolean mouseUp(Event var1, int var2, int var3) {
- this.mdown = false;
- if (this.dragged) {
- this.dragged = false;
- return true;
- } else {
- if (this.hLine != -1 && !this.link_urls[this.link_ref].equals("-1")) {
- }
-
- return true;
- }
- }
-
- public void addSpecifics(String[] var1, Vector var2) {
- this.spe_pn = var1;
- this.spe_pv = var2;
- this.initSpecifics();
- }
-
- private String getParameterDefault(String var1) {
- for(int var2 = 0; var2 < this.def_pn.length; ++var2) {
- if (this.def_pn[var2].equals(var1)) {
- return this.def_pv[var2];
- }
- }
-
- return null;
- }
-
- private void initDefault() {
- String var1 = this.getParameterDefault("font");
- if (var1 != null) {
- this.m_font = ocfontc.getFontSD(var1, ",");
- } else {
- this.m_font = new Font("Helvetica", 0, 12);
- }
-
- var1 = this.getParameterDefault("textcolor");
- if (var1 != null) {
- this.m_def_textcolor = occcolor.ConvertColor(var1);
- }
-
- var1 = this.getParameterDefault("bgcolor");
- if (var1 != null) {
- this.m_bgcolor = occcolor.ConvertColor(var1);
- }
-
- var1 = this.getParameterDefault("bmargin");
- if (var1 != null) {
- this.m_yoffset = Integer.parseInt(var1);
- }
-
- var1 = this.getParameterDefault("hlcolor");
- if (var1 != null) {
- this.m_def_hlcolor = occcolor.ConvertColor(var1);
- }
-
- var1 = this.getParameterDefault("valign");
- if (var1 != null) {
- this.m_def_align = Integer.parseInt(var1);
- }
-
- }
-
- private synchronized void paintIt() {
- if (this.paint_called) {
- Graphics var1 = ((Component)this).getGraphics();
- if (this.first_run) {
- ((Component)this).setBackground(this.bgColor);
- if (this.field_2.width * this.field_2.height <= 0) {
- return;
- }
-
- this.first_run = false;
- this.DrawScroll();
- if (this.first_sb_run) {
- if (this.use_sb) {
- this.field_4 = new Scrollbar();
- if (this.use_sb && this.use_hsb) {
- this.field_4.reshape(this.field_2.width - this.sb_width, 0, this.sb_width, this.field_2.height - this.sb_width);
- } else {
- this.field_4.reshape(this.field_2.width - this.sb_width, 0, this.sb_width, this.field_2.height);
- }
-
- this.field_4.setBackground(Color.gray);
- ((Container)this).add(this.field_4);
- this.first_sb_run = false;
- }
- } else if (!this.use_sb) {
- ((Container)this).remove(this.field_4);
- this.field_4 = null;
- this.first_sb_run = true;
- } else if (this.use_sb && this.use_hsb) {
- this.field_4.reshape(this.field_2.width - this.sb_width, 0, this.sb_width, this.field_2.height - this.sb_width);
- } else {
- this.field_4.reshape(this.field_2.width - this.sb_width, 0, this.sb_width, this.field_2.height);
- }
-
- if (this.use_sb) {
- this.field_4.setValues(this.field_4.getValue(), 1, 0, this.sbImgHeight - this.field_2.height);
- }
-
- if (this.first_hsb_run) {
- if (this.use_hsb) {
- this.hsb = new Scrollbar(0);
- if (this.use_sb && this.use_hsb) {
- this.hsb.reshape(0, this.field_2.height - this.sb_width, this.field_2.width - this.sb_width, this.sb_width);
- } else {
- this.hsb.reshape(0, this.field_2.height - this.sb_width, this.field_2.width, this.sb_width);
- }
-
- this.hsb.setBackground(Color.gray);
- ((Container)this).add(this.hsb);
- this.first_hsb_run = false;
- }
- } else if (!this.use_hsb) {
- ((Container)this).remove(this.hsb);
- this.hsb = null;
- this.first_hsb_run = true;
- } else if (this.use_sb && this.use_hsb) {
- this.hsb.reshape(0, this.field_2.height - this.sb_width, this.field_2.width - this.sb_width, this.sb_width);
- } else {
- this.hsb.reshape(0, this.field_2.height - this.sb_width, this.field_2.width, this.sb_width);
- }
-
- if (this.use_hsb) {
- this.hsb.setValues(this.hsb.getValue(), 1, 0, this.sbImgWidth - this.field_2.width);
- return;
- }
- } else {
- var1.drawImage(this.off, this.scroll_x, this.scroll_y, this);
- if (this.use_sb && this.use_hsb) {
- var1.setColor(Color.lightGray);
- } else {
- var1.setColor(new Color(153, 153, 153));
- }
-
- var1.fillRect(this.field_2.width - this.sb_width, this.field_2.height - this.sb_width, this.sb_width, this.sb_width);
- }
-
- }
- }
-
- public void setAppDimensions(int var1, int var2) {
- if (var1 != this.appWidth || var2 != this.appHeight) {
- this.appWidth = var1;
- this.appHeight = var2;
- ((Component)this).getGraphics();
- ((Component)this).setBackground(this.bgColor);
- ((Component)this).repaint();
- }
-
- this.appWidth = var1;
- this.appHeight = var2;
- this.centerAppArea();
- }
-
- public void resize(Dimension var1) {
- if (var1.width * var1.height > 0) {
- this.field_2 = var1;
- this.centerAppArea();
- super.resize(var1);
- }
- }
-
- public void resize(int var1, int var2) {
- if (var1 * var2 > 0) {
- this.field_2 = new Dimension(var1, var2);
- this.centerAppArea();
- super.resize(var1, var2);
- }
- }
-
- public void initSpecifics() {
- boolean var2 = false;
- this.num_descrips = this.spe_pv.size();
- 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 var9 = 0; var9 < this.num_descrips; ++var9) {
- String var1 = this.getParameterSpecific("desc", var9);
- if (var1 != null) {
- this.m_desc[var9] = var1;
- } else {
- this.m_desc[var9] = " ";
- }
-
- var1 = this.getParameterSpecific("loadwhere", var9);
- if (var1 != null) {
- this.m_loadwhere[var9] = var1;
- } else {
- this.m_loadwhere[var9] = this.m_def_loadwhere;
- }
-
- var1 = this.getParameterSpecific("font", var9);
- if (var1 != null) {
- this.m_cur_font[var9] = ocfontc.getFontSD(var1, ",");
- } else {
- this.m_cur_font[var9] = this.m_font;
- }
-
- var1 = this.getParameterSpecific("align", var9);
- if (var1 != null) {
- this.m_align[var9] = Integer.parseInt(var1);
- } else {
- this.m_align[var9] = this.m_def_align;
- }
-
- var1 = this.getParameterSpecific("textcolor", var9);
- if (var1 != null) {
- this.m_textcolor[var9] = occcolor.ConvertColor(var1);
- } else {
- this.m_textcolor[var9] = this.m_def_textcolor;
- }
-
- var1 = this.getParameterSpecific("desturl", var9);
- if (var1 != null) {
- ++this.num_links;
- this.m_linkurl[var9] = var1;
- } else {
- this.m_linkurl[var9] = "-1";
- }
-
- var1 = this.getParameterSpecific("sizepause", var9);
- if (var1 != null) {
- this.m_size_pause[var9] = Integer.parseInt(var1);
- } else {
- this.m_size_pause[var9] = 0;
- }
- }
-
- this.link_cords = new int[this.num_links * 3];
- this.link_urls = new String[this.num_links];
- }
-
- public String CheckSPart(String var1) {
- return var1.trim().length() == 0 ? " " : var1.trim();
- }
-
- public void DrawScroll() {
- int var1 = this.sEdge;
- int var2 = this.sEdge;
- int var3 = 0;
- int var4 = this.sEdge;
- boolean var5 = false;
- int var6 = 0;
-
- do {
- var1 = this.sEdge;
- var4 = 0;
-
- for(int var7 = 0; var7 < this.num_descrips; ++var7) {
- if (var6 == 0) {
- this.field_1 = ((Component)this).getFontMetrics(this.m_cur_font[var7]);
- if (this.m_size_pause[var7] == 1) {
- var4 = var1;
- var5 = true;
- } else if (!var5) {
- var4 = var1;
- }
-
- var1 += this.field_1.stringWidth(this.m_desc[var7]);
- if (this.field_1.getDescent() > this.max_d) {
- this.max_d = this.field_1.getDescent();
- }
-
- if (var7 == this.m_desc.length - 1) {
- this.i_h = var1 + 5;
- double var8 = (double)this.i_h;
- double var10 = (double)this.appWidth;
- int var12 = 0;
- if (var8 / var10 - (double)((int)(var8 / var10)) == (double)0.0F) {
- var12 = (int)(var8 / var10);
- } else {
- var12 = (int)(var8 / var10) + 1;
- }
-
- this.i_h = var12 * this.appWidth;
- if (var12 > 1) {
- this.field_0 = 7;
- } else {
- this.field_0 = 0;
- }
-
- this.sbImgWidth = this.i_h + this.sEdge * 2;
- this.sbImgHeight = this.appHeight + this.sEdge * 2 + this.field_0;
- this.off = ((Component)this).createImage(this.sbImgWidth, this.sbImgHeight);
- this.g_off = this.off.getGraphics();
- this.g_off.setColor(this.bgColor);
- this.g_off.fillRect(0, 0, this.sbImgWidth, this.sbImgHeight);
- this.g_off.setColor(this.m_bgcolor);
- this.g_off.fillRect(this.sEdge, this.sEdge, this.i_h, this.appHeight);
- if (var12 > 1) {
- this.g_off.setColor(Color.black);
-
- for(int var13 = 0; var13 <= var12; ++var13) {
- this.g_off.drawLine(var13 * this.appWidth + this.sEdge, this.appHeight + this.sEdge + 2, var13 * this.appWidth + this.sEdge, this.appHeight + this.sEdge + 5);
- }
-
- this.g_off.drawLine(this.sEdge, this.sEdge + this.appHeight + 2, this.i_h + this.sEdge, this.sEdge + this.appHeight + 2);
- }
-
- if (this.field_2.width < this.i_h) {
- this.use_hsb = true;
- } else {
- this.use_hsb = false;
- this.last_scroll_x = 0;
- }
-
- if (this.field_2.height < this.appHeight + this.field_0) {
- this.use_sb = true;
- } else {
- this.use_sb = false;
- this.last_scroll_y = 0;
- }
- } else if (this.m_size_pause[var7] == 2 && var1 - var4 < this.appWidth) {
- var1 = var1 + (this.appWidth - (var1 - var4)) + 1;
- var5 = false;
- }
- } else {
- this.g_off.setFont(this.m_cur_font[var7]);
- this.field_1 = this.g_off.getFontMetrics(this.m_cur_font[var7]);
- var2 = var1;
- if (this.m_size_pause[var7] == 1) {
- var4 = var1;
- var5 = true;
- } else if (!var5) {
- var4 = var1;
- }
-
- this.line_coords[var7] = var1;
- var1 += this.field_1.stringWidth(this.m_desc[var7]);
- this.g_off.setColor(this.m_textcolor[var7]);
- this.g_off.drawString(this.m_desc[var7], var2, this.appHeight + this.sEdge - this.max_d - this.m_yoffset);
- if (this.num_links > 0 && this.m_linkurl[var7].length() > 3) {
- this.link_cords[var3 * 3] = var2;
- this.link_cords[var3 * 3 + 1] = var1;
- this.link_cords[var3 * 3 + 2] = var7;
- ++var3;
- }
-
- if (var1 - var4 < this.appWidth && this.m_size_pause[var7] == 2) {
- var1 = var1 + (this.appWidth - (var1 - var4)) + 1;
- var5 = false;
- }
- }
- }
-
- ++var6;
- } while(var6 < 2);
-
- this.done_draw = true;
- var6 = 0;
- int var18 = 0;
- if (this.use_sb) {
- var6 = this.sb_width;
- }
-
- if (this.use_hsb) {
- var18 = this.sb_width;
- }
-
- this.offimgx = (this.field_2.width - var6 - this.sbImgWidth) / 2;
- this.offimgy = (this.field_2.height - var18 - this.sbImgHeight) / 2;
- this.scroll_y = this.offimgy;
- this.scroll_x = this.offimgx;
- this.actappx = this.offimgx;
- this.actappy = this.offimgy + this.field_0;
- if (this.use_sb) {
- this.scroll_y = this.last_scroll_y;
- }
-
- if (this.use_hsb) {
- this.scroll_x = this.last_scroll_x;
- }
-
- this.paintIt();
- }
-
- public boolean mouseDown(Event var1, int var2, int var3) {
- this.mdown = true;
- this.hold_move = this.field_3;
- this.cur_dline = 0;
- if (this.hLine == -1 && this.paused) {
- this.break_pause = true;
- }
-
- return true;
- }
-
- public Dimension getMinimumSize() {
- return new Dimension(this.appWidth + 15, this.appHeight + 15);
- }
-
- public Dimension getPreferredSize() {
- return new Dimension(this.appWidth + 20, this.appHeight + 15);
- }
-
- 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]);
- }
-
- if (this.hLine != -1) {
- this.method_0(this.hLine, this.m_def_hlcolor);
- }
-
- if (this.paused) {
- this.soff = 1;
- } else {
- this.soff = 0;
- }
-
- this.paintIt();
- }
-
- this.l_h = this.hLine;
- }
-
- public void addDefaults(String[] var1, String[] var2) {
- this.def_pn = var1;
- this.def_pv = var2;
- this.initDefault();
- }
-
- private void centerAppArea() {
- this.first_run = true;
- this.paintIt();
- }
-
- public boolean handleEvent(Event var1) {
- boolean var2 = false;
- boolean var3 = false;
- if (var1.target == this.field_4) {
- if (var1.id != 602 && var1.id != 601 && var1.id != 605) {
- if (var1.id == 604 || var1.id == 603) {
- this.scroll_y = -(this.field_4.getValue() * this.sb_linedist);
- this.field_4.setValue(this.field_4.getValue());
- var2 = true;
- }
- } else {
- this.scroll_y = -(this.field_4.getValue() * this.sb_linedist);
- this.field_4.setValue(this.field_4.getValue());
- var2 = true;
- }
-
- if (var2) {
- if (this.scroll_y >= 0) {
- this.scroll_y = 0;
- } else if (this.scroll_y + this.sbImgHeight < this.field_2.height) {
- this.scroll_y = -this.sbImgHeight + this.field_2.height;
- }
-
- this.last_scroll_y = this.scroll_y;
- this.paintIt();
- var2 = false;
- }
-
- return true;
- } else if (var1.target != this.hsb) {
- return super.handleEvent(var1);
- } else {
- if (var1.id != 602 && var1.id != 601 && var1.id != 605) {
- if (var1.id == 604 || var1.id == 603) {
- this.scroll_x = -(this.hsb.getValue() * this.hsb_linedist);
- this.hsb.setValue(this.hsb.getValue());
- var3 = true;
- }
- } else {
- this.scroll_x = -(this.hsb.getValue() * this.hsb_linedist);
- this.hsb.setValue(this.hsb.getValue());
- var3 = true;
- }
-
- if (var3) {
- if (this.scroll_x >= 0) {
- this.scroll_x = 0;
- } else if (this.scroll_x + this.sbImgWidth < this.field_2.width) {
- this.scroll_x = -this.sbImgWidth + this.field_2.width;
- }
-
- this.last_scroll_x = this.scroll_x;
- this.paintIt();
- var3 = false;
- }
-
- 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_1 = this.g_off.getFontMetrics(this.m_cur_font[var1]);
- this.g_off.setColor(var2);
- String[] var4 = ocwordw.WrapText(this.m_desc[var1], this.appWidth - this.m_xoffset * 2, this.field_1);
-
- for(int var5 = 0; var5 < var4.length; ++var5) {
- var3 += this.field_1.getHeight();
- if (this.m_align[var1] == 1) {
- this.g_off.drawString(var4[var5], (this.appWidth - this.field_1.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.appWidth - this.m_xoffset - this.field_1.stringWidth(var4[var5]), var3);
- }
- }
-
- this.paintIt();
- }
-
- public boolean mouseMove(Event var1, int var2, int var3) {
- this.field_3 = var3;
- if (this.paused) {
- this.mCheck();
- }
-
- return true;
- }
- }
-