‎2006 Aug 28 11:51 AM
anybody know how to use this method
cl_gui_cfw=>set_new_ok_code?
How is the control transferred to the desired PAI?
Kindly let me know.
‎2006 Aug 28 11:56 AM
‎2006 Aug 28 1:21 PM
Hi Chitra,
check if this helps...
REPORT DEMO_CUSTOM_CONTROL .
Declarations *****************************************************
CLASS EVENT_HANDLER DEFINITION.
PUBLIC SECTION.
METHODS: HANDLE_F1 FOR EVENT F1 OF CL_GUI_TEXTEDIT
IMPORTING SENDER,
HANDLE_F4 FOR EVENT F4 OF CL_GUI_TEXTEDIT
IMPORTING SENDER.
ENDCLASS.
DATA: OK_CODE LIKE SY-UCOMM,
SAVE_OK LIKE SY-UCOMM.
DATA: INIT,
CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
EDITOR TYPE REF TO CL_GUI_TEXTEDIT.
DATA: EVENT_TAB TYPE CNTL_SIMPLE_EVENTS,
EVENT TYPE CNTL_SIMPLE_EVENT.
DATA: LINE(256),
TEXT_TAB LIKE STANDARD TABLE OF LINE,
FIELD LIKE LINE.
DATA HANDLE TYPE REF TO EVENT_HANDLER.
Reporting Events ***************************************************
START-OF-SELECTION.
LINE = 'First line in TextEditControl'.
APPEND LINE TO TEXT_TAB.
LINE = '----
'.
APPEND LINE TO TEXT_TAB.
LINE = '...'.
APPEND LINE TO TEXT_TAB.
CALL SCREEN 100.
Dialog Modules *****************************************************
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'SCREEN_100'.
IF INIT IS INITIAL.
INIT = 'X'.
CREATE OBJECT: CONTAINER EXPORTING CONTAINER_NAME = 'TEXTEDIT',
EDITOR EXPORTING PARENT = CONTAINER,
HANDLE.
EVENT-EVENTID = CL_GUI_TEXTEDIT=>EVENT_F1.
EVENT-APPL_EVENT = ' '. "system event
APPEND EVENT TO EVENT_TAB.
EVENT-EVENTID = CL_GUI_TEXTEDIT=>EVENT_F4.
EVENT-APPL_EVENT = 'X'. "application event
APPEND EVENT TO EVENT_TAB.
CALL METHOD: EDITOR->SET_REGISTERED_EVENTS
EXPORTING EVENTS = EVENT_TAB.
SET HANDLER HANDLE->HANDLE_F1
HANDLE->HANDLE_F4 FOR EDITOR.
ENDIF.
CALL METHOD EDITOR->SET_TEXT_AS_STREAM EXPORTING TEXT = TEXT_TAB.
ENDMODULE.
MODULE CANCEL INPUT.
LEAVE PROGRAM.
ENDMODULE.
MODULE USER_COMMAND_0100 INPUT.
SAVE_OK = OK_CODE.
CLEAR OK_CODE.
CASE SAVE_OK.
WHEN 'INSERT'.
CALL METHOD EDITOR->GET_TEXT_AS_STREAM IMPORTING TEXT = TEXT_TAB.
WHEN 'F1'.
MESSAGE I888(SABAPDOCU) WITH TEXT-001.
WHEN OTHERS.
MESSAGE I888(SABAPDOCU) WITH TEXT-002.
CALL METHOD CL_GUI_CFW=>DISPATCH. "for application events
MESSAGE I888(SABAPDOCU) WITH TEXT-003.
ENDCASE.
SET SCREEN 100.
ENDMODULE.
Class Implementations **********************************************
CLASS EVENT_HANDLER IMPLEMENTATION.
METHOD HANDLE_F1.
DATA ROW TYPE I.
MESSAGE I888(SABAPDOCU) WITH TEXT-004.
CALL METHOD SENDER->GET_SELECTION_POS
IMPORTING FROM_LINE = ROW.
CALL METHOD SENDER->GET_LINE_TEXT
EXPORTING LINE_NUMBER = ROW
IMPORTING TEXT = FIELD.
CALL METHOD CL_GUI_CFW=>SET_NEW_OK_CODE "raise PAI for
EXPORTING NEW_CODE = 'F1'. "system events
CALL METHOD CL_GUI_CFW=>FLUSH.
ENDMETHOD.
METHOD HANDLE_F4.
DATA ROW TYPE I.
MESSAGE I888(SABAPDOCU) WITH TEXT-005.
CALL METHOD SENDER->GET_SELECTION_POS
IMPORTING FROM_LINE = ROW.
CALL METHOD SENDER->GET_LINE_TEXT
EXPORTING LINE_NUMBER = ROW
IMPORTING TEXT = FIELD.
CALL METHOD CL_GUI_CFW=>FLUSH.
ENDMETHOD.
ENDCLASS.
Regards,
Vidya.