package applet9;

import java.applet.Applet;
import java.awt.CardLayout;
import java.awt.Frame;
import java.awt.Panel;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.IOException;
import java.util.LinkedList;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;

/**
 * @author Ralf Kunze (rkunze@uos.de), Institut fuer Informatik, Universitaet
 *         Osnabrueck
 * @date 21.06.2007
 */
@SuppressWarnings("serial")
public class MyApplet extends Applet {
    
    private TimerTask task;
    
    public void init() {
        add(createGUI());
        startDiashow();
    }

    public void startDiashow() {
        Timer timer = new Timer();
        timer.schedule(task, 30);
    }
    private Panel createGUI() {
        final List<String> images = new LinkedList<String>();
        images.add("pics/1.jpg");
        images.add("pics/2.jpg");
        images.add("pics/3.png");
        images.add("pics/4.png");
        images.add("pics/5.png");
        images.add("pics/6.png");

        final Panel panel = new Panel();
        final CardLayout cards = new CardLayout();
        
        panel.setLayout(cards);

        for (String imageName : images) {
            try {
                MyImageCanvas canvas = new MyImageCanvas(MyApplet.class.getResourceAsStream(imageName));
                System.err.println("Bild konnte geladen werden");
                panel.add(canvas, imageName);
            } catch (IOException e) {
                System.err.println("Bild konnte nicht geladen werden");
            }
        }
        
        task = new TimerTask() {
            public void run() {
                System.err.println("Timer gestartet");
                
                for(String imageName: images) {
                    System.err.println("Neues Bild");
                    cards.show(panel, imageName);
                    try {
                        Thread.sleep(3000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        };
        
        return panel;
    }

    public static void main(String[] args) {
        Frame f = new Frame("Bildanzeige");
        f.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });

        MyApplet myApplet = new MyApplet();
        f.add(myApplet.createGUI());
        myApplet.startDiashow();
        
        f.pack();
        f.setVisible(true);
    }
}
