// Program 11.3: An applet that wraps text
import java.applet.Applet;    
import java.awt.Graphics; 
import java.awt.FontMetrics;
import java.util.StringTokenizer;
 
public class WrapTextApplet extends Applet {

  String input_from_page;

  public void init() {
    input_from_page = getParameter("Text");
  }
  
  public void paint(Graphics g) {
    int i = 0;
    int linewidth = 0;
    int margin = 5;
    StringBuffer sb = new StringBuffer();
    FontMetrics fm = g.getFontMetrics();
    StringTokenizer st = new StringTokenizer(input_from_page);
  	
    while (st.hasMoreTokens()) {
      String nextword = st.nextToken();
      if (fm.stringWidth(sb.toString() + nextword + margin) < 
        size().width) {
        sb.append(nextword);
        sb.append(' ');
      }
      else if (sb.length() == 0) {
        g.drawString(nextword, margin, ++i*fm.getHeight());
      }
      else {
        g.drawString(sb.toString(), margin,
          ++i*fm.getHeight());
        sb = new StringBuffer(nextword + " ");
      }      
      
    }
    if (sb.length() > 0) {
      g.drawString(sb.toString(), margin, ++i*fm.getHeight());
    }  

  }
  
}
