* cleanup

* cleanup

* abaplint fix

* abaplint fix

* unit test fix
This commit is contained in:
oblomov 2023-11-30 12:44:57 +01:00 committed by GitHub
parent 417b6708ba
commit cd49c3cfca
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
62 changed files with 1144 additions and 946 deletions

10
src/00/package.devc.xml Normal file
View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_DEVC" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<DEVC>
<CTEXT>abap2UI5 - utility functions (util)</CTEXT>
</DEVC>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,199 +1,167 @@
CLASS z2ui5_cl_fw_utility DEFINITION PUBLIC
CREATE PUBLIC.
class Z2UI5_CL_UTIL_FUNC definition
public
create public .
PUBLIC SECTION.
CLASS-METHODS app_get_url_source_code
IMPORTING
client TYPE REF TO z2ui5_if_client
RETURNING
VALUE(result) TYPE string.
CLASS-METHODS app_get_url
IMPORTING
client TYPE REF TO z2ui5_if_client
value(classname) type string optional
RETURNING
VALUE(result) TYPE string.
CLASS-METHODS url_param_get
IMPORTING
val TYPE string
url TYPE string
RETURNING
VALUE(result) TYPE string.
CLASS-METHODS url_param_create_url
IMPORTING
t_params TYPE z2ui5_if_client=>ty_t_name_value
RETURNING
VALUE(result) TYPE string.
CLASS-METHODS url_param_set
IMPORTING
url TYPE string
name TYPE string
value TYPE string
RETURNING
VALUE(result) TYPE string.
CLASS-METHODS rtti_get_classname_by_ref
IMPORTING
in TYPE REF TO object
RETURNING
VALUE(result) TYPE string.
CLASS-METHODS x_check_raise
IMPORTING
v TYPE clike DEFAULT `CX_SY_SUBRC`
when TYPE abap_bool.
CLASS-METHODS x_raise
IMPORTING
v TYPE clike DEFAULT `CX_SY_SUBRC`
PREFERRED PARAMETER v.
CLASS-METHODS func_get_uuid_32
RETURNING
VALUE(result) TYPE string.
CLASS-METHODS func_get_uuid_22
RETURNING
VALUE(result) TYPE string.
CLASS-METHODS func_get_user_tech
RETURNING
VALUE(result) TYPE string.
CLASS-METHODS trans_json_any_2
IMPORTING
any TYPE any
pretty_name TYPE clike DEFAULT /ui2/cl_json=>pretty_mode-none
RETURNING
VALUE(result) TYPE string.
CLASS-METHODS trans_xml_2_any
IMPORTING
xml TYPE clike
EXPORTING
any TYPE any.
CLASS-METHODS trans_xml_any_2
IMPORTING
any TYPE any
RETURNING
VALUE(result) TYPE string
RAISING
cx_xslt_serialization_error.
CLASS-METHODS boolean_check
IMPORTING
val TYPE any
RETURNING
VALUE(result) TYPE abap_bool.
CLASS-METHODS boolean_abap_2_json
IMPORTING
val TYPE any
RETURNING
VALUE(result) TYPE string.
CLASS-METHODS c_replace_assign_struc
IMPORTING
iv_attri TYPE clike
RETURNING
VALUE(rv_attri) TYPE string.
CLASS-METHODS trans_json_2_any
IMPORTING
val TYPE any
CHANGING
data TYPE any.
CLASS-METHODS trans_ref_tab_2_tab
IMPORTING
ir_tab_from TYPE REF TO data
EXPORTING
t_result TYPE STANDARD TABLE.
CLASS-METHODS c_trim_upper
IMPORTING
val TYPE clike
RETURNING
VALUE(result) TYPE string.
CLASS-METHODS rtti_xml_get_by_data
IMPORTING
data TYPE any
RETURNING
VALUE(result) TYPE string.
CLASS-METHODS rtti_xml_set_to_data
IMPORTING
rtti_data TYPE clike
EXPORTING
e_data TYPE REF TO data.
CLASS-METHODS time_get_timestampl
RETURNING
VALUE(result) TYPE timestampl.
CLASS-METHODS time_substract_seconds
IMPORTING
time TYPE timestampl
seconds TYPE i
RETURNING
VALUE(result) TYPE timestampl.
CLASS-METHODS c_trim
IMPORTING
val TYPE clike
RETURNING
VALUE(result) TYPE string.
CLASS-METHODS c_trim_lower
IMPORTING
val TYPE clike
RETURNING
VALUE(result) TYPE string.
CLASS-METHODS url_param_get_tab
IMPORTING
i_val TYPE clike
RETURNING
VALUE(rt_params) TYPE z2ui5_if_client=>ty_t_name_value.
CLASS-METHODS rtti_get_t_attri_by_object
IMPORTING
val TYPE REF TO object
RETURNING
VALUE(result) TYPE abap_attrdescr_tab.
CLASS-METHODS rtti_get_t_comp_by_struc
IMPORTING
val TYPE any
RETURNING
VALUE(result) TYPE cl_abap_structdescr=>component_table.
CLASS-METHODS rtti_get_type_name
IMPORTING
val TYPE any
RETURNING
VALUE(result) TYPE string.
CLASS-METHODS rtti_check_type_kind_dref
IMPORTING
val TYPE any
RETURNING
VALUE(result) TYPE abap_bool.
CLASS-METHODS rtti_get_type_kind
IMPORTING
val TYPE any
RETURNING
VALUE(result) TYPE string.
public section.
class-methods APP_GET_URL_SOURCE_CODE
importing
!CLIENT type ref to Z2UI5_IF_CLIENT
returning
value(RESULT) type STRING .
class-methods APP_GET_URL
importing
!CLIENT type ref to Z2UI5_IF_CLIENT
value(CLASSNAME) type STRING optional
returning
value(RESULT) type STRING .
class-methods URL_PARAM_GET
importing
!VAL type STRING
!URL type STRING
returning
value(RESULT) type STRING .
class-methods URL_PARAM_CREATE_URL
importing
!T_PARAMS type Z2UI5_IF_CLIENT=>TY_T_NAME_VALUE
returning
value(RESULT) type STRING .
class-methods URL_PARAM_SET
importing
!URL type STRING
!NAME type STRING
!VALUE type STRING
returning
value(RESULT) type STRING .
class-methods RTTI_GET_CLASSNAME_BY_REF
importing
!IN type ref to OBJECT
returning
value(RESULT) type STRING .
class-methods X_CHECK_RAISE
importing
!V type CLIKE default `CX_SY_SUBRC`
!WHEN type ABAP_BOOL .
class-methods X_RAISE
importing
!V type CLIKE default `CX_SY_SUBRC`
preferred parameter V .
class-methods FUNC_GET_UUID_32
returning
value(RESULT) type STRING .
class-methods FUNC_GET_UUID_22
returning
value(RESULT) type STRING .
class-methods FUNC_GET_USER_TECH
returning
value(RESULT) type STRING .
class-methods TRANS_JSON_ANY_2
importing
!ANY type ANY
!PRETTY_NAME type CLIKE default /UI2/CL_JSON=>PRETTY_MODE-NONE
returning
value(RESULT) type STRING .
class-methods TRANS_XML_2_ANY
importing
!XML type CLIKE
exporting
!ANY type ANY .
class-methods TRANS_XML_ANY_2
importing
!ANY type ANY
returning
value(RESULT) type STRING
raising
CX_XSLT_SERIALIZATION_ERROR .
class-methods BOOLEAN_CHECK
importing
!VAL type ANY
returning
value(RESULT) type ABAP_BOOL .
class-methods BOOLEAN_ABAP_2_JSON
importing
!VAL type ANY
returning
value(RESULT) type STRING .
class-methods C_REPLACE_ASSIGN_STRUC
importing
!IV_ATTRI type CLIKE
returning
value(RV_ATTRI) type STRING .
class-methods TRANS_JSON_2_ANY
importing
!VAL type ANY
changing
!DATA type ANY .
class-methods TRANS_REF_TAB_2_TAB
importing
!IR_TAB_FROM type ref to DATA
exporting
!T_RESULT type STANDARD TABLE .
class-methods C_TRIM_UPPER
importing
!VAL type CLIKE
returning
value(RESULT) type STRING .
class-methods RTTI_XML_GET_BY_DATA
importing
!DATA type ANY
returning
value(RESULT) type STRING .
class-methods RTTI_XML_SET_TO_DATA
importing
!RTTI_DATA type CLIKE
exporting
!E_DATA type ref to DATA .
class-methods TIME_GET_TIMESTAMPL
returning
value(RESULT) type TIMESTAMPL .
class-methods TIME_SUBSTRACT_SECONDS
importing
!TIME type TIMESTAMPL
!SECONDS type I
returning
value(RESULT) type TIMESTAMPL .
class-methods C_TRIM
importing
!VAL type CLIKE
returning
value(RESULT) type STRING .
class-methods C_TRIM_LOWER
importing
!VAL type CLIKE
returning
value(RESULT) type STRING .
class-methods URL_PARAM_GET_TAB
importing
!I_VAL type CLIKE
returning
value(RT_PARAMS) type Z2UI5_IF_CLIENT=>TY_T_NAME_VALUE .
class-methods RTTI_GET_T_ATTRI_BY_OBJECT
importing
!VAL type ref to OBJECT
returning
value(RESULT) type ABAP_ATTRDESCR_TAB .
class-methods RTTI_GET_T_COMP_BY_STRUC
importing
!VAL type ANY
returning
value(RESULT) type CL_ABAP_STRUCTDESCR=>COMPONENT_TABLE .
class-methods RTTI_GET_TYPE_NAME
importing
!VAL type ANY
returning
value(RESULT) type STRING .
class-methods RTTI_CHECK_TYPE_KIND_DREF
importing
!VAL type ANY
returning
value(RESULT) type ABAP_BOOL .
class-methods RTTI_GET_TYPE_KIND
importing
!VAL type ANY
returning
value(RESULT) type STRING .
PROTECTED SECTION.
PRIVATE SECTION.
@ -201,7 +169,34 @@ ENDCLASS.
CLASS z2ui5_cl_fw_utility IMPLEMENTATION.
CLASS Z2UI5_CL_UTIL_FUNC IMPLEMENTATION.
METHOD app_get_url.
if classname is INITIAL.
classname = rtti_get_classname_by_ref( client->get( )-s_draft-app ).
endif.
DATA(lv_url) = to_lower( client->get( )-s_config-origin && client->get( )-s_config-pathname ) && `?`.
DATA(lt_param) = url_param_get_tab( client->get( )-s_config-search ).
DELETE lt_param WHERE n = `app_start`.
INSERT VALUE #( n = `app_start` v = to_lower( classname ) ) INTO TABLE lt_param.
result = lv_url && url_param_create_url( lt_param ).
ENDMETHOD.
METHOD app_get_url_source_code.
DATA(ls_draft) = client->get( )-s_draft.
DATA(ls_config) = client->get( )-s_config.
result = ls_config-origin && `/sap/bc/adt/oo/classes/`
&& rtti_get_classname_by_ref( ls_draft-app ) && `/source/main`.
ENDMETHOD.
METHOD boolean_abap_2_json.
@ -406,7 +401,7 @@ CLASS z2ui5_cl_fw_utility IMPLEMENTATION.
DATA(lv_text) = `<p>Please install the open-source project S-RTTI by sandraros and try again: <a href="` &&
lv_link && `" style="color:blue; font-weight:600;">(link)</a></p>`.
RAISE EXCEPTION TYPE z2ui5_cx_fw_error
RAISE EXCEPTION TYPE z2ui5_cx_util_error
EXPORTING
val = lv_text.
@ -438,7 +433,7 @@ CLASS z2ui5_cl_fw_utility IMPLEMENTATION.
DATA(lv_link) = `https://github.com/sandraros/S-RTTI`.
DATA(lv_text) = `<p>Please install the open-source project S-RTTI by sandraros and try again: <a href="` && lv_link && `" style="color:blue; font-weight:600;">(link)</a></p>`.
RAISE EXCEPTION TYPE z2ui5_cx_fw_error
RAISE EXCEPTION TYPE z2ui5_cx_util_error
EXPORTING
val = lv_text.
@ -640,7 +635,7 @@ CLASS z2ui5_cl_fw_utility IMPLEMENTATION.
METHOD x_check_raise.
IF when = abap_true.
RAISE EXCEPTION TYPE z2ui5_cx_fw_error EXPORTING val = v.
RAISE EXCEPTION TYPE z2ui5_cx_util_error EXPORTING val = v.
ENDIF.
ENDMETHOD.
@ -648,34 +643,7 @@ CLASS z2ui5_cl_fw_utility IMPLEMENTATION.
METHOD x_raise.
RAISE EXCEPTION TYPE z2ui5_cx_fw_error EXPORTING val = v.
RAISE EXCEPTION TYPE z2ui5_cx_util_error EXPORTING val = v.
ENDMETHOD.
METHOD app_get_url.
if classname is INITIAL.
classname = rtti_get_classname_by_ref( client->get( )-s_draft-app ).
endif.
DATA(lv_url) = to_lower( client->get( )-s_config-origin && client->get( )-s_config-pathname ) && `?`.
DATA(lt_param) = url_param_get_tab( client->get( )-s_config-search ).
DELETE lt_param WHERE n = `app_start`.
INSERT VALUE #( n = `app_start` v = to_lower( classname ) ) INTO TABLE lt_param.
result = lv_url && url_param_create_url( lt_param ).
ENDMETHOD.
METHOD app_get_url_source_code.
DATA(ls_draft) = client->get( )-s_draft.
DATA(ls_config) = client->get( )-s_config.
result = ls_config-origin && `/sap/bc/adt/oo/classes/`
&& rtti_get_classname_by_ref( ls_draft-app ) && `/source/main`.
ENDMETHOD.
ENDCLASS.

View File

@ -20,6 +20,7 @@ CLASS ltcl_test_app DEFINITION FOR TESTING.
CLASS-DATA sv_var TYPE string.
CLASS-DATA ss_tab TYPE ty_row.
CLASS-DATA st_tab TYPE STANDARD TABLE OF ty_row WITH EMPTY KEY.
CLASS-METHODS class_constructor.
DATA mv_val TYPE string ##NEEDED.
DATA ms_tab TYPE ty_row ##NEEDED.
@ -30,6 +31,14 @@ CLASS ltcl_test_app DEFINITION FOR TESTING.
ENDCLASS.
CLASS ltcl_test_app IMPLEMENTATION.
METHOD class_constructor.
sv_var = 1.
ss_tab = VALUE #( ).
st_tab = VALUE #( ).
ENDMETHOD.
ENDCLASS.
CLASS ltcl_unit_test_abap_api DEFINITION FINAL FOR TESTING
@ -178,7 +187,7 @@ CLASS ltcl_unit_test_abap_api IMPLEMENTATION.
METHOD test_string_replace.
DATA(lv_search) = replace( val = `one two three` sub = `two` with = 'ABC' occ = 0 ).
DATA(lv_search) = replace( val = `one two three` sub = `two` with = 'ABC' occ = 0 ) ##NEEDED.
cl_abap_unit_assert=>assert_equals(
act = replace( val = `one two three` sub = `two` with = 'ABC' occ = 0 )
@ -189,10 +198,12 @@ CLASS ltcl_unit_test_abap_api IMPLEMENTATION.
METHOD test_raise_error.
TRY.
RAISE EXCEPTION TYPE z2ui5_cx_fw_error.
IF 1 = 1.
RAISE EXCEPTION TYPE z2ui5_cx_util_error.
ENDIF.
cl_abap_unit_assert=>fail( ).
CATCH z2ui5_cx_fw_error INTO DATA(lx).
CATCH z2ui5_cx_util_error INTO DATA(lx).
cl_abap_unit_assert=>assert_bound( lx ).
ENDTRY.
@ -246,47 +257,47 @@ CLASS ltcl_unit_test IMPLEMENTATION.
DATA(lv_bool) = xsdbool( 1 = 1 ).
cl_abap_unit_assert=>assert_equals(
act = z2ui5_cl_fw_utility=>boolean_check( lv_bool )
act = z2ui5_cl_util_func=>boolean_check( lv_bool )
exp = abap_true ).
lv_bool = xsdbool( 1 = 2 ).
cl_abap_unit_assert=>assert_equals(
act = z2ui5_cl_fw_utility=>boolean_check( lv_bool )
act = z2ui5_cl_util_func=>boolean_check( lv_bool )
exp = abap_true ).
cl_abap_unit_assert=>assert_equals(
act = z2ui5_cl_fw_utility=>boolean_check( abap_true )
act = z2ui5_cl_util_func=>boolean_check( abap_true )
exp = abap_true ).
cl_abap_unit_assert=>assert_equals(
act = z2ui5_cl_fw_utility=>boolean_check( abap_false )
act = z2ui5_cl_util_func=>boolean_check( abap_false )
exp = abap_true ).
ENDMETHOD.
METHOD test_create.
DATA(lo_test) = NEW z2ui5_cl_fw_utility( ) ##NEEDED.
DATA(lo_test) = NEW z2ui5_cl_util_func( ) ##NEEDED.
ENDMETHOD.
METHOD test_rtti_get_classname_by_ref.
DATA(lo_test) = NEW z2ui5_cl_fw_utility( ).
DATA(lv_name) = z2ui5_cl_fw_utility=>rtti_get_classname_by_ref( lo_test ).
cl_abap_unit_assert=>assert_equals( exp = `Z2UI5_CL_FW_UTILITY` act = lv_name ).
DATA(lo_test) = NEW z2ui5_cl_util_func( ).
DATA(lv_name) = z2ui5_cl_util_func=>rtti_get_classname_by_ref( lo_test ).
cl_abap_unit_assert=>assert_equals( exp = `Z2UI5_CL_UTIL_FUNC` act = lv_name ).
DATA(lo_test2) = NEW ltcl_test_app( ).
DATA(lv_name2) = z2ui5_cl_fw_utility=>rtti_get_classname_by_ref( lo_test2 ).
DATA(lv_name2) = z2ui5_cl_util_func=>rtti_get_classname_by_ref( lo_test2 ).
cl_abap_unit_assert=>assert_equals( exp = `LTCL_TEST_APP` act = lv_name2 ).
ENDMETHOD.
METHOD test_boolean_abap_2_json.
cl_abap_unit_assert=>assert_equals( exp = `false` act = z2ui5_cl_fw_utility=>boolean_abap_2_json( abap_false ) ).
cl_abap_unit_assert=>assert_equals( exp = `false` act = z2ui5_cl_util_func=>boolean_abap_2_json( abap_false ) ).
IF `{ABCD}` <> z2ui5_cl_fw_utility=>boolean_abap_2_json( `{ABCD}` ).
IF `{ABCD}` <> z2ui5_cl_util_func=>boolean_abap_2_json( `{ABCD}` ).
cl_abap_unit_assert=>fail( ).
ENDIF.
@ -294,9 +305,9 @@ CLASS ltcl_unit_test IMPLEMENTATION.
METHOD test_time_get_timestampl.
DATA(lv_time) = z2ui5_cl_fw_utility=>time_get_timestampl( ).
DATA(lv_time) = z2ui5_cl_util_func=>time_get_timestampl( ).
DATA(lv_time2) = z2ui5_cl_fw_utility=>time_substract_seconds(
DATA(lv_time2) = z2ui5_cl_util_func=>time_substract_seconds(
time = lv_time
seconds = 60 * 60 * 4
).
@ -313,8 +324,8 @@ CLASS ltcl_unit_test IMPLEMENTATION.
METHOD test_time_substract_seconds.
DATA(lv_time) = z2ui5_cl_fw_utility=>time_get_timestampl( ).
DATA(lv_time2) = z2ui5_cl_fw_utility=>time_get_timestampl( ).
DATA(lv_time) = z2ui5_cl_util_func=>time_get_timestampl( ).
DATA(lv_time2) = z2ui5_cl_util_func=>time_get_timestampl( ).
IF lv_time IS INITIAL OR lv_time2 IS INITIAL.
cl_abap_unit_assert=>fail( ).
@ -328,7 +339,7 @@ CLASS ltcl_unit_test IMPLEMENTATION.
METHOD test_c_trim.
IF z2ui5_cl_fw_utility=>c_trim( ` JsadfHHs ` ) <> `JsadfHHs`.
IF z2ui5_cl_util_func=>c_trim( ` JsadfHHs ` ) <> `JsadfHHs`.
cl_abap_unit_assert=>fail( ).
ENDIF.
@ -336,7 +347,7 @@ CLASS ltcl_unit_test IMPLEMENTATION.
METHOD test_c_trim_lower.
IF z2ui5_cl_fw_utility=>c_trim_lower( ` JsadfHHs ` ) <> `jsadfhhs`.
IF z2ui5_cl_util_func=>c_trim_lower( ` JsadfHHs ` ) <> `jsadfhhs`.
cl_abap_unit_assert=>fail( ).
ENDIF.
@ -344,7 +355,7 @@ CLASS ltcl_unit_test IMPLEMENTATION.
METHOD test_c_trim_upper.
IF z2ui5_cl_fw_utility=>c_trim_upper( ` JsadfHHs ` ) <> `JSADFHHS`.
IF z2ui5_cl_util_func=>c_trim_upper( ` JsadfHHs ` ) <> `JSADFHHS`.
cl_abap_unit_assert=>fail( ).
ENDIF.
@ -352,7 +363,7 @@ CLASS ltcl_unit_test IMPLEMENTATION.
METHOD test_func_get_uuid_32.
DATA(lv_uuid) = z2ui5_cl_fw_utility=>func_get_uuid_32( ).
DATA(lv_uuid) = z2ui5_cl_util_func=>func_get_uuid_32( ).
IF lv_uuid IS INITIAL.
cl_abap_unit_assert=>fail( ).
@ -366,7 +377,7 @@ CLASS ltcl_unit_test IMPLEMENTATION.
METHOD test_func_get_uuid_22.
DATA(lv_uuid) = z2ui5_cl_fw_utility=>func_get_uuid_22( ).
DATA(lv_uuid) = z2ui5_cl_util_func=>func_get_uuid_22( ).
IF lv_uuid IS INITIAL.
cl_abap_unit_assert=>fail( ).
@ -380,7 +391,7 @@ CLASS ltcl_unit_test IMPLEMENTATION.
METHOD test_func_get_user_tech.
DATA(lv_uname) = z2ui5_cl_fw_utility=>func_get_user_tech( ).
DATA(lv_uname) = z2ui5_cl_util_func=>func_get_user_tech( ).
IF sy-uname <> lv_uname OR lv_uname IS INITIAL.
cl_abap_unit_assert=>fail( ).
ENDIF.
@ -390,7 +401,7 @@ CLASS ltcl_unit_test IMPLEMENTATION.
METHOD test_x_raise.
TRY.
z2ui5_cl_fw_utility=>x_raise( ).
z2ui5_cl_util_func=>x_raise( ).
cl_abap_unit_assert=>fail( ).
CATCH cx_root.
ENDTRY.
@ -400,13 +411,13 @@ CLASS ltcl_unit_test IMPLEMENTATION.
METHOD test_x_check_raise.
TRY.
z2ui5_cl_fw_utility=>x_check_raise( when = xsdbool( 1 = 1 ) ).
z2ui5_cl_util_func=>x_check_raise( when = xsdbool( 1 = 1 ) ).
cl_abap_unit_assert=>fail( ).
CATCH cx_root.
ENDTRY.
TRY.
z2ui5_cl_fw_utility=>x_check_raise( when = xsdbool( 1 = 3 ) ).
z2ui5_cl_util_func=>x_check_raise( when = xsdbool( 1 = 3 ) ).
CATCH cx_root.
cl_abap_unit_assert=>fail( ).
ENDTRY.
@ -427,7 +438,7 @@ CLASS ltcl_unit_test IMPLEMENTATION.
( title = 'Test2' value = 'this is a new descr' selected = abap_false ) ).
DATA(lv_tab_json) = z2ui5_cl_fw_utility=>trans_json_any_2( lt_tab ).
DATA(lv_tab_json) = z2ui5_cl_util_func=>trans_json_any_2( lt_tab ).
DATA(lv_result) = `[{"TITLE":"Test","VALUE":"this is a description","SELECTED":true},{"TITLE":"Test2","VALUE":"this is a new descr","SELECTED":false}]`.
@ -463,7 +474,7 @@ CLASS ltcl_unit_test IMPLEMENTATION.
DATA mr_data TYPE REF TO data.
z2ui5_cl_fw_utility=>trans_json_2_any(
z2ui5_cl_util_func=>trans_json_2_any(
EXPORTING
val = lv_test
CHANGING
@ -491,12 +502,12 @@ CLASS ltcl_unit_test IMPLEMENTATION.
END OF ty_row.
TYPES ty_t_tab TYPE STANDARD TABLE OF ty_row WITH EMPTY KEY.
DATA(lt_tab2) = VALUE ty_t_tab( ).
DATA(lt_tab2) = VALUE ty_t_tab( ) ##NEEDED.
DATA(ls_row) = VALUE ty_row( ).
ls_row-title = `test`.
DATA(lv_json) = z2ui5_cl_fw_utility=>trans_json_any_2( ls_row ).
DATA(lv_json) = z2ui5_cl_util_func=>trans_json_any_2( ls_row ).
IF lv_json IS INITIAL.
cl_abap_unit_assert=>fail( ).
@ -521,7 +532,7 @@ CLASS ltcl_unit_test IMPLEMENTATION.
CHANGING data = lo_data ).
DATA(lt_tab2) = VALUE ty_t_tab( ).
z2ui5_cl_fw_utility=>trans_ref_tab_2_tab(
z2ui5_cl_util_func=>trans_ref_tab_2_tab(
EXPORTING ir_tab_from = lo_data
IMPORTING t_result = lt_tab2 ).
@ -537,8 +548,8 @@ CLASS ltcl_unit_test IMPLEMENTATION.
METHOD test_url_param_create_url.
DATA(lt_param) = z2ui5_cl_fw_utility=>url_param_get_tab( `https://url.com/rvice_for_ui?sap-client=100&app_start=z2ui5_cl_app_hello_world` ).
DATA(lv_url) = z2ui5_cl_fw_utility=>url_param_create_url( lt_param ).
DATA(lt_param) = z2ui5_cl_util_func=>url_param_get_tab( `https://url.com/rvice_for_ui?sap-client=100&app_start=z2ui5_cl_app_hello_world` ).
DATA(lv_url) = z2ui5_cl_util_func=>url_param_create_url( lt_param ).
IF lv_url <> `sap-client=100&app_start=z2ui5_cl_app_hello_world`.
cl_abap_unit_assert=>fail( ).
@ -548,7 +559,7 @@ CLASS ltcl_unit_test IMPLEMENTATION.
METHOD test_url_param_get.
DATA(lv_param) = z2ui5_cl_fw_utility=>url_param_get(
DATA(lv_param) = z2ui5_cl_util_func=>url_param_get(
val = `app_start`
url = `https://url.com/rvice_for_ui?sap-client=100&app_start=z2ui5_cl_app_hello_world` ).
@ -560,7 +571,7 @@ CLASS ltcl_unit_test IMPLEMENTATION.
METHOD test_url_param_get_tab.
DATA(lt_param) = z2ui5_cl_fw_utility=>url_param_get_tab( `https://url.com/rvice_for_ui?sap-client=100&app_start=z2ui5_cl_app_hello_world` ).
DATA(lt_param) = z2ui5_cl_util_func=>url_param_get_tab( `https://url.com/rvice_for_ui?sap-client=100&app_start=z2ui5_cl_app_hello_world` ).
IF lt_param[ n = `sap-client` ]-v <> `100`.
cl_abap_unit_assert=>fail( ).
ENDIF.
@ -573,7 +584,7 @@ CLASS ltcl_unit_test IMPLEMENTATION.
METHOD test_url_param_set.
DATA(lv_param) = z2ui5_cl_fw_utility=>url_param_set(
DATA(lv_param) = z2ui5_cl_util_func=>url_param_set(
name = `app_start`
value = `z2ui5_cl_app_hello_world2`
url = `https://url.com/rvice_for_ui?sap-client=100&app_start=z2ui5_cl_app_hello_world` ).
@ -587,9 +598,9 @@ CLASS ltcl_unit_test IMPLEMENTATION.
METHOD test_x_check_raise_not.
TRY.
z2ui5_cl_fw_utility=>x_check_raise( when = xsdbool( 1 = 2 ) ).
z2ui5_cl_util_func=>x_check_raise( when = xsdbool( 1 = 2 ) ).
CATCH z2ui5_cx_fw_error INTO DATA(lx).
CATCH z2ui5_cx_util_error.
cl_abap_unit_assert=>fail( ).
ENDTRY.
ENDMETHOD.
@ -597,7 +608,7 @@ CLASS ltcl_unit_test IMPLEMENTATION.
METHOD test_rtti_get_type_name.
DATA(lv_xsdbool) = VALUE xsdboolean( ).
DATA(lv_name) = z2ui5_cl_fw_utility=>rtti_get_type_name( lv_xsdbool ).
DATA(lv_name) = z2ui5_cl_util_func=>rtti_get_type_name( lv_xsdbool ).
cl_abap_unit_assert=>assert_equals(
act = lv_name
exp = `XSDBOOLEAN`
@ -609,7 +620,7 @@ CLASS ltcl_unit_test IMPLEMENTATION.
DATA(lv_string) = VALUE string( ).
DATA(lv_type_kind) = z2ui5_cl_fw_utility=>rtti_get_type_kind( lv_string ).
DATA(lv_type_kind) = z2ui5_cl_util_func=>rtti_get_type_kind( lv_string ).
cl_abap_unit_assert=>assert_equals(
act = lv_type_kind
exp = cl_abap_typedescr=>typekind_string
@ -617,7 +628,7 @@ CLASS ltcl_unit_test IMPLEMENTATION.
DATA lr_string TYPE REF TO string.
CREATE DATA lr_string.
lv_type_kind = z2ui5_cl_fw_utility=>rtti_get_type_kind( lr_string ).
lv_type_kind = z2ui5_cl_util_func=>rtti_get_type_kind( lr_string ).
cl_abap_unit_assert=>assert_equals(
act = lv_type_kind
exp = cl_abap_typedescr=>typekind_dref
@ -629,14 +640,14 @@ CLASS ltcl_unit_test IMPLEMENTATION.
DATA(lv_string) = VALUE string( ).
cl_abap_unit_assert=>assert_equals(
act = z2ui5_cl_fw_utility=>rtti_check_type_kind_dref( lv_string )
act = z2ui5_cl_util_func=>rtti_check_type_kind_dref( lv_string )
exp = abap_false
).
DATA lr_string TYPE REF TO string.
CREATE DATA lr_string.
cl_abap_unit_assert=>assert_equals(
act = z2ui5_cl_fw_utility=>rtti_check_type_kind_dref( lr_string )
act = z2ui5_cl_util_func=>rtti_check_type_kind_dref( lr_string )
exp = abap_true
).
@ -645,7 +656,7 @@ CLASS ltcl_unit_test IMPLEMENTATION.
METHOD test_rtti_get_t_attri_by_obj.
DATA(lo_obj) = NEW ltcl_test_app( ).
DATA(lt_attri) = z2ui5_cl_fw_utility=>rtti_get_t_attri_by_object( lo_obj ).
DATA(lt_attri) = z2ui5_cl_util_func=>rtti_get_t_attri_by_object( lo_obj ).
IF lines( lt_attri ) <> 7.
cl_abap_unit_assert=>fail( ).
@ -684,7 +695,7 @@ CLASS ltcl_unit_test IMPLEMENTATION.
DATA(ls_row) = VALUE ty_row( ).
DATA(lt_comp) = z2ui5_cl_fw_utility=>rtti_get_t_comp_by_struc( ls_row ).
DATA(lt_comp) = z2ui5_cl_util_func=>rtti_get_t_comp_by_struc( ls_row ).
IF lines( lt_comp ) <> 7.
cl_abap_unit_assert=>fail( ).
@ -717,7 +728,7 @@ CLASS ltcl_unit_test IMPLEMENTATION.
METHOD test_trans_xml_any_2__w_obj.
DATA(lo_obj) = NEW ltcl_test_app( ).
DATA(lv_xml) = z2ui5_cl_fw_utility=>trans_xml_any_2( lo_obj ).
DATA(lv_xml) = z2ui5_cl_util_func=>trans_xml_any_2( lo_obj ).
IF lv_xml IS INITIAL.
cl_abap_unit_assert=>fail( ).
@ -727,10 +738,10 @@ CLASS ltcl_unit_test IMPLEMENTATION.
METHOD test_trans_xml_2_any__w_obj.
DATA(lo_obj) = NEW ltcl_test_app( ).
DATA(lv_xml) = z2ui5_cl_fw_utility=>trans_xml_any_2( lo_obj ).
DATA(lv_xml) = z2ui5_cl_util_func=>trans_xml_any_2( lo_obj ).
CLEAR lo_obj.
z2ui5_cl_fw_utility=>trans_xml_2_any(
z2ui5_cl_util_func=>trans_xml_2_any(
EXPORTING
xml = lv_xml
IMPORTING
@ -759,7 +770,7 @@ CLASS ltcl_unit_test IMPLEMENTATION.
DATA(ls_row) = VALUE ty_row( ).
ls_row-value = `test`.
DATA(lv_xml) = z2ui5_cl_fw_utility=>trans_xml_any_2( ls_row ).
DATA(lv_xml) = z2ui5_cl_util_func=>trans_xml_any_2( ls_row ).
IF lv_xml IS INITIAL.
cl_abap_unit_assert=>fail( ).
@ -784,9 +795,9 @@ CLASS ltcl_unit_test IMPLEMENTATION.
DATA(ls_row2) = VALUE ty_row( ).
ls_row-value = `test`.
DATA(lv_xml) = z2ui5_cl_fw_utility=>trans_xml_any_2( ls_row ).
DATA(lv_xml) = z2ui5_cl_util_func=>trans_xml_any_2( ls_row ).
z2ui5_cl_fw_utility=>trans_xml_2_any(
z2ui5_cl_util_func=>trans_xml_2_any(
EXPORTING
xml = lv_xml
IMPORTING
@ -802,25 +813,25 @@ CLASS ltcl_unit_test IMPLEMENTATION.
METHOD test_c_replace_assign_struc.
DATA(lv_result) = z2ui5_cl_fw_utility=>c_replace_assign_struc( `MO_APP->MS_STRUC->*`).
DATA(lv_result) = z2ui5_cl_util_func=>c_replace_assign_struc( `MO_APP->MS_STRUC->*`).
cl_abap_unit_assert=>assert_equals(
act = lv_result
exp = 'MO_APP->MS_STRUC->'
).
DATA(lv_result2) = z2ui5_cl_fw_utility=>c_replace_assign_struc( `MO_APP->MS_STRUC-MS_STRUC->*`).
DATA(lv_result2) = z2ui5_cl_util_func=>c_replace_assign_struc( `MO_APP->MS_STRUC-MS_STRUC->*`).
cl_abap_unit_assert=>assert_equals(
act = lv_result2
exp = 'MO_APP->MS_STRUC-MS_STRUC->'
).
DATA(lv_result3) = z2ui5_cl_fw_utility=>c_replace_assign_struc( `*MO_APP->*MS_STRUC->*`).
DATA(lv_result3) = z2ui5_cl_util_func=>c_replace_assign_struc( `*MO_APP->*MS_STRUC->*`).
cl_abap_unit_assert=>assert_equals(
act = lv_result3
exp = `*MO_APP->*MS_STRUC->`
).
DATA(lv_result4) = z2ui5_cl_fw_utility=>c_replace_assign_struc( `*MO_APP->*MS_STRUC`).
DATA(lv_result4) = z2ui5_cl_util_func=>c_replace_assign_struc( `*MO_APP->*MS_STRUC`).
cl_abap_unit_assert=>assert_equals(
act = lv_result4
exp = `*MO_APP->*MS_STRUC-`

View File

@ -3,9 +3,9 @@
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>Z2UI5_CL_FW_UTILITY</CLSNAME>
<CLSNAME>Z2UI5_CL_UTIL_FUNC</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>abap2UI5 - utility</DESCRIPT>
<DESCRIPT>abap2UI5 - utility function</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>

View File

@ -1,15 +1,15 @@
CLASS z2ui5_cl_fw_utility_json DEFINITION
CLASS z2ui5_cl_util_tree_json DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
DATA mo_root TYPE REF TO z2ui5_cl_fw_utility_json.
DATA mo_parent TYPE REF TO z2ui5_cl_fw_utility_json.
DATA mo_root TYPE REF TO z2ui5_cl_util_tree_json.
DATA mo_parent TYPE REF TO z2ui5_cl_util_tree_json.
DATA mv_name TYPE string.
DATA mv_value TYPE string.
DATA mt_values TYPE STANDARD TABLE OF REF TO z2ui5_cl_fw_utility_json WITH EMPTY KEY.
DATA mt_values TYPE STANDARD TABLE OF REF TO z2ui5_cl_util_tree_json WITH EMPTY KEY.
DATA mr_actual TYPE REF TO data.
DATA mv_apost_active TYPE abap_bool.
@ -17,7 +17,7 @@ CLASS z2ui5_cl_fw_utility_json DEFINITION
IMPORTING
iv_json TYPE clike OPTIONAL
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_fw_utility_json.
VALUE(result) TYPE REF TO z2ui5_cl_util_tree_json.
METHODS constructor.
@ -25,7 +25,7 @@ CLASS z2ui5_cl_fw_utility_json DEFINITION
IMPORTING
name TYPE string
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_fw_utility_json.
VALUE(result) TYPE REF TO z2ui5_cl_util_tree_json.
METHODS get_val
RETURNING
@ -41,25 +41,25 @@ CLASS z2ui5_cl_fw_utility_json DEFINITION
v TYPE clike
apos_active TYPE abap_bool DEFAULT abap_true
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_fw_utility_json.
VALUE(result) TYPE REF TO z2ui5_cl_util_tree_json.
METHODS add_attribute_object
IMPORTING
name TYPE clike
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_fw_utility_json.
VALUE(result) TYPE REF TO z2ui5_cl_util_tree_json.
METHODS add_attribute_struc
IMPORTING
val TYPE data
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_fw_utility_json.
VALUE(result) TYPE REF TO z2ui5_cl_util_tree_json.
METHODS add_attribute_instance
IMPORTING
val TYPE REF TO z2ui5_cl_fw_utility_json
val TYPE REF TO z2ui5_cl_util_tree_json
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_fw_utility_json.
VALUE(result) TYPE REF TO z2ui5_cl_util_tree_json.
METHODS stringify
RETURNING
@ -69,17 +69,17 @@ CLASS z2ui5_cl_fw_utility_json DEFINITION
CLASS-METHODS new
IMPORTING
io_root TYPE REF TO z2ui5_cl_fw_utility_json
io_root TYPE REF TO z2ui5_cl_util_tree_json
iv_name TYPE simple
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_fw_utility_json.
VALUE(result) TYPE REF TO z2ui5_cl_util_tree_json.
PRIVATE SECTION.
ENDCLASS.
CLASS Z2UI5_CL_FW_UTILITY_JSON IMPLEMENTATION.
CLASS Z2UI5_CL_UTIL_TREE_JSON IMPLEMENTATION.
METHOD add_attribute.
@ -145,7 +145,7 @@ CLASS Z2UI5_CL_FW_UTILITY_JSON IMPLEMENTATION.
result = NEW #( ).
result->mo_root = result.
z2ui5_cl_fw_utility=>trans_json_2_any(
z2ui5_cl_util_func=>trans_json_2_any(
EXPORTING
val = iv_json
CHANGING
@ -157,7 +157,7 @@ CLASS Z2UI5_CL_FW_UTILITY_JSON IMPLEMENTATION.
METHOD get_attribute.
z2ui5_cl_fw_utility=>x_check_raise( xsdbool( mr_actual IS INITIAL ) ).
z2ui5_cl_util_func=>x_check_raise( xsdbool( mr_actual IS INITIAL ) ).
result = new( io_root = mo_root
iv_name = name ).
@ -169,7 +169,7 @@ CLASS Z2UI5_CL_FW_UTILITY_JSON IMPLEMENTATION.
FIELD-SYMBOLS <attribute> TYPE any.
ASSIGN (lv_name) TO <attribute>.
z2ui5_cl_fw_utility=>x_check_raise( xsdbool( sy-subrc <> 0 ) ).
z2ui5_cl_util_func=>x_check_raise( xsdbool( sy-subrc <> 0 ) ).
result->mr_actual = <attribute>.
result->mo_parent = me.
@ -182,7 +182,7 @@ CLASS Z2UI5_CL_FW_UTILITY_JSON IMPLEMENTATION.
FIELD-SYMBOLS <attribute> TYPE any.
ASSIGN mr_actual->* TO <attribute>.
z2ui5_cl_fw_utility=>x_check_raise( when = xsdbool( sy-subrc <> 0 )
z2ui5_cl_util_func=>x_check_raise( when = xsdbool( sy-subrc <> 0 )
v = `value of attribute in JSON not found` ).
result = <attribute>.

View File

@ -14,7 +14,7 @@ CLASS ltcl_unit_01_json IMPLEMENTATION.
METHOD test_json_attri.
DATA(lo_tree) = NEW z2ui5_cl_fw_utility_json( ).
DATA(lo_tree) = NEW z2ui5_cl_util_tree_json( ).
lo_tree->add_attribute( n = `AAA`
v = `BBB` ).
@ -27,7 +27,7 @@ CLASS ltcl_unit_01_json IMPLEMENTATION.
METHOD test_json_object.
DATA(lo_tree) = NEW z2ui5_cl_fw_utility_json( ).
DATA(lo_tree) = NEW z2ui5_cl_util_tree_json( ).
lo_tree->add_attribute_object( `CCC` )->add_attribute( n = `AAA`
v = `BBB` ).
@ -40,7 +40,7 @@ CLASS ltcl_unit_01_json IMPLEMENTATION.
METHOD test_json_struc.
DATA(lo_tree) = NEW z2ui5_cl_fw_utility_json( ).
DATA(lo_tree) = NEW z2ui5_cl_util_tree_json( ).
TYPES:
BEGIN OF ty_s_test,
@ -62,7 +62,7 @@ CLASS ltcl_unit_01_json IMPLEMENTATION.
DATA(lo_json) = z2ui5_cl_fw_utility_json=>factory( `{"CCC":{"COMP1":"AAA","COMP2":"BBB"}}` ).
DATA(lo_json) = z2ui5_cl_util_tree_json=>factory( `{"CCC":{"COMP1":"AAA","COMP2":"BBB"}}` ).
DATA(lo_attri) = lo_json->get_attribute( `CCC` )->get_attribute( `COMP2` ).

View File

@ -3,7 +3,7 @@
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>Z2UI5_CL_FW_UTILITY_JSON</CLSNAME>
<CLSNAME>Z2UI5_CL_UTIL_TREE_JSON</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>abap2UI5 - utility json</DESCRIPT>
<STATE>1</STATE>

View File

@ -0,0 +1,20 @@
CLASS z2ui5_cl_util_tree_xml DEFINITION
PUBLIC
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
DATA mt_prop TYPE z2ui5_if_client=>ty_t_name_value.
DATA mt_ns TYPE SORTED TABLE OF string WITH UNIQUE KEY table_line.
DATA mv_name TYPE string.
DATA mv_content TYPE string.
DATA mv_ns TYPE string.
DATA mo_root TYPE REF TO z2ui5_cl_util_tree_xml.
DATA mo_previous TYPE REF TO z2ui5_cl_util_tree_xml.
DATA mo_parent TYPE REF TO z2ui5_cl_util_tree_xml.
DATA mt_child TYPE STANDARD TABLE OF REF TO z2ui5_cl_util_tree_xml WITH EMPTY KEY.
ENDCLASS.
CLASS z2ui5_cl_util_tree_xml IMPLEMENTATION.
ENDCLASS.

View File

@ -3,7 +3,7 @@
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>Z2UI5_CL_FW_UTILITY_XML</CLSNAME>
<CLSNAME>Z2UI5_CL_UTIL_TREE_XML</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>abap2UI5 - utility xml</DESCRIPT>
<STATE>1</STATE>

View File

@ -1,4 +1,4 @@
class Z2UI5_CX_FW_ERROR definition
class Z2UI5_CX_UTIL_ERROR definition
public
inheriting from CX_NO_CHECK
final
@ -27,7 +27,7 @@ ENDCLASS.
CLASS Z2UI5_CX_FW_ERROR IMPLEMENTATION.
CLASS Z2UI5_CX_UTIL_ERROR IMPLEMENTATION.
METHOD constructor ##ADT_SUPPRESS_GENERATION.
@ -40,7 +40,7 @@ CLASS Z2UI5_CX_FW_ERROR IMPLEMENTATION.
CATCH cx_root.
ms_error-text = val.
ENDTRY.
ms_error-uuid = z2ui5_cl_fw_utility=>func_get_uuid_32( ).
ms_error-uuid = z2ui5_cl_util_func=>func_get_uuid_32( ).
ENDMETHOD.

View File

@ -13,11 +13,11 @@ CLASS ltcl_unit_test IMPLEMENTATION.
TRY.
RAISE EXCEPTION TYPE z2ui5_cx_fw_error
RAISE EXCEPTION TYPE z2ui5_cx_util_error
EXPORTING
val = `this is an error text`.
CATCH z2ui5_cx_fw_error INTO DATA(lx).
CATCH z2ui5_cx_util_error INTO DATA(lx).
cl_abap_unit_assert=>assert_equals(
act = lx->get_text( )
exp = `this is an error text` ).

View File

@ -3,9 +3,9 @@
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>Z2UI5_CX_FW_ERROR</CLSNAME>
<CLSNAME>Z2UI5_CX_UTIL_ERROR</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>abap2UI5 - error</DESCRIPT>
<DESCRIPT>abap2UI5 - utility error</DESCRIPT>
<CATEGORY>40</CATEGORY>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_DEVC" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<DEVC>
<CTEXT>abap2UI5 - fw core</CTEXT>
</DEVC>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -147,7 +147,7 @@ CLASS z2ui5_cl_fw_binding IMPLEMENTATION.
ENDIF.
IF bind->bind_type <> mv_type AND bind->bind_type IS NOT INITIAL.
RAISE EXCEPTION TYPE z2ui5_cx_fw_error
RAISE EXCEPTION TYPE z2ui5_cx_util_error
EXPORTING
val = `<p>Binding Error - Two different binding types for same attribute used (` && bind->name && `).`.
ENDIF.
@ -159,7 +159,7 @@ CLASS z2ui5_cl_fw_binding IMPLEMENTATION.
result = COND #( WHEN mv_type = cs_bind_type-two_way THEN `/` && cv_model_edit_name && `/` ELSE `/` ) && bind->name_front.
IF strlen( result ) > 30.
bind->name_front = z2ui5_cl_fw_utility=>func_get_uuid_22( ).
bind->name_front = z2ui5_cl_util_func=>func_get_uuid_22( ).
result = COND #( WHEN mv_type = cs_bind_type-two_way THEN `/` && cv_model_edit_name && `/` ELSE `/` ) && bind->name_front.
ENDIF.
@ -170,10 +170,10 @@ CLASS z2ui5_cl_fw_binding IMPLEMENTATION.
FIELD-SYMBOLS <any> TYPE any.
ASSIGN mr_data->* TO <any>.
DATA(lv_id) = z2ui5_cl_fw_utility=>func_get_uuid_22( ).
DATA(lv_id) = z2ui5_cl_util_func=>func_get_uuid_22( ).
INSERT VALUE #( name = lv_id
data_stringify = z2ui5_cl_fw_utility=>trans_json_any_2( mr_data )
data_stringify = z2ui5_cl_util_func=>trans_json_any_2( mr_data )
bind_type = cs_bind_type-one_time )
INTO TABLE mt_attri.
result = |/{ lv_id }|.
@ -255,8 +255,8 @@ CLASS z2ui5_cl_fw_binding IMPLEMENTATION.
r_result->mv_pretty_name = pretty_name.
IF z2ui5_cl_fw_utility=>rtti_check_type_kind_dref( data ).
RAISE EXCEPTION TYPE z2ui5_cx_fw_error
IF z2ui5_cl_util_func=>rtti_check_type_kind_dref( data ).
RAISE EXCEPTION TYPE z2ui5_cx_util_error
EXPORTING
val = `BINDING_WITH_REFERENCES_NOT_ALLOWED`.
ENDIF.
@ -298,7 +298,7 @@ CLASS z2ui5_cl_fw_binding IMPLEMENTATION.
RETURN.
ENDIF.
DATA(lt_attri2) = z2ui5_cl_fw_utility=>rtti_get_t_attri_by_object( <obj> ).
DATA(lt_attri2) = z2ui5_cl_util_func=>rtti_get_t_attri_by_object( <obj> ).
LOOP AT lt_attri2 INTO DATA(ls_attri2)
WHERE visibility = cl_abap_classdescr=>public
@ -319,10 +319,10 @@ CLASS z2ui5_cl_fw_binding IMPLEMENTATION.
DATA(lv_name) = `MO_APP->` && val.
FIELD-SYMBOLS <attribute> TYPE any.
ASSIGN (lv_name) TO <attribute>.
z2ui5_cl_fw_utility=>x_check_raise( xsdbool( sy-subrc <> 0 ) ).
z2ui5_cl_util_func=>x_check_raise( xsdbool( sy-subrc <> 0 ) ).
DATA(lt_comp) = z2ui5_cl_fw_utility=>rtti_get_t_comp_by_struc( <attribute> ).
DATA(lv_attri) = z2ui5_cl_fw_utility=>c_replace_assign_struc( val ).
DATA(lt_comp) = z2ui5_cl_util_func=>rtti_get_t_comp_by_struc( <attribute> ).
DATA(lv_attri) = z2ui5_cl_util_func=>c_replace_assign_struc( val ).
LOOP AT lt_comp REFERENCE INTO DATA(lr_comp).
DATA(lv_element) = lv_attri && lr_comp->name.
@ -381,7 +381,7 @@ CLASS z2ui5_cl_fw_binding IMPLEMENTATION.
RETURN.
ENDIF.
RAISE EXCEPTION TYPE z2ui5_cx_fw_error
RAISE EXCEPTION TYPE z2ui5_cx_util_error
EXPORTING
val = `BINDING_ERROR - No class attribute for binding found - Please check if the binded values are public attributes of your class`.

View File

@ -268,7 +268,7 @@ CLASS z2ui5_cl_fw_client IMPLEMENTATION.
METHOD z2ui5_if_client~_event.
result = `onEvent( { 'EVENT' : '` && val && `', 'METHOD' : 'UPDATE' , 'CHECK_VIEW_DESTROY' : ` && z2ui5_cl_fw_utility=>boolean_abap_2_json( check_view_destroy ) && ` }`.
result = `onEvent( { 'EVENT' : '` && val && `', 'METHOD' : 'UPDATE' , 'CHECK_VIEW_DESTROY' : ` && z2ui5_cl_util_func=>boolean_abap_2_json( check_view_destroy ) && ` }`.
result = result && set_arg_string( t_arg ).
ENDMETHOD.

View File

@ -56,10 +56,10 @@ CLASS Z2UI5_CL_FW_DB IMPLEMENTATION.
METHOD cleanup.
DATA(lv_time) = z2ui5_cl_fw_utility=>time_get_timestampl( ).
DATA(lv_time) = z2ui5_cl_util_func=>time_get_timestampl( ).
DATA(lv_four_hours_ago) = z2ui5_cl_fw_utility=>time_substract_seconds(
DATA(lv_four_hours_ago) = z2ui5_cl_util_func=>time_substract_seconds(
time = lv_time
seconds = 60 * 60 * 4
).
@ -79,13 +79,13 @@ CLASS Z2UI5_CL_FW_DB IMPLEMENTATION.
id_prev = db-id_prev
id_prev_app = db-id_prev_app
id_prev_app_stack = db-id_prev_app_stack
uname = z2ui5_cl_fw_utility=>func_get_user_tech( )
timestampl = z2ui5_cl_fw_utility=>time_get_timestampl( )
uname = z2ui5_cl_util_func=>func_get_user_tech( )
timestampl = z2ui5_cl_util_func=>time_get_timestampl( )
data = lv_xml ).
MODIFY z2ui5_t_fw_01 FROM @ls_draft.
IF sy-subrc <> 0.
RAISE EXCEPTION TYPE z2ui5_cx_fw_error
RAISE EXCEPTION TYPE z2ui5_cx_util_error
EXPORTING
val = `CREATE_OF_DRAFT_ENTRY_ON_DATABASE_FAILED`.
ENDIF.
@ -98,7 +98,7 @@ CLASS Z2UI5_CL_FW_DB IMPLEMENTATION.
DATA(ls_db) = read( id ).
z2ui5_cl_fw_utility=>trans_xml_2_any(
z2ui5_cl_util_func=>trans_xml_2_any(
EXPORTING
xml = ls_db-data
IMPORTING
@ -113,7 +113,7 @@ CLASS Z2UI5_CL_FW_DB IMPLEMENTATION.
DATA(lv_assign) = 'LO_APP->' && lr_attri->name.
ASSIGN (lv_assign) TO <ref>.
z2ui5_cl_fw_utility=>rtti_xml_set_to_data(
z2ui5_cl_util_func=>rtti_xml_set_to_data(
EXPORTING
rtti_data = lr_attri->data_rtti
IMPORTING
@ -144,7 +144,7 @@ CLASS Z2UI5_CL_FW_DB IMPLEMENTATION.
ENDIF.
IF sy-subrc <> 0.
RAISE EXCEPTION TYPE z2ui5_cx_fw_error
RAISE EXCEPTION TYPE z2ui5_cx_util_error
EXPORTING
val = `NO_DRAFT_ENTRY_OF_PREVIOUS_REQUEST_FOUND`.
ENDIF.
@ -155,7 +155,7 @@ CLASS Z2UI5_CL_FW_DB IMPLEMENTATION.
METHOD trans_any_2_xml.
TRY.
result = z2ui5_cl_fw_utility=>trans_xml_any_2( db ).
result = z2ui5_cl_util_func=>trans_xml_any_2( db ).
CATCH cx_xslt_serialization_error INTO DATA(x).
TRY.
@ -185,17 +185,17 @@ CLASS Z2UI5_CL_FW_DB IMPLEMENTATION.
CONTINUE.
ENDIF.
* IF <deref_attri> IS NOT INITIAL.
lr_attri->data_rtti = z2ui5_cl_fw_utility=>rtti_xml_get_by_data( <deref_attri> ).
lr_attri->data_rtti = z2ui5_cl_util_func=>rtti_xml_get_by_data( <deref_attri> ).
* ENDIF.
CLEAR <deref_attri>.
CLEAR <attri>.
ENDLOOP.
result = z2ui5_cl_fw_utility=>trans_xml_any_2( ls_db ).
result = z2ui5_cl_util_func=>trans_xml_any_2( ls_db ).
CATCH cx_root INTO DATA(x2).
RAISE EXCEPTION TYPE z2ui5_cx_fw_error
RAISE EXCEPTION TYPE z2ui5_cx_util_error
EXPORTING
val = x->get_text( ) && `<p>` && x->previous->get_text( ) && `<p>` && x2->get_text( ).

View File

@ -58,7 +58,7 @@ CLASS z2ui5_cl_fw_handler DEFINITION
END OF ty_s_next.
CLASS-DATA ss_config TYPE z2ui5_if_client=>ty_s_config.
CLASS-DATA so_body TYPE REF TO z2ui5_cl_fw_utility_json.
CLASS-DATA so_body TYPE REF TO z2ui5_cl_util_tree_json.
DATA ms_db TYPE z2ui5_cl_fw_db=>ty_s_db.
DATA ms_actual TYPE z2ui5_if_client=>ty_s_get.
@ -121,7 +121,7 @@ CLASS Z2UI5_CL_FW_HANDLER IMPLEMENTATION.
METHOD app_set_next.
app->id = COND #( WHEN app->id IS INITIAL THEN z2ui5_cl_fw_utility=>func_get_uuid_32( ) ELSE app->id ).
app->id = COND #( WHEN app->id IS INITIAL THEN z2ui5_cl_util_func=>func_get_uuid_32( ) ELSE app->id ).
r_result = NEW #( ).
r_result->ms_db-app = app.
@ -143,7 +143,7 @@ CLASS Z2UI5_CL_FW_HANDLER IMPLEMENTATION.
METHOD request_begin.
so_body = z2ui5_cl_fw_utility_json=>factory( body ).
so_body = z2ui5_cl_util_tree_json=>factory( body ).
TRY.
DATA(location) = so_body->get_attribute( `OLOCATION` ).
@ -179,7 +179,7 @@ CLASS Z2UI5_CL_FW_HANDLER IMPLEMENTATION.
DATA(ls_params) = location->get_attribute( `STARTUP_PARAMETERS` )->get_val_ref( ).
ASSIGN ls_params->* TO <struc>.
DATA(lt_comp) = z2ui5_cl_fw_utility=>rtti_get_t_comp_by_struc( <struc> ).
DATA(lt_comp) = z2ui5_cl_util_func=>rtti_get_t_comp_by_struc( <struc> ).
LOOP AT lt_comp INTO DATA(ls_comp).
@ -220,15 +220,15 @@ CLASS Z2UI5_CL_FW_HANDLER IMPLEMENTATION.
FIELD-SYMBOLS <any> TYPE any.
ASSIGN (`SO_BODY->MR_ACTUAL`) TO <any>.
z2ui5_cl_fw_utility=>x_check_raise( xsdbool( sy-subrc <> 0 ) ).
z2ui5_cl_util_func=>x_check_raise( xsdbool( sy-subrc <> 0 ) ).
ASSIGN (`<ANY>->ARGUMENTS`) TO <any>.
z2ui5_cl_fw_utility=>x_check_raise( xsdbool( sy-subrc <> 0 ) ).
z2ui5_cl_util_func=>x_check_raise( xsdbool( sy-subrc <> 0 ) ).
ASSIGN (`<ANY>->*`) TO <any>.
z2ui5_cl_fw_utility=>x_check_raise( xsdbool( sy-subrc <> 0 ) ).
z2ui5_cl_util_func=>x_check_raise( xsdbool( sy-subrc <> 0 ) ).
FIELD-SYMBOLS <arg> TYPE STANDARD TABLE.
ASSIGN <any> TO <arg>.
z2ui5_cl_fw_utility=>x_check_raise( xsdbool( sy-subrc <> 0 ) ).
z2ui5_cl_util_func=>x_check_raise( xsdbool( sy-subrc <> 0 ) ).
FIELD-SYMBOLS <arg_row> TYPE any.
LOOP AT <arg> ASSIGNING <arg_row>.
@ -258,7 +258,7 @@ CLASS Z2UI5_CL_FW_HANDLER IMPLEMENTATION.
METHOD request_end.
DATA(lo_resp) = z2ui5_cl_fw_utility_json=>factory( ).
DATA(lo_resp) = z2ui5_cl_util_tree_json=>factory( ).
DATA(lo_binder) = z2ui5_cl_fw_model=>factory(
viewname = ms_actual-viewname
@ -272,7 +272,7 @@ CLASS Z2UI5_CL_FW_HANDLER IMPLEMENTATION.
apos_active = abap_false ).
lo_resp->add_attribute( n = `PARAMS`
v = z2ui5_cl_fw_utility=>trans_json_any_2( ms_next-s_set )
v = z2ui5_cl_util_func=>trans_json_any_2( ms_next-s_set )
apos_active = abap_false ).
lo_resp->add_attribute( n = `ID`
@ -303,7 +303,7 @@ CLASS Z2UI5_CL_FW_HANDLER IMPLEMENTATION.
result = NEW #( ).
result->ms_db = z2ui5_cl_fw_db=>load_app( id_prev ).
result->ms_db-id = z2ui5_cl_fw_utility=>func_get_uuid_32( ).
result->ms_db-id = z2ui5_cl_util_func=>func_get_uuid_32( ).
result->ms_db-id_prev = id_prev.
TRY.
@ -359,7 +359,7 @@ CLASS Z2UI5_CL_FW_HANDLER IMPLEMENTATION.
ENDTRY.
IF lv_classname IS INITIAL.
lv_classname = z2ui5_cl_fw_utility=>url_param_get( val = `app_start` url = ss_config-search ).
lv_classname = z2ui5_cl_util_func=>url_param_get( val = `app_start` url = ss_config-search ).
ENDIF.
IF lv_classname IS INITIAL.
@ -369,9 +369,9 @@ CLASS Z2UI5_CL_FW_HANDLER IMPLEMENTATION.
TRY.
result = NEW #( ).
result->ms_db-id = z2ui5_cl_fw_utility=>func_get_uuid_32( ).
result->ms_db-id = z2ui5_cl_util_func=>func_get_uuid_32( ).
lv_classname = z2ui5_cl_fw_utility=>c_trim_upper( lv_classname ).
lv_classname = z2ui5_cl_util_func=>c_trim_upper( lv_classname ).
CREATE OBJECT result->ms_db-app TYPE (lv_classname).
result->ms_db-app->id = result->ms_db-id.
@ -385,19 +385,19 @@ CLASS Z2UI5_CL_FW_HANDLER IMPLEMENTATION.
METHOD set_app_system.
result = NEW #( ).
result->ms_db-id = z2ui5_cl_fw_utility=>func_get_uuid_32( ).
result->ms_db-id = z2ui5_cl_util_func=>func_get_uuid_32( ).
IF ix IS NOT BOUND AND error_text IS NOT INITIAL.
ix = NEW z2ui5_cx_fw_error( val = error_text ).
ix = NEW z2ui5_cx_util_error( val = error_text ).
ENDIF.
IF ix IS BOUND.
result->ms_next-o_app_call = z2ui5_cl_fw_app=>factory_error( ix ).
result->ms_next-o_app_call = z2ui5_cl_fw_app_error=>factory_error( ix ).
result = result->set_app_call( abap_true ).
RETURN.
ENDIF.
result->ms_db-app = z2ui5_cl_fw_app=>factory_start( ).
result->ms_db-app = z2ui5_cl_fw_app_startup=>factory_start( ).
result->ms_db-app->id = result->ms_db-id.
ENDMETHOD.

View File

@ -20,7 +20,7 @@ CLASS ltcl_unit_test IMPLEMENTATION.
cl_abap_unit_assert=>assert_bound( lo_handler->ms_db-app ).
DATA(lo_app_fw) = CAST z2ui5_cl_fw_app( lo_handler->ms_db-app ) ##NEEDED.
DATA(lo_app_fw) = CAST z2ui5_cl_fw_app_startup( lo_handler->ms_db-app ) ##NEEDED.
ENDMETHOD.

View File

@ -30,7 +30,7 @@ ENDCLASS.
CLASS Z2UI5_CL_FW_HTTP_HANDLER IMPLEMENTATION.
CLASS z2ui5_cl_fw_http_handler IMPLEMENTATION.
METHOD http_get.
@ -45,17 +45,7 @@ CLASS Z2UI5_CL_FW_HTTP_HANDLER IMPLEMENTATION.
( n = `data-sap-ui-compatVersion` v = `edge` ) ).
ENDIF.
data(lv_add_js) =
z2ui5_cl_cc_timer=>get_js( ) &&
z2ui5_cl_cc_focus=>get_js( ) &&
z2ui5_cl_cc_title=>get_js( ) &&
z2ui5_cl_cc_history=>get_js( ) &&
z2ui5_cl_cc_scrolling=>get_js( ) &&
z2ui5_cl_cc_info=>get_js( ) &&
z2ui5_cl_cc_geolocation=>get_js( ) &&
z2ui5_cl_cc_file_uploader=>get_js( ) &&
z2ui5_cl_cc_messaging=>get_js( ) &&
custom_js.
DATA(lv_add_js) = z2ui5_cl_cc__factory_fw=>get_js_startup( ) && custom_js.
IF content_security_policy IS NOT SUPPLIED.
DATA(lv_sec_policy) = `<meta http-equiv="Content-Security-Policy" content="default-src 'self' 'unsafe-inline' 'unsafe-eval' data: ` &&
@ -543,7 +533,7 @@ CLASS Z2UI5_CL_FW_HTTP_HANDLER IMPLEMENTATION.
` sap.z2ui5.Helper.DateAbapDateToDateObject = (d=>new Date(d.slice(0, 4),(d[4] + d[5]) - 1,d[6] + d[7]));` && |\n| &&
` sap.z2ui5.Helper.DateAbapDateTimeToDateObject = ((d,t='000000')=>new Date(d.slice(0, 4),(d[4] + d[5]) - 1,d[6] + d[7],t.slice(0, 2),t.slice(2, 4),t.slice(4, 6)));` && |\n| &&
` sap.z2ui5.JSON_MODEL_LIMIT = ` && json_model_limit && `;` && |\n| &&
` sap.z2ui5.checkLogActive = ` && z2ui5_cl_fw_utility=>boolean_abap_2_json( check_logging ) && `;` && |\n| &&
` sap.z2ui5.checkLogActive = ` && z2ui5_cl_util_func=>boolean_abap_2_json( check_logging ) && `;` && |\n| &&
lv_add_js && |\n| &&
` });` && |\n| &&
`</script>` && |\n| &&

View File

@ -54,7 +54,7 @@ CLASS z2ui5_cl_fw_model IMPLEMENTATION.
UNASSIGN <backend>.
ASSIGN (lv_name_back) TO <backend>.
IF sy-subrc <> 0.
RAISE EXCEPTION TYPE z2ui5_cx_fw_error
RAISE EXCEPTION TYPE z2ui5_cx_util_error
EXPORTING
val = `NO_BACKEND_VALUE_FOUND_WITH_NAME__` && lv_name_back.
ENDIF.
@ -64,7 +64,7 @@ CLASS z2ui5_cl_fw_model IMPLEMENTATION.
UNASSIGN <frontend>.
ASSIGN (lv_name_front) TO <frontend>.
IF sy-subrc <> 0.
RAISE EXCEPTION TYPE z2ui5_cx_fw_error
RAISE EXCEPTION TYPE z2ui5_cx_util_error
EXPORTING
val = `NO_FRONTEND_VALUE_FOUND_WITH_NAME__` && lv_name_front.
ENDIF.
@ -72,7 +72,7 @@ CLASS z2ui5_cl_fw_model IMPLEMENTATION.
CASE lr_attri->type_kind.
WHEN `h`.
z2ui5_cl_fw_utility=>trans_ref_tab_2_tab(
z2ui5_cl_util_func=>trans_ref_tab_2_tab(
EXPORTING
ir_tab_from = <frontend>
IMPORTING
@ -83,7 +83,7 @@ CLASS z2ui5_cl_fw_model IMPLEMENTATION.
ASSIGN <frontend>->* TO <frontend>.
CASE lr_attri->type_kind.
WHEN 'D' OR 'T'.
z2ui5_cl_fw_utility=>trans_json_2_any(
z2ui5_cl_util_func=>trans_json_2_any(
EXPORTING
val = `"` && <frontend> && `"`
CHANGING
@ -104,7 +104,7 @@ CLASS z2ui5_cl_fw_model IMPLEMENTATION.
METHOD main_set_frontend.
DATA(lr_view_model) = z2ui5_cl_fw_utility_json=>factory( ).
DATA(lr_view_model) = z2ui5_cl_util_tree_json=>factory( ).
DATA(lo_update) = lr_view_model->add_attribute_object( z2ui5_cl_fw_binding=>cv_model_edit_name ).
LOOP AT mt_attri REFERENCE INTO DATA(lr_attri) WHERE bind_type <> ``.
@ -123,7 +123,7 @@ CLASS z2ui5_cl_fw_model IMPLEMENTATION.
FIELD-SYMBOLS <attribute> TYPE any.
ASSIGN (lv_name_back) TO <attribute>.
IF sy-subrc <> 0.
RAISE EXCEPTION TYPE z2ui5_cx_fw_error
RAISE EXCEPTION TYPE z2ui5_cx_util_error
EXPORTING
val = `Error while creating the response, seems that some app data is not available anymore. <p>BINDING_ERROR - No attribute found with name: ` && lr_attri->name && `</p>`.
ENDIF.
@ -132,7 +132,7 @@ CLASS z2ui5_cl_fw_model IMPLEMENTATION.
WHEN `h`.
lo_actual->add_attribute( n = lr_attri->name_front
v = z2ui5_cl_fw_utility=>trans_json_any_2( any = <attribute> pretty_name = lr_attri->pretty_name )
v = z2ui5_cl_util_func=>trans_json_any_2( any = <attribute> pretty_name = lr_attri->pretty_name )
apos_active = abap_false ).
WHEN OTHERS.
@ -148,7 +148,7 @@ CLASS z2ui5_cl_fw_model IMPLEMENTATION.
WHEN OTHERS.
lo_actual->add_attribute( n = lr_attri->name_front
v = z2ui5_cl_fw_utility=>trans_json_any_2( <attribute> )
v = z2ui5_cl_util_func=>trans_json_any_2( <attribute> )
apos_active = abap_false ).
ENDCASE.
ENDCASE.

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_DEVC" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<DEVC>
<CTEXT>abap2UI5 - fw ui</CTEXT>
</DEVC>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -0,0 +1,116 @@
class Z2UI5_CL_FW_APP_ERROR definition
public
final
create protected .
public section.
interfaces Z2UI5_IF_APP .
interfaces IF_SERIALIZABLE_OBJECT .
data CLIENT type ref to Z2UI5_IF_CLIENT .
data MV_CHECK_INITIALIZED type ABAP_BOOL .
data MV_CHECK_DEMO type ABAP_BOOL .
data MX_ERROR type ref to CX_ROOT .
class-methods FACTORY_ERROR
importing
!ERROR type ref to CX_ROOT
returning
value(RESULT) type ref to Z2UI5_CL_FW_APP_ERROR .
methods Z2UI5_ON_INIT .
methods Z2UI5_ON_EVENT .
methods VIEW_DISPLAY_ERROR .
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS Z2UI5_CL_FW_APP_ERROR IMPLEMENTATION.
METHOD factory_error.
result = NEW #( ).
result->mx_error = error.
ENDMETHOD.
METHOD view_display_error.
DATA(lv_url) = shift_left( val = client->get( )-s_config-origin && client->get( )-s_config-pathname
sub = ` ` ).
DATA(lv_url_app) = lv_url && client->get( )-s_config-search.
DATA(lv_text) = ``.
DATA(lx_error) = mx_error.
WHILE lx_error IS BOUND.
lv_text = lv_text && `<p>` && lx_error->get_text( ) && `</p>`.
lx_error = lx_error->previous.
ENDWHILE.
DATA(view) = z2ui5_cl_ui5=>_factory( )->_ns_m( )->shell( )->illustratedmessage(
enableformattedtext = abap_true
illustrationtype = `sapIllus-ErrorScreen`
title = `500 Internal Server Error`
description = lv_text
)->additionalcontent(
)->button(
text = `Home`
type = `Emphasized`
press = client->_event_client( val = client->cs_event-location_reload t_arg = VALUE #( ( lv_url ) ) )
)->button(
text = `Restart`
press = client->_event_client( val = client->cs_event-location_reload t_arg = VALUE #( ( lv_url_app ) ) ) ).
client->view_display( view->_stringify( ) ).
ENDMETHOD.
METHOD z2ui5_if_app~main.
me->client = client.
IF mv_check_initialized = abap_false.
mv_check_initialized = abap_true.
z2ui5_on_init( ).
ENDIF.
z2ui5_on_event( ).
IF mx_error IS BOUND.
view_display_error( ).
ENDIF.
ENDMETHOD.
METHOD z2ui5_on_event.
CASE client->get( )-event.
WHEN `DEMOS`.
DATA li_app TYPE REF TO z2ui5_if_app.
TRY.
CREATE OBJECT li_app TYPE (`Z2UI5_CL_DEMO_APP_000`).
mv_check_demo = abap_true.
client->nav_app_call( li_app ).
CATCH cx_root.
mv_check_demo = abap_false.
ENDTRY.
ENDCASE.
ENDMETHOD.
METHOD z2ui5_on_init.
mv_check_demo = abap_true.
ENDMETHOD.
ENDCLASS.

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>Z2UI5_CL_FW_APP_ERROR</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>abap2UI5 - app error</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,20 +1,22 @@
CLASS z2ui5_cl_fw_app_hello_world DEFINITION PUBLIC.
class Z2UI5_CL_FW_APP_HELLO_WORLD definition
public
create public .
PUBLIC SECTION.
INTERFACES z2ui5_if_app.
DATA product TYPE string.
DATA quantity TYPE string.
DATA check_initialized TYPE abap_bool.
public section.
interfaces IF_SERIALIZABLE_OBJECT .
interfaces Z2UI5_IF_APP .
data PRODUCT type STRING .
data QUANTITY type STRING .
data CHECK_INITIALIZED type ABAP_BOOL .
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS z2ui5_cl_fw_app_hello_world IMPLEMENTATION.
CLASS Z2UI5_CL_FW_APP_HELLO_WORLD IMPLEMENTATION.
METHOD z2ui5_if_app~main.

View File

@ -5,7 +5,7 @@
<VSEOCLASS>
<CLSNAME>Z2UI5_CL_FW_APP_HELLO_WORLD</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>abap2UI5 - hello world demo</DESCRIPT>
<DESCRIPT>abap2UI5 - app hello world test</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>

View File

@ -1,4 +1,4 @@
CLASS z2ui5_cl_fw_app DEFINITION
CLASS z2ui5_cl_fw_app_startup DEFINITION
PUBLIC
FINAL
CREATE PROTECTED .
@ -6,7 +6,6 @@ CLASS z2ui5_cl_fw_app DEFINITION
PUBLIC SECTION.
INTERFACES z2ui5_if_app .
INTERFACES if_serializable_object .
DATA:
BEGIN OF ms_home,
@ -21,19 +20,13 @@ CLASS z2ui5_cl_fw_app DEFINITION
DATA client TYPE REF TO z2ui5_if_client .
DATA mv_check_initialized TYPE abap_bool .
DATA mv_check_demo TYPE abap_bool .
DATA mx_error TYPE REF TO cx_root .
CLASS-METHODS factory_start
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_fw_app .
CLASS-METHODS factory_error
IMPORTING
!error TYPE REF TO cx_root
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_fw_app .
VALUE(result) TYPE REF TO z2ui5_cl_fw_app_startup .
METHODS z2ui5_on_init .
METHODS z2ui5_on_event .
METHODS view_display_error .
METHODS view_display_start .
PROTECTED SECTION.
PRIVATE SECTION.
@ -41,15 +34,7 @@ ENDCLASS.
CLASS Z2UI5_CL_FW_APP IMPLEMENTATION.
METHOD factory_error.
result = NEW #( ).
result->mx_error = error.
ENDMETHOD.
CLASS z2ui5_cl_fw_app_startup IMPLEMENTATION.
METHOD factory_start.
@ -58,42 +43,9 @@ CLASS Z2UI5_CL_FW_APP IMPLEMENTATION.
ENDMETHOD.
METHOD view_display_error.
DATA(lv_url) = shift_left( val = client->get( )-s_config-origin && client->get( )-s_config-pathname
sub = ` ` ).
DATA(lv_url_app) = lv_url && client->get( )-s_config-search.
DATA(lv_text) = ``.
DATA(lx_error) = mx_error.
WHILE lx_error IS BOUND.
lv_text = lv_text && `<p>` && lx_error->get_text( ) && `</p>`.
lx_error = lx_error->previous.
ENDWHILE.
DATA(view) = z2ui5_cl_ui5=>_factory( )->_ns_m( )->shell( )->illustratedmessage(
enableformattedtext = abap_true
illustrationtype = `sapIllus-ErrorScreen`
title = `500 Internal Server Error`
description = lv_text
)->additionalcontent(
)->button(
text = `Home`
type = `Emphasized`
press = client->_event_client( val = client->cs_event-location_reload t_arg = VALUE #( ( lv_url ) ) )
)->button(
text = `Restart`
press = client->_event_client( val = client->cs_event-location_reload t_arg = VALUE #( ( lv_url_app ) ) ) ).
client->view_display( view->_stringify( ) ).
ENDMETHOD.
METHOD view_display_start.
DATA(lv_url) = z2ui5_cl_fw_utility=>app_get_url(
DATA(lv_url) = z2ui5_cl_util_func=>app_get_url(
client = client
classname = ms_home-classname
).
@ -136,7 +88,7 @@ CLASS Z2UI5_CL_FW_APP IMPLEMENTATION.
IF ms_home-class_editable = abap_true.
content->input( placeholder = `fill in the class name and press 'check'`
editable = z2ui5_cl_fw_utility=>boolean_abap_2_json( ms_home-class_editable )
editable = z2ui5_cl_util_func=>boolean_abap_2_json( ms_home-class_editable )
value = client->_bind_edit( ms_home-classname )
submit = client->_event( ms_home-btn_event_id ) ).
@ -151,7 +103,7 @@ CLASS Z2UI5_CL_FW_APP IMPLEMENTATION.
)->link( text = `Link to the Application`
target = `_blank`
href = lv_url
enabled = z2ui5_cl_fw_utility=>boolean_abap_2_json( xsdbool( ms_home-class_editable = abap_false ) ) ).
enabled = z2ui5_cl_util_func=>boolean_abap_2_json( xsdbool( ms_home-class_editable = abap_false ) ) ).
DATA(form) = grid->simpleform( title = `Samples`
editable = abap_true
@ -191,11 +143,7 @@ CLASS Z2UI5_CL_FW_APP IMPLEMENTATION.
z2ui5_on_event( ).
IF mx_error IS BOUND.
view_display_error( ).
ELSE.
view_display_start( ).
ENDIF.
view_display_start( ).
ENDMETHOD.
@ -213,7 +161,7 @@ CLASS Z2UI5_CL_FW_APP IMPLEMENTATION.
WHEN `BUTTON_CHECK`.
TRY.
DATA li_app_test TYPE REF TO z2ui5_if_app.
ms_home-classname = z2ui5_cl_fw_utility=>c_trim_upper( ms_home-classname ).
ms_home-classname = z2ui5_cl_util_func=>c_trim_upper( ms_home-classname ).
CREATE OBJECT li_app_test TYPE (ms_home-classname).
client->message_toast_display( `App is ready to start!` ).
@ -248,13 +196,11 @@ CLASS Z2UI5_CL_FW_APP IMPLEMENTATION.
METHOD z2ui5_on_init.
IF mx_error IS NOT BOUND.
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_FW_APP_HELLO_WORLD`.
ENDIF.
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_FW_APP_HELLO_WORLD`.
mv_check_demo = abap_true.

View File

@ -12,7 +12,7 @@ CLASS ltcl_unit_test IMPLEMENTATION.
METHOD first_test.
DATA(lo_app) = Z2UI5_CL_FW_APP=>factory_start( ) ##NEEDED.
DATA(lo_app) = Z2UI5_CL_FW_APP_STARTUP=>factory_start( ) ##NEEDED.
ENDMETHOD.

View File

@ -3,9 +3,9 @@
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>Z2UI5_CL_FW_APP</CLSNAME>
<CLSNAME>Z2UI5_CL_FW_APP_STARTUP</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>abap2UI5 - framework app</DESCRIPT>
<DESCRIPT>abap2UI5 - app startup</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>

View File

@ -1,20 +0,0 @@
CLASS z2ui5_cl_fw_utility_xml DEFINITION
PUBLIC
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
DATA mt_prop TYPE z2ui5_if_client=>ty_t_name_value.
DATA mt_ns TYPE SORTED TABLE OF string WITH UNIQUE KEY table_line.
DATA mv_name TYPE string.
DATA mv_content TYPE string.
DATA mv_ns TYPE string.
DATA mo_root TYPE REF TO z2ui5_cl_fw_utility_xml.
DATA mo_previous TYPE REF TO z2ui5_cl_fw_utility_xml.
DATA mo_parent TYPE REF TO z2ui5_cl_fw_utility_xml.
DATA mt_child TYPE STANDARD TABLE OF REF TO z2ui5_cl_fw_utility_xml WITH EMPTY KEY.
ENDCLASS.
CLASS z2ui5_cl_fw_utility_xml IMPLEMENTATION.
ENDCLASS.

View File

@ -0,0 +1,33 @@
CLASS z2ui5_cl_cc__factory_fw DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
class-methods get_js_startup
returning
value(result) type string.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS z2ui5_cl_cc__factory_fw IMPLEMENTATION.
METHOD get_js_startup.
result = z2ui5_cl_cc_timer=>get_js( ) &&
z2ui5_cl_cc_focus=>get_js( ) &&
z2ui5_cl_cc_title=>get_js( ) &&
z2ui5_cl_cc_history=>get_js( ) &&
z2ui5_cl_cc_scrolling=>get_js( ) &&
z2ui5_cl_cc_info=>get_js( ) &&
z2ui5_cl_cc_geolocation=>get_js( ) &&
z2ui5_cl_cc_file_uploader=>get_js( ) &&
z2ui5_cl_cc_messaging=>get_js( ).
ENDMETHOD.
ENDCLASS.

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>Z2UI5_CL_CC__FACTORY_FW</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>cc - fw factory</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -3,7 +3,7 @@
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<DEVC>
<CTEXT>abap2UI5 - cc ext</CTEXT>
<CTEXT>abap2UI5 - cc more</CTEXT>
</DEVC>
</asx:values>
</asx:abap>

File diff suppressed because it is too large Load Diff

View File

@ -157,7 +157,7 @@ CLASS z2ui5_cl_xml_view_cc IMPLEMENTATION.
( n = `value` v = value )
( n = `press` v = press )
( n = `OnPhoto` v = onphoto )
( n = `autoplay` v = z2ui5_cl_fw_utility=>boolean_abap_2_json( autoplay ) )
( n = `autoplay` v = z2ui5_cl_util_func=>boolean_abap_2_json( autoplay ) )
) ).
ENDMETHOD.
@ -186,12 +186,12 @@ CLASS z2ui5_cl_xml_view_cc IMPLEMENTATION.
( n = `upload` v = upload )
( n = `path` v = path )
( n = `value` v = value )
( n = `iconOnly` v = z2ui5_cl_fw_utility=>boolean_abap_2_json( icononly ) )
( n = `buttonOnly` v = z2ui5_cl_fw_utility=>boolean_abap_2_json( buttononly ) )
( n = `iconOnly` v = z2ui5_cl_util_func=>boolean_abap_2_json( icononly ) )
( n = `buttonOnly` v = z2ui5_cl_util_func=>boolean_abap_2_json( buttononly ) )
( n = `buttonText` v = buttontext )
( n = `uploadButtonText` v = uploadbuttontext )
( n = `fileType` v = filetype )
( n = `checkDirectUpload` v = z2ui5_cl_fw_utility=>boolean_abap_2_json( checkdirectupload ) ) ) ).
( n = `checkDirectUpload` v = z2ui5_cl_util_func=>boolean_abap_2_json( checkdirectupload ) ) ) ).
ENDMETHOD.
@ -226,7 +226,7 @@ CLASS z2ui5_cl_xml_view_cc IMPLEMENTATION.
( n = `altitudeAccuracy` v = altitudeaccuracy )
( n = `speed` v = speed )
( n = `heading` v = heading )
( n = `enableHighAccuracy` v = z2ui5_cl_fw_utility=>boolean_abap_2_json( enablehighaccuracy ) )
( n = `enableHighAccuracy` v = z2ui5_cl_util_func=>boolean_abap_2_json( enablehighaccuracy ) )
( n = `timeout` v = timeout )
) ).
@ -295,8 +295,8 @@ CLASS z2ui5_cl_xml_view_cc IMPLEMENTATION.
ns = `z2ui5`
t_prop = VALUE #( ( n = `delayMS` v = delayms )
( n = `finished` v = finished )
( n = `checkActive` v = z2ui5_cl_fw_utility=>boolean_abap_2_json( checkactive ) )
( n = `checkRepeat` v = z2ui5_cl_fw_utility=>boolean_abap_2_json( checkrepeat ) )
( n = `checkActive` v = z2ui5_cl_util_func=>boolean_abap_2_json( checkactive ) )
( n = `checkRepeat` v = z2ui5_cl_util_func=>boolean_abap_2_json( checkrepeat ) )
) ).
ENDMETHOD.

View File

@ -56,13 +56,13 @@ CLASS z2ui5_cl_ui5 DEFINITION
RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_ui_webc.
METHODS constructor
IMPORTING node TYPE REF TO z2ui5_cl_fw_utility_xml OPTIONAL.
IMPORTING node TYPE REF TO z2ui5_cl_util_tree_xml OPTIONAL.
METHODS _stringify
RETURNING VALUE(result) TYPE string.
PROTECTED SECTION.
DATA _node TYPE REF TO z2ui5_cl_fw_utility_xml.
DATA _node TYPE REF TO z2ui5_cl_util_tree_xml.
CLASS-METHODS _2xml
IMPORTING obj TYPE REF TO z2ui5_cl_ui5
@ -87,7 +87,7 @@ CLASS z2ui5_cl_ui5 IMPLEMENTATION.
ENDMETHOD.
METHOD _2bool.
result = z2ui5_cl_fw_utility=>boolean_abap_2_json( val ).
result = z2ui5_cl_util_func=>boolean_abap_2_json( val ).
ENDMETHOD.
METHOD _2xml.
@ -144,7 +144,7 @@ CLASS z2ui5_cl_ui5 IMPLEMENTATION.
DATA(lv_text) = COND #( WHEN lv_ns_tmp IS INITIAL THEN `XML_VIEW_NOT_VALID_NAMESPACE_EMPTY`
ELSE `XML_VIEW_NOT_VALID_NAMESPACE_NOT_FOUND failure: ` && lv_ns_tmp ).
RAISE EXCEPTION TYPE z2ui5_cx_fw_error
RAISE EXCEPTION TYPE z2ui5_cx_util_error
EXPORTING
val = lv_text.
ENDTRY.
@ -192,7 +192,7 @@ CLASS z2ui5_cl_ui5 IMPLEMENTATION.
CATCH cx_root.
ENDTRY.
DATA(lo_node) = NEW z2ui5_cl_fw_utility_xml( ).
DATA(lo_node) = NEW z2ui5_cl_util_tree_xml( ).
DATA(result2) = NEW z2ui5_cl_ui5( lo_node ).
result2->_node->mv_name = n.
result2->_node->mv_ns = ns.
@ -241,7 +241,7 @@ CLASS z2ui5_cl_ui5 IMPLEMENTATION.
METHOD _go_up.
IF _node = _node->mo_root.
RAISE EXCEPTION TYPE z2ui5_cx_fw_error
RAISE EXCEPTION TYPE z2ui5_cx_util_error
EXPORTING
val = `XML_VIEW_PARSER_ERROR - go_up on root element not possible`.
ENDIF.

View File

@ -265,9 +265,9 @@ CLASS z2ui5_cl_ui5_m IMPLEMENTATION.
METHOD panel.
result = _add( n = `Panel` ns = `sap.m`
t_p = VALUE #( ( n = `expandable` v = z2ui5_cl_fw_utility=>boolean_abap_2_json( expandable ) )
( n = `expanded` v = z2ui5_cl_fw_utility=>boolean_abap_2_json( expanded ) )
( n = `stickyHeader` v = z2ui5_cl_fw_utility=>boolean_abap_2_json( stickyheader ) )
t_p = VALUE #( ( n = `expandable` v = z2ui5_cl_util_func=>boolean_abap_2_json( expandable ) )
( n = `expanded` v = z2ui5_cl_util_func=>boolean_abap_2_json( expanded ) )
( n = `stickyHeader` v = z2ui5_cl_util_func=>boolean_abap_2_json( stickyheader ) )
( n = `height` v = height )
( n = `headerText` v = headertext ) ) )->_ns_m( ).
@ -284,7 +284,7 @@ CLASS z2ui5_cl_ui5_m IMPLEMENTATION.
n = `IllustratedMessage`
t_p = VALUE #( ( n = `enableVerticalResponsiveness` v = enableverticalresponsiveness )
( n = `illustrationType` v = illustrationtype )
( n = `enableFormattedText` v = z2ui5_cl_fw_utility=>boolean_abap_2_json( enableformattedtext ) )
( n = `enableFormattedText` v = z2ui5_cl_util_func=>boolean_abap_2_json( enableformattedtext ) )
( n = `illustrationSize` v = illustrationsize )
( n = `description` v = description )
( n = `title` v = title )
@ -306,7 +306,7 @@ CLASS z2ui5_cl_ui5_m IMPLEMENTATION.
ns = `sap.m`
t_p = VALUE #( ( n = `press` v = press )
( n = `text` v = text )
( n = `enabled` v = z2ui5_cl_fw_utility=>boolean_abap_2_json( enabled ) )
( n = `enabled` v = z2ui5_cl_util_func=>boolean_abap_2_json( enabled ) )
( n = `icon` v = icon )
( n = `type` v = type )
( n = `tooltip` v = tooltip ) ) ).
@ -318,7 +318,7 @@ CLASS z2ui5_cl_ui5_m IMPLEMENTATION.
t_p = VALUE #( ( n = `buttonMode` v = buttonmode )
( n = `defaultAction` v = defaultaction )
( n = `text` v = text )
( n = `enabled` v = z2ui5_cl_fw_utility=>boolean_abap_2_json( enabled ) )
( n = `enabled` v = z2ui5_cl_util_func=>boolean_abap_2_json( enabled ) )
( n = `icon` v = icon )
( n = `type` v = type )
( n = `tooltip` v = tooltip ) ) )->_ns_m( ).
@ -330,7 +330,7 @@ CLASS z2ui5_cl_ui5_m IMPLEMENTATION.
ns = `sap.m`
t_p = VALUE #( ( n = `press` v = press )
( n = `text` v = text )
( n = `enabled` v = z2ui5_cl_fw_utility=>boolean_abap_2_json( enabled ) )
( n = `enabled` v = z2ui5_cl_util_func=>boolean_abap_2_json( enabled ) )
( n = `icon` v = icon )
( n = `type` v = type )
( n = `tooltip` v = tooltip ) ) ).
@ -357,13 +357,13 @@ CLASS z2ui5_cl_ui5_m IMPLEMENTATION.
( n = `width` v = width )
( n = `height` v = height )
( n = `alignItems` v = alignitems )
( n = `fitContainer` v = z2ui5_cl_fw_utility=>boolean_abap_2_json( fitcontainer ) )
( n = `fitContainer` v = z2ui5_cl_util_func=>boolean_abap_2_json( fitcontainer ) )
( n = `justifyContent` v = justifycontent )
( n = `wrap` v = wrap )
( n = `direction` v = direction )
( n = `alignContent` v = aligncontent )
( n = `backgroundDesign` v = backgrounddesign )
( n = `displayInline` v = z2ui5_cl_fw_utility=>boolean_abap_2_json( displayinline ) )
( n = `displayInline` v = z2ui5_cl_util_func=>boolean_abap_2_json( displayinline ) )
( n = `visible` v = visible ) ) )->_ns_m( ).
ENDMETHOD.
@ -373,7 +373,7 @@ CLASS z2ui5_cl_ui5_m IMPLEMENTATION.
ns = `sap.m`
t_p = VALUE #( ( n = `text` v = text )
( n = `type` v = type )
( n = `showIcon` v = z2ui5_cl_fw_utility=>boolean_abap_2_json( showicon ) )
( n = `showIcon` v = z2ui5_cl_util_func=>boolean_abap_2_json( showicon ) )
( n = `class` v = class ) ) ).
ENDMETHOD.
@ -389,7 +389,7 @@ CLASS z2ui5_cl_ui5_m IMPLEMENTATION.
( n = `textDirection` v = textdirection )
( n = `width` v = width )
( n = `id` v = id )
( n = `wrapping` v = z2ui5_cl_fw_utility=>boolean_abap_2_json( wrapping ) )
( n = `wrapping` v = z2ui5_cl_util_func=>boolean_abap_2_json( wrapping ) )
( n = `wrappingType` v = wrappingtype )
( n = `class` v = class ) ) ).
ENDMETHOD.

View File

@ -47,7 +47,7 @@ CLASS z2ui5_cl_ui5_suite IMPLEMENTATION.
result = _add( n = `InteractiveDonutChart`
ns = `sap.suite.ui.microchart`
t_p = VALUE #( ( n = `selectionChanged` v = selectionchanged )
( n = `showError` v = z2ui5_cl_fw_utility=>boolean_abap_2_json( showerror ) )
( n = `showError` v = z2ui5_cl_util_func=>boolean_abap_2_json( showerror ) )
( n = `errorMessageTitle` v = errormessagetitle )
( n = `errorMessage` v = errormessage )
( n = `displayedSegments` v = displayedsegments )

View File

@ -3,7 +3,7 @@
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<DEVC>
<CTEXT>abap2UI5 - view parser</CTEXT>
<CTEXT>abap2UI5 - view parser (xml/ui5)</CTEXT>
</DEVC>
</asx:values>
</asx:abap>

10
src/04/package.devc.xml Normal file
View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_DEVC" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<DEVC>
<CTEXT>abap2UI5 - more functions &amp; popups (ui)</CTEXT>
</DEVC>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -0,0 +1,14 @@
CLASS z2ui5_cl_ui_pop_to_confirm DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS Z2UI5_CL_UI_POP_TO_CONFIRM IMPLEMENTATION.
ENDCLASS.

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>Z2UI5_CL_UI_POP_TO_CONFIRM</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>ui - popup to confirm</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -0,0 +1,14 @@
CLASS z2ui5_cl_ui_pop_to_select DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS z2ui5_cl_ui_pop_to_select IMPLEMENTATION.
ENDCLASS.

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>Z2UI5_CL_UI_POP_TO_SELECT</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>ui - popup to select</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -3,7 +3,7 @@
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<DEVC>
<CTEXT>abap2UI5 - test</CTEXT>
<CTEXT>abap2UI5 - test (test)</CTEXT>
</DEVC>
</asx:values>
</asx:abap>