Design
MleView und MleHeader
Die Klasse MleView
erlaubt das Anlegen, Bearbeiten und Betrachten eines einzelnen Großschadenereignisses, sowie die Analyse der Fallkosten aus dem Schadenmeldesystem in Bezug auf das aktuelle Großschadenereignis.
Mittels eines LinkkiTabLayout
können TabSheets
angelegt werden, die dann wiederum aus zwei Teilen bestehen, dem MleHeader
und der AbstractPage
, welche durch die UiFactory
erzeugt werden.
Die Klasse MleHeader
besteht nur aus zwei Pmos.
Das erste Pmo wird im Kopfbereich der Seite links für den Titel, das zweite Pmo wird auf der rechten Seite vorwiegend als Button-Bar für die Aktionen verwendet.
Wichtig für das erste Pmo ist, dass zumindest die Methode mit der Signatur getHeaderTitle(): String
vorhanden ist.
Eine zusätzliche @UILabel
-Annotation ist nicht notwendig.
Um das Ändern der Titelgenerierung zu vereinfachen wird der Standardimplementierung MleHeaderTitlePmo
ein MleHeaderTitleRenderer
mit übergeben.
Dieses Interface ermöglicht das Generieren eines Titels anhand einer Instanz des Großschadenereignisses und kann beliebig ausgetauscht werden.
Bei dem zweiten Pmo ist sehr zu empfehlen, dass ein @UIHorizontalLayout
verwendet wird.
MleHeaderEditingButtonPmo
Das MleHeaderEditingButtonPmo
definiert die drei Buttons Bearbeiten, Speicher und Abbrechen, wobei der Bearbeiten-Button nur im Lesemodus (siehe PropertyBehavior
) zu sehen ist und die Buttons Speicher und Abbrechen nur im Bearbeiten-Modus.
Alle drei Buttons delegieren ihre Aktion an einen MleHeaderEditingUiController
.
Somit kann im Kundenprojekt entschieden werden, was die Buttons letzten endes tun.
Folgendes Klassendiagramm verdeutlicht den Aufbau des Pmos:
Fallkostenanalyse und Anbindung von ICS
Die Klasse MleAnalysisService
und dessen Standard-Implementierung DefaultMleAnalysisService
definieren eine Methode getExpenditures(MajorLossEvent): Result<List<? extends ClaimExpenditure>>
, welche an eine Implementierung des ClaimExpenditureRepository
delegiert.
Das Modul ics-claim-repository
deklariert mit IcsClaimExpenditureRepository
(implementiert ClaimExpenditureRepository
), IcsClaimExpenditureClient
und IcsClaimExpenditureMapper
bereits eine Implementierung der Beans für den Aufruf der entsprechenden REST-Schnittstelle von Faktor-ICS (üblicherweise der Endpunkt /expenditure
).
Der IcsClaimExpenditureClient
benötigt zudem eine Instanz von WebClient
, um den eigentlichen Aufruf der Schnittstelle durchzuführen.
Die WebClient
Bean enthält unter anderem Einstellungen für Authentifizierung und muss deshalb projektspezifisch konfiguriert werden.
Eine Beispielkonfiguration aller benötigten Beans ist im Modul mle-core-sample
in der SampleAutoConfiguration
, der WebClientConfiguration
, sowie in der dazugehörigen applications.yaml
zu finden.
Der WebClient
in dieser Beispielkonfiguration verwendet OAuth2.