Skip to content

Commit 1479301

Browse files
authored
demo 178 (#136)
1 parent 08accc0 commit 1479301

File tree

1 file changed

+31
-6
lines changed

1 file changed

+31
-6
lines changed

src/z2ui5_cl_demo_app_178.clas.abap

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)