2019.06 2020.06

Nützliche Klassen zur Frontend-Gestaltung

Diese Funktionalitäten sollen die Gestaltung der Frontends unterstützen.

MCRTextResolver

Ab MyCoRe 2.1 gibt es die neue Klasse MCRTextResolver. Diese ermöglicht es frei definierbare Variablen und MyCoRe-Properties (im folgenden unter dem Begriff Variablen zusammengefasst) in Texten aufzulösen. Hierzu ein kleines Beispiel:

1
2
  
 „Ich programmiere in {MCR.NameOfProject}.“

Würde man diesen Text innerhalb des DocPortal Projekts mit dem MCRTextResolver auflösen, entsteht folgender Text: „Ich programmiere in DocPortal“. Inhalte in geschweiften Klammern werden vom MCRTextResolver als Variablen erkannt und entsprechend aufgelöst.

Bedingungen – eckige Klammern []

Eckige Klammern ermöglichen es Variablenbedingung zu definieren. Der gesamte Inhalt in eckigen Klammern wird nur dann verwendet, wenn alle enthaltenen Variablen nicht null und nicht leer sind. Als Beispiel soll „[Mein Nachname ist {lastname}].“ dienen. Der gesamte Inhalt wird nur aufgelöst, wenn die Variable lastname existiert. Andernfalls wird der Inhalt ignoriert.

Eine valide Datums Angabe könnte damit zum Beispiel folgendermaßen realisiert werden: „{year}[-{month}[-{day}]]“.

Escaping - \

Der MCRTextResolver unterstützt Escaping um vordefinierte Symbole wie {}[] zu maskieren.

API

Der Zugriff über die API ist denkbar einfach:

1
2
3
  
 MCRTextResolver resolver=new MCRTextResolver();
 String result=resolver.resolve("Ich programmiere in {MCR.NameOfProject}.");

Variablen können entweder mit Hilfe einer Map an den Konstruktor übergeben, oder per addVariable(name, value) gesetzt werden.

1
2
3
4
5
6
 Map<String, String> vars=new Hashtable<String, String>();
 vars.put("firstname", "Max");
 vars.put("lastname", "Mustermann");
 MCRTextResolver resolver=new MCRTextResolver(vars);
 resolver.addVariable("birthdate", "1977-04-04");
 String result=resolver.resolve("Name: {firstname} {lastname}; Geburtstag: {birthdate}");

TODO: Input von Matthias einarbeiten