fix local binding (#973)

* fix local binding

* Update abaplint.jsonc
This commit is contained in:
oblomov 2024-02-29 09:05:35 +01:00 committed by GitHub
parent 5e19a51db4
commit fc17fc5dc3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 48 additions and 21 deletions

View File

@ -90,7 +90,7 @@
"empty_line_in_statement": true,
"empty_statement": true,
"empty_structure": {
"loop": true,
"loop": false,
"if": true,
"while": true,
"case": true,

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -51,7 +51,7 @@ ENDCLASS.
CLASS Z2UI5_CL_CORE_APP IMPLEMENTATION.
CLASS z2ui5_cl_core_app IMPLEMENTATION.
METHOD all_xml_parse.

View File

@ -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.