HtmlCanvas.java
_______________________________________________________
//Decafe PRO - Java Decompiler import java.awt.*; import java.awt.image.ImageObserver; import java.net.URL; import java.util.Hashtable; public class HtmlCanvas extends Canvas { private HtmlDocument document; private int start; private int width; private int heights[]; private Href hrefs[]; private Hashtable names; private Image image; private HtmlImage imgs[]; public HtmlCanvas() { width = 300; document = null; } public HtmlCanvas(HtmlDocument htmldocument) { width = 300; changeDocument(htmldocument); } public void changeDocument(HtmlDocument htmldocument) { htmldocument.draw(new HtmlPager(this, width)); document = htmldocument; start = 0; } public URL getHref(int i, int j) { if(hrefs == null) return null; int k = lineAt(j + start); for(int l = 0; l < hrefs.length; l++) { Href href = hrefs[l]; if((k != href.startLine || i >= href.startOffset) && (k != href.endLine || i < href.endOffset) && k >= href.startLine && k <= href.endLine) return href.url; } return null; } public int setStart(String s) { if(names == null || s == null) { start = 0; } else { Integer integer = (Integer)names.get(s); if(integer == null) start = 0; else start = heights[integer.intValue() - 1]; } repaint(); return start; } public void setStart(int i) { start = i; repaint(); } public int setWidth(int i) { if(document == null) { width = i; return 0; } if(i != width) { width = i; document.draw(new HtmlPager(this, i)); } return heights[heights.length - 1]; } private String statusString(int i) { String s = ""; if((i & 0x80) != 0) s += "ABORT "; if((i & 0x20) != 0) s += "ALLBITS "; if((i & 0x40) != 0) s += "ERROR "; if((i & 0x10) != 0) s += "FRAMEBITS "; if((i & 0x2) != 0) s += "HEIGHT "; if((i & 0x4) != 0) s += "PROPERTIES "; if((i & 0x8) != 0) s += "SOMEBITS "; if((i & 0x1) != 0) s += "WIDTH "; return s + i; } public synchronized void paint(Graphics g) { g.setColor(getBackground()); if(document == null) { g.fillRect(0, 0, size().width, size().height); return; } if(image == null) document.draw(new HtmlPager(this, width)); Graphics g1 = image.getGraphics(); for(int i = 0; i < imgs.length; i++) g1.drawImage(imgs[i].img, imgs[i].x, imgs[i].y, imgs[i].w, imgs[i].h, this); g.drawImage(image, 0, -start, this); int j = image.getWidth(null); if(j < size().width) g.fillRect(j, 0, size().width - j, size().height); int k = image.getHeight(null) - start; if(k < size().height) g.fillRect(0, k, size().width, size().height - k); } public void update(Graphics g) { paint(g); } protected synchronized void setData(int ai[], Href ahref[], Hashtable hashtable, HtmlImage ahtmlimage[], Image image1) { heights = ai; hrefs = ahref; names = hashtable; imgs = ahtmlimage; image = image1; } private int lineAt(int i) { for(int j = 0; j < heights.length - 1; j++) if(i >= heights[j] && i < heights[j + 1]) return j; return -1; } }
Created with Decafe Pro