diff --git a/src/package.devc.xml b/src/package.devc.xml index 9bd9bf7f..1fe29164 100644 --- a/src/package.devc.xml +++ b/src/package.devc.xml @@ -3,7 +3,7 @@ - test + abap2UI5 - samples diff --git a/src/z2ui5_cl_demo_app_000.clas.abap b/src/z2ui5_cl_demo_app_000.clas.abap index da21923a..dd8e50d2 100644 --- a/src/z2ui5_cl_demo_app_000.clas.abap +++ b/src/z2ui5_cl_demo_app_000.clas.abap @@ -993,7 +993,23 @@ CLASS Z2UI5_CL_DEMO_APP_000 IMPLEMENTATION. panel->generic_tile( header = 'Launchpad I' - subheader = `App Navigation & Parameters` + subheader = `Read Startup Parameters` + press = client->_event( 'z2ui5_cl_demo_app_187' ) + mode = 'LineMode' + class = 'sapUiTinyMarginEnd sapUiTinyMarginBottom' + ). + + panel->generic_tile( + header = 'Launchpad II' + subheader = `Set Title` + press = client->_event( 'z2ui5_cl_demo_app_188' ) + mode = 'LineMode' + class = 'sapUiTinyMarginEnd sapUiTinyMarginBottom' + ). + + panel->generic_tile( + header = 'Launchpad III' + subheader = `Cross App Navigation` press = client->_event( 'z2ui5_cl_demo_app_127' ) mode = 'LineMode' class = 'sapUiTinyMarginEnd sapUiTinyMarginBottom' diff --git a/src/z2ui5_cl_demo_app_061.clas.abap b/src/z2ui5_cl_demo_app_061.clas.abap index 4891e730..f9ad8574 100644 --- a/src/z2ui5_cl_demo_app_061.clas.abap +++ b/src/z2ui5_cl_demo_app_061.clas.abap @@ -26,15 +26,8 @@ CLASS Z2UI5_CL_DEMO_APP_061 IMPLEMENTATION. )->page( title = 'abap2UI5 - RTTI created Table' navbuttonpress = client->_event( 'BACK' ) - shownavbutton = abap_true - )->header_content( - )->link( - text = 'Demo' target = '_blank' - href = 'https://twitter.com/abap2UI5/status/1676522756781817857' - )->link( - text = 'Source_Code' target = '_blank' - - )->get_parent( ). + shownavbutton = xsdbool( client->get( )-s_draft-id_prev_app_stack IS NOT INITIAL ) + ). FIELD-SYMBOLS TYPE table. @@ -78,7 +71,7 @@ CLASS Z2UI5_CL_DEMO_APP_061 IMPLEMENTATION. IF check_initialized = abap_false. check_initialized = abap_true. - CREATE DATA t_tab TYPE STANDARD TABLE OF ('Z2UI5_T_CORE_01'). + CREATE DATA t_tab TYPE STANDARD TABLE OF ('Z2UI5_T_01'). FIELD-SYMBOLS TYPE table. ASSIGN t_tab->* TO . diff --git a/src/z2ui5_cl_demo_app_127.clas.abap b/src/z2ui5_cl_demo_app_127.clas.abap index 5864fe89..f7fe9779 100644 --- a/src/z2ui5_cl_demo_app_127.clas.abap +++ b/src/z2ui5_cl_demo_app_127.clas.abap @@ -32,10 +32,14 @@ CLASS z2ui5_cl_demo_app_127 IMPLEMENTATION. nav_params-product = '102343333'. + IF client->get( )-check_launchpad_active = abap_false. + client->message_box_display( `No Launchpad Active, Sample not working!` ). + ENDIF. + DATA(view) = z2ui5_cl_xml_view=>factory( ). client->view_display( view->shell( )->page( - showheader = xsdbool( abap_false = client->get( )-check_launchpad_active ) + showheader = xsdbool( abap_false = client->get( )-check_launchpad_active ) title = 'abap2UI5 - Cross App Navigation App 127 - This App only works when started via Launchpad' navbuttonpress = client->_event( val = 'BACK' ) shownavbutton = xsdbool( client->get( )-s_draft-id_prev_app_stack IS NOT INITIAL ) @@ -55,7 +59,7 @@ CLASS z2ui5_cl_demo_app_127 IMPLEMENTATION. press = client->_event_client( val = client->cs_event-cross_app_nav_to_ext t_arg = VALUE #( - ( `{ semanticObject: "Z2UI5_CL_DEMO_APP_128", action: "Z2UI5_CL_DEMO_APP_128" }` ) + ( `{ semanticObject: "Z2UI5_CL_DEMO_APP_128", action: "display" }` ) * ( `{ "Product" : "102343333" }` ) ( `$` && client->_bind_edit( nav_params ) ) ) diff --git a/src/z2ui5_cl_demo_app_127.clas.xml b/src/z2ui5_cl_demo_app_127.clas.xml index 939a6bb8..6cf4a337 100644 --- a/src/z2ui5_cl_demo_app_127.clas.xml +++ b/src/z2ui5_cl_demo_app_127.clas.xml @@ -5,7 +5,7 @@ Z2UI5_CL_DEMO_APP_127 E - cross app navigation I + Launchpad III - cross app navigation I 1 X X diff --git a/src/z2ui5_cl_demo_app_128.clas.abap b/src/z2ui5_cl_demo_app_128.clas.abap index e1a2d6ff..3adb44e4 100644 --- a/src/z2ui5_cl_demo_app_128.clas.abap +++ b/src/z2ui5_cl_demo_app_128.clas.abap @@ -62,7 +62,7 @@ CLASS z2ui5_cl_demo_app_128 IMPLEMENTATION. text = 'go to app 127' press = client->_event_client( val = client->cs_event-cross_app_nav_to_ext - t_arg = VALUE #( ( `{ semanticObject: "Z2UI5_CL_DEMO_APP_127", action: "Z2UI5_CL_DEMO_APP_127" }` ) ( `{ ProductID : "123234" }`) ) + t_arg = VALUE #( ( `{ semanticObject: "Z2UI5_CL_DEMO_APP_127", action: "display " }` ) ( `{ ProductID : "123234" }`) ) ) )->stringify( ) ). diff --git a/src/z2ui5_cl_demo_app_128.clas.xml b/src/z2ui5_cl_demo_app_128.clas.xml index d3c3f338..b1f687bd 100644 --- a/src/z2ui5_cl_demo_app_128.clas.xml +++ b/src/z2ui5_cl_demo_app_128.clas.xml @@ -5,7 +5,7 @@ Z2UI5_CL_DEMO_APP_128 E - cross app navigation II + Launchpad IV - cross app navigation II 1 X X diff --git a/src/z2ui5_cl_demo_app_187.clas.abap b/src/z2ui5_cl_demo_app_187.clas.abap new file mode 100644 index 00000000..1b1ec44a --- /dev/null +++ b/src/z2ui5_cl_demo_app_187.clas.abap @@ -0,0 +1,50 @@ +CLASS z2ui5_cl_demo_app_187 DEFINITION PUBLIC. + + PUBLIC SECTION. + INTERFACES z2ui5_if_app. + + DATA check_initialized TYPE abap_bool. + + PROTECTED SECTION. + PRIVATE SECTION. +ENDCLASS. + + +CLASS z2ui5_cl_demo_app_187 IMPLEMENTATION. + METHOD z2ui5_if_app~main. + IF check_initialized = abap_false. + check_initialized = abap_true. + + IF client->get( )-check_launchpad_active = abap_false. + client->message_box_display( `No Launchpad Active, Sample not working!` ). + ENDIF. + + DATA(view) = z2ui5_cl_xml_view=>factory( ). + DATA(page) = view->shell( )->page( showheader = abap_false ). + client->view_display( page->simple_form( title = 'Laucnhpad I - Read Startup Parameters' editable = abap_true + )->content( 'form' + )->label( `` + )->button( text = 'Read Parameters' + press = client->_event( val = 'READ_PARAMS' ) + )->label( `` + )->button( text = 'Go Back' + press = client->_event( val = 'BACK' ) )->stringify( ) ). + + ENDIF. + + CASE client->get( )-event. + + WHEN 'READ_PARAMS'. + DATA(lv_text) = `Start Parameter: `. + DATA(lt_params) = client->get( )-t_comp_params. + LOOP AT lt_params INTO DATA(ls_param). + lv_text = |{ lv_text } / { ls_param-n } = { ls_param-v }|. + ENDLOOP. + client->message_box_display( lv_text ). + + WHEN 'BACK'. + client->nav_app_leave( ). + ENDCASE. + + ENDMETHOD. +ENDCLASS. diff --git a/src/z2ui5_cl_demo_app_187.clas.xml b/src/z2ui5_cl_demo_app_187.clas.xml new file mode 100644 index 00000000..75ead4b4 --- /dev/null +++ b/src/z2ui5_cl_demo_app_187.clas.xml @@ -0,0 +1,16 @@ + + + + + + Z2UI5_CL_DEMO_APP_187 + E + launchpad I - Startup Parameters + 1 + X + X + X + + + + diff --git a/src/z2ui5_cl_demo_app_188.clas.abap b/src/z2ui5_cl_demo_app_188.clas.abap new file mode 100644 index 00000000..551f424c --- /dev/null +++ b/src/z2ui5_cl_demo_app_188.clas.abap @@ -0,0 +1,54 @@ +CLASS z2ui5_cl_demo_app_188 DEFINITION PUBLIC. + + PUBLIC SECTION. + INTERFACES z2ui5_if_app. + + DATA mv_title TYPE string VALUE `my title`. + DATA check_initialized TYPE abap_bool. + + PROTECTED SECTION. + + PRIVATE SECTION. +ENDCLASS. + + +CLASS z2ui5_cl_demo_app_188 IMPLEMENTATION. + METHOD z2ui5_if_app~main. + IF check_initialized = abap_false. + check_initialized = abap_true. + + IF client->get( )-check_launchpad_active = abap_false. + client->message_box_display( `No Launchpad Active, Sample not working!` ). + ENDIF. + + DATA(view) = z2ui5_cl_xml_view=>factory( ). + DATA(page) = view->shell( )->page( showheader = abap_false ). + + page->_z2ui5( )->lp_title( client->_bind_edit( mv_title ) ). + + client->view_display( page->simple_form( title = 'Set Launchpad Title Dynamically' editable = abap_true + )->content( 'form' + )->label( `` + )->input( client->_bind_edit( mv_title ) + )->label( `` + )->button( text = 'Go Back' + press = client->_event( val = 'BACK' ) )->stringify( ) ). + + ENDIF. + + CASE client->get( )-event. + + WHEN 'READ_PARAMS'. + DATA(lv_text) = `Start Parameter: `. + DATA(lt_params) = client->get( )-t_comp_params. + LOOP AT lt_params INTO DATA(ls_param). + lv_text = |{ lv_text } / { ls_param-n } = { ls_param-v }|. + ENDLOOP. + client->message_box_display( lv_text ). + + WHEN 'BACK'. + client->nav_app_leave( ). + ENDCASE. + + ENDMETHOD. +ENDCLASS. diff --git a/src/z2ui5_cl_demo_app_188.clas.xml b/src/z2ui5_cl_demo_app_188.clas.xml new file mode 100644 index 00000000..b5744fcc --- /dev/null +++ b/src/z2ui5_cl_demo_app_188.clas.xml @@ -0,0 +1,16 @@ + + + + + + Z2UI5_CL_DEMO_APP_188 + E + launchpad II - Set Title + 1 + X + X + X + + + + diff --git a/src/z2ui5_cl_demo_app_199.clas.abap b/src/z2ui5_cl_demo_app_199.clas.abap index df4a0008..850a5a76 100644 --- a/src/z2ui5_cl_demo_app_199.clas.abap +++ b/src/z2ui5_cl_demo_app_199.clas.abap @@ -7,7 +7,6 @@ CLASS z2ui5_cl_demo_app_199 DEFINITION DATA mt_table TYPE REF TO data. DATA mv_counter TYPE string. - DATA mt_comp TYPE abap_component_tab. PROTECTED SECTION. @@ -16,16 +15,12 @@ CLASS z2ui5_cl_demo_app_199 DEFINITION METHODS on_init. METHODS on_event. - METHODS render_main. PRIVATE SECTION. - METHODS get_data. - METHODS refresh. + METHODS refresh_data. METHODS add_data. - METHODS get_comp - RETURNING VALUE(result) TYPE abap_component_tab. ENDCLASS. CLASS z2ui5_cl_demo_app_199 IMPLEMENTATION. @@ -35,16 +30,13 @@ CLASS z2ui5_cl_demo_app_199 IMPLEMENTATION. CASE client->get( )-event. WHEN 'BACK'. - client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ). - WHEN 'REFRESH'. - - refresh( ). + WHEN 'CLEAR'. + refresh_data( ). client->view_model_update( ). WHEN 'ADD'. - add_data( ). client->view_model_update( ). @@ -52,7 +44,7 @@ CLASS z2ui5_cl_demo_app_199 IMPLEMENTATION. ENDMETHOD. METHOD on_init. - get_data( ). + refresh_data( ). render_main( ). ENDMETHOD. @@ -68,23 +60,14 @@ CLASS z2ui5_cl_demo_app_199 IMPLEMENTATION. navbuttonpress = client->_event( 'BACK' ) shownavbutton = xsdbool( client->get( )-s_draft-id_prev_app_stack IS NOT INITIAL ) class = 'sapUiContentPadding' ). - DATA(table) = page->table( growing = 'true' width = 'auto' - items = client->_bind_edit( ) -* headertext = mv_table - ). + items = client->_bind_edit( ) ). DATA(columns) = table->columns( ). LOOP AT mt_comp INTO DATA(comp). - - IF comp-name = 'DATA'. - CONTINUE. - ENDIF. - columns->column( )->text( comp-name ). - ENDLOOP. DATA(cells) = columns->get_parent( )->items( @@ -93,16 +76,11 @@ CLASS z2ui5_cl_demo_app_199 IMPLEMENTATION. )->cells( ). LOOP AT mt_comp INTO comp. - - IF comp-name = 'DATA'. - CONTINUE. - ENDIF. - cells->object_identifier( text = '{' && comp-name && '}' ). ENDLOOP. - page->button( text = 'Refresh' - press = client->_event( 'REFRESH' ) + page->button( text = 'Clear' + press = client->_event( 'CLEAR' ) )->button( text = 'Add' press = client->_event( 'ADD' ) ). @@ -115,97 +93,43 @@ CLASS z2ui5_cl_demo_app_199 IMPLEMENTATION. IF check_initialized = abap_false. check_initialized = abap_true. - on_init( ). - ENDIF. IF mv_counter <> lines( mt_table->* ) AND mv_counter IS NOT INITIAL. - client->message_toast_display( text = 'Frontend Lines <> Backend!' ). + client->message_box_display( text = 'Frontend Lines <> Backend!' type = 'error' ). ENDIF. on_event( ). - mv_counter = lines( mt_table->* ). ENDMETHOD. - METHOD get_data. - - FIELD-SYMBOLS TYPE STANDARD TABLE. - - mt_comp = get_comp( ). + METHOD refresh_data. TRY. - DATA(new_struct_desc) = cl_abap_structdescr=>create( mt_comp ). - - DATA(new_table_desc) = cl_abap_tabledescr=>create( p_line_type = new_struct_desc - p_table_kind = cl_abap_tabledescr=>tablekind_std ). - - CREATE DATA mt_table TYPE HANDLE new_table_desc. - + FIELD-SYMBOLS
TYPE STANDARD TABLE. + TYPES ty_t_01 TYPE STANDARD TABLE OF z2ui5_t_01. + CREATE DATA mt_table TYPE ty_t_01. ASSIGN mt_table->* TO
. + mt_comp = z2ui5_cl_util_api=>rtti_get_t_attri_by_struc(
). - SELECT * FROM z2ui5_t_01 + SELECT id, id_prev FROM z2ui5_t_01 INTO CORRESPONDING FIELDS OF TABLE @
UP TO 2 ROWS. CATCH cx_root. - ENDTRY. ENDMETHOD. - METHOD get_comp. - TRY. - - DATA index TYPE int4. - - TRY. - - cl_abap_typedescr=>describe_by_name( EXPORTING p_name = 'Z2UI5_T_01' - RECEIVING p_descr_ref = DATA(typedesc) - EXCEPTIONS type_not_found = 1 - OTHERS = 2 ). - - DATA(structdesc) = CAST cl_abap_structdescr( typedesc ). - DATA(comp) = structdesc->get_components( ). - - LOOP AT comp INTO DATA(com). - IF com-as_include = abap_false. - APPEND com TO result. - ENDIF. - ENDLOOP. - - CATCH cx_root. - - ENDTRY. - - DATA(component) = VALUE cl_abap_structdescr=>component_table( - ( name = 'ROW_ID' - type = CAST #( cl_abap_datadescr=>describe_by_data( index ) ) ) ). - - APPEND LINES OF component TO result. - - CATCH cx_root. - ENDTRY. - ENDMETHOD. - METHOD add_data. FIELD-SYMBOLS TYPE STANDARD TABLE. - ASSIGN mt_table->* TO . - APPEND LINES OF TO . ENDMETHOD. - METHOD refresh. - - get_data( ). - - ENDMETHOD. - ENDCLASS.