ObjectCombobox, ObjectCbox
ObjectCombobox(name~aliasName, flags, x, y, w, h)
Parameter | Beschreibung | |
---|---|---|
name | * | Identifikator oder KLASSE::ausdr |
aliasName | ein zusätzlicher Identifikator | |
flags | Flags | |
x | * | Position X (in Minicells) |
y | * | Position Y (in Minicells) |
w | * | Breite (in Minicells) |
h | * | Höhe (in Minicells) |
- - Pflichtparameter
Das Tupel (Klasse, Zugriffsausdruck) definiert eine Abbildung auf Modelldaten (siehe FillWindow, DrainWindow). Mit der ObjectCombobox können Relationen zwischen Objekten dargestellt und interaktiv bearbeitet werden.
Dies ist die Ausprägung der Objektbox als Combobox. Jeder Eintrag repräsentiert genau ein Objekt und zeigt ausgewählte Daten, die mit dem Objekt in Zusammenhang stehen.
Die angegebene Höhe wird nicht benutzt, um die Höhe des Eingabefeldes zu bestimmen. Diese wird – analog bspw. zum String-Widget – anhand der Font-Größe bestimmt. Stattdessen bestimmt die angegebene Höhe die maximale Höhe der aufgeklappten Auswahlliste.
Die ObjectCombobox wird mit folgenden Anweisungen programmiert:
- Darstellung der Objekte steuern:
- Objekte in der Objektbox darstellen:
- Selektion der Objekte
- Objektbox und FillWindow / DrainWindow
- Objektbox editieren:
Flag | Beschreibung |
---|---|
AUTO_POSITION | Die X-Positionen werden automatisch berechnet, müssen also mit SetFormat nicht explizit vorgegeben werden. |
NULL_ELEMENT |
Die ComboObjektbox erzeugt automatisch einen Eintrag, der sich auf kein Objekt bezieht. Ein NULL-Element ist nützlich, wenn die Objektbox mit FillWindow und DrainWindow zur Darstellung eines Pointers bzw. einer 1-1- oder 1-m-Relation benutzt wird. |
ENTIRE | Wenn das Flag ENTIRE gesetzt ist, wird das referenzierte Element automatisch bei FillWindow in die Objektbox geladen, ein manuelles Füllen der Objektbox ist nicht notwendig. Das ist vor allem in Kombination mit NULL_ELEMENT sinnvoll, um in der Objektbox nur das referenzierte Element aus einer großen Menge statt der ganzen Menge zu laden und die Möglichkeit zu bieten die Referenz zu entfernen. Die Objektbox bietet dann aber nur die Möglichkeit der Referenz zu entfernen oder zu behalten, ein Ändern der Referenz auf ein anderes Objekt ist dann mit der Objektbox nicht mehr möglich. |
HIDDEN | Die Objektbox bleibt solange unsichtbar, bis Anweisung Show sie auf dem Bildschirm erscheinen lässt. |
MIN_HEIGHT(h) | Höhe des Widgets fällt in keinem Falle unter den Wert h (Angabe in Minicells). Dies ist vor allem in Kombination mit Attachments von Nutzen. |
MIN_WIDTH(w) | Breite des Widgets fällt in keinem Falle unter den Wert w (Angabe in Minicells). Dies ist vor allem in Kombination mit Attachments von Nutzen. |
NO_DRAIN | Die Objektbox wird zwar von FillWindow gefüllt, aber von DrainWindow ignoriert. |
TOOLTIP(mlString) | Der angegebene String wird als Hinweistext (Tooltip) eingeblendet, oder, falls ein Event TOOLTIP ebenfalls definiert ist, an diesen übergeben. Das Erscheinen des Tooltips wird vom System automatisch nach eine bestimmten Zeit des Verharrens des Maus-Cursors über dem Windowobjekt ausgelöst. Der String kann mehrsprachig sein. An das Event wird der jeweils zur eingestellten Sprache aktuelle Eintrag übergeben. |
CONTEXTMENU(identifikator) |
Der Identifikator ist ein Bezeichner eines Items innerhalb einer Menu- oder ContextMenuList-Deklaration. Das unter diesem Item hängende Untermenu wird automatisch beim Betätigen der rechten Maustaste eingeblendet. Wird daraufhin ein Menupunkt ausgewählt, wird wie zu Item beschrieben die jeweilige Aktion gestartet, in gleicher Weise, als wäre der Menueintrag aus dem Hauptmenu heraus aufgerufen worden. Soll ein ContextMenu nicht automatisch erscheinen, so kann es (nach Gestaltungsrichtlinie sollte dies als Reaktion auf die rechte Maustaste, also innerhalb MOUSE_CLICK_R erfolgen) mittels PopupMenu auch aus InstantView® heraus aufgerufen werden. In diesem Fall sollte auf die Angabe des Flags CONTEXTMENU verzichtet werden, da sonst das Menu zweimal (einmal automatisch, einmal gesteuert) erscheint. |
ACCEPT_DROP | Auf der ComboObjektbox können von einer Objektbox mit Drag-and-Drop über den Bildschirm gezogene Objekte abgelegt werden. Was mit den Objekten geschehen soll, muss in der Aktionsliste beschrieben werden (siehe Beispiel).. |
LIST_INVALID (ab 4.2) | Normalerweise werden in eine Objektbox nur gültige Objekte aufgenommen. Wenn dieses Flag gesetzt ist, werden jedoch auch ungültige Objekte aufgenommen und angezeigt. |
HELP(anchor) Help("file#anchor") | verbindet das Windowobjekt mit Online-Hilfe im HTML-Format. Wenn kein Filename angegeben wurde, gilt die im Modul festgelegte HTML-Datei. |
HELP(n) |
Möchte man lieber das Help-System der Plattform (OS/2 PM, MS Windows) benutzten, so ist eine ganze Zahl n anzugeben, die auf das entsprechende Hilfe-Fenster verweist. Dabei muss n < 40000 sein. Hinweis: Als Online-Hilfe für InstantView® Applikation wird aus Gründen der Portabilität HTML empfohlen. |
Transaktionsabbruch
Bei einem Transaktionsabbruch (AbortTXN, Attention(AbortTXN), usw.) wird die Combobox geleert - aber nur dann, wenn sie innerhalb der Transaktion verändert wurde. Dadurch wird sichergestellt, dass die Combobox keine Objekte enthält, die es möglicherweise nicht mehr gibt (z.B. neue persistente Objekte, die durch den Transaktionsabbruch wieder gelöscht werden).