diff --git a/abaplint.jsonc b/abaplint.jsonc index bc1d75c0..dc25d951 100644 --- a/abaplint.jsonc +++ b/abaplint.jsonc @@ -90,7 +90,7 @@ "empty_line_in_statement": true, "empty_statement": true, "empty_structure": { - "loop": true, + "loop": false, "if": true, "while": true, "case": true, diff --git a/src/01/02/01/z2ui5_cl_core_bind_srv.clas.abap b/src/01/02/01/z2ui5_cl_core_bind_srv.clas.abap index 826de5c1..b1eefc47 100644 --- a/src/01/02/01/z2ui5_cl_core_bind_srv.clas.abap +++ b/src/01/02/01/z2ui5_cl_core_bind_srv.clas.abap @@ -5,10 +5,10 @@ CLASS z2ui5_cl_core_bind_srv DEFINITION PUBLIC SECTION. - DATA mo_app TYPE REF TO z2ui5_cl_core_app . - DATA mr_attri TYPE REF TO z2ui5_if_core_types=>ty_s_attri . + DATA mo_app TYPE REF TO z2ui5_cl_core_app . + DATA mr_attri TYPE REF TO z2ui5_if_core_types=>ty_s_attri . DATA ms_config TYPE z2ui5_if_core_types=>ty_s_bind_config . - DATA mv_type TYPE string . + DATA mv_type TYPE string . METHODS constructor IMPORTING @@ -273,7 +273,7 @@ CLASS z2ui5_cl_core_bind_srv IMPLEMENTATION. result = |/{ lv_id }|. - IF ms_config-path_only = abap_false. + IF config-path_only = abap_false. result = `{` && result && `}`. ENDIF. diff --git a/src/01/02/01/z2ui5_cl_core_bind_srv.clas.testclasses.abap b/src/01/02/01/z2ui5_cl_core_bind_srv.clas.testclasses.abap index 02c8e317..e6cd6b0a 100644 --- a/src/01/02/01/z2ui5_cl_core_bind_srv.clas.testclasses.abap +++ b/src/01/02/01/z2ui5_cl_core_bind_srv.clas.testclasses.abap @@ -52,6 +52,7 @@ CLASS ltcl_test_bind DEFINITION FINAL FOR TESTING METHODS test_error_diff FOR TESTING RAISING cx_static_check. METHODS test_two_way FOR TESTING RAISING cx_static_check. METHODS test_local FOR TESTING RAISING cx_static_check. + METHODS test_local_one FOR TESTING RAISING cx_static_check. ENDCLASS. @@ -162,6 +163,26 @@ CLASS ltcl_test_bind IMPLEMENTATION. ENDMETHOD. + METHOD test_local_one. + + DATA(lo_app_client) = NEW ltcl_test_app( ). + DATA(lo_app) = NEW z2ui5_cl_core_app( ). + lo_app->mo_app = lo_app_client. + + DATA(lo_bind) = NEW z2ui5_cl_core_bind_srv( lo_app ). + + DATA(lv_bind) = lo_bind->main_local( lo_app_client->mv_value ). + + cl_abap_unit_assert=>assert_not_initial( lv_bind ). + + DATA(lv_bind2) = lo_bind->main( + val = REF #( lo_app_client->mv_value ) + type = z2ui5_if_core_types=>cs_bind_type-two_way ). + + cl_abap_unit_assert=>assert_not_initial( lv_bind2 ). + + ENDMETHOD. + ENDCLASS. diff --git a/src/01/02/01/z2ui5_cl_core_dissolve_srv.clas.abap b/src/01/02/01/z2ui5_cl_core_dissolve_srv.clas.abap index f9d26958..393eab7d 100644 --- a/src/01/02/01/z2ui5_cl_core_dissolve_srv.clas.abap +++ b/src/01/02/01/z2ui5_cl_core_dissolve_srv.clas.abap @@ -147,12 +147,8 @@ CLASS z2ui5_cl_core_dissolve_srv IMPLEMENTATION. METHOD main. -* IF mt_attri->* IS INITIAL. -* main_init( ). -* RETURN. -* ENDIF. - main_init( ). + IF line_exists( mt_attri->*[ check_dissolved = abap_false ] ). main_run( ). ENDIF. @@ -161,13 +157,20 @@ CLASS z2ui5_cl_core_dissolve_srv IMPLEMENTATION. METHOD main_init. - TRY. - DATA(ls_attri) = VALUE z2ui5_if_core_types=>ty_s_attri( r_ref = REF #( mo_app ) ). - DATA(lt_init) = diss_oref( REF #( ls_attri ) ). - INSERT LINES OF lt_init INTO TABLE mt_attri->*. - CATCH cx_root. - ENDTRY. + IF mt_attri->* IS NOT INITIAL. + LOOP AT mt_attri->* TRANSPORTING NO FIELDS + WHERE bind_type <> z2ui5_if_core_types=>cs_bind_type-one_time. + ENDLOOP. + IF sy-subrc = 0. + RETURN. + ENDIF. + ENDIF. + + DATA(ls_attri) = VALUE z2ui5_if_core_types=>ty_s_attri( r_ref = REF #( mo_app ) ). + DATA(lt_init) = diss_oref( REF #( ls_attri ) ). + INSERT LINES OF lt_init INTO TABLE mt_attri->*. + ENDMETHOD. diff --git a/src/01/02/z2ui5_cl_core_app.clas.abap b/src/01/02/z2ui5_cl_core_app.clas.abap index 684aab63..671e5d46 100644 --- a/src/01/02/z2ui5_cl_core_app.clas.abap +++ b/src/01/02/z2ui5_cl_core_app.clas.abap @@ -51,7 +51,7 @@ ENDCLASS. -CLASS Z2UI5_CL_CORE_APP IMPLEMENTATION. +CLASS z2ui5_cl_core_app IMPLEMENTATION. METHOD all_xml_parse. diff --git a/src/01/03/z2ui5_cl_core_app_startup.clas.abap b/src/01/03/z2ui5_cl_core_app_startup.clas.abap index 960defc2..9be4f6ed 100644 --- a/src/01/03/z2ui5_cl_core_app_startup.clas.abap +++ b/src/01/03/z2ui5_cl_core_app_startup.clas.abap @@ -5,7 +5,7 @@ CLASS z2ui5_cl_core_app_startup DEFINITION PUBLIC SECTION. - INTERFACES z2ui5_if_app . + INTERFACES z2ui5_if_app. DATA: BEGIN OF ms_home, @@ -17,7 +17,8 @@ CLASS z2ui5_cl_core_app_startup DEFINITION class_value_state TYPE string, class_value_state_text TYPE string, class_editable TYPE abap_bool VALUE abap_true, - END OF ms_home . + END OF ms_home. + DATA client TYPE REF TO z2ui5_if_client. DATA mv_check_initialized TYPE abap_bool. @@ -29,8 +30,10 @@ CLASS z2ui5_cl_core_app_startup DEFINITION METHODS z2ui5_on_event. METHODS view_display_start. METHODS on_event_check. + PROTECTED SECTION. DATA mt_classes TYPE string_table. + PRIVATE SECTION. ENDCLASS. @@ -245,8 +248,8 @@ CLASS z2ui5_cl_core_app_startup IMPLEMENTATION. CASE client->get( )-event. - when `OPEN_DEBUG`. - client->message_box_display( `Press CTRL+F12 to open the debugging tools` ). + WHEN `OPEN_DEBUG`. + client->message_box_display( `Press CTRL+F12 to open the debugging tools` ). WHEN `OPEN_INFO`. client->nav_app_call( z2ui5_cl_core_app_info=>factory( ) ). RETURN.