Tree: Modificar componente dentro de TreeData (no añadirlo ni eliminarlo)

Hola,

Me está resultando complicado encontrar una solución que actualice un valor dentro de un objeto que está en un componente Tree.

Mi objeto principa es un ModuleComponent:

Este, puede ser un ModuleContainer o un ModuleItem.

Ya sea un ModuleItem o un ModuleContainer, contiene un DTO dentro de él con la descripción y el estado comprobado/no comprobado. Cuando hago clic en un ModuleItem, se adjunta a la pantalla un componente que contiene un botón para validar el estado del DTO.

Algunos de estos elementos dependen de otros elementos, por lo que cada vez que valido , tengo que verificar el estado para activar/desactivar los elementos dependientes dentro del árbol.

Un árbol resultante sería:

+ 1. PREGUNTA DE INVESTIGACION
	- 1.1 RESULTADOS CENTRADOS EN EL PACIENTE: RICHTEXTAREA
	- 1.2 RESULTADOS RELEVANTES PARA CLÍNICOS: RICHTEXTAREA
	+ 1.3 EVIDENCIA DISPONIBLE
		 - 1.3.1 Pregunta de investigación: RICHTEXTAREA
		 - 1.3.2 Estrategia de búsqueda : RICHTEXTAREA
		 - 1.3.3 Términos de búsqueda utilizados: RICHTEXTAREA
		 - 1.3.4 Estrategia búsqueda realizada: CARGADOR DE FICHEROS
		 - 1.3.5 Introducción: RICHTEXTAREA
		 - 1.3.6 Bibliografía : RICHTEXTAREA
	- 1.4 VALORACIÓN DEL IMPACTO: RICHTEXTAREA

+ 2. GRUPO INVESTIGADOR
	- 2.1 ÁREAS PRIORITARIAS: RICHTEXTAREA
	- 2.2 UNI O MULTICÉNTRICO: RICHTEXTAREA
	+ 2.3 COMPOSICIÓN EQUIPO INVESTIGADOR
		 - 2.3.1 Investigadores/as jóvenes: RICHTEXTAREA
		 - 2.3.2 Mujeres investigadoras: RICHTEXTAREA
		 - 2.3.3 Programa de estudios: RICHTEXTAREA
		 - 2.3.4 Conflicto de interés: RICHTEXTAREA
	- 2.4 EXPERIENCIA DEL GRUPO: RICHTEXTAREA

Por ejemplo, si valido 1.3.6 Bibliografía , tengo que verificar que todos los ítems de 1. PREGUNTA DE INVESTIGACION estén validados, y si lo están, 2. GRUPO INVESTIGADOR será accesible.

Tengo:

@Getter TreeData<ModuleComponent> treeMenuData = nuevo TreeData<>();
@Getter TreeDataProvider<ModuleComponent> treeDataProvider = nuevo TreeDataProvider<>(treeMenuData);

Después de la comprobación, refresco el elemento dentro del TreeDataProvider:

treeDataProvider.refreshItem((ModuleComponent)forRefreshing); //1.3.6 Bibliografía

y después de eso, compruebo el estado de todos los items del padre (incluido el recién validado), pero el estado es siempre el original (es decir, 1.3.6 Bibliografía debería estar validado, pero no aparece como tal).

//parent: 1.3 EVIDENCIA DISPONIBLE
List<ModuleComponent> children = moduleTreeMenu.getTreeMenuData().getChildren(parent);

/*
children contiene:
- 1.3.1 Pregunta de investigación: RICHTEXTAREA
- 1.3.2 Estrategia de búsqueda : RICHTEXTAREA
- 1.3.3 Términos de búsqueda utilizados: RICHTEXTAREA
- 1.3.4 Estrategia búsqueda realizada: CARGADOR DE FICHEROS
- 1.3.5 Introducción: RICHTEXTAREA
- 1.3.6 Bibliografía : RICHTEXTAREA
*/

Dentro del TreeDataProvider, el objeto ha sido actualizado porque puedo ver que un estilo ha cambiado, pero…
¿Cómo puedo actualizar un componente dentro de un TreeData?

Hay algo que no entiendo o que estoy haciendo mal.

A ver si me podéis dar un poco de luz.

Un saludo y gracias por adelantado.

Iban