Skip to content

Commit 7c0f9a2

Browse files
authored
update demo 178 (#137)
1 parent 1bb5ce9 commit 7c0f9a2

File tree

1 file changed

+46
-108
lines changed

1 file changed

+46
-108
lines changed

src/z2ui5_cl_demo_app_178.clas.abap

Lines changed: 46 additions & 108 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,40 @@
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.
6349
CLASS 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

Comments
 (0)