package de.uniluebeck.mi.projmi6.controller; import de.uniluebeck.mi.projmi6.model.Fall; import de.uniluebeck.mi.projmi6.model.HL7Message; import de.uniluebeck.mi.projmi6.model.Patient; import de.uniluebeck.mi.projmi6.view.MessageIcon; import javafx.beans.property.SimpleListProperty; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.scene.image.Image; import javafx.stage.Modality; import javafx.stage.Stage; import java.io.IOException; import java.time.LocalDateTime; /** * Created by Johannes on 21/11/2015. */ public class MessageController { final MainController mainController; @FXML private MessageIcon messageIcon; private final SimpleListProperty messages = new SimpleListProperty(FXCollections.observableArrayList()); public MessageController(MainController mainController){ this.mainController = mainController; } @FXML private void initialize(){ messageIcon.messageCountProperty().bind(messages.sizeProperty()); messages.add(new HL7Message(null, 0, LocalDateTime.now(), null, true)); } @FXML private void onMessageIconClicked(){ showMessageList(); } private void showMessageList(){ FXMLLoader fxmlLoader = new FXMLLoader(); fxmlLoader.setLocation(getClass().getClassLoader().getResource("message_list.fxml")); MessageListController messageListController = new MessageListController(messages, mainController); fxmlLoader.setControllerFactory(clazz -> messageListController); Parent root = null; try { root = fxmlLoader.load(); } catch (IOException e) { e.printStackTrace(); return; } Stage stage = new Stage(); stage.setTitle(messages.size()+ " neue HL7-Nachrichten"); stage.setScene(new Scene(root, 600, 400)); stage.getIcons().add(new Image("icon.png")); stage.initModality(Modality.WINDOW_MODAL); stage.initOwner(messageIcon.getScene().getWindow()); stage.show(); } public void addMessage(HL7Message message){ messages.add(message); mainController.getLogController().refreshLogFromDb(); } }