diff --git a/package-lock.json b/package-lock.json index 459e44f8..583da7ad 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,28 +9,28 @@ "version": "1.0.0", "license": "MIT", "dependencies": { - "npm-check-updates": "^18.3.1" + "npm-check-updates": "^21.0.3" }, "devDependencies": { - "@abaplint/cli": "^2.115.1", + "@abaplint/cli": "^2.119.2", "@abaplint/database-sqlite": "^2.11.78", - "@abaplint/runtime": "^2.12.22", - "@abaplint/transpiler-cli": "^2.12.22", - "@types/node": "^25.0.1", + "@abaplint/runtime": "^2.13.15", + "@abaplint/transpiler-cli": "^2.13.15", + "@types/node": "^25.6.0", "buffer": "^6.0.3" } }, "node_modules/@abaplint/cli": { - "version": "2.115.1", - "resolved": "https://registry.npmjs.org/@abaplint/cli/-/cli-2.115.1.tgz", - "integrity": "sha512-k/rZKSdhCudtVUOqk14+FUgV2ZNKlIhS2ayJNJINrwStZy6pR/my1CJH0hEhXWkb0tzwIFU2Cj9T9Ov6rXWgFg==", + "version": "2.119.2", + "resolved": "https://registry.npmjs.org/@abaplint/cli/-/cli-2.119.2.tgz", + "integrity": "sha512-70PeCa4Iz5Q0J2bKXp10Me253vxWXaGbqS8uImwQZUezljmxlI3SvAaNxf2Wyj8HgKlLH15SewUY3zh9L1G7jg==", "dev": true, "license": "MIT", "bin": { "abaplint": "abaplint" }, "engines": { - "node": ">=12.0.0" + "node": ">=18.0.0" }, "funding": { "url": "https://github.com/sponsors/larshp" @@ -47,22 +47,22 @@ } }, "node_modules/@abaplint/runtime": { - "version": "2.12.22", - "resolved": "https://registry.npmjs.org/@abaplint/runtime/-/runtime-2.12.22.tgz", - "integrity": "sha512-OMXYAD1kTvye7Tk9UVl9/jy8HYom9Iee/BPsdtVdpXjzSnyz0visC+bPlukBdYheimQUVN2nMlaRtY7hKqbamg==", + "version": "2.13.15", + "resolved": "https://registry.npmjs.org/@abaplint/runtime/-/runtime-2.13.15.tgz", + "integrity": "sha512-ZwfAazmW1t1IwsdyIpTWI16tF4dF8WVcnwmbLFiCvXKQf8wK2mS8iLis+y2ikasnxdu4VJTK1UTU8v3/CkH/zQ==", "dev": true, "license": "MIT", "dependencies": { - "temporal-polyfill": "^0.3.0" + "temporal-polyfill": "^0.3.2" }, "funding": { "url": "https://github.com/sponsors/larshp" } }, "node_modules/@abaplint/transpiler-cli": { - "version": "2.12.22", - "resolved": "https://registry.npmjs.org/@abaplint/transpiler-cli/-/transpiler-cli-2.12.22.tgz", - "integrity": "sha512-lry6OF+ndV/TKtKn7PC8eztzcyah1i6r2aVtuwzzW/MiIuU8fBd42nFz0h2QUe2eR+Ywv6Uj9CV3m7hGyNKRMA==", + "version": "2.13.15", + "resolved": "https://registry.npmjs.org/@abaplint/transpiler-cli/-/transpiler-cli-2.13.15.tgz", + "integrity": "sha512-q3IuL+PsDzIXv/IhNbTzJ/1z6bUOg2mDCdkRvnhoP3DfvtjwtoeVIbLuLf+mvkMvsnAeu8sypIYnK1wQTTXiTQ==", "dev": true, "license": "MIT", "bin": { @@ -73,13 +73,13 @@ } }, "node_modules/@types/node": { - "version": "25.0.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.1.tgz", - "integrity": "sha512-czWPzKIAXucn9PtsttxmumiQ9N0ok9FrBwgRWrwmVLlp86BrMExzvXRLFYRJ+Ex3g6yqj+KuaxfX1JTgV2lpfg==", + "version": "25.6.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.6.0.tgz", + "integrity": "sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~7.16.0" + "undici-types": "~7.19.0" } }, "node_modules/base64-js": { @@ -150,17 +150,17 @@ "license": "BSD-3-Clause" }, "node_modules/npm-check-updates": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-18.3.1.tgz", - "integrity": "sha512-5HwKPq7ybOOA1xB4FZg/1ToZZ5/i93U8m3co1mb3GYZAZPDkcxEFukQTTp/Abym+ZY6ShfrHl45Y0rCcwsNnQA==", + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-21.0.3.tgz", + "integrity": "sha512-8y0fqtxdo5JhwzxcS9rZd969tvPbSZ3MzQoG5Fj8eqL42t1Jsg5tjZCz8CYuXLE8LNbbyV+1xxR/f/T4AdPmdg==", "license": "Apache-2.0", "bin": { "ncu": "build/cli.js", "npm-check-updates": "build/cli.js" }, "engines": { - "node": "^18.18.0 || >=20.0.0", - "npm": ">=8.12.1" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0", + "npm": ">=10.0.0" } }, "node_modules/sql.js": { @@ -171,26 +171,26 @@ "license": "MIT" }, "node_modules/temporal-polyfill": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/temporal-polyfill/-/temporal-polyfill-0.3.0.tgz", - "integrity": "sha512-qNsTkX9K8hi+FHDfHmf22e/OGuXmfBm9RqNismxBrnSmZVJKegQ+HYYXT+R7Ha8F/YSm2Y34vmzD4cxMu2u95g==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/temporal-polyfill/-/temporal-polyfill-0.3.2.tgz", + "integrity": "sha512-TzHthD/heRK947GNiSu3Y5gSPpeUDH34+LESnfsq8bqpFhsB79HFBX8+Z834IVX68P3EUyRPZK5bL/1fh437Eg==", "dev": true, "license": "MIT", "dependencies": { - "temporal-spec": "0.3.0" + "temporal-spec": "0.3.1" } }, "node_modules/temporal-spec": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/temporal-spec/-/temporal-spec-0.3.0.tgz", - "integrity": "sha512-n+noVpIqz4hYgFSMOSiINNOUOMFtV5cZQNCmmszA6GiVFVRt3G7AqVyhXjhCSmowvQn+NsGn+jMDMKJYHd3bSQ==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/temporal-spec/-/temporal-spec-0.3.1.tgz", + "integrity": "sha512-B4TUhezh9knfSIMwt7RVggApDRJZo73uZdj8AacL2mZ8RP5KtLianh2MXxL06GN9ESYiIsiuoLQhgVfwe55Yhw==", "dev": true, "license": "ISC" }, "node_modules/undici-types": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", - "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "version": "7.19.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.19.2.tgz", + "integrity": "sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==", "dev": true, "license": "MIT" } diff --git a/package.json b/package.json index 950ebfcb..db4f0eea 100644 --- a/package.json +++ b/package.json @@ -19,14 +19,14 @@ }, "homepage": "https://github.com/abap2UI5/samples#readme", "devDependencies": { - "@abaplint/cli": "^2.115.1", + "@abaplint/cli": "^2.119.2", "@abaplint/database-sqlite": "^2.11.78", - "@abaplint/runtime": "^2.12.22", - "@abaplint/transpiler-cli": "^2.12.22", - "@types/node": "^25.0.1", + "@abaplint/runtime": "^2.13.15", + "@abaplint/transpiler-cli": "^2.13.15", + "@types/node": "^25.6.0", "buffer": "^6.0.3" }, "dependencies": { - "npm-check-updates": "^18.3.1" + "npm-check-updates": "^21.0.3" } } diff --git a/src/00/z2ui5_cl_demo_app_s_01.clas.abap b/src/00/z2ui5_cl_demo_app_s_01.clas.abap index fffad603..e7790bc0 100644 --- a/src/00/z2ui5_cl_demo_app_s_01.clas.abap +++ b/src/00/z2ui5_cl_demo_app_s_01.clas.abap @@ -1,15 +1,12 @@ -CLASS z2ui5_cl_demo_app_s_01 DEFINITION - PUBLIC - CREATE PUBLIC . +CLASS z2ui5_cl_demo_app_s_01 DEFINITION PUBLIC. PUBLIC SECTION. + INTERFACES z2ui5_if_app. - INTERFACES z2ui5_if_app . - - DATA lock_counter TYPE i READ-ONLY . - DATA session_is_stateful TYPE abap_bool READ-ONLY . - DATA session_text TYPE string READ-ONLY . - DATA lock_text TYPE string READ-ONLY . + DATA lock_counter TYPE i READ-ONLY. + DATA session_is_stateful TYPE abap_bool READ-ONLY. + DATA session_text TYPE string READ-ONLY. + DATA lock_text TYPE string READ-ONLY. DATA: BEGIN OF error READ-ONLY, text TYPE string, @@ -17,8 +14,6 @@ CLASS z2ui5_cl_demo_app_s_01 DEFINITION END OF error. PROTECTED SECTION. - PRIVATE SECTION. - METHODS initialize_view IMPORTING client TYPE REF TO z2ui5_if_client. @@ -34,13 +29,14 @@ CLASS z2ui5_cl_demo_app_s_01 DEFINITION METHODS update_lock_counter. + PRIVATE SECTION. ENDCLASS. - CLASS z2ui5_cl_demo_app_s_01 IMPLEMENTATION. METHOD initialize_view. + set_session_stateful( client = client stateful = abap_true ). @@ -48,94 +44,102 @@ CLASS z2ui5_cl_demo_app_s_01 IMPLEMENTATION. DATA(page) = view->shell( )->page( title = `abap2UI5 - Sample: Sticky Session with locks - (ABAP Standard Only)` - navbuttonpress = client->_event( 'BACK' ) + navbuttonpress = client->_event( `BACK` ) shownavbutton = client->check_app_prev_stack( ) ). page->message_strip( text = client->_bind( error-text ) - type = 'Error' + type = `Error` visible = client->_bind( error-flag ) ). DATA(vbox) = page->vbox( ). - DATA(hbox) = vbox->hbox( alignitems = 'Center' ). + DATA(hbox) = vbox->hbox( alignitems = `Center` ). hbox->info_label( text = client->_bind( session_text ) ). hbox->button( - text = 'End session' - press = client->_event( 'END_SESSION' ) ). + text = `End session` + press = client->_event( `END_SESSION` ) ). hbox->button( - text = 'Start session again' - press = client->_event( 'START_SESSION' ) ). + text = `Start session again` + press = client->_event( `START_SESSION` ) ). - hbox = vbox->hbox( alignitems = 'Center' ). - hbox->label( text = 'press button to create lock entry (SM12) in backend session' - class = 'sapUiTinyMarginEnd' ). + hbox = vbox->hbox( alignitems = `Center` ). + hbox->label( text = `press button to create lock entry (SM12) in backend session` + class = `sapUiTinyMarginEnd` ). hbox->button( - text = 'Lock' - press = client->_event( 'LOCK' ) - type = 'Emphasized' ). + text = `Lock` + press = client->_event( `LOCK` ) + type = `Emphasized` ). hbox = vbox->hbox( ). hbox->button( - text = 'Refresh lock counter' - press = client->_event( 'REFRESH' ) ). + text = `Refresh lock counter` + press = client->_event( `REFRESH` ) ). hbox->button( - text = 'Rollback Work' - press = client->_event( 'ROLLBACK' ) ). + text = `Rollback Work` + press = client->_event( `ROLLBACK` ) ). vbox->hbox( )->info_label( client->_bind( lock_text ) ). client->view_display( view->stringify( ) ). + ENDMETHOD. METHOD on_event. + CASE client->get( )-event. - WHEN 'BACK'. + WHEN `BACK`. set_session_stateful( client = client stateful = abap_false ). client->nav_app_leave( ). - WHEN 'LOCK'. + WHEN `LOCK`. lcl_locking=>acquire_lock( ). client->message_toast_display( `Lock acquired. Press 'Refresh lock counter'` ). client->view_model_update( ). - WHEN 'END_SESSION'. + WHEN `END_SESSION`. set_session_stateful( client = client stateful = abap_false ). - WHEN 'START_SESSION'. + WHEN `START_SESSION`. set_session_stateful( client = client stateful = abap_true ). - WHEN 'REFRESH'. + WHEN `REFRESH`. update_lock_counter( ). client->view_model_update( ). - WHEN 'ROLLBACK'. + WHEN `ROLLBACK`. ROLLBACK WORK. client->message_toast_display( |ROLLBACK WORK done, { lock_counter } locks released. Press 'Refresh lock counter'| ). ENDCASE. + ENDMETHOD. METHOD set_session_stateful. + client->set_session_stateful( stateful ). session_is_stateful = stateful. + IF stateful = abap_true. - session_text = 'Session ON (stateful)'. + session_text = `Session ON (stateful)`. + ELSE. - session_text = 'Session OFF (stateless)'. + session_text = `Session OFF (stateless)`. ENDIF. client->view_model_update( ). + ENDMETHOD. METHOD z2ui5_if_app~main. + TRY. - CLEAR error. + error = VALUE #( ). IF client->check_on_init( ). update_lock_counter( ). @@ -153,6 +157,7 @@ CLASS z2ui5_cl_demo_app_s_01 IMPLEMENTATION. CATCH cx_root INTO DATA(lx). client->message_box_display( lx->get_text( ) ). ENDTRY. + ENDMETHOD. @@ -164,4 +169,3 @@ CLASS z2ui5_cl_demo_app_s_01 IMPLEMENTATION. ENDMETHOD. ENDCLASS. - diff --git a/src/00/z2ui5_cl_demo_app_s_01.clas.locals_imp.abap b/src/00/z2ui5_cl_demo_app_s_01.clas.locals_imp.abap index 66a75f6d..e626a117 100644 --- a/src/00/z2ui5_cl_demo_app_s_01.clas.locals_imp.abap +++ b/src/00/z2ui5_cl_demo_app_s_01.clas.locals_imp.abap @@ -1,4 +1,4 @@ -CLASS lcl_locking DEFINITION CREATE PRIVATE FINAL. +CLASS lcl_locking DEFINITION CREATE PRIVATE. PUBLIC SECTION. TYPES: diff --git a/src/00/z2ui5_cl_demo_app_s_02.clas.abap b/src/00/z2ui5_cl_demo_app_s_02.clas.abap index a3468fee..7f036eba 100644 --- a/src/00/z2ui5_cl_demo_app_s_02.clas.abap +++ b/src/00/z2ui5_cl_demo_app_s_02.clas.abap @@ -1,16 +1,13 @@ -CLASS z2ui5_cl_demo_app_s_02 DEFINITION - PUBLIC - CREATE PUBLIC. +CLASS z2ui5_cl_demo_app_s_02 DEFINITION PUBLIC. PUBLIC SECTION. INTERFACES z2ui5_if_app. + DATA instance_counter TYPE i READ-ONLY. DATA session_is_stateful TYPE abap_bool READ-ONLY. DATA session_text TYPE string READ-ONLY. PROTECTED SECTION. - PRIVATE SECTION. - METHODS initialize_view IMPORTING client TYPE REF TO z2ui5_if_client. @@ -24,11 +21,14 @@ CLASS z2ui5_cl_demo_app_s_02 DEFINITION client TYPE REF TO z2ui5_if_client stateful TYPE abap_bool. + PRIVATE SECTION. ENDCLASS. + CLASS z2ui5_cl_demo_app_s_02 IMPLEMENTATION. METHOD z2ui5_if_app~main. + TRY. IF client->check_on_init( ). @@ -40,9 +40,12 @@ CLASS z2ui5_cl_demo_app_s_02 IMPLEMENTATION. CATCH cx_root INTO DATA(lx). client->message_box_display( lx->get_text( ) ). ENDTRY. + ENDMETHOD. + METHOD initialize_view. + set_session_stateful( client = client stateful = abap_true ). @@ -50,58 +53,68 @@ CLASS z2ui5_cl_demo_app_s_02 IMPLEMENTATION. DATA(page) = view->shell( )->page( title = `abap2UI5 - Sample: Sticky Session` - navbuttonpress = client->_event( 'BACK' ) + navbuttonpress = client->_event( `BACK` ) shownavbutton = client->check_app_prev_stack( ) ). DATA(vbox) = page->vbox( ). vbox->info_label( text = client->_bind( session_text ) ). - DATA(hbox) = vbox->hbox( alignitems = 'Center' ). - hbox->label( text = 'press button to increment counter in backend session' - class = 'sapUiTinyMarginEnd' ). + DATA(hbox) = vbox->hbox( alignitems = `Center` ). + hbox->label( text = `press button to increment counter in backend session` + class = `sapUiTinyMarginEnd` ). hbox->button( text = client->_bind( instance_counter ) - press = client->_event( 'INCREMENT' ) - type = 'Emphasized' ). + press = client->_event( `INCREMENT` ) + type = `Emphasized` ). hbox = vbox->hbox( ). hbox->button( - text = 'End session' - press = client->_event( 'END_SESSION' ) ). + text = `End session` + press = client->_event( `END_SESSION` ) ). hbox->button( - text = 'Start session again' - press = client->_event( 'START_SESSION' ) ). + text = `Start session again` + press = client->_event( `START_SESSION` ) ). client->view_display( view->stringify( ) ). + ENDMETHOD. + METHOD on_event. + CASE client->get( )-event. - WHEN 'BACK'. + WHEN `BACK`. set_session_stateful( client = client stateful = abap_false ). client->nav_app_leave( ). - WHEN 'INCREMENT'. + WHEN `INCREMENT`. instance_counter = lcl_static_container=>increment( ). client->view_model_update( ). - WHEN 'END_SESSION'. + WHEN `END_SESSION`. set_session_stateful( client = client stateful = abap_false ). - WHEN 'START_SESSION'. + WHEN `START_SESSION`. set_session_stateful( client = client stateful = abap_true ). ENDCASE. + ENDMETHOD. + METHOD set_session_stateful. + client->set_session_stateful( stateful ). session_is_stateful = stateful. + IF stateful = abap_true. - session_text = 'Session ON (stateful)'. + session_text = `Session ON (stateful)`. + ELSE. - session_text = 'Session OFF (stateless)'. + session_text = `Session OFF (stateless)`. ENDIF. client->view_model_update( ). + ENDMETHOD. + ENDCLASS. diff --git a/src/00/z2ui5_cl_demo_app_s_02.clas.locals_imp.abap b/src/00/z2ui5_cl_demo_app_s_02.clas.locals_imp.abap index ba8345e0..7d9d2247 100644 --- a/src/00/z2ui5_cl_demo_app_s_02.clas.locals_imp.abap +++ b/src/00/z2ui5_cl_demo_app_s_02.clas.locals_imp.abap @@ -1,4 +1,4 @@ -CLASS lcl_static_container DEFINITION CREATE PRIVATE FINAL. +CLASS lcl_static_container DEFINITION CREATE PRIVATE. PUBLIC SECTION. CLASS-DATA counter TYPE i READ-ONLY. CLASS-METHODS increment diff --git a/src/00/z2ui5_cl_demo_app_s_03.clas.abap b/src/00/z2ui5_cl_demo_app_s_03.clas.abap index 02cb1e06..22b72047 100644 --- a/src/00/z2ui5_cl_demo_app_s_03.clas.abap +++ b/src/00/z2ui5_cl_demo_app_s_03.clas.abap @@ -1,23 +1,21 @@ -CLASS z2ui5_cl_demo_app_s_03 DEFINITION - PUBLIC - FINAL - CREATE PUBLIC . +CLASS z2ui5_cl_demo_app_s_03 DEFINITION PUBLIC. PUBLIC SECTION. - INTERFACES z2ui5_if_app. + DATA magic_key TYPE string. DATA: BEGIN OF message, text TYPE string VALUE IS INITIAL, - type TYPE string VALUE 'None', + type TYPE string VALUE `None`, END OF message. - PROTECTED SECTION. - PRIVATE SECTION. + PROTECTED SECTION. DATA client TYPE REF TO z2ui5_if_client. + METHODS view_display. METHODS on_event. + PRIVATE SECTION. ENDCLASS. @@ -43,7 +41,7 @@ CLASS z2ui5_cl_demo_app_s_03 IMPLEMENTATION. SELECT SINGLE FROM icfservloc FIELDS icfactive - WHERE icf_name = 'MIME_DEMO' + WHERE icf_name = `MIME_DEMO` INTO @DATA(icfactive). " Note, these are demo sounds and are part of the abap2UI5 sample repo. @@ -70,29 +68,32 @@ CLASS z2ui5_cl_demo_app_s_03 IMPLEMENTATION. vbox->input( id = `inputApp` value = client->_bind_edit( magic_key ) placeholder = `Enter magic key` - submit = client->_event( 'enter' ) ). + submit = client->_event( `enter` ) ). vbox->button( text = `submit` type = `accept` - press = client->_event( 'enter' ) ). + press = client->_event( `enter` ) ). view->_z2ui5( )->focus( focusid = `inputApp` ). client->view_display( view->stringify( ) ). + ENDMETHOD. METHOD on_event. - IF client->get( )-event = 'enter'. + IF client->get( )-event = `enter`. + IF magic_key = `abap2UI5`. client->follow_up_action( val = `playSuccess()` ). - message-type = 'Success'. - message-text = 'Hooray!'. + message-type = `Success`. + message-text = `Hooray!`. + ELSE. client->follow_up_action( val = `playError()` ). - message-type = 'Error'. + message-type = `Error`. message-text = `That wasn't the magic key`. ENDIF. - CLEAR magic_key. + magic_key = VALUE #( ). client->view_model_update( ). ENDIF. diff --git a/src/00/z2ui5_cl_demo_app_s_04.clas.abap b/src/00/z2ui5_cl_demo_app_s_04.clas.abap index 9473b48a..c996a74d 100644 --- a/src/00/z2ui5_cl_demo_app_s_04.clas.abap +++ b/src/00/z2ui5_cl_demo_app_s_04.clas.abap @@ -1,4 +1,4 @@ -CLASS z2ui5_cl_demo_app_s_04 DEFINITION PUBLIC CREATE PUBLIC. +CLASS z2ui5_cl_demo_app_s_04 DEFINITION PUBLIC. PUBLIC SECTION. INTERFACES z2ui5_if_app. @@ -7,19 +7,14 @@ CLASS z2ui5_cl_demo_app_s_04 DEFINITION PUBLIC CREATE PUBLIC. DATA numc TYPE z2ui5_numc12. DATA numc_out TYPE c LENGTH 12. - PROTECTED SECTION. DATA client TYPE REF TO z2ui5_if_client. - METHODS z2ui5_set_data. - - METHODS display_view - IMPORTING - !client TYPE REF TO z2ui5_if_client. + METHODS set_data. - METHODS on_event + METHODS view_display IMPORTING - !client TYPE REF TO z2ui5_if_client. + client TYPE REF TO z2ui5_if_client. PRIVATE SECTION. ENDCLASS. @@ -32,27 +27,26 @@ CLASS z2ui5_cl_demo_app_s_04 IMPLEMENTATION. me->client = client. IF client->check_on_init( ). - display_view( client ). - z2ui5_set_data( ). + view_display( client ). + set_data( ). ENDIF. - on_event( client ). - ENDMETHOD. - METHOD display_view. + + METHOD view_display. DATA(view) = z2ui5_cl_xml_view=>factory( ). client->view_display( val = view->shell( - )->page( title = 'abap2UI5 - Conversion Exit' + )->page( title = `abap2UI5 - Conversion Exit` navbuttonpress = client->_event_nav_app_leave( ) shownavbutton = client->check_app_prev_stack( ) - )->simple_form( title = 'Form Title' + )->simple_form( title = `Form Title` editable = abap_true - )->content( 'form' - )->title( 'Conversion' - )->label( 'Numeric' + )->content( `form` + )->title( `Conversion` + )->label( `Numeric` )->input( value = client->_bind_edit( numc_out ) enabled = abap_false )->label( `Unit` @@ -62,12 +56,10 @@ CLASS z2ui5_cl_demo_app_s_04 IMPLEMENTATION. ENDMETHOD. - METHOD on_event. - ENDMETHOD. - METHOD z2ui5_set_data. + METHOD set_data. - unit = 'ST'. " internal ST -> external PC (if logged in in english) + unit = `ST`. " internal ST -> external PC (if logged in in english) numc = 10. " internal 0000000010 -> external 10 TRY. diff --git a/src/00/z2ui5_cl_demo_app_s_05.clas.abap b/src/00/z2ui5_cl_demo_app_s_05.clas.abap index 7c131099..73130d69 100644 --- a/src/00/z2ui5_cl_demo_app_s_05.clas.abap +++ b/src/00/z2ui5_cl_demo_app_s_05.clas.abap @@ -1,6 +1,7 @@ CLASS z2ui5_cl_demo_app_s_05 DEFINITION PUBLIC. PUBLIC SECTION. + INTERFACES z2ui5_if_app. TYPES: BEGIN OF t_news, @@ -10,21 +11,17 @@ CLASS z2ui5_cl_demo_app_s_05 DEFINITION PUBLIC. tt_news TYPE STANDARD TABLE OF t_news WITH NON-UNIQUE DEFAULT KEY. - INTERFACES z2ui5_if_app. DATA news_input TYPE string. DATA author_input TYPE string. DATA news_list TYPE tt_news. DATA connections TYPE int8. - PROTECTED SECTION. DATA client TYPE REF TO z2ui5_if_client. - METHODS z2ui5_on_event. - METHODS z2ui5_on_render. - METHODS z2ui5_display_popover. - + METHODS on_event. + METHODS view_display. + METHODS popover_display. PRIVATE SECTION. - ENDCLASS. @@ -34,49 +31,50 @@ CLASS z2ui5_cl_demo_app_s_05 IMPLEMENTATION. me->client = client. - IF me->z2ui5_if_app~check_initialized = abap_false. + IF client->check_on_init( ). connections = z2ui5_cl_demo_app_s_05_ws=>get_active_connections( ). ENDIF. IF client->get( )-event IS NOT INITIAL. - z2ui5_on_event( ). + on_event( ). client->view_model_update( ). RETURN. ENDIF. - z2ui5_on_render( ). + view_display( ). ENDMETHOD. - METHOD z2ui5_on_event. - DATA: news TYPE t_news. + METHOD on_event. + + DATA news TYPE t_news. CASE client->get( )-event. WHEN `CLEAR`. CLEAR: news_list. - WHEN 'CLICK_HINT_ICON'. + WHEN `CLICK_HINT_ICON`. - z2ui5_display_popover( ). + popover_display( ). ENDCASE. ENDMETHOD. - METHOD z2ui5_on_render. + METHOD view_display. SELECT SINGLE FROM icfservloc FIELDS icfactive - WHERE icf_name = 'Z2UI5_SAMPLE' + WHERE icf_name = `Z2UI5_SAMPLE` INTO @DATA(icfactive). DATA(view) = z2ui5_cl_xml_view=>factory( ). DATA(page) = view->shell( )->page( - title = 'abap2UI5 - Sample: News Feed over WebSocket' + title = `abap2UI5 - Sample: News Feed over WebSocket` navbuttonpress = client->_event_nav_app_leave( ) shownavbutton = client->check_app_prev_stack( ) ). @@ -84,7 +82,7 @@ CLASS z2ui5_cl_demo_app_s_05 IMPLEMENTATION. )->button( id = `button_hint_id` icon = `sap-icon://hint` tooltip = `Sample information` - press = client->_event( 'CLICK_HINT_ICON' ) ). + press = client->_event( `CLICK_HINT_ICON` ) ). IF icfactive = abap_false. page->message_strip( @@ -128,7 +126,7 @@ CLASS z2ui5_cl_demo_app_s_05 IMPLEMENTATION. icon = `sap-icon://clear-all` press = client->_event( `CLEAR` ) ). - IF me->z2ui5_if_app~check_initialized = abap_false. + IF client->check_on_init( ). view->_generic( name = `script` ns = `html` )->_cc_plain_xml( @@ -177,7 +175,7 @@ CLASS z2ui5_cl_demo_app_s_05 IMPLEMENTATION. ENDMETHOD. - METHOD z2ui5_display_popover. + METHOD popover_display. DATA(view) = z2ui5_cl_xml_view=>factory_popup( ). view->quick_view( placement = `Bottom` diff --git a/src/00/z2ui5_cl_demo_app_s_05_ws.clas.abap b/src/00/z2ui5_cl_demo_app_s_05_ws.clas.abap index 289c0556..7abc354a 100644 --- a/src/00/z2ui5_cl_demo_app_s_05_ws.clas.abap +++ b/src/00/z2ui5_cl_demo_app_s_05_ws.clas.abap @@ -2,38 +2,33 @@ CLASS z2ui5_cl_demo_app_s_05_ws DEFINITION PUBLIC INHERITING FROM cl_apc_wsp_ext_stateless_base. PUBLIC SECTION. - - CLASS-METHODS: get_active_connections - RETURNING - VALUE(result) TYPE i. - - METHODS: - if_apc_wsp_extension~on_message REDEFINITION, - if_apc_wsp_extension~on_start REDEFINITION, - if_apc_wsp_extension~on_close REDEFINITION. - CONSTANTS: - c_amc_application_id TYPE amc_application_id VALUE 'Z2UI5_SAMPLE' ##NO_TEXT, - c_channel_id TYPE amc_channel_id VALUE '/news_feed' ##NO_TEXT, + c_amc_application_id TYPE amc_application_id VALUE `Z2UI5_SAMPLE` ##NO_TEXT, + c_channel_id TYPE amc_channel_id VALUE `/news_feed` ##NO_TEXT, BEGIN OF c_msg, __new_connection__ TYPE string VALUE `__NEW_CONNECTION__` ##NO_TEXT, __closed__ TYPE string VALUE `__CLOSED__` ##NO_TEXT, END OF c_msg. - PRIVATE SECTION. - - CLASS-METHODS: - get_producer - RETURNING - VALUE(producer) TYPE REF TO if_amc_message_producer_text - RAISING - cx_amc_error, - send - IMPORTING - i_message TYPE string - RAISING - cx_amc_error. + CLASS-METHODS: get_active_connections + RETURNING + VALUE(result) TYPE i. + METHODS if_apc_wsp_extension~on_message REDEFINITION. + METHODS if_apc_wsp_extension~on_start REDEFINITION. + METHODS if_apc_wsp_extension~on_close REDEFINITION. + PROTECTED SECTION. + CLASS-METHODS get_producer + RETURNING + VALUE(producer) TYPE REF TO if_amc_message_producer_text + RAISING + cx_amc_error. + CLASS-METHODS send + IMPORTING + i_message TYPE string + RAISING + cx_amc_error. + PRIVATE SECTION. ENDCLASS. diff --git a/src/00/z2ui5_cl_demo_app_s_06.clas.abap b/src/00/z2ui5_cl_demo_app_s_06.clas.abap index 676ce975..3e810b27 100644 --- a/src/00/z2ui5_cl_demo_app_s_06.clas.abap +++ b/src/00/z2ui5_cl_demo_app_s_06.clas.abap @@ -1,19 +1,19 @@ -CLASS z2ui5_cl_demo_app_s_06 DEFINITION - PUBLIC - CREATE PUBLIC . +CLASS z2ui5_cl_demo_app_s_06 DEFINITION PUBLIC. PUBLIC SECTION. INTERFACES z2ui5_if_app. + PROTECTED SECTION. PRIVATE SECTION. ENDCLASS. - CLASS z2ui5_cl_demo_app_s_06 IMPLEMENTATION. METHOD z2ui5_if_app~main. + client->nav_app_call( NEW zcl_2ui5_start( ) ). + ENDMETHOD. ENDCLASS. diff --git a/src/01/z2ui5_cl_demo_app_lp_01.clas.abap b/src/01/z2ui5_cl_demo_app_lp_01.clas.abap index e3f3d418..616ed293 100644 --- a/src/01/z2ui5_cl_demo_app_lp_01.clas.abap +++ b/src/01/z2ui5_cl_demo_app_lp_01.clas.abap @@ -3,8 +3,6 @@ CLASS z2ui5_cl_demo_app_lp_01 DEFINITION PUBLIC. PUBLIC SECTION. INTERFACES z2ui5_if_app. - - PROTECTED SECTION. PRIVATE SECTION. ENDCLASS. @@ -12,6 +10,7 @@ ENDCLASS. CLASS z2ui5_cl_demo_app_lp_01 IMPLEMENTATION. METHOD z2ui5_if_app~main. + IF client->check_on_init( ). IF client->get( )-check_launchpad_active = abap_false. @@ -20,21 +19,21 @@ CLASS z2ui5_cl_demo_app_lp_01 IMPLEMENTATION. 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' + client->view_display( page->simple_form( title = `Laucnhpad I - Read Startup Parameters` editable = abap_true - )->content( 'form' + )->content( `form` )->label( `` - )->button( text = 'Read Parameters' - press = client->_event( 'READ_PARAMS' ) + )->button( text = `Read Parameters` + press = client->_event( `READ_PARAMS` ) )->label( `` - )->button( text = 'Go Back' + )->button( text = `Go Back` press = client->_event_nav_app_leave( ) )->stringify( ) ). ENDIF. CASE client->get( )-event. - WHEN 'READ_PARAMS'. + WHEN `READ_PARAMS`. DATA(lv_text) = `Start Parameter: `. DATA(lt_params) = client->get( )-t_comp_params. LOOP AT lt_params INTO DATA(ls_param). @@ -44,4 +43,5 @@ CLASS z2ui5_cl_demo_app_lp_01 IMPLEMENTATION. ENDCASE. ENDMETHOD. + ENDCLASS. diff --git a/src/01/z2ui5_cl_demo_app_lp_02.clas.abap b/src/01/z2ui5_cl_demo_app_lp_02.clas.abap index e77fb4c8..6bfb14c3 100644 --- a/src/01/z2ui5_cl_demo_app_lp_02.clas.abap +++ b/src/01/z2ui5_cl_demo_app_lp_02.clas.abap @@ -5,18 +5,15 @@ CLASS z2ui5_cl_demo_app_lp_02 DEFINITION PUBLIC. DATA mv_title TYPE string VALUE `my title`. - PROTECTED SECTION. - PRIVATE SECTION. ENDCLASS. - -CLASS Z2UI5_CL_DEMO_APP_LP_02 IMPLEMENTATION. - +CLASS z2ui5_cl_demo_app_lp_02 IMPLEMENTATION. METHOD z2ui5_if_app~main. + IF client->check_on_init( ). IF client->get( )-check_launchpad_active = abap_false. @@ -24,27 +21,29 @@ CLASS Z2UI5_CL_DEMO_APP_LP_02 IMPLEMENTATION. ENDIF. DATA(shell) = z2ui5_cl_xml_view=>factory( )->shell( ). + IF client->get( )-check_launchpad_active = abap_true. DATA(page) = shell->page( showheader = abap_false ). page->_z2ui5( )->lp_title( client->_bind_edit( mv_title ) ). + ELSE. page = shell->page( client->_bind_edit( mv_title ) ). ENDIF. - client->view_display( page->simple_form( title = 'Set Launchpad Title Dynamically' + client->view_display( page->simple_form( title = `Set Launchpad Title Dynamically` editable = abap_true - )->content( 'form' + )->content( `form` )->label( `` )->input( client->_bind_edit( mv_title ) )->label( `` - )->button( text = 'Go Back' + )->button( text = `Go Back` press = client->_event_nav_app_leave( ) )->stringify( ) ). ENDIF. CASE client->get( )-event. - WHEN 'READ_PARAMS'. + WHEN `READ_PARAMS`. DATA(lv_text) = `Start Parameter: `. DATA(lt_params) = client->get( )-t_comp_params. LOOP AT lt_params INTO DATA(ls_param). @@ -54,4 +53,5 @@ CLASS Z2UI5_CL_DEMO_APP_LP_02 IMPLEMENTATION. ENDCASE. ENDMETHOD. + ENDCLASS. diff --git a/src/01/z2ui5_cl_demo_app_lp_03.clas.abap b/src/01/z2ui5_cl_demo_app_lp_03.clas.abap index d4ed9091..f2477c5d 100644 --- a/src/01/z2ui5_cl_demo_app_lp_03.clas.abap +++ b/src/01/z2ui5_cl_demo_app_lp_03.clas.abap @@ -1,13 +1,11 @@ CLASS z2ui5_cl_demo_app_lp_03 DEFINITION PUBLIC. PUBLIC SECTION. - INTERFACES z2ui5_if_app. * DATA product TYPE string. * DATA quantity TYPE string. - DATA: BEGIN OF nav_params, product TYPE string, @@ -19,17 +17,15 @@ CLASS z2ui5_cl_demo_app_lp_03 DEFINITION PUBLIC. ENDCLASS. - CLASS z2ui5_cl_demo_app_lp_03 IMPLEMENTATION. - METHOD z2ui5_if_app~main. DATA(lt_startup_params) = client->get( )-s_config-t_startup_params. IF client->check_on_init( ). - nav_params-product = '102343333'. + nav_params-product = `102343333`. IF client->get( )-check_launchpad_active = abap_false. client->message_box_display( `No Launchpad Active, Sample not working!` ). @@ -39,24 +35,24 @@ CLASS z2ui5_cl_demo_app_lp_03 IMPLEMENTATION. client->view_display( view->shell( )->page( showheader = xsdbool( abap_false = client->get( )-check_launchpad_active ) - title = 'abap2UI5 - Cross App Navigation App 127 - This App only works when started via Launchpad' + title = `abap2UI5 - Cross App Navigation App 127 - This App only works when started via Launchpad` navbuttonpress = client->_event_nav_app_leave( ) shownavbutton = client->check_app_prev_stack( ) )->header_content( )->link( - text = 'Source_Code' + text = `Source_Code` - target = '_blank' + target = `_blank` )->get_parent( - )->simple_form( title = 'App 127' + )->simple_form( title = `App 127` editable = abap_true - )->content( 'form' + )->content( `form` )->label( `Product` )->input( client->_bind_edit( nav_params-product ) - )->button( text = 'BACK' + )->button( text = `BACK` press = client->_event_client( client->cs_event-cross_app_nav_to_prev_app ) )->button( - text = 'go to app 128' + text = `go to app 128` press = client->_event_client( val = client->cs_event-cross_app_nav_to_ext t_arg = VALUE #( @@ -71,10 +67,11 @@ CLASS z2ui5_cl_demo_app_lp_03 IMPLEMENTATION. CASE client->get( )-event. - WHEN 'BUTTON_POST'. + WHEN `BUTTON_POST`. * client->message_toast_display( |{ product } { quantity } - send to the server| ). ENDCASE. ENDMETHOD. + ENDCLASS. diff --git a/src/01/z2ui5_cl_demo_app_lp_04.clas.abap b/src/01/z2ui5_cl_demo_app_lp_04.clas.abap index 6254dd5a..983d0b22 100644 --- a/src/01/z2ui5_cl_demo_app_lp_04.clas.abap +++ b/src/01/z2ui5_cl_demo_app_lp_04.clas.abap @@ -1,7 +1,6 @@ CLASS z2ui5_cl_demo_app_lp_04 DEFINITION PUBLIC. PUBLIC SECTION. - INTERFACES z2ui5_if_app. DATA product TYPE string. @@ -15,10 +14,8 @@ CLASS z2ui5_cl_demo_app_lp_04 DEFINITION PUBLIC. ENDCLASS. - CLASS z2ui5_cl_demo_app_lp_04 IMPLEMENTATION. - METHOD z2ui5_if_app~main. DATA(view) = z2ui5_cl_xml_view=>factory( ). @@ -32,35 +29,36 @@ CLASS z2ui5_cl_demo_app_lp_04 IMPLEMENTATION. product = lt_params[ n = `PRODUCT` ]-v. CATCH cx_root. ENDTRY. + IF client->check_on_init( ). - quantity = '500'. + quantity = `500`. client->view_display( view->shell( )->page( showheader = xsdbool( abap_false = client->get( )-check_launchpad_active ) - title = 'abap2UI5 - Cross App Navigation App 128' + title = `abap2UI5 - Cross App Navigation App 128` navbuttonpress = client->_event_nav_app_leave( ) shownavbutton = client->check_app_prev_stack( ) )->header_content( )->link( - text = 'Source_Code' + text = `Source_Code` - target = '_blank' + target = `_blank` )->get_parent( - )->simple_form( title = 'App 128' + )->simple_form( title = `App 128` editable = abap_true - )->content( 'form' - )->title( 'Input' - )->label( 'product nav param' + )->content( `form` + )->title( `Input` + )->label( `product nav param` )->input( client->_bind_edit( product ) )->label( `CHECK_LAUNCHPAD_ACTIVE` )->input( check_launchpad_active )->button( press = client->_event( ) - )->button( text = 'BACK' + )->button( text = `BACK` press = client->_event_client( client->cs_event-cross_app_nav_to_prev_app ) )->button( - text = 'go to app 127' + text = `go to app 127` press = client->_event_client( val = client->cs_event-cross_app_nav_to_ext t_arg = VALUE #( ( `{ semanticObject: "Z2UI5_CL_LP_SAMPLE_03", action: "display" }` ) ( `{ ProductID : "123234" }`) ) @@ -73,10 +71,11 @@ CLASS z2ui5_cl_demo_app_lp_04 IMPLEMENTATION. CASE client->get( )-event. - WHEN 'BUTTON_POST'. + WHEN `BUTTON_POST`. * client->message_toast_display( |{ product } { quantity } - send to the server| ). ENDCASE. ENDMETHOD. + ENDCLASS. diff --git a/src/02/z2ui5_cl_demo_app_355.clas.abap b/src/02/z2ui5_cl_demo_app_355.clas.abap index 8637fb12..0832a2a3 100644 --- a/src/02/z2ui5_cl_demo_app_355.clas.abap +++ b/src/02/z2ui5_cl_demo_app_355.clas.abap @@ -27,6 +27,7 @@ CLASS z2ui5_cl_demo_app_355 IMPLEMENTATION. METHOD z2ui5_if_app~main. me->client = client. + IF client->check_on_init( ). on_init( ). ENDIF. diff --git a/src/02/z2ui5_cl_demo_app_357.clas.abap b/src/02/z2ui5_cl_demo_app_357.clas.abap index 8b76b6f2..70c17095 100644 --- a/src/02/z2ui5_cl_demo_app_357.clas.abap +++ b/src/02/z2ui5_cl_demo_app_357.clas.abap @@ -25,6 +25,7 @@ CLASS z2ui5_cl_demo_app_357 IMPLEMENTATION. METHOD z2ui5_if_app~main. me->client = client. + IF client->check_on_init( ). view_display( ). ENDIF. diff --git a/src/02/z2ui5_cl_demo_app_358.clas.abap b/src/02/z2ui5_cl_demo_app_358.clas.abap index bd7ee878..de59a3f2 100644 --- a/src/02/z2ui5_cl_demo_app_358.clas.abap +++ b/src/02/z2ui5_cl_demo_app_358.clas.abap @@ -32,6 +32,7 @@ CLASS z2ui5_cl_demo_app_358 IMPLEMENTATION. METHOD z2ui5_if_app~main. me->client = client. + IF client->check_on_init( ). on_init( ). ENDIF. diff --git a/src/02/z2ui5_cl_demo_app_359.clas.abap b/src/02/z2ui5_cl_demo_app_359.clas.abap index 5414117a..37978b66 100644 --- a/src/02/z2ui5_cl_demo_app_359.clas.abap +++ b/src/02/z2ui5_cl_demo_app_359.clas.abap @@ -25,6 +25,7 @@ CLASS z2ui5_cl_demo_app_359 IMPLEMENTATION. METHOD z2ui5_if_app~main. me->client = client. + IF client->check_on_init( ). on_init( ). ENDIF. diff --git a/src/02/z2ui5_cl_demo_app_360.clas.abap b/src/02/z2ui5_cl_demo_app_360.clas.abap index aef058fd..6aca00a1 100644 --- a/src/02/z2ui5_cl_demo_app_360.clas.abap +++ b/src/02/z2ui5_cl_demo_app_360.clas.abap @@ -24,6 +24,7 @@ CLASS z2ui5_cl_demo_app_360 IMPLEMENTATION. METHOD z2ui5_if_app~main. me->client = client. + IF client->check_on_init( ). on_init( ). ENDIF. diff --git a/src/z2ui5_cl_demo_app_000.clas.abap b/src/z2ui5_cl_demo_app_000.clas.abap index dd6486ad..88bb2215 100644 --- a/src/z2ui5_cl_demo_app_000.clas.abap +++ b/src/z2ui5_cl_demo_app_000.clas.abap @@ -27,15 +27,14 @@ CLASS z2ui5_cl_demo_app_000 DEFINITION PUBLIC. ENDCLASS. - CLASS z2ui5_cl_demo_app_000 IMPLEMENTATION. - METHOD z2ui5_if_app~main. CONSTANTS c_title TYPE string VALUE ` abap2UI5 - Samples`. IF client->get( )-check_on_navigated = abap_true. + IF mt_scroll IS INITIAL. mt_scroll = VALUE #( ( n = `page` ) ). ENDIF. @@ -43,10 +42,10 @@ CLASS z2ui5_cl_demo_app_000 IMPLEMENTATION. ENDIF. CASE client->get( )-event. - WHEN 'expand-all'. + WHEN `expand-all`. expand_all( ). - WHEN 'collapse-all'. - CLEAR ms_check_expanded. + WHEN `collapse-all`. + ms_check_expanded = VALUE #( ). WHEN OTHERS. TRY. DATA(lv_classname) = to_upper( client->get( )-event ). @@ -65,9 +64,9 @@ CLASS z2ui5_cl_demo_app_000 IMPLEMENTATION. shownavbutton = client->check_app_prev_stack( ) )->header_content( )->toolbar_spacer( - )->link( text = 'Install with abapGit from GitHub' - target = '_blank' - href = 'https://github.com/abap2UI5/samples' + )->link( text = `Install with abapGit from GitHub` + target = `_blank` + href = `https://github.com/abap2UI5/samples` )->get_parent( ). IF client->get( )-check_launchpad_active = abap_true. @@ -77,8 +76,8 @@ CLASS z2ui5_cl_demo_app_000 IMPLEMENTATION. page->_z2ui5( )->scrolling( setupdate = client->_bind_edit( mv_set_scroll ) items = client->_bind_edit( mt_scroll ) ). - page = page->grid( 'L12 M12 S12' - )->content( 'layout' ). + page = page->grid( `L12 M12 S12` + )->content( `layout` ). page->formatted_text( `

Explore and copy code samples! All samples are abap2UI5 implementations of the ` && |\n| && `