diff --git a/Modules/SegmentationUI/Qmitk/QmitkMultiLabelSegmentationInspector.cpp b/Modules/SegmentationUI/Qmitk/QmitkMultiLabelSegmentationInspector.cpp
new file mode 100644
index 0000000000..7d007f3e5a
--- /dev/null
+++ b/Modules/SegmentationUI/Qmitk/QmitkMultiLabelSegmentationInspector.cpp
@@ -0,0 +1,135 @@
+/*============================================================================
+
+The Medical Imaging Interaction Toolkit (MITK)
+
+Copyright (c) German Cancer Research Center (DKFZ)
+All rights reserved.
+
+Use of this source code is governed by a 3-clause BSD license that can be
+found in the LICENSE file.
+
+============================================================================*/
+
+#include <QmitkMultiLabelSegmentationInspector.h>
+
+#include <QmitkMultiLabelSegmentationTreeModel.h>
+#include <QmitkLabelColorItemDelegate.h>
+#include <QmitkLabelToggleItemDelegate.h>
+#include <QmitkStyleManager.h>
+
+QmitkMultiLabelSegmentationInspector::QmitkMultiLabelSegmentationInspector(QWidget* parent/* = nullptr*/)
+  : QWidget(parent)
+{
+  m_Controls.setupUi(this);
+
+  m_Model = new QmitkMultiLabelSegmentationTreeModel(this);
+
+  m_Controls.view->setModel(m_Model);
+
+  m_ColorItemDelegate = new QmitkLabelColorItemDelegate(this);
+
+  auto visibleIcon = QmitkStyleManager::ThemeIcon(QLatin1String(":/Qmitk/visible.svg"));
+  auto invisibleIcon = QmitkStyleManager::ThemeIcon(QLatin1String(":/Qmitk/invisible.svg"));
+  m_VisibilityItemDelegate = new QmitkLabelToggleItemDelegate(visibleIcon, invisibleIcon, this);
+
+  auto lockIcon = QmitkStyleManager::ThemeIcon(QLatin1String(":/Qmitk/lock.svg"));
+  auto unlockIcon = QmitkStyleManager::ThemeIcon(QLatin1String(":/Qmitk/unlock.svg"));
+  m_LockItemDelegate = new QmitkLabelToggleItemDelegate(lockIcon, unlockIcon, this);
+
+  this->m_Controls.view->setItemDelegateForColumn(1, m_LockItemDelegate);
+  this->m_Controls.view->setItemDelegateForColumn(2, m_ColorItemDelegate);
+  this->m_Controls.view->setItemDelegateForColumn(3, m_VisibilityItemDelegate);
+
+  connect(m_Model, &QAbstractItemModel::modelReset, this, &QmitkMultiLabelSegmentationInspector::OnModelReset);
+  //connect(m_Controls.view->selectionModel(), SIGNAL(selectionChanged(const QItemSelection&, const QItemSelection&)), SLOT(ChangeModelSelection(const QItemSelection&, const QItemSelection&)));
+}
+
+void QmitkMultiLabelSegmentationInspector::Initialize()
+{
+  m_Model->SetSegmentation(m_Segmentation.Lock());
+  m_Controls.view->expandAll();
+}
+
+void QmitkMultiLabelSegmentationInspector::SetSelectionMode(SelectionMode mode)
+{
+  m_Controls.view->setSelectionMode(mode);
+}
+
+QmitkMultiLabelSegmentationInspector::SelectionMode QmitkMultiLabelSegmentationInspector::GetSelectionMode() const
+{
+  return m_Controls.view->selectionMode();
+}
+
+void QmitkMultiLabelSegmentationInspector::SetMultiLabelSegmentation(mitk::LabelSetImage* segmentation)
+{
+  if (segmentation != m_Segmentation.Lock())
+  {
+    m_Segmentation = segmentation;
+    this->Initialize();
+  }
+}
+
+void QmitkMultiLabelSegmentationInspector::OnModelReset()
+{
+}
+
+bool EqualLabelSelections(const QmitkMultiLabelSegmentationInspector::LabelValueVectorType& selection1, const QmitkMultiLabelSegmentationInspector::LabelValueVectorType& selection2)
+{
+  if (selection1.size() == selection2.size())
+  {
+    // lambda to compare node pointer inside both lists
+    auto lambda = [](mitk::LabelSetImage::LabelValueType lhs, mitk::LabelSetImage::LabelValueType rhs) { return lhs == rhs; };
+    return std::is_permutation(selection1.begin(), selection1.end(), selection2.begin(), selection2.end(), lambda);
+  }
+
+  return false;
+}
+
+void QmitkMultiLabelSegmentationInspector::SetSelectedLabels(LabelValueVectorType selectedLabels)
+{
+
+  bool equal = EqualLabelSelections(this->GetSelectedLabels(), selectedLabels);
+  if (equal)
+  {
+    return;
+  }
+
+  // create new selection by retrieving the corresponding indices of the labels
+  QItemSelection newCurrentSelection;
+  for (const auto& labelID : selectedLabels)
+  {
+    QModelIndexList matched = m_Model->match(m_Model->index(0, 0), QmitkMultiLabelSegmentationTreeModel::ItemModelRole::LabelValueRole, QVariant(labelID), 1, Qt::MatchRecursive);
+    if (!matched.empty())
+    {
+      newCurrentSelection.select(matched.front(), matched.front());
+    }
+  }
+
+  m_Controls.view->selectionModel()->select(newCurrentSelection, QItemSelectionModel::ClearAndSelect);
+}
+
+void QmitkMultiLabelSegmentationInspector::SetSelectedLabel(mitk::LabelSetImage::LabelValueType selectedLabel)
+{
+  this->SetSelectedLabels({ selectedLabel });
+}
+
+QmitkMultiLabelSegmentationInspector::LabelValueVectorType QmitkMultiLabelSegmentationInspector::GetSelectedLabels() const
+{
+  LabelValueVectorType result;
+  QModelIndexList selectedIndexes = m_Controls.view->selectionModel()->selectedIndexes();
+  for (const auto& index : qAsConst(selectedIndexes))
+  {
+    QVariant qvariantDataNode = m_Model->data(index, QmitkMultiLabelSegmentationTreeModel::ItemModelRole::LabelValueRole);
+    if (qvariantDataNode.canConvert<mitk::LabelSetImage::LabelValueType>())
+    {
+      result.push_back(qvariantDataNode.value<mitk::LabelSetImage::LabelValueType>());
+    }
+  }
+  return result;
+}
+
+void QmitkMultiLabelSegmentationInspector::ChangeModelSelection(const QItemSelection& selected, const QItemSelection& deselected)
+{
+  emit CurrentSelectionChanged(GetSelectedLabels());
+}
+
diff --git a/Modules/SegmentationUI/Qmitk/QmitkMultiLabelSegmentationInspector.h b/Modules/SegmentationUI/Qmitk/QmitkMultiLabelSegmentationInspector.h
new file mode 100644
index 0000000000..e1dc0b3f43
--- /dev/null
+++ b/Modules/SegmentationUI/Qmitk/QmitkMultiLabelSegmentationInspector.h
@@ -0,0 +1,100 @@
+/*============================================================================
+
+The Medical Imaging Interaction Toolkit (MITK)
+
+Copyright (c) German Cancer Research Center (DKFZ)
+All rights reserved.
+
+Use of this source code is governed by a 3-clause BSD license that can be
+found in the LICENSE file.
+
+============================================================================*/
+
+#ifndef QMITKMULTILABELSEGMENTATIONINSPECTOR_H
+#define QMITKMULTILABELSEGMENTATIONINSPECTOR_H
+
+#include <MitkSegmentationUIExports.h>
+#include <mitkWeakPointer.h>
+
+#include <QWidget>
+#include <QmitkMultiLabelSegmentationTreeModel.h>
+#include "ui_QmitkMultiLabelSegmentationInspector.h"
+
+class QmitkMultiLabelSegmentationTreeModel;
+class QStyledItemDelegate;
+
+/*
+* @brief This is an inspector that offers a simple list view on a data storage.
+*/
+class MITKSEGMENTATIONUI_EXPORT QmitkMultiLabelSegmentationInspector : public QWidget
+{
+  Q_OBJECT
+
+public:
+  QmitkMultiLabelSegmentationInspector(QWidget* parent = nullptr);
+
+  using SelectionMode = QAbstractItemView::SelectionMode;
+  void SetSelectionMode(SelectionMode mode);
+  SelectionMode GetSelectionMode() const;
+
+  /**
+  * @brief Sets the segmentation that will be used /monitored by the widget.
+  *
+  * @param segmentation      A pointer to the segmentation to set.
+  */
+  void SetMultiLabelSegmentation(mitk::LabelSetImage* segmentation);
+
+  using LabelValueVectorType = mitk::LabelSetImage::LabelValueVectorType;
+
+  /**
+  * @brief Retrieve the currently selected labels (equals the last CurrentSelectionChanged values).
+  */
+  LabelValueVectorType GetSelectedLabels() const;
+
+Q_SIGNALS:
+  /**
+  * @brief A signal that will be emitted if the selected labels change.
+  *
+  * @param labels A list of label values that are now selected.
+  */
+  void CurrentSelectionChanged(LabelValueVectorType labels);
+
+public Q_SLOTS:
+
+  /**
+  * @brief Transform a list label values into a model selection and set this as a new selection of the view
+  *
+  * @param selectedNodes A list of data nodes that should be newly selected.
+  */
+  void SetSelectedLabels(LabelValueVectorType selectedLabels);
+  void SetSelectedLabel(mitk::LabelSetImage::LabelValueType selectedLabel);
+
+protected:
+  void Initialize();
+  void OnModelReset();
+
+  QmitkMultiLabelSegmentationTreeModel* m_Model;
+  mitk::WeakPointer<mitk::LabelSetImage> m_Segmentation;
+
+  QStyledItemDelegate* m_LockItemDelegate;
+  QStyledItemDelegate* m_ColorItemDelegate;
+  QStyledItemDelegate* m_VisibilityItemDelegate;
+
+  Ui_QmitkMultiLabelSegmentationInspector m_Controls;
+
+private Q_SLOTS:
+  /**
+  * @brief Transform a labels selection into a data node list and emit the 'CurrentSelectionChanged'-signal.
+  *
+  *   The function adds the selected nodes from the original selection that could not be modified, if
+  *   'm_SelectOnlyVisibleNodes' is false.
+  *   This slot is internally connected to the 'selectionChanged'-signal of the selection model of the private member item view.
+  *
+  * @param selected	The newly selected items.
+  * @param deselected	The newly deselected items.
+  */
+  void ChangeModelSelection(const QItemSelection& selected, const QItemSelection& deselected);
+
+};
+
+#endif // QMITKDATASTORAGELISTINSPECTOR_H
diff --git a/Modules/SegmentationUI/Qmitk/QmitkMultiLabelSegmentationInspector.ui b/Modules/SegmentationUI/Qmitk/QmitkMultiLabelSegmentationInspector.ui
new file mode 100644
index 0000000000..e5dbe37bb2
--- /dev/null
+++ b/Modules/SegmentationUI/Qmitk/QmitkMultiLabelSegmentationInspector.ui
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>QmitkMultiLabelSegmentationInspector</class>
+ <widget class="QWidget" name="QmitkMultiLabelSegmentationInspector">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>400</width>
+    <height>300</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <property name="spacing">
+    <number>0</number>
+   </property>
+   <property name="leftMargin">
+    <number>0</number>
+   </property>
+   <property name="topMargin">
+    <number>0</number>
+   </property>
+   <property name="rightMargin">
+    <number>0</number>
+   </property>
+   <property name="bottomMargin">
+    <number>0</number>
+   </property>
+   <item>
+    <widget class="QmitkMultiLabelSegmentationTreeView" name="view">
+     <property name="editTriggers">
+      <set>QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed|QAbstractItemView::SelectedClicked</set>
+     </property>
+     <property name="showDropIndicator" stdset="0">
+      <bool>false</bool>
+     </property>
+     <property name="alternatingRowColors">
+      <bool>false</bool>
+     </property>
+     <property name="selectionMode">
+      <enum>QAbstractItemView::SingleSelection</enum>
+     </property>
+     <property name="selectionBehavior">
+      <enum>QAbstractItemView::SelectItems</enum>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>QmitkMultiLabelSegmentationTreeView</class>
+   <extends>QTreeView</extends>
+   <header>QmitkMultiLabelSegmentationTreeView.h</header>
+  </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/Modules/SegmentationUI/files.cmake b/Modules/SegmentationUI/files.cmake
index c50e3b5579..15b7ba8b5b 100644
--- a/Modules/SegmentationUI/files.cmake
+++ b/Modules/SegmentationUI/files.cmake
@@ -1,101 +1,110 @@
 set(CPP_FILES
   Qmitk/QmitkSegWithPreviewToolGUIBase.cpp
   Qmitk/QmitkMultiLabelSegWithPreviewToolGUIBase.cpp
   Qmitk/QmitkBinaryThresholdToolGUIBase.cpp
   Qmitk/QmitkBinaryThresholdToolGUI.cpp
   Qmitk/QmitkBinaryThresholdULToolGUI.cpp
   Qmitk/QmitkConfirmSegmentationDialog.cpp
   Qmitk/QmitkCopyToClipBoardDialog.cpp
   Qmitk/QmitkDrawPaintbrushToolGUI.cpp
   Qmitk/QmitkErasePaintbrushToolGUI.cpp
   Qmitk/QmitkEditableContourToolGUIBase.cpp
   Qmitk/QmitkGrowCutToolGUI.cpp
   Qmitk/QmitkLiveWireTool2DGUI.cpp
   Qmitk/QmitkLassoToolGUI.cpp
   Qmitk/QmitkOtsuTool3DGUI.cpp
   Qmitk/QmitkPaintbrushToolGUI.cpp
   Qmitk/QmitkPickingToolGUI.cpp
   Qmitk/QmitkSlicesInterpolator.cpp
   Qmitk/QmitkToolGUI.cpp
   Qmitk/QmitkToolGUIArea.cpp
   Qmitk/QmitkToolSelectionBox.cpp
   Qmitk/QmitknnUNetFolderParser.cpp
   Qmitk/QmitknnUNetToolGUI.cpp
   Qmitk/QmitknnUNetWorker.cpp
   Qmitk/QmitknnUNetGPU.cpp
   Qmitk/QmitkSurfaceStampWidget.cpp
   Qmitk/QmitkMaskStampWidget.cpp
   Qmitk/QmitkStaticDynamicSegmentationDialog.cpp
   Qmitk/QmitkSimpleLabelSetListWidget.cpp
   Qmitk/QmitkSegmentationTaskListWidget.cpp
+  Qmitk/QmitkMultiLabelSegmentationInspector.cpp
+  Qmitk/QmitkMultiLabelSegmentationTreeModel.cpp
+  Qmitk/QmitkMultiLabelSegmentationTreeView.cpp
+  Qmitk/QmitkLabelColorItemDelegate.cpp
+  Qmitk/QmitkLabelToggleItemDelegate.cpp
   SegmentationUtilities/QmitkBooleanOperationsWidget.cpp
-Qmitk/QmitkMultiLabelSegmentationTreeModel.cpp
   SegmentationUtilities/QmitkContourModelToImageWidget.cpp
   SegmentationUtilities/QmitkImageMaskingWidget.cpp
   SegmentationUtilities/QmitkMorphologicalOperationsWidget.cpp
   SegmentationUtilities/QmitkSurfaceToImageWidget.cpp
   SegmentationUtilities/QmitkSegmentationUtilityWidget.cpp
   SegmentationUtilities/QmitkDataSelectionWidget.cpp
 )
 
 set(MOC_H_FILES
   Qmitk/QmitkSegWithPreviewToolGUIBase.h
   Qmitk/QmitkMultiLabelSegWithPreviewToolGUIBase.h
   Qmitk/QmitkBinaryThresholdToolGUIBase.h
   Qmitk/QmitkBinaryThresholdToolGUI.h
   Qmitk/QmitkBinaryThresholdULToolGUI.h
   Qmitk/QmitkConfirmSegmentationDialog.h
   Qmitk/QmitkCopyToClipBoardDialog.h
   Qmitk/QmitkDrawPaintbrushToolGUI.h
   Qmitk/QmitkErasePaintbrushToolGUI.h
   Qmitk/QmitkEditableContourToolGUIBase.h
   Qmitk/QmitkGrowCutToolGUI.h
   Qmitk/QmitkLiveWireTool2DGUI.h
   Qmitk/QmitkLassoToolGUI.h
   Qmitk/QmitkOtsuTool3DGUI.h
   Qmitk/QmitkPaintbrushToolGUI.h
   Qmitk/QmitkPickingToolGUI.h
   Qmitk/QmitkSlicesInterpolator.h
   Qmitk/QmitkToolGUI.h
   Qmitk/QmitkToolGUIArea.h
   Qmitk/QmitkToolSelectionBox.h
   Qmitk/QmitknnUNetFolderParser.h
   Qmitk/QmitknnUNetToolGUI.h
   Qmitk/QmitknnUNetGPU.h
   Qmitk/QmitknnUNetWorker.h
   Qmitk/QmitknnUNetEnsembleLayout.h
   Qmitk/QmitkSurfaceStampWidget.h
   Qmitk/QmitkMaskStampWidget.h
   Qmitk/QmitkStaticDynamicSegmentationDialog.h
   Qmitk/QmitkSimpleLabelSetListWidget.h
   Qmitk/QmitkSegmentationTaskListWidget.h
+  Qmitk/QmitkMultiLabelSegmentationInspector.h
   Qmitk/QmitkMultiLabelSegmentationTreeModel.h
+  Qmitk/QmitkMultiLabelSegmentationTreeView.h
+  Qmitk/QmitkLabelColorItemDelegate.h
+  Qmitk/QmitkLabelToggleItemDelegate.h
   SegmentationUtilities/QmitkBooleanOperationsWidget.h
   SegmentationUtilities/QmitkContourModelToImageWidget.h
   SegmentationUtilities/QmitkImageMaskingWidget.h
   SegmentationUtilities/QmitkMorphologicalOperationsWidget.h
   SegmentationUtilities/QmitkSurfaceToImageWidget.h
   SegmentationUtilities/QmitkSegmentationUtilityWidget.h
   SegmentationUtilities/QmitkDataSelectionWidget.h
 )
 
 set(UI_FILES
   Qmitk/QmitkConfirmSegmentationDialog.ui
   Qmitk/QmitkGrowCutToolWidgetControls.ui
   Qmitk/QmitkOtsuToolWidgetControls.ui
   Qmitk/QmitkSurfaceStampWidgetGUIControls.ui
   Qmitk/QmitkMaskStampWidgetGUIControls.ui
   Qmitk/QmitknnUNetToolGUIControls.ui
   Qmitk/QmitkEditableContourToolGUIControls.ui
   Qmitk/QmitkSegmentationTaskListWidget.ui
+  Qmitk/QmitkMultiLabelSegmentationInspector.ui
   SegmentationUtilities/QmitkBooleanOperationsWidgetControls.ui
   SegmentationUtilities/QmitkContourModelToImageWidgetControls.ui
   SegmentationUtilities/QmitkImageMaskingWidgetControls.ui
   SegmentationUtilities/QmitkMorphologicalOperationsWidgetControls.ui
   SegmentationUtilities/QmitkSurfaceToImageWidgetControls.ui
   SegmentationUtilities/QmitkDataSelectionWidgetControls.ui
 )
 
 set(QRC_FILES
   resources/SegmentationUI.qrc
 )