콘텐츠로 이동

EXTUI CONTEXTMENU

목적

EV_CONTEXTMENU 이벤트는 특정 UI 오브젝트에서 마우스 우클릭 시 서버 이벤트를 실행할 수 있도록 설정


주요 단계

1. UI 오브젝트 및 이벤트 설정

1.1 UI 오브젝트 생성

o 마우스 우클릭이 적용될 대상 UI: "Button"

o 마우스 우클릭 시 호출될 UI: "Responsive Popover"

이미지

<사진 1> CONTEXTMENU 적용 대상 예시 화면


1.2 ON_INIT 에서 EV_CONTEXTMENU 이벤트 설정

o ON_INIT에서 EV_CONTEXTMENU 이벤트를 호출하고, 적용할 UI Instance ID 및 서버 이벤트를 입력


1.3 ABAP 소스 코드 예시

METHOD /U4A/IF_SERVER~HANDL_ON_INIT.

  "EXTUI_EVENTS 중 EV_CONTEXTMENU UI에 마우스 우클릭 했을때 EVENT를 작동시킨다
  CALL METHOD /U4A/CL_EXTUI_EVENTS=>EV_CONTEXTMENU
    EXPORTING
      IO_VIEW           = ME->/U4A/IF_SERVER~AR_VIEW   " [U4A] UI Element Super Class
      I_UID             = 'BUTTON1'                    " UI ID
      I_SERVER_EVENT    = 'EV_CONTEXTMENU'             " Server Event Name(예 : EV_PRESS)
*     I_USE_WAIT        = 'X'                          " Waiting 사용여부('X' = 사용함, ' ' = 사용안함)
*     IT_SCRIPT_SOURCE  =                              " Client Event
*     I_USE_PROPAGATION = 'X'                          " 이벤트 전파방지 사용여부('X' = 사용함)
*   EXCEPTIONS
*     NOT_SUPPORT_ELEMENT = 1                          " attachBrowserEvent not supported UI.
*     NOT_FOUND_UI        = 2                          " UI Instance not found.
*     OTHERS              = 3
    .

ENDMETHOD.

1.4 EV_CONTEXTMENU 서버 이벤트 메소드 생성

이미지

<사진 2> EV_CONTEXTMENU 을 수행할 서버 이벤트 메소드 생성 화면


2. 마우스 우클릭 시 팝업 호출

o UI에서 마우스 우클릭 시 Responsive Popover가 호출되도록 구현


2.1 ABAP 소스 코드 예시

METHOD EV_CONTEXTMENU.

  DATA LO_RESPONSIVEPOPOVER TYPE REF TO /U4A/CL_UO00415.

*--------------------------------------------------------------------*

  LO_RESPONSIVEPOPOVER ?= ME->/U4A/IF_SERVER~AR_VIEW->GET_UI_INSTANCE(
                             I_ID = 'RESPONSIVEPOPOVER1' ).

  CHECK LO_RESPONSIVEPOPOVER IS BOUND.

  "RESPONSIVEPOPOVER OPEN.
  LO_RESPONSIVEPOPOVER->OPENBY(
    EXPORTING
      OPARENT = 'BUTTON1' ).   " oParent

ENDMETHOD.

3. 실행 화면

이미지

<사진 3> "BUTTON" UI 마우스 우클릭시 POPOVER 호출 화면