From 228c8d6e6ba24f203bb64a85e81fab5453c85671 Mon Sep 17 00:00:00 2001 From: oblomov <102328295+oblomov-dev@users.noreply.github.com> Date: Wed, 28 Jun 2023 18:18:52 +0200 Subject: [PATCH] update (#322) * update * view update * update * update * abaplint fixes * update --- ...z2ui5_cl_http_handler.clas.locals_imp.abap | 209 +++++++++--------- src/z2ui5_cl_xml_view.clas.abap | 41 +++- 2 files changed, 131 insertions(+), 119 deletions(-) diff --git a/src/z2ui5_cl_http_handler.clas.locals_imp.abap b/src/z2ui5_cl_http_handler.clas.locals_imp.abap index f4038c40..e6f21c3b 100644 --- a/src/z2ui5_cl_http_handler.clas.locals_imp.abap +++ b/src/z2ui5_cl_http_handler.clas.locals_imp.abap @@ -754,13 +754,10 @@ CLASS z2ui5_lcl_fw_app DEFINITION. DATA: BEGIN OF ms_error, x_error TYPE REF TO cx_root, - classname TYPE string, - kind TYPE string, END OF ms_error. DATA: BEGIN OF ms_home, - is_initialized TYPE abap_bool, btn_text TYPE string, btn_event_id TYPE string, btn_icon TYPE string, @@ -777,15 +774,14 @@ CLASS z2ui5_lcl_fw_app DEFINITION. VALUE(result) TYPE REF TO z2ui5_lcl_fw_app. DATA mv_is_initialized TYPE abap_bool. - DATA mv_view_name TYPE string. + + DATA client TYPE REF TO z2ui5_if_client. METHODS z2ui5_on_init. + METHODS z2ui5_on_event. + METHODS view_display_error. + METHODS view_display_start. - METHODS z2ui5_on_event - IMPORTING client TYPE REF TO z2ui5_if_client. - - METHODS z2ui5_on_rendering - IMPORTING client TYPE REF TO z2ui5_if_client. PRIVATE SECTION. DATA lv_check_demo TYPE abap_bool. @@ -796,13 +792,20 @@ CLASS z2ui5_lcl_fw_app IMPLEMENTATION. METHOD z2ui5_if_app~main. + me->client = client. + IF mv_is_initialized = abap_false. mv_is_initialized = abap_true. z2ui5_on_init( ). ENDIF. - z2ui5_on_event( client ). - z2ui5_on_rendering( client ). + z2ui5_on_event( ). + + IF ms_error-x_error IS BOUND. + view_display_error( ). + ELSE. + view_display_start( ). + ENDIF. ENDMETHOD. @@ -816,15 +819,11 @@ CLASS z2ui5_lcl_fw_app IMPLEMENTATION. METHOD z2ui5_on_init. IF ms_error-x_error IS NOT BOUND. - mv_view_name = 'HOME'. - ms_home-is_initialized = abap_true. ms_home-btn_text = `check`. ms_home-btn_event_id = `BUTTON_CHECK`. ms_home-class_editable = abap_true. ms_home-btn_icon = `sap-icon://validate`. ms_home-classname = `z2ui5_cl_app_hello_world`. - ELSE. - mv_view_name = 'ERROR'. ENDIF. lv_check_demo = abap_true. @@ -833,111 +832,106 @@ CLASS z2ui5_lcl_fw_app IMPLEMENTATION. METHOD z2ui5_on_event. - CASE mv_view_name. + CASE client->get( )-event. - WHEN `HOME`. - CASE client->get( )-event. + WHEN `BUTTON_CHANGE`. + ms_home-btn_text = `check`. + ms_home-btn_event_id = `BUTTON_CHECK`. + ms_home-btn_icon = `sap-icon://validate`. + ms_home-class_editable = abap_true. - WHEN `BUTTON_CHANGE`. - ms_home-btn_text = `check`. - ms_home-btn_event_id = `BUTTON_CHECK`. - ms_home-btn_icon = `sap-icon://validate`. - ms_home-class_editable = abap_true. + WHEN `BUTTON_CHECK`. + TRY. + DATA li_app_test TYPE REF TO z2ui5_if_app. + ms_home-classname = z2ui5_lcl_utility=>get_trim_upper( ms_home-classname ). + CREATE OBJECT li_app_test TYPE (ms_home-classname). - WHEN `BUTTON_CHECK`. - TRY. - " TODO: variable is assigned but never used (ABAP cleaner) - DATA li_app_test TYPE REF TO z2ui5_if_app. - ms_home-classname = z2ui5_lcl_utility=>get_trim_upper( ms_home-classname ). - CREATE OBJECT li_app_test TYPE (ms_home-classname). + client->message_toast_display( `App is ready to start!` ). + ms_home-btn_text = `edit`. + ms_home-btn_event_id = `BUTTON_CHANGE`. + ms_home-btn_icon = `sap-icon://edit`. + ms_home-class_value_state = `Success`. + ms_home-class_editable = abap_false. - client->message_toast_display( `App is ready to start!` ). - ms_home-btn_text = `edit`. - ms_home-btn_event_id = `BUTTON_CHANGE`. - ms_home-btn_icon = `sap-icon://edit`. - ms_home-class_value_state = `Success`. - ms_home-class_editable = abap_false. + CATCH cx_root INTO DATA(lx) ##CATCH_ALL. + ms_home-class_value_state_text = lx->get_text( ). + ms_home-class_value_state = `Warning`. + client->message_box_display( text = ms_home-class_value_state_text type = `error` ). + ENDTRY. - CATCH cx_root INTO DATA(lx) ##CATCH_ALL. - ms_home-class_value_state_text = lx->get_text( ). - ms_home-class_value_state = `Warning`. - client->message_box_display( text = ms_home-class_value_state_text type = `error` ). - ENDTRY. + WHEN `DEMOS`. - WHEN `DEMOS`. - - DATA li_app TYPE REF TO z2ui5_if_app. - TRY. - CREATE OBJECT li_app TYPE (`Z2UI5_CL_APP_DEMO_00`). - lv_check_demo = abap_true. - client->nav_app_call( li_app ). - CATCH cx_root. - lv_check_demo = abap_false. - ENDTRY. - - ENDCASE. + DATA li_app TYPE REF TO z2ui5_if_app. + TRY. + CREATE OBJECT li_app TYPE (`Z2UI5_CL_APP_DEMO_00`). + lv_check_demo = abap_true. + client->nav_app_call( li_app ). + CATCH cx_root. + lv_check_demo = abap_false. + ENDTRY. ENDCASE. + ENDMETHOD. - METHOD z2ui5_on_rendering. - IF ms_error-x_error IS BOUND. + METHOD view_display_error. - ms_error-x_error->get_source_position( IMPORTING program_name = DATA(lv_prog) - include_name = DATA(lv_incl) - source_line = DATA(lv_line) ). - DATA(lv_source) = `(` && lv_prog && `/` && lv_incl && `/` && lv_line && `)`. + WHILE ms_error-x_error->previous IS BOUND. + ms_error-x_error = ms_error-x_error->previous. + ENDWHILE. - DATA(lv_descr) = escape( val = ms_error-x_error->get_text( ) format = cl_abap_format=>e_xml_attr ) && lv_source. -* && -* ` -------------------------------------------------------------------------------------------- Source Code Position: ` && -* lv_prog && ` / ` && lv_incl && ` / ` && lv_line && ` `. + ms_error-x_error->get_source_position( IMPORTING program_name = DATA(lv_prog) ). - DATA(lv_xml) = ` ` && |\n| && -* ` ` && - `