home *** CD-ROM | disk | FTP | other *** search
- package netscape.security;
-
- import java.applet.Applet;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Event;
- import java.awt.Font;
- import java.awt.FontMetrics;
- import java.awt.Frame;
- import java.awt.Graphics;
- import java.awt.Image;
- import java.awt.Label;
- import java.awt.LayoutManager;
- import java.awt.Panel;
- import java.awt.Point;
- import java.awt.Rectangle;
- import java.awt.Scrollbar;
- import java.awt.Toolkit;
- import java.net.MalformedURLException;
- import java.net.URL;
- import java.util.Enumeration;
- import java.util.Hashtable;
- import java.util.StringTokenizer;
- import java.util.Vector;
-
- class ImgPanel extends Panel {
- Hashtable txtHash_g = new Hashtable();
- Hashtable imgHash_g = new Hashtable();
- Hashtable sbarHash_g = new Hashtable();
- Image offImg_g;
- Graphics offG_g;
- boolean dblBuff_g = false;
- int fnSzDecr_g = 1;
- URLTipWindow urltw_g;
- boolean urltwNowShowing_g = false;
- Applet applet_g = GlobalCtxt.getApplet();
- Frame parentFrame_g;
- TxtRes prevTxtRes_g;
- Graphics gdup_g;
- boolean isDirty_g = true;
- XYLayout hXYL = new XYLayout((Rectangle)null);
- boolean rszEvent_g = false;
- static final String FONT_SIZE_STR = "FONT SIZE=";
- static final String END_FONT_STR = "</FONT>";
- static final String LINE_BRK_STR = "<BR>";
- static final String BW_STR = "<BW>";
- boolean querySBarsNotDone = true;
- Font prevFn;
-
- ImgPanel() {
- super.setLayout(this.hXYL);
- ((Container)this).invalidate();
- }
-
- public void setLayout(LayoutManager var1) {
- }
-
- void setImage(Label var1, URL var2, int var3, int var4, int var5, int var6, int var7, int var8) {
- ImgWrap var9 = null;
- if (var2 != null) {
- var9 = ImgWrap.getImageWrap(var2);
- }
-
- this.imgHash_g.put(var1, new ImgRes(var9, var3, var4, var5, var6, var7, var8));
- }
-
- void setImage(Label var1, String var2, int var3, int var4, int var5, int var6, int var7, int var8) {
- ImgWrap var9 = null;
- if (var2 != null) {
- var9 = ImgWrap.getImageWrap(var2);
- }
-
- this.imgHash_g.put(var1, new ImgRes(var9, var3, var4, var5, var6, var7, var8));
- }
-
- void setText(Label var1, String var2, int var3, int var4, int var5, int var6, Font var7, Color var8) {
- int var9 = 0;
- int var10 = 0;
- String var11 = null;
- if ((var9 = var2.indexOf("<href>")) > 0) {
- var10 = var2.indexOf("</href>");
- var11 = var2.substring(var9 + 6, var10);
- var2 = var2.substring(0, var9 - 1);
- if (this.urltw_g == null) {
- this.urltw_g = new URLTipWindow(this.parentFrame_g = this.getParentFrame());
- }
- }
-
- this.txtHash_g.put(var1, new TxtRes(var2, var3, var4, var5, var6, var7, var8, var11));
- }
-
- void queryLabels() {
- Component[] var1 = ((Container)this).getComponents();
-
- for(int var2 = 0; var2 < ((Container)this).countComponents(); ++var2) {
- Component var3 = var1[var2];
- if (var3 instanceof Label) {
- Label var4 = (Label)var3;
- if (((Component)var4).isEnabled()) {
- String var5 = var4.getText().trim();
- int var6 = -1;
- if ((var6 = var5.indexOf("<img>")) > -1) {
- if (this.imgHash_g.containsKey(var4)) {
- ImgRes var7 = (ImgRes)this.imgHash_g.get(var4);
- if (var7.reshape) {
- Rectangle var8 = ((Component)var4).bounds();
- var7.x = var8.x;
- var7.y = var8.y;
- var7.wd = var8.width;
- var7.ht = var8.height;
- }
-
- if (!var7.isDirty) {
- continue;
- }
- }
-
- var5 = var5.substring(var6 + 6).trim();
- int var17 = 0;
- int var19 = 0;
- if ((var6 = var5.indexOf("<tile>")) > -1) {
- var17 = -1;
- var19 = -1;
- var5 = var5.substring(var6 + 7).trim();
- } else {
- if ((var6 = var5.indexOf("<trows=")) > -1) {
- int var9;
- var17 = new Integer(var5.substring(var6 + 7, var9 = var5.indexOf(">", var6)));
- var5 = var5.substring(var9 + 1).trim();
- }
-
- if ((var6 = var5.indexOf("<tcols=")) > -1) {
- int var21;
- var19 = new Integer(var5.substring(var6 + 7, var21 = var5.indexOf(">", var6)));
- var5 = var5.substring(var21 + 1).trim();
- }
- }
-
- String var22 = var5.trim();
- boolean var10 = false;
-
- try {
- if (this.applet_g.getCodeBase() != null) {
- var10 = true;
- var22 = this.applet_g.getCodeBase().toString() + var22;
- }
-
- if (var10) {
- this.setImage(var4, new URL(var22), ((Component)var4).location().x, ((Component)var4).location().y, ((Component)var4).size().width, ((Component)var4).size().height, var17, var19);
- } else {
- this.setImage(var4, var22, ((Component)var4).location().x, ((Component)var4).location().y, ((Component)var4).size().width, ((Component)var4).size().height, var17, var19);
- }
- } catch (MalformedURLException var11) {
- }
- } else {
- Rectangle var18 = ((Component)var4).bounds();
- if (this.txtHash_g.containsKey(var4)) {
- TxtRes var20 = (TxtRes)this.txtHash_g.get(var4);
- if (var20.isDirty) {
- var20.str = var5;
- var20.x = var18.x;
- var20.y = var18.y;
- var20.wd = var18.width;
- var20.ht = var18.height;
- var20.fn = ((Component)var4).getFont();
- var20.clr = ((Component)var4).getForeground();
- }
- } else {
- this.setText(var4, var5, var18.x, var18.y, var18.width, var18.height, ((Component)var4).getFont(), ((Component)var4).getForeground());
- }
- }
- }
- }
- }
-
- }
-
- void queryScrollBars() {
- Component[] var1 = ((Container)this).getComponents();
-
- for(int var2 = 0; var2 < ((Container)this).countComponents(); ++var2) {
- Component var3 = var1[var2];
- if (var3 instanceof Scrollbar) {
- Scrollbar var4 = (Scrollbar)var3;
- if (((Component)var4).isEnabled()) {
- Rectangle var5 = ((Component)var4).bounds();
- int var6 = var4.getOrientation();
- Enumeration var7 = this.txtHash_g.keys();
-
- while(var7.hasMoreElements()) {
- Label var8 = (Label)var7.nextElement();
- if (((Component)var8).isEnabled()) {
- TxtRes var9 = (TxtRes)this.txtHash_g.get(var8);
- if (var6 == 1 && var9.y == var5.y && var9.ht == var5.height && var9.x + var9.wd + 10 > var5.x) {
- this.sbarHash_g.put(var4, var9);
- var9.vsbar = var4;
- break;
- }
-
- if (var6 == 0 && var9.x == var5.x && var9.wd == var5.width && var9.y + var9.ht + 10 > var5.height) {
- this.sbarHash_g.put(var4, var9);
- var9.hsbar = var4;
- break;
- }
- }
- }
- }
- }
- }
-
- }
-
- Frame getParentFrame() {
- Container var1;
- for(var1 = ((Component)this).getParent(); !(var1 instanceof Frame); var1 = ((Component)var1).getParent()) {
- }
-
- return (Frame)var1;
- }
-
- void dr3DRect(Graphics var1, int var2, int var3, int var4, int var5, int var6, Color var7, Color var8) {
- int var9 = 1;
- int var13 = 1;
- var1.setColor(Color.black);
- var1.drawRect(var2, var3, var4, var5);
- int var12 = var6 - 2;
- var1.setColor(var7);
-
- while(var12-- > 0) {
- var1.drawLine(var2 + var9, var3 + var9, var2 + var4 - var9, var3 + var9);
- var1.drawLine(var2 + var9, var3 + var9, var2 + var9, var3 + var5 - var9);
- ++var9;
- }
-
- var12 = var6 - 1;
- var1.setColor(var8);
-
- while(var12-- > 0) {
- var1.drawLine(var2 + var13, var3 + var5 - var13, var2 + var4 - var13, var3 + var5 - var13);
- var1.drawLine(var2 + var4 - var13, var3 + var13, var2 + var4 - var13, var3 + var5 - var13);
- ++var13;
- }
-
- }
-
- Vector parseStr(String var1, TxtRes var2) {
- Vector var3 = new Vector(0);
- Object var4 = null;
- Font var5 = null;
- int var7 = 0;
- StringTokenizer var15;
- if (this.applet_g instanceof PseudoApplet) {
- var15 = ((PseudoApplet)this.applet_g).getStringTokenizer(var1);
- } else {
- var15 = new StringTokenizer(var1, "\t\n\r", true);
- }
-
- Font var8 = var2.fn;
- var3.addElement(new Font(var8.getName(), var8.getStyle(), var8.getSize()));
-
- while(var15.hasMoreTokens()) {
- String var6 = var15.nextToken();
- if (var6 != null) {
- String var9 = var6.toUpperCase();
- boolean var10 = true;
- if (var9.indexOf("<BR>") > -1) {
- var3.addElement(var6);
- } else if (var9.indexOf("<BW>") > -1) {
- byte var23 = 1;
- var2.bw = var23;
- } else {
- var7 = 0;
- switch (var6.charAt(var7++)) {
- case '<':
- switch (var6.charAt(var7++)) {
- case '/':
- var8 = var5;
- boolean var21 = true;
- String var24 = var6.toUpperCase();
- if (var24.indexOf("</FONT>") > -1) {
- var7 += 4;
- } else {
- ++var7;
-
- while(var6.charAt(var7) >= '0' && var6.charAt(var7) <= '9') {
- ++var7;
- }
- }
- break;
- case 'F':
- case 'f':
- int var11 = -1;
- int var12 = -1;
- int var13 = var8.getSize();
- String var14 = var6.toUpperCase();
- if (var14.indexOf("FONT SIZE=") > -1) {
- if ((var11 = var14.indexOf("+")) > -1) {
- var13 += new Integer(var14.substring(var11 + 1, var14.indexOf(">")));
- } else if ((var11 = var14.indexOf("-")) > -1) {
- var13 += new Integer(var14.substring(var11 + 1, var12 = var14.indexOf(">")));
- }
- }
-
- var5 = new Font(var8.getName(), var8.getStyle(), var8.getSize());
- var8 = new Font(var8.getName(), 0, var13);
- var7 += var12 - var7;
- break;
- case 'b':
- var5 = new Font(var8.getName(), var8.getStyle(), var8.getSize());
- var8 = new Font(var8.getName(), 1, var8.getSize());
- break;
- case 'i':
- var5 = new Font(var8.getName(), var8.getStyle(), var8.getSize());
- var8 = new Font(var8.getName(), 2, var8.getSize());
- break;
- case 'p':
- var5 = new Font(var8.getName(), var8.getStyle(), var8.getSize());
- var8 = new Font(var8.getName(), 0, var8.getSize());
- break;
- default:
- int var22 = 0;
- int var25 = var8.getSize();
- --var7;
-
- while(var6.charAt(var7) >= '0' && var6.charAt(var7) <= '9') {
- ++var22;
- ++var7;
- }
-
- if (var22 > 0) {
- String var26 = var6.substring(var6.indexOf("<") + 1, var6.indexOf(">"));
- var25 = new Integer(new String(var26));
- }
-
- var5 = new Font(var8.getName(), var8.getStyle(), var8.getSize());
- var8 = new Font(var6, var8.getStyle(), var25);
- }
-
- if (var6.charAt(var7) == '>') {
- var3.addElement(var8);
- }
- break;
- default:
- var3.addElement(var6);
- }
- }
- }
- }
-
- return var3;
- }
-
- Vector parseStrAndResizeFonts(Graphics var1, String var2, TxtRes var3) {
- Font var5 = var3.fn;
- Object var6 = null;
- Vector var25;
- if ((var25 = var3.tokens) == null) {
- var25 = this.parseStr(var2, var3);
- }
-
- if (!GlobalCtxt.rszFnSz_g) {
- return var25;
- } else {
- boolean var13 = false;
- byte var14 = 0;
- int var15 = 0;
- int var16 = 0;
- boolean var17 = false;
-
- while(true) {
- var1.setFont(var3.fn);
- FontMetrics var4 = var1.getFontMetrics(var3.fn);
- int var7 = 0;
- int var8 = 0;
- int var9 = var3.wd;
- int var10 = var4.getMaxAscent() + var4.getLeading();
- int var11 = var4.getMaxAscent();
- int var12 = 0;
- var15 = 0;
- var16 = 0;
- var17 = false;
-
- for(int var18 = 0; var18 < var25.size(); ++var18) {
- Object var19 = var25.elementAt(var18);
- if (var19 instanceof Font) {
- var1.setFont((Font)var19);
- var4 = var1.getFontMetrics((Font)var19);
- } else {
- ++var16;
- boolean var20 = true;
- String var21 = ((String)var19).toUpperCase();
- if (var21.indexOf("<BR>") > -1) {
- var17 = true;
- } else {
- var7 += var4.stringWidth((String)var19);
- }
-
- if (var17 || var7 > var9 && var16 != 1) {
- var8 += var10;
- ++var12;
- var15 = var7;
- if (!var17) {
- --var18;
- }
-
- var16 = 0;
- var11 = 0;
- var10 = 0;
- var7 = 0;
- var17 = false;
- } else {
- if (var8 == 0) {
- var10 = Math.max(var10, var4.getMaxAscent() + var4.getDescent());
- var11 = Math.max(var11, var4.getMaxAscent());
- } else {
- var10 = Math.max(var10, var4.getHeight());
- var11 = Math.max(var11, var4.getAscent() + var4.getLeading());
- }
-
- var15 = var7;
- }
- }
- }
-
- var8 += var10;
- if (var8 <= var3.ht && var15 <= var9) {
- if (var14 == -1) {
- var14 = 0;
- break;
- }
-
- boolean var33 = true;
-
- for(int var35 = 0; var35 < var25.size(); ++var35) {
- Object var37 = var25.elementAt(var35);
- if (var37 instanceof Font) {
- var5 = (Font)var37;
- if (var5.getSize() + this.fnSzDecr_g < GlobalCtxt.maxFnSz_g) {
- Font var22 = new Font(var5.getName(), var5.getStyle(), var5.getSize() + this.fnSzDecr_g);
- var25.removeElementAt(var35);
- var25.insertElementAt(var22, var35);
- var33 = false;
- }
- }
- }
-
- if (var33) {
- var14 = 0;
- break;
- }
-
- var14 = 1;
- } else {
- for(int var32 = 0; var32 < var25.size(); ++var32) {
- Object var34 = var25.elementAt(var32);
- if (var34 instanceof Font) {
- var5 = (Font)var34;
- if (var5.getSize() - this.fnSzDecr_g <= GlobalCtxt.minFnSz_g) {
- return var25;
- }
-
- Font var36 = new Font(var5.getName(), var5.getStyle(), var5.getSize() - this.fnSzDecr_g);
- var25.removeElementAt(var32);
- var25.insertElementAt(var36, var32);
- }
- }
-
- var14 = -1;
- }
- }
-
- return var25;
- }
- }
-
- void paintLine(Graphics var1, TxtRes var2, Vector var3, int var4, int var5, int var6, int var7, int var8) {
- int var9 = 0;
- var1 = var1.create();
- if (this.prevFn != null) {
- var1.setFont(this.prevFn);
- }
-
- FontMetrics var10 = var1.getFontMetrics();
- var1.setColor(var2.clr);
-
- for(int var11 = var4; var11 < var5; ++var11) {
- Object var12 = var3.elementAt(var11);
- if (var12 instanceof Font) {
- var1.setFont((Font)var12);
- var10 = var1.getFontMetrics();
- this.prevFn = (Font)var12;
- } else {
- int var13 = var2.bw;
- var1.clipRect(var2.x + var13, var2.y + var13, var2.wd - 2 * var13, var2.ht - 2 * var13);
- var1.drawString((String)var12, var2.x + var9 + var13 + var2.xorg, var2.y + var6 + var8 + var13 + var2.yorg);
- int var14 = var10.stringWidth((String)var12);
- var9 += var14;
- var2.isDirty = false;
- }
- }
-
- }
-
- void setTxtDirty(Label var1, boolean var2) {
- TxtRes var3 = (TxtRes)this.txtHash_g.get(var1);
- if (var3 != null) {
- var3.isDirty = true;
- if (var2) {
- var3.tokens = null;
- }
-
- this.isDirty_g = true;
- var3.vsbshown = false;
- if (var3.vsbar != null) {
- var3.xorg = 0;
- var3.yorg = 0;
- var3.vsbar.setValue(0);
- var3.vsbval = 0;
- }
-
- if (var3.hsbar != null) {
- var3.xorg = 0;
- var3.yorg = 0;
- var3.hsbar.setValue(0);
- var3.hsbval = 0;
- }
- }
-
- }
-
- void setAllTxtsDirty(boolean var1) {
- Enumeration var2 = this.txtHash_g.keys();
-
- while(var2.hasMoreElements()) {
- Label var3 = (Label)var2.nextElement();
- this.setTxtDirty(var3, var1);
- }
-
- }
-
- void paintText(Graphics var1, TxtRes var2) {
- Vector var3 = var2.tokens;
- var1.setFont(var2.fn);
- FontMetrics var4 = var1.getFontMetrics(var2.fn);
- int var5 = 0;
- int var6 = 0;
- int var7 = 0;
- int var8 = var2.wd;
- int var9 = var4.getMaxAscent() + var4.getLeading();
- int var10 = 0;
- int var11 = var4.getMaxAscent();
- int var12 = 0;
- int var13 = 0;
- boolean var14 = false;
- if (var2.bw > 0) {
- var1.setColor(Color.black);
- var1.drawRect(var2.x, var2.y, var2.wd, var2.ht);
- }
-
- for(int var15 = 0; var15 < var3.size(); ++var15) {
- Object var16 = var3.elementAt(var15);
- if (var16 instanceof Font) {
- var1.setFont((Font)var16);
- var4 = var1.getFontMetrics((Font)var16);
- } else {
- ++var13;
- boolean var17 = true;
- String var18 = ((String)var16).toUpperCase();
- if (var18.indexOf("<BR>") > -1) {
- var14 = true;
- } else {
- var6 += var4.stringWidth((String)var16);
- }
-
- if (var14 || var6 > var8 && var13 != 1) {
- this.paintLine(var1, var2, var3, var5, var15, var7, var9, var11);
- if (!var14) {
- var5 = var15--;
- } else {
- var5 = var15 + 1;
- }
-
- var7 += var9;
- ++var12;
- var10 = var9;
- var13 = 0;
- var11 = 0;
- var9 = 0;
- var6 = 0;
- var14 = false;
- } else if (var7 == 0) {
- var9 = Math.max(var9, var4.getMaxAscent() + var4.getDescent());
- var11 = Math.max(var11, var4.getMaxAscent());
- } else {
- var9 = Math.max(var9, var4.getHeight());
- var11 = Math.max(var11, var4.getAscent() + var4.getLeading());
- }
- }
- }
-
- this.paintLine(var1, var2, var3, var5, var3.size(), var7, var9, var11);
- var7 += var10;
- if (var2.vsbval == 0 && var2.vsbar != null && !var2.vsbshown) {
- if (var7 > var2.ht) {
- var2.vsbar.setValues(0, var2.ht, 0, var7 / var2.ht * var2.ht);
- var2.vsbar.setLineIncrement(var10);
- var2.vsbar.setPageIncrement(var2.ht);
- var2.vsbshown = true;
- return;
- }
-
- var2.vsbshown = true;
- }
-
- }
-
- void paintAllTexts(Graphics var1) {
- Enumeration var2 = this.txtHash_g.keys();
-
- while(var2.hasMoreElements()) {
- Label var3 = (Label)var2.nextElement();
- if (((Component)var3).isEnabled()) {
- TxtRes var4 = (TxtRes)this.txtHash_g.get(var3);
- Object var5 = null;
- if (var4.isDirty) {
- Vector var6 = this.parseStrAndResizeFonts(var1, var4.str, var4);
- var4.tokens = var6;
- }
-
- this.paintText(var1, var4);
- }
- }
-
- Toolkit.getDefaultToolkit().sync();
- }
-
- void setImgDirty(Label var1, boolean var2) {
- ImgRes var3 = (ImgRes)this.imgHash_g.get(var1);
- if (var3 != null) {
- if (var2) {
- var3.isDirty = true;
- } else {
- var3.reshape = true;
- }
-
- this.isDirty_g = true;
- }
-
- }
-
- void setAllImgsDirty(boolean var1) {
- Enumeration var2 = this.imgHash_g.keys();
-
- while(var2.hasMoreElements()) {
- Label var3 = (Label)var2.nextElement();
- this.setImgDirty(var3, var1);
- }
-
- }
-
- boolean paintImage(Graphics var1) {
- boolean var2 = true;
- var1 = var1.create();
- Enumeration var4 = this.imgHash_g.keys();
-
- while(var4.hasMoreElements()) {
- Label var5 = (Label)var4.nextElement();
- ImgRes var6 = (ImgRes)this.imgHash_g.get(var5);
- ImgWrap var7 = var6.imgWrap;
- Image var8 = var7.getImage();
- if (var8 != null && var6.tileRows == -1 && var6.tileCols == -1) {
- ((Component)this).prepareImage(var8, var7);
- var7.callWait(0);
- int var9 = var8.getWidth(var7);
- int var10 = var8.getHeight(var7);
- int var11 = ((Component)this).size().height / var10 + 1;
- int var12 = ((Component)this).size().width / var9 + 1;
- Graphics var3 = var1.create();
-
- for(int var13 = 0; var13 < var11 + 1; ++var13) {
- for(int var14 = 0; var14 < var12 + 1; ++var14) {
- if (var2 = var3.drawImage(var8, var14 * var9, var13 * var10, var7)) {
- var6.isDirty = false;
- }
- }
- }
-
- var6.paintedInPrevStep = true;
- }
- }
-
- Enumeration var19 = this.imgHash_g.keys();
-
- while(var19.hasMoreElements()) {
- Label var20 = (Label)var19.nextElement();
- ImgRes var22 = (ImgRes)this.imgHash_g.get(var20);
- ImgWrap var25 = var22.imgWrap;
- Image var28 = var25.getImage();
- if (var28 != null && !var22.paintedInPrevStep && (var22.tileRows > 0 || var22.tileCols > 0)) {
- ((Component)this).prepareImage(var28, var25);
- var25.callWait(0);
- int var31 = var28.getWidth(var25);
- int var33 = var28.getHeight(var25);
- int var34 = var22.ht / var33 + 1;
- int var35 = var22.wd / var31 + 1;
- if (var22.tileRows > 0) {
- var34 = var22.tileRows;
- }
-
- if (var22.tileCols > 0) {
- var35 = var22.tileCols;
- }
-
- Graphics var17 = var1.create();
- var17.translate(var22.x, var22.y);
- var17.clipRect(0, 0, var22.wd, var22.ht);
-
- for(int var36 = 0; var36 < var34 + 1; ++var36) {
- for(int var15 = 0; var15 < var35 + 1; ++var15) {
- if (var2 = var17.drawImage(var28, var15 * var31, var36 * var33, var25)) {
- var22.isDirty = false;
- }
- }
- }
-
- var22.paintedInPrevStep = true;
- }
- }
-
- Enumeration var21 = this.imgHash_g.keys();
-
- while(var21.hasMoreElements()) {
- Label var23 = (Label)var21.nextElement();
- ImgRes var26 = (ImgRes)this.imgHash_g.get(var23);
- ImgWrap var29 = var26.imgWrap;
- Image var32 = var29.getImage();
- if (var32 != null && !var26.paintedInPrevStep) {
- Graphics var18 = var1.create();
- var18.clipRect(var26.x, var26.y, var26.wd, var26.ht);
- ((Component)this).prepareImage(var32, var29);
- var29.callWait(0);
- if (var2 = var18.drawImage(var32, var26.x, var26.y, var29)) {
- var26.isDirty = false;
- var26.paintedInPrevStep = true;
- }
- }
- }
-
- ImgRes var30;
- for(Enumeration var24 = this.imgHash_g.keys(); var24.hasMoreElements(); var30.paintedInPrevStep = false) {
- Label var27 = (Label)var24.nextElement();
- var30 = (ImgRes)this.imgHash_g.get(var27);
- }
-
- Toolkit.getDefaultToolkit().sync();
- return var2;
- }
-
- public synchronized void paint(Graphics var1) {
- if (this.gdup_g == null) {
- this.gdup_g = var1.create();
- }
-
- if (!this.isDirty_g) {
- var1.drawImage(this.offImg_g, 0, 0, this);
- Toolkit.getDefaultToolkit().sync();
- } else {
- this.queryLabels();
- if (this.querySBarsNotDone) {
- this.queryScrollBars();
- this.querySBarsNotDone = false;
- }
-
- Graphics var2 = var1;
- int var3 = ((Component)this).size().width;
- int var4 = ((Component)this).size().height;
- byte var5 = 3;
- Color var6 = ((Component)this).getBackground();
- ((Component)this).getForeground();
- Rectangle var7 = new Rectangle(var5, var5, var3 - 2 * var5, var4 - 2 * var5);
- if (this.dblBuff_g && this.offImg_g == null) {
- this.offImg_g = ((Component)this).createImage(var3, var4);
- this.offG_g = this.offImg_g.getGraphics();
- this.offG_g.setColor(var6);
- this.offG_g.fillRect(0, 0, var3, var4);
- this.dr3DRect(this.offG_g, 0, 0, var3, var4, var5, Color.white, Color.black);
- this.offG_g.clipRect(var7.x, var7.y, var7.width, var7.height);
- }
-
- if (this.dblBuff_g) {
- var1 = this.offG_g;
- } else {
- this.dr3DRect(var1, 0, 0, var3, var4, var5, Color.white, Color.black);
- var1.clipRect(var7.x, var7.y, var7.width, var7.height);
- }
-
- var1.setColor(var6);
- var1.fillRect(0, 0, var7.width, var7.height);
- boolean var8 = false;
- if (this.imgHash_g != null && this.isDirty_g) {
- var8 = this.paintImage(var1);
- }
-
- if (this.txtHash_g != null && this.isDirty_g) {
- this.paintAllTexts(var1);
- }
-
- if (this.dblBuff_g) {
- var2.drawImage(this.offImg_g, 0, 0, this);
- Toolkit.getDefaultToolkit().sync();
- if (!var8) {
- this.isDirty_g = true;
- } else {
- this.isDirty_g = false;
- }
- }
-
- if (this.rszEvent_g) {
- this.rszEvent_g = false;
- }
-
- }
- }
-
- TxtRes eventInsideHotLink(Event var1) {
- Enumeration var2 = this.txtHash_g.keys();
-
- while(var2.hasMoreElements()) {
- Label var3 = (Label)var2.nextElement();
- TxtRes var4 = (TxtRes)this.txtHash_g.get(var3);
- Rectangle var5 = new Rectangle(var4.x, var4.y, var4.wd, var4.ht);
- if (var4.urlStr != null && var5.inside(var1.x, var1.y)) {
- return var4;
- }
- }
-
- return null;
- }
-
- Point getFrameCoord(int var1, int var2) {
- Point var3 = new Point(var1, var2);
- Object var4 = this;
-
- do {
- var3.x += ((Component)var4).location().x;
- var3.y += ((Component)var4).location().y;
- var4 = ((Component)var4).getParent();
- } while(var4 != this.parentFrame_g);
-
- return var3;
- }
-
- void showUrlTipWindow(TxtRes var1) {
- if (!this.urltw_g.isVisible()) {
- String var2 = var1.urlStr;
- Point var3 = this.getFrameCoord(var1.x, var1.y + var1.ht);
- this.urltw_g.reshape(var3.x, var3.y, 10, 10);
- if (this.applet_g.getCodeBase() != null) {
- var2 = this.applet_g.getCodeBase().toString() + var1.urlStr;
- }
-
- this.urltw_g.setUrlStr(var2);
- this.urltwNowShowing_g = true;
- }
-
- }
-
- public synchronized boolean handleEvent(Event var1) {
- if (var1.target != this && !(var1.target instanceof Scrollbar)) {
- return false;
- } else if (var1.id == -1) {
- this.setAllTxtsDirty(false);
- this.setAllImgsDirty(false);
- return true;
- } else {
- if (var1.id != 506 && var1.id != 503) {
- if (var1.id == 501) {
- TxtRes var9;
- if ((var9 = this.eventInsideHotLink(var1)) != null) {
- String var3 = var9.urlStr;
- if (this.urltwNowShowing_g) {
- this.gdup_g.setXORMode(Color.blue);
- this.gdup_g.setColor(Color.yellow);
- this.gdup_g.drawRect(this.prevTxtRes_g.x, this.prevTxtRes_g.y, this.prevTxtRes_g.wd, this.prevTxtRes_g.ht);
- }
-
- this.urltw_g.hide();
- this.urltwNowShowing_g = false;
-
- try {
- if (this.applet_g.getCodeBase() != null) {
- var3 = this.applet_g.getCodeBase().toString() + var9.urlStr;
- }
-
- this.applet_g.getAppletContext().showDocument(new URL(var3), new String("_blank"));
- } catch (MalformedURLException var8) {
- }
- }
- } else if (var1.target instanceof Scrollbar && (var1.id == 603 || var1.id == 604 || var1.id == 601 || var1.id == 602 || var1.id == 605)) {
- Scrollbar var11 = (Scrollbar)var1.target;
- int var4 = 0;
- int var5 = 0;
- TxtRes var10 = (TxtRes)this.sbarHash_g.get(var11);
- int var6 = var11.getOrientation();
- if (var6 == 0) {
- var4 = var10.hsbval;
- } else {
- var4 = var10.vsbval;
- }
-
- if (var1.id == 603) {
- var4 -= var11.getPageIncrement();
- if (var4 == var11.getMinimum() - var11.getPageIncrement()) {
- var5 = 0;
- var4 = var11.getMinimum();
- } else if (var4 < var11.getMinimum()) {
- var5 = var4 + var11.getPageIncrement();
- var4 = var11.getMinimum();
- } else {
- var5 = var11.getPageIncrement();
- }
- } else if (var1.id == 604) {
- var4 += var11.getPageIncrement();
- if (var4 == var11.getMaximum() + var11.getPageIncrement()) {
- var5 = 0;
- var4 = var11.getMaximum();
- } else if (var4 > var11.getMaximum()) {
- var5 = -(var11.getMaximum() - (var4 - var11.getPageIncrement()));
- var4 = var11.getMaximum();
- } else {
- var5 = -var11.getPageIncrement();
- }
- } else if (var1.id == 601) {
- var4 -= var11.getLineIncrement();
- if (var4 == var11.getMinimum() - var11.getLineIncrement()) {
- var5 = 0;
- var4 = var11.getMinimum();
- } else if (var4 < var11.getMinimum()) {
- var5 = var4 + var11.getLineIncrement();
- var4 = var11.getMinimum();
- } else {
- var5 = var11.getLineIncrement();
- }
- } else if (var1.id == 602) {
- var4 += var11.getLineIncrement();
- if (var4 == var11.getMaximum() + var11.getLineIncrement()) {
- var5 = 0;
- var4 = var11.getMaximum();
- } else if (var4 > var11.getMaximum()) {
- var5 = -(var11.getMaximum() - (var4 - var11.getLineIncrement()));
- var4 = var11.getMaximum();
- } else {
- var5 = -var11.getLineIncrement();
- }
- } else if (var1.id == 605) {
- int var7 = var11.getValue();
- var5 = var4 - var7;
- var4 += var7 - var4;
- }
-
- if (var5 != 0) {
- this.scrollRes(var11, var5, var10);
- if (var6 == 0) {
- var10.hsbval = var4;
- } else {
- var10.vsbval = var4;
- }
- }
- }
- } else {
- TxtRes var2;
- if ((var2 = this.eventInsideHotLink(var1)) != null) {
- if (!this.urltwNowShowing_g) {
- this.gdup_g.setXORMode(Color.blue);
- this.gdup_g.setColor(Color.yellow);
- this.gdup_g.drawRect(var2.x, var2.y, var2.wd, var2.ht);
- }
-
- this.showUrlTipWindow(var2);
- this.prevTxtRes_g = var2;
- } else if (this.urltwNowShowing_g) {
- this.gdup_g.setXORMode(Color.blue);
- this.gdup_g.setColor(Color.yellow);
- this.gdup_g.drawRect(this.prevTxtRes_g.x, this.prevTxtRes_g.y, this.prevTxtRes_g.wd, this.prevTxtRes_g.ht);
- this.urltwNowShowing_g = false;
- }
- }
-
- return true;
- }
- }
-
- private void scrollRes(Scrollbar var1, int var2, Geometry var3) {
- int var4 = var1.getOrientation();
- ((Component)this).getForeground();
- int var5 = var3.bw;
- Rectangle var6 = new Rectangle(var3.x + var5, var3.y + var5, var3.wd - 2 * var5, var3.ht - 2 * var5);
- int var7 = var3.xorg;
- int var8 = var3.yorg;
- int var9 = 0;
- int var10 = 0;
- if (var4 == 0) {
- var10 = var2;
- } else {
- var9 = var2;
- }
-
- Graphics var11 = ((Component)this).getGraphics();
- var11.clipRect(var6.x, var6.y, var6.width, var6.height);
- if (var9 != 0) {
- var11.copyArea(var6.x, var6.y, var6.width, var6.height, 0, var9);
- var8 += var9;
- if (var9 < 0) {
- var11.clipRect(var6.x, var6.y + var6.height - -var9, var6.width, -var9);
- } else if (var9 > 0) {
- var11.clipRect(var6.x, var6.y, var6.width, var9);
- }
- } else if (var10 != 0) {
- if (var7 + var10 > var6.x) {
- var10 = -var7 + var6.x;
- }
-
- if (var1.getValue() == 0) {
- var10 = -var7 + var6.x;
- }
-
- var11.copyArea(var6.x, var6.y, var6.width, var6.height, var10, 0);
- var7 += var10;
- if (var10 < 0) {
- var11.clipRect(var6.x + var6.width - -var10, var6.y, -var10, var6.height);
- } else if (var10 > 0) {
- var11.clipRect(var6.x, var6.y, var10, var6.height);
- }
- }
-
- var3.xorg = var7;
- var3.yorg = var8;
- Color var12 = ((Component)this).getBackground();
- var11.setColor(var12);
- var11.fillRect(var3.x, var3.y, var3.wd, var3.ht);
- this.paintText(var11, (TxtRes)var3);
- }
- }
-