Lade...
 

ObjectList, OList, TreeList

ObjectList, OList, TreeList

Für die Anzeige von Objektlisten bitte die neuere und schnellere ObjectListView verwenden!

ObjectList(name~aliasName, flags, x, y, w, h)

Parameter
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 ObjectList können Relationen zwischen Objekten dargestellt und interaktiv bearbeitet werden.

Jeder Eintrag der Liste repräsentiert genau ein Objekt und zeigt ausgewählte Daten, die mit dem Objekt in Zusammenhang stehen. Für die Darstellung von Listen, wurde die ObjectList durch die schnellere und modernere ObjectListView abgelöst. Die ObjectList kann jedoch im Gegensatz zur ObjectListView Baumstrukturen listenartig darstellen (mehrspaltig) und vermischt so die Konzepte der ListView und des Trees. Die Darstellung als sogenannte TreeList ist nur dann möglich, wenn für die ObjectList das Flag VIEW_ONLY gesetzt ist. Die Collection, die beim Aufklappen expandiert wird, wird wie im Tree über das Format-Flag NODE angegeben.

Die TreeList sollte nicht zur Darstellung großer Datenmengen verwendet werden, weil sie dafür nicht geeignet ist. In MorphIt wird die ObjectList ebenfalls als TreeList dargestellt und der Zustand der aufgeklappten Knoten mit der nativen TreeList synchronisiert. Im Gegensatz zur nativen TreeList werden in MorphIT die mit HEADER angegbenen Spaltenüberschriften angezeigt. Eine weitere Einschränkung der TreeList ist, dass die Sortierung der Einträge durch den Nutzer nicht möglich ist.


Die Objektbox wird mit folgenden Anweisungen programmiert:

Der Befehl Widget legt eine ObjectList auf den Stack, so dass auf die Methoden und Attribute eines Widgets zugegriffen werden kann.

 

Folgende Methoden werden von der ObjectList angeboten:

 

Flags
Flags Beschreibung
ACCEPT_DROP Auf der Objektbox können von einer anderen 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)..
AUTO_POSITION Die X-Positionen werden automatisch berechnet, müssen also mit SetFormat nicht explizit vorgegeben werden.
BITMAP_SIZE Werden Bitmaps dargestellt (über ein Push-Statement in einer SetFormat generiert), so werden diese ohne dieses Flag auf Spaltenbreite gedehnt. Dies tritt nur auf, wenn die Breite der Spalte (etwa durch einen Header) vorgegeben ist, oder durch zusätzlich in der Spalte vorhandene Strings trotz AUTO_POSITION die Spaltenbreite nicht nur durch die Bitmaps bestimmt wird. die Angabe des Flags unterbindet dieses, so dass jede Bitmap garantiert in ihrer Originalgröße dargestellt wird.
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.
Zusätzlich kann man jedoch bei Ausführung von SELECT zu dem entsprechenden Item mittels GetCurrentWidget ermitteln aus welchem Windowobjekt heraus der Menupunkt via ContextMenu aufgerufen wurde. Bei einem Ausruf aus dem Hauptmenu liefert GetCurrentWidget NULL zurück.

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.

GRIDMENU(identifikator) Setzt das Gridmenü fest. Der Identifikator ist ein Bezeichner eines Items innerhalb einer Menu- oder ContextMenuList-Deklaration.
DRAG_COPY Die gerade ausgewählten Objekte können mit der rechten Maustaste zu einer anderen Objektbox oder zu einem Window gezogen werden (Drag-and-Drop). Die Objekte können nur auf einem Ziel mit Flag ACCEPT_DROP abgelegt werden. Die Listboxeinträge bleiben erhalten.
DRAG_MOVE Wie bei DRAG_COPY können die gerade ausgewählten Objekte zu einer anderen Objektbox oder zu einem Window gezogen werden. Die entsprechenden Listboxeinträge werden gelöscht, wenn die Objekte auf einer anderen Listbox oder einem Window mit Flag ACCEPT_DROP abgelegt wurden.
ENTIRE Für der Darstellung einer Collection bzw. m-1- oder m-n-Relation mit FillWindow und DrainWindow existiert folgender Modus:
Die Objektbox zeigt nur die Objekte der Collection, m-1- oder m-n-Relation. Dieser Modus wird mit dem Flag ENTIRE aktiviert.
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.
HIDDEN Die Objektbox bleibt solange unsichtbar, bis Anweisung Show sie auf dem Bildschirm erschienen lässt.
HZ_SCROLL_BAR Die Objektbox erhält zusätzlich zum vertikalen auch einen horizontalen Scrollbar.
ITEM(w, h), ITEM(w), ITEM(, h) Wenn Breite und Höhe eines Listboxeintrags von den durch die Größe der Listbox vorgegebenen Maßen abweichen, werden sie auf diese Weise angegeben. Eine größere Breite ist zusammen mit Flag HZ_SCROLL_BAR sinnvoll. Mehrzeilige Einträge benötigen eine explizite Höhenangabe.
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.
MIN_HEIGHT(h) Höhe der Liste 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 der Liste 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.NULL_ELEMENT
Die Objektbox 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.
OPTIMIZE

Die Optimierung bezieht sich auf die Zugriffsausdrücke für die Spalten der List (vergleiche Anweisung SetFormat): Gleiche Teilausdrücke werden nur einmal ausgewertet (weitere Hinweise ...).   

SELECT_MULTIPLE Es ist möglich, mehrere Objekte gleichzeitig zu selektieren.
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 übergeben.

Zur Abgrenzung und detaillierten Beschreibung der Darstellungsmöglichkeiten siehe: ObjectListView