@@ -16,10 +16,9 @@ CLASS z2ui5_cl_demo_app_174 DEFINITION PUBLIC.
1616 TYPES ty_t_table TYPE STANDARD TABLE OF ty_s_tab WITH EMPTY KEY .
1717
1818 DATA mt_table TYPE ty_t_table.
19-
2019 DATA ms_layout TYPE z2ui5_cl_popup_layout_v2=>ty_s_layout.
2120
22- PROTECTED SECTION .
21+ PROTECTED SECTION .
2322 DATA client TYPE REF TO z2ui5_if_client.
2423 DATA mv_check_initialized TYPE abap_bool .
2524 METHODS on_event.
@@ -40,9 +39,8 @@ CLASS z2ui5_cl_demo_app_174 IMPLEMENTATION.
4039 METHOD on_event .
4140
4241 CASE client->get( )-event.
43-
4442 WHEN 'BACK' .
45- client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
43+ client->nav_app_leave( ).
4644 WHEN OTHERS .
4745 on_event_layout( ).
4846 ENDCASE .
@@ -87,40 +85,36 @@ CLASS z2ui5_cl_demo_app_174 IMPLEMENTATION.
8785 DATA (headder ) = table->header_toolbar(
8886 )->overflow_toolbar(
8987 )->title( text = 'Table'
90- )->toolbar_spacer(
91- ).
88+ )->toolbar_spacer( ).
9289
93- headder = z2ui5_cl_popup_layout_v2=>render_layout_function( xml = headder
94- client = client ).
90+ headder = z2ui5_cl_popup_layout_v2=>render_layout_function( xml = headder client = client ).
9591
9692 DATA (columns ) = table->columns( ).
9793
98-
9994 LOOP AT ms_layout-t_layout REFERENCE INTO DATA (layout ).
10095 DATA (lv_index ) = sy -tabix .
10196
10297 columns->column(
103- visible = client->_bind( val = layout->visible tab = ms_layout-t_layout tab_index = lv_index )
104- halign = client->_bind( val = layout->halign tab = ms_layout-t_layout tab_index = lv_index )
98+ visible = client->_bind( val = layout->visible tab = ms_layout-t_layout tab_index = lv_index )
99+ halign = client->_bind( val = layout->halign tab = ms_layout-t_layout tab_index = lv_index )
105100 importance = client->_bind( val = layout->importance tab = ms_layout-t_layout tab_index = lv_index )
106- mergeduplicates = client->_bind( val = layout->merge tab = ms_layout-t_layout tab_index = lv_index )
107- minscreenwidth = client->_bind( val = layout->width tab = ms_layout-t_layout tab_index = lv_index )
101+ mergeduplicates = client->_bind( val = layout->merge tab = ms_layout-t_layout tab_index = lv_index )
102+ minscreenwidth = client->_bind( val = layout->width tab = ms_layout-t_layout tab_index = lv_index )
108103 )->text( layout->fname ).
109104
110105 ENDLOOP .
111106
112107
113108 DATA (cells ) = columns->get_parent( )->items(
114- )->column_list_item( valign = 'Middle'
115- type = 'Navigation'
116- press = client->_event( val = 'ROW_SELECT'
117- t_arg = VALUE #( ( `${ROW_ID}` ) ) )
118- )->cells( ).
109+ )->column_list_item( valign = 'Middle'
110+ type = 'Navigation'
111+ press = client->_event(
112+ val = 'ROW_SELECT'
113+ t_arg = VALUE #( ( `${ROW_ID}` ) ) )
114+ )->cells( ).
119115
120116 LOOP AT ms_layout-t_layout REFERENCE INTO layout .
121-
122117 cells->object_identifier( text = '{' && layout->fname && '}' ).
123-
124118 ENDLOOP .
125119
126120 client->view_display( view->stringify( ) ).
@@ -136,16 +130,15 @@ CLASS z2ui5_cl_demo_app_174 IMPLEMENTATION.
136130 mv_check_initialized = abap_true .
137131
138132 set_data( ).
139-
140133 create_layout( ).
141-
142134 view_display( ).
143-
144135 RETURN .
145-
146136 ENDIF .
147137
148- on_after_layout( ).
138+ IF client->get( )-check_on_navigated = abap_true .
139+ on_after_layout( ).
140+ RETURN .
141+ ENDIF .
149142
150143 IF client->get( )-event IS NOT INITIAL .
151144 on_event( ).
@@ -155,46 +148,47 @@ CLASS z2ui5_cl_demo_app_174 IMPLEMENTATION.
155148
156149 METHOD create_layout .
157150
158- DATA : tab TYPE REF TO data .
159- DATA : lr_tabdescr TYPE REF TO cl_abap_tabledescr.
160- FIELD-SYMBOLS : <fs_tab> TYPE ANY TABLE .
161-
162- lr_tabdescr ?= cl_abap_tabledescr=>describe_by_data( mt_table ).
163- CREATE DATA tab TYPE HANDLE lr_tabdescr.
164- ASSIGN tab->* TO <fs_tab> .
165- <fs_tab> = mt_table.
166-
167- DATA (class ) = cl_abap_classdescr=>get_class_name( me ).
168-
169151 ms_layout = z2ui5_cl_popup_layout_v2=>init_layout(
170- tab = tab
171- classname = CONV #( class ) ).
152+ tab = REF #( mt_table )
153+ classname = z2ui5_cl_util=>rtti_get_classname_by_ref( me ) ).
172154
173155 ENDMETHOD .
174156
175157
176158 METHOD on_after_layout .
177159
178- IF client->get( )-check_on_navigated = abap_true .
179-
180- TRY .
181- DATA (app ) = CAST z2ui5_cl_popup_layout_v2( client->get_app( client->get( )-s_draft-id_prev_app ) ).
182- ms_layout = app->ms_layout.
183- view_display( ).
160+ TRY .
161+ DATA (app ) = CAST z2ui5_cl_popup_layout_v2( client->get_app( client->get( )-s_draft-id_prev_app ) ).
162+ ms_layout = app->ms_layout.
163+ view_display( ).
184164
185- CATCH cx_root.
186- ENDTRY .
187-
188- ENDIF .
165+ CATCH cx_root.
166+ ENDTRY .
189167
190168 ENDMETHOD .
191169
192170
193171 METHOD on_event_layout .
194172
195- client = z2ui5_cl_popup_layout_v2=>on_event_layout(
196- client = client
197- layout = ms_layout ).
173+
174+ CASE client->get( )-event.
175+
176+ WHEN 'LAYOUT_OPEN' .
177+ client->view_destroy( ).
178+ client->nav_app_call( z2ui5_cl_popup_layout_v2=>factory( layout = ms_layout
179+ open_layout = abap_true ) ).
180+
181+ WHEN 'LAYOUT_EDIT' .
182+ client->view_destroy( ).
183+ client->nav_app_call( z2ui5_cl_popup_layout_v2=>factory( layout = ms_layout
184+ extended_layout = abap_true ) ).
185+
186+ WHEN 'LAYOUT_DELETE' .
187+ client->view_destroy( ).
188+ client->nav_app_call( z2ui5_cl_popup_layout_v2=>factory( layout = ms_layout
189+ delete_layout = abap_true ) ).
190+
191+ ENDCASE .
198192
199193 ENDMETHOD .
200194
0 commit comments