Skip to content

Commit e52e061

Browse files
authored
tree sample (#460)
1 parent f50ff1b commit e52e061

6 files changed

+429
-6
lines changed

src/z2ui5_cl_demo_app_000.clas.abap

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1065,6 +1065,13 @@ CLASS z2ui5_cl_demo_app_000 IMPLEMENTATION.
10651065
class = 'sapUiTinyMarginEnd sapUiTinyMarginBottom'
10661066
).
10671067

1068+
panel->generic_tile( header = 'Tree Table IV'
1069+
subheader = 'Drag & Drop'
1070+
press = client->_event( 'z2ui5_cl_demo_app_116' )
1071+
mode = 'LineMode'
1072+
class = 'sapUiTinyMarginEnd sapUiTinyMarginBottom'
1073+
).
1074+
10681075
page = page2->panel( expandable = abap_true
10691076
expanded = client->_bind_edit( ms_check_expanded-popups )
10701077
headertext = `Popups & Popovers` ).

src/z2ui5_cl_demo_app_035.clas.abap

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,13 @@ CLASS z2ui5_cl_demo_app_035 DEFINITION PUBLIC.
1010
DATA check_initialized TYPE abap_bool.
1111

1212
DATA client TYPE REF TO z2ui5_if_client.
13-
13+
DATA: lt_types TYPE z2ui5_if_types=>ty_t_name_value.
1414
METHODS view_display.
1515

1616
PROTECTED SECTION.
1717

1818
PRIVATE SECTION.
19+
1920
ENDCLASS.
2021

2122

@@ -34,13 +35,13 @@ CLASS z2ui5_cl_demo_app_035 IMPLEMENTATION.
3435
)->input( client->_bind_edit( mv_path )
3536
)->label( 'Option' ).
3637

37-
DATA(lt_types) = VALUE z2ui5_if_types=>ty_t_name_value( ).
38-
lt_types = VALUE #( FOR row IN z2ui5_cl_util=>source_get_file_types( ) (
38+
lt_types = VALUE z2ui5_if_types=>ty_t_name_value( ).
39+
LT_TYPES = VALUE #( FOR row IN z2ui5_cl_util=>source_get_file_types( ) (
3940
n = shift_right( shift_left( row ) )
4041
v = shift_right( shift_left( row ) ) ) ).
4142

4243
DATA(temp3) = temp->input( value = client->_bind_edit( mv_type )
43-
suggestionitems = client->_bind_local( lt_types )
44+
suggestionitems = client->_bind_local( LT_TYPES )
4445
)->get( ).
4546

4647
temp3->suggestion_items(
@@ -51,8 +52,8 @@ CLASS z2ui5_cl_demo_app_035 IMPLEMENTATION.
5152
press = client->_event( 'DB_LOAD' )
5253
icon = 'sap-icon://download-from-cloud' ).
5354

54-
page->code_editor( type = mv_type
55-
editable = mv_check_editable
55+
page->code_editor( type = client->_bind_edit( mv_type )
56+
editable = client->_bind( mv_check_editable )
5657
value = client->_bind( mv_editor ) ).
5758

5859
page->footer( )->overflow_toolbar(
@@ -102,6 +103,8 @@ CLASS z2ui5_cl_demo_app_035 IMPLEMENTATION.
102103
type = 'success' ).
103104
WHEN 'EDIT'.
104105
mv_check_editable = xsdbool( mv_check_editable = abap_false ).
106+
client->view_model_update( ).
107+
105108
WHEN 'CLEAR'.
106109
mv_editor = ``.
107110
WHEN 'BACK'.

src/z2ui5_cl_demo_app_317.clas.abap

Lines changed: 165 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,165 @@
1+
CLASS z2ui5_cl_demo_app_317 DEFINITION
2+
PUBLIC
3+
FINAL
4+
CREATE PUBLIC.
5+
6+
PUBLIC SECTION.
7+
INTERFACES z2ui5_if_app.
8+
9+
TYPES:
10+
BEGIN OF ty_node4,
11+
id TYPE string,
12+
text TYPE string,
13+
* nodes TYPE STANDARD TABLE OF ty_node5 WITH DEFAULT KEY,
14+
END OF ty_node4,
15+
BEGIN OF ty_node3,
16+
id TYPE string,
17+
text TYPE string,
18+
nodes TYPE STANDARD TABLE OF ty_node4 WITH DEFAULT KEY,
19+
END OF ty_node3,
20+
BEGIN OF ty_node2,
21+
id TYPE string,
22+
text TYPE string,
23+
nodes TYPE STANDARD TABLE OF ty_node3 WITH DEFAULT KEY,
24+
END OF ty_node2,
25+
BEGIN OF ty_node1,
26+
id TYPE string,
27+
text TYPE string,
28+
nodes TYPE STANDARD TABLE OF ty_node2 WITH DEFAULT KEY,
29+
END OF ty_node1,
30+
ty_tree TYPE STANDARD TABLE OF ty_node1 WITH DEFAULT KEY.
31+
DATA mt_tree TYPE ty_tree.
32+
33+
TYPES:
34+
BEGIN OF ty_S_node,
35+
id TYPE string,
36+
id_parent TYPE string,
37+
text TYPE string,
38+
END OF ty_S_node.
39+
DATA mt_node TYPE STANDARD TABLE OF ty_S_node WITH EMPTY KEY.
40+
41+
PROTECTED SECTION.
42+
METHODS build_tree.
43+
METHODS display_view
44+
IMPORTING
45+
client TYPE REF TO z2ui5_if_client.
46+
47+
ENDCLASS.
48+
49+
CLASS z2ui5_cl_demo_app_317 IMPLEMENTATION.
50+
51+
METHOD z2ui5_if_app~main.
52+
53+
IF client->check_on_init( ).
54+
55+
mt_node = VALUE #(
56+
( id = '01' id_parent = '' text = 'Machines' )
57+
( id = '03' id_parent = '01' text = 'Pumps' )
58+
( id = '04' id_parent = '03' text = 'Pump 001' )
59+
( id = '05' id_parent = '03' text = 'Pump 002' )
60+
( id = '02' id_parent = '' text = 'Paints' )
61+
( id = '06' id_parent = '02' text = 'Gloss paints' )
62+
( id = '07' id_parent = '06' text = 'Paint 001' )
63+
( id = '08' id_parent = '06' text = 'Paint 002' ) ).
64+
65+
build_tree( ).
66+
display_view( client ).
67+
68+
ENDIF.
69+
70+
CASE client->get( )-event.
71+
72+
WHEN 'expand'.
73+
client->follow_up_action( `debugger; z2ui5.oView.byId( 'tree' ).expandToLevel(10);`).
74+
75+
WHEN 'onDrop'.
76+
mt_node[ id = client->get_event_arg( 1 ) ]-id_parent = client->get_event_arg( 2 ).
77+
build_tree( ).
78+
display_view( client ).
79+
ENDCASE.
80+
81+
82+
ENDMETHOD.
83+
84+
METHOD build_tree.
85+
86+
CLEAR mt_tree.
87+
LOOP AT mt_node INTO DATA(ls_node) WHERE id_parent IS INITIAL.
88+
89+
DATA(ls_root) = CORRESPONDING ty_node1( ls_node ).
90+
INSERT ls_root INTO TABLE mt_tree.
91+
92+
ENDLOOP.
93+
94+
95+
LOOP AT mt_tree REFERENCE INTO DATA(lr_node).
96+
97+
LOOP AT mt_node INTO ls_node WHERE id_parent = lr_node->id.
98+
DATA(ls_root2) = CORRESPONDING ty_node2( ls_node ).
99+
INSERT ls_root2 INTO TABLE lr_node->nodes.
100+
ENDLOOP.
101+
102+
ENDLOOP.
103+
104+
105+
LOOP AT mt_tree REFERENCE INTO lr_node.
106+
LOOP AT lr_node->nodes REFERENCE INTO DATA(lr_node2).
107+
108+
LOOP AT mt_node INTO ls_node WHERE id_parent = lr_node2->id.
109+
DATA(ls_root3) = CORRESPONDING ty_node3( ls_node ).
110+
INSERT ls_root3 INTO TABLE lr_node2->nodes.
111+
ENDLOOP.
112+
113+
ENDLOOP.
114+
ENDLOOP.
115+
116+
117+
LOOP AT mt_tree REFERENCE INTO lr_node.
118+
LOOP AT lr_node->nodes REFERENCE INTO lr_node2.
119+
LOOP AT lr_node2->nodes REFERENCE INTO DATA(lr_node3).
120+
121+
LOOP AT mt_node INTO ls_node WHERE id_parent = lr_node3->id.
122+
DATA(ls_root4) = CORRESPONDING ty_node4( ls_node ).
123+
INSERT ls_root4 INTO TABLE lr_node3->nodes.
124+
ENDLOOP.
125+
126+
ENDLOOP.
127+
ENDLOOP.
128+
ENDLOOP.
129+
130+
ENDMETHOD.
131+
132+
133+
METHOD display_view.
134+
135+
DATA(page) = z2ui5_cl_xml_view=>factory( )->page( ).
136+
137+
page->_generic( name = `script` ns = `html`
138+
)->_cc_plain_xml(
139+
|function myFunction() \{ z2ui5.oView.byId('tree').expandToLevel(5); \}|
140+
).
141+
142+
DATA(tree) = page->tree( items = client->_bind( mt_tree ) id = `tree` ).
143+
tree->items(
144+
)->standard_tree_item( title = '{TEXT}'
145+
)->get(
146+
)->custom_data(
147+
)->core_custom_data( key = 'ID' value = '{ID}').
148+
149+
tree->drag_drop_config( ns = `` )->Drag_Drop_Info(
150+
sourceAggregation = `items`
151+
targetAggregation = `items`
152+
dragStart = `Horizontal`
153+
drop = client->_event(
154+
val = 'onDrop'
155+
t_arg = VALUE #(
156+
( `${$parameters>/draggedControl/mAggregations/customData/0/mProperties/value}` )
157+
( `${$parameters>/droppedControl/mAggregations/customData/0/mProperties/value}` )
158+
) ) ).
159+
160+
client->follow_up_action( `myFunction()` ).
161+
client->view_display( page->stringify( ) ).
162+
163+
ENDMETHOD.
164+
165+
ENDCLASS.

src/z2ui5_cl_demo_app_317.clas.xml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
3+
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
4+
<asx:values>
5+
<VSEOCLASS>
6+
<CLSNAME>Z2UI5_CL_DEMO_APP_317</CLSNAME>
7+
<LANGU>E</LANGU>
8+
<DESCRIPT>tab -different odata models</DESCRIPT>
9+
<STATE>1</STATE>
10+
<CLSCCINCL>X</CLSCCINCL>
11+
<FIXPT>X</FIXPT>
12+
<UNICODE>X</UNICODE>
13+
</VSEOCLASS>
14+
</asx:values>
15+
</asx:abap>
16+
</abapGit>

0 commit comments

Comments
 (0)