00001 package i2bpro.layer.Panels;
00002
00003 import i2bpro.Exceptions.LayerException;
00004 import i2bpro.layer.Layer;
00005 import i2bpro.playlist.PlayList;
00006 import i2bpro.player.Player;
00007 import i2bpro.Exceptions.ErrorMsg;
00008 import java.awt.FlowLayout;
00009 import java.awt.event.ActionEvent;
00010 import java.awt.event.ActionListener;
00011 import java.io.IOException;
00012 import java.net.MalformedURLException;
00013 import javax.media.NoPlayerException;
00014 import javax.swing.Icon;
00015 import javax.swing.ImageIcon;
00016 import javax.swing.JButton;
00017 import javax.swing.JPanel;
00018
00019
00020
00036 public final class ButtonPanel extends JPanel
00037 {
00038
00039 final Icon speaker_on = new ImageIcon(ButtonPanel.class.getResource(
00040 "/pics/speaker_on.png"));
00041 final Icon speaker_off = new ImageIcon(ButtonPanel.class.getResource(
00042 "/pics/speaker_off.png"));
00043 private JButton PlayButton = new JButton(
00044 new ImageIcon(ButtonPanel.class.getResource("/pics/play.png")));
00045 private JButton PauseButton = new JButton(
00046 new ImageIcon(ButtonPanel.class.getResource("/pics/pause.png")));
00047 private JButton StopButton = new JButton(
00048 new ImageIcon(ButtonPanel.class.getResource("/pics/stop.png")));
00049 private JButton MuteButton = new JButton(speaker_on);
00050 private JButton PriorButton = new JButton(
00051 new ImageIcon(ButtonPanel.class.getResource("/pics/prior.png")));
00052 private JButton NextButton = new JButton(
00053 new ImageIcon(ButtonPanel.class.getResource("/pics/next.png")));
00054 private JButton RandomButton = new JButton("Zufall einschalten");
00055
00056
00057
00067 public ButtonPanel ()
00068 {
00069 setLayout(new FlowLayout(FlowLayout.CENTER, 1, 5));
00070 initButtons();
00071 addListeners();
00072 }
00073
00074
00075
00082 private void initButtons()
00083 {
00084 PlayButton.setToolTipText("Play");
00085 PauseButton.setToolTipText("Pause");
00086 StopButton.setToolTipText("Stop");
00087 NextButton.setToolTipText("nächster Titel");
00088 PriorButton.setToolTipText("vorheriger Titel");
00089 MuteButton.setToolTipText("Mut einschalten");
00090 if (PlayList.getInstance().getPlayList().size() > 0)
00091 {
00092 PriorButton.setEnabled(true);
00093 NextButton.setEnabled(true);
00094 } else {
00095 PriorButton.setEnabled(false);
00096 NextButton.setEnabled(false);
00097 }
00098 PlayButton.setEnabled(true);
00099 PauseButton.setEnabled(false);
00100 StopButton.setEnabled(false);
00101 MuteButton.setEnabled(true);
00102
00103 add(PriorButton);
00104 add(PlayButton);
00105 add(PauseButton);
00106 add(StopButton);
00107 add(NextButton);
00108 add(MuteButton);
00109 add(RandomButton);
00110 }
00111
00112
00113
00120 private void addListeners() {
00121 addPlayButtonListener();
00122 addPauseButtonListener();
00123 addStopButtonListener();
00124 addPriorButtonListener();
00125 addNextButtonListener();
00126 addMuteButtonListener();
00127 addRandomButtonListener();
00128 }
00129
00130
00131
00138 private void addPlayButtonListener()
00139 {
00140 PlayButton.addActionListener(new ActionListener()
00141 {
00148 public void actionPerformed (ActionEvent e)
00149 {
00150 try
00151 {
00152 Layer.getInstance().play();
00153 }
00154 catch (LayerException ex) { ErrorMsg.show(ex.getMessage()); }
00155 catch (MalformedURLException ex) { ErrorMsg.show(ex.getMessage()); }
00156 catch (IOException ex) { ErrorMsg.show(ex.getMessage()); }
00157 catch (NoPlayerException ex) { ErrorMsg.show(ex.getMessage()); }
00158 }
00159 });
00160 }
00161
00162
00163
00170 private void addPauseButtonListener()
00171 {
00172 PauseButton.addActionListener(new ActionListener()
00173 {
00181 public void actionPerformed (ActionEvent e)
00182 {
00183 Layer.getInstance().pause();
00184 }
00185 });
00186 }
00187
00188
00189
00196 private void addStopButtonListener()
00197 {
00198 StopButton.addActionListener(new ActionListener()
00199 {
00206 public void actionPerformed (ActionEvent e)
00207 {
00208 Layer.getInstance().stop();
00209 }
00210 });
00211 }
00212
00213
00214
00221 private void addPriorButtonListener()
00222 {
00223 PriorButton.addActionListener(new ActionListener()
00224 {
00231 public void actionPerformed (ActionEvent e)
00232 {
00233 try
00234 {
00235 Layer.getInstance().Prior();
00236 }
00237 catch (LayerException ex) { ErrorMsg.show(ex.getMessage()); }
00238 catch (MalformedURLException ex) { ErrorMsg.show(ex.getMessage()); }
00239 catch (IOException ex) { ErrorMsg.show(ex.getMessage()); }
00240 catch (NoPlayerException ex) { ErrorMsg.show(ex.getMessage()); }
00241 }
00242 });
00243 }
00244
00245
00246
00253 private void addNextButtonListener()
00254 {
00255 NextButton.addActionListener(new ActionListener()
00256 {
00263 public void actionPerformed (ActionEvent e)
00264 {
00265 try
00266 {
00267 Layer.getInstance().Next();
00268 }
00269 catch (LayerException ex) { ErrorMsg.show(ex.getMessage()); }
00270 catch (MalformedURLException ex) { ErrorMsg.show(ex.getMessage()); }
00271 catch (IOException ex) { ErrorMsg.show(ex.getMessage()); }
00272 catch (NoPlayerException ex) { ErrorMsg.show(ex.getMessage()); }
00273 }
00274 });
00275 }
00276
00277
00278
00285 private void addMuteButtonListener()
00286 {
00287 MuteButton.addActionListener(new ActionListener()
00288 {
00295 public void actionPerformed (ActionEvent e)
00296 {
00297 Layer.getInstance().toggleMute();
00298 }
00299 });
00300 }
00301
00302
00303
00310 private void addRandomButtonListener()
00311 {
00312 RandomButton.addActionListener(new ActionListener()
00321 {
00322 public void actionPerformed (ActionEvent e)
00323 {
00324 try
00325 {
00326 if (Layer.getInstance().toggleRandom()) {
00327 RandomButton.setText("Zufall abschalten");
00328 } else {
00329 RandomButton.setText("Zufall einschalten");
00330 }
00331 }
00332 catch (LayerException ex) { ErrorMsg.show(ex.getMessage()); }
00333 catch (MalformedURLException ex) { ErrorMsg.show(ex.getMessage()); }
00334 catch (IOException ex) { ErrorMsg.show(ex.getMessage()); }
00335 catch (NoPlayerException ex) { ErrorMsg.show(ex.getMessage()); }
00336 }
00337 });
00338 }
00339
00340
00341
00349 public void PlayerStarted()
00350 {
00351 PlayButton.setEnabled(false);
00352 PauseButton.setEnabled(true);
00353 StopButton.setEnabled(true);
00354 PriorButton.setEnabled(true);
00355 NextButton.setEnabled(true);
00356 }
00357
00358
00359
00367 public void PlayerPause()
00368 {
00369 PlayButton.setEnabled(true);
00370 PauseButton.setEnabled(false);
00371 StopButton.setEnabled(true);
00372 PriorButton.setEnabled(true);
00373 NextButton.setEnabled(true);
00374 }
00375
00376
00377
00385 public void PlayerStopped()
00386 {
00387 PlayButton.setEnabled(true);
00388 PauseButton.setEnabled(false);
00389 StopButton.setEnabled(false);
00390 PriorButton.setEnabled(false);
00391 NextButton.setEnabled(false);
00392 }
00393
00394
00395
00404 public void toggledMute()
00405 {
00406 if (Player.getInstance().isMute())
00407 {
00408 MuteButton.setIcon(speaker_off);
00409 MuteButton.setToolTipText("Mute ausschalten");
00410 } else {
00411 MuteButton.setIcon(speaker_on);
00412 MuteButton.setToolTipText("Mute einschalten");
00413 }
00414 }
00415 }