diff --git a/src/00/z2ui5_cl_app_demo_00.clas.abap b/src/00/z2ui5_cl_app_demo_00.clas.abap index 3831b8a3..e6407b5c 100644 --- a/src/00/z2ui5_cl_app_demo_00.clas.abap +++ b/src/00/z2ui5_cl_app_demo_00.clas.abap @@ -93,7 +93,9 @@ CLASS z2ui5_cl_app_demo_00 IMPLEMENTATION. ). grid->simple_form( title = 'HowTo - Messages' layout = 'ResponsiveGridLayout' )->content( 'form' - )->button( text = 'Messages (Toast, Box, Strip)' press = client->_event( 'z2ui5_cl_app_demo_08' ) + )->button( text = 'Toast, Box & Strip' press = client->_event( 'z2ui5_cl_app_demo_08' ) + )->button( text = 'Illustrated Message' press = client->_event( 'z2ui5_cl_app_demo_33' ) + )->button( text = 'T100 & bapiret popup' press = client->_event( 'z2ui5_cl_app_demo_34' ) ). DATA(form) = page->grid( 'L9 M12 S12' diff --git a/src/00/z2ui5_cl_app_demo_08.clas.xml b/src/00/z2ui5_cl_app_demo_08.clas.xml index b76bde0d..b5f6735d 100644 --- a/src/00/z2ui5_cl_app_demo_08.clas.xml +++ b/src/00/z2ui5_cl_app_demo_08.clas.xml @@ -5,7 +5,7 @@ Z2UI5_CL_APP_DEMO_08 E - basic - messages + messages - basic 1 X X diff --git a/src/00/z2ui5_cl_app_demo_19.clas.abap b/src/00/z2ui5_cl_app_demo_19.clas.abap index 18d73540..5b5027be 100644 --- a/src/00/z2ui5_cl_app_demo_19.clas.abap +++ b/src/00/z2ui5_cl_app_demo_19.clas.abap @@ -54,7 +54,7 @@ CLASS Z2UI5_CL_APP_DEMO_19 IMPLEMENTATION. ENDCASE. - DATA(page) = z2ui5_cl_xml_view_helper=>factory( + DATA(page) = z2ui5_cl_xml_view_helper=>factory( )->shell( )->page( title = 'abap2UI5 - Table with different Selection Modes' navbuttonpress = client->_event( 'BACK' ) diff --git a/src/00/z2ui5_cl_app_demo_21.clas.abap b/src/00/z2ui5_cl_app_demo_21.clas.abap index efb9ff07..39465596 100644 --- a/src/00/z2ui5_cl_app_demo_21.clas.abap +++ b/src/00/z2ui5_cl_app_demo_21.clas.abap @@ -54,10 +54,6 @@ CLASS z2ui5_cl_app_demo_21 DEFINITION PUBLIC. IMPORTING client TYPE REF TO z2ui5_if_client. - METHODS view_popup_bal - IMPORTING - client TYPE REF TO z2ui5_if_client. - METHODS view_popup_table IMPORTING client TYPE REF TO z2ui5_if_client. @@ -115,10 +111,6 @@ CLASS Z2UI5_CL_APP_DEMO_21 IMPLEMENTATION. press = client->_event( 'POPUP_TO_INPUT' ) ). grid->simple_form( 'Tables' )->content( 'form' - )->label( '01' - )->button( - text = 'Show bapiret tab' - press = client->_event( 'POPUP_BAL' ) )->label( '02' )->button( text = 'Popup to select' @@ -128,42 +120,6 @@ CLASS Z2UI5_CL_APP_DEMO_21 IMPLEMENTATION. ENDMETHOD. - - METHOD view_popup_bal. - - DATA(popup) = z2ui5_cl_xml_view_helper=>factory( - )->dialog( 'abap2ui5 - Popup Message Log' - )->table( client->_bind( t_bapiret ) - )->columns( - )->column( '5rem' - )->text( 'Type' )->get_parent( - )->column( '5rem' - )->text( 'Number' )->get_parent( - )->column( '5rem' - )->text( 'ID' )->get_parent( - )->column( - )->text( 'Message' )->get_parent( - )->get_parent( - )->items( - )->column_list_item( - )->cells( - )->text( '{TYPE}' - )->text( '{NUMBER}' - )->text( '{ID}' - )->text( '{MESSAGE}' - )->get_parent( )->get_parent( )->get_parent( )->get_parent( - )->footer( )->overflow_toolbar( - )->toolbar_spacer( - )->button( - text = 'close' - press = client->_event( 'POPUP_BAL_CLOSE' ) - type = 'Emphasized' ). - - mv_popup_xml = popup->get_root( )->xml_get( ). - - ENDMETHOD. - - METHOD view_popup_decide. DATA(popup) = z2ui5_cl_xml_view_helper=>factory( @@ -393,8 +349,6 @@ CLASS Z2UI5_CL_APP_DEMO_21 IMPLEMENTATION. view_popup_textarea_size( client ). WHEN 'POPUP_TO_INPUT'. view_popup_input( client ). - WHEN 'POPUP_BAL'. - view_popup_bal( client ). WHEN 'POPUP_TABLE'. view_popup_table( client ). diff --git a/src/00/z2ui5_cl_app_demo_33.clas.abap b/src/00/z2ui5_cl_app_demo_33.clas.abap new file mode 100644 index 00000000..7f4cafbb --- /dev/null +++ b/src/00/z2ui5_cl_app_demo_33.clas.abap @@ -0,0 +1,45 @@ +CLASS z2ui5_cl_app_demo_33 DEFINITION PUBLIC. + + PUBLIC SECTION. + + INTERFACES z2ui5_if_app. + + PROTECTED SECTION. + PRIVATE SECTION. +ENDCLASS. + + + +CLASS z2ui5_cl_app_demo_33 IMPLEMENTATION. + + + METHOD z2ui5_if_app~controller. + + CASE client->get( )-event. + WHEN 'BUTTON_MESSAGE_BOX'. + client->popup_message_box( 'this is a message box' ). + WHEN 'BACK'. + client->nav_app_leave( client->get_app( client->get( )-id_prev_app_stack ) ). + ENDCASE. + + DATA(page) = z2ui5_cl_xml_view_helper=>factory( )->shell( + )->page( + title = 'abap2UI5 - Messages' + navbuttonpress = client->_event( 'BACK' ) + shownavbutton = abap_true + )->header_content( + )->link( + text = 'Source_Code' target = '_blank' + href = z2ui5_cl_xml_view_helper=>hlp_get_source_code_url( app = me get = client->get( ) ) + )->get_parent( ). + + page->illustrated_message( + illustrationtype = 'sapIllus-NoActivities' + )->additional_content( )->button( + text = 'information' + press = client->_event( 'BUTTON_MESSAGE_BOX' ) ). + + client->set_next( VALUE #( xml_main = page->get_root( )->xml_get( ) ) ). + + ENDMETHOD. +ENDCLASS. diff --git a/src/00/z2ui5_cl_app_demo_33.clas.xml b/src/00/z2ui5_cl_app_demo_33.clas.xml new file mode 100644 index 00000000..fe871fbd --- /dev/null +++ b/src/00/z2ui5_cl_app_demo_33.clas.xml @@ -0,0 +1,16 @@ + + + + + + Z2UI5_CL_APP_DEMO_33 + E + messages - illustrated + 1 + X + X + X + + + + diff --git a/src/00/z2ui5_cl_app_demo_34.clas.abap b/src/00/z2ui5_cl_app_demo_34.clas.abap new file mode 100644 index 00000000..f02bdfa6 --- /dev/null +++ b/src/00/z2ui5_cl_app_demo_34.clas.abap @@ -0,0 +1,155 @@ +CLASS z2ui5_cl_app_demo_34 DEFINITION PUBLIC. + + PUBLIC SECTION. + + INTERFACES z2ui5_if_app. + + TYPES: + BEGIN OF ty_row, + selkz TYPE abap_bool, + title TYPE string, + value TYPE string, + descr TYPE string, + icon TYPE string, + info TYPE string, + checkbox TYPE abap_bool, + END OF ty_row. + + DATA t_tab TYPE STANDARD TABLE OF ty_row WITH EMPTY KEY. + + DATA mv_textarea TYPE string. + DATA mv_stretch_active TYPE abap_bool. + + DATA: + BEGIN OF ms_popup_input, + value1 TYPE string, + value2 TYPE string, + check_is_active TYPE abap_bool, + combo_key TYPE string, + END OF ms_popup_input. + + DATA t_bapiret TYPE bapirettab. + + DATA check_initialized TYPE abap_bool. + DATA mv_popup_name TYPE string. + DATA mv_main_xml TYPE string. + DATA mv_popup_xml TYPE string. + + METHODS view_main + IMPORTING + client TYPE REF TO z2ui5_if_client. + METHODS view_popup_bal + IMPORTING + client TYPE REF TO z2ui5_if_client. + + + PROTECTED SECTION. + PRIVATE SECTION. +ENDCLASS. + + + +CLASS Z2UI5_CL_APP_DEMO_34 IMPLEMENTATION. + + METHOD view_main. + + DATA(page) = z2ui5_cl_xml_view_helper=>factory( + )->page( + title = 'abap2UI5 - Popups' + navbuttonpress = client->_event( 'BACK' ) + shownavbutton = abap_true + )->header_content( + " )->link( + " text = 'Demo' target = '_blank' + " href = 'https://twitter.com/OblomovDev/status/1637163852264624139' + )->link( + text = 'Source_Code' target = '_blank' href = z2ui5_cl_xml_view_helper=>hlp_get_source_code_url( app = me get = client->get( ) ) + )->get_parent( ). + + DATA(grid) = page->grid( 'L8 M12 S12' )->content( 'l' ). + + grid->simple_form( 'Tables' )->content( 'form' + )->label( '01' + )->button( + text = 'Show bapiret tab' + press = client->_event( 'POPUP_BAL' ) + ). + + mv_main_xml = page->get_root( )->xml_get( ). + + ENDMETHOD. + + + METHOD view_popup_bal. + + DATA(popup) = z2ui5_cl_xml_view_helper=>factory( + )->dialog( 'abap2ui5 - Popup Message Log' + )->table( client->_bind( t_bapiret ) + )->columns( + )->column( '5rem' + )->text( 'Type' )->get_parent( + )->column( '5rem' + )->text( 'Number' )->get_parent( + )->column( '5rem' + )->text( 'ID' )->get_parent( + )->column( + )->text( 'Message' )->get_parent( + )->get_parent( + )->items( + )->column_list_item( + )->cells( + )->text( '{TYPE}' + )->text( '{NUMBER}' + )->text( '{ID}' + )->text( '{MESSAGE}' + )->get_parent( )->get_parent( )->get_parent( )->get_parent( + )->footer( )->overflow_toolbar( + )->toolbar_spacer( + )->button( + text = 'close' + press = client->_event( 'POPUP_BAL_CLOSE' ) + type = 'Emphasized' ). + + mv_popup_xml = popup->get_root( )->xml_get( ). + + ENDMETHOD. + + METHOD z2ui5_if_app~controller. + + IF check_initialized = abap_false. + check_initialized = abap_true. + + t_bapiret = VALUE #( + ( message = 'An empty Report field causes an empty XML Message to be sent' type = 'E' id = 'MSG1' number = '001' ) + ( message = 'Check was executed for wrong Scenario' type = 'E' id = 'MSG1' number = '002' ) + ( message = 'Request was handled without errors' type = 'S' id = 'MSG1' number = '003' ) + ( message = 'product activated' type = 'S' id = 'MSG4' number = '375' ) + ( message = 'check the input values' type = 'W' id = 'MSG2' number = '375' ) + ( message = 'product already in use' type = 'I' id = 'MSG2' number = '375' ) + ). + + ENDIF. + + mv_popup_name = ''. + + CASE client->get( )-event. + + WHEN 'POPUP_BAL'. + mv_popup_name = 'POPUP_BAL'. + + WHEN 'BACK'. + client->nav_app_leave( client->get_app( client->get( )-id_prev_app_stack ) ). + + ENDCASE. + + view_main( client ). + + CASE mv_popup_name. + WHEN 'POPUP_BAL'. + view_popup_bal( client ). + ENDCASE. + + client->set_next( VALUE #( xml_main = mv_main_xml xml_popup = mv_popup_xml ) ). + CLEAR: mv_main_xml, mv_popup_xml. + ENDMETHOD. +ENDCLASS. diff --git a/src/00/z2ui5_cl_app_demo_34.clas.xml b/src/00/z2ui5_cl_app_demo_34.clas.xml new file mode 100644 index 00000000..08dd2ed6 --- /dev/null +++ b/src/00/z2ui5_cl_app_demo_34.clas.xml @@ -0,0 +1,16 @@ + + + + + + Z2UI5_CL_APP_DEMO_34 + E + messages - t100 bapiret + 1 + X + X + X + + + + diff --git a/src/00/z2ui5_cl_xml_view_helper.clas.abap b/src/00/z2ui5_cl_xml_view_helper.clas.abap index 5734b530..e2da3aaa 100644 --- a/src/00/z2ui5_cl_xml_view_helper.clas.abap +++ b/src/00/z2ui5_cl_xml_view_helper.clas.abap @@ -29,7 +29,7 @@ CLASS z2ui5_cl_xml_view_helper DEFINITION CLASS-METHODS hlp_get_source_code_url IMPORTING - app TYPE ref to z2ui5_if_app + app TYPE REF TO z2ui5_if_app get TYPE z2ui5_if_client=>ty_s_get RETURNING VALUE(result) TYPE string. @@ -56,12 +56,24 @@ CLASS z2ui5_cl_xml_view_helper DEFINITION RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view_helper. + METHODS Dynamic_Page_Header IMPORTING pinnable TYPE clike OPTIONAL RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view_helper. + METHODS Illustrated_Message + IMPORTING + enableVerticalResponsiveness TYPE clike OPTIONAL + illustrationType TYPE clike OPTIONAL + RETURNING + VALUE(result) TYPE REF TO z2ui5_cl_xml_view_helper. + + METHODS additional_Content + RETURNING + VALUE(result) TYPE REF TO z2ui5_cl_xml_view_helper. + METHODS flex_box IMPORTING class TYPE clike OPTIONAL @@ -637,7 +649,7 @@ CLASS z2ui5_cl_xml_view_helper DEFINITION IMPORTING text TYPE clike OPTIONAL href TYPE clike OPTIONAL - target type clike optional + target TYPE clike OPTIONAL enabled TYPE clike OPTIONAL ns TYPE clike OPTIONAL RETURNING @@ -2062,7 +2074,7 @@ CLASS z2ui5_cl_xml_view_helper IMPLEMENTATION. METHOD title. - data(lv_name) = COND #( WHEN ns = 'f' THEN 'title' ELSE `Title` ). + DATA(lv_name) = COND #( WHEN ns = 'f' THEN 'title' ELSE `Title` ). result = me. _generic( @@ -2302,13 +2314,33 @@ CLASS z2ui5_cl_xml_view_helper IMPLEMENTATION. METHOD hlp_get_source_code_url. - DATA(lv_url) = get-t_req_header[ name = `referer` ]-value. - SPLIT lv_url AT '?' INTO lv_url DATA(lv_dummy). + DATA(lv_url) = get-t_req_header[ name = `referer` ]-value. + SPLIT lv_url AT '?' INTO lv_url DATA(lv_dummy). - " result-url_app = lv_url && `?sap-client=` && sy-mandt && `&app=` && _=>get_classname_by_ref( mo_runtime->ms_db-o_app ). - result = z2ui5_cl_http_handler=>client-t_header[ name = `origin` ]-value && `/sap/bc/adt/oo/classes/` && _=>get_classname_by_ref( app ) && `/source/main`. + " result-url_app = lv_url && `?sap-client=` && sy-mandt && `&app=` && _=>get_classname_by_ref( mo_runtime->ms_db-o_app ). + result = z2ui5_cl_http_handler=>client-t_header[ name = `origin` ]-value && `/sap/bc/adt/oo/classes/` && _=>get_classname_by_ref( app ) && `/source/main`. ENDMETHOD. + METHOD additional_content. + + result = _generic( + name = `additionalContent` + + ). + + ENDMETHOD. + + METHOD illustrated_message. + + result = _generic( + name = `IllustratedMessage` + t_prop = VALUE #( + ( n = `enableVerticalResponsiveness` v = enableVerticalResponsiveness ) + ( n = `illustrationType` v = illustrationType ) + ) ). + + ENDMETHOD. + ENDCLASS. diff --git a/src/z2ui5_cl_http_handler.clas.locals_imp.abap b/src/z2ui5_cl_http_handler.clas.locals_imp.abap index bd0fa149..81d3a390 100644 --- a/src/z2ui5_cl_http_handler.clas.locals_imp.abap +++ b/src/z2ui5_cl_http_handler.clas.locals_imp.abap @@ -1645,7 +1645,9 @@ CLASS z2ui5_lcl_system_runtime IMPLEMENTATION. IF check_gen_data = abap_true. TRY. - DATA(lr_ref) = CAST data( lr_ref2->* ). + FIELD-SYMBOLS type any. + assign lr_ref2->* to . + DATA(lr_ref) = CAST data( ). IF lr_attri->gen_type IS INITIAL. DATA(lo_datadescr) = cl_abap_datadescr=>describe_by_data( lr_ref->* ). lr_attri->gen_type_kind = lo_datadescr->type_kind.