package application.input; import lang.ArgumentClosure; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.scene.control.TextArea; import javafx.scene.layout.Pane; public class InputViewJavaFx implements InputView { private final TextArea textArea = new TextArea(); @Override public void onChange(final ArgumentClosure<String> closure) { textArea.textProperty().addListener(new ChangeListener<String>() { @Override public void changed(ObservableValue<? extends String> observableValue, String s, String s1) { closure.execute(s1); } }); } @Override public void display(String message) { textArea.textProperty().set(message); } @Override public void addTo(Pane pane) { pane.getChildren().add(textArea); } }