From bb645c2f05d1ec606431c40c0f6a4983f8b14864 Mon Sep 17 00:00:00 2001
From: Simon Barner <barner@fortiss.org>
Date: Thu, 1 Apr 2021 22:20:29 +0200
Subject: [PATCH] Add methods to collapse tree items

Issue-Ref: 4123
Issue-Url: https://git.fortiss.org/af3/af3/-/issues/4123

Signed-off-by: Simon Barner <barner@fortiss.org>
---
 .../base/ui/javafx/control/treetableview/.ratings      |  2 +-
 .../control/treetableview/ModelElementTreeViewer.java  |  6 ++++++
 .../common/ui/javafx/control/treetableview/.ratings    |  2 +-
 .../control/treetableview/DynamicTreeViewer.java       | 10 ++++++++++
 4 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/javafx/control/treetableview/.ratings b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/javafx/control/treetableview/.ratings
index 3ef238d84..ff578510e 100644
--- a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/javafx/control/treetableview/.ratings
+++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/javafx/control/treetableview/.ratings
@@ -1,2 +1,2 @@
 DynamicTreeTableNameProvider.java 3ca45f24b94e97b02313e80b16ba8b370f541541 GREEN
-ModelElementTreeViewer.java b541376d1b21d38dec80ae6dd5357fe289dcb643 GREEN
+ModelElementTreeViewer.java c27c57ae21b32de790c6fb5a86695dd5952fcf32 YELLOW
diff --git a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/javafx/control/treetableview/ModelElementTreeViewer.java b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/javafx/control/treetableview/ModelElementTreeViewer.java
index b541376d1..c27c57ae2 100644
--- a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/javafx/control/treetableview/ModelElementTreeViewer.java
+++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/javafx/control/treetableview/ModelElementTreeViewer.java
@@ -135,6 +135,12 @@ public class ModelElementTreeViewer<T extends INamedElement> {
 		dynTreeViewer.expandItem(item);
 	}
 
+	/** Collapses the given item. */
+	public void collapseItem(T value) {
+		DynamicTreeItemBase<T> item = findItem(value);
+		dynTreeViewer.collapseItem(item);
+	}
+
 	/** Returns the {@link DynamicTreeItemBase} of the given {@code value} if it exists. */
 	public DynamicTreeItemBase<T> findItem(T value) {
 		return dynTreeViewer.findItem(value);
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 d6ef780a2..b4cf700d7 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
@@ -8,7 +8,7 @@ DynamicTreeItemBase.java d883066ecc181120302ca32f328538de7a45b093 GREEN
 DynamicTreeTableUIProviderBase.java a4cd60795d114984f7fd255f273fc39937889f22 GREEN
 DynamicTreeTableViewer.java ead6f6671e9cb6b14632940bf440cba7e81fcd98 GREEN
 DynamicTreeUIProviderBase.java 82d3c051213f0147f4c67ad247a08696cee73110 GREEN
-DynamicTreeViewer.java e58d2cf7239e45f1b790ce9770a8a8649b1b5fb9 GREEN
+DynamicTreeViewer.java fb584441c40c8e9f7cbdece9eb10eb50e61bbae8 YELLOW
 DynamicTreeViewerBase.java a2013538b62d86f6a09efdf2cd78babac2072484 GREEN
 EmptyChildrenContentProvider.java 51b4468f9df8423abeea5ac6aa2f6cf99c2eb512 GREEN
 IDoubleClickHandler.java 447f7769dead9a106b3ea3139ef0da51eb0b9a89 GREEN
diff --git a/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeViewer.java b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeViewer.java
index e58d2cf72..fb584441c 100644
--- a/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeViewer.java
+++ b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeViewer.java
@@ -225,6 +225,16 @@ public final class DynamicTreeViewer<T> extends DynamicTreeViewerBase<T> {
 		uiProvider.dropClipboardContent(item, evt.getDragboard());
 	}
 
+	/** Collapses the given item. */
+	public void collapseItem(TreeItem<T> item) {
+		item.setExpanded(false);
+	}
+
+	/** Collapses all items. */
+	public void collapseAllItems() {
+		collapseItem(rootItem);
+	}
+
 	/** Expands the tree to the given item. */
 	public void expandItem(TreeItem<T> item) {
 		while(item.getParent() != null) {
-- 
GitLab