diff --git a/src/main/java/sbu/javafx/MusicController.java b/src/main/java/sbu/javafx/MusicController.java index 5da27a9..a9e1464 100644 --- a/src/main/java/sbu/javafx/MusicController.java +++ b/src/main/java/sbu/javafx/MusicController.java @@ -2,30 +2,99 @@ package sbu.javafx; import javafx.fxml.FXML; import javafx.event.ActionEvent; +import javafx.fxml.FXMLLoader; +import javafx.scene.Scene; +import javafx.scene.control.Button; import javafx.scene.control.Label; +import javafx.scene.control.ListView; import javafx.scene.input.MouseEvent; import javafx.scene.layout.VBox; +import javafx.stage.Stage; + +import java.io.IOException; +import java.util.ArrayList; public class MusicController { // TODO: Define your UI components using the @FXML annotation. + @FXML private ListView lvSongs; + @FXML private Label lblStatus; + + private ArrayList playlist = new ArrayList<>(); + + private String[] songsArray = {"Arcade Duncan Laurence 3.07", + "How i love you Engelbert 4.20", + "Memmories Conan Gray 4.09", + "Night Changes One Direction 3.47", + "Careless Whisper George Michael 5.00" + }; + + @FXML public void initialize() { lvSongs.getItems().setAll(songsArray); } //TODO: Implement the logic to play a song. This method should update the UI to show which song is currently playing. + public String songName(int a) + { + String songName = ""; + if (a == 0) songName = "Arcade"; + else if (a == 1) songName = "How i love you"; + else if (a == 2) songName = "Memmories"; + else if (a == 3) songName = "Night Changes"; + else songName = "Careless Whisper"; + + return songName; + } + @FXML - public void handlePlayAction() { - //Update labels, change button icons, etc. + public void handlePlayAction() + { + String selectedSong = lvSongs.getSelectionModel().getSelectedItem(); + if (selectedSong == null) + { + lblStatus.setText("Please choose a song"); + return; + } + + lblStatus.setText(" is playing : " + songName(lvSongs.getSelectionModel().getSelectedIndex())); } //TODO: Logic to add a specific song to the user's playlist. - public void addToPlaylist(String songName) { - //Add the song to a list or update a ListView. + public void addToPlaylist() + { + String selectedSong = lvSongs.getSelectionModel().getSelectedItem(); + if (selectedSong == null) + { + lblStatus.setText("Please choose a song"); + return; + } + + if (!playlist.contains(selectedSong)) + { + playlist.add(selectedSong); + lblStatus.setText(songName(lvSongs.getSelectionModel().getSelectedIndex()) + " added to playList"); + } + else lblStatus.setText(songName(lvSongs.getSelectionModel().getSelectedIndex()) + " is already exists"); } // TODO:This method should open a new window or change the current scene to display the "Playlist" page. - public void openPlaylistWindow() { - //Create a new stage and show the playlist UI. + public void openPlaylistWindow() + { + FXMLLoader loader = new FXMLLoader(getClass().getResource("Playlist-view.fxml")); + Scene scene = null; + try { + scene = new Scene(loader.load()); + } catch (IOException e) { + throw new RuntimeException(e); + } + + PlayListController controller = loader.getController(); + controller.setPlaylist(playlist); + + Stage stage = new Stage(); + stage.setTitle("Playlist"); + stage.setScene(scene); + stage.show(); } -} +} \ No newline at end of file diff --git a/src/main/java/sbu/javafx/PlayListController.java b/src/main/java/sbu/javafx/PlayListController.java new file mode 100644 index 0000000..4d5602b --- /dev/null +++ b/src/main/java/sbu/javafx/PlayListController.java @@ -0,0 +1,14 @@ +package sbu.javafx; + +import java.util.ArrayList; +import javafx.fxml.FXML; +import javafx.scene.control.ListView; + +public class PlayListController +{ + @FXML private ListView lvPlaylist; + public void setPlaylist(ArrayList playlist) + { + lvPlaylist.getItems().addAll(playlist); + } +} \ No newline at end of file diff --git a/src/main/resources/sbu/javafx/App-view.fxml b/src/main/resources/sbu/javafx/App-view.fxml index 306c8d3..3a1c59d 100644 --- a/src/main/resources/sbu/javafx/App-view.fxml +++ b/src/main/resources/sbu/javafx/App-view.fxml @@ -1,8 +1,24 @@ + + + - + - + + + + + +