Das Element <instantiation> wird dazu benutzt, auf Einfügeplätze Objekte zu instanziieren.
Mit dem Attribut type können 5 verschiedene Darstellungen des Elements eingestellt werden:
- link: als Hyperlink mit vorangestelltem Bild,
- button: als Schaltfläche mit Bild,
- combo: als dropDown-Listenfeld,
- combo link: als Kombination aus dropDown-Listenfeld und Hyperlink mit vorangestelltem Bild,
- combo button: als Kombination aus dropDown-Listenfeld und Schaltfläche mit Bild.
Das Standardbild des Einfügeplatzes kann mit dem Attribut img überschrieben werden (siehe auch img).
Bei einem dropDown-Listenfeld (type = combo) wird das Einfügen direkt nach der Auswahl ausgeführt.
Das explizite Einfügen ist mit den Typen combo link und combo button zu realisieren. Bei diesen Typen muss nach der Auswahl im dropDown-Listenfeld noch der Hyperlink oder die Schaltfläche angeklickt werden.
Um eine flüssige Bedienbarkeit zu ermöglichen, können Auswahllisten in Findern, dropDown-Listenfeldern, etc. bereits beim Öffnen eines Form-UIs gefüllt werden. Dazu wird das Attribut prefetch mit dem Wert true definiert. Dies ist für das Element <instantiation> für alle Typen (link, button, combo, combo link und combo button) verfügbar.
Der Defaultwert des Attributs prefetch ist false, damit nicht alle Bibliothekskomponenten in die Auswahlliste gefüllt werden, falls ein Einfügeplatz, z.B. Engineering.Component deklariert ist.
Hinweis:
Wenn der Filter zu viele Komponenten zulässt, kann dies zu entsprechend längeren Ladezeiten führen.
Gibt es nur eine mögliche Komponente, erscheint der Finder-Dialog nicht, sondern es wird direkt die Komponente eingefügt.
Bei prefetch="true" ist im Fall eines dropDown-Listenfelds die erste Komponente automatisch ausgewählt.
Attributname | Verwendung | Attributwerte | Defaultwert | Beschreibung |
---|---|---|---|---|
alwaysShowDialog | optional | false true |
false | Zeigt einen Dialog an, wenn per Schaltfläche oder Hyperlink eine Instanz erzeugt werden soll. true = zeigt immer den Auswahldialog an flase = unterdrückt den Auswahldialog |
font | optional | Schriftart-Schnitt-Höhe | Systemfont | Schriftart, -schnitt und -höhe für die Textdarstellung |
hSizeMax | optional | maximale Breite des Elements EEC = Breite in Zeichen Web-Applikation = Breite in Pixel |
||
hSizeMaxPx | optional | maximale Breite des Elements EEC = Breite in Pixel Web-Applikation = Breite in Pixel |
||
img | optional | png, gif, jpg | weist dem Element ein anderes Bild zu | |
name | optional | Name der neuen Instanz (Name des Einfügeplatzes). Wird der Name per Formelsprache ermittelt, entspricht der Ursprung der Formel der neuen Instanz. Wird das Attribut nicht angegeben erhält die Projektkomponente den Namen der Bibliothekskomponente. Ist der Name einer Projektkomponente schon vorhanden, wird der neue Name mit einer laufenden Nummer ergänzt. | ||
prefetch | optional | true, false | false | true = Auswahllisten werden beim Öffnen des Form-UIs gefüllt false = Auswahllisten werden erst beim Öffnen der Liste gefüllt |
readonly | optional | true, false | true = Einfügeplatz ist deaktiviert false = Einfügeplatz ist aktiviert |
|
receiver | benötigt | Formel zum Objekt | ||
text | optional | der anzuzeigende Text, dieser kann mit Hilfe der Formelsprache berechnet werden | ||
tooltip | optional | Text oder Form-UI des einzublendenden Tooltips (siehe tooltip) | ||
type | benötigt | button, combo, combo link, combo button, link |
Darstellungstyp des Einfügeplatzes: button = Schaltfläche combo = dropDown-Listenfeld combo link = dropDown-Listenfeld combo button = Schaltfläche link = Text als Hyperlink |
|
visible | optional | true, false | true | true = Einfügeplatz ist sichtbar false = Einfügeplatz ist unsichtbar |
visibleItemCount | optional | Anzahl der sichtbaren Elemente |
Erlaubte Unterelemente | Anzahl |
---|---|
tooltip | 0..1 |
type="link":
<instantiation
type="link"
alwaysShowDialog="true"
receiver="mosWithPlaceholders.select(x|x.isPlaceholder).first"
name="='St'+(mos.indexOf(this)+1)+type.name" />
Ergebnis:
Nach dem Anklicken des Hyperlinks erscheint der folgende Auswahldialog:
Der Auswahldialog ist aufgebaut wie ein Finderdialog für Bibliothekskomponenten. In der Tabelle werden die per Formel gefundenen Bibliothekskomponten aufgelistet. Werden mehrere Bibliothekskomponenten ermittelt, muss die zu instanziierende markiert werden. Anschließend kann im Feld Anzahl Projektkomponenten: vorgegeben werden, wieviele Projektkomponenten in einem Schritt zu erzeugen sind.
type="link" mit anderem Bild und berechnetem Text:
<instantiation
type="link"
text="=('add '+ mos.first.name.right(7))"
receiver="mosWithPlaceholders.select(x|x.isPlaceholder).first"
img="install\icon-collection\level4.png"
name="='St'+(mos.indexOf(this)+1)+type.name"/>
Ergebnis:
type="button". Die selektierte Komponente wird sofort instanziiert:
<instantiation
type="button"
receiver="mosWithPlaceholders.select(x|x.isPlaceholder).first"
name="='St'+(mos.indexOf(this)+1)+type.name"/>
Ergebnis:
type="combo":
<instantiation
type="combo"
receiver="mosWithPlaceholders.select(x|x.isPlaceholder).first"
name="='St'+(mos.indexOf(this)+1)+type.name"/>
Ergebnis:
type="combo link". Die selektierte Komponente wird erst nach anklicken des Hyperlinks instanziiert:
<instantiation
type="combo link"
receiver="mosWithPlaceholders.select(x|x.isPlaceholder).first"
name="='St'+(mos.indexOf(this)+1)+type.name"/>
Ergebnis:
type="combo button". Die selektierte Komponente wird erst nach anklicken der Schaltfläche instanziiert:
<instantiation
type="combo button"
receiver="mosWithPlaceholders.select(x|x.isPlaceholder).first"
name="='St'+(mos.indexOf(this)+1)+type.name"/>
Ergebnis:
type="combo button" mit prefetch="true". Das dropDown-Listenfeld wird sofort nach dem Öffnen des Form-UIs gefüllt:
<instantiation
type="combo button"
prefetch="true"
receiver="mosWithPlaceholders.select(x|x.isPlaceholder).first"
name="='St'+(mos.indexOf(this)+1)+type.name"/>
Ergebnis: