Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
80 commits
Select commit Hold shift + click to select a range
74ebd2b
Normalize class definitions to canonical form
claude Apr 22, 2026
b60fd02
Lowercase class names in IMPLEMENTATION blocks
claude Apr 22, 2026
7c2058a
Rename z2ui5_display_* helpers to match framework naming
claude Apr 22, 2026
0b679c3
Remove whitespace before end-of-statement periods
claude Apr 22, 2026
eb33dca
Normalize excess blank lines
claude Apr 22, 2026
c8d2d7e
Remove blank lines directly below SECTION keywords
claude Apr 22, 2026
4d03c28
Remove blank lines above ENDCLASS in class definitions
claude Apr 22, 2026
9889c92
Add missing PROTECTED/PRIVATE SECTION keywords
claude Apr 22, 2026
717aece
Enforce 2 blank lines between top-level class blocks
claude Apr 22, 2026
ca19fa3
Add blank lines at method body boundaries
claude Apr 22, 2026
104753f
Add blank line above non-empty SECTION keywords
claude Apr 22, 2026
d860028
Strip extra trailing newlines from class files
claude Apr 22, 2026
522da32
Convert single-item DATA: to DATA
claude Apr 22, 2026
0f7b108
Convert CASE abap_true to ELSEIF chain in demo app 150
claude Apr 22, 2026
c52c15b
Convert single-quoted strings to backticks in client-> calls
claude Apr 22, 2026
a619044
Convert more single-quoted strings to backticks
claude Apr 22, 2026
7ce5817
Convert single-quoted string parameters to backticks
claude Apr 22, 2026
1e813ef
Convert positional single-quoted args to backticks in view chains
claude Apr 22, 2026
e7d6ca6
Broaden backtick conversion to all named-parameter assignments
claude Apr 22, 2026
d6bc3be
Convert remaining single quotes in chains and WHEN clauses
claude Apr 22, 2026
882c15e
Convert single quotes in comparison operators and helper calls
claude Apr 22, 2026
39b6d1a
Use backticks for TYPE string VALUE defaults
claude Apr 22, 2026
c6d07c8
Use 1 blank line between final ENDMETHOD and ENDCLASS
claude Apr 22, 2026
1a1cce5
Use 1 blank line between CLASS IMPLEMENTATION and first METHOD
claude Apr 22, 2026
532c7e2
Remove blank between TYPES and DATA that uses it
claude Apr 22, 2026
ccc15ea
Insert blank line before ELSEIF and ELSE
claude Apr 22, 2026
5135ded
Replace CLEAR with VALUE #( ) for tables and structures
claude Apr 22, 2026
292e028
Replace CLEAR ref->t_xxx with assignment to VALUE #( )
claude Apr 22, 2026
6262f4f
Replace mv_init flag with client->check_on_init( )
claude Apr 22, 2026
3d0cfc2
Use client->check_on_init( ) instead of interface init flag
claude Apr 22, 2026
afe121f
Remove leading blank in single-statement IF branches
claude Apr 22, 2026
73c438f
Add blank line between different declaration groups
claude Apr 22, 2026
d787cd1
Remove check_initialized init flag from app state struct
claude Apr 22, 2026
7217386
Rename z2ui5_on_event/init helpers to on_event/on_init
claude Apr 22, 2026
a6a1c8b
Rename z2ui5_on_render* helpers to view_display/popup_display
claude Apr 22, 2026
033d777
Use backticks for base_url concatenation literals
claude Apr 22, 2026
4c141f2
Move declarations from PRIVATE SECTION to PROTECTED
claude Apr 22, 2026
9cc18e2
Merge PRIVATE SECTION content into PROTECTED
claude Apr 22, 2026
4fe5456
Reorder declarations within sections to TYPES/DATA/METHODS
claude Apr 22, 2026
f73b763
Insert blank line before IF when preceded by regular statements
claude Apr 22, 2026
b0d7453
Replace obsolete CONCATENATE with string template
claude Apr 22, 2026
afbc6ca
Bump dependencies to latest versions
claude Apr 22, 2026
2f53c9c
Convert remaining single-quoted strings to backticks
claude Apr 22, 2026
92f500c
Remove pass-through methods with a single call
claude Apr 22, 2026
0baf521
Replace remaining CLEAR statements with VALUE #( )
claude Apr 22, 2026
e8fb048
Use canonical ELSEIF chain in demo app 171 template
claude Apr 22, 2026
61e5174
Collapse excess blanks left over in apps 074 and 136
claude Apr 22, 2026
0f712b3
Remove empty on_event/on_init placeholder methods
claude Apr 22, 2026
fe258fe
Remove empty on_event methods with IMPORTING params
claude Apr 22, 2026
a2fea90
Collapse stray trailing blanks before ENDMETHOD
claude Apr 22, 2026
7ae00b4
Remove extra blank between adjacent METHODS declarations in app 130
claude Apr 22, 2026
6c9eb21
Remove FINAL keyword from local classes in locals_imp files
claude Apr 22, 2026
ea57074
Rename z2ui5_set_data/ui5_* helpers to canonical names
claude Apr 22, 2026
837c5f4
Restore broken pipe-templates and apply remaining helper renames
claude Apr 22, 2026
b841dc6
Collapse excess blank lines in class definition blocks
claude Apr 22, 2026
ec3938e
Convert IF check_on_init/RETURN to IF/ELSE in main
claude Apr 22, 2026
b21a502
Use ->stringify( ) instead of ->get_root( )->xml_get( )
claude Apr 22, 2026
2a28938
Use ->stringify( ) in final remaining view builder chain
claude Apr 22, 2026
e3a5985
Remove blank line after ELSE for single-statement branches
claude Apr 22, 2026
6bf295c
Remove blank line after single-statement ELSEIF
claude Apr 22, 2026
95231df
Rename display_view helper to view_display
claude Apr 22, 2026
86a9899
Use CONSTANTS for a c_-prefixed read-only URL in app 085
claude Apr 22, 2026
cea20d5
Inline short INTERFACES declarations
claude Apr 22, 2026
5b249ef
Remove large commented-out PDF handler in app 318
claude Apr 22, 2026
47bc114
Remove commented-out code blocks in apps 328, 331, 337, 344
claude Apr 22, 2026
937ff26
Remove commented-out generic_tile blocks in app 000
claude Apr 22, 2026
69409b2
Remove more commented-out generic_tile blocks in app 000
claude Apr 22, 2026
52069ee
Reorder declarations and ensure blank before ELSE/ELSEIF
claude Apr 22, 2026
7246973
Remove unused "root" binding in CATCH cx_root
claude Apr 22, 2026
d83c202
Clean up TODO comments and typos
claude Apr 22, 2026
a2b215f
Translate German comments to English
claude Apr 22, 2026
eb64ddf
Fix spelling typos (Ouput, inital, successfull)
claude Apr 22, 2026
2678de3
Replace av_init flag with client->check_on_init( )
claude Apr 22, 2026
08b436a
Drop redundant ! prefix on method parameters
claude Apr 22, 2026
8f68957
Rename render_main helper to view_display
claude Apr 22, 2026
984347f
Rename render_screen helper to view_display in apps 186, 196
claude Apr 22, 2026
dd70838
Split DATA: and METHODS: chains into individual declarations
claude Apr 22, 2026
c0bba0b
Split CLASS-METHODS: chain in WebSocket sample
claude Apr 22, 2026
5155114
Use IS INITIAL instead of = abap_false
claude Apr 22, 2026
7d3c890
Revert "Use IS INITIAL instead of = abap_false"
claude Apr 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
70 changes: 35 additions & 35 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 5 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}
}
82 changes: 43 additions & 39 deletions src/00/z2ui5_cl_demo_app_s_01.clas.abap
Original file line number Diff line number Diff line change
@@ -1,24 +1,19 @@
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,
flag TYPE abap_bool,
END OF error.

PROTECTED SECTION.
PRIVATE SECTION.

METHODS initialize_view
IMPORTING
client TYPE REF TO z2ui5_if_client.
Expand All @@ -34,108 +29,117 @@ 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 ).

DATA(view) = z2ui5_cl_xml_view=>factory( ).

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( ).
Expand All @@ -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.


Expand All @@ -164,4 +169,3 @@ CLASS z2ui5_cl_demo_app_s_01 IMPLEMENTATION.
ENDMETHOD.

ENDCLASS.

2 changes: 1 addition & 1 deletion src/00/z2ui5_cl_demo_app_s_01.clas.locals_imp.abap
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CLASS lcl_locking DEFINITION CREATE PRIVATE FINAL.
CLASS lcl_locking DEFINITION CREATE PRIVATE.
PUBLIC SECTION.

TYPES:
Expand Down
Loading
Loading