Show TOC

Calling a Confirmation Dialog BoxLocate this document in the navigation structure

Use

To quickly create dialog boxes of a standardized layout (for example, for the confirmation of changes to current data), you can call the CREATE_POPUP_TO_CONFIRM method of IF_WD_WINDOW_MANAGER . You do not need to create a separate window for this. The dialog box is created automatically by the runtime.

The CREATE_POPUP_TO_CONFIRM method creates an object of the type IF_WD_WINDOW; the dialog box can be created using its parameters.

method onactionpopup4_1 .
  data: l_cmp_api          type ref to if_wd_component,
        l_window_manager   type ref to if_wd_window_manager,
        l_popup            type ref to if_wd_window,
        l_text             type string_table,
        l_api              type ref to if_wd_view_controller.
  l_cmp_api        = wd_comp_controller->wd_get_api( ).
  l_window_manager = l_cmp_api->get_window_manager( ).
  insert `Data where changed` into table l_text.    "#EC *
  insert `Do you want to save?`        into table l_text.    "#EC * 
  l_popup = l_window_manager->create_popup_to_confirm(
                text            = l_text
                button_kind     = if_wd_window=>co_buttons_yesnocancel
                message_type    = if_wd_window=>co_msg_type_question
                window_title    = 'Test: Popup to confirm'                window_position = if_wd_window=>co_center )."#EC *
  l_api = wd_this->wd_get_api( ).
  l_popup->subscribe_to_button_event(
               button            = if_wd_window=>co_button_yes
               action_name       = 'YES'               action_view       = l_api
               is_default_button = abap_true ).
  l_popup->subscribe_to_button_event(
               button            = if_wd_window=>co_button_no
               action_name       = 'NO'
               action_view       = l_api
               is_default_button = abap_false ).
  l_popup->subscribe_to_button_event(
               button            = if_wd_window=>co_button_cancel
               action_name       = 'CANCEL'
               action_view       = l_api
               is_default_button = abap_false ).
  l_popup->open( ).
endmethod.

         

The SUBSCRIBE_TO_BUTTON_EVENT method of IF_WD_WINDOW assigns appropriate actions to the buttons. If you created a window for the dialog box yourself, the assignment of individual actions to the buttons takes place in the WDDOINIT hook method (see Calling Dialog Boxes of the Same Component ).

As no explicitly created window exists in this case, the corresponding actions are created in the same view in which the dialog box is called. Assignment using the SUBSCRIBE_TO_BUTTON_EVENT method takes place immediately after the creation of the dialog box in same method.

For a few special cases it is useful to register event handlers for component controllers or custom controllers on the button events of a dialog box. For these cases, a special POPUP_TO_CONFIRM attribute of type IF_WD_POPUP_TO_CONFIRM_N has been implemented in the IF_WD_WINDOW interface. This interface provides precisely the methods with which event handlers for component and custom controllers can be registered on events of the dialog box.