import java.io.*;
import javax.swing.*;
import java.awt.event.*;

public class ImageToHtml extends JFrame implements WindowListener{
static String verzeichnisbaum = "";
static String newLine ="\n";
static File generatedHtml;
static String title ="";
static String htmlName ="";
static String heading = "";
static File workingDir;

JButton dirButton;
JPanel panel;
JLabel ueberschriftLabel, dokumentNameLabel, titelNameLabel;
JTextField ueberschrift,dokumentName,titelName;



    ImageToHtml(){
      setTitle(" MediaToHtml ");
      //setResizable(false);
      setLocation(
                  java.awt.Toolkit.getDefaultToolkit().getScreenSize().width/2
                  ,java.awt.Toolkit.getDefaultToolkit().getScreenSize().height/2);
      setSize(260,330);
      panel = new JPanel();
      this.addWindowListener(this);
      ueberschriftLabel = new JLabel("Überschrift:");
      dokumentNameLabel = new  JLabel("Dokument Name:[<name>.html]");
      titelNameLabel = new JLabel("Titel Name:[Überschrift]");

      ueberschrift = new JTextField(20);
      dokumentName = new JTextField(20);
      titelName = new JTextField(20);

      dirButton = new JButton("Choose Work Dir and Generate Html");
      dirButton.addActionListener( new ActionListener(){
        public void actionPerformed(ActionEvent e){
          if(e.getSource() == dirButton){
            htmlName = dokumentName.getText();
            title = titelName.getText();
            heading = ueberschrift.getText();

            try{
             scanFilesystem();
            }catch(Exception ee){
              JOptionPane.showConfirmDialog(null,"Bitte korrekte Daten eingeben","Fehlende Daten",JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE);
            }
          }
        }
      });
      panel.add(ueberschriftLabel);
      panel.add(ueberschrift);
      panel.add(dokumentNameLabel);
      panel.add(dokumentName);
      panel.add(titelNameLabel);
      panel.add(titelName);

      panel.add(dirButton);
      this.getContentPane().add(panel);


    }

    public void scanFilesystem(){
       JFileChooser fileChooser = new JFileChooser("E:\\photos\\");
                    fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

                int returnVal = fileChooser.showOpenDialog(this);
                if (returnVal == JFileChooser.APPROVE_OPTION) {
                 workingDir = fileChooser.getSelectedFile();
                }
                else  workingDir =  new File("E:\\Homepage\\neueVersion\\KOSTAS\\friends\\events\\event4\\");
                 //File workingDir =  new File("E:\\Homepage\\neueVersion\\KOSTAS\\friends\\events\\event4\\");
                 generatedHtml = new File(htmlName);
                 System.out.println("WorkingDirectory ist="+workingDir);
                 prepareHtml();
                 scan(workingDir);
                 closeHtml();



        System.out.println("Schau in das Verzeichnis wo SW aufgerufen wurde.");
        System.out.println("Es gibt ein HtmlFile = "+htmlName+" wo alles protokolliert steht.");
        System.exit(0);


    }

    public static void main(String[] args) {

        new ImageToHtml().setVisible(true);


    }

    public static void prepareHtml(){

    verzeichnisbaum=
    "<html>"+newLine+
    "<head>"+newLine+
    "<title>"+title+"</title>"+newLine+
    "</head>"+newLine+
    "<body>"+newLine+
    "<h1>"+heading+"</h1>"+newLine;
    }

    public static void closeHtml(){
    System.out.println("Html Dokument wird abgeschlossen");
    verzeichnisbaum = verzeichnisbaum+"</body>"+newLine+"</html>"+newLine;

                try{
                 FileWriter fw = new FileWriter(workingDir.getPath()+"\\"+generatedHtml);
                 fw.write(verzeichnisbaum);
                 fw.close();
                }
                catch(Exception e){
                 System.out.println("-----> :-) MALAKA");
                }

    }

    public static void scan(File dir) {
        System.out.println("Liste aller Dateien und Unterverzeichnisse holen");
        String[] entries = dir.list();
        if (entries    ==     null || entries.length < 1) {
            return;
        }
        for (int i = 0; i < entries.length; i++) {
            File entry = new File(dir, entries[i]);
            if (entry.isDirectory()) {
                scan(entry); // rekursiv ins Unterverzeichnis verzweigen
            } else {
                // entry ist eine Datei
                System.out.println("Gefunden:"+entry);
                if(entry.getName().endsWith(".jpg") || entry.getName().endsWith(".gif") ||
                   entry.getName().endsWith(".JPG") || entry.getName().endsWith(".GIF") ||
                   entry.getName().endsWith(".mid") || entry.getName().endsWith(".Mid")
                )                    
                verzeichnisbaum = verzeichnisbaum + "<img src=\""+entry.getName()+"\">"+"\n";
                
                else if(entry.getName().endsWith(".AVI") || entry.getName().endsWith(".avi"))
                verzeichnisbaum = verzeichnisbaum + "<a href=\""+entry.getName()+"\">"+entry.getName()+"</a><br>"+"\n";
            }
        }

    }


    public void windowOpened(WindowEvent we){;}
    public void windowClosed(WindowEvent we){;}
    public void windowClosing(WindowEvent we){System.exit(0);}
    public void windowActivated(WindowEvent we){;}
    public void windowDeactivated(WindowEvent we){;}
    public void windowDeiconified(WindowEvent we){;}
    public void windowIconified(WindowEvent we){;}


}//ImageToHtml

