@@ -45,6 +45,7 @@ CLASS z2ui5_cl_demo_app_178 DEFINITION
4545
4646 DATA prodh_nodes TYPE ty_prodh_nodes .
4747 DATA prodh_nodes_ex TYPE ty_prodh_nodes_ex .
48+ DATA prodh_nodes_ex_tmp TYPE ty_prodh_nodes_ex .
4849 DATA is_initialized TYPE abap_bool .
4950
5051 METHODS ui5_display_view .
@@ -59,17 +60,29 @@ ENDCLASS.
5960
6061
6162
62- CLASS z2ui5_cl_demo_app_178 IMPLEMENTATION .
63+ CLASS Z2UI5_CL_DEMO_APP_178 IMPLEMENTATION .
6364
6465
6566 METHOD ui5_display_popup_tree_select .
6667
67- client->_bind_edit( prodh_nodes_ex ).
68-
68+ DATA (lv_js ) = `debugger;` && | \n| &&
69+ `var tree_table = sap.z2ui5.oViewPopup.Fragment.byId("popupId","tree");` && | \n| &&
70+ `for (var i in sap.z2ui5.oResponse.OVIEWMODEL.XX.PRODH_NODES_EX) {` && | \n| &&
71+ ` if( sap.z2ui5.oResponse.OVIEWMODEL.XX.PRODH_NODES_EX[i].EXPANDED ) {` && | \n| &&
72+ ` tree_table.expand(parseInt(i));` && | \n| &&
73+ ` for (var j in sap.z2ui5.oResponse.OVIEWMODEL.XX.PRODH_NODES_EX[i].NODES) {` && | \n| &&
74+ ` if( sap.z2ui5.oResponse.OVIEWMODEL.XX.PRODH_NODES_EX[i].NODES[j].EXPANDED ) {` && | \n| &&
75+ ` tree_table.expand(parseInt(j+1));` && | \n| &&
76+ ` };` && | \n| &&
77+ ` };` && | \n| &&
78+ ` };` && | \n| &&
79+ `};` && | \n| &&
80+ `console.log(tree_table);` .
6981 DATA (dialog ) = z2ui5_cl_xml_view=>factory_popup(
7082 )->dialog( title = 'Choose Product here...' contentheight = '50%' contentwidth = '50%' ).
7183
7284 dialog->tree(
85+ id = `tree`
7386 mode = 'SingleSelectMaster'
7487 items = client->_bind_edit( prodh_nodes )
7588* toggleopenstate = client->_event( val = 'TOGGLE_STATE' t_arg = VALUE #( ( `${$parameters>/itemIndex}` ) ( `${$parameters>/expanded}` ) ) )
@@ -87,13 +100,16 @@ CLASS z2ui5_cl_demo_app_178 IMPLEMENTATION.
87100 type = `Reject`
88101 press = client->_event( 'CANCEL' ) ).
89102
103+ * dialog->html( content = `<script>` && lv_js && `</script>` ).
104+ * dialog->_generic( ns = `html` name = `script` )->_cc_plain_xml( lv_js ).
105+
90106 client->popup_display( dialog->stringify( ) ).
91107
92108 ENDMETHOD .
93109
94110
95111 METHOD ui5_display_view .
96-
112+ client->_bind_edit( val = prodh_nodes_ex view = client->cs_view-main ).
97113 DATA (page ) = z2ui5_cl_xml_view=>factory( )->shell(
98114 )->page(
99115 title = 'abap2UI5 - Popup Tree select Entry'
@@ -162,6 +178,13 @@ CLASS z2ui5_cl_demo_app_178 IMPLEMENTATION.
162178 DATA (row ) = lt_arg[ 1 ].
163179 DATA (expanded ) = lt_arg[ 2 ].
164180
181+ * IF prodh_nodes_ex_tmp IS INITIAL.
182+ * prodh_nodes_ex_tmp = prodh_nodes_ex.
183+ * ELSE.
184+ * prodh_nodes_ex = prodh_nodes_ex_tmp.
185+ * ENDIF.
186+
187+
165188 SPLIT row AT '/' INTO TABLE DATA (lt_indxs ).
166189
167190 IF row CS '/NODES/' .
@@ -175,18 +198,20 @@ CLASS z2ui5_cl_demo_app_178 IMPLEMENTATION.
175198 <fss1> = expanded.
176199 ENDIF .
177200
178- client->popup_model_update( ) .
201+ * prodh_nodes_ex_tmp = prodh_nodes_ex .
179202
203+ * client->popup_model_update( ).
204+ client->view_model_update( ).
180205
181206 WHEN 'BACK' .
182207 client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
183208
184209 WHEN 'POPUP_TREE' .
210+ CLEAR prodh_nodes_ex_tmp.
185211 ui5_display_popup_tree_select( ).
186212
187213 WHEN 'CONTINUE' .
188214 client->popup_destroy( ).
189- client->message_box_display( `Selected entry is set in the backend` ).
190215
191216 WHEN 'CANCEL' .
192217 client->popup_destroy( ).
0 commit comments