Controller.java 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. package com.moviesdb;
  2. import javafx.fxml.FXML;
  3. import javafx.geometry.HPos;
  4. import javafx.geometry.Pos;
  5. import javafx.geometry.VPos;
  6. import javafx.scene.control.*;
  7. import javafx.scene.image.Image;
  8. import javafx.scene.image.ImageView;
  9. import javafx.scene.layout.AnchorPane;
  10. import javafx.scene.layout.GridPane;
  11. import javafx.scene.layout.Pane;
  12. import javafx.scene.control.Alert.AlertType;
  13. import com.moviesdb.Movie;
  14. import java.awt.event.MouseEvent;
  15. import java.time.chrono.AbstractChronology;
  16. public class Controller {
  17. @FXML
  18. AnchorPane browserPane;
  19. @FXML
  20. MenuItem menuNew;
  21. @FXML
  22. GridPane moviesGrid;
  23. @FXML
  24. ScrollPane scrollPane;
  25. @FXML
  26. AnchorPane detailsPane;
  27. @FXML
  28. Label detailsNameContent;
  29. @FXML
  30. Label detailsYearContent;
  31. @FXML
  32. Label detailsDurContent;
  33. @FXML
  34. Label detailsGenreContent;
  35. @FXML
  36. Label detailsDescContent;
  37. @FXML
  38. AnchorPane detailsPicPane;
  39. @FXML
  40. AnchorPane filterPane;
  41. Label[] movies;
  42. Movie my_movie;
  43. public void loadPosters()
  44. {
  45. my_movie = new Movie();
  46. my_movie.setName("Back to the Future");
  47. my_movie.setDuration("1:20");
  48. my_movie.setDescription("The CSS styles for text input controls such as TextField for JavaFX 8 are defined in the modena.css stylesheet as below. Create a custom CSS stylesheet and modify the colors as you wish. Use the CSS reference guide if you need help understanding the syntax and available attributes and values.");
  49. //my_movie.setCover("https://m.media-amazon.com/images/M/MV5BZmU0M2Y1OGUtZjIxNi00ZjBkLTg1MjgtOWIyNThiZWIwYjRiXkEyXkFqcGdeQXVyMTQxNzMzNDI@._V1_UX182_CR0,0,182,268_AL_.jpg");
  50. //get movies array
  51. movies = new Label[10];
  52. //change grid size for number of movies
  53. for (int i = 0; i < 10; i++)
  54. {
  55. movies[i] = new Label();
  56. ImageView image = new ImageView(new Image(getClass().getResourceAsStream("pic.jpg")));
  57. image.setFitHeight(222);
  58. image.setFitWidth(150);
  59. movies[i].setGraphic(image);
  60. GridPane.setValignment(movies[i], VPos.CENTER);
  61. GridPane.setHalignment(movies[i], HPos.CENTER);
  62. Label movie = movies[i];
  63. movies[i].setOnMouseClicked(e-> {
  64. openDetails(movie);
  65. });
  66. }
  67. //moviesGrid.setPrefWidth(scrollPane.getWidth());
  68. //clear old data in grid
  69. moviesGrid.getChildren().clear();
  70. //moviesGrid.setAlignment(Pos.CENTER);
  71. //fill grid by movies
  72. moviesGrid.addRow(0, movies[0], movies[1]);
  73. moviesGrid.addRow(1,movies[4],movies[5]);
  74. moviesGrid.setPrefWidth(browserPane.getWidth()-26);
  75. moviesGrid.setPrefHeight(browserPane.getHeight()-50);
  76. }
  77. public void returnMessage()
  78. {
  79. Alert alert = new Alert(AlertType.CONFIRMATION, "Are you sure you want to format your system?");
  80. alert.showAndWait().ifPresent(response -> {
  81. if (response == ButtonType.OK) {
  82. }
  83. });
  84. }
  85. public void openDetails(Label e)
  86. {
  87. if (detailsPane.getMinWidth() < 1) {
  88. //detailsInfoPane = new AnchorPane();
  89. //detailsPicPane.getChildren().clear();
  90. detailsPane.setMinWidth(300);
  91. detailsNameContent.setText(my_movie.name());
  92. detailsYearContent.setText(my_movie.year());
  93. detailsDurContent.setText(my_movie.duration());
  94. detailsGenreContent.setText(my_movie.genre());
  95. detailsDescContent.setText(my_movie.description());
  96. detailsPicPane.getChildren().clear();
  97. //detailsPane.setMaxWidth(300);
  98. //Label movie = e;
  99. ImageView detailsImage = new ImageView();
  100. ImageView image = new ImageView((my_movie.cover()));
  101. image.setFitHeight(222);
  102. image.setFitWidth(150);
  103. detailsImage = ((ImageView) image);
  104. detailsImage.setX((detailsPane.getWidth() - detailsImage.getFitWidth()) / 2 + 100);
  105. detailsImage.setY(0);
  106. //movie.
  107. detailsPicPane.getChildren().add(detailsImage);
  108. scrollPane.setMaxWidth(browserPane.getWidth()-26);
  109. scrollPane.setMaxHeight(browserPane.getHeight()-50);
  110. moviesGrid.setMaxWidth(browserPane.getWidth()-26);
  111. moviesGrid.setMaxHeight(browserPane.getHeight()-50);
  112. loadPosters();
  113. }
  114. else
  115. {
  116. detailsPicPane.getChildren().clear();
  117. detailsPane.setMinWidth(0);
  118. detailsPane.setPrefWidth(0);
  119. detailsPane.setMaxWidth(0);
  120. }
  121. }
  122. public void closeDetails()
  123. {
  124. detailsPicPane.getChildren().clear();
  125. detailsPane.setMinWidth(1);
  126. detailsPane.setPrefWidth(1);
  127. }
  128. public void openFilter()
  129. {
  130. if (filterPane.getWidth() < 1)
  131. {
  132. //filterPane.maxWidth(300);
  133. filterPane.setMinWidth(300);
  134. filterPane.setPrefWidth(300);
  135. filterPane.setMaxWidth(300);
  136. //loadPosters();
  137. }
  138. else
  139. {
  140. filterPane.setMinWidth(0);
  141. filterPane.setPrefWidth(0);
  142. filterPane.setMaxWidth(0);
  143. //loadPosters();
  144. }
  145. }
  146. }