/*
* Copyright (c) 2011 by Stefan Laubenberger.
*
* MusicPlayer is free software: you can redistribute it and/or modify
* it under the terms of the General Public License v2.0.
*
* MusicPlayer is distributed together with Tyr in the hope that it
* will be useful, but WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* See the GNU General Public License for more details:
* <http://www.gnu.org/licenses>
*
* This distribution is available at:
* <http://code.google.com/p/tyr/>
* <http://dev.laubenberger.net/tyr/>
*
* Contact information:
* Stefan Laubenberger
* Bullingerstrasse 53
* CH-8004 Zuerich
*
* <http://www.laubenberger.net>
*
* <laubenberger@gmail.com>
*/
package net.laubenberger.tyr.module.musicplayer;
import java.awt.Insets;
import javax.swing.WindowConstants;
import net.laubenberger.bogatyr.helper.HelperLog;
import net.laubenberger.bogatyr.service.localizer.Localizer;
import net.laubenberger.bogatyr.view.swing.Button;
import net.laubenberger.bogatyr.view.swing.Dialog;
import net.laubenberger.bogatyr.view.swing.Group;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Dialog for music player commands.
*
* @author Stefan Laubenberger
* @version 0.7.0 (20110121)
* @since 0.1.0
*/
public class DialogCommander extends Dialog {
private static final long serialVersionUID = 4161135982451721307L;
private static final Logger log = LoggerFactory.getLogger(DialogCommander.class);
final MusicPlayer mp;
final Localizer localizer;
public DialogCommander(final MusicPlayer mp) {
super(mp.getOwner());
if (log.isTraceEnabled()) log.trace(HelperLog.constructor(mp));
this.mp = mp;
localizer = mp.getModel().getLocalizer();
}
{
setAlwaysOnTop(true);
setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
// setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setResizable(false);
}
/*
* Private methods
*/
private void createLayout() {
getContentPane().removeAll();
if (!mp.isRunning()) {
setTitle(localizer.getValue(HelperResource.RES_LABEL_STOPPED));
}
final Button buttonOpen = new Button(mp.getActionOpen());
buttonOpen.setFocusable(false);
final Button buttonStart = new Button(mp.getActionStart());
buttonStart.setFocusable(false);
final Button buttonStop = new Button(mp.getActionStop());
buttonStop.setFocusable(false);
final Button buttonSkipBackward = new Button(mp.getActionSkipBackward());
buttonSkipBackward.setFocusable(false);
final Button buttonSkipForward = new Button(mp.getActionSkipForward());
buttonSkipForward.setFocusable(false);
final Group group = new Group(new Insets(5, 5, 5, 5), buttonOpen, buttonStart, buttonStop, buttonSkipBackward,
buttonSkipForward);
getContentPane().add(group);
pack();
// setVisible(true);
}
/*
* Overridden methods
*/
@Override
public void createAndShowGUI() {
if (log.isDebugEnabled()) log.debug(HelperLog.methodStart());
createLayout();
pack();
mp.getDialogs().add(this);
super.createAndShowGUI();
if (log.isDebugEnabled()) log.debug(HelperLog.methodExit());
}
@Override
public void clearAndHide() {
if (log.isDebugEnabled()) log.debug(HelperLog.methodStart());
mp.getDialogs().remove(this);
super.clearAndHide();
if (log.isDebugEnabled()) log.debug(HelperLog.methodExit());
}
}