diff --git a/.gitignore b/.gitignore
index c0f64a8..76de71e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,4 @@
-dist/
-build/
+dist/
+build/
+/Sqlite/nbproject/private/
+/test/nbproject/private/
\ No newline at end of file
diff --git a/lib/mysql-connector-java-5.1.40-bin.jar b/lib/mysql-connector-java-5.1.40-bin.jar
deleted file mode 100644
index 60bef5c..0000000
Binary files a/lib/mysql-connector-java-5.1.40-bin.jar and /dev/null differ
diff --git a/lib/sqlite-jdbc-3.15.1.jar b/lib/sqlite-jdbc-3.15.1.jar
new file mode 100644
index 0000000..f628324
Binary files /dev/null and b/lib/sqlite-jdbc-3.15.1.jar differ
diff --git a/nbproject/private/private.xml b/nbproject/private/private.xml
index c17496f..5c64cce 100644
--- a/nbproject/private/private.xml
+++ b/nbproject/private/private.xml
@@ -3,10 +3,26 @@
- file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/Search.java
+ file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/CreateConnection.java
+ file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/ItemDeleterController.java
+ file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/BBSong.java
file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/DataBase.java
+ file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/TimerController.java
+ file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/PlayList.java
+ file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/CreatePlaylistController.java
+ file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/Track.java
+ file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/BeatBoxer.java
+ file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/SongEditorController.java
+ file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/Artist.java
+ file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/Timer.fxml
file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/Directory.java
- file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/Show.java
+ file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/PlaylistEditorController.java
+ file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/BBScanner.java
+ file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/Test.java
+ file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/Album.java
+ file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/BBGenerator.java
+ file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/FolderChooserController.java
+ file:/C:/Users/SANJAY%20TAYAL/Documents/NetBeansProjects/BeatBoxer/src/beatboxer/BeatBoxerController.java
diff --git a/nbproject/project.properties b/nbproject/project.properties
index e3f1751..c7addcb 100644
--- a/nbproject/project.properties
+++ b/nbproject/project.properties
@@ -30,15 +30,14 @@ dist.javadoc.dir=${dist.dir}/javadoc
endorsed.classpath=
excludes=
file.reference.jaudiotagger-2.2.3.jar=lib/jaudiotagger-2.2.3.jar
-file.reference.mysql-connector-java-5.1.40-bin.jar-1=lib/mysql-connector-java-5.1.40-bin.jar
includes=**
# Non-JavaFX jar file creation is deactivated in JavaFX 2.0+ projects
jar.archive.disabled=true
jar.compress=false
javac.classpath=\
- ${file.reference.mysql-connector-java-5.1.40-bin.jar-1}:\
${file.reference.jaudiotagger-2.2.3.jar}:\
- ${javafx.classpath.extension}
+ ${javafx.classpath.extension}:\
+ ${libs.SqlLite.classpath}
# Space-separated list of extra javac options
javac.compilerargs=
javac.deprecation=false
diff --git a/src/beatboxer/AddTrack.java b/src/beatboxer/AddTrack.java
deleted file mode 100644
index e520073..0000000
--- a/src/beatboxer/AddTrack.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package beatboxer;
-
-import java.sql.*;
-
-public class AddTrack extends CreateConnection {
-
- public AddTrack(String trackName, String artistName, String albumName, String location, String genre) {
- try {
- PreparedStatement statement = con.prepareStatement("call addtrack(?,?,?,?,?)");
- statement.setString(1, trackName);
- statement.setString(2, artistName);
- statement.setString(3, albumName);
- statement.setString(4, location.replace("\\", "/"));
- statement.setString(5, genre);
- statement.execute();
- } catch (SQLException e) {
-
- }
- }
-}
diff --git a/src/beatboxer/Album.java b/src/beatboxer/Album.java
new file mode 100644
index 0000000..5377eb7
--- /dev/null
+++ b/src/beatboxer/Album.java
@@ -0,0 +1,77 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package beatboxer;
+
+import java.sql.*;
+import javafx.collections.ObservableList;
+
+/**
+ *
+ * @author SANJAY TAYAL
+ */
+public class Album extends CreateConnection {
+
+ public ObservableList ShowAllAlbums() {
+ Statement count = null;
+ try {
+ count = con.createStatement();
+ return BBGenerator.item(count.executeQuery("Select * from album order by albumname"));
+ } catch (SQLException e) {
+
+ } finally {
+ if (count != null) {
+ try {
+ count.close();
+ } catch (SQLException e) {
+
+ }
+ }
+ }
+ return null;
+ }
+
+ public ObservableList ShowAllTracksinAlbum(int albumId) {
+ PreparedStatement statement = null;
+ try {
+ String sql = "select trackid,trackname,artistname,albumname,location,genre,favourite from track natural join artist natural join album WHERE albumid = ? order by trackname";
+ statement = con.prepareStatement(sql);
+ statement.setInt(1, albumId);
+ return BBGenerator.song(statement.executeQuery());
+ } catch (SQLException e) {
+
+ } finally {
+ if (statement != null) {
+ try {
+ statement.close();
+ } catch (SQLException e) {
+
+ }
+ }
+ }
+ return null;
+
+ }
+
+ public ObservableList SearchAlbum(String string) {
+ PreparedStatement statement = null;
+ try {
+ String sql = "select * from album WHERE albumname LIKE ? order by albumname";
+ statement = con.prepareStatement(sql);
+ statement.setString(1, '%' + string + '%');
+ return BBGenerator.item(statement.executeQuery());
+ } catch (Exception e) {
+ return null;
+ } finally {
+ if (statement != null) {
+ try {
+ statement.close();
+ } catch (SQLException e) {
+
+ }
+ }
+ }
+ }
+}
diff --git a/src/beatboxer/Artist.java b/src/beatboxer/Artist.java
new file mode 100644
index 0000000..774bc19
--- /dev/null
+++ b/src/beatboxer/Artist.java
@@ -0,0 +1,77 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package beatboxer;
+
+import java.sql.*;
+import javafx.collections.ObservableList;
+
+/**
+ *
+ * @author SANJAY TAYAL
+ */
+public class Artist extends CreateConnection {
+
+ public ObservableList ShowAllArtists() {
+ Statement count = null;
+ try {
+ count = con.createStatement();
+ return BBGenerator.item(count.executeQuery("Select * from artist order by artistname"));
+ } catch (SQLException e) {
+
+ } finally {
+ if (count != null) {
+ try {
+ count.close();
+ } catch (SQLException e) {
+
+ }
+ }
+ }
+ return null;
+ }
+
+ public ObservableList ShowAllTracksByArtists(int artistId) {
+ PreparedStatement statement = null;
+ try {
+ String sql = "select trackid,trackname,artistname,albumname,location,genre,favourite from track natural join artist natural join album WHERE artistid = ? order by trackname";
+ statement = con.prepareStatement(sql);
+ statement.setInt(1, artistId);
+ return BBGenerator.song(statement.executeQuery());
+ } catch (SQLException e) {
+
+ } finally {
+ if (statement != null) {
+ try {
+ statement.close();
+ } catch (SQLException e) {
+
+ }
+ }
+ }
+ return null;
+
+ }
+
+ public ObservableList SearchArtist(String string) {
+ PreparedStatement statement = null;
+ try {
+ String sql = "select * from artist WHERE artistname LIKE ? order by artistname";
+ statement = con.prepareStatement(sql);
+ statement.setString(1, '%' + string + '%');
+ return BBGenerator.item(statement.executeQuery());
+ } catch (Exception e) {
+ return null;
+ } finally {
+ if (statement != null) {
+ try {
+ statement.close();
+ } catch (SQLException e) {
+
+ }
+ }
+ }
+ }
+}
diff --git a/src/beatboxer/BBGenerator.java b/src/beatboxer/BBGenerator.java
index 686b527..3a45940 100644
--- a/src/beatboxer/BBGenerator.java
+++ b/src/beatboxer/BBGenerator.java
@@ -1,39 +1,41 @@
package beatboxer;
+
import javafx.collections.*;
import java.sql.*;
public class BBGenerator {
- public static ObservableList item(ResultSet res){
- ObservableList list = FXCollections.observableArrayList();
- try {
- while(res.next()){
- list.add(new BBItem(res.getInt(1),res.getString(2)));
- }
- } catch (SQLException e) { }
- return list;
- }
- public static ObservableList song(ResultSet res){
- ObservableList list = FXCollections.observableArrayList();
- try {
- while(res.next()){
- list.add(new BBSong(res.getInt("trackid"),res.getString("trackname"),res.getString("albumname"),res.getString("artistname"),res.getString("genre"),res.getString("location"), res.getBoolean("favourite")));
- }
-// ObservableList l = FXCollections.observableArrayList();
-// for(BBSong song : list){
-// if(! l.contains(song)){
-// l.add(song);
-// }
-// }
-// list = l;
- } catch (SQLException e) { }
- return list;
- }
- public static int find(ObservableList haystack, BBSong needle){
- for (int i = 0; i < haystack.size(); i++) {
- if(haystack.get(i).getId()==needle.getId())
- return i;
+
+ public static ObservableList item(ResultSet res) {
+ ObservableList list = FXCollections.observableArrayList();
+ try {
+ while (res.next()) {
+ list.add(new BBItem(res.getInt(1), res.getString(2)));
+ }
+ res.close();
+ } catch (SQLException e) {
+ }
+ return list;
+ }
+
+ public static ObservableList song(ResultSet res) {
+ ObservableList list = FXCollections.observableArrayList();
+ try {
+ while (res.next()) {
+ list.add(new BBSong(res.getInt("trackid"), res.getString("trackname"), res.getString("albumname"), res.getString("artistname"), res.getString("genre"), res.getString("location"), res.getBoolean("favourite")));
+ }
+ res.close();
+ } catch (SQLException e) {
+ }
+ return list;
+ }
+
+ public static int find(ObservableList haystack, BBSong needle) {
+ for (int i = 0; i < haystack.size(); i++) {
+ if (haystack.get(i).getId() == needle.getId()) {
+ return i;
}
- return -1;
}
-}
\ No newline at end of file
+ return -1;
+ }
+}
diff --git a/src/beatboxer/BBScanner.java b/src/beatboxer/BBScanner.java
index 1343c32..c999d22 100644
--- a/src/beatboxer/BBScanner.java
+++ b/src/beatboxer/BBScanner.java
@@ -12,71 +12,89 @@
import javafx.collections.ObservableList;
import org.jaudiotagger.audio.*;
import org.jaudiotagger.tag.*;
+
/**
*
* @author kunal
*/
public class BBScanner {
- private ArrayList songList=null;
+
+ private ArrayList songList = null;
private final Object obj = new Object();
private BBSong song;
- private HashMap songDetailsMap = new HashMap<>();
- public BBScanner(){
+ private HashMap songDetailsMap = new HashMap<>();
+
+ public BBScanner() {
songList = new ArrayList<>();
}
- public ArrayList scan(String directory){
+
+ public ArrayList scan(String directory) {
File dir = new File(directory);
- for(File file : dir.listFiles()){
- if(file.isDirectory()){
+ for (File file : dir.listFiles()) {
+ if (file.isDirectory()) {
scan(file.toPath().toString());
- }
- else{
- if(file.getName().toLowerCase().endsWith(".mp3")){
+ } else {
+ if (file.getName().toLowerCase().endsWith(".mp3") || file.getName().toLowerCase().endsWith(".m4a") || file.getName().toLowerCase().endsWith(".wmv")) {
songList.add(file.getPath());
}
}
}
return songList;
}
- public ArrayList scan(ArrayList dirs){
- for(String dir : dirs){
+
+ public ArrayList scan(ArrayList dirs) {
+ for (String dir : dirs) {
scan(dirs);
}
return songList;
}
- public ArrayList getList(){
+
+ public ArrayList getList() {
return songList;
}
- public void reset(){
+
+ public void reset() {
songList.clear();
-
+
}
- public static BBSong getMeta(String location){
- try{
- AudioFile a = AudioFileIO.read(new File(location));
- Tag tags = a.getTag();
- return new BBSong(-1,tags.getFirst(FieldKey.TITLE),
- tags.getFirst(FieldKey.ALBUM),
- tags.getFirst(FieldKey.ARTIST),
- tags.getFirst(FieldKey.GENRE),
- location);
- }
- catch(Exception e){
- ;
+
+ public static BBSong getMeta(String location) {
+ File file = new File(location);
+ if (!file.getName().toLowerCase().endsWith(".mp3")) {
+ location = location.replace("\\", "/");
+ int index = 0;
+ for (index = location.length() - 1;; index--) {
+ if (location.charAt(index) == '/') {
+ break;
+ }
+ }
+ return new BBSong(-1, location.substring(index + 1), "Unknown", "Unkown", "Unkown", location);
+ } else {
+ try {
+ AudioFile a = AudioFileIO.read(file);
+ Tag tags = a.getTag();
+ return new BBSong(-1, tags.getFirst(FieldKey.TITLE),
+ tags.getFirst(FieldKey.ALBUM),
+ tags.getFirst(FieldKey.ARTIST),
+ tags.getFirst(FieldKey.GENRE),
+ location);
+ } catch (Exception e) {
+ ;
+ }
}
return null;
}
- public ObservableList getMeta(ArrayList paths){
+
+ public ObservableList getMeta(ArrayList paths) {
ObservableList list = FXCollections.observableArrayList();
- try{
- for(String path: paths){
+ try {
+ for (String path : paths) {
list.add(getMeta(path));
}
- }
- catch (Exception e){
+ } catch (Exception e) {
;
}
return list;
}
-
+
}
diff --git a/src/beatboxer/BeatBoxer.java b/src/beatboxer/BeatBoxer.java
index 594fb9e..19b826c 100644
--- a/src/beatboxer/BeatBoxer.java
+++ b/src/beatboxer/BeatBoxer.java
@@ -22,22 +22,25 @@
import javafx.stage.DirectoryChooser;
import javafx.stage.Stage;
import javafx.util.Duration;
+
/**
*
* @author kunal
*/
public class BeatBoxer extends Application {
+
public static MediaPlayer mediaPlayer;
public static ObservableList nowPlaying;
- public static boolean autoPlay=false;
- public static int currentIndex=0;
+ public static boolean autoPlay = false;
+ public static int currentIndex = 0;
public static StringProperty state;
public static BBSong defaultSong;
public static Timeline timer;
public static double volume;
+
@Override
public void start(Stage stage) throws Exception {
- state= new SimpleStringProperty("Unknown");
+ state = new SimpleStringProperty("Unknown");
nowPlaying = FXCollections.observableArrayList();
defaultSong = new BBSong(1, "", "", "", "", "0.mp3");
nowPlaying.add(defaultSong);
@@ -47,120 +50,126 @@ public void start(Stage stage) throws Exception {
scene.getStylesheets().add(getClass().getResource("stylesheet.css").toExternalForm());
stage.setScene(scene);
stage.setTitle("BeatBoxer");
- stage.getIcons().add(new Image(BeatBoxer.class.getResourceAsStream( "images/BeatBoxer.png" )));
+ stage.getIcons().add(new Image(BeatBoxer.class.getResourceAsStream("images/BeatBoxer.png")));
stage.show();
// mediaPlayer.play();
- state.addListener(new ChangeListener(){
+ state.addListener(new ChangeListener() {
@Override
public void changed(ObservableValue extends String> observable, String oldValue, String newValue) {
- if(newValue.equals("autoPlayNext")){
+ if (newValue.equals("autoPlayNext")) {
// playNext();
- if(currentIndex==nowPlaying.size()-1){
- BBSong song = (nowPlaying.get(0));
- play(song);
- if(!autoPlay)
- mediaPlayer.pause();
- currentIndex=0;
- }
- else{
- BBSong song = (nowPlaying.get(++currentIndex));
- play(song);
+ if (currentIndex == nowPlaying.size() - 1) {
+ BBSong song = (nowPlaying.get(0));
+ play(song);
+ if (!autoPlay) {
+ mediaPlayer.pause();
}
- }
- else if(newValue.equals("EOF")){
+ currentIndex = 0;
+ } else {
+ BBSong song = (nowPlaying.get(++currentIndex));
+ play(song);
+ }
+ } else if (newValue.equals("EOF")) {
mediaPlayer.stop();
}
-
+
}
-
+
});
}
- public static void play(){
- if(mediaPlayer.getStatus().equals(MediaPlayer.Status.PLAYING)){
+
+ public static void play() {
+ if (mediaPlayer.getStatus().equals(MediaPlayer.Status.PLAYING)) {
mediaPlayer.pause();
- }
- else {
+ } else {
mediaPlayer.play();
}
}
- public static void playNext(){
- if(currentIndex==nowPlaying.size()-1){
- if(autoPlay){
+
+ public static void playNext() {
+ if (currentIndex == nowPlaying.size() - 1) {
+ if (autoPlay) {
BBSong song = nowPlaying.get(0);
- currentIndex=0;
+ currentIndex = 0;
// System.out.println("a");
play(song);
// System.out.println("b");
- }
- else
+ } else {
mediaPlayer.stop();
- }
- else{
+ }
+ } else {
currentIndex++;
BBSong song = nowPlaying.get(currentIndex);
play(song);
}
}
-
-
-
- public static void play(BBSong track){
- mediaPlayer.dispose();
- mediaPlayer = toMediaPlayer(track.getLocation());
- initMediaPlayer();
- currentIndex = BBGenerator.find(nowPlaying, track);
- mediaPlayer.setVolume(volume);
- mediaPlayer.play();
+
+ public static void play(BBSong track) {
+ if (new File(track.getLocation()).exists()) {
+ mediaPlayer.dispose();
+ mediaPlayer = toMediaPlayer(track.getLocation());
+ initMediaPlayer();
+ currentIndex = BBGenerator.find(nowPlaying, track);
+ mediaPlayer.setVolume(volume);
+ mediaPlayer.play();
+ } else {
+ Track t = new Track();
+ t.DeleteTrack(track.getId());
+ nowPlaying.remove(track);
+ play(nowPlaying.get(currentIndex));
+ }
}
- public static void initMediaPlayer(){
+
+ public static void initMediaPlayer() {
mediaPlayer.currentTimeProperty().addListener(BeatBoxerController.currentTimePropertyListener);
mediaPlayer.totalDurationProperty().addListener(BeatBoxerController.totalDurationPropertyListener);
- mediaPlayer.seek(Duration.ZERO);
+ mediaPlayer.seek(Duration.ZERO);
mediaPlayer.statusProperty().addListener(BeatBoxerController.statusPropertyListener);
}
- public static void hey(){
- System.out.println("YOLO");
- }
- public static Media toMedia(String URI){
+
+ public static Media toMedia(String URI) {
return (new Media(new File(URI).toURI().toString()));
}
- public static Media toMedia(BBSong song){
+
+ public static Media toMedia(BBSong song) {
return (toMedia(song.getLocation()));
}
- public static MediaPlayer toMediaPlayer(String URI){
+
+ public static MediaPlayer toMediaPlayer(String URI) {
return new MediaPlayer(toMedia(URI));
}
- public static MediaPlayer toMediaPlayer(BBSong song){
+
+ public static MediaPlayer toMediaPlayer(BBSong song) {
return toMediaPlayer(song.getLocation());
}
- public static String getDirectory(){
+
+ public static String getDirectory() {
DirectoryChooser chooser = new DirectoryChooser();
chooser.setTitle("JavaFX Projects");
-
+
File defaultDirectory = new File("/");
chooser.setInitialDirectory(defaultDirectory);
File selectedDirectory = chooser.showDialog(new Stage());
- try{
+ try {
String path = selectedDirectory.getAbsolutePath();
return path;
- }
- catch(Exception e){
+ } catch (Exception e) {
return "";
}
}
+
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
- try{
+ try {
DataBase db = new DataBase();
db.CreateDataBase();
- }
- catch(Exception e){
+ } catch (Exception e) {
;
}
launch(args);
System.exit(0);
}
-
+
}
diff --git a/src/beatboxer/BeatBoxerController.java b/src/beatboxer/BeatBoxerController.java
index 5a173af..f7061ba 100644
--- a/src/beatboxer/BeatBoxerController.java
+++ b/src/beatboxer/BeatBoxerController.java
@@ -5,8 +5,6 @@
*/
package beatboxer;
-import com.sun.deploy.uitoolkit.impl.fx.HostServicesFactory;
-import com.sun.javafx.application.HostServicesDelegate;
import java.awt.Desktop;
import java.io.IOException;
import java.net.URI;
@@ -135,10 +133,12 @@ private void search() {
return;
}
try {
- Search se = new Search();
- songListView.setItems(se.SearchTrack(searchString));
- albumListView.setItems(se.SearchAlbum(searchString));
- artistListView.setItems(se.SearchArtist(searchString));
+ Track track = new Track();
+ Album album = new Album();
+ Artist artist = new Artist();
+ songListView.setItems(track.SearchTrack(searchString));
+ albumListView.setItems(album.SearchAlbum(searchString));
+ artistListView.setItems(artist.SearchArtist(searchString));
} catch (Exception e) {
;
}
@@ -147,13 +147,13 @@ private void search() {
@FXML
private void favourite() {
try {
- Favourites f = new Favourites();
+ Track track = new Track();
BBSong song = getCurrentSong();
song.setFavourite(!song.isFavourite());
if (!song.isFavourite()) {
- f.unfavourite(song.getId());
+ track.unfavourite(song.getId());
} else {
- f.favourite(song.getId());
+ track.favourite(song.getId());
}
BeatBoxer.nowPlaying.set(BeatBoxer.currentIndex, song);
@@ -193,8 +193,8 @@ private void editItem() {
nowPlayingListView.setItems(BeatBoxer.nowPlaying);
}
try {
- Show show = new Show();
- ObservableList songList = show.ShowAllTracks();
+ Track track = new Track();
+ ObservableList songList = track.ShowAllTracks();
allsongsListView.setItems(songList);
} catch (Exception e) {
;
@@ -222,10 +222,10 @@ private void editItem() {
stager.setTitle("Modify Playlist : " + selectedPlayList.getName());
stager.showAndWait();
playlistListView.setItems(null);
- playlistListView.setItems(new Show().ShowAllPlayLists());
+ playlistListView.setItems(new PlayList().ShowAllPlayLists());
}
} catch (Exception e) {
- System.out.println("Hello");;
+ ;
}
}
@@ -245,9 +245,9 @@ private void deleteItem() throws Exception {
}
selectedSong = allsongsListView.getSelectionModel().getSelectedItem();
}
- boolean rightNow=false;
- if(BeatBoxer.nowPlaying.get(BeatBoxer.currentIndex).equals(selectedSong)){
- rightNow=true;
+ boolean rightNow = false;
+ if (BeatBoxer.nowPlaying.get(BeatBoxer.currentIndex).equals(selectedSong)) {
+ rightNow = true;
}
FXMLLoader loader = new FXMLLoader(getClass().getResource("ItemDeleter.fxml"));
Parent itemDeleterRoot = (Parent) loader.load();
@@ -258,17 +258,17 @@ private void deleteItem() throws Exception {
stager.setScene(songEditor);
stager.setTitle("Delete Song : " + selectedSong.getName());
stager.showAndWait();
- if(!BeatBoxer.nowPlaying.contains(selectedSong) && rightNow){
+ if (!BeatBoxer.nowPlaying.contains(selectedSong) && rightNow) {
setVolumeValue(BeatBoxer.nowPlaying.get(BeatBoxer.currentIndex).getGenre());
}
- if (new Show().ShowAllTracks().size() == 0 || BeatBoxer.nowPlaying.size() == 0) {
+ if (new Track().ShowAllTracks().size() == 0 || BeatBoxer.nowPlaying.size() == 0) {
refresh();
}
nowPlayingListView.setItems(BeatBoxer.nowPlaying);
- allsongsListView.setItems(new Show().ShowAllTracks());
+ allsongsListView.setItems(new Track().ShowAllTracks());
try {
- Show show = new Show();
- ObservableList songList = show.ShowAllTracks();
+ Track track = new Track();
+ ObservableList songList = track.ShowAllTracks();
allsongsListView.setItems(songList);
} catch (Exception e) {
;
@@ -291,7 +291,7 @@ private void deleteItem() throws Exception {
stager.setTitle("Delete Playlist : " + selectedPlayList.getName());
stager.showAndWait();
playlistListView.setItems(null);
- playlistListView.setItems(new Show().ShowAllPlayLists());
+ playlistListView.setItems(new PlayList().ShowAllPlayLists());
}
}
@@ -305,7 +305,7 @@ private void createPlaylist() {
stager.setScene(createPlaylist);
stager.setTitle("Create a new Playlist");
stager.showAndWait();
- playlistListView.setItems(new Show().ShowAllPlayLists());
+ playlistListView.setItems(new PlayList().ShowAllPlayLists());
} catch (Exception e) {
;
}
@@ -382,15 +382,15 @@ private void showHelp() {
}
public void playAll() { //play All Songs
- Show show = new Show();
- ObservableList allSongs = show.ShowAllTracks();
+ Track track = new Track();
+ ObservableList allSongs = track.ShowAllTracks();
BeatBoxer.nowPlaying.setAll(allSongs);
}
public void playAlbum(BBItem album) {
try {
- Show sh = new Show();
- ObservableList songList = sh.ShowAllTracksinAlbum(album.getId());
+ Album al = new Album();
+ ObservableList songList = al.ShowAllTracksinAlbum(album.getId());
BeatBoxer.nowPlaying.setAll(songList);
for (BBSong song : songList) {
// System.out.println(song);
@@ -411,8 +411,8 @@ public void playAlbum(BBItem album) {
public void playArtist(BBItem artist) {
try {
- Show sh = new Show();
- ObservableList songList = sh.ShowAllTracksByArtists(artist.getId());
+ Artist at = new Artist();
+ ObservableList songList = at.ShowAllTracksByArtists(artist.getId());
BeatBoxer.nowPlaying.setAll(songList);
nowPlayingListView.setDisable(false);
disablePlayGroup(false);
@@ -465,10 +465,10 @@ private void refresh() {
ObservableList playLists = FXCollections.observableArrayList();
// playLists.add(new BBItem(0, "All Songs"));
// playLists.add(new BBItem(-1, "Favourites"));
- playLists.addAll(new Show().ShowAllPlayLists());
- Show show = new Show();
- ObservableList songList = show.ShowAllTracks();
- if (songList.size() == 0) {
+ playLists.addAll(new PlayList().ShowAllPlayLists());
+ Track track = new Track();
+ ObservableList songList = track.ShowAllTracks();
+ if (songList.isEmpty()) {
allsongsListView.setDisable(true);
playlistListView.setDisable(true);
}
@@ -483,33 +483,38 @@ private void refresh() {
}
public void playPlaylist(BBItem playlist) {
- if (playlist.getId() == 0) {
- playAll();
- } else if (playlist.getId() == -1) {
- try {
- Show sh = new Show();
- nowPlayingListView.setItems(sh.ShowAllFavourites());
- BeatBoxer.nowPlaying = sh.ShowAllFavourites();
- } catch (Exception e) {
- ;
- }
- } else if (playlist.getId() == -2) {
- try {
- Show sh = new Show();
- nowPlayingListView.setItems(sh.ShowRecentlyAdded());
- BeatBoxer.nowPlaying = sh.ShowRecentlyAdded();
- } catch (Exception e) {
- ;
- }
- } else {
- try {
- Show sh = new Show();
- ObservableList l = sh.ShowAllTracksinPlayList(playlist.getId());
- nowPlayingListView.setItems(l);
- BeatBoxer.nowPlaying = l;
- } catch (Exception e) {
- ;
- }
+ switch (playlist.getId()) {
+ case 0:
+ playAll();
+ break;
+ case -1:
+ try {
+ Track track = new Track();
+ nowPlayingListView.setItems(track.ShowAllFavourites());
+ BeatBoxer.nowPlaying = track.ShowAllFavourites();
+ } catch (Exception e) {
+ ;
+ }
+ break;
+ case -2:
+ try {
+ Track track = new Track();
+ nowPlayingListView.setItems(track.ShowRecentlyAdded());
+ BeatBoxer.nowPlaying = track.ShowRecentlyAdded();
+ } catch (Exception e) {
+ ;
+ }
+ break;
+ default:
+ try {
+ PlayList pl = new PlayList();
+ ObservableList l = pl.ShowAllTracksinPlayList(playlist.getId());
+ nowPlayingListView.setItems(l);
+ BeatBoxer.nowPlaying = l;
+ } catch (Exception e) {
+ ;
+ }
+ break;
}
nowPlayingListView.setDisable(false);
disablePlayGroup(false);
@@ -561,8 +566,8 @@ public void changed(ObservableValue extends Object> observable, Object oldValu
for (MenuItem m : modeMenu.getItems()) {
m.setOnAction(e -> {
- Show sh = new Show();
- ObservableList list = sh.ShowByMode(m.getText());
+ Track track = new Track();
+ ObservableList list = track.ShowByMode(m.getText());
BeatBoxer.nowPlaying.clear();
BeatBoxer.nowPlaying.setAll(list);
nowPlayingListView.setDisable(false);
@@ -571,7 +576,7 @@ public void changed(ObservableValue extends Object> observable, Object oldValu
favouriteButton.setDisable(false);
listViewTabPane.getSelectionModel().select(0);
nowPlayingListView.setItems(BeatBoxer.nowPlaying);
- if (BeatBoxer.nowPlaying.size() == 0) {
+ if (BeatBoxer.nowPlaying.isEmpty()) {
disablePlayGroup(true);
favouriteButton.setDisable(true);
} else {
@@ -619,14 +624,13 @@ public void changed(
// bb.mediaPlayer.dispose();
// if(BeatBoxer.autoPlay){
BeatBoxer.state.setValue("autoPlayNext");
- if(BeatBoxer.currentIndex==BeatBoxer.nowPlaying.size()-1){
+ if (BeatBoxer.currentIndex == BeatBoxer.nowPlaying.size() - 1) {
BBSong song = (BeatBoxer.nowPlaying.get(0));
setVolumeValue(song.getGenre());
- }
- else{
- BBSong song = (BeatBoxer.nowPlaying.get(BeatBoxer.currentIndex+1));
+ } else {
+ BBSong song = (BeatBoxer.nowPlaying.get(BeatBoxer.currentIndex + 1));
setVolumeValue(song.getGenre());
- }
+ }
// BeatBoxer.play();
// }
// else
diff --git a/src/beatboxer/CreateConnection.java b/src/beatboxer/CreateConnection.java
index c0ef61d..7f1e538 100644
--- a/src/beatboxer/CreateConnection.java
+++ b/src/beatboxer/CreateConnection.java
@@ -8,8 +8,9 @@ public class CreateConnection {
CreateConnection() {
try {
- con = DriverManager.getConnection("jdbc:mysql://localhost:3306/beatboxer", "root", "123");
- } catch (SQLException e) {
+ Class.forName("org.sqlite.JDBC");
+ con = DriverManager.getConnection("jdbc:sqlite:beatboxer.db");
+ } catch (Exception e) {
}
}
diff --git a/src/beatboxer/CreatePlaylistController.java b/src/beatboxer/CreatePlaylistController.java
index 82bf924..ce82cd5 100644
--- a/src/beatboxer/CreatePlaylistController.java
+++ b/src/beatboxer/CreatePlaylistController.java
@@ -56,8 +56,8 @@ private void checkName(KeyEvent event) throws Exception {
ok.setDisable(true);
errorLabel.setText("");
} else {
- Show sh = new Show();
- ObservableList list = sh.ShowAllPlayLists();
+ PlayList pl = new PlayList();
+ ObservableList list = pl.ShowAllPlayLists();
for (BBItem playList : list) {
if (playList.getName().equalsIgnoreCase(newPlaylist)) {
ok.setDisable(true);
diff --git a/src/beatboxer/DataBase.java b/src/beatboxer/DataBase.java
index 8d64d93..3635316 100644
--- a/src/beatboxer/DataBase.java
+++ b/src/beatboxer/DataBase.java
@@ -2,15 +2,13 @@
import java.sql.*;
-public class DataBase {
+public class DataBase extends CreateConnection {
public void CreateDataBase() {
+ Statement statement = null;
try {
- Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306", "root", "123");
- Statement check = con.createStatement();
- check.execute("create database beatboxer");
- check.execute("use beatboxer");
- check.execute("create table track("
+ statement = con.createStatement();
+ statement.execute("create table if not exists track("
+ "trackid int primary key NOT NULL,"
+ "artistid int NOT NULL,"
+ "albumid int NOT NULL,"
@@ -18,157 +16,98 @@ public void CreateDataBase() {
+ "dateadded timestamp NOT NULL DEFAULT current_timestamp,"
+ "location varchar(500) NOT NULL UNIQUE,"
+ "genre varchar(30),"
- + "favourite boolean default false)");
- check.execute("create table artist("
+ + "favourite boolean default 0)");
+ statement.clearBatch();
+ } catch (Exception e) {
+ }
+ try {
+ statement = con.createStatement();
+ statement.execute("create table if not exists artist("
+ "artistid int primary key NOT NULL,"
+ "artistname varchar(50) NOT NULL UNIQUE)");
- check.execute("create table album("
+ statement.clearBatch();
+ } catch (Exception e) {
+ }
+ try {
+ statement = con.createStatement();
+ statement.execute("create table if not exists album("
+ "albumid int primary key NOT NULL,"
+ "albumname varchar(100) NOT NULL UNIQUE)");
- check.execute("create table directories(folderlocation varchar(500) NOT NULL UNIQUE)");
- check.execute("create table playlist("
+ statement.clearBatch();
+ } catch (Exception e) {
+ }
+ try {
+ statement = con.createStatement();
+ statement.execute("create table if not exists directories(folderlocation varchar(500) NOT NULL UNIQUE)");
+ statement.clearBatch();
+ } catch (Exception e) {
+ }
+ try {
+ statement = con.createStatement();
+ statement.execute("create table if not exists playlist("
+ "playlistid int primary key NOT NULL,"
+ "playlistname varchar(100) NOT NULL UNIQUE)");
- check.execute("create table playlistinfo("
+ statement.clearBatch();
+ } catch (Exception e) {
+ }
+ try {
+ statement = con.createStatement();
+ statement.execute("create table if not exists playlistinfo("
+ "playlistid int NOT NULL,"
+ "trackid int NOT NULL,"
+ "trackorder int NOT NULL,"
+ "primary key(playlistid, trackid))");
- check.execute("create table id(newid int, playlistid int)");
- check.execute("insert into id values(1,1)");
- check.execute("create trigger incrementidinsert after insert on track for each row update id set newid = newid + 1");
- check.execute("create trigger incrementplaylistid after insert on playlist for each row update id set playlistid = playlistid + 1");
- check.execute("create trigger deleterefresh after delete on track "
- + "for each row begin "
+ statement.clearBatch();
+ } catch (Exception e) {
+ }
+ try {
+ statement = con.createStatement();
+ statement.execute("create table id(newid int, playlistid int)");
+ statement.clearBatch();
+ statement.execute("insert into id values(1,1)");
+ statement.clearBatch();
+ } catch (Exception e) {
+ }
+ try {
+ statement = con.createStatement();
+ statement.execute("create trigger if not exists incrementidinsert after insert on track begin update id set newid = newid + 1; end;");
+ statement.clearBatch();
+ } catch (Exception e) {
+ }
+ try {
+ statement = con.createStatement();
+ statement.execute("create trigger if not exists incrementplaylistid after insert on playlist begin update id set playlistid = playlistid + 1; end;");
+ statement.clearBatch();
+ } catch (Exception e) {
+ }
+ try {
+ statement = con.createStatement();
+ statement.execute("create trigger if not exists deleterefresh after delete on track "
+ + "begin "
+ "delete from album where albumid not in (select distinct albumid from track); "
+ "delete from artist where artistid not in (select distinct artistid from track); "
- + "end");
- check.execute("create trigger updaterefresh after update on track "
- + "for each row begin "
+ + "end;");
+ statement.clearBatch();
+ } catch (Exception e) {
+ }
+ try {
+ statement = con.createStatement();
+ statement.execute("create trigger if not exists updaterefresh after update on track "
+ + "begin "
+ "delete from album where albumid not in (select distinct albumid from track); "
+ "delete from artist where artistid not in (select distinct artistid from track); "
+ "update id set newid = newid + 1;"
- + "end");
-
- check.execute("CREATE PROCEDURE addtrack(in trackname varchar(50),in artistname varchar(50),in albumname varchar(100),in location varchar(500),in genre varchar(30)) "
- + "begin "
- + "declare artistid int; "
- + "declare albumid int; "
- + "declare trackid int; "
- + "set trackid = (select newid from id); "
- + "set artistid = searchartist(artistname); "
- + "set albumid = searchalbum(albumname); "
- + "if (artistid = -1) then "
- + " set artistid = (select newid from id); "
- + " insert into artist values (artistid, artistname); "
- + "end if; "
- + "if (albumid = -1) then "
- + " set albumid = (select newid from id); "
- + " insert into album values (albumid, albumname); "
- + "end if; "
- + "insert into track(trackid,artistid,albumid,trackname,location,genre) values(trackid,artistid,albumid,trackname,location,genre); "
- + "end");
- check.execute("CREATE PROCEDURE adddirectory(in location varchar(500)) "
- + "BEGIN "
- + "insert into directories values (location); "
- + "END");
- check.execute("CREATE PROCEDURE deletedirectory(in location varchar(500)) "
- + "BEGIN "
- + "delete from playlistinfo where playlistinfo.trackid in (select track.trackid from track where track.location like concat(location, '%'));"
- + "delete from track where track.location like concat(location, '%'); "
- + "delete from directories where folderlocation = location; "
- + "END");
- check.execute("CREATE PROCEDURE movetrack(in pid int, in tid int, in direction int) "
- + "BEGIN "
- + "declare swaptid int; "
- + "declare torder int; "
- + "set torder = (select trackorder from playlistinfo where playlistid = pid and trackid = tid); "
- + "if(direction = 0) then "
- + " set swaptid = (select trackid from playlistinfo where playlistid = pid and trackorder = torder - 1); "
- + " update playlistinfo set trackorder = torder where playlistid = pid and trackid = swaptid; "
- + " update playlistinfo set trackorder = torder - 1 where playlistid = pid and trackid = tid; "
- + "else "
- + " set swaptid = (select trackid from playlistinfo where playlistid = pid and trackorder = torder + 1); "
- + " update playlistinfo set trackorder = torder where playlistid = pid and trackid = swaptid; "
- + " update playlistinfo set trackorder = torder + 1 where playlistid = pid and trackid = tid; "
- + "end if; "
- + "END");
- check.execute("CREATE PROCEDURE addtracktoplaylist(in pid int,in tid int) "
- + "BEGIN "
- + "declare torder int; "
- + "set torder = (select count(*) from playlistinfo where playlistid=pid); "
- + "set torder = torder + 1; "
- + "insert into playlistinfo values(pid,tid,torder); "
- + "END");
- check.execute("CREATE PROCEDURE createplaylist(in PlaylistName varchar(100)) "
- + "BEGIN "
- + "declare pid int; "
- + "set pid = (select playlistid from id); "
- + "insert into playlist values(pid,PlaylistName); "
- + "END");
- check.execute("CREATE PROCEDURE deletefromplaylist(in pid int,in tid int) "
- + "BEGIN "
- + "declare torder int; "
- + "set torder=(select trackorder from playlistinfo where playlistid=pid and trackid=tid); "
- + "delete from playlistinfo where playlistid=pid and trackid=tid; "
- + "update playlistinfo set trackorder=trackorder-1 where playlistid=pid and trackorder>torder; "
- + "END");
- check.execute("CREATE PROCEDURE deleteplaylist(in pid int) "
- + "BEGIN "
- + "delete from playlist where playlistid=pid; "
- + "delete from playlistinfo where playlistid=pid; "
- + "END");
- check.execute("CREATE PROCEDURE deletetrack(in TrackId int) "
- + "BEGIN "
- + "delete from track where track.trackid=TrackId; "
- + "delete from playlistinfo where playlistinfo.trackid=TrackId; "
- + "END");
- check.execute("CREATE PROCEDURE favourite(in TrackId int) "
- + "BEGIN "
- + "update track set favourite=True where track.trackid=TrackId; "
- + "END");
- check.execute("CREATE PROCEDURE unfavourite(in TrackId int) "
- + "BEGIN "
- + "update track set favourite=false where track.trackid=TrackId; "
- + "END");
- check.execute("CREATE PROCEDURE updatetrack(in TrackId int,in newtrack varchar(50),in newartist varchar(50),in newalbum varchar(100),in newgenre varchar(30)) "
- + "BEGIN "
- + "declare ArtistId int; "
- + "declare AlbumId int; "
- + "set ArtistId=searchartist(newartist); "
- + "set AlbumId=searchalbum(newalbum); "
- + "if (ArtistId = -1) then "
- + " set ArtistId=(select newid from id); "
- + " insert into artist values (ArtistId,newartist); "
- + "end if; "
- + "if (AlbumId = -1) then "
- + " set AlbumId = (select newid from id); "
- + " insert into album values (AlbumId,newalbum); "
- + "end if; "
- + "update track set trackname = newtrack,genre = newgenre,track.artistid = ArtistId,track.albumid = AlbumId where track.trackid = TrackId; "
- + "END");
- check.execute("CREATE FUNCTION searchartist(name varchar(50)) RETURNS int(11) "
- + "BEGIN "
- + "declare id int; "
- + "set id = (select artistid from artist where artistname = name); "
- + "if (id > 0) then return id; "
- + "end if; "
- + "RETURN -1; "
- + "END");
- check.execute("CREATE FUNCTION searchalbum(name varchar(100)) RETURNS int(11) "
- + "BEGIN "
- + "declare id int; "
- + "set id = (select albumid from album where albumname = name); "
- + "if (id > 0) then return id; "
- + "end if; "
- + "RETURN -1; "
- + "END");
- check.execute("CREATE PROCEDURE updateplaylist(in pid int, in newname varchar(50)) "
- + "BEGIN "
- + "update playlist set playlistname = newname where playlistid = pid; "
- + "END");
+ + "end;");
+ statement.clearBatch();
} catch (Exception e) {
+ } finally {
+ if (statement != null) {
+ try {
+ statement.close();
+ } catch (SQLException e) {
+ }
+ }
}
}
}
diff --git a/src/beatboxer/Delete.java b/src/beatboxer/Delete.java
deleted file mode 100644
index 361a6fb..0000000
--- a/src/beatboxer/Delete.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package beatboxer;
-
-import java.sql.*;
-
-public class Delete extends CreateConnection {
-
- public void deleteTrack(int TrackId) {
- try {
- PreparedStatement statement = con.prepareStatement("call deletetrack(?)");
- statement.setInt(1, TrackId);
- statement.executeUpdate();
- } catch (SQLException e) {
-
- }
-
- }
-}
diff --git a/src/beatboxer/Directory.java b/src/beatboxer/Directory.java
index e7b9cd4..7815c72 100644
--- a/src/beatboxer/Directory.java
+++ b/src/beatboxer/Directory.java
@@ -6,36 +6,72 @@
public class Directory extends CreateConnection {
public void add(String Location) {
+ PreparedStatement statement = null;
try {
- PreparedStatement statement = con.prepareStatement("call adddirectory(?)");
+ statement = con.prepareStatement("insert into directories(folderlocation) values(?)");
statement.setString(1, Location.replace("\\", "/"));
- statement.executeUpdate();
+ statement.execute();
} catch (SQLException e) {
+ } finally {
+ if (statement != null) {
+ try {
+ statement.close();
+ } catch (SQLException e) {
+ }
+ }
}
}
public void delete(String Location) {
+ Location = Location.replace("\\", "/");
+ PreparedStatement statement = null;
try {
- PreparedStatement statement = con.prepareStatement("call deletedirectory(?)");
- statement.setString(1, Location.replace("\\", "/"));
- statement.executeUpdate();
+ statement = con.prepareStatement("delete from playlistinfo where playlistinfo.trackid in (select track.trackid from track where track.location like ?)");
+ statement.setString(1, Location + '%');
+ statement.execute();
+ statement.clearBatch();
+ statement = con.prepareStatement("delete from track where track.location like ?");
+ statement.setString(1, Location + '%');
+ statement.execute();
+ statement.clearBatch();
+ statement = con.prepareStatement("delete from directories where folderlocation = ?");
+ statement.setString(1, Location);
+ statement.execute();
+ statement.clearBatch();
} catch (SQLException e) {
+ } finally {
+ if (statement != null) {
+ try {
+ statement.close();
+ } catch (SQLException e) {
+ }
+ }
}
}
public ArrayList Show() {
ArrayList list = new ArrayList();
+ Statement statement = null;
try {
- Statement statement = con.createStatement();
+ statement = con.createStatement();
ResultSet res = statement.executeQuery("select * from directories");
while (res.next()) {
list.add(res.getString("folderlocation"));
}
+ res.close();
return list;
} catch (SQLException e) {
+ } finally {
+ if (statement != null) {
+ try {
+ statement.close();
+ } catch (SQLException e) {
+
+ }
+ }
}
return null;
}
diff --git a/src/beatboxer/Favourites.java b/src/beatboxer/Favourites.java
deleted file mode 100644
index b89d4e4..0000000
--- a/src/beatboxer/Favourites.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package beatboxer;
-
-import java.sql.*;
-
-public class Favourites extends CreateConnection {
-
- public void favourite(int trackid) {
- try {
- PreparedStatement statement = con.prepareStatement("call favourite(?)");
- statement.setInt(1, trackid);
- statement.execute();
- } catch (SQLException e) {
-
- }
- }
-
- public void unfavourite(int trackid) {
- try {
- PreparedStatement statement = con.prepareStatement("call unfavourite(?)");
- statement.setInt(1, trackid);
- statement.execute();
- } catch (SQLException e) {
-
- }
- }
-}
diff --git a/src/beatboxer/FolderChooserController.java b/src/beatboxer/FolderChooserController.java
index 666ec4e..651c9d6 100644
--- a/src/beatboxer/FolderChooserController.java
+++ b/src/beatboxer/FolderChooserController.java
@@ -101,7 +101,7 @@ private void scanNow(){
pathList = scanner.getList();
songList = scanner.getMeta(pathList);
for(BBSong song : songList){
- new AddTrack(song.getName(), song.getArtist(), song.getAlbum(), song.getLocation(), song.getGenre());
+ new Track().AddTrack(song.getName(), song.getArtist(), song.getAlbum(), song.getLocation(), song.getGenre());
}
} catch (Exception e) {
;
diff --git a/src/beatboxer/ItemDeleterController.java b/src/beatboxer/ItemDeleterController.java
index bb69625..99af8d5 100644
--- a/src/beatboxer/ItemDeleterController.java
+++ b/src/beatboxer/ItemDeleterController.java
@@ -5,6 +5,7 @@
*/
package beatboxer;
+import java.io.File;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
@@ -40,57 +41,59 @@ public class ItemDeleterController implements Initializable {
@Override
public void initialize(URL url, ResourceBundle rb) {
// TODO
- }
- public void initSong(BBSong song){
+ }
+
+ public void initSong(BBSong song) {
isSong = true;
this.song = song;
detailsLabel.setText(detailsLabel.getText() + " song ?\n" + song.getName() + " by " + song.getArtist());
}
- public void initPlayList(BBItem playList){
+
+ public void initPlayList(BBItem playList) {
isSong = false;
this.playList = playList;
detailsLabel.setText(detailsLabel.getText() + " playlist ?\n" + playList.getName());
}
+
@FXML
private void cancel(ActionEvent event) {
Stage currentStage = (Stage) cancel.getScene().getWindow();
- currentStage.close();
+ currentStage.close();
}
@FXML
private void okExecute(ActionEvent event) {
- try{
- if(isSong){
- Delete d = new Delete();
- d.deleteTrack(song.getId());
- if(BeatBoxer.nowPlaying.size()==1 && BeatBoxer.nowPlaying.contains(song)){
+ try {
+ if (isSong) {
+ Track track = new Track();
+ track.DeleteTrack(song.getId());
+ System.out.println(song.getLocation());
+ File file = new File(song.getLocation());
+ file.delete();
+ if (BeatBoxer.nowPlaying.size() == 1 && BeatBoxer.nowPlaying.contains(song)) {
BeatBoxer.play(BeatBoxer.defaultSong);
BeatBoxer.mediaPlayer.stop();
- }
- else if (new Show().ShowAllTracks().size()==0){
+ } else if (new Track().ShowAllTracks().isEmpty()) {
BeatBoxer.play(BeatBoxer.defaultSong);
BeatBoxer.mediaPlayer.stop();
- }
- else if(BeatBoxer.nowPlaying.get(BeatBoxer.currentIndex).equals(song)){
+ } else if (BeatBoxer.nowPlaying.get(BeatBoxer.currentIndex).equals(song)) {
int size = BeatBoxer.nowPlaying.size();
- BeatBoxer.play(BeatBoxer.nowPlaying.get((BeatBoxer.currentIndex + 1)%size));
+ BeatBoxer.play(BeatBoxer.nowPlaying.get((BeatBoxer.currentIndex + 1) % size));
}
- if(BeatBoxer.nowPlaying.contains(song)){
+ if (BeatBoxer.nowPlaying.contains(song)) {
BBSong newSong = BeatBoxer.nowPlaying.get(BeatBoxer.currentIndex);
BeatBoxer.nowPlaying.remove(song);
BeatBoxer.currentIndex = BBGenerator.find(BeatBoxer.nowPlaying, newSong);
}
- }
- else{
+ } else {
PlayList d = new PlayList();
d.delete(playList.getId());
}
cancel(new ActionEvent());
+ } catch (Exception e) {
+
}
- catch(Exception e){
-
- }
-
+
}
-
+
}
diff --git a/src/beatboxer/PlayList.java b/src/beatboxer/PlayList.java
index c0df03b..3396afb 100644
--- a/src/beatboxer/PlayList.java
+++ b/src/beatboxer/PlayList.java
@@ -1,37 +1,245 @@
package beatboxer;
import java.sql.*;
+import javafx.collections.FXCollections;
+import javafx.collections.ObservableList;
public class PlayList extends CreateConnection {
public void create(String playlistname) {
+ Statement st = null;
+ PreparedStatement statement = null;
try {
- PreparedStatement statement = con.prepareStatement("call createplaylist(?)");
- statement.setString(1, playlistname);
+ st = con.createStatement();
+ ResultSet res = st.executeQuery("select playlistid from id");
+ res.next();
+ int pid = res.getInt("playlistid");
+ res.close();
+ statement = con.prepareStatement("insert into playlist(playlistid,playlistname) values(?,?)");
+ statement.setInt(1, pid);
+ statement.setString(2, playlistname.trim());
statement.execute();
} catch (Exception e) {
+ } finally {
+ if (st != null) {
+ try {
+ st.close();
+ } catch (SQLException e) {
+
+ }
+ }
+ if (statement != null) {
+ try {
+ statement.close();
+ } catch (SQLException e) {
+
+ }
+ }
}
}
public void delete(int playlistid) {
+ PreparedStatement statement = null;
try {
- PreparedStatement statement = con.prepareStatement("call deleteplaylist(?)");
+ statement = con.prepareStatement("delete from playlist where playlistid = ?");
+ statement.setInt(1, playlistid);
+ statement.execute();
+ statement.clearBatch();
+ statement = con.prepareStatement("delete from playlistinfo where playlistid =?");
statement.setInt(1, playlistid);
statement.execute();
} catch (SQLException e) {
+ } finally {
+ if (statement != null) {
+ try {
+ statement.close();
+ } catch (SQLException e) {
+
+ }
+ }
}
}
public void update(int playlistid, String newname) {
+ PreparedStatement statement = null;
+ try {
+ statement = con.prepareStatement("update playlist set playlistname = ? where playlistid = ?");
+ statement.setString(1, newname);
+ statement.setInt(2, playlistid);
+ statement.execute();
+ } catch (SQLException e) {
+
+ } finally {
+ if (statement != null) {
+ try {
+ statement.close();
+ } catch (SQLException e) {
+
+ }
+ }
+ }
+ }
+
+ public void addtrack(int playlistid, int trackid) {
+ PreparedStatement statement = null;
+ try {
+ statement = con.prepareStatement("select count(*) from playlistinfo where playlistid = ?");
+ statement.setInt(1, playlistid);
+ ResultSet res = statement.executeQuery();
+ res.next();
+ int torder = res.getInt(1);
+ res.close();
+ statement.clearBatch();
+ statement = con.prepareStatement("insert into playlistinfo(playlistid,trackid,trackorder) values (?,?,?)");
+ statement.setInt(1, playlistid);
+ statement.setInt(2, trackid);
+ statement.setInt(3, torder + 1);
+ statement.execute();
+ } catch (SQLException e) {
+
+ } finally {
+ if (statement != null) {
+ try {
+ statement.close();
+ } catch (SQLException e) {
+
+ }
+ }
+ }
+ }
+
+ public void deletetrack(int playlistid, int trackid) {
+ PreparedStatement statement = null;
try {
- String sql = "call updateplaylist(?,?)";
- PreparedStatement statement = con.prepareStatement(sql);
+ statement = con.prepareStatement("delete from playlistinfo where playlistid=? and trackid=?");
statement.setInt(1, playlistid);
- statement.setString(2, newname);
+ statement.setInt(2, trackid);
statement.execute();
} catch (SQLException e) {
+ } finally {
+ if (statement != null) {
+ try {
+ statement.close();
+ } catch (SQLException e) {
+
+ }
+ }
+ }
+ }
+
+ public void move(int playlistid, int trackid, String direction) {
+ PreparedStatement statement = null;
+ try {
+ statement = con.prepareStatement("select trackorder from playlistinfo where playlistid = ? and trackid = ?");
+ statement.setInt(1, playlistid);
+ statement.setInt(2, trackid);
+ ResultSet res = statement.executeQuery();
+ res.next();
+ int torder = res.getInt("trackorder");
+ res.close();
+ statement.clearBatch();
+ int swaptid, torder1;
+ if (direction.equals("up")) {
+ statement = con.prepareStatement("select trackid, trackorder from playlistinfo where playlistid = ? and trackorder < ? order by trackorder desc limit 1");
+ statement.setInt(1, playlistid);
+ statement.setInt(2, torder);
+ res = statement.executeQuery();
+ res.next();
+ swaptid = res.getInt("trackid");
+ torder1 = res.getInt("trackorder");
+ res.close();
+ statement.clearBatch();
+ statement = con.prepareStatement("update playlistinfo set trackorder = ? where playlistid = ? and trackid = ?");
+ statement.setInt(1, torder);
+ statement.setInt(2, playlistid);
+ statement.setInt(3, swaptid);
+ statement.execute();
+ statement.clearBatch();
+ statement = con.prepareStatement("update playlistinfo set trackorder = ? where playlistid = ? and trackid = ?");
+ statement.setInt(1, torder1);
+ statement.setInt(2, playlistid);
+ statement.setInt(3, trackid);
+ statement.execute();
+ } else {
+ statement = con.prepareStatement("select trackid, trackorder from playlistinfo where playlistid = ? and trackorder > ? order by trackorder limit 1");
+ statement.setInt(1, playlistid);
+ statement.setInt(2, torder);
+ res = statement.executeQuery();
+ res.next();
+ swaptid = res.getInt("trackid");
+ torder1 = res.getInt("trackorder");
+ res.close();
+ statement.clearBatch();
+ statement = con.prepareStatement("update playlistinfo set trackorder = ? where playlistid = ? and trackid = ?");
+ statement.setInt(1, torder);
+ statement.setInt(2, playlistid);
+ statement.setInt(3, swaptid);
+ statement.execute();
+ statement.clearBatch();
+ statement = con.prepareStatement("update playlistinfo set trackorder = ? where playlistid = ? and trackid = ?");
+ statement.setInt(1, torder1);
+ statement.setInt(2, playlistid);
+ statement.setInt(3, trackid);
+ statement.execute();
+ }
+ } catch (SQLException e) {
+
+ } finally {
+ if (statement != null) {
+ try {
+ statement.close();
+ } catch (SQLException e) {
+
+ }
+ }
+ }
+ }
+
+ public ObservableList ShowAllPlayLists() {
+ Statement count = null;
+ try {
+ count = con.createStatement();
+ String sql = "Select * from playlist order by playlistname";
+ ObservableList list = FXCollections.observableArrayList();
+ list.add(new BBItem(0, "All Songs"));
+ list.add(new BBItem(-1, "Favourites"));
+ list.add(new BBItem(-2, "Recently Added"));
+ list.addAll(BBGenerator.item(count.executeQuery(sql)));
+ return list;
+ } catch (SQLException e) {
+
+ } finally {
+ if (count != null) {
+ try {
+ count.close();
+ } catch (SQLException e) {
+
+ }
+ }
+ }
+ return null;
+ }
+
+ public ObservableList ShowAllTracksinPlayList(int playlistid) {
+ PreparedStatement tracks = null;
+ try {
+ String sql = "select trackid,trackname,artistname,albumname,location,genre,favourite from track natural join artist natural join album natural join playlistinfo where playlistid = ? order by trackorder";
+ tracks = con.prepareStatement(sql);
+ tracks.setInt(1, playlistid);
+ return BBGenerator.song(tracks.executeQuery());
+ } catch (SQLException e) {
+
+ } finally {
+ if (tracks != null) {
+ try {
+ tracks.close();
+ } catch (SQLException e) {
+
+ }
+ }
}
+ return null;
}
}
diff --git a/src/beatboxer/PlayListInfo.java b/src/beatboxer/PlayListInfo.java
deleted file mode 100644
index 8ed95d5..0000000
--- a/src/beatboxer/PlayListInfo.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package beatboxer;
-
-import java.sql.*;
-
-public class PlayListInfo extends CreateConnection {
-
- public void addtrack(int playlistid, int trackid) {
- try {
- PreparedStatement statement = con.prepareStatement("call addtracktoplaylist(?,?)");
- statement.setInt(1, playlistid);
- statement.setInt(2, trackid);
- statement.execute();
- } catch (SQLException e) {
-
- }
- }
-
- public void deletetrack(int playlistid, int trackid) {
- try {
- PreparedStatement statement = con.prepareStatement("call deletefromplaylist(?,?)");
- statement.setInt(1, playlistid);
- statement.setInt(2, trackid);
- statement.execute();
- } catch (SQLException e) {
-
- }
- }
-
- public void move(int playlistid, int trackid, String direction) {
- try {
- PreparedStatement statement = con.prepareStatement("call movetrack(?,?,?)");
- statement.setInt(1, playlistid);
- statement.setInt(2, trackid);
- if (direction.equals("up")) {
- statement.setInt(3, 0);
- } else {
- statement.setInt(3, 1);
- }
- statement.execute();
- } catch (SQLException e) {
-
- }
- }
-}
diff --git a/src/beatboxer/PlaylistEditorController.java b/src/beatboxer/PlaylistEditorController.java
index 12785ae..ab8e00e 100644
--- a/src/beatboxer/PlaylistEditorController.java
+++ b/src/beatboxer/PlaylistEditorController.java
@@ -50,82 +50,81 @@ public class PlaylistEditorController implements Initializable {
private Button down;
@FXML
private ListView playListListView;
- private ArrayList> instructions; //1-4 = R,L,U,D
+ private ArrayList> instructions; //1-4 = R,L,U,D
private BBItem playlist;
+
/**
* Initializes the controller class.
*/
@Override
public void initialize(URL url, ResourceBundle rb) {
instructions = new ArrayList<>();
- allSongsListView.getSelectionModel().selectedIndexProperty().addListener(new ChangeListener(){
+ allSongsListView.getSelectionModel().selectedIndexProperty().addListener(new ChangeListener() {
@Override
public void changed(ObservableValue extends Number> observable, Number oldValue, Number newValue) {
- if(newValue.intValue()==-1){
+ if (newValue.intValue() == -1) {
right.setDisable(true);
- }
- else{
+ } else {
right.setDisable(false);
}
}
});
- playListListView.getSelectionModel().selectedIndexProperty().addListener(new ChangeListener(){
+ playListListView.getSelectionModel().selectedIndexProperty().addListener(new ChangeListener() {
@Override
public void changed(ObservableValue extends Number> observable, Number oldValue, Number newValue) {
- if(newValue.intValue()==-1){
+ if (newValue.intValue() == -1) {
left.setDisable(true);
up.setDisable(true);
down.setDisable(true);
- }
- else{
+ } else {
left.setDisable(false);
up.setDisable(false);
down.setDisable(false);
- if(newValue.intValue()==0){
+ if (newValue.intValue() == 0) {
up.setDisable(true);
}
- if(newValue.intValue() == playListListView.getItems().size()-1){
+ if (newValue.intValue() == playListListView.getItems().size() - 1) {
down.setDisable(true);
}
}
}
-
+
});
- }
- public void initData(BBItem playlist){
+ }
+
+ public void initData(BBItem playlist) {
this.playlist = playlist;
this.nameField.setText(playlist.toString());
- Show sh = new Show();
ObservableList playlistList;
ObservableList allsongList;
- playlistList = sh.ShowAllTracksinPlayList(playlist.getId());
- allsongList = sh.ShowAllTracks();
+ playlistList = new PlayList().ShowAllTracksinPlayList(playlist.getId());
+ allsongList = new Track().ShowAllTracks();
allsongList.removeAll(playlistList);
allSongsListView.setItems(allsongList);
playListListView.setItems(playlistList);
}
+
@FXML
private void checkName(KeyEvent event) {
String newPlaylist = nameField.getText();
newPlaylist = newPlaylist.trim();
- if(newPlaylist.equals("")){
+ if (newPlaylist.equals("")) {
ok.setDisable(true);
errorLabel.setText("");
- }
- else{
- Show sh = new Show();
- ObservableList list = sh.ShowAllPlayLists();
- for(BBItem playList : list){
- if(playList.getName().equalsIgnoreCase(newPlaylist) && !newPlaylist.equalsIgnoreCase(playList.getName())){
+ } else {
+ PlayList pl = new PlayList();
+ ObservableList list = pl.ShowAllPlayLists();
+ for (BBItem playList : list) {
+ if (playList.getName().equalsIgnoreCase(newPlaylist) && !newPlaylist.equalsIgnoreCase(playList.getName())) {
ok.setDisable(true);
errorLabel.setText("A playlist with that name already exists. Please enter \na different name.");
return;
}
}
- if(newPlaylist.equalsIgnoreCase("All Songs") || newPlaylist.equalsIgnoreCase("Favourites")){
+ if (newPlaylist.equalsIgnoreCase("All Songs") || newPlaylist.equalsIgnoreCase("Favourites")) {
ok.setDisable(true);
errorLabel.setText("A playlist with that name already exists. Please enter \na different name.");
- return;
+ return;
}
errorLabel.setText("");
ok.setDisable(false);
@@ -134,10 +133,10 @@ private void checkName(KeyEvent event) {
@FXML
private void okExecute(ActionEvent event) {
- try{
- PlayListInfo p = new PlayListInfo();
- for(Pair k: instructions){
- switch(k.getKey()){
+ try {
+ PlayList p = new PlayList();
+ for (Pair k : instructions) {
+ switch (k.getKey()) {
case 1:
p.addtrack(playlist.getId(), k.getValue());
break;
@@ -154,9 +153,8 @@ private void okExecute(ActionEvent event) {
}
cancel(new ActionEvent());
String playlistString = nameField.getText().trim();
- new PlayList().update(playlist.getId(),playlistString);
- }
- catch(Exception e){
+ new PlayList().update(playlist.getId(), playlistString);
+ } catch (Exception e) {
;
}
}
@@ -174,57 +172,57 @@ private void right(ActionEvent event) {
int index = BBGenerator.find(list, song);
list.remove(song);
allSongsListView.setItems(list);
- if(list.size()!=index){
+ if (list.size() != index) {
allSongsListView.getSelectionModel().clearAndSelect(index);
}
list = playListListView.getItems();
list.add(song);
playListListView.setItems(list);
- instructions.add(new Pair(1,song.getId()));
+ instructions.add(new Pair(1, song.getId()));
}
@FXML
private void left(ActionEvent event) {
- BBSong song = playListListView.getSelectionModel().getSelectedItem();
+ BBSong song = playListListView.getSelectionModel().getSelectedItem();
ObservableList list = playListListView.getItems();
int index = BBGenerator.find(list, song);
list.remove(song);
playListListView.setItems(list);
- if(list.size()!=index){
+ if (list.size() != index) {
playListListView.getSelectionModel().clearAndSelect(index);
}
list = allSongsListView.getItems();
list.add(song);
- FXCollections.sort(list, (a,b) -> a.getName().compareToIgnoreCase(b.getName()));
+ FXCollections.sort(list, (a, b) -> a.getName().compareToIgnoreCase(b.getName()));
allSongsListView.setItems(list);
- if(allSongsListView.getSelectionModel().getSelectedIndex()==-1){
+ if (allSongsListView.getSelectionModel().getSelectedIndex() == -1) {
allSongsListView.getSelectionModel().select(song);
}
- instructions.add(new Pair(2,song.getId()));
+ instructions.add(new Pair(2, song.getId()));
}
@FXML
private void up(ActionEvent event) {
int index = playListListView.getSelectionModel().getSelectedIndex();
- BBSong song = playListListView.getSelectionModel().getSelectedItem();
+ BBSong song = playListListView.getSelectionModel().getSelectedItem();
ObservableList list = playListListView.getItems();
list.remove(song);
- list.add(index-1, song);
+ list.add(index - 1, song);
playListListView.setItems(list);
- playListListView.getSelectionModel().clearAndSelect(index-1);
- instructions.add(new Pair(3,song.getId()));
+ playListListView.getSelectionModel().clearAndSelect(index - 1);
+ instructions.add(new Pair(3, song.getId()));
}
@FXML
private void down(ActionEvent event) {
int index = playListListView.getSelectionModel().getSelectedIndex();
- BBSong song = playListListView.getSelectionModel().getSelectedItem();
+ BBSong song = playListListView.getSelectionModel().getSelectedItem();
ObservableList list = playListListView.getItems();
list.remove(song);
- list.add(index+1, song);
+ list.add(index + 1, song);
playListListView.setItems(list);
- playListListView.getSelectionModel().clearAndSelect(index+1);
- instructions.add(new Pair(4,song.getId()));
+ playListListView.getSelectionModel().clearAndSelect(index + 1);
+ instructions.add(new Pair(4, song.getId()));
}
-
-}
\ No newline at end of file
+
+}
diff --git a/src/beatboxer/Search.java b/src/beatboxer/Search.java
deleted file mode 100644
index 8a6d2e7..0000000
--- a/src/beatboxer/Search.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package beatboxer;
-
-import java.sql.*;
-import javafx.collections.ObservableList;
-
-public class Search extends CreateConnection {
-
- public ObservableList SearchAlbum(String string) {
- try {
- String sql = "select * from album WHERE albumname LIKE ? order by albumname";
- PreparedStatement statement = con.prepareStatement(sql);
- statement.setString(1, '%' + string + '%');
- ResultSet res = statement.executeQuery();
- return BBGenerator.item(res);
- } catch (Exception e) {
- return null;
- }
- }
-
- public ObservableList SearchTrack(String string) {
- try {
- String sql = "select * from track natural join artist natural join album where trackname LIKE ? order by trackname";
- PreparedStatement statement = con.prepareStatement(sql);
- statement.setString(1, "%" + string + "%");
- ResultSet res = statement.executeQuery();
- return BBGenerator.song(res);
- } catch (Exception e) {
- }
- return null;
- }
-
- public ObservableList SearchArtist(String string) {
- try {
- String sql = "select * from artist WHERE artistname LIKE ? order by artistname";
- PreparedStatement statement = con.prepareStatement(sql);
- statement.setString(1, '%' + string + '%');
- ResultSet res = statement.executeQuery();
- return BBGenerator.item(res);
- } catch (Exception e) {
- return null;
- }
- }
-}
diff --git a/src/beatboxer/Show.java b/src/beatboxer/Show.java
deleted file mode 100644
index d0c7dd7..0000000
--- a/src/beatboxer/Show.java
+++ /dev/null
@@ -1,184 +0,0 @@
-package beatboxer;
-
-import java.sql.*;
-import java.util.ArrayList;
-import javafx.collections.*;
-
-public class Show extends CreateConnection {
-
- public ObservableList ShowAllTracks() {
- try {
- Statement count = con.createStatement();
- ResultSet res = count.executeQuery("select trackid,trackname,artistname,albumname,location,genre,favourite from track natural join artist natural join album order by trackname");
- return BBGenerator.song(res);
- } catch (SQLException e) {
-
- }
- return null;
- }
-
- public ObservableList ShowAllArtists() {
- try {
- Statement count = con.createStatement();
- ResultSet res = count.executeQuery("Select * from artist order by artistname");
- return BBGenerator.item(res);
- } catch (SQLException e) {
-
- }
- return null;
- }
-
- public ObservableList ShowAllTracksByArtists(int artistId) {
- try {
- String sql = "select trackid,trackname,artistname,albumname,location,genre,favourite from track natural join artist natural join album WHERE artistid = ? order by trackname";
- PreparedStatement statement = con.prepareStatement(sql);
- statement.setInt(1, artistId);
- ResultSet res = statement.executeQuery();
- return BBGenerator.song(res);
- } catch (SQLException e) {
-
- }
- return null;
-
- }
-
- public ObservableList ShowAllAlbums() {
- try {
- Statement count = con.createStatement();
- ResultSet res = count.executeQuery("Select * from album order by albumname");
- return BBGenerator.item(res);
- } catch (SQLException e) {
-
- }
- return null;
- }
-
- public ObservableList ShowAllTracksinAlbum(int albumId) {
- try {
- String sql = "select trackid,trackname,artistname,albumname,location,genre,favourite from track natural join artist natural join album WHERE albumid = ? order by trackname";
- PreparedStatement statement = con.prepareStatement(sql);
- statement.setInt(1, albumId);
- ResultSet res = statement.executeQuery();
- return BBGenerator.song(res);
- } catch (SQLException e) {
-
- }
- return null;
-
- }
-
- public ObservableList ShowAllPlayLists() {
- try {
- Statement count = con.createStatement();
- ResultSet res = count.executeQuery("Select * from playlist order by playlistname");
- ObservableList list = FXCollections.observableArrayList();
- list.add(new BBItem(0, "All Songs"));
- list.add(new BBItem(-1, "Favourites"));
- list.add(new BBItem(-2, "Recently Added"));
- list.addAll(BBGenerator.item(res));
- return list;
- } catch (SQLException e) {
-
- }
- return null;
- }
-
- public ObservableList ShowAllTracksinPlayList(int playlistid) {
- try {
- String sql = "select trackid,trackname,artistname,albumname,location,genre,favourite from track natural join artist natural join album natural join playlistinfo where playlistid = ? order by trackorder";
- PreparedStatement tracks = con.prepareStatement(sql);
- tracks.setInt(1, playlistid);
- ResultSet res = tracks.executeQuery();
- return BBGenerator.song(res);
- } catch (SQLException e) {
-
- }
- return null;
- }
-
- public ObservableList ShowAllFavourites() {
- try {
- String sql = "select trackid,trackname,artistname,albumname,location,genre,favourite from track natural join artist natural join album where favourite = true order by trackname";
- Statement tracks = con.createStatement();
- ResultSet res = tracks.executeQuery(sql);
- return BBGenerator.song(res);
- } catch (SQLException e) {
-
- }
- return null;
- }
-
- public ObservableList ShowByMode(String mode) {
- mode = mode.toLowerCase();
- ArrayList genre = new ArrayList<>();
- switch (mode) {
- case "driving":
- genre.add("Rap");
- genre.add("Rock");
- genre.add("Romantic");
- genre.add("Pop");
- genre.add("Soul and R&B");
- return BBGenerator.song(ShowByGenre(genre));
- case "exercise":
- genre.add("Dance");
- genre.add("Hip-hop");
- genre.add("Hiphop");
- genre.add("Edm");
- genre.add("Rock");
- genre.add("Pop");
- return BBGenerator.song(ShowByGenre(genre));
- case "party":
- genre.add("House");
- genre.add("Progresive");
- genre.add("Edm");
- genre.add("Dance");
- genre.add("Rap");
- genre.add("Hip hop");
- genre.add("Hip-hop");
- genre.add("Pop");
- genre.add("Electro");
- return BBGenerator.song(ShowByGenre(genre));
- case "soothing":
- genre.add("Romantic");
- genre.add("Ambient");
- genre.add("Soft");
- genre.add("Trap");
- genre.add("Soothing");
- genre.add("Paino");
- genre.add("Tropical");
- genre.add("Soul");
- return BBGenerator.song(ShowByGenre(genre));
- }
- return null;
- }
-
- public ObservableList ShowRecentlyAdded() {
- try {
- String sql = "select trackid,trackname,artistname,albumname,location,genre,favourite from track natural join artist natural join album where to_seconds(dateadded) + 86400 >= to_seconds(current_timestamp()) order by dateadded desc limit 50";
- Statement tracks = con.createStatement();
- ResultSet res = tracks.executeQuery(sql);
- return BBGenerator.song(res);
- } catch (SQLException e) {
-
- }
- return null;
- }
-
- private ResultSet ShowByGenre(ArrayList genre) {
- try {
- String sql = "select trackid,trackname,artistname,albumname,location,genre,favourite from track natural join artist natural join album where genre like ?";
- for (int i = 0; i < genre.size() - 1; i++) {
- sql += " or genre like ?";
- }
- sql += " order by trackname";
- PreparedStatement tracks = con.prepareStatement(sql);
- for (int i = 0; i < genre.size(); i++) {
- tracks.setString(i + 1, '%' + genre.get(i) + '%');
- }
- return tracks.executeQuery();
- } catch (SQLException e) {
-
- }
- return null;
- }
-}
diff --git a/src/beatboxer/SongEditorController.java b/src/beatboxer/SongEditorController.java
index e3a059a..f0929dd 100644
--- a/src/beatboxer/SongEditorController.java
+++ b/src/beatboxer/SongEditorController.java
@@ -39,9 +39,9 @@ public class SongEditorController implements Initializable {
@FXML
private void okExecute() {
try {
- Update u = new Update();
+ Track track = new Track();
String songString = songField.getText().trim(), albumString = albumField.getText().trim(), artistString = artistField.getText().trim(), genreString = genreField.getText().trim();
- u.updateTrack(song.getId(), songString, artistString, albumString, genreString);
+ track.UpdateTrack(song.getId(), songString, artistString, albumString, genreString);
song.setName(songString);
song.setAlbum(albumString);
song.setArtist(artistString);
@@ -52,7 +52,7 @@ private void okExecute() {
}
cancel();
} catch (Exception e) {
- ;
+ System.out.println("hey");
}
}
diff --git a/src/beatboxer/Test.java b/src/beatboxer/Test.java
new file mode 100644
index 0000000..012967c
--- /dev/null
+++ b/src/beatboxer/Test.java
@@ -0,0 +1,16 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package beatboxer;
+
+/**
+ *
+ * @author SANJAY TAYAL
+ */
+public class Test {
+ public static void main(String[] args) {
+
+ }
+}
diff --git a/src/beatboxer/Track.java b/src/beatboxer/Track.java
new file mode 100644
index 0000000..0c8fb63
--- /dev/null
+++ b/src/beatboxer/Track.java
@@ -0,0 +1,385 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package beatboxer;
+
+import java.sql.*;
+import java.util.ArrayList;
+import javafx.collections.ObservableList;
+
+/**
+ *
+ * @author SANJAY TAYAL
+ */
+public class Track extends CreateConnection {
+
+ public void AddTrack(String trackName, String artistName, String albumName, String location, String genre) {
+ if (artistName.isEmpty()) {
+ artistName = "Unknown";
+ }
+ if (albumName.isEmpty()) {
+ albumName = "Unknown";
+ }
+ System.out.println("runned");
+ Statement st = null;
+ PreparedStatement statement = null;
+ ResultSet res = null;
+ try {
+ st = con.createStatement();
+ res = st.executeQuery("select newid from id");
+ res.next();
+ int trackid = res.getInt("newid");
+ res.close();
+ int artistid, albumid;
+ statement = con.prepareStatement("select artistid from artist where lower(artistname) = ?");
+ statement.setString(1, artistName.toLowerCase().trim());
+ res = statement.executeQuery();
+ if (!res.next()) {
+ res.close();
+ res = st.executeQuery("select newid from id");
+ res.next();
+ artistid = res.getInt("newid");
+ res.close();
+ statement = con.prepareStatement("insert into artist(artistid,artistname) values (?,?)");
+ statement.setInt(1, artistid);
+ statement.setString(2, artistName.trim());
+ statement.execute();
+ } else {
+ artistid = res.getInt("artistid");
+ res.close();
+ }
+ statement = con.prepareStatement("select albumid from album where lower(albumname) = ?");
+ statement.setString(1, albumName.toLowerCase().trim());
+ res = statement.executeQuery();
+ if (!res.next()) {
+ res.close();
+ res = st.executeQuery("select newid from id");
+ res.next();
+ albumid = res.getInt("newid");
+ res.close();
+ statement = con.prepareStatement("insert into album(albumid,albumname) values (?,?)");
+ statement.setInt(1, albumid);
+ statement.setString(2, albumName.trim());
+ statement.execute();
+ } else {
+ albumid = res.getInt("albumid");
+ res.close();
+ }
+ statement = con.prepareStatement("insert into track(trackid,artistid,albumid,trackname,location,genre) values(?,?,?,?,?,?)");
+ statement.setInt(1, trackid);
+ statement.setInt(2, artistid);
+ statement.setInt(3, albumid);
+ statement.setString(4, trackName.trim());
+ statement.setString(5, location.replace("\\", "/"));
+ statement.setString(6, genre.trim());
+ statement.execute();
+ } catch (SQLException e) {
+ } finally {
+ if (st != null) {
+ try {
+ st.close();
+ } catch (SQLException e) {
+
+ }
+ }
+ if (statement != null) {
+ try {
+ statement.close();
+ } catch (SQLException e) {
+
+ }
+ }
+ }
+ }
+
+ public void UpdateTrack(int TrackId, String newTrackName, String newArtistName, String newAlbumName, String newGenre) {
+ Statement st = null;
+ PreparedStatement statement = null;
+ int artistid, albumid;
+ try {
+ st = con.createStatement();
+ statement = con.prepareStatement("select artistid from artist where lower(artistname) = ?");
+ statement.setString(1, newArtistName.toLowerCase().trim());
+ ResultSet res = statement.executeQuery();
+ if (!res.next()) {
+ res.close();
+ res = st.executeQuery("select newid from id");
+ res.next();
+ artistid = res.getInt("newid");
+ res.close();
+ st.clearBatch();
+ statement.clearBatch();
+ statement = con.prepareStatement("insert into artist(artistid,artistname) values (?,?)");
+ statement.setInt(1, artistid);
+ statement.setString(2, newArtistName.trim());
+ statement.execute();
+ } else {
+ artistid = res.getInt("artistid");
+ res.close();
+ }
+ statement.clearBatch();
+ statement = con.prepareStatement("select albumid from album where lower(albumname) = ?");
+ statement.setString(1, newAlbumName.toLowerCase().trim());
+ res = statement.executeQuery();
+ if (!res.next()) {
+ res.close();
+ res = st.executeQuery("select newid from id");
+ res.next();
+ albumid = res.getInt("newid");
+ res.close();
+ st.clearBatch();
+ statement.clearBatch();
+ statement = con.prepareStatement("insert into album(albumid,albumname) values (?,?)");
+ statement.setInt(1, albumid);
+ statement.setString(2, newAlbumName.trim());
+ statement.execute();
+ } else {
+ albumid = res.getInt("albumid");
+ res.close();
+ }
+ statement.clearBatch();
+ statement = con.prepareStatement("update track set trackname = ?,genre = ?,artistid = ?,albumid = ? where trackid = ?");
+ statement.setString(1, newTrackName.trim());
+ statement.setString(2, newGenre.trim());
+ statement.setInt(3, artistid);
+ statement.setInt(4, albumid);
+ statement.setInt(5, TrackId);
+ statement.execute();
+ statement.clearBatch();
+ statement.close();
+ } catch (SQLException e) {
+
+ } finally {
+ if (st != null) {
+ try {
+ st.close();
+ } catch (SQLException e) {
+
+ }
+ }
+ if (statement != null) {
+ try {
+ statement.close();
+ } catch (SQLException e) {
+
+ }
+ }
+ }
+ }
+
+ public void DeleteTrack(int TrackId) {
+ PreparedStatement statement = null;
+ try {
+ statement = con.prepareStatement("delete from track where trackid = ?");
+ statement.setInt(1, TrackId);
+ statement.execute();
+ statement.clearBatch();
+ statement = con.prepareStatement("delete from playlistinfo where trackid = ?");
+ statement.setInt(1, TrackId);
+ statement.execute();
+ statement.clearBatch();
+ } catch (SQLException e) {
+
+ } finally {
+ if (statement != null) {
+ try {
+ statement.close();
+ } catch (SQLException e) {
+
+ }
+ }
+ }
+
+ }
+
+ public ObservableList ShowAllTracks() {
+ Statement count = null;
+ try {
+ count = con.createStatement();
+ String sql = "select trackid,trackname,artistname,albumname,location,genre,favourite from track natural join artist natural join album order by trackname";
+ return BBGenerator.song(count.executeQuery(sql));
+ } catch (SQLException e) {
+
+ } finally {
+ if (count != null) {
+ try {
+ count.close();
+ } catch (SQLException e) {
+
+ }
+ }
+ }
+ return null;
+ }
+
+ public ObservableList ShowAllFavourites() {
+ Statement tracks = null;
+ try {
+ String sql = "select trackid,trackname,artistname,albumname,location,genre,favourite from track natural join artist natural join album where favourite = 1 order by trackname";
+ tracks = con.createStatement();
+ return BBGenerator.song(tracks.executeQuery(sql));
+ } catch (SQLException e) {
+
+ } finally {
+ if (tracks != null) {
+ try {
+ tracks.close();
+ } catch (SQLException e) {
+
+ }
+ }
+ }
+ return null;
+ }
+
+ public ObservableList ShowByMode(String mode) {
+ mode = mode.toLowerCase();
+ ArrayList genre = new ArrayList<>();
+ switch (mode) {
+ case "driving":
+ genre.add("Rap");
+ genre.add("Rock");
+ genre.add("Romantic");
+ genre.add("Pop");
+ genre.add("Soul and R&B");
+ return BBGenerator.song(ShowByGenre(genre));
+ case "exercise":
+ genre.add("Dance");
+ genre.add("Hip-hop");
+ genre.add("Hiphop");
+ genre.add("Edm");
+ genre.add("Rock");
+ genre.add("Pop");
+ return BBGenerator.song(ShowByGenre(genre));
+ case "party":
+ genre.add("House");
+ genre.add("Progresive");
+ genre.add("Edm");
+ genre.add("Dance");
+ genre.add("Rap");
+ genre.add("Hip hop");
+ genre.add("Hip-hop");
+ genre.add("Pop");
+ genre.add("Electro");
+ return BBGenerator.song(ShowByGenre(genre));
+ case "soothing":
+ genre.add("Romantic");
+ genre.add("Ambient");
+ genre.add("Soft");
+ genre.add("Trap");
+ genre.add("Soothing");
+ genre.add("Paino");
+ genre.add("Tropical");
+ genre.add("Soul");
+ return BBGenerator.song(ShowByGenre(genre));
+ }
+ return null;
+ }
+
+ public ObservableList ShowRecentlyAdded() {
+ Statement tracks = null;
+ try {
+ String sql = "select trackid,trackname,artistname,albumname,location,genre,favourite from track natural join artist natural join album where strftime('%s',current_timestamp) - strftime('%s',dateadded) <= 86400 order by dateadded desc limit 50";
+ tracks = con.createStatement();
+ return BBGenerator.song(tracks.executeQuery(sql));
+ } catch (SQLException e) {
+
+ } finally {
+ if (tracks != null) {
+ try {
+ tracks.close();
+ } catch (SQLException e) {
+
+ }
+ }
+ }
+ return null;
+ }
+
+ private ResultSet ShowByGenre(ArrayList genre) {
+ PreparedStatement tracks = null;
+ try {
+ String sql = "select trackid,trackname,artistname,albumname,location,genre,favourite from track natural join artist natural join album where genre like ?";
+ for (int i = 0; i < genre.size() - 1; i++) {
+ sql += " or genre like ?";
+ }
+ sql += " order by trackname";
+ tracks = con.prepareStatement(sql);
+ for (int i = 0; i < genre.size(); i++) {
+ tracks.setString(i + 1, '%' + genre.get(i) + '%');
+ }
+ return tracks.executeQuery();
+ } catch (SQLException e) {
+
+ } finally {
+ if (tracks != null) {
+ try {
+ tracks.close();
+ } catch (SQLException e) {
+
+ }
+ }
+ }
+ return null;
+ }
+
+ public ObservableList SearchTrack(String string) {
+ PreparedStatement statement = null;
+ try {
+ String sql = "select * from track natural join artist natural join album where trackname like ? order by trackname";
+ statement = con.prepareStatement(sql);
+ statement.setString(1, "%" + string + "%");
+ return BBGenerator.song(statement.executeQuery());
+ } catch (Exception e) {
+ } finally {
+ if (statement != null) {
+ try {
+ statement.close();
+ } catch (SQLException e) {
+
+ }
+ }
+ }
+ return null;
+ }
+
+ public void favourite(int trackid) {
+ PreparedStatement statement = null;
+ try {
+ statement = con.prepareStatement("update track set favourite = 1 where trackid = ?");
+ statement.setInt(1, trackid);
+ statement.execute();
+ } catch (SQLException e) {
+
+ } finally {
+ if (statement != null) {
+ try {
+ statement.close();
+ } catch (SQLException e) {
+
+ }
+ }
+ }
+ }
+
+ public void unfavourite(int trackid) {
+ PreparedStatement statement = null;
+ try {
+ statement = con.prepareStatement("update track set favourite = 0 where trackid=?");
+ statement.setInt(1, trackid);
+ statement.execute();
+ } catch (SQLException e) {
+
+ } finally {
+ if (statement != null) {
+ try {
+ statement.close();
+ } catch (SQLException e) {
+
+ }
+ }
+ }
+ }
+}
diff --git a/src/beatboxer/Update.java b/src/beatboxer/Update.java
deleted file mode 100644
index fe8a0e2..0000000
--- a/src/beatboxer/Update.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package beatboxer;
-
-import java.sql.*;
-
-public class Update extends CreateConnection {
-
- public void updateTrack(int TrackId, String newTrackName, String newArtistName, String newAlbumName, String newGenre) {
- try {
- PreparedStatement statement = con.prepareStatement("call updatetrack(?,?,?,?,?)");
- statement.setInt(1, TrackId);
- statement.setString(2, newTrackName);
- statement.setString(3, newArtistName);
- statement.setString(4, newAlbumName);
- statement.setString(5, newGenre);
- statement.execute();
- } catch (SQLException e) {
-
- }
- }
-}