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