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 3e45f94c4093ed5ace0c18f9768a45acbddc7f9a..941a0a2c0f1469623c5b258ec97002ce683449e6 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 +1,2 @@
+DynamicTreeTableNameProvider.java 836a441e9ae6e65296c8c1426bcb76fb173254c9 YELLOW
 ModelElementTreeViewer.java 9c7637313b0ce4d70566ebb4f90dfca0d9931d09 GREEN
diff --git a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/javafx/control/treetableview/DynamicTreeTableNameProvider.java b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/javafx/control/treetableview/DynamicTreeTableNameProvider.java
new file mode 100644
index 0000000000000000000000000000000000000000..836a441e9ae6e65296c8c1426bcb76fb173254c9
--- /dev/null
+++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/javafx/control/treetableview/DynamicTreeTableNameProvider.java
@@ -0,0 +1,37 @@
+/*-------------------------------------------------------------------------+
+| Copyright 2020 fortiss GmbH                                              |
+|                                                                          |
+| Licensed under the Apache License, Version 2.0 (the "License");          |
+| you may not use this file except in compliance with the License.         |
+| You may obtain a copy of the License at                                  |
+|                                                                          |
+|    http://www.apache.org/licenses/LICENSE-2.0                            |
+|                                                                          |
+| Unless required by applicable law or agreed to in writing, software      |
+| distributed under the License is distributed on an "AS IS" BASIS,        |
+| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
+| See the License for the specific language governing permissions and      |
+| limitations under the License.                                           |
++--------------------------------------------------------------------------*/
+package org.fortiss.tooling.base.ui.javafx.control.treetableview;
+
+import org.fortiss.tooling.common.ui.javafx.control.treetableview.DynamicTreeTableUIProviderBase;
+import org.fortiss.tooling.kernel.model.INamedElement;
+
+/**
+ * Extendible {@link DynamicTreeTableUIProviderBase} providing the names of elements in the first
+ * column.
+ * 
+ * @author diewald
+ */
+public class DynamicTreeTableNameProvider<T extends INamedElement>
+		extends DynamicTreeTableUIProviderBase<T> {
+	/** {@inheritDoc} */
+	@Override
+	public String getLabel(T element, int column) {
+		if(column == 0) {
+			return element.getName();
+		}
+		return null;
+	}
+}
diff --git a/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicList.java b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicList.java
new file mode 100644
index 0000000000000000000000000000000000000000..5c6179c9772f92ebf3117bae8743fd4bd3237dfb
--- /dev/null
+++ b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicList.java
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * Copyright (c) 2016, 2018 fortiss GmbH.
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v2.0 which is available at
+ * http://www.eclipse.org/legal/epl-v20.html
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Florian Hoelzl (fortiss GmbH) - initial implementation
+ *     Alexander Diewald (fortiss GmbH) - backport to AF3 & Integration
+ *                                        improvements
+ *
+ *******************************************************************************/
+package org.fortiss.tooling.common.ui.javafx.control.treetableview;
+
+import java.util.Collection;
+import java.util.HashMap;
+
+import javafx.scene.control.TreeItem;
+
+/**
+ * {@link TreeItem} with support for dynamic children using the
+ * {@link DynamicList#update()} method.
+ */
+public class DynamicList<T> extends TreeItem<T> implements IDynamicItem {
+	/** The viewer. */
+	private DynamicTreeViewerBase<T> viewer;
+
+	/** Constructor. */
+	@SuppressWarnings("unchecked")
+	public DynamicList(Collection<T> data, DynamicTreeViewerBase<T> viewer) {
+		super((T)data);
+		this.viewer = viewer;
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public void update() {
+		// remember expanded state of children
+		HashMap<T, TreeItem<T>> expanded = new HashMap<>();
+		for(TreeItem<T> c : getChildren()) {
+			if(c.isExpanded()) {
+				expanded.put(c.getValue(), c);
+			}
+		}
+		// get list of children and create tree items
+		getChildren().clear();
+		DynamicTreeContentProviderBase<T> cp = viewer.getContentProvider();
+		for(T element : cp.getFilteredSortedChildren(getValue())) {
+			DynamicTreeItem<T> dti = new DynamicTreeItem<T>(element, viewer);
+			getChildren().add(dti);
+			dti.update();
+		}
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public boolean isLeaf() {
+		Collection<? extends Object> children = viewer.getContentProvider().getChildren(getValue());
+		return children == null || children.isEmpty();
+	}
+}
diff --git a/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicListContentProvider.java b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicListContentProvider.java
new file mode 100644
index 0000000000000000000000000000000000000000..817cba44f246a361207a88ef9a4e1869215803f7
--- /dev/null
+++ b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicListContentProvider.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2016, 2018 fortiss GmbH. 
+ * 
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v2.0 which is available at
+ * http://www.eclipse.org/legal/epl-v20.html
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Florian Hoelzl (fortiss GmbH) - initial implementation
+ *     Alexander Diewald (fortiss GmbH) - backport to AF3 & Integration
+ *                                        improvements
+ *
+ *******************************************************************************/
+package org.fortiss.tooling.common.ui.javafx.control.treetableview;
+
+import static java.util.Collections.emptyList;
+
+import java.util.Collection;
+
+/**
+ * Base class for implementing tree content providers used in {@link DynamicTreeViewer} and
+ * {@link DynamicTreeTableViewer}.
+ */
+public class DynamicListContentProvider<T> extends DynamicTreeContentProviderBase<T> {
+	/** Returns the children of the given parent in the tree. */
+	@SuppressWarnings("unchecked")
+	@Override
+	protected Collection<T> getChildren(T parent) {
+		// Pseudo-cast...
+		if(parent instanceof Collection) {
+			return (Collection<T>)parent;
+		}
+		return emptyList();
+	}
+}
diff --git a/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeItem.java b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeItem.java
index 75dc5534b119ffdb3c10a65810c2a0f330b7955e..eb8b5eb58f17f2cdc55d4cb49b22518d9eaba2cf 100644
--- a/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeItem.java
+++ b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeItem.java
@@ -24,7 +24,7 @@ import javafx.scene.control.TreeItem;
  * {@link TreeItem} with support for dynamic children using the
  * {@link DynamicTreeItem#update()} method.
  */
-public class DynamicTreeItem<T> extends TreeItem<T> {
+public class DynamicTreeItem<T> extends TreeItem<T> implements IDynamicItem {
 	/** The viewer. */
 	private DynamicTreeViewerBase<T> viewer;
 
@@ -34,7 +34,8 @@ public class DynamicTreeItem<T> extends TreeItem<T> {
 		this.viewer = viewer;
 	}
 
-	/** Updates the children of this item from the underlying content model. */
+	/** {@inheritDoc} */
+	@Override
 	public void update() {
 		// remember expanded state of children
 		HashMap<T, TreeItem<T>> expanded = new HashMap<>();
diff --git a/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeTableViewer.java b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeTableViewer.java
index 5e58a31a63f8e56d8c8e69e2c4d095809bc46bf1..3879aab51ac30498d8fb123c72e1ffca0445c477 100644
--- a/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeTableViewer.java
+++ b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeTableViewer.java
@@ -17,6 +17,8 @@ package org.fortiss.tooling.common.ui.javafx.control.treetableview;
 
 import static java.lang.Integer.MAX_VALUE;
 
+import java.util.Collection;
+
 import javafx.beans.property.SimpleObjectProperty;
 import javafx.scene.control.SelectionMode;
 import javafx.scene.control.TreeItem;
@@ -45,6 +47,53 @@ public final class DynamicTreeTableViewer<T> extends DynamicTreeViewerBase<T> {
 	/** The UI provider of this tree-table. */
 	private final DynamicTreeTableUIProviderBase<T> uiProvider;
 
+	/** Constructor. */
+	public DynamicTreeTableViewer(TreeTableView<T> view, Collection<T> list,
+			DynamicListContentProvider<T> contentProvider,
+			DynamicTreeTableUIProviderBase<T> uiProvider) {
+		super(view, contentProvider);
+		this.uiProvider = uiProvider;
+		// construct view
+		this.view = view;
+		DynamicList<T> rootItem = new DynamicList<T>(list, this);
+		view.setRoot(rootItem);
+		view.setShowRoot(false);
+		view.setEditable(true);
+		view.setRowFactory(new Callback<TreeTableView<T>, TreeTableRow<T>>() {
+			@Override
+			public TreeTableRow<T> call(TreeTableView<T> param) {
+				final TreeTableRow<T> row = new TreeTableRow<T>();
+				row.setOnDragOver(evt -> {
+					T item = row.getItem();
+					if(uiProvider.dragOver(item, evt.getDragboard())) {
+						evt.acceptTransferModes(TransferMode.ANY);
+						evt.consume();
+					}
+				});
+				row.setOnDragDropped(evt -> {
+					T item = row.getItem();
+					if(uiProvider.dropClipboardContent(item, evt.getDragboard())) {
+						evt.setDropCompleted(true);
+						evt.consume();
+					}
+				});
+				return row;
+			}
+		});
+
+		TreeTableViewSelectionModel<T> selectionModel = view.getSelectionModel();
+		selectionModel.setSelectionMode(SelectionMode.MULTIPLE);
+		selectionModel.selectedItemProperty().addListener((obs, oVal, nVal) -> {
+			T ov = (oVal != null) ? oVal.getValue() : null;
+			T nv = (nVal != null) ? nVal.getValue() : null;
+			uiProvider.select(ov, nv);
+		});
+
+		rootItem.update();
+		// expand to reveal (+1 if root node is not shown
+		expandItem(rootItem, 1);
+	}
+
 	/** Constructor. */
 	public DynamicTreeTableViewer(TreeTableView<T> view, T root, boolean showRoot, int revealLevel,
 			DynamicTreeContentProviderBase<T> contentProvider,
@@ -102,7 +151,7 @@ public final class DynamicTreeTableViewer<T> extends DynamicTreeViewerBase<T> {
 	/** Updates the viewer content. */
 	public void update() {
 		// wild cast works: see constructor
-		DynamicTreeItem<T> rootItem = (DynamicTreeItem<T>)view.getRoot();
+		IDynamicItem rootItem = (IDynamicItem)view.getRoot();
 		rootItem.update();
 		view.refresh();
 	}
diff --git a/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/IDynamicItem.java b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/IDynamicItem.java
new file mode 100644
index 0000000000000000000000000000000000000000..083d02459e7ec33542d9910c04abe2581e0b5422
--- /dev/null
+++ b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/IDynamicItem.java
@@ -0,0 +1,29 @@
+/*-------------------------------------------------------------------------+
+| Copyright 2020 fortiss GmbH                                              |
+|                                                                          |
+| Licensed under the Apache License, Version 2.0 (the "License");          |
+| you may not use this file except in compliance with the License.         |
+| You may obtain a copy of the License at                                  |
+|                                                                          |
+|    http://www.apache.org/licenses/LICENSE-2.0                            |
+|                                                                          |
+| Unless required by applicable law or agreed to in writing, software      |
+| distributed under the License is distributed on an "AS IS" BASIS,        |
+| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
+| See the License for the specific language governing permissions and      |
+| limitations under the License.                                           |
++--------------------------------------------------------------------------*/
+package org.fortiss.tooling.common.ui.javafx.control.treetableview;
+
+import javafx.scene.control.TreeItem;
+
+/**
+ * Common methods of dynamic {@link TreeItem}s of lists and tables.
+ * 
+ * @author diewald
+ */
+public interface IDynamicItem {
+
+	/** Updates the children of this item from the underlying content model. */
+	public void update();
+}