1- CLASS z2ui5_cl_demo_app_178 DEFINITION
2- PUBLIC
3- FINAL
4- CREATE PUBLIC .
1+ class Z2UI5_CL_DEMO_APP_178 definition
2+ public
3+ final
4+ create public .
55
6- PUBLIC SECTION .
6+ public section .
77
8- INTERFACES z2ui5_if_app.
8+ interfaces IF_SERIALIZABLE_OBJECT .
9+ interfaces Z2UI5_IF_APP .
910
10- TYPES :
11- BEGIN OF ty_prodh_node_level3,
11+ types :
12+ BEGIN OF ty_prodh_node_level3,
1213 is_selected TYPE abap_bool ,
1314 text TYPE string ,
1415 prodh TYPE string ,
1516 END OF ty_prodh_node_level3 .
16- TYPES :
17- BEGIN OF ty_prodh_node_level2,
17+ types :
18+ BEGIN OF ty_prodh_node_level2,
1819 is_selected TYPE abap_bool ,
1920 text TYPE string ,
2021 prodh TYPE string ,
21- expanded TYPE abap_bool ,
2222 nodes TYPE STANDARD TABLE OF ty_prodh_node_level3 WITH DEFAULT KEY ,
2323 END OF ty_prodh_node_level2 .
24- TYPES :
25- BEGIN OF ty_prodh_node_level1,
24+ types :
25+ BEGIN OF ty_prodh_node_level1,
2626 is_selected TYPE abap_bool ,
2727 text TYPE string ,
2828 prodh TYPE string ,
29- expanded TYPE abap_bool ,
3029 nodes TYPE STANDARD TABLE OF ty_prodh_node_level2 WITH DEFAULT KEY ,
3130 END OF ty_prodh_node_level1 .
32- TYPES :
33- ty_prodh_nodes TYPE STANDARD TABLE OF ty_prodh_node_level1 WITH DEFAULT KEY .
34- TYPES :
35- BEGIN OF ty_prodh_node_level2_ex,
36- expanded TYPE abap_bool ,
37- END OF ty_prodh_node_level2_ex .
38- TYPES :
39- BEGIN OF ty_prodh_node_level1_ex,
40- expanded TYPE abap_bool ,
41- nodes TYPE STANDARD TABLE OF ty_prodh_node_level2_ex WITH DEFAULT KEY ,
42- END OF ty_prodh_node_level1_ex .
43- TYPES :
44- ty_prodh_nodes_ex TYPE STANDARD TABLE OF ty_prodh_node_level1_ex WITH DEFAULT KEY .
45-
46- DATA prodh_nodes TYPE ty_prodh_nodes .
47- DATA prodh_nodes_ex TYPE ty_prodh_nodes_ex .
48- DATA prodh_nodes_ex_tmp TYPE ty_prodh_nodes_ex .
49- DATA is_initialized TYPE abap_bool .
50-
51- METHODS ui5_display_view .
31+ types :
32+ ty_prodh_nodes TYPE STANDARD TABLE OF ty_prodh_node_level1 WITH DEFAULT KEY .
33+
34+ data PRODH_NODES type TY_PRODH_NODES .
35+ data IS_INITIALIZED type ABAP_BOOL .
36+
37+ methods UI5_DISPLAY_VIEW .
5238 PROTECTED SECTION .
5339
5440 DATA client TYPE REF TO z2ui5_if_client.
@@ -63,36 +49,15 @@ ENDCLASS.
6349CLASS Z2UI5_CL_DEMO_APP_178 IMPLEMENTATION .
6450
6551
66- METHOD ui5_display_popup_tree_select .
67-
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);` .
52+ METHOD UI5_DISPLAY_POPUP_TREE_SELECT .
53+
8154 DATA (dialog ) = z2ui5_cl_xml_view=>factory_popup(
82- )->dialog( title = 'Choose Product here...' contentheight = '50%' contentwidth = '50%' ).
55+ )->dialog( title = 'Choose Product here...' contentheight = '50%' contentwidth = '50%' beforeopen = `setState()` beforeclose = `saveState()` ).
8356
8457 dialog->tree(
8558 id = `tree`
8659 mode = 'SingleSelectMaster'
8760 items = client->_bind_edit( prodh_nodes )
88- * toggleopenstate = client->_event( val = 'TOGGLE_STATE' t_arg = VALUE #( ( `${$parameters>/itemIndex}` ) ( `${$parameters>/expanded}` ) ) )
89- toggleopenstate = client->_event(
90- val = 'TOGGLE_STATE'
91- t_arg = VALUE #(
92- ( `${$parameters>/itemContext/sPath}` )
93- ( `${$parameters>/expanded}` ) )
94- s_ctrl = value #( model_name = client->cs_view-main )
95- )
9661 )->items(
9762 )->standard_tree_item( selected = '{IS_SELECTED}' title = '{TEXT}' ).
9863
@@ -106,17 +71,33 @@ CLASS Z2UI5_CL_DEMO_APP_178 IMPLEMENTATION.
10671 type = `Reject`
10772 press = client->_event( 'CANCEL' ) ).
10873
109- * dialog->html( content = `<script>` && lv_js && `</script>` ).
110- * dialog->_generic( ns = `html` name = `script` )->_cc_plain_xml( lv_js ).
11174
11275 client->popup_display( dialog->stringify( ) ).
11376
11477 ENDMETHOD .
11578
11679
117- METHOD ui5_display_view .
118- client->_bind_edit( val = prodh_nodes_ex view = client->cs_view-main ).
119- DATA (page ) = z2ui5_cl_xml_view=>factory( )->shell(
80+ METHOD UI5_DISPLAY_VIEW .
81+ DATA (lv_save_state_js ) = `function saveState() {` && | \n| &&
82+ * ` debugger;` && |\n| &&
83+ ` var treeTable = sap.z2ui5.oViewPopup.Fragment.byId("popupId","tree");` && | \n| &&
84+ ` sap.z2ui5.treeState = treeTable.getBinding('items').getCurrentTreeState();` && | \n| &&
85+ ` }; ` .
86+ DATA (lv_reset_state_js ) = `function setState() { ` && | \n| &&
87+ * ` debugger;` && |\n| &&
88+ ` var treeTable = sap.z2ui5.oViewPopup.Fragment.byId("popupId","tree");` && | \n| &&
89+ ` if( sap.z2ui5.treeState == undefined ) {` && | \n| &&
90+ ` sap.z2ui5.treeState = treeTable.getBinding('items').getCurrentTreeState();` && | \n| &&
91+ ` } else {` && | \n| &&
92+ ` treeTable.getBinding("items").setTreeState(sap.z2ui5.treeState);` && | \n| &&
93+ ` treeTable.getBinding("items").refresh();` && | \n| &&
94+ ` };` && | \n| &&
95+ `};` .
96+
97+ DATA (view ) = z2ui5_cl_xml_view=>factory( ).
98+ view->_generic( ns = `html` name = `script` )->_cc_plain_xml( lv_save_state_js ).
99+ view->_generic( ns = `html` name = `script` )->_cc_plain_xml( lv_reset_state_js ).
100+ DATA (page ) = view->shell(
120101 )->page(
121102 title = 'abap2UI5 - Popup Tree select Entry'
122103 navbuttonpress = client->_event( 'BACK' )
@@ -127,7 +108,7 @@ CLASS Z2UI5_CL_DEMO_APP_178 IMPLEMENTATION.
127108 ENDMETHOD .
128109
129110
130- METHOD ui5_initialize .
111+ METHOD UI5_INITIALIZE .
131112 prodh_nodes =
132113 VALUE #( ( text = 'Machines'
133114 prodh = '00100'
@@ -152,22 +133,10 @@ CLASS Z2UI5_CL_DEMO_APP_178 IMPLEMENTATION.
152133 ) )
153134 )
154135 ).
155- prodh_nodes_ex =
156- VALUE #( ( expanded = abap_false
157- nodes = VALUE #(
158- ( expanded = abap_false )
159- )
160- )
161- ( expanded = abap_false
162- nodes = VALUE #(
163- ( expanded = abap_false )
164- )
165- )
166- ).
167136 ENDMETHOD .
168137
169138
170- METHOD z2ui5_if_app ~ main .
139+ METHOD Z2UI5_IF_APP ~ MAIN .
171140
172141 me ->client = client .
173142
@@ -179,41 +148,10 @@ CLASS Z2UI5_CL_DEMO_APP_178 IMPLEMENTATION.
179148
180149 CASE client->get( )-event.
181150
182- WHEN 'TOGGLE_STATE' .
183- DATA (lt_arg ) = client->get( )-t_event_arg.
184- DATA (row ) = lt_arg[ 1 ].
185- DATA (expanded ) = lt_arg[ 2 ].
186-
187- * IF prodh_nodes_ex_tmp IS INITIAL.
188- * prodh_nodes_ex_tmp = prodh_nodes_ex.
189- * ELSE.
190- * prodh_nodes_ex = prodh_nodes_ex_tmp.
191- * ENDIF.
192-
193-
194- SPLIT row AT '/' INTO TABLE DATA (lt_indxs ).
195-
196- IF row CS '/NODES/' .
197- DATA (lv_node ) = lt_indxs[ 4 ].
198- DATA (lv_child_node ) = lt_indxs[ 6 ].
199- ASSIGN prodh_nodes_ex[ lv_node + 1 ]-nodes[ lv_child_node + 1 ]-expanded TO FIELD-SYMBOL (<fss> ).
200- <fss> = expanded.
201- ELSE .
202- lv_node = lt_indxs[ 4 ].
203- ASSIGN prodh_nodes_ex[ lv_node + 1 ]-expanded TO FIELD-SYMBOL (<fss1> ).
204- <fss1> = expanded.
205- ENDIF .
206-
207- * prodh_nodes_ex_tmp = prodh_nodes_ex.
208-
209- * client->popup_model_update( ).
210- client->view_model_update( ).
211-
212151 WHEN 'BACK' .
213152 client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
214153
215154 WHEN 'POPUP_TREE' .
216- CLEAR prodh_nodes_ex_tmp.
217155 ui5_display_popup_tree_select( ).
218156
219157 WHEN 'CONTINUE' .
0 commit comments