From e8a7f27efc3ee6628431867681aa43800f6fe96d Mon Sep 17 00:00:00 2001
From: Simon Barner <barner@fortiss.org>
Date: Wed, 10 Jun 2020 17:54:44 +0200
Subject: [PATCH] RED

Issue-Ref: 4029
Issue-Url: https://af3-developer.fortiss.org/issues/4029

Signed-off-by: Simon Barner <barner@fortiss.org>
---
 .../ui/javafx/control/treetableview/.ratings     |  2 +-
 .../DynamicTreeTableUIProviderBase.java          | 16 ++++++++++++++--
 2 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/.ratings b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/.ratings
index 7d6d9a66e..827f6877e 100644
--- a/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/.ratings
+++ b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/.ratings
@@ -1,6 +1,6 @@
 DynamicTreeContentProviderBase.java 6760a6dc5721175b1dada8f30fd9da05f7bcc4b3 GREEN
 DynamicTreeItem.java 75dc5534b119ffdb3c10a65810c2a0f330b7955e GREEN
-DynamicTreeTableUIProviderBase.java 928ef4fd5d6171c43d31ea628ded7e338469f5a8 YELLOW
+DynamicTreeTableUIProviderBase.java b9e68bede4ad0763e4ea3d3c1e7edeb0d63ed261 RED
 DynamicTreeTableViewer.java 5e58a31a63f8e56d8c8e69e2c4d095809bc46bf1 YELLOW
 DynamicTreeUIProviderBase.java e9b68607683de279d0cb8712a28dc131c5c33ece GREEN
 DynamicTreeViewer.java 725f41f4fb4b6bfa813f010fb9083ab02eea164a GREEN
diff --git a/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeTableUIProviderBase.java b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeTableUIProviderBase.java
index 928ef4fd5..b9e68bede 100644
--- a/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeTableUIProviderBase.java
+++ b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeTableUIProviderBase.java
@@ -156,29 +156,41 @@ public abstract class DynamicTreeTableUIProviderBase<T> {
 
 	/** Applies a checkbox editing support to the given checkbox column. */
 	/* package */ final void applyToCheckboxColumn(int i, TreeTableColumn<T, Boolean> column) {
+		// TODO (SB): Maybe the following would be safer?
+		// column.setOnEditCommit(null);
+		// column.setEditable(isEditable(i));
+		// if(!isEditable(i)) {
+		// return;
+		// }
 		if(!isEditable(i)) {
 			column.setEditable(false);
 			column.setOnEditCommit(null);
 			return;
 		}
 		column.setEditable(true);
+		// end of previous TODO
+
+		// TODO Could we save some memory here and use the same CallBack for all columns (i.e., make
+		// this a static field of DynamicTreeTableUIProviderBase)?
 		// setOnEditCommit() does not work for CheckBoxTreeTableCell. This is why a custom
 		// CellValueFactory has to be set here
 		column.setCellValueFactory(new Callback<TreeTableColumn.CellDataFeatures<T, Boolean>, //
 				ObservableValue<Boolean>>() {
 
+			/** {@inheritDoc} */
 			@Override
 			public ObservableValue<Boolean>
 					call(TreeTableColumn.CellDataFeatures<T, Boolean> param) {
 				TreeItem<T> treeItem = param.getValue();
 				T value = treeItem.getValue();
 				String label = getLabel(value, i);
+				// TODO (SB) Error handling for values != "true" or "false"
 				boolean b = Boolean.valueOf(label);
 				SimpleBooleanProperty booleanProp = new SimpleBooleanProperty(b);
 
-				// equal behavior to setOnEditCommit()
+				// equal behavior as setOnEditCommit()
 				booleanProp.addListener(new ChangeListener<Boolean>() {
-
+					/** {@inheritDoc} */
 					@Override
 					public void changed(ObservableValue<? extends Boolean> observable,
 							Boolean oldValue, Boolean newValue) {
-- 
GitLab