Extension Guide

Selection Controls Pack für Matrix42

Selection Controls Pack für Matrix42: Pickup-Werte als Radio Buttons, Checkboxen oder Chips statt Dropdown – Konfiguration im Layout Designer.

Torben Soennecken 24. Januar 2026 Aktualisiert 5. Juli 2026

Das Selection Controls Pack ersetzt das Standard-Dropdown (Pickup- bzw. Aufzählungssteuerelement) durch moderne Auswahlsteuerelemente. Die Werte eines Pickups werden als Radio Buttons, Checkboxen oder Chips dargestellt – alle Optionen sind sofort sichtbar und mit einem Klick wählbar.

Verfügbare Steuerelemente

Das Paket registriert vier Steuerelemente (je ein PDRControlDescriptorType):

Steuerelement (TagName)TitelAuswahlAnwendungsfall
rootitup-radio-buttonsRadio ButtonsEinzelauswahlWenige, sich gegenseitig ausschließende Optionen
rootitup-chipsChipsEinzelauswahlKompakte, visuell hervorgehobene Einzelauswahl
rootitup-multi-chipsMulti ChipsMehrfachauswahlKompakte Mehrfachauswahl als Tags
rootitup-checkboxesCheckboxesMehrfachauswahlKlassische Mehrfachauswahl, einzeln umschaltbar

Die Steuerelemente sind für den Einsatz in Dialogen und Assistenten vorgesehen (SupportedWidgetTypes=6).

Architektur

Die Extension wird als Matrix42-Workspaces-Modul (Frontend-Erweiterung) integriert. Das Paket liefert das Modul unter WM/workspaces/RootITUp_SelectionControlsPack/ aus und registriert es über mx.workspacesConfig.registerModule("RootITUp.SelectionControlsPack").

Das Modul RootITUp.SelectionControlsPack ist in AngularJS (1.x) geschrieben und nutzt Angular Material (ngMaterial) für die Darstellung: md-radio-group/md-radio-button für Radio Buttons, md-chip für Chips und md-checkbox für Checkboxen. Jedes Steuerelement wird als Direktive auf Basis von mx.components.FormControlBase registriert.

Genutzte Matrix42-Services

  • mx.SolutionBuilderAgent.EntityService – lädt die Optionswerte über getEnumerationValues(entityClassName, filter)
  • mx.components.FormControlControllerBase – Basis-Controller für Validierung und Zustandsverwaltung
  • mx.internationalization – übersetzt die Validierungsmeldungen (z. B. Pflichtfeld über den Schlüssel components.form-validation.required)

Eigenschaften der Steuerelemente

Jedes Steuerelement definiert sechs eigene Eigenschaften (im Descriptor als PDRControlDescriptorClassProperty, Namen in Kebab-Schreibweise):

EigenschaftPflichtBeschreibung
entity-class-nameJaName des Pickups bzw. der Enumeration, aus der die Optionen geladen werden (z. B. SVMActivityPickupUrgency). Eine Änderung lädt die Optionen neu.
valueJaModellbindung; hält bei Einzelauswahl den Wert, bei Mehrfachauswahl ein Array. Wird als Attribut ng-model gebunden.
filterNeinASQL-Filter zur Einschränkung der Optionen (Attribut data-filter). Eine Änderung lädt die Optionen neu.
defaultNeinStandardwert, der gesetzt wird, wenn value beim Laden leer ist. Einzelauswahl: ein Wert; Mehrfachauswahl: eine Liste. Standard: null.
show-valueNeinZeigt den Rohwert in Klammern hinter dem Anzeigetext (z. B. „Aktiv (1)”). Standard: False.
aria-labelNeinBeschriftung für Screenreader; fällt auf label zurück, wenn nicht gesetzt.

Darüber hinaus stehen die vom Basissteuerelement geerbten Standard-Eigenschaften zur Verfügung – Label, Hint (Hinweistext) sowie die Zustände Required (Pflichtfeld), Disabled und Read Only. Diese werden im Layout Designer wie bei jedem anderen Steuerelement gesetzt.

Installation – Schritt für Schritt

Die Installation erfolgt über die Matrix42 Extension Gallery. Das Paket importiert dabei die vier Control-Descriptoren und stellt das Workspaces-Modul bereit.

Voraussetzung: administrative Rechte in Ihrem Matrix42-System sowie die Matrix42 Digital Workspace Platform ab Version 12.1.1.

Öffnen Sie die Matrix42 Extension Gallery unter extensions.matrix42.com und melden Sie sich mit Ihrem Matrix42-Konto an.

2. Selection Controls Pack suchen

Suchen Sie nach „RootITUp Selection Controls Pack”, öffnen Sie den Eintrag und klicken Sie auf Install.

3. Installation bestätigen

Prüfen Sie im ersten Schritt des Assistenten die Extension-Details – Name, Version und Hersteller – und klicken Sie auf Next.

Screenshot: Erster Schritt des Installationsassistenten mit den Extension-Details des RootITUp Selection Controls Pack

4. Voraussetzungen prüfen

Der Assistent listet die benötigte Voraussetzung auf – die Digital Workspace Platform. Sobald sie als „Ready” markiert ist, klicken Sie auf Install.

Screenshot: Schritt „Prerequisites" des Assistenten zeigt die Digital Workspace Platform als bereits installiert

5. Installation abschließen

Warten Sie, bis die Meldung „Installation complete!” erscheint, und schließen Sie den Assistenten mit Finish. Der Anwendungspool wird dabei automatisch neu gestartet.

Screenshot: Abschlussseite des Assistenten mit der Meldung „Installation complete!" und dem Installationsprotokoll

Konfiguration im Layout Designer – Schritt für Schritt

Nach der Installation stehen die vier Steuerelemente im Layout Designer zur Verfügung. Die folgende Anleitung ersetzt am Beispiel Radio Buttons das Standard-Dropdown eines Pickup-Feldes.

6. Zu ersetzendes Dropdown öffnen

Öffnen Sie den Dialog oder Assistenten mit dem Standard-Dropdown (Pickup-Steuerelement), das Sie ersetzen möchten.

Screenshot: Standard-Dropdown mit aufgeklappter Optionsliste in einem Matrix42 Dialog

7. Layout-Editor öffnen

Öffnen Sie über das Aktionen-Menü den Layout-Editor der Seite.

Screenshot: Aktionen-Menü in Matrix42 mit der Schaltfläche zum Öffnen des Layout-Editors

8. Pickup-Feld auswählen

Wählen Sie im Layout-Editor das gewünschte Pickup-Feld aus (Beispiel: SVMTaskPickupTypeOfTask). Über die Eigenschaft entity-class-name ist das Steuerelement an den zugehörigen Pickup gebunden.

Screenshot: Layout-Editor mit ausgewähltem Pickup-Feld und zugehörigem Aufzählungswert

9. Steuerelement auswählen

Wählen Sie das gewünschte Steuerelement – z. B. Radio Buttons (alternativ Chips, Multi Chips, Checkboxes oder das Standard-Dropdown).

Screenshot: Auswahlmenü der Steuerelemente mit Radio Buttons und Chips

10. Darstellung im Layout-Editor prüfen

Das Feld wird nun als Radio Buttons dargestellt. Passen Sie bei Bedarf Beschriftung (label), Hinweistext (hint) und weitere Eigenschaften an.

Screenshot: Layout-Editor zeigt das Feld jetzt als Radio-Buttons-Steuerelement

11. Layout speichern und veröffentlichen

Speichern Sie das Layout und veröffentlichen Sie es anschließend über die Symbolleiste.

Screenshot: Symbolleiste des Layout-Editors mit den Schaltflächen zum Speichern und Veröffentlichen

12. Ergebnis im Dialog

Öffnen Sie die Seite erneut: Das frühere Dropdown erscheint jetzt als moderne Radio-Button-Auswahl.

Screenshot: Fertiges Feld als Radio-Button-Auswahl im Matrix42 Dialog

Konfiguration im Detail

Eigenschaften im Property-Grid

Jedes Steuerelement lässt sich im Layout Designer über das Property-Grid anpassen:

EigenschaftBeschreibung
Entity Class NamePickup/Enumeration, aus der die Optionen geladen werden (Pflicht)
ValueModellbindung des ausgewählten Werts bzw. der Werte (Pflicht)
FilterASQL zur Einschränkung der Optionen
Default ValueVorausgewählter Wert
Show valuesZeigt den Rohwert neben dem Anzeigenamen
Aria LabelBeschriftung für Screenreader
Label / Hint / Required / Disabled / Read OnlyGeerbte Standard-Eigenschaften

ASQL-Filter

Über das filter-Binding lassen sich die geladenen Optionen einschränken, z. B.:

IsActive = true

Eine Änderung am filter löst automatisch ein Neuladen der Optionen aus.

Validierung und Standardwerte

  • Pflichtfeld: Ist required gesetzt, prüft das Steuerelement, ob mindestens ein Wert ausgewählt ist.
  • Fehlermeldungen: werden über mx.internationalization lokalisiert (Schlüssel components.form-validation.required).
  • Zustände: disabled und readOnly verhindern Änderungen und werden korrekt behandelt.
  • Standardwert: Über default wird ein Wert gesetzt, solange value beim Laden leer ist – bei Einzelauswahl ein einzelner Wert, bei Mehrfachauswahl eine Liste.

Hinweis: Der Wert 0 wird als „leer” interpretiert. Ein Pickup-Eintrag mit dem Wert 0 ist daher nicht auswählbar.

Reaktives Verhalten

ÄnderungVerhalten
entity-class-name ändert sichOptionen werden neu geladen
filter ändert sichOptionen werden neu geladen
Geladene Optionen ändern sichNicht mehr gültige Werte werden aus dem Modell entfernt

Barrierefreiheit

Alle Steuerelemente unterstützen:

  • aria-label – Beschreibung für Screenreader (fällt auf label zurück)
  • Tastaturnavigation – über die Angular-Material-Komponenten
  • Fokus- und Rollen-Management – die Templates setzen passende ARIA-Rollen (radiogroup, listbox, group) und aria-*-Attribute

Changelog

Version 1.6 – Feature Update (15.05.2025)
  • Radio Buttons für die exklusive Einzelauswahl
  • Checkboxes für die Mehrfachauswahl
  • Chips und Multi Chips für die kompakte Einzel- bzw. Mehrfachauswahl
  • Dynamisches Laden der Optionen über entity-class-name
  • Unterstützung für ASQL-Filter über filter
  • Geerbte Standard-Eigenschaften: label, hint, required, disabled, readOnly
  • Optionale Rohwert-Anzeige über show-value
  • Kompatibel mit der Matrix42 Digital Workspace Platform ab 12.1.1
  • Angular Material für ein konsistentes Erscheinungsbild

Häufig gestellte Fragen

Für welche Felder eignen sich die Steuerelemente?

Für Enumeration-basierte Pickups, deren Werte über mx.SolutionBuilderAgent.EntityService.getEnumerationValues abgerufen werden können. Die Eigenschaft entity-class-name erwartet den Namen des Pickups bzw. der Enumeration (z. B. SVMActivityPickupUrgency).

Warum ist der Wert 0 nicht auswählbar?

Die Steuerelemente interpretieren 0 als „kein Wert ausgewählt”. Ein Klick auf eine Option mit dem Wert 0 wird ignoriert. Dies entspricht dem üblichen Verhalten von Enumeration-Feldern, bei denen 0 häufig für „nicht gesetzt” steht.

Lässt sich die Optionsliste dynamisch filtern?

Ja, über das filter-Binding als ASQL-Ausdruck. Eine Änderung am Filter löst automatisch ein Neuladen der Optionen aus.

Was passiert, wenn ein ausgewählter Wert nach dem Neuladen nicht mehr existiert?

Der Wert wird aus dem Modell entfernt. Bei Einzelauswahl wird das Modell auf undefined gesetzt, bei Mehrfachauswahl wird der betreffende Wert aus dem Array entfernt.

Werden zusätzliche Berechtigungen benötigt?

Nein. Das Paket registriert keine zusätzlichen Berechtigungen und nutzt ausschließlich Standard-Dienste der Plattform.

Welche Angular-Version wird verwendet?

Die Extension nutzt AngularJS (1.x) mit Angular Material. Beide sind in der Matrix42 Digital Workspace Platform enthalten.

Noch Fragen zur Konfiguration?

Unsere Engineers stehen gerne zur Verfügung, um bei der Einrichtung oder Anpassung zu helfen.

Wir antworten in der Regel innerhalb von 24h.

Diesen Beitrag teilen

So finden andere diese Inhalte leichter.

LinkedIn X

War dieser Artikel hilfreich?

Wir freuen uns über Feedback.