abap2UI5/src/00/z2ui5_cl_app_demo_20.clas.abap
oblomov f9e1069f60 refactoring and flow simplification (#114)
* refactoring and simplification

* refactoring

* refactoring

* refactoring and clean up

* refactoring

* refactoring

* refactoring

* simplification

* file upload/download

* abaplint issues fix
2023-06-15 16:23:15 +00:00

96 lines
2.5 KiB
ABAP

CLASS z2ui5_cl_app_demo_20 DEFINITION PUBLIC.
PUBLIC SECTION.
INTERFACES z2ui5_if_app.
CLASS-METHODS factory
IMPORTING
i_text TYPE string
i_cancel_text TYPE string
i_cancel_event TYPE string
i_confirm_text TYPE string
i_confirm_event TYPE string
i_check_show_previous_view TYPE abap_bool DEFAULT abap_true
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_app_demo_20.
DATA check_initialized TYPE abap_bool.
DATA mv_text TYPE string.
DATA mv_cancel_text TYPE string.
DATA mv_cancel_event TYPE string.
DATA mv_confirm_text TYPE string.
DATA mv_confirm_event TYPE string.
DATA mv_check_show_previous_view TYPE abap_bool.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS Z2UI5_CL_APP_DEMO_20 IMPLEMENTATION.
METHOD factory.
result = NEW #( ).
result->mv_text = i_text.
result->mv_cancel_text = i_cancel_text.
result->mv_cancel_event = i_cancel_event.
result->mv_confirm_text = i_confirm_text.
result->mv_confirm_event = i_confirm_event.
result->mv_check_show_previous_view = i_check_show_previous_view.
ENDMETHOD.
METHOD z2ui5_if_app~controller.
CASE client->get( )-lifecycle_method.
WHEN client->cs-lifecycle_method-on_event.
IF check_initialized = abap_false.
check_initialized = abap_true.
client->set( set_prev_view = mv_check_show_previous_view ).
client->popup_view( 'POPUP_DECIDE' ).
ENDIF.
CASE client->get( )-event.
WHEN mv_cancel_event OR mv_confirm_event.
client->set( event = client->get( )-event ).
client->nav_app_leave( client->get( )-id_prev_app_stack ).
ENDCASE.
WHEN client->cs-lifecycle_method-on_rendering.
client->factory_view( 'POPUP_DECIDE'
)->dialog( 'abap2UI5 - Popup to decide'
)->vbox(
)->text( mv_text )->get_parent(
)->footer(
)->overflow_toolbar(
)->toolbar_spacer(
)->button(
text = mv_cancel_text
press = client->_event( mv_cancel_event )
)->button(
text = mv_confirm_text
press = client->_event( mv_confirm_event )
type = 'Emphasized' ).
ENDCASE.
ENDMETHOD.
ENDCLASS.