Skip to content

Commit c43da7c

Browse files
authored
charts demo - bind to model (#162)
1 parent a13729b commit c43da7c

File tree

1 file changed

+53
-1
lines changed

1 file changed

+53
-1
lines changed

src/z2ui5_cl_demo_app_013.clas.abap

Lines changed: 53 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,15 @@ CLASS z2ui5_cl_demo_app_013 DEFINITION PUBLIC.
1111
DATA mv_sel6 TYPE abap_bool.
1212

1313
DATA mv_tab_donut_active TYPE abap_bool.
14+
DATA total_count TYPE i.
15+
16+
TYPES:
17+
BEGIN OF ty_chart,
18+
text TYPE string,
19+
percent TYPE p LENGTH 3 DECIMALS 2,
20+
END OF ty_chart.
21+
22+
DATA counts TYPE STANDARD TABLE OF ty_chart WITH EMPTY KEY.
1423

1524
METHODS render_tab_donut.
1625
DATA client TYPE REF TO z2ui5_if_client.
@@ -21,7 +30,7 @@ ENDCLASS.
2130

2231

2332

24-
CLASS z2ui5_cl_demo_app_013 IMPLEMENTATION.
33+
CLASS Z2UI5_CL_DEMO_APP_013 IMPLEMENTATION.
2534

2635

2736
METHOD render_tab_donut.
@@ -107,6 +116,28 @@ CLASS z2ui5_cl_demo_app_013 IMPLEMENTATION.
107116
seg->interact_donut_chart_segment( label = 'Design Phase' value = '21.5' displayedvalue = '21.5%' ).
108117
seg->interact_donut_chart_segment( label = 'Test Phase' value = '38.5' displayedvalue = '38.5%' ).
109118

119+
grid->text(
120+
text = 'Model Update Table Data'
121+
class = 'sapUiSmallMargin'
122+
)->get( )->layout_data(
123+
)->grid_data( 'XL12 L12 M12 S12' ).
124+
125+
DATA(donut_chart) = grid->button( text = `update chart` press = client->_event( 'UPDATE_CHART_DATA' ) )->get_parent(
126+
)->flex_box(
127+
width = '30rem'
128+
height = '18rem'
129+
alignitems = 'Start'
130+
justifycontent = 'SpaceBetween'
131+
)->items(
132+
)->interact_donut_chart( displayedsegments = client->_bind_edit( total_count ) segments = client->_bind_edit( counts ) ).
133+
134+
135+
donut_chart->interact_donut_chart_segment(
136+
label = `{TEXT}`
137+
value = `{PERCENT}`
138+
displayedvalue = `{PERCENT}`
139+
).
140+
110141
client->view_display( container->stringify( ) ).
111142

112143
ENDMETHOD.
@@ -119,6 +150,15 @@ CLASS z2ui5_cl_demo_app_013 IMPLEMENTATION.
119150
IF check_initialized = abap_false.
120151
check_initialized = abap_true.
121152

153+
154+
counts = VALUE #(
155+
( text = '1st' percent = '10.0' )
156+
( text = '2nd' percent = '60.0' )
157+
( text = '3rd' percent = '30.0' )
158+
).
159+
160+
total_count = lines( counts ).
161+
122162
* DATA(lv_version) = to_upper( client->get( )-s_config-version ).
123163
* IF lv_version CS `OPEN`.
124164
* client->message_box_display( text = `Charts are not avalaible with OpenUI5, change your UI5 library first` type = `error` ).
@@ -129,6 +169,18 @@ CLASS z2ui5_cl_demo_app_013 IMPLEMENTATION.
129169
ENDIF.
130170

131171
CASE client->get( )-event.
172+
WHEN 'UPDATE_CHART_DATA'.
173+
CLEAR counts.
174+
counts = VALUE #(
175+
( text = '1st' percent = '60.0' )
176+
( text = '2nd' percent = '10.0' )
177+
( text = '3rd' percent = '15.0' )
178+
( text = '4th' percent = '15.0' )
179+
).
180+
181+
total_count = lines( counts ).
182+
183+
client->view_model_update( ).
132184

133185
WHEN 'BACK'.
134186
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).

0 commit comments

Comments
 (0)