Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import javafx.scene.control.*;
- import javafx.scene.control.Button;
- import javafx.scene.control.ListView;
- import javafx.scene.control.RadioButton;
- import javafx.collections.FXCollections;
- import javafx.collections.ObservableList;
- import javafx.scene.layout.VBox;
- import javafx.scene.text.Text;
- import javafx.scene.*;
- import javafx.event.*;
- import javafx.event.ActionEvent; //**Need to import to handle event
- import javafx.event.EventHandler; //**Need to import to handle event
- import javafx.geometry.Orientation;
- import java.awt.Label;
- import java.awt.TextArea;
- import java.awt.TextField;
- import java.util.ArrayList;
- import javafx.scene.layout.BorderPane;
- import javafx.scene.layout.GridPane;
- import javafx.scene.layout.HBox;
- import javafx.scene.layout.TilePane;
- import javafx.application.Application;
- import javafx.stage.Stage;
- import javafx.*;
- //import all other necessary javafx classes here
- //----
- public class ReviewPane extends VBox
- {
- private ArrayList<Movie> movieList;
- //A ListView to display movies created
- private ListView<Movie> movieListView;
- //declare all other necessary GUI variables here
- //----
- private ObservableList<Movie> oberservableMovies;
- private RadioButton poor;
- private RadioButton fair;
- private RadioButton average;
- private RadioButton good;
- private RadioButton excellent;
- private Button submitReview;
- private Text intro;
- private HBox submit;
- private ToggleGroup ratings;
- //constructor
- public ReviewPane(ArrayList<Movie> list)
- {
- //initialize instance variables
- this.movieList = list;
- //Use this to add elements to the vbox.
- //Declaring the header for the reviewpane window.
- intro = new Text("Choose a movie to give a review: ");
- this.getChildren().addAll(intro);
- //Create ObservableList for movielist.
- oberservableMovies = FXCollections.observableArrayList(movieList);
- movieListView = new ListView<Movie>();
- movieListView.setItems(oberservableMovies);
- this.getChildren().addAll(movieListView);
- //Assigning rating button with objects, with proper labeling.
- //Creating a togglegroup.
- ratings = new ToggleGroup();
- poor = new RadioButton("1 Poor");
- poor.setToggleGroup(ratings);
- fair = new RadioButton("2 Fair");
- fair.setToggleGroup(ratings);
- average = new RadioButton("3 Average");
- average.setToggleGroup(ratings);
- good = new RadioButton("4 Good");
- good.setToggleGroup(ratings);
- excellent = new RadioButton("5 Excellent");
- excellent.setToggleGroup(ratings);
- //Using an hbox to store the buttons.
- HBox reviewLayout = new HBox(poor,fair,average,good,excellent);
- this.getChildren().addAll(reviewLayout);
- submitReview = new Button("Submit Review");
- submit = new HBox(submitReview);
- this.getChildren().addAll(submit);
- //Step #3: Register the button with its handler class
- //----
- submitReview.setOnAction(new RatingHandler());
- } //end of constructor
- //This method refresh the ListView whenever there's new movie added in CreatePane
- //you will need to update the underline ObservableList object in order for ListView
- //object to show the updated movie list
- public void updateMovieList(Movie newMovie)
- {
- oberservableMovies.add(newMovie);
- }
- //Step 2: Create a RatingHandler class
- private class RatingHandler implements EventHandler<ActionEvent>
- {
- //Override the abstact method handle()
- public void handle(ActionEvent event)
- {
- //When "Submit Review" button is pressed and a movie is selected from
- //the list view's average rating is updated by adding a additional
- //rating specified by a selected radio button
- //Test
- if(poor.isSelected()) {
- ratingsHelper(1.0);
- }else if(fair.isSelected()) {
- ratingsHelper(2.0);
- }else if(average.isSelected()) {
- ratingsHelper(3.0);
- }else if(good.isSelected()) {
- ratingsHelper(4.0);
- }else if(excellent.isSelected()) {
- ratingsHelper(5.0);
- }
- //Clear the selections to avoid false readings.
- ratings.selectToggle(null);
- movieListView.getSelectionModel().clearSelection();
- }
- public void ratingsHelper(double rating) {
- Movie index = movieListView.getSelectionModel().getSelectedItem();
- index.addRating(rating);
- }
- } //end of RatingHandler
- } //end of ReviewPane class
Add Comment
Please, Sign In to add comment