protected void initialize() {

    this.playIcon =
        new ImageIcon(getClass().getResource("/net/firefly/client/resources/images/play.png"));
    this.pressedPlayIcon =
        new ImageIcon(getClass().getResource("/net/firefly/client/resources/images/play-on.png"));
    this.pauseIcon =
        new ImageIcon(getClass().getResource("/net/firefly/client/resources/images/pause.png"));
    this.pressedPauseIcon =
        new ImageIcon(getClass().getResource("/net/firefly/client/resources/images/pause-on.png"));
    this.stopIcon =
        new ImageIcon(getClass().getResource("/net/firefly/client/resources/images/stop.png"));
    this.pressedStopIcon =
        new ImageIcon(getClass().getResource("/net/firefly/client/resources/images/stop-on.png"));

    setToolTipText(
        ResourceManager.getLabel("player.control.play.pause", context.getConfig().getLocale()));

    setOpaque(false);
    setVerticalAlignment(SwingConstants.CENTER);
    setIcon(this.playIcon);

    setBackground(null);
    setIconTextGap(0);
    setBorder(new EmptyBorder(0, 0, 0, 0));

    addMouseListener(
        new java.awt.event.MouseAdapter() {
          public void mouseClicked(java.awt.event.MouseEvent e) {
            PlayerStatus playerStatus = context.getPlayer().getPlayerStatus();
            if (playerStatus.equals(PlayerStatus.STATUS_STOPPED)) {
              context.getPlayer().resume();
            } else {
              context.getPlayer().pause();
            }
          }

          public void mousePressed(java.awt.event.MouseEvent e) {
            if (getIcon().toString().equals(playIcon.toString())) {
              setIcon(pressedPlayIcon);
            } else if (getIcon().toString().equals(pauseIcon.toString())) {
              setIcon(pressedPauseIcon);
            } else {
              setIcon(pressedStopIcon);
            }
          }

          public void mouseReleased(MouseEvent arg0) {
            if (getIcon().toString().equals(pressedPlayIcon.toString())) {
              setIcon(playIcon);
            } else if (getIcon().toString().equals(pressedPauseIcon.toString())) {
              setIcon(pauseIcon);
            } else {
              setIcon(stopIcon);
            }
          }
        });

    this.context.getPlayer().addPlayerStatusChangedEventListener(this);
  }
 public void onPlayerStatusChange(PlayerStatusChangedEvent evt) {
   PlayerStatus newPlayerStatus = evt.getNewStatus();
   if (newPlayerStatus.equals(PlayerStatus.STATUS_STOPPED)) {
     setIcon(this.playIcon);
   } else if (context.getPlayer().isSupportSeeking()) {
     setIcon(this.pauseIcon);
   } else {
     setIcon(this.stopIcon);
   }
 }