package de.uniluebeck.mi.projmi6.controller; import de.uniluebeck.mi.projmi6.model.HL7Message; import de.uniluebeck.mi.projmi6.view.MessageIcon; import javafx.beans.property.SimpleListProperty; import javafx.collections.FXCollections; 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; /** * Created by Johannes on 21/11/2015. */ public class MessageController { final MainController mainController; private final SimpleListProperty messages = new SimpleListProperty(FXCollections.observableArrayList()); @FXML private MessageIcon messageIcon; public MessageController(MainController mainController) { this.mainController = mainController; } @FXML private void initialize() { messageIcon.messageCountProperty().bind(messages.sizeProperty()); } @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("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(); } }