Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package de.hhn.it.pp.javafx.controllers;
- import java.io.IOException;
- import java.net.URL;
- import java.time.LocalDate;
- import java.time.ZoneId;
- import java.util.Date;
- import java.util.EventObject;
- import java.util.List;
- import java.util.ResourceBundle;
- import javafx.collections.FXCollections;
- import javafx.collections.ObservableList;
- import javafx.event.ActionEvent;
- import de.hhn.it.pp.components.lgs.LinearSystem;
- import de.hhn.it.pp.components.reminder.IdGenerator;
- import de.hhn.it.pp.components.reminder.Priority;
- import de.hhn.it.pp.components.reminder.ReminderImpl;
- import de.hhn.it.pp.components.reminder.Task;
- import de.hhn.it.pp.javafx.Main;
- import javafx.fxml.FXML;
- import javafx.fxml.FXMLLoader;
- import javafx.fxml.Initializable;
- import javafx.scene.Parent;
- import javafx.scene.Scene;
- import javafx.scene.control.Alert;
- import javafx.scene.control.Alert.AlertType;
- import javafx.scene.control.Button;
- import javafx.scene.control.ComboBox;
- import javafx.scene.control.DatePicker;
- import javafx.scene.control.Label;
- import javafx.scene.control.ListView;
- import javafx.scene.control.TextField;
- import javafx.scene.layout.BorderPane;
- import javafx.stage.Stage;
- //import models.TaskModel;
- import javafx.scene.Node;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- public class ReminderMainController implements Initializable {
- public ObservableList<Task> listTaskData = FXCollections.observableArrayList();
- @FXML
- private Button btnDelete;
- @FXML
- private Button btnEdit;
- @FXML
- public ListView<Task> viewTaskList;
- @FXML
- private Label lbReminder;
- @FXML
- private Button btnNewTask;
- @FXML
- private Label lbDescription;
- @FXML
- private Label lbDeadline;
- @FXML
- private DatePicker pickerDeadline;
- @FXML
- private TextField fldDescription;
- @FXML
- private ComboBox<Priority> ddPriority;
- @FXML
- private Label lbPriority;
- @FXML
- private Label lbTitle;
- @FXML
- private Button btnCancel;
- @FXML
- private DatePicker pickerReminderDate;
- @FXML
- private Button btnSave;
- @FXML
- private Label lbReminderDate;
- @FXML
- private TextField fldTitle;
- @FXML
- private BorderPane BorderPaneCreationWindow;
- public Main main;
- private ReminderImpl reminder = new ReminderImpl();
- public Stage prevStage;
- private boolean isMainView;
- private static final Logger logger = LoggerFactory.getLogger(ReminderMainController.class);
- public void setPrevStage(Stage stage) {
- this.prevStage = stage;
- }
- @FXML
- // btnNewTask.setOnAction(new EventHandler<ActionEvent>() {
- // scene.addEventFilter(MouseEvent.MOUSE_PRESSED, new EventHandler<MouseEvent>()
- // {
- // @Overrite
- public void btnNewTaskClicked(ActionEvent event) throws IOException {
- try {
- isMainView=false;
- Node node = (Node) event.getSource();
- Stage stage = (Stage) node.getScene().getWindow();
- Parent root = FXMLLoader.load(getClass().getResource("/fxml/ReminderTaskCreationWindow.fxml"));
- // create a new scene with root and set the stage
- Scene scene = new Scene(root);
- stage.setScene(scene);
- // ddPriority = new ComboBox<>();
- // ddPriority.getItems().addAll(Priority.values());
- stage.show();
- } catch (IOException | RuntimeException e) {
- logger.error("Es ist ein Fehler beim Laden des zweiten Screens aufgetreten: ", e);
- }
- }
- @FXML
- public void btnEditClicked(ActionEvent event) {
- try {
- isMainView=false;
- Node node = (Node) event.getSource();
- Stage stage = (Stage) node.getScene().getWindow();
- Parent root = FXMLLoader.load(getClass().getResource("/fxml/ReminderTaskCreationWindow.fxml"));
- // create a new scene with root and set the stage
- Scene scene = new Scene(root);
- stage.setScene(scene);
- stage.show();
- } catch (IOException | RuntimeException e) {
- logger.error("Es ist ein Fehler beim Laden des zweiten Screens aufgetreten: ", e);
- }
- }
- @FXML
- void btnSaveClicked(ActionEvent event) {
- LocalDate localDate = pickerDeadline.getValue();
- Date deadline = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
- Date reminderDate = null;
- if (pickerReminderDate.getValue() != null) {
- localDate = pickerReminderDate.getValue();
- reminderDate = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
- }
- if (validateReminderDate(reminderDate, deadline)) {
- reminder.createTask(fldTitle.getText(), fldDescription.getText(), deadline, ddPriority.getValue(),
- reminderDate);
- for (Task task : reminder.getAllTasks()) {
- listTaskData.add(task);
- }
- Date today = new Date();
- if (reminderDate != null) {
- if (reminderDate.compareTo(today) <= 0) {
- logger.info("Reminder date is today / overdue");
- Alert alert = new Alert(AlertType.INFORMATION);
- alert.setTitle("Reminder");
- alert.setHeaderText(null);
- alert.setContentText("Don't forget " + fldTitle.getText() + " on " + deadline + "!");
- alert.showAndWait();
- }
- }
- try {
- isMainView=true;
- Node node = (Node) event.getSource();
- Stage stage = (Stage) node.getScene().getWindow();
- Parent root = FXMLLoader.load(getClass().getResource("/fxml/ReminderMainWindow.fxml"));
- // create a new scene with root and set the stage
- Scene scene = new Scene(root);
- stage.setScene(scene);
- stage.show();
- } catch (IOException | RuntimeException e) {
- logger.error("Es ist ein Fehler beim Laden des ersten Screens aufgetreten: ", e);
- }
- }
- }
- public boolean validateReminderDate(Date reminderDate, Date deadline) {
- if (reminderDate != null) {
- if (reminderDate.after(deadline)) {
- Alert alert = new Alert(AlertType.ERROR);
- alert.setTitle("Cannot Save");
- alert.setHeaderText(null);
- alert.setContentText("Reminder Date can't be set after Deadline!");
- alert.showAndWait();
- return false;
- } else {
- return true;
- }
- }
- return true;
- }
- @FXML
- public void btnDeleteClicked() {
- try {
- isMainView=true;
- Integer taskId = viewTaskList.getSelectionModel().getSelectedItem().getId();
- logger.debug("Selected taskId: " + taskId);
- viewTaskList.getItems().remove(viewTaskList.getSelectionModel().getSelectedItem());
- viewTaskList.refresh();
- } catch (NullPointerException e) {
- logger.error("Exception @removeItem: " + e);
- }
- }
- @FXML
- void btnCancelClicked(ActionEvent event) {
- try {
- isMainView=true;
- Node node = (Node) event.getSource();
- Stage stage = (Stage) node.getScene().getWindow();
- Parent root = FXMLLoader.load(getClass().getResource("/fxml/ReminderMainWindow.fxml"));
- // create a new scene with root and set the stage
- Scene scene = new Scene(root);
- stage.setScene(scene);
- stage.show();
- } catch (IOException | RuntimeException e) {
- logger.error("Es ist ein Fehler beim Laden des ersten Screens aufgetreten: ", e);
- }
- }
- public void setMain(Main main) {
- this.main = main;
- }
- @Override
- public void initialize(URL arg0, ResourceBundle arg1) {
- // if(viewTaskList != null) {
- // viewTaskList.setItems(this.listTaskData);
- // // if (viewTaskList == null) {
- // // createDummyData("Arzttermin");
- // // }
- // }
- }
- // public void createDummyData(String title) {
- //// reminder.createTask(title, null, new Date(), null, null);
- //// for (Task task : reminder.getAllTasks()) {
- //// listTaskData.add(task);
- //// }
- ////
- //// // either uncomment next if cond. OR write proper method call (check main
- //// // screen...)
- //// if (viewTaskList != null) {
- //// viewTaskList.setItems(listTaskData);
- //// }
- // }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement