@@ -5,43 +5,82 @@ abap2UI5 offers great flexibility in how you structure your apps. Most sample ap
55The basic idea: every request enters the ` main ` method, and you use ` CASE ` to distinguish between initialization, navigation returns, and user events:
66
77``` abap
8- CLASS z2ui5_cl_app DEFINITION PUBLIC.
8+ CLASS z2ui5_cl_demo_app_001 DEFINITION PUBLIC.
99
1010 PUBLIC SECTION.
11+
1112 INTERFACES z2ui5_if_app.
1213
14+ DATA mv_value TYPE string.
15+
16+ PROTECTED SECTION.
17+
18+ DATA client TYPE REF TO z2ui5_if_client.
19+
20+ METHODS on_init.
21+ METHODS display_view.
22+ METHODS on_event.
23+ METHODS on_navigated.
24+
25+ PRIVATE SECTION.
1326ENDCLASS.
1427
15- CLASS z2ui5_cl_app IMPLEMENTATION.
28+ CLASS z2ui5_cl_demo_app_001 IMPLEMENTATION.
29+
1630 METHOD z2ui5_if_app~main.
17- CASE abap_true.
1831
19- "first start, init your app here...
32+ me->client = client.
33+ CASE abap_true.
2034 WHEN client->check_on_init( ).
21- "...
22-
23- "after coming back from another app
35+ on_init( ).
36+ display_view( ).
2437 WHEN client->check_on_navigated( ).
25- "read the previous app
26- DATA(lo_app_prev) = client->get_app_prev( ).
27- "...
28-
29- "after user event
38+ on_navigated( ).
3039 WHEN client->check_on_event( ).
31- "read event information
32- DATA(lt_arg) = client->get_event_arg( ).
33- "...
34-
35- "handle event
36- CASE abap_true.
37- WHEN client->check_on_event( `OK` ).
38- "...
39- WHEN client->check_on_event( `CANCEL` ).
40- "...
41- ENDCASE.
40+ on_event( ).
41+ ENDCASE.
42+
43+ ENDMETHOD.
44+
45+ METHOD display_view.
46+
47+ DATA(view) = z2ui5_cl_xml_view=>factory( ).
48+ view->shell( )->page(
49+ )->simple_form( title = `Form Title` editable = abap_true
50+ )->content( `form`
51+ )->title( `Input`
52+ )->label( `value`
53+ )->input( client->_bind_edit( mv_value )
54+ )->button(
55+ text = `post`
56+ press = client->_event( `BUTTON_POST` ) ).
57+ client->view_display( view->stringify( ) ).
4258
59+ ENDMETHOD.
60+
61+ METHOD on_event.
62+
63+ DATA(lt_arg) = client->get_event_arg( ).
64+
65+ CASE client->get( )->event.
66+ WHEN `BUTTON_POST`.
67+ client->message_toast_display( |{ mv_value } - send to the server| ).
4368 ENDCASE.
69+
70+ ENDMETHOD.
71+
72+ METHOD on_init.
73+
74+ mv_value = `value`.
75+
4476 ENDMETHOD.
77+
78+ METHOD on_navigated.
79+
80+ DATA(lo_app_prev) = client->get_app_prev( ).
81+
82+ ENDMETHOD.
83+
4584ENDCLASS.
4685```
4786Refer to the specific sections of this development guide for more details on views, events, data binding, and navigation.
0 commit comments