package diagapplet.utils; import java.awt.Panel; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Color; /* * * URLLoadInfoPanel * */ public class URLLoadInfoPanel extends Panel { public boolean use_color = true; long last_repaint_time = 0; static final long MIN_REPAINT_TIME = 500; public String URLname = null; public int content_length = -1; public int bytes_read = 0; Dimension prefDim = null; public URLLoadInfoPanel() { super(); URLname = ""; content_length = -1; bytes_read = 0; if(null == prefDim) { prefDim =new Dimension(420,40); } } public URLLoadInfoPanel(int pref_width, int pref_height) { this(); prefDim =new Dimension(pref_width,pref_height); } public Dimension preferredSize() { return prefDim; } public void updateDisplay() { if(System.currentTimeMillis() - last_repaint_time > MIN_REPAINT_TIME) { repaint(); } } public void paint(Graphics g) { last_repaint_time = System.currentTimeMillis(); String str = URLname + " ( "+bytes_read+" out of "+content_length+" )"; g.drawString(str,10,20); g.drawRect(10,24,prefDim.width - 18,11); if(content_length > 0 ) { if(bytes_read > 0) { if(bytes_read < content_length) { if(use_color) { g.setColor(Color.blue); } else { g.setColor(Color.black); } int percent_done = ((prefDim.width - 20)*bytes_read)/content_length; g.fillRect(11,25,percent_done,9); } else if(bytes_read == content_length) { if(use_color) { g.setColor(Color.green); } else { g.setColor(Color.black); } g.fillRect(11,25,prefDim.width - 20,9); } } } } }