Advertisement
Guest User

Untitled

a guest
Apr 21st, 2014
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.65 KB | None | 0 0
  1. package view;
  2.  
  3. import java.io.FileOutputStream;
  4.  
  5. import patterns.AgeCheck;
  6.  
  7. import java.io.IOException;
  8. import java.io.ObjectOutputStream;
  9. import java.util.Date;
  10.  
  11. import javafx.beans.value.ObservableValue;
  12. import javafx.collections.FXCollections;
  13. import javafx.collections.ObservableList;
  14. import javafx.beans.value.ChangeListener;
  15. import javafx.event.ActionEvent;
  16. import javafx.event.EventHandler;
  17. import javafx.geometry.Insets;
  18. import javafx.scene.Scene;
  19. import javafx.scene.control.Button;
  20. import javafx.scene.control.ListView;
  21. import javafx.scene.control.RadioButton;
  22. import javafx.scene.control.Toggle;
  23. import javafx.scene.control.ToggleGroup;
  24. import javafx.scene.image.Image;
  25. import javafx.scene.layout.BorderPane;
  26. import javafx.scene.layout.HBox;
  27. import javafx.scene.layout.VBox;
  28. import javafx.stage.Stage;
  29. import model.AbstractFilm;
  30. import model.Film;
  31. import model.FilmWithFSKInfo;
  32. import model.FilmList;
  33. import patterns.*;
  34.  
  35. public class FilmListView implements Observer {
  36.  
  37.     private FilmList filmList;
  38.     private AgeCheck age = new EntranceStrategy();
  39.  
  40.     private ObservableList<AbstractFilm> listViewItems = FXCollections
  41.             .observableArrayList();
  42.  
  43.     FilmListView self = this;
  44.  
  45.     public FilmListView(FilmList filmList) {
  46.         this.filmList = filmList;
  47.         this.filmList.register(this);
  48.     }
  49.  
  50.     public void show(final Stage primaryStage) {
  51.         primaryStage.setTitle("Meine Filmesammlung");
  52.  
  53.         BorderPane border = new BorderPane();
  54.  
  55.         final ListView<AbstractFilm> list = new ListView<AbstractFilm>();
  56.         list.setItems(listViewItems);
  57.         border.setCenter(list);
  58.  
  59.         Button btnAdd = new Button("Film hinzufügen");
  60.         Button btnSave = new Button("Speichern");
  61.         Button btnFSK = new Button("Film mit FSK hinzufügen");
  62.         Button btnEDIT = new Button("Editieren");
  63.         Button btnDEL = new Button("Löschen");
  64.  
  65.         HBox hbox = new HBox();
  66.         hbox.setPadding(new Insets(15, 12, 15, 12));
  67.         hbox.setSpacing(10);
  68.         hbox.setStyle("-fx-background-color: linear-gradient(#6699CC, #104E8B);");
  69.  
  70.         btnEDIT.setOnAction(new EventHandler<ActionEvent>() {
  71.             public void handle(ActionEvent e) {
  72.                 AbstractFilm absFilm = list.getSelectionModel()
  73.                         .getSelectedItem();
  74.             }
  75.         });
  76.        
  77.         btnDEL.setOnAction(new EventHandler<ActionEvent>() {
  78.             public void handle(ActionEvent e) {
  79.                 AbstractFilm absFilm = list.getSelectionModel()
  80.                         .getSelectedItem();
  81.             }
  82.         });
  83.        
  84.         btnAdd.setOnAction(new EventHandler<ActionEvent>() {
  85.             public void handle(ActionEvent e) {
  86.                 (new FilmView(new Film(), filmList)).show(primaryStage);
  87.             }
  88.         });
  89.  
  90.         btnFSK.setOnAction(new EventHandler<ActionEvent>() {
  91.             public void handle(ActionEvent e) {
  92.                 (new FilmWithFSKinfoView(new FilmWithFSKInfo(), filmList))
  93.                         .show(primaryStage);
  94.             }
  95.         });
  96.  
  97.         btnSave.setOnAction(new EventHandler<ActionEvent>() {
  98.  
  99.             public void handle(ActionEvent e) {
  100.                 FileOutputStream fos = null;
  101.                 ObjectOutputStream out = null;
  102.                 try {
  103.                     fos = new FileOutputStream((new Date().getTime() + ".ser"));
  104.                     out = new ObjectOutputStream(fos);
  105.                     out.writeObject(filmList);
  106.                     out.close();
  107.                 } catch (IOException ex) {
  108.                     ex.printStackTrace();
  109.                 }
  110.             }
  111.         });
  112.  
  113.         border.setBottom(hbox);
  114.  
  115.         VBox vbox1 = new VBox();
  116.         // vbox.setPadding(new Insets(0, 0, 0, 0));
  117.         vbox1.setSpacing(10);
  118.         // vbox.setStyle("-fx-background-color: linear-gradient(#6699CC, #104E8B);");
  119.        
  120.         VBox vbox2 = new VBox();
  121.         // vbox.setPadding(new Insets(0, 0, 0, 0));
  122.         vbox2.setSpacing(10);
  123.         // vbox.setStyle("-fx-background-color: linear-gradient(#6699CC, #104E8B);");
  124.        
  125.         VBox vbox3 = new VBox();
  126.         // vbox.setPadding(new Insets(0, 0, 0, 0));
  127.         vbox3.setSpacing(10);
  128.         // vbox.setStyle("-fx-background-color: linear-gradient(#6699CC, #104E8B);");
  129.        
  130.         final ToggleGroup group = new ToggleGroup();
  131.  
  132.         final RadioButton entranceRB = new RadioButton();
  133.         entranceRB.setToggleGroup(group);
  134.         entranceRB.setSelected(true);
  135.         entranceRB.setText("Am Eingang");
  136.  
  137.         final RadioButton checkAlwaysRB = new RadioButton();
  138.         checkAlwaysRB.setToggleGroup(group);
  139.         checkAlwaysRB.setText("Immer Prüfen");
  140.  
  141.         Button lendButton = new Button("Ausleihen");
  142.         vbox3.getChildren().addAll(entranceRB, checkAlwaysRB);
  143.         vbox2.getChildren().addAll(btnSave, btnEDIT, btnDEL);
  144.         vbox1.getChildren().addAll(btnAdd, btnFSK);
  145.         hbox.getChildren().addAll(vbox1, vbox2, lendButton, vbox3);
  146.         group.selectedToggleProperty().addListener(
  147.                 new ChangeListener<Toggle>() {
  148.                     public void changed(ObservableValue<? extends Toggle> ov,
  149.                             Toggle toggle, Toggle new_toggle) {
  150.                         if (new_toggle == entranceRB)
  151.                             age = new EntranceStrategy();
  152.                         else
  153.                             age = new CheckAlwaysStrategy();
  154.  
  155.                     }
  156.                 });
  157.  
  158.         lendButton.setOnAction(new EventHandler<ActionEvent>() {
  159.             public void handle(ActionEvent e) {
  160.                 AbstractFilm absFilm = list.getSelectionModel()
  161.                         .getSelectedItem();
  162.                 if (age instanceof EntranceStrategy) {
  163.                     age = new EntranceStrategy();
  164.                     age.show(primaryStage);
  165.                 } else {
  166.                     if (absFilm instanceof FilmWithFSKInfo) {
  167.                         age = new CheckAlwaysStrategy();
  168.                         age.setFilm((FilmWithFSKInfo) absFilm);
  169.                         age.show(primaryStage);
  170.  
  171.                     } else
  172.                         new Notification("Ausleihe best�tigt")
  173.                                 .show(primaryStage);
  174.  
  175.                 }
  176.             }
  177.         });
  178.  
  179.         Scene scene = new Scene(border, 500, 325);
  180.         primaryStage.setScene(scene);
  181.         primaryStage.getIcons().add(
  182.                 new Image(FilmListView.class.getResourceAsStream("icon.png")));
  183.         updateDisplayedList();
  184.         primaryStage.show();
  185.     }
  186.  
  187.     public void updateDisplayedList() {
  188.         listViewItems.clear();
  189.         listViewItems.addAll(filmList.getAbstractFilmList());
  190.     }
  191.  
  192.     public void aktualisieren() {
  193.         this.updateDisplayedList();
  194.  
  195.     }
  196. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement