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 .
5
5
6
- PUBLIC SECTION .
6
+ public section .
7
7
8
- INTERFACES z2ui5_if_app.
8
+ interfaces IF_SERIALIZABLE_OBJECT .
9
+ interfaces Z2UI5_IF_APP .
9
10
10
- TYPES :
11
- BEGIN OF ty_prodh_node_level3,
11
+ types :
12
+ BEGIN OF ty_prodh_node_level3,
12
13
is_selected TYPE abap_bool ,
13
14
text TYPE string ,
14
15
prodh TYPE string ,
15
16
END OF ty_prodh_node_level3 .
16
- TYPES :
17
- BEGIN OF ty_prodh_node_level2,
17
+ types :
18
+ BEGIN OF ty_prodh_node_level2,
18
19
is_selected TYPE abap_bool ,
19
20
text TYPE string ,
20
21
prodh TYPE string ,
21
- expanded TYPE abap_bool ,
22
22
nodes TYPE STANDARD TABLE OF ty_prodh_node_level3 WITH DEFAULT KEY ,
23
23
END OF ty_prodh_node_level2 .
24
- TYPES :
25
- BEGIN OF ty_prodh_node_level1,
24
+ types :
25
+ BEGIN OF ty_prodh_node_level1,
26
26
is_selected TYPE abap_bool ,
27
27
text TYPE string ,
28
28
prodh TYPE string ,
29
- expanded TYPE abap_bool ,
30
29
nodes TYPE STANDARD TABLE OF ty_prodh_node_level2 WITH DEFAULT KEY ,
31
30
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 .
52
38
PROTECTED SECTION .
53
39
54
40
DATA client TYPE REF TO z2ui5_if_client.
@@ -63,36 +49,15 @@ ENDCLASS.
63
49
CLASS Z2UI5_CL_DEMO_APP_178 IMPLEMENTATION .
64
50
65
51
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
+
81
54
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()` ).
83
56
84
57
dialog->tree(
85
58
id = `tree`
86
59
mode = 'SingleSelectMaster'
87
60
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
- )
96
61
)->items(
97
62
)->standard_tree_item( selected = '{IS_SELECTED}' title = '{TEXT}' ).
98
63
@@ -106,17 +71,33 @@ CLASS Z2UI5_CL_DEMO_APP_178 IMPLEMENTATION.
106
71
type = `Reject`
107
72
press = client->_event( 'CANCEL' ) ).
108
73
109
- * dialog->html( content = `<script>` && lv_js && `</script>` ).
110
- * dialog->_generic( ns = `html` name = `script` )->_cc_plain_xml( lv_js ).
111
74
112
75
client->popup_display( dialog->stringify( ) ).
113
76
114
77
ENDMETHOD .
115
78
116
79
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(
120
101
)->page(
121
102
title = 'abap2UI5 - Popup Tree select Entry'
122
103
navbuttonpress = client->_event( 'BACK' )
@@ -127,7 +108,7 @@ CLASS Z2UI5_CL_DEMO_APP_178 IMPLEMENTATION.
127
108
ENDMETHOD .
128
109
129
110
130
- METHOD ui5_initialize .
111
+ METHOD UI5_INITIALIZE .
131
112
prodh_nodes =
132
113
VALUE #( ( text = 'Machines'
133
114
prodh = '00100'
@@ -152,22 +133,10 @@ CLASS Z2UI5_CL_DEMO_APP_178 IMPLEMENTATION.
152
133
) )
153
134
)
154
135
).
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
- ).
167
136
ENDMETHOD .
168
137
169
138
170
- METHOD z2ui5_if_app ~ main .
139
+ METHOD Z2UI5_IF_APP ~ MAIN .
171
140
172
141
me ->client = client .
173
142
@@ -179,41 +148,10 @@ CLASS Z2UI5_CL_DEMO_APP_178 IMPLEMENTATION.
179
148
180
149
CASE client->get( )-event.
181
150
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
-
212
151
WHEN 'BACK' .
213
152
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
214
153
215
154
WHEN 'POPUP_TREE' .
216
- CLEAR prodh_nodes_ex_tmp.
217
155
ui5_display_popup_tree_select( ).
218
156
219
157
WHEN 'CONTINUE' .
0 commit comments