From b6e59e4c94b5e0013013dbe1402f01224a116c16 Mon Sep 17 00:00:00 2001 From: TruongQuangSB Date: Thu, 23 Apr 2026 16:34:11 +0200 Subject: [PATCH 1/4] Fix table empty row by change area --- .../table/internal/TableServiceUtils.java | 22 +++++++++---------- .../extensions/CellContentExtensions.xtend | 14 ++++++++---- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/internal/TableServiceUtils.java b/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/internal/TableServiceUtils.java index dbf2e70e3..a74ba441b 100644 --- a/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/internal/TableServiceUtils.java +++ b/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/internal/TableServiceUtils.java @@ -374,11 +374,9 @@ private static void filterRowGroupBelongToControlAreaByDiffState( (rowGroup, notBelongToAreaState) -> rowGroup.getRows() .forEach(row -> handleTableRowNotBelongToArea() .accept(row, notBelongToAreaState))); - result.getTablecontent().getRowgroups().forEach(group -> { - if (!relevantRowGroup.contains(group)) { - group.getRows().clear(); - } - }); + result.getTablecontent() + .getRowgroups() + .removeIf(group -> !relevantRowGroup.contains(group)); } private static List filterElementBelongToControlArea( @@ -413,13 +411,13 @@ private static List filterElementBelongToControlArea( return listElement.stream().filter(ele -> { final UrObjektEachContainer objEachContainer = getUrObj.apply(ele); - - final boolean isInitialObjBelongToAreas = transformationService - .isObjectBelongToRendereArea(objEachContainer.initalObj, - inititalControlAreas); - final boolean isFinalObjBelongToAreas = transformationService - .isObjectBelongToRendereArea(objEachContainer.finalObj, - finalControlAreas); + final boolean isInitialObjBelongToAreas = !inititalControlAreas + .isEmpty() + && transformationService.isObjectBelongToRendereArea( + objEachContainer.initalObj, inititalControlAreas); + final boolean isFinalObjBelongToAreas = !finalControlAreas.isEmpty() + && transformationService.isObjectBelongToRendereArea( + objEachContainer.finalObj, finalControlAreas); if (isInitialObjBelongToAreas != isFinalObjBelongToAreas && handleByInitialOrFinalElementNotBelongToArea != null) { handleByInitialOrFinalElementNotBelongToArea.accept(ele, diff --git a/java/bundles/org.eclipse.set.model.tablemodel.extensions/src/org/eclipse/set/model/tablemodel/extensions/CellContentExtensions.xtend b/java/bundles/org.eclipse.set.model.tablemodel.extensions/src/org/eclipse/set/model/tablemodel/extensions/CellContentExtensions.xtend index 43aede3eb..4d7789e07 100644 --- a/java/bundles/org.eclipse.set.model.tablemodel.extensions/src/org/eclipse/set/model/tablemodel/extensions/CellContentExtensions.xtend +++ b/java/bundles/org.eclipse.set.model.tablemodel.extensions/src/org/eclipse/set/model/tablemodel/extensions/CellContentExtensions.xtend @@ -188,7 +188,12 @@ class CellContentExtensions { static def dispatch String getPlainStringValue( CompareStateCellContent content) { - return '''«content.oldValue.stringValueIterable»/«content.newValue.stringValueIterable»''' + val oldValue = content.oldValue.stringValueIterable + val newValue = content.newValue.stringValueIterable + if (oldValue.isNullOrEmpty && newValue.nullOrEmpty) { + return "" + } + return '''«oldValue»/«newValue»''' } static def dispatch String getPlainStringValue( @@ -217,7 +222,7 @@ class CellContentExtensions { static def dispatch Iterable getStringValueIterable( StringCellContent content) { - return content.value + return content?.value.map[trim].filter[!blank && !nullOrEmpty] ?: #[] } static def List getStringValueList(CellContent content) { @@ -385,8 +390,9 @@ class CellContentExtensions { private static def String getMultiColorFormat(MultiColorContent content) { if (Strings.isNullOrEmpty(content.multiColorValue)) { - return Strings.isNullOrEmpty(content.stringFormat) ? "" : content. - stringFormat.htmlString + return Strings.isNullOrEmpty(content.stringFormat) + ? "" + : content.stringFormat.htmlString } if (content.isDisableMultiColor) { From 6db5c7facdb1e8f336cf79b06c89790f97c1280f Mon Sep 17 00:00:00 2001 From: TruongQuangSB <131350493+TruongQuangSB@users.noreply.github.com> Date: Thu, 23 Apr 2026 16:51:37 +0200 Subject: [PATCH 2/4] Update CellContentExtensions.xtend --- .../set/model/tablemodel/extensions/CellContentExtensions.xtend | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/bundles/org.eclipse.set.model.tablemodel.extensions/src/org/eclipse/set/model/tablemodel/extensions/CellContentExtensions.xtend b/java/bundles/org.eclipse.set.model.tablemodel.extensions/src/org/eclipse/set/model/tablemodel/extensions/CellContentExtensions.xtend index 4d7789e07..ffd10aced 100644 --- a/java/bundles/org.eclipse.set.model.tablemodel.extensions/src/org/eclipse/set/model/tablemodel/extensions/CellContentExtensions.xtend +++ b/java/bundles/org.eclipse.set.model.tablemodel.extensions/src/org/eclipse/set/model/tablemodel/extensions/CellContentExtensions.xtend @@ -222,7 +222,7 @@ class CellContentExtensions { static def dispatch Iterable getStringValueIterable( StringCellContent content) { - return content?.value.map[trim].filter[!blank && !nullOrEmpty] ?: #[] + return content?.value?.filter[!blank && !nullOrEmpty] ?: #[] } static def List getStringValueList(CellContent content) { From 3372c040f82df2aa4f7e2c3bf2a9c9c5db2c6229 Mon Sep 17 00:00:00 2001 From: TruongQuangSB Date: Thu, 23 Apr 2026 17:08:19 +0200 Subject: [PATCH 3/4] fix compile --- .../tablemodel/extensions/CellContentExtensions.xtend | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/java/bundles/org.eclipse.set.model.tablemodel.extensions/src/org/eclipse/set/model/tablemodel/extensions/CellContentExtensions.xtend b/java/bundles/org.eclipse.set.model.tablemodel.extensions/src/org/eclipse/set/model/tablemodel/extensions/CellContentExtensions.xtend index ffd10aced..cd9e74042 100644 --- a/java/bundles/org.eclipse.set.model.tablemodel.extensions/src/org/eclipse/set/model/tablemodel/extensions/CellContentExtensions.xtend +++ b/java/bundles/org.eclipse.set.model.tablemodel.extensions/src/org/eclipse/set/model/tablemodel/extensions/CellContentExtensions.xtend @@ -222,7 +222,9 @@ class CellContentExtensions { static def dispatch Iterable getStringValueIterable( StringCellContent content) { - return content?.value?.filter[!blank && !nullOrEmpty] ?: #[] + return content?.value?.filterNull.map[trim].filter [ + !blank && !nullOrEmpty + ] ?: #[] } static def List getStringValueList(CellContent content) { @@ -390,9 +392,8 @@ class CellContentExtensions { private static def String getMultiColorFormat(MultiColorContent content) { if (Strings.isNullOrEmpty(content.multiColorValue)) { - return Strings.isNullOrEmpty(content.stringFormat) - ? "" - : content.stringFormat.htmlString + return Strings.isNullOrEmpty(content.stringFormat) ? "" : content. + stringFormat.htmlString } if (content.isDisableMultiColor) { From 775342a45c3212504c7d624e1e8604b4d2d46d26 Mon Sep 17 00:00:00 2001 From: TruongQuangSB <131350493+TruongQuangSB@users.noreply.github.com> Date: Thu, 23 Apr 2026 17:34:17 +0200 Subject: [PATCH 4/4] Apply suggestions from code review Co-authored-by: Marius Heine --- .../model/tablemodel/extensions/CellContentExtensions.xtend | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/java/bundles/org.eclipse.set.model.tablemodel.extensions/src/org/eclipse/set/model/tablemodel/extensions/CellContentExtensions.xtend b/java/bundles/org.eclipse.set.model.tablemodel.extensions/src/org/eclipse/set/model/tablemodel/extensions/CellContentExtensions.xtend index cd9e74042..405e4725d 100644 --- a/java/bundles/org.eclipse.set.model.tablemodel.extensions/src/org/eclipse/set/model/tablemodel/extensions/CellContentExtensions.xtend +++ b/java/bundles/org.eclipse.set.model.tablemodel.extensions/src/org/eclipse/set/model/tablemodel/extensions/CellContentExtensions.xtend @@ -188,8 +188,8 @@ class CellContentExtensions { static def dispatch String getPlainStringValue( CompareStateCellContent content) { - val oldValue = content.oldValue.stringValueIterable - val newValue = content.newValue.stringValueIterable + val oldValue = content?.oldValue?.stringValueIterable + val newValue = content?.newValue?.stringValueIterable if (oldValue.isNullOrEmpty && newValue.nullOrEmpty) { return "" } @@ -222,7 +222,7 @@ class CellContentExtensions { static def dispatch Iterable getStringValueIterable( StringCellContent content) { - return content?.value?.filterNull.map[trim].filter [ + return content?.value?.filterNull?.map[trim]?.filter [ !blank && !nullOrEmpty ] ?: #[] }