Beispiel eines kleinen View-Models

Das folgende View-Beispiel bezieht sich auf das vorhergegangene Core-Beispiel.

Detail-View Contacts

Für die Core-Klasse Contact wollen wir nun eine Eingabemaske - eine sogenannte Detail-View - erstellen. Das Modell dazu kann folgendermassen aussehen.

  1. detail Contact
  2.   group pagMain
  3.     nameOfOne             'Contact'
  4.     group grpGeneral
  5.       nameOfOne           'General'
  6.  
  7.       property ID
  8.         enabledIf         [[ false ]]
  9.       property Name
  10.       property FirstName
  11.         mustGroupWithPrevious
  12.       end
  13.     end group grpGeneral
  14.  
  15.     group grpContact
  16.       nameOfOne           'Contact-Info'
  17.  
  18.       property Phone
  19.       property Email
  20.       method CallByPhone
  21.         enabledIf         [[ not IsNull( Phone ) ]]
  22.       method SendEmail
  23.         visibleIf         [[ not IsNull( Email ) ]]
  24.         mustGroupWithPrevious
  25.       end
  26.     end group grpContact
  27.   end group pagMain
  28. end detail Contact

Man beachte die beiden Expressions für enabledIf und visibleIf. Mit enabledIf wird gesteuert, wann der CallByPhone Button enabled ist. VisibleIf hingegen steuert wann der Button SendMail sichtbar ist. Im Beispiel prüfen beide Funktionen ob im entsprechenden Feld ein Wert eingegeben wurde.

Die fertige Eingabemaske sieht zur Laufzeit folgendermassen aus:

List-View für Contact

Als zweites Beispiel wollen wir eine einfache Listenansicht für unsere Kontake modellieren. Diese Liste kann dann für alle Auflistungen von Kontakten verwendet werden und sieht dann folgendermassen aus:

Interessant ist hier die erste Spalte, welche aus einem berechneten Wert besteht. Die Notation ist eine einfach, eingängliche Schreibweise wie Sie Atlas neben normalen, regulären Ausdrücken erlaubt.

Das Modell zu obiger Darstellung ist folgendes:

  1. list Contact
  2.   column Default
  3.     calculatedAs      [[ |[Name]{, [FirstName]}| ]]
  4.   column ID
  5.   column Name
  6.   column FirstName
  7.   end
  8. end list Contact

Weitergehende Features

Auch hier wurde nur ein sehr kleiner Teil der Möglichkeiten im View-Model gezeigt. Im folgenden eine Auflistung einiger weiterer interessanter Features: