From 48a81522e074405f0aa4a798120aa6aec1454e46 Mon Sep 17 00:00:00 2001 From: iMoHax Date: Fri, 8 Aug 2014 12:25:01 +0400 Subject: [PATCH] implement cancel edit on Esc key pressed --- .../java/ru/trader/view/support/NumberField.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/client/src/main/java/ru/trader/view/support/NumberField.java b/client/src/main/java/ru/trader/view/support/NumberField.java index b2523b4..b3cb348 100644 --- a/client/src/main/java/ru/trader/view/support/NumberField.java +++ b/client/src/main/java/ru/trader/view/support/NumberField.java @@ -6,6 +6,7 @@ import javafx.geometry.Point2D; import javafx.geometry.Pos; import javafx.scene.control.TextField; import javafx.scene.control.Tooltip; +import javafx.scene.input.KeyCode; import javafx.util.converter.NumberStringConverter; import java.text.DecimalFormat; @@ -73,12 +74,22 @@ public class NumberField extends TextField { setTooltip(null); } }); - + setOnKeyPressed((e) -> { + if (e.getCode().equals(KeyCode.ESCAPE)) { + editCancel(); + e.consume(); + } + }); setOnAction((e) -> parseNumber()); focusedProperty().addListener((ob, o, n) -> {if (o) parseNumber();}); setAlignment(Pos.BASELINE_RIGHT); } + private void editCancel() { + setText(converter.toString(getValue())); + getParent().requestFocus(); + } + private void parseNumber(){ String text = getText(); if (text == null || text.isEmpty()) {