Richtlinien für das View-Modell
Module
Die Module im View-Modell sollten den Modulen aus dem Objektmodell entsprechen.
Dateien
\MeinProjekt
\Adressstamm
\UI
\Model
Das Modul muss eine Haupt-Modelldatei mit dem Namen des Moduls und der Endung .avm
\MeinProjekt\Adressstamm\UI\Model\Adressstamm.avm
view model Adressstamm
...
end view model Adressstamm.
Jedes Modul sollte eine eigene Delphi-Startup-Unit haben, in der die Initialisation des Moduls vorgenommen wird. Diese Datei trägt per Konvention den Namen InitView.pas
\MeinProjekt\Adressstamm\UI\adrInitView.pas
unit adrInitView;
interface
uses
atViewApplication;
var
AdressstammViewModule: TAtViewModule = nil;
procedure Startup( _application: TAtViewApplication );
procedure Shutdown;
implementation
uses
SysUtils,
adrInit,
adrAdressenView;
procedure Startup( _application: TAtViewApplication );
begin
adrInit.Startup( _application );
AdressstammViewModule:=
AdressstammModule as TAtViewModule;
adrAdressenView.
AttachModule( AdressstammViewModule );
// ...
end {Startup};
procedure Shutdown;
begin
AdressstammViewModule:= nil;
adrInit.Shutdown;
end {Shutdown};
end {adrInitView}.
Referenzen
Bezeichner
- Name des Modul-Verzeichnisses
- Name der Haupt-Modelldateien
Referenz eines anderen Moduls, das Elemente in diesem Modul verwendet
view model Debitoren
uses Adressstamm
Referenz einer anderen Unit, die Elemente in einer Unit in diesem Modul verwendet
view model Debitoren
unit Belege
uses Adressstamm.Adressen
Referenz aus einer anderen Unit auf ein Element in einer Unit in diesem Modul
Beispiel fehlt noch.
Modulpräfix
Der Modulpräfix sollte sich mit demjenigen des Moduls im Objektmodell
view model Adressstamm
prefixForNamesInGeneratedCode 'Adr'
Units
Units gliedern ein Modul in eng zusammenhängende, in eigenen Quell-Dateien verwaltete Teilbereiche. Sie entsprechen direkt den generierten Delphi-Units. Die View-Units müssen nicht mit den Objektmodell-Units identisch sein. Der Name gibt den Teilbereich an, und sollte auch ohne spezielle Prä- oder Postfixe geschrieben werden. Beispiele: Adressen, Kunden, Belege, Nachschlagelisten.
Dateien
Die Modell-Datei zu einer Unit sollte den Namen der Unit mit den Endung .avm
\MeinProjekt\Adressstamm\UI\Model\Nachschlagelisten.avm
view model Adressstamm
unit Nachschlagelisten
...
end unit Nachschlagelisten
end view model Adressstamm.
Die Modelldatei muss von der Haupt-Datei des Moduls include
view model Adressstamm
prefixForNamesInGeneratedCode 'Adr'
includes Adressen
includes Nachschlagelisten
end view model Adressstamm
Durch den oben definierten Modulpräfix Adr
\MeinProjekt\Adressstamm\UI\adrNachschlagelistenView.pas
Referenzen
Bezeichner
- Name der Modelldatei
- Name der generierten Delphi-Unit, mit Modul-Präfix und View-Suffix
Referenz einer anderen Unit, die Elemente in dieser Unit verwendet
view model Debitoren
unit Belege
uses Adressstamm.Adressen
Detailansichten zu Objekten
Detail-Views definieren die Visualisierung von einzelnen Daten-Objekten. Sie haben eine direkte Entsprechung in den generierten Delphi-Klassen. Der Name ist typischerweise gleich wie der Name der visualisierten Modell-Klasse. Beispiele: Adresse, Ort, Beleg.
Man kann verschiedene Visualisierungen für die gleiche Modell-Klasse definieren. In diesem Fall hängt man die genaue Bezeichnung der Visualisierungsart an den Namen an.
Beispiele: AdresseKurz, BelegZurKontrolle.
Delphi-Code
detail Adresse
...
end detail Adresse
erzeugt in der generierten Delphi-Unit folgende Delphi-Klasse (Modul-Präfix ist Adr)
type
TAdrAdresseObjView = class;
Referenzen
Referenzen von Listen- und Suchdefinitionen
list Adressen
detailView Adresse
In der Implementation von Methoden der generierten Klasse
procedure TAdrAdresseObjView.DoSendeMail;
begin
if Obj.KannMailEmpfangen then begin
Obj.SendeMail( 'Subject', 'Text' );
end;
end {DoSendeMail};
Listen
- Wir empfehlen den Gebrauch der Mehrzahl des Klassen-Namens, da es sich bei Listen um Angaben zur Darstellung mehrerer Objekte handelt. Beispiele: Adressen, Orte, Belege.
- Alternativ kann man auch hier die Einzahl verwenden, damit die Bezeichner für die Visualisierungen einer Klasse alle gleich und somit besser merkbar sind. Beispiele: Adresse, Ort, Beleg
Man kann verschiedene Visualisierungen für Objektlisten der gleichen Modell-Klasse definieren. In diesem Fall hängt man die genaue Bezeichnung der Visualisierungsart an den Namen an. Beispiele: AdresseNachLetztemEinkauf, BelegZurKontrolle
Delphi-Code
list Adressen
...
end list Adressen
erzeugt in der generierten Delphi-Unit folgende Delphi-Klasse (Modul-Präfix ist Adr)
type
TAdrAdressenLinkView = class;
Referenzen
Referenzen aus SubLink-Definitionen
link Belege
listView Belege
link Ort
listView Orte
Referenzen aus LinkItem-Definitionen
itemForListView Belege
listView Belege
Suchen
Such-Definitionen sind gleich zu benennen wie Listen-Definitionen, haben aber eine zusätzliche Referenz.
Referenzen
Referenzen aus Link-Definitionen
list Belege
searchView Belege
Gruppen
Gruppen gliedern die Eigenschaften, Referenzen und Methoden eines Objekts. Sie bilden mit diesen die Menge der Elemente
- Tab
- für die Top-Level-Gruppen, die normalerweise auf Laschen im Inspector abgebildet werden,
- Grp
- für den nächsten Level, der auf Gruppenbrüche abgebildet wird,
- Line
- für den innersten Level, der auf Zeilen mit mehreren Feldern abgebildet wird.
detail Adresse
group TabMain
group GrpNames
...
group LineNames
...
end
...
group GrpPhones
...
end
group TabSettings
group GrpSettings
...
end
end
end detail Adresse
Delphi-Code
detail Adresse
group TabMain
type
TAdrAdresseObjView = class
public
property gTabMain: TAtModelledGroupView read;
end;
Eigenschaften
View-Eigenschaften visualisieren die Eigenschaften des darunter liegenden Daten-Objekts. Der Name entspricht normalerweise demjenigen der visualisierten Daten-Objekt-Eigenschaft. Dann entfällt auch die explizite Angabe des Bezugs. Beispiele: Name, Vorname, Kreditlimite
Delphi-Code
detail Adressen
group TabMain
group GrpMain
property Name
type
TAdrAdresseObjView = class
public
property pName: TAtModelledPropertyView read;
property vName: variant read write;
end;
Referenzen
Referenzen aus Listen- oder Such-Spalten
column Name
propertyView Name
Aus View-Methoden
if (vName = 'Opus') and not pVorname.Visible
then begin
...
end;
Referenzen
View-Referenzen visualisieren die zu-Eins-Objektbezüge des darunter liegenden Daten-Objekts, d.h. sie visualsieren Fremdschlüssel. Die Fremdschlüssel könnten allerdings zusammengesetzt sein. Darum entspricht der Name demjenigen des visualisierten Links, nicht dem des Fremdschlüssels. Dann entfällt auch die explizite Angabe des Bezugs. Beispiele: Ort, Adresse Nicht aber: IDOrt, FirmenID
Delphi-Code
detail Adressen
group TabMain
group GrpMain
reference Ort
type
TAdrAdresseObjView = class
public
property rOrt: TAtModelledReferenceView read;
property oOrt: TAtAdrOrtObjView read write;
property kOrt: variant read write;
end;
Referenzen
Aus View-Methoden
if (oOrt.vName = 'Wetzikon') then begin
...
end;
Methoden
View-Methoden visualisieren vom Benutzer auslösbare Aktionen für ein Objekt. Basiert die Methode auf einer darunter liegenden Daten-Objekt-Methode, dann sollte er gleich wie deren Name sein. Beispiele: Verbuchen, Mail schicken
Delphi-Code
detail Adressen
method MailSchicken
type
TAdrAdresseObjView = class
public
property mMailSchicken: TAtModelledMethodView read;
end;
Links
Links visualisieren von einem Daten-Objekt ausgehende Links. Der Name sollte daher gleich wie der (Rollen-)Name des visualisierten Links sein. Beispiele: Belege, Kunde
Delphi-Code
detail Adressen
link Kontakte
link Ort
type
TAdrAdresseObjView = class
public
property lKontakte: TAdrKontaktLinkView read;
property lOrt: TAdrOrtLinkView read;
end;
© 2004-2009 Opus Software AG, Switzerland
Zuletzt aktualisiert am 13.02.2009.