package apes.controllers;
import apes.lib.PlayerHandler;
import apes.models.InternalFormat;
import apes.models.Tags;
import apes.views.TagsView;
/**
* This class handles events related to tags.
*/
public class TagsController extends ApplicationController
{
/**
* The view.
*/
private TagsView tagsView;
/**
* The internal format that the tags should be edited on.
*/
private InternalFormat internalFormat;
/**
*
*/
private PlayerHandler playerHandler;
/**
* Creates a new <code>TagsController</code> instance.
*/
public TagsController()
{
playerHandler = PlayerHandler.getInstance();
}
/**
* Creates a new tags view (frame) where tags can be edited.
*/
public void edit()
{
internalFormat = playerHandler.getInternalFormat();
this.tagsView = new TagsView(this, internalFormat.getTags());
}
/**
* Closes the tags window.
*/
public void close()
{
tagsView.setVisible(false);
tagsView.dispose();
}
/**
* Saves the new tag values to the tag.
*/
public void save()
{
// Create new Tags object from view.
Tags tags = new Tags();
tags.put("name", tagsView.getName());
tags.put("track", tagsView.getTrack());
tags.put("artist", tagsView.getArtist());
tags.put("album", tagsView.getAlbum());
tags.put("genre", tagsView.getGenre());
tags.put("composer", tagsView.getComposer());
tags.put("comments", tagsView.getComments());
tags.put("copyright", tagsView.getCopyright());
internalFormat.setTags(tags);
}
}