Ansicht
Dokumentation

CL_DRAGDROP - Behavior für Drag&Drop

CL_DRAGDROP - Behavior für Drag&Drop

PERFORM Short Reference   PERFORM Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Funktionalität

Die Klasse CL_DRAGDROP dient zur Beschreibung der Drag & Drop Eigenschaft von GUI Controls. Die wesentlichen Eigenschaften sind die beim Drag & Drop verwendeten Objekt und Angaben über die Art der Drag & Drop Operation.

Die Art des Drag & Drop Objekts wird über den FLAVOR beschrieben. Der Flavor ist ein String, der ähnlich betrachtet werden kann wie ein Klassennamen oder Mime Type. Drag & Drop kann nur zwischen GUI Controls funktionieren, die den gleichen FLAVOR in der Drag & Drop Beschreibung beinhalten.

Zusätzliche Optionen des Drag & Drop sind Angaben ob ein Control Quelle bzw. Ziel einer Drag & Drop -Operation ist, ob die Operation einer Verschiebung des Objekts (Move) oder einer Kopie des Objekts entspricht.

Bei der Verwendung von Drag & Drop müssen folgende Schritte programmiert werden :

  • Erzeugen der beteiligten Controls und registrieren auf die entsprechenden Drag & Drop Events.
  • Erzeugen der notwendigen Drag & Drop Beschreibungen (CL_DRAGDROP). Diese Beschreibungen geben an, welche(n) Flavor ein Objekt anbietet, ob das Objekt Drag Quelle oder Drop Ziel ist und die Art der Operation.
  • Zuweisung der Drag & Drop Beschreibungen an die Controls, bzw. deren Drag & Drop fähigen Objekte. Je nach Controlverschalung und Schnittstelle wird diese Zuweisung über ein Objekt der Klasse CL_DRAGDROP oder über das Handle einer Instanz der Klasse CL_DRAGDROP realisiert (siehe Methode GET_HANDLE).
  • Bereitstellen von Ereignisbehandlern. In den meisten Fällen wird Drag & Drop nicht von den Control Verschalungen realisiert werden können, sondern muß vom Verwender der Controls implementiert werden. Hierfür gibt es bis zu 4 Ereignisse deren Auftreten implementiert werden kann.

Drag & Drop lauft danach nach folgendem Schema ab :

  • Eine Drag & Drop Operation kann nur auf Objekten gestartet werden, die als Drag Quelle ausgezeichnet sind. Zum Zeitpunkt des Ziehens eines Objekts werden keine Ereignisse erzeugt. Ale Ereignisse werden bis zum Zeitpunkt des Drop verzögert.
  • Ein Drop ist nur auf Objekten möglich, die folgende Eigenschaften erfüllen
  • Der Flavor von Drag Quelle und Drop Ziel müssen gleich sein.

  • Der Effekt (Move / Copy) muß übereinstimmen.

  • Beide Objekte müssen im gleichen Programm (interner Modus) leben.

In diesem Fall kann der Benutzer das Objekt fallen lassen.

  • Für den Verwender von Drag & Drop können nun folgende Ereignisse auftreten. (Je nach Controlimplementierung können diese Ereignisse andere Namen haben und zusätzliche Control-spezifische Parameter tragen)
  • OnGetFlavor : Dieses Ereignis wird ausgelöst, wenn es mehrere mögliche übereinstimmende Flavors gibt. Das Ziel Objekt kann in diesem Ereignisbehandler den gewünschte Flavor bestimmen.

  • OnDrag : Diese Ereignis wird auf dem Quell Objekt der Drag & Drop Operation ausgelöst. Die Aufgabe des Ereignisbehandlers ist, das Objekt welches Gegenstand der Operation ist, eindeutig zu beschreiben. Dafür dient die Klasse CL_DRAGDROPOBJECT. Diese Klasse hat ein Attribut OBJECT TYPE REF TO OBJECT. In diesem Attribut kann der Ereignisbehandler ein beliebiges Objekt unterbringen.

  • OnDrop : Diese Ereignis wird auf dem Zielobjekt der Drag & Drop Operation ausgelöst. Die Aufgabe des Ereignisbehandlers ist, das Objekt, welches in OnDrop zur Verfügung gestellt wurde auszuwerten und entsprechende Aktionen (einfügen neuer Daten) auf dem Zielcontrol vorzunehmen.

  • OnDropComplete : Dieses Ereignis wird auf dem Quell Objekt ausgelöst, wenn das OnDrop Ereignis erfolgreich ablief. Das Quellobjekt kann hier entsprechende Aktionen ausführen, besonders im Fall einer Move Operation.

Alle Ereignisse haben ein DragDropObjekt als Parameter. Dieses trägt neben dem Anwendungsobjekt Angaben über den Flavor und eine Methode zum Abbruch der Drag & Drop Operation.






General Data in Customer Master   Vendor Master (General Section)  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 4868 Date: 20240329 Time: 121813     sap01-206 ( 87 ms )