package apes.views;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import apes.controllers.TagsController;
import apes.lib.Language;
import apes.models.Tags;
/**
* View where tags can be changed.
*/
public class TagsView extends JFrame
{
/**
* A language object.
*/
private Language language;
/**
* The head label.
*/
private JLabel head;
/**
* The name.
*/
private JTextField n;
/**
* The track.
*/
private JTextField t;
/**
* The artist.
*/
private JTextField ar;
/**
* The album.
*/
private JTextField al;
/**
* The genre.
*/
private JTextField g;
/**
* The composer.
*/
private JTextField comp;
/**
* The comments.
*/
private JTextField com;
/**
* The copyright.
*/
private JTextField copy;
/**
* Creates a new <code>TagsView</code> instance.
*
* @param tagsController The tags controller.
* @param tags The tags model.
*/
public TagsView(TagsController tagsController, Tags tags)
{
this.language = Language.getInstance();
setLayout(new BorderLayout());
// North panel
JPanel north = new JPanel();
north.setLayout(new FlowLayout());
head = new ApesLabel("tags.title");
north.add(head);
// South panel
JPanel south = new JPanel();
south.setLayout(new FlowLayout());
// Save button
JButton save = new ApesButton("tags.save");
save.addActionListener(tagsController);
save.setName("save");
south.add(save);
// Close button
JButton close = new ApesButton("tags.close");
close.addActionListener(tagsController);
close.setName("close");
south.add(close);
n = new JTextField(tags.get("name"));
t = new JTextField(tags.get("track"));
ar = new JTextField(tags.get("artist"));
al = new JTextField(tags.get("album"));
g = new JTextField(tags.get("genre"));
comp = new JTextField(tags.get("composer"));
com = new JTextField(tags.get("comments"));
copy = new JTextField(tags.get("copyright"));
JLabel name = new JLabel(language.get("tags.name"));
JLabel track = new JLabel(language.get("tags.track"));
JLabel artist = new JLabel(language.get("tags.artist"));
JLabel album = new JLabel(language.get("tags.album"));
JLabel genre = new JLabel(language.get("tags.genre"));
JLabel composer = new JLabel(language.get("tags.composer"));
JLabel comments = new JLabel(language.get("tags.comments"));
JLabel copyright = new JLabel(language.get("tags.copyright"));
JPanel center = new JPanel();
center.setBackground(Color.GRAY);
center.setLayout(new GridLayout(8, 2));
center.setPreferredSize(new Dimension(200, 170));
center.add(name);
center.add(n);
center.add(track);
center.add(t);
center.add(artist);
center.add(ar);
center.add(album);
center.add(al);
center.add(genre);
center.add(g);
center.add(composer);
center.add(comp);
center.add(comments);
center.add(com);
center.add(copyright);
center.add(copy);
// Placing
add(south, BorderLayout.SOUTH);
add(new JPanel(), BorderLayout.WEST);
add(center, BorderLayout.CENTER);
add(new JPanel(), BorderLayout.EAST);
add(north, BorderLayout.NORTH);
pack();
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
/**
* Returns the name.
*
* @return The name.
*/
@Override
public String getName()
{
return n.getText();
}
/**
* Returns the track.
*
* @return The track.
*/
public String getTrack()
{
return t.getText();
}
/**
* Returns the artist.
*
* @return The artist.
*/
public String getArtist()
{
return ar.getText();
}
/**
* Returns the album.
*
* @return The album.
*/
public String getAlbum()
{
return al.getText();
}
/**
* Returns the genre.
*
* @return The genre.
*/
public String getGenre()
{
return g.getText();
}
/**
* Returns the composer.
*
* @return The composer.
*/
public String getComposer()
{
return comp.getText();
}
/**
* Returns the comment.
*
* @return The comments.
*/
public String getComments()
{
return com.getText();
}
/**
* Returns the copyright.
*
* @return The copyright.
*/
public String getCopyright()
{
return copy.getText();
}
}