/*
 * Gary Cornell and Cay S. Horstmann, Core Java (Book/CD-ROM)
 * Published By SunSoft Press/Prentice-Hall
 * Copyright (C) 1996 Sun Microsystems Inc.
 * All Rights Reserved. ISBN 0-13-565755-5
 *
 * Permission to use, copy, modify, and distribute this 
 * software and its documentation for NON-COMMERCIAL purposes
 * and without fee is hereby granted provided that this 
 * copyright notice appears in all copies. 
 * 
 * THE AUTHORS AND PUBLISHER MAKE NO REPRESENTATIONS OR 
 * WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE, EITHER 
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 
 * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 
 * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. THE AUTHORS
 * AND PUBLISHER SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED 
 * BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING 
 * THIS SOFTWARE OR ITS DERIVATIVES.
 */
 
/**
 * @version 1.00 07 Feb 1996 
 * @author Cay Horstmann
 */

import java.awt.*;
import java.applet.*;

public class ListTest extends Applet
{  public ListTest()
   {  setLayout(new BorderLayout());
   
      words = new List(4, true);
      words.addItem("kleiner");
      words.addItem("groer");
      words.addItem("guter");
      words.addItem("schlechter");
      words.addItem("privater");
      words.addItem("statischer");
      words.addItem("obscurer");
      words.addItem("kurzer");
      words.addItem("langer");
      words.addItem("finaler");
      
      Panel p = new Panel();
      p.add(words);
      add("South", p);
      list = new ListCanvas(size());
      add("Center", list);
   }
   
   public boolean handleEvent(Event evt)
   {  if (evt.id == Event.LIST_SELECT 
         || evt.id == Event.LIST_DESELECT)
      {  if (evt.target.equals(words))
            list.setAttributes(words.getSelectedItems());
      }
      else if (evt.id == Event.WINDOW_DESTROY) 
         System.exit(0);
      else return super.handleEvent(evt);
      return true;
   }
   
   ListCanvas list;
   List words;
   
/*   public static void main(String[] args)
   {  Frame f = new ListTest();
      f.resize(300, 200);
      f.show();  
   }*/
}

class ListCanvas extends Canvas
{  
   Dimension prefSize;
   
   public ListCanvas(Dimension prefSize) 
   {  setAttributes(new String[0]); 
      this.prefSize = prefSize;
   }
   
   public Dimension preferredSize()   // gewnschte Gr÷e
      {
       return prefSize;
      }
     public Dimension minimumSize()     // minimum Gr÷e
      {
       return prefSize;
      }
   
   
   public void setAttributes(String[] w)
   {  text = "Dies ist ein ";
      for (int i = 0; i < w.length; i++)
         text += w[i] + " ";
      text += "Beispieltext.";
      repaint();
   }
   
   public void paint(Graphics g)
   {  g.drawString(text, 0, 50);
   }
   
   private String text;
}
