From 4ea47ea4101765b40ca2441337cc12d82b4ddfb3 Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Mon, 2 Oct 2017 19:54:19 +0200
Subject: [PATCH] Fixed #206 - search --> rangeslider --> textfields on change
 not only on enter

---
 .../ui/controller/SearchController.java       | 59 ++++++++-----------
 1 file changed, 26 insertions(+), 33 deletions(-)

diff --git a/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/SearchController.java b/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/SearchController.java
index bb8788b46..1fab017b8 100644
--- a/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/SearchController.java
+++ b/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/SearchController.java
@@ -125,8 +125,7 @@ public class SearchController extends BaseController implements Styleable
 			hboxSearchByAmount.setDisable(!c);
 		});
 		
-		hboxSearchByAmount.setDisable(true);
-		
+		hboxSearchByAmount.setDisable(true);		
 
 		int maximum;
 		try
@@ -160,12 +159,7 @@ public class SearchController extends BaseController implements Styleable
 		HBox.setHgrow(rangeSlider, Priority.ALWAYS);
 		
 		textFieldAmountMin.setTextFormatter(new TextFormatter<>(c -> {
-			if(c.getControlNewText().isEmpty())
-			{
-				return c;
-			}
-
-			if(c.getControlNewText().matches("[0-9]*"))
+			if(c.getControlNewText().isEmpty() || c.getControlNewText().matches("[0-9]*"))
 			{
 				return c;
 			}
@@ -176,12 +170,7 @@ public class SearchController extends BaseController implements Styleable
 		}));
 		
 		textFieldAmountMax.setTextFormatter(new TextFormatter<>(c -> {
-			if(c.getControlNewText().isEmpty())
-			{
-				return c;
-			}
-
-			if(c.getControlNewText().matches("[0-9]*"))
+			if(c.getControlNewText().isEmpty() || c.getControlNewText().matches("[0-9]*"))
 			{
 				return c;
 			}
@@ -189,28 +178,14 @@ public class SearchController extends BaseController implements Styleable
 			{
 				return null;
 			}
-		}));
+		}));	
 		
-		textFieldAmountMin.setOnKeyReleased((event)->{			
-			if(event.getCode() == KeyCode.ENTER)
-			{
-				String text = textFieldAmountMin.getText();
-				if(text != null && !text.equals(""))
-				{
-					rangeSlider.setLowValue(Integer.parseInt(text));
-				}
-			}
+		textFieldAmountMin.textProperty().addListener((a, b, c)->{
+			setRangeSliderAmountMin();
 		});
 		
-		textFieldAmountMax.setOnKeyReleased((event)->{			
-			if(event.getCode() == KeyCode.ENTER)
-			{
-				String text = textFieldAmountMax.getText();
-				if(text != null && !text.equals(""))
-				{
-					rangeSlider.setHighValue(Integer.parseInt(text));
-				}
-			}
+		textFieldAmountMax.textProperty().addListener((a, b, c)->{
+			setRangeSliderAmountMax();
 		});
 		
 		textFieldAmountMin.setText("0");
@@ -233,6 +208,24 @@ public class SearchController extends BaseController implements Styleable
 		applyStyle();	
 	}
 	
+	private void setRangeSliderAmountMin()
+	{
+		String text = textFieldAmountMin.getText();
+		if(text != null && !text.equals(""))
+		{
+			rangeSlider.setLowValue(Integer.parseInt(text));
+		}
+	}
+	
+	private void setRangeSliderAmountMax()
+	{
+		String text = textFieldAmountMax.getText();
+		if(text != null && !text.equals(""))
+		{
+			rangeSlider.setHighValue(Integer.parseInt(text));
+		}
+	}
+	
 	private int getMaxAmountFromServer() throws Exception
 	{						
 		ServerConnection connection = new ServerConnection(controller.getSettings());			
-- 
GitLab