From f01bab53150106f3309d18a7d1700f8f4b1493ec Mon Sep 17 00:00:00 2001 From: gjulivan Date: Tue, 23 Jun 2026 23:39:57 +0200 Subject: [PATCH] update tree node documentation --- .../modules/data-widgets/tree-node.md | 16 ++++++++++++++++ .../data-widgets/treenode/infinite_treenode.png | Bin 0 -> 8561 bytes 2 files changed, 16 insertions(+) create mode 100644 static/attachments/appstore/platform-supported-content/modules/data-widgets/treenode/infinite_treenode.png diff --git a/content/en/docs/marketplace/platform-supported-content/modules/data-widgets/tree-node.md b/content/en/docs/marketplace/platform-supported-content/modules/data-widgets/tree-node.md index e9911003eac..22d549daced 100644 --- a/content/en/docs/marketplace/platform-supported-content/modules/data-widgets/tree-node.md +++ b/content/en/docs/marketplace/platform-supported-content/modules/data-widgets/tree-node.md @@ -18,6 +18,16 @@ Mendix recommends using multiple Tree Node widgets in a nested matter. In this w * Allows you to nest tree nodes to map out your entire domain model into a tree view * Delivers out-of-the-box performance and network optimizations through lazy loading and caching of tree nodes * Offers additional styling customizations through Atlas UI +* Display infinite level of tree nodes by using self-reference entity (available from data widgets version 3.11.0 and above) + +### Child detection mode + +Starting from data widgets version 3.11.0, treenode offers 2 ways of rendering child nodes. +* **Manual child rendering** – this is the current available configurations. User needs to put tree node widget (child) inside another treenode widget (parent) and set datasource accordingly. +* **Infinite tree node** – this is a recursive mode whereas the children have self reference to the same entity as the parent. In this mode, the widget will render child automatically. Data with empty parents will be automatically used as root. + +{{< figure src="/attachments/appstore/platform-supported-content/modules/data-widgets/treenode/infinite_treenode.png" alt="self reference entity for treenode" class="no-border" >}} + ### Lazy Loading @@ -47,6 +57,7 @@ Drag the Tree Node widget onto the page and use the configuration properties des * **Data source** – the data source of the widget, which can also be optionally used as the data source for the header and content of the widget * Required +* **Parent association** – the association used to select parent. If set, tree node will automatically use infinite tree node child detection modes. * **Header type** – defines the type of the header * Default: **Text** * When set to **Text**, you can configure the **Header caption** property @@ -59,8 +70,13 @@ Drag the Tree Node widget onto the page and use the configuration properties des * **Has children** – indicates if the current level of tree nodes has children tree nodes * Default: **Yes** * When set to **Yes**, a new region becomes available at the bottom of the widget where you can add another widget as child nodes + + {{% alert color="info" %}}The **Has children** configuration will be set automatically on infinite tree node child detection mode.{{% /alert %}} * **Start expanded** – determines whether the content of the current level of tree nodes starts expanded or collapsed * Configurable when **Has children** is set to **Yes**; default: **No** + + {{% alert color="info" %}}On infinite tree node child detection modes, it is recommended to set this to **No** on big data set. Otherwise it will force tree node to expand directly and load all data at once.{{% /alert %}} + * **Animate** – defines whether the content is animated when a tree node expands and collapses * Default: **Yes** diff --git a/static/attachments/appstore/platform-supported-content/modules/data-widgets/treenode/infinite_treenode.png b/static/attachments/appstore/platform-supported-content/modules/data-widgets/treenode/infinite_treenode.png new file mode 100644 index 0000000000000000000000000000000000000000..4a60ae24af6611eff4adb42e342f190f6bb42f65 GIT binary patch literal 8561 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