00001 package i2bpro.layer.Dialogs;
00002
00003 import i2bpro.Exceptions.ErrorMsg;
00004 import i2bpro.Exceptions.PlayListException;
00005 import i2bpro.layer.InfoMsg;
00006 import i2bpro.layer.Layer;
00007 import i2bpro.playlist.PlayList;
00008 import java.awt.Dimension;
00009 import java.awt.FlowLayout;
00010 import java.awt.GridLayout;
00011 import java.awt.Toolkit;
00012 import java.awt.event.ActionEvent;
00013 import java.awt.event.ActionListener;
00014 import java.io.FileNotFoundException;
00015 import java.io.FileWriter;
00016 import java.io.IOException;
00017 import javax.swing.JButton;
00018 import javax.swing.JDialog;
00019 import javax.swing.JLabel;
00020 import javax.swing.JPanel;
00021 import org.jaudiotagger.audio.exceptions.CannotReadException;
00022 import org.jaudiotagger.audio.exceptions.InvalidAudioFrameException;
00023 import org.jaudiotagger.audio.exceptions.ReadOnlyFileException;
00024 import org.jaudiotagger.tag.TagException;
00025
00026
00027
00046 public final class PlayListAuswahlDlg extends JDialog implements ActionListener
00047 {
00048
00049
00050 private static PlayListAuswahlDlg instance = new PlayListAuswahlDlg();
00051
00052
00053 private String filename;
00054
00055
00056
00068 private PlayListAuswahlDlg()
00069 {
00070 setLayout(new GridLayout(2,1));
00071 JPanel labels = new JPanel();
00072 labels.setLayout(new FlowLayout(FlowLayout.CENTER, 3, 3));
00073 labels.add(new JLabel("Bitte wählen Sie die Art der Wiedergabeliste aus."));
00074 JPanel buttons = new JPanel();
00075 buttons.setLayout(new FlowLayout(FlowLayout.CENTER, 3, 3));
00076 JButton btn = new JButton("M3U (Einfach)");
00077 btn.addActionListener(this);
00078 buttons.add(btn);
00079 btn = new JButton("M3U (Erweitert)");
00080 btn.addActionListener(this);
00081 buttons.add(btn);
00082 btn = new JButton("CUE");
00083 btn.addActionListener(this);
00084 buttons.add(btn);
00085 add(labels);
00086 add(buttons);
00087 }
00088
00089
00090
00098 public static PlayListAuswahlDlg getInstance() { return instance; }
00099
00100
00101
00113 public void run(String filename)
00114 {
00115 this.filename = filename;
00116 pack();
00117 Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
00118 int y = (int)((dim.getHeight()/2)-(getHeight()/2));
00119 int x = (int)((dim.getWidth()/2)-(getWidth()/2));
00120 setLocation(x, y);
00121 setVisible(true);
00122 }
00123
00124
00125
00136 public void actionPerformed(ActionEvent e)
00137 {
00138 String cmd = e.getActionCommand();
00139 int type = 0;
00140 if (cmd.equals("M3U (Einfach)"))
00141 {
00142 filename = filename + ".m3u";
00143 type = 1;
00144 } else if (cmd.equals("M3U (Erweitert)"))
00145 {
00146 filename = filename + ".m3u";
00147 type = 2;
00148 } else if (cmd.equals("CUE"))
00149 {
00150 InfoMsg.show(5);
00151 }
00152 if (type > 0)
00153 {
00154 setVisible(false);
00155 FileWriter f = null;
00156 try {
00157 f = new FileWriter(filename);
00158
00159
00160 if (type == 2) f.write("#EXTM3U");
00161 f.close();
00162 PlayList.getInstance().setPlayList(filename);
00163 Layer.getInstance().PlayListChange();
00164 }
00165 catch (PlayListException ex) { ErrorMsg.show(ex.getMessage()); }
00166 catch (FileNotFoundException ex) { ErrorMsg.show(ex.getMessage()); }
00167 catch (CannotReadException ex) { ErrorMsg.show(ex.getMessage()); }
00168 catch (TagException ex) { ErrorMsg.show(ex.getMessage()); }
00169 catch (ReadOnlyFileException ex) { ErrorMsg.show(ex.getMessage()); }
00170 catch (InvalidAudioFrameException ex) { ErrorMsg.show(ex.getMessage()); }
00171 catch (IOException ex) { ErrorMsg.show(ex.getMessage()); }
00172 }
00173 }
00174 }