Added SessionFactory shutdown hook, some code cleanup.
This commit is contained in:
parent
c5ac14fed1
commit
ac2ddda462
@ -4,9 +4,7 @@ import com.google.inject.Guice;
|
||||
import com.google.inject.Inject;
|
||||
import com.google.inject.Injector;
|
||||
import musicplayer.callbacks.PlayerCallbackInterface;
|
||||
import musicplayer.db.IDatabase;
|
||||
import musicplayer.library.ILibrary;
|
||||
import musicplayer.model.Song;
|
||||
import musicplayer.player.IPlayer;
|
||||
import musicplayer.playlist.IPlaylist;
|
||||
import musicplayer.util.ConfigManager;
|
||||
|
@ -11,7 +11,7 @@ import musicplayer.player.IPlayer;
|
||||
import musicplayer.playlist.IPlaylist;
|
||||
import musicplayer.playlist.JTablePlaylist;
|
||||
|
||||
public class SwingUIModule extends AbstractModule {
|
||||
class SwingUIModule extends AbstractModule {
|
||||
|
||||
@Override
|
||||
protected void configure() {
|
||||
|
@ -2,7 +2,6 @@ package musicplayer.callbacks;
|
||||
|
||||
import com.google.inject.ImplementedBy;
|
||||
import musicplayer.PlayerGUI;
|
||||
import musicplayer.model.Song;
|
||||
|
||||
@ImplementedBy(PlayerGUI.class)
|
||||
public interface PlayerCallbackInterface {
|
||||
|
@ -20,7 +20,7 @@ import java.util.Properties;
|
||||
*/
|
||||
public class HibernateDatabase implements IDatabase{
|
||||
|
||||
private static SessionFactory sessionFactory;
|
||||
private SessionFactory sessionFactory;
|
||||
|
||||
/**
|
||||
* Create a database connection.
|
||||
@ -57,6 +57,8 @@ public class HibernateDatabase implements IDatabase{
|
||||
.addAnnotatedClass(Artist.class)
|
||||
.addAnnotatedClass(Song.class)
|
||||
.buildSessionFactory();
|
||||
Thread hookShutdown = new Thread(sessionFactory::close);
|
||||
Runtime.getRuntime().addShutdownHook(hookShutdown);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -29,8 +29,8 @@ import java.util.stream.Collectors;
|
||||
|
||||
public class JTreeLibrary extends JPanel implements ILibrary, LibraryCallbackInterface{
|
||||
|
||||
IDatabase database;
|
||||
IPlaylist playlist;
|
||||
private IDatabase database;
|
||||
private IPlaylist playlist;
|
||||
private static final DefaultMutableTreeNode updatingNode = new DefaultMutableTreeNode();
|
||||
private final AtomicBoolean libraryUpdating = new AtomicBoolean(false);
|
||||
private final JComboBox<String> libraryDisplayType = new JComboBox<>();
|
||||
@ -182,7 +182,8 @@ public class JTreeLibrary extends JPanel implements ILibrary, LibraryCallbackInt
|
||||
int selRow = libraryTree.getRowForLocation(e.getX(), e.getY());
|
||||
if(e.getButton() == MouseEvent.BUTTON1 && e.getClickCount() == 2 && selRow != -1)
|
||||
try {
|
||||
Object selectedItem = ((DefaultMutableTreeNode) libraryTree.getPathForLocation(e.getX(), e.getY()).getLastPathComponent()).getUserObject();
|
||||
@SuppressWarnings("ConstantConditions") Object selectedItem =
|
||||
((DefaultMutableTreeNode) libraryTree.getPathForLocation(e.getX(), e.getY()).getLastPathComponent()).getUserObject();
|
||||
if (selectedItem != null) {
|
||||
if (selectedItem instanceof Song) {
|
||||
playlist.addSong((Song) selectedItem);
|
||||
@ -198,6 +199,7 @@ public class JTreeLibrary extends JPanel implements ILibrary, LibraryCallbackInt
|
||||
private class LibraryTreeCellRenderer implements TreeCellRenderer {
|
||||
|
||||
private final JLabel label;
|
||||
@SuppressWarnings("ConstantConditions")
|
||||
private final Icon missingIcon = new ImageIcon(JTreeLibrary.class.getClassLoader().getResource("missing.gif"));
|
||||
|
||||
LibraryTreeCellRenderer() {
|
||||
|
@ -1,16 +1,7 @@
|
||||
package musicplayer.model;
|
||||
|
||||
import javax.imageio.ImageIO;
|
||||
import javax.persistence.*;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.DirectoryStream;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.NoSuchElementException;
|
||||
import java.util.Optional;
|
||||
|
||||
@Entity
|
||||
public class Song implements Comparable<Song>, IDBType {
|
||||
|
Loading…
Reference in New Issue
Block a user