/*
* The GPLv3 licence :
* -----------------
* Copyright (c) 2009 Ricardo Dias
*
* This file is part of MuVis.
*
* MuVis is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* MuVis is distributed 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.
*
* You should have received a copy of the GNU General Public License
* along with MuVis. If not, see <http://www.gnu.org/licenses/>.
*/
/*
* MusicControllerViewUI.java
*
* Created on 9/Mai/2009, 20:24:05
*/
package muvis.view;
import java.io.IOException;
import muvis.util.JImagePanel;
/**
*
* @author Ricardo
*/
public class MusicControllerViewUI extends javax.swing.JPanel {
/** Creates new form MusicControllerViewUI */
public MusicControllerViewUI() {
initComponents();
playingModeGroup.add(filteredTracksRadioButton);
playingModeGroup.add(playlistRadioButton);
playingModeGroup.add(allTracksRadioButton);
previousTrackButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icons/music/media-skip-backward.png")));
nextTrackButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icons/music/media-skip-forward.png")));
playTrackButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icons/music/media-playback-start.png")));
stopPlayerButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icons/music/media-playback-stop.png")));
volumeLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icons/music/audio-volume-medium.png")));
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
playingModeGroup = new javax.swing.ButtonGroup();
musicControllerPanel = new javax.swing.JPanel();
playingModePanel = new javax.swing.JPanel();
playingModeLabel = new javax.swing.JLabel();
filteredTracksRadioButton = new javax.swing.JRadioButton();
playlistRadioButton = new javax.swing.JRadioButton();
allTracksRadioButton = new javax.swing.JRadioButton();
musicControllerSepator = new javax.swing.JSeparator();
playerControllerPanel = new javax.swing.JPanel();
jPanel2 = new javax.swing.JPanel();
previousTrackButton = new javax.swing.JButton();
stopPlayerButton = new javax.swing.JButton();
playTrackButton = new javax.swing.JButton();
nextTrackButton = new javax.swing.JButton();
jPanel3 = new javax.swing.JPanel();
musicTimelineSlider = new javax.swing.JSlider();
trackInfoPanel = new javax.swing.JPanel();
trackInfoLabel = new javax.swing.JLabel();
trackInformationPanel = new javax.swing.JPanel();
artistAlbumInfoLabel = new javax.swing.JLabel();
trackNameLabel = new javax.swing.JLabel();
trackyearLabel = new javax.swing.JLabel();
jPanel1 = new javax.swing.JPanel();
volumeLabel = new javax.swing.JLabel();
volumeSlider = new javax.swing.JSlider();
albumCoverPanel = new javax.swing.JPanel();
setLayout(new java.awt.GridLayout(1, 0));
musicControllerPanel.setMinimumSize(new java.awt.Dimension(874, 100));
musicControllerPanel.setPreferredSize(new java.awt.Dimension(874, 125));
playingModeLabel.setFont(new java.awt.Font("Arial", 1, 11));
playingModeLabel.setText("Play from:");
filteredTracksRadioButton.setFont(new java.awt.Font("Arial", 0, 11));
filteredTracksRadioButton.setText("Filtered tracks");
filteredTracksRadioButton.setToolTipText("This mode allows to play the filtered tracks in the main view");
playlistRadioButton.setFont(new java.awt.Font("Arial", 0, 11));
playlistRadioButton.setText("Playlist");
playlistRadioButton.setToolTipText("This mode allows to play the tracks in the built playlist");
allTracksRadioButton.setFont(new java.awt.Font("Arial", 0, 11));
allTracksRadioButton.setText("All");
allTracksRadioButton.setToolTipText("This mode is used for combine the previous modes: play the filtered tracks and the tracks in the playlist");
org.jdesktop.layout.GroupLayout playingModePanelLayout = new org.jdesktop.layout.GroupLayout(playingModePanel);
playingModePanel.setLayout(playingModePanelLayout);
playingModePanelLayout.setHorizontalGroup(
playingModePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(playingModePanelLayout.createSequentialGroup()
.addContainerGap()
.add(playingModePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(allTracksRadioButton)
.add(playlistRadioButton)
.add(playingModeLabel)
.add(filteredTracksRadioButton))
.addContainerGap(10, Short.MAX_VALUE))
);
playingModePanelLayout.setVerticalGroup(
playingModePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(playingModePanelLayout.createSequentialGroup()
.addContainerGap()
.add(playingModeLabel)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(filteredTracksRadioButton)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(playlistRadioButton)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(allTracksRadioButton)
.addContainerGap(104, Short.MAX_VALUE))
);
musicControllerSepator.setOrientation(javax.swing.SwingConstants.VERTICAL);
previousTrackButton.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N
previousTrackButton.setToolTipText("Play previous track");
previousTrackButton.setPreferredSize(new java.awt.Dimension(73, 23));
jPanel2.add(previousTrackButton);
stopPlayerButton.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N
stopPlayerButton.setToolTipText("Play the currently selected track");
stopPlayerButton.setMaximumSize(new java.awt.Dimension(73, 23));
stopPlayerButton.setMinimumSize(new java.awt.Dimension(73, 23));
stopPlayerButton.setPreferredSize(new java.awt.Dimension(73, 23));
jPanel2.add(stopPlayerButton);
playTrackButton.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N
playTrackButton.setToolTipText("Play the currently selected track");
playTrackButton.setMaximumSize(new java.awt.Dimension(73, 23));
playTrackButton.setMinimumSize(new java.awt.Dimension(73, 23));
playTrackButton.setPreferredSize(new java.awt.Dimension(73, 23));
jPanel2.add(playTrackButton);
nextTrackButton.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N
nextTrackButton.setToolTipText("Play the next track");
nextTrackButton.setMaximumSize(new java.awt.Dimension(73, 23));
nextTrackButton.setMinimumSize(new java.awt.Dimension(73, 23));
nextTrackButton.setPreferredSize(new java.awt.Dimension(73, 23));
jPanel2.add(nextTrackButton);
jPanel3.setLayout(new java.awt.GridLayout(1, 0));
musicTimelineSlider.setMaximum(1);
musicTimelineSlider.setValue(0);
jPanel3.add(musicTimelineSlider);
org.jdesktop.layout.GroupLayout playerControllerPanelLayout = new org.jdesktop.layout.GroupLayout(playerControllerPanel);
playerControllerPanel.setLayout(playerControllerPanelLayout);
playerControllerPanelLayout.setHorizontalGroup(
playerControllerPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(playerControllerPanelLayout.createSequentialGroup()
.addContainerGap()
.add(playerControllerPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jPanel2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 341, Short.MAX_VALUE)
.add(org.jdesktop.layout.GroupLayout.TRAILING, playerControllerPanelLayout.createSequentialGroup()
.add(jPanel3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 315, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addContainerGap())))
);
playerControllerPanelLayout.setVerticalGroup(
playerControllerPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(org.jdesktop.layout.GroupLayout.TRAILING, playerControllerPanelLayout.createSequentialGroup()
.addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.add(jPanel3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jPanel2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
);
trackInfoLabel.setFont(new java.awt.Font("Arial", 1, 11));
trackInfoLabel.setText("Track information:");
org.jdesktop.layout.GroupLayout trackInfoPanelLayout = new org.jdesktop.layout.GroupLayout(trackInfoPanel);
trackInfoPanel.setLayout(trackInfoPanelLayout);
trackInfoPanelLayout.setHorizontalGroup(
trackInfoPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(trackInfoPanelLayout.createSequentialGroup()
.addContainerGap()
.add(trackInfoLabel)
.addContainerGap(28, Short.MAX_VALUE))
);
trackInfoPanelLayout.setVerticalGroup(
trackInfoPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(trackInfoPanelLayout.createSequentialGroup()
.addContainerGap()
.add(trackInfoLabel)
.addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
artistAlbumInfoLabel.setFont(new java.awt.Font("Arial", 0, 11));
artistAlbumInfoLabel.setText("Artist & album - not available");
trackNameLabel.setFont(new java.awt.Font("Arial", 0, 11));
trackNameLabel.setText("Track name - not available");
trackyearLabel.setFont(new java.awt.Font("Arial", 0, 11));
trackyearLabel.setText("Year - not available");
org.jdesktop.layout.GroupLayout trackInformationPanelLayout = new org.jdesktop.layout.GroupLayout(trackInformationPanel);
trackInformationPanel.setLayout(trackInformationPanelLayout);
trackInformationPanelLayout.setHorizontalGroup(
trackInformationPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(trackInformationPanelLayout.createSequentialGroup()
.addContainerGap()
.add(trackInformationPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(artistAlbumInfoLabel)
.add(trackNameLabel)
.add(trackyearLabel))
.addContainerGap(42, Short.MAX_VALUE))
);
trackInformationPanelLayout.setVerticalGroup(
trackInformationPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(trackInformationPanelLayout.createSequentialGroup()
.addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.add(artistAlbumInfoLabel)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
.add(trackNameLabel)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
.add(trackyearLabel))
);
jPanel1.setLayout(new java.awt.BorderLayout());
volumeSlider.setOrientation(javax.swing.JSlider.VERTICAL);
volumeSlider.setToolTipText("Set the volume of the track being played");
albumCoverPanel.setMaximumSize(new java.awt.Dimension(80, 80));
albumCoverPanel.setMinimumSize(new java.awt.Dimension(80, 80));
albumCoverPanel.setPreferredSize(new java.awt.Dimension(80, 80));
albumCoverPanel.setSize(new java.awt.Dimension(80, 80));
try {
albumCoverPanel = new JImagePanel(
getClass().getResource("/images/not_available.jpg"),
0,
0,
80,
80);
} catch (IOException ex) {
ex.printStackTrace();
}
org.jdesktop.layout.GroupLayout albumCoverPanelLayout = new org.jdesktop.layout.GroupLayout(albumCoverPanel);
albumCoverPanel.setLayout(albumCoverPanelLayout);
albumCoverPanelLayout.setHorizontalGroup(
albumCoverPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(0, 89, Short.MAX_VALUE)
);
albumCoverPanelLayout.setVerticalGroup(
albumCoverPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(0, 80, Short.MAX_VALUE)
);
org.jdesktop.layout.GroupLayout musicControllerPanelLayout = new org.jdesktop.layout.GroupLayout(musicControllerPanel);
musicControllerPanel.setLayout(musicControllerPanelLayout);
musicControllerPanelLayout.setHorizontalGroup(
musicControllerPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(musicControllerPanelLayout.createSequentialGroup()
.add(playingModePanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(playerControllerPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(musicControllerPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(volumeLabel)
.add(volumeSlider, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.add(18, 18, 18)
.add(musicControllerSepator, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 10, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(4, 4, 4)
.add(musicControllerPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(musicControllerPanelLayout.createSequentialGroup()
.add(trackInfoPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
.add(trackInformationPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(10, 10, 10)
.add(albumCoverPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 89, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.add(musicControllerPanelLayout.createSequentialGroup()
.add(41, 41, 41)
.add(jPanel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(70, Short.MAX_VALUE))
);
musicControllerPanelLayout.setVerticalGroup(
musicControllerPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(musicControllerPanelLayout.createSequentialGroup()
.add(musicControllerPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(playingModePanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(musicControllerPanelLayout.createSequentialGroup()
.addContainerGap()
.add(musicControllerPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(musicControllerPanelLayout.createSequentialGroup()
.add(musicControllerPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(org.jdesktop.layout.GroupLayout.TRAILING, playerControllerPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(org.jdesktop.layout.GroupLayout.TRAILING, musicControllerPanelLayout.createSequentialGroup()
.add(volumeLabel)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(volumeSlider, 0, 0, Short.MAX_VALUE)))
.add(18, 115, Short.MAX_VALUE))
.add(musicControllerPanelLayout.createSequentialGroup()
.add(musicControllerPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
.add(trackInformationPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(trackInfoPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(musicControllerSepator, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 80, Short.MAX_VALUE)
.add(albumCoverPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.add(109, 109, 109)))
.add(jPanel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
.addContainerGap())
);
add(musicControllerPanel);
}// </editor-fold>//GEN-END:initComponents
// Variables declaration - do not modify//GEN-BEGIN:variables
protected javax.swing.JPanel albumCoverPanel;
protected javax.swing.JRadioButton allTracksRadioButton;
protected javax.swing.JLabel artistAlbumInfoLabel;
protected javax.swing.JRadioButton filteredTracksRadioButton;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel musicControllerPanel;
private javax.swing.JSeparator musicControllerSepator;
protected javax.swing.JSlider musicTimelineSlider;
protected javax.swing.JButton nextTrackButton;
protected javax.swing.JButton playTrackButton;
private javax.swing.JPanel playerControllerPanel;
protected javax.swing.ButtonGroup playingModeGroup;
private javax.swing.JLabel playingModeLabel;
private javax.swing.JPanel playingModePanel;
protected javax.swing.JRadioButton playlistRadioButton;
protected javax.swing.JButton previousTrackButton;
protected javax.swing.JButton stopPlayerButton;
private javax.swing.JLabel trackInfoLabel;
private javax.swing.JPanel trackInfoPanel;
private javax.swing.JPanel trackInformationPanel;
protected javax.swing.JLabel trackNameLabel;
protected javax.swing.JLabel trackyearLabel;
protected javax.swing.JLabel volumeLabel;
protected javax.swing.JSlider volumeSlider;
// End of variables declaration//GEN-END:variables
}