Hallo,
Ich versuche schon seit Tagen erfolglos das folgende Problem zu lösen:
In meinem Dynpro befinden sich 2 Texteditoren. Zwischen diesen beiden Editoren kann man mittels drag&drop Texte austauschen. Nun möchte ich, daß der Event wenn man den Text in dem rechten Editor 'fallen' lässt abgefangen und behandelt wird. Als Programmiergrundlage habe ich das Beispielgprogramm RSDEMO_DRAG_DROP_EDIT_TREE benutzt.
Mein modifiziertes Coding sieht wie folgt aus:
---------------------------------------------------------------------*
CLASS dragdrop_receiver DEFINITION
---------------------------------------------------------------------*
........ *
---------------------------------------------------------------------*
class lcl_dragdrop_receiver definition.
public section.
methods:
drag for event on_drag of cl_gui_textedit.
drop for event on_drop of cl_gui_textedit.
endclass.
data editor1 type ref to cl_gui_textedit.
data editor2 type ref to cl_gui_textedit.
data container1 type ref to cl_gui_custom_container.
data container2 type ref to cl_gui_custom_container.
data behaviour_left type ref to cl_dragdrop.
data behaviour_right type ref to cl_dragdrop.
call screen 100.
*&---------------------------------------------------------------------
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------
* text
*----------------------------------------------------------------------
module status_0100 output.
set pf-status 'START'.
endmodule. " STATUS_0100 OUTPUT
*&---------------------------------------------------------------------
*& Module test OUTPUT
*&---------------------------------------------------------------------
* text
*----------------------------------------------------------------------
module test output.
create object container1
exporting
container_name = 'CONTAINER1'.
create object editor1
exporting
parent = container1.
create object container2
exporting
container_name = 'CONTAINER2'.
create object editor2
exporting
parent = container2.
break-point.
data effect type i.
* Definition of drag drop behaviour
create object behaviour_left.
effect = cl_dragdrop=>move + cl_dragdrop=>copy.
call method behaviour_left->add
exporting
flavor = 'Drop'
dragsrc = 'X'
droptarget = ' '
effect = effect.
call method editor1->set_dragdrop
exporting dragdrop = behaviour_left.
create object behaviour_right.
effect = cl_dragdrop=>move + cl_dragdrop=>copy.
call method behaviour_right->add
exporting
flavor = 'Drop'
dragsrc = ' '
droptarget = 'X'
effect = effect.
call method editor2->set_dragdrop
exporting dragdrop = behaviour_right.
* registration of drag and drop events
data dragdrop type ref to lcl_dragdrop_receiver.
create object dragdrop.
set handler dragdrop->drag for editor1.
set handler dragdrop->drop for editor2.
endmodule. " test OUTPUT
*---------------------------------------------------------------------*
* CLASS DRAGDROP_RECEIVER IMPLEMENTATION
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
class lcl_dragdrop_receiver implementation.
method drop.
break-point.
endmethod.
method drag.
break-point.
endmethod.
endclass.
Es wäre schön, wenn jemand in diesem Forum eine Lösung für dieses Problem hätte. Vielen Dank für eure Hilfe im Voraus.