From 2f4bf1541e3b3d1a69e488907d6068701ce46ae2 Mon Sep 17 00:00:00 2001 From: Nicolas Couvert Date: Tue, 3 Feb 2026 10:36:28 +0100 Subject: [PATCH] [13] Add checkbox cells to WorkpackageArtefactPageDescription instead of the old text field Issue: https://github.com/ObeoNetwork/pepper/issues/13 --- CHANGELOG.adoc | 14 +++++++++ .../WorkpackageArtefactPageDescription.java | 30 +++++++++++++++++++ scripts/check-changelog.js | 4 +-- 3 files changed, 46 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc index e9291c3..a8bd0c0 100644 --- a/CHANGELOG.adoc +++ b/CHANGELOG.adoc @@ -1,5 +1,19 @@ = Changelog +== v2026.1.0 + +=== Dependency update + +=== New features + +=== Improvements + +- https://github.com/ObeoNetwork/pepper/issues/13[#13] Add checkbox cells to WorkpackageArtefactPageDescription instead of the old text field + +=== Bug fixes + + + == v2024.11.0 === Dependency update diff --git a/backend/deeplab-projectmanagement-starter/src/main/java/fr/cea/deeplab/projectmanagement/starter/services/descriptions/WorkpackageArtefactPageDescription.java b/backend/deeplab-projectmanagement-starter/src/main/java/fr/cea/deeplab/projectmanagement/starter/services/descriptions/WorkpackageArtefactPageDescription.java index bfb5d8a..bc700e4 100644 --- a/backend/deeplab-projectmanagement-starter/src/main/java/fr/cea/deeplab/projectmanagement/starter/services/descriptions/WorkpackageArtefactPageDescription.java +++ b/backend/deeplab-projectmanagement-starter/src/main/java/fr/cea/deeplab/projectmanagement/starter/services/descriptions/WorkpackageArtefactPageDescription.java @@ -30,6 +30,7 @@ import org.eclipse.emf.ecore.EAttribute; import org.eclipse.emf.ecore.EClassifier; +import org.eclipse.emf.ecore.EDataType; import org.eclipse.emf.ecore.EEnum; import org.eclipse.emf.ecore.EEnumLiteral; import org.eclipse.emf.ecore.EObject; @@ -59,6 +60,8 @@ import org.eclipse.sirius.components.tables.elements.MultiSelectCellElementProps; import org.eclipse.sirius.components.tables.elements.SelectCellElementProps; import org.eclipse.sirius.components.tables.elements.TextfieldCellElementProps; +import org.eclipse.sirius.web.application.table.customcells.CheckboxCellDescription; +import org.eclipse.sirius.web.application.table.customcells.CheckboxCellElementProps; /** * This class is used to provide the project page description for the project workpackage artefact. @@ -228,6 +231,15 @@ List buildCellDescription() { .cellValueProvider(this.getCellValueProvider()) .cellTooltipValueProvider((vm, o) -> "") .build()); + iCellDescriptionList.add( + CheckboxCellDescription.newCheckboxCellDescription("checkboxCells") + .canCreatePredicate(this.canCreateCellProvider(CheckboxCellElementProps.TYPE)) + .targetObjectIdProvider(vm -> "") + .targetObjectKindProvider(vm -> "") + .cellValueProvider(this.getCheckboxCellValueProvider()) + .cellTooltipValueProvider((vm, o) -> "") + .build() + ); return iCellDescriptionList; } @@ -282,6 +294,21 @@ private BiFunction getCellValueProvider() { }; } + private BiFunction getCheckboxCellValueProvider() { + return (variableManager, columnTargetObject) -> { + boolean value = false; + Optional optionalEObject = variableManager.get(VariableManager.SELF, EObject.class); + if (optionalEObject.isPresent() && columnTargetObject instanceof EStructuralFeature eStructuralFeature) { + EObject eObject = optionalEObject.get(); + Object objectValue = eObject.eGet(eStructuralFeature); + if (objectValue != null) { + value = Boolean.parseBoolean(objectValue.toString()); + } + } + return value; + }; + } + Predicate canCreateCellProvider(String requiredCellType) { return (variableManager) -> { Optional optionalString = variableManager.get("columnTargetObject", String.class); @@ -301,6 +328,9 @@ Predicate canCreateCellProvider(String requiredCellType) { if (eType instanceof EEnum) { type = SelectCellElementProps.TYPE; } + else if (eType instanceof EDataType eDataType && eDataType.getInstanceClass().equals(Boolean.class)) { + type = CheckboxCellElementProps.TYPE; + } } else { EReference eReference = (EReference) eStructuralFeature; if (eReference.isMany() && !eReference.isContainment()) { diff --git a/scripts/check-changelog.js b/scripts/check-changelog.js index 33059c3..aea4f31 100644 --- a/scripts/check-changelog.js +++ b/scripts/check-changelog.js @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2022, 2023 Obeo. + * Copyright (c) 2022, 2026 Obeo. * This program and the accompanying materials * are made available under the terms of the Eclipse Public License v2.0 * which accompanies this distribution, and is available at @@ -57,7 +57,7 @@ for (let index = 0; index < lines.length; index++) { const tagAsNumber = Number(tag); if (!isNaN(tagAsNumber)) { - const issueURL = `https://github.com/eclipse-sirius/sirius-web/issues/${tagAsNumber}`; + const issueURL = `https://github.com/ObeoNetwork/pepper/issues/${tagAsNumber}`; if (!changelog.includes(issueURL)) { missingIssuesInChangelog.push(issueURL);