From 7c3e931648101fd89772968b2f26ccf64c25ee8b Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Sun, 2 Apr 2017 14:34:17 +0200
Subject: [PATCH] Fixed #61 - allow editing of categories via double click

---
 .../budgetmaster/ui/CategoryController.java   | 20 ++++++++++++++++++-
 .../budgetmaster/ui/PaymentController.java    |  7 +++----
 2 files changed, 22 insertions(+), 5 deletions(-)

diff --git a/src/de/deadlocker8/budgetmaster/ui/CategoryController.java b/src/de/deadlocker8/budgetmaster/ui/CategoryController.java
index 413622a22..132ff978a 100644
--- a/src/de/deadlocker8/budgetmaster/ui/CategoryController.java
+++ b/src/de/deadlocker8/budgetmaster/ui/CategoryController.java
@@ -12,6 +12,7 @@ import fontAwesome.FontIconType;
 import javafx.application.Platform;
 import javafx.beans.value.ChangeListener;
 import javafx.beans.value.ObservableValue;
+import javafx.event.EventHandler;
 import javafx.fxml.FXML;
 import javafx.fxml.FXMLLoader;
 import javafx.scene.Parent;
@@ -20,6 +21,7 @@ import javafx.scene.control.Button;
 import javafx.scene.control.Label;
 import javafx.scene.control.ListCell;
 import javafx.scene.control.ListView;
+import javafx.scene.input.MouseEvent;
 import javafx.scene.layout.AnchorPane;
 import javafx.stage.Modality;
 import javafx.stage.Stage;
@@ -44,7 +46,23 @@ public class CategoryController implements Refreshable
 			@Override
 			public ListCell<Category> call(ListView<Category> param)
 			{
-				return new CategoryCell(thisController);
+				CategoryCell cell = new  CategoryCell(thisController);
+				cell.addEventFilter(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>()
+				{
+					@Override
+					public void handle(MouseEvent event)
+					{
+						if(event.getClickCount() == 2)
+						{							
+							// don't allow editing of category "none"
+							if(cell.getItem().getID() != 1)
+							{
+								newCategory(true, cell.getItem());
+							}
+						}
+					}
+				});
+				return cell;
 			}
 		});
 
diff --git a/src/de/deadlocker8/budgetmaster/ui/PaymentController.java b/src/de/deadlocker8/budgetmaster/ui/PaymentController.java
index bb8e83b04..69defde60 100644
--- a/src/de/deadlocker8/budgetmaster/ui/PaymentController.java
+++ b/src/de/deadlocker8/budgetmaster/ui/PaymentController.java
@@ -64,12 +64,11 @@ public class PaymentController implements Refreshable
 					public void handle(MouseEvent event)
 					{
 						if(event.getClickCount() == 2)
-						{
-							PaymentCell c = (PaymentCell)event.getSource();
+						{						
 							// don't allow editing of payment "rest"
-							if(c.getItem().getCategoryID() != 2)
+							if(cell.getItem().getCategoryID() != 2)
 							{
-								payment(!c.getItem().isIncome(), true, c.getItem());
+								payment(!cell.getItem().isIncome(), true, cell.getItem());
 							}
 						}
 					}
-- 
GitLab