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