Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package view;
- import java.io.FileOutputStream;
- import patterns.AgeCheck;
- import java.io.IOException;
- import java.io.ObjectOutputStream;
- import java.util.Date;
- import javafx.beans.value.ObservableValue;
- import javafx.collections.FXCollections;
- import javafx.collections.ObservableList;
- import javafx.beans.value.ChangeListener;
- import javafx.event.ActionEvent;
- import javafx.event.EventHandler;
- import javafx.geometry.Insets;
- import javafx.scene.Scene;
- import javafx.scene.control.Button;
- import javafx.scene.control.ListView;
- import javafx.scene.control.RadioButton;
- import javafx.scene.control.Toggle;
- import javafx.scene.control.ToggleGroup;
- import javafx.scene.image.Image;
- import javafx.scene.layout.BorderPane;
- import javafx.scene.layout.HBox;
- import javafx.scene.layout.VBox;
- import javafx.stage.Stage;
- import model.AbstractFilm;
- import model.Film;
- import model.FilmWithFSKInfo;
- import model.FilmList;
- import patterns.*;
- public class FilmListView implements Observer {
- private FilmList filmList;
- private AgeCheck age = new EntranceStrategy();
- private ObservableList<AbstractFilm> listViewItems = FXCollections
- .observableArrayList();
- FilmListView self = this;
- public FilmListView(FilmList filmList) {
- this.filmList = filmList;
- this.filmList.register(this);
- }
- public void show(final Stage primaryStage) {
- primaryStage.setTitle("Meine Filmesammlung");
- BorderPane border = new BorderPane();
- final ListView<AbstractFilm> list = new ListView<AbstractFilm>();
- list.setItems(listViewItems);
- border.setCenter(list);
- Button btnAdd = new Button("Film hinzufügen");
- Button btnSave = new Button("Speichern");
- Button btnFSK = new Button("Film mit FSK hinzufügen");
- Button btnEDIT = new Button("Editieren");
- Button btnDEL = new Button("Löschen");
- HBox hbox = new HBox();
- hbox.setPadding(new Insets(15, 12, 15, 12));
- hbox.setSpacing(10);
- hbox.setStyle("-fx-background-color: linear-gradient(#6699CC, #104E8B);");
- btnEDIT.setOnAction(new EventHandler<ActionEvent>() {
- public void handle(ActionEvent e) {
- AbstractFilm absFilm = list.getSelectionModel()
- .getSelectedItem();
- }
- });
- btnDEL.setOnAction(new EventHandler<ActionEvent>() {
- public void handle(ActionEvent e) {
- AbstractFilm absFilm = list.getSelectionModel()
- .getSelectedItem();
- }
- });
- btnAdd.setOnAction(new EventHandler<ActionEvent>() {
- public void handle(ActionEvent e) {
- (new FilmView(new Film(), filmList)).show(primaryStage);
- }
- });
- btnFSK.setOnAction(new EventHandler<ActionEvent>() {
- public void handle(ActionEvent e) {
- (new FilmWithFSKinfoView(new FilmWithFSKInfo(), filmList))
- .show(primaryStage);
- }
- });
- btnSave.setOnAction(new EventHandler<ActionEvent>() {
- public void handle(ActionEvent e) {
- FileOutputStream fos = null;
- ObjectOutputStream out = null;
- try {
- fos = new FileOutputStream((new Date().getTime() + ".ser"));
- out = new ObjectOutputStream(fos);
- out.writeObject(filmList);
- out.close();
- } catch (IOException ex) {
- ex.printStackTrace();
- }
- }
- });
- border.setBottom(hbox);
- VBox vbox1 = new VBox();
- // vbox.setPadding(new Insets(0, 0, 0, 0));
- vbox1.setSpacing(10);
- // vbox.setStyle("-fx-background-color: linear-gradient(#6699CC, #104E8B);");
- VBox vbox2 = new VBox();
- // vbox.setPadding(new Insets(0, 0, 0, 0));
- vbox2.setSpacing(10);
- // vbox.setStyle("-fx-background-color: linear-gradient(#6699CC, #104E8B);");
- VBox vbox3 = new VBox();
- // vbox.setPadding(new Insets(0, 0, 0, 0));
- vbox3.setSpacing(10);
- // vbox.setStyle("-fx-background-color: linear-gradient(#6699CC, #104E8B);");
- final ToggleGroup group = new ToggleGroup();
- final RadioButton entranceRB = new RadioButton();
- entranceRB.setToggleGroup(group);
- entranceRB.setSelected(true);
- entranceRB.setText("Am Eingang");
- final RadioButton checkAlwaysRB = new RadioButton();
- checkAlwaysRB.setToggleGroup(group);
- checkAlwaysRB.setText("Immer Prüfen");
- Button lendButton = new Button("Ausleihen");
- vbox3.getChildren().addAll(entranceRB, checkAlwaysRB);
- vbox2.getChildren().addAll(btnSave, btnEDIT, btnDEL);
- vbox1.getChildren().addAll(btnAdd, btnFSK);
- hbox.getChildren().addAll(vbox1, vbox2, lendButton, vbox3);
- group.selectedToggleProperty().addListener(
- new ChangeListener<Toggle>() {
- public void changed(ObservableValue<? extends Toggle> ov,
- Toggle toggle, Toggle new_toggle) {
- if (new_toggle == entranceRB)
- age = new EntranceStrategy();
- else
- age = new CheckAlwaysStrategy();
- }
- });
- lendButton.setOnAction(new EventHandler<ActionEvent>() {
- public void handle(ActionEvent e) {
- AbstractFilm absFilm = list.getSelectionModel()
- .getSelectedItem();
- if (age instanceof EntranceStrategy) {
- age = new EntranceStrategy();
- age.show(primaryStage);
- } else {
- if (absFilm instanceof FilmWithFSKInfo) {
- age = new CheckAlwaysStrategy();
- age.setFilm((FilmWithFSKInfo) absFilm);
- age.show(primaryStage);
- } else
- new Notification("Ausleihe best�tigt")
- .show(primaryStage);
- }
- }
- });
- Scene scene = new Scene(border, 500, 325);
- primaryStage.setScene(scene);
- primaryStage.getIcons().add(
- new Image(FilmListView.class.getResourceAsStream("icon.png")));
- updateDisplayedList();
- primaryStage.show();
- }
- public void updateDisplayedList() {
- listViewItems.clear();
- listViewItems.addAll(filmList.getAbstractFilmList());
- }
- public void aktualisieren() {
- this.updateDisplayedList();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement