mattm007

review2

Feb 19th, 2019
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.85 KB | None | 0 0
  1.  
  2.  
  3. import javafx.scene.control.*;
  4. import javafx.scene.control.Button;
  5. import javafx.scene.control.ListView;
  6. import javafx.scene.control.RadioButton;
  7. import javafx.collections.FXCollections;
  8. import javafx.collections.ObservableList;
  9. import javafx.scene.layout.VBox;
  10. import javafx.scene.text.Text;
  11. import javafx.scene.*;
  12. import javafx.event.*;
  13. import javafx.event.ActionEvent;    //**Need to import to handle event
  14. import javafx.event.EventHandler;   //**Need to import to handle event
  15. import javafx.geometry.Orientation;
  16.  
  17. import java.awt.Label;
  18. import java.awt.TextArea;
  19. import java.awt.TextField;
  20. import java.util.ArrayList;
  21.  
  22. import javafx.scene.layout.BorderPane;
  23. import javafx.scene.layout.GridPane;
  24. import javafx.scene.layout.HBox;
  25. import javafx.scene.layout.TilePane;
  26. import javafx.application.Application;
  27. import javafx.stage.Stage;
  28. import javafx.*;
  29.  
  30. //import all other necessary javafx classes here
  31. //----
  32.  
  33. public class ReviewPane extends VBox
  34. {
  35.    private ArrayList<Movie> movieList;
  36.  
  37.    //A ListView to display movies created
  38.    private ListView<Movie> movieListView;
  39.  
  40.    //declare all other necessary GUI variables here
  41.    //----
  42.     private ObservableList<Movie> oberservableMovies;
  43.    
  44.     private RadioButton poor;
  45.     private RadioButton fair;
  46.     private RadioButton average;
  47.     private RadioButton good;
  48.     private RadioButton excellent;
  49.     private Button submitReview;
  50.     private Text intro;
  51.     private HBox submit;
  52.     private ToggleGroup ratings;
  53.    
  54.    //constructor
  55.    public ReviewPane(ArrayList<Movie> list)
  56.    {
  57.        //initialize instance variables
  58.        this.movieList = list;
  59.        
  60.        //Use this to add elements to the vbox.
  61.        
  62.        //Declaring the header for the reviewpane window.
  63.        intro = new Text("Choose a movie to give a review: ");
  64.        this.getChildren().addAll(intro);
  65.        
  66.        
  67.        //Create ObservableList for movielist.
  68.        oberservableMovies = FXCollections.observableArrayList(movieList);
  69.        movieListView = new ListView<Movie>();
  70.        movieListView.setItems(oberservableMovies);
  71.        this.getChildren().addAll(movieListView);
  72.        
  73.        //Assigning rating button with objects, with proper labeling.
  74.        //Creating a togglegroup.
  75.        ratings = new ToggleGroup();
  76.        
  77.        poor = new RadioButton("1 Poor");
  78.        poor.setToggleGroup(ratings);
  79.        fair = new RadioButton("2 Fair");
  80.        fair.setToggleGroup(ratings);
  81.        average = new RadioButton("3 Average");
  82.        average.setToggleGroup(ratings);
  83.        good = new RadioButton("4 Good");
  84.        good.setToggleGroup(ratings);
  85.        excellent = new RadioButton("5 Excellent");
  86.        excellent.setToggleGroup(ratings);
  87.        
  88.        //Using an hbox to store the buttons.
  89.        HBox reviewLayout = new HBox(poor,fair,average,good,excellent);
  90.        this.getChildren().addAll(reviewLayout);
  91.        
  92.        submitReview = new Button("Submit Review");
  93.        submit = new HBox(submitReview);
  94.        this.getChildren().addAll(submit);
  95.        
  96.        //Step #3: Register the button with its handler class
  97.        //----
  98.        submitReview.setOnAction(new RatingHandler());
  99.        
  100.        
  101.        
  102.        
  103.    } //end of constructor
  104.  
  105.  //This method refresh the ListView whenever there's new movie added in CreatePane
  106.  //you will need to update the underline ObservableList object in order for ListView
  107.  //object to show the updated movie list
  108.  public void updateMovieList(Movie newMovie)
  109.  {
  110.      oberservableMovies.add(newMovie);
  111.  }
  112.  
  113.  //Step 2: Create a RatingHandler class
  114.  private class RatingHandler implements EventHandler<ActionEvent>
  115.     {
  116.         //Override the abstact method handle()
  117.         public void handle(ActionEvent event)
  118.         {
  119.             //When "Submit Review" button is pressed and a movie is selected from
  120.             //the list view's average rating is updated by adding a additional
  121.             //rating specified by a selected radio button
  122.             //Test
  123.            
  124.             if(poor.isSelected()) {
  125.                 ratingsHelper(1.0);
  126.             }else if(fair.isSelected()) {
  127.                 ratingsHelper(2.0);
  128.             }else if(average.isSelected()) {
  129.                 ratingsHelper(3.0);
  130.             }else if(good.isSelected()) {
  131.                 ratingsHelper(4.0);
  132.             }else if(excellent.isSelected()) {
  133.                 ratingsHelper(5.0);
  134.             }
  135.            
  136.             //Clear the selections to avoid false readings.
  137.             ratings.selectToggle(null);
  138.             movieListView.getSelectionModel().clearSelection();
  139.            
  140.    
  141.         }
  142.        
  143.         public void ratingsHelper(double rating) {
  144.             Movie index = movieListView.getSelectionModel().getSelectedItem();
  145.             index.addRating(rating);
  146.            
  147.            
  148.         }
  149.        
  150.        
  151.        
  152.        
  153.        
  154.     } //end of RatingHandler
  155.  
  156.  
  157.  
  158.  
  159. } //end of ReviewPane class
Add Comment
Please, Sign In to add comment