public DisposableNode createNode(final PropertyElementController<T> controller) {
final TextField textBox = new TextField();
final InvalidationListener textBoxListener = createTextBoxListener(controller, textBox);
textBox.textProperty().addListener(textBoxListener);
if (controller.getValue() != null) {
textBox.textProperty().setValue(formatProvider.getFormat(controller.getElement()).format(controller.getValue()));
}
final ChangeListener controllerListener = createControllerListener(textBox, controller);
controller.addListener(controllerListener);
textBox.promptTextProperty().bind(controller.getPromptText());