From 84f05706d07c4be84127979092da81be5cad0f3b Mon Sep 17 00:00:00 2001 From: Andreas Bayha <bayha@fortiss.org> Date: Mon, 13 Sep 2021 12:03:17 +0200 Subject: [PATCH] Kernel: Cells in TreeTable rows without item cannot be edited by default For rows with empty item (such as headlines) the editability of the whole column was used so far. Now such cells can only be edited if they at least contain an empty String. Issue-Ref: 4133 Issue-Url: #4133 Signed-off-by: Andreas Bayha <bayha@fortiss.org> --- .../ui/javafx/control/treetableview/.ratings | 2 +- .../DynamicTreeTableUIProviderBase.java | 20 +++++++++++++++++-- 2 files changed, 19 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 88368aa49..de9d0fbc4 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 @@ -5,7 +5,7 @@ DynamicTextFieldTreeTableCell.java de24117e6f785b328f1ff62383626a0b4b54e8ff GREE DynamicTreeContentProviderBase.java 91896b1fb5104d126544c44c1ff8c30f2a13a8d6 GREEN DynamicTreeItem.java 7486071d20e896d6ca9a9101bf105caccf3656d0 GREEN DynamicTreeItemBase.java d883066ecc181120302ca32f328538de7a45b093 GREEN -DynamicTreeTableUIProviderBase.java 7c534d8567fb88159977765cb7b6f60c21f1ab48 YELLOW +DynamicTreeTableUIProviderBase.java 5bc7f6a74e379baa525f5d3420a95e558cbcbe90 YELLOW DynamicTreeTableViewer.java ead6f6671e9cb6b14632940bf440cba7e81fcd98 GREEN DynamicTreeUIProviderBase.java 82d3c051213f0147f4c67ad247a08696cee73110 GREEN DynamicTreeViewer.java 545f1ca10b7b3cad171b294a4b447875da45c9ed 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 7c534d856..5bc7f6a74 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 @@ -48,6 +48,11 @@ import javafx.util.converter.DefaultStringConverter; */ public abstract class DynamicTreeTableUIProviderBase<T> { /** + * Retrieves the label to be displayed in the given position. + * + * Note: An empty cell can only be editable, if an empty String is returned here instead of + * 'null'. + * * @param element * the element to be displayed in the current row * @param column @@ -347,9 +352,20 @@ public abstract class DynamicTreeTableUIProviderBase<T> { @Override public void updateItem(String item, boolean empty) { super.updateItem(item, empty); + styleCell(this, columnIndex); + } + + /** {@inheritDoc} */ + @Override + public void startEdit() { + // null items are in cells, which cannot contain a value. Otherwise they + // would contain an empty String. + if(getItem() == null) { + return; + } - setEditable(item != null); + super.startEdit(); } }; @@ -380,7 +396,7 @@ public abstract class DynamicTreeTableUIProviderBase<T> { /** {@inheritDoc} */ @Override public void startEdit() { - if(!isEditable() || !getTreeTableView().isEditable() || + if(getItem() == null || !isEditable() || !getTreeTableView().isEditable() || !getTableColumn().isEditable()) { return; } -- GitLab