Skip to content

Commit 242c67e

Browse files
authored
refactoring (#192)
1 parent d7f0286 commit 242c67e

5 files changed

+55
-201
lines changed

src/z2ui5_cl_demo_app_000.clas.abap

+9-1
Original file line numberDiff line numberDiff line change
@@ -174,13 +174,21 @@ CLASS Z2UI5_CL_DEMO_APP_000 IMPLEMENTATION.
174174
).
175175

176176
panel->generic_tile(
177-
header = 'Timer'
177+
header = 'Timer I'
178178
subheader = 'Wait n MS and call again the server'
179179
press = client->_event( 'Z2UI5_CL_DEMO_APP_028' )
180180
mode = 'LineMode'
181181
class = 'sapUiTinyMarginEnd sapUiTinyMarginBottom'
182182
).
183183

184+
panel->generic_tile(
185+
header = 'Timer II'
186+
subheader = 'Set Loading Indicator while Server Request'
187+
press = client->_event( 'Z2UI5_CL_DEMO_APP_064' )
188+
mode = 'LineMode'
189+
class = 'sapUiTinyMarginEnd sapUiTinyMarginBottom'
190+
).
191+
184192
panel->generic_tile(
185193
header = 'New Tab'
186194
subheader = 'Open an URL in a new tab'

src/z2ui5_cl_demo_app_028.clas.abap

+2-7
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ CLASS z2ui5_cl_demo_app_028 DEFINITION PUBLIC.
1414
checkbox TYPE abap_bool,
1515
END OF ty_row.
1616
DATA t_tab TYPE STANDARD TABLE OF ty_row WITH EMPTY KEY.
17+
1718
DATA mv_counter TYPE i.
18-
* DATA mv_check_repeat TYPE abap_bool.
1919
DATA mv_check_active TYPE abap_bool.
2020

2121
PROTECTED SECTION.
@@ -61,7 +61,6 @@ CLASS z2ui5_cl_demo_app_028 IMPLEMENTATION.
6161
INTO TABLE t_tab.
6262

6363
IF mv_counter = 3.
64-
* mv_check_repeat = abap_false.
6564
mv_check_active = abap_false.
6665
client->message_toast_display( `timer deactivated` ).
6766
ENDIF.
@@ -79,7 +78,6 @@ CLASS z2ui5_cl_demo_app_028 IMPLEMENTATION.
7978
METHOD z2ui5_on_init.
8079

8180
mv_counter = 1.
82-
* mv_check_repeat = abap_true.
8381
mv_check_active = abap_true.
8482

8583
t_tab = VALUE #(
@@ -95,9 +93,7 @@ CLASS z2ui5_cl_demo_app_028 IMPLEMENTATION.
9593
lo_view->_z2ui5( )->timer(
9694
finished = client->_event( 'TIMER_FINISHED' )
9795
delayms = `2000`
98-
* checkrepeat = client->_bind( mv_check_repeat )
99-
checkactive = client->_bind( mv_check_active )
100-
).
96+
checkactive = client->_bind( mv_check_active ) ).
10197

10298
DATA(page) = lo_view->shell( )->page(
10399
title = 'abap2UI5 - CL_GUI_TIMER - Monitor'
@@ -107,7 +103,6 @@ CLASS z2ui5_cl_demo_app_028 IMPLEMENTATION.
107103
)->link( text = 'Demo' target = '_blank' href = `https://twitter.com/abap2UI5/status/1645816100813152256`
108104
)->link(
109105
text = 'Source_Code' target = '_blank'
110-
111106
)->get_parent( ).
112107

113108
page->list(

src/z2ui5_cl_demo_app_064.clas.abap

+33-181
Original file line numberDiff line numberDiff line change
@@ -30,21 +30,23 @@ CREATE PUBLIC .
3030
DATA mv_search_value TYPE string .
3131
DATA mt_table TYPE ty_t_table .
3232
DATA lv_selkz TYPE abap_bool .
33-
33+
DATA mv_check_active TYPE abap_bool.
3434
DATA:
3535
BEGIN OF screen,
3636
progress_value TYPE string VALUE '0',
3737
display_value TYPE string VALUE '',
3838
END OF screen.
39+
40+
DATA mv_percent TYPE i.
41+
DATA mv_check_enabled TYPE abap_bool.
3942
PROTECTED SECTION.
4043

4144
DATA client TYPE REF TO z2ui5_if_client.
4245
DATA check_initialized TYPE abap_bool.
4346

47+
4448
METHODS z2ui5_on_init.
4549
METHODS z2ui5_on_event.
46-
METHODS z2ui5_set_search.
47-
METHODS z2ui5_set_data.
4850
PRIVATE SECTION.
4951

5052
METHODS set_selkz
@@ -86,46 +88,24 @@ CLASS z2ui5_cl_demo_app_064 IMPLEMENTATION.
8688
DATA ls_arg TYPE string.
8789

8890
CASE client->get( )-event.
89-
WHEN 'BUTTON_SEARCH' OR 'BUTTON_START'.
90-
client->message_toast_display( 'Search Entries' ).
91-
z2ui5_set_data( ).
92-
z2ui5_set_search( ).
93-
client->view_model_update( ).
94-
WHEN 'SORT'.
95-
96-
lt_arg = client->get( )-t_event_arg.
97-
client->message_toast_display( 'Event SORT' ).
98-
WHEN 'FILTER'.
99-
lt_arg = client->get( )-t_event_arg.
100-
client->message_toast_display( 'Event FILTER' ).
101-
WHEN 'SELKZ'.
102-
client->message_toast_display( |'Event SELKZ' { lv_selkz } | ).
103-
set_selkz( lv_selkz ).
104-
client->view_model_update( ).
105-
WHEN 'CUSTOMFILTER'.
106-
lt_arg = client->get( )-t_event_arg.
107-
client->message_toast_display( 'Event CUSTOMFILTER' ).
10891
WHEN 'BACK'.
10992
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
110-
WHEN 'ROWEDIT'.
111-
lt_arg = client->get( )-t_event_arg.
11293

113-
READ TABLE lt_arg INTO ls_arg INDEX 1.
114-
IF sy-subrc = 0.
115-
client->message_toast_display( |Event ROWEDIT Row Index { ls_arg } | ).
116-
ENDIF.
117-
WHEN 'ROW_ACTION_ITEM_NAVIGATION'.
118-
lt_arg = client->get( )-t_event_arg.
119-
READ TABLE lt_arg INTO ls_arg INDEX 1.
120-
IF sy-subrc = 0.
121-
client->message_toast_display( |Event ROW_ACTION_ITEM_NAVIGATION Row Index { ls_arg } | ).
122-
ENDIF.
123-
WHEN 'ROW_ACTION_ITEM_EDIT'.
124-
lt_arg = client->get( )-t_event_arg.
125-
READ TABLE lt_arg INTO ls_arg INDEX 1.
126-
IF sy-subrc = 0.
127-
client->message_toast_display( |Event ROW_ACTION_ITEM_EDIT Row Index { ls_arg } | ).
94+
WHEN `LOAD`.
95+
96+
mv_percent = mv_percent + 25.
97+
mv_check_active = abap_true.
98+
mv_check_enabled = abap_false.
99+
IF mv_percent > 100.
100+
mv_percent = 0.
101+
mv_check_active = abap_false.
102+
mv_check_enabled = abap_true.
128103
ENDIF.
104+
105+
client->message_toast_display( `loaded` ).
106+
WAIT UP TO 2 SECONDS.
107+
client->view_model_update( ).
108+
129109
ENDCASE.
130110

131111
ENDMETHOD.
@@ -134,169 +114,41 @@ CLASS z2ui5_cl_demo_app_064 IMPLEMENTATION.
134114
METHOD z2ui5_on_init.
135115

136116
DATA temp1 TYPE z2ui5_if_types=>ty_t_name_value.
137-
DATA temp2 LIKE LINE OF temp1.
138117
DATA view TYPE REF TO z2ui5_cl_xml_view.
139118
DATA page1 TYPE REF TO z2ui5_cl_xml_view.
140119
DATA temp5 TYPE xsdboolean.
141-
DATA page TYPE REF TO z2ui5_cl_xml_view.
142-
DATA header_title TYPE REF TO z2ui5_cl_xml_view.
143-
DATA lo_box TYPE REF TO z2ui5_cl_xml_view.
144-
DATA cont TYPE REF TO z2ui5_cl_xml_view.
145-
DATA tab TYPE REF TO z2ui5_cl_xml_view.
146-
DATA lo_columns TYPE REF TO z2ui5_cl_xml_view.
147-
DATA temp3 TYPE string_table.
148-
DATA temp4 TYPE string_table.
149120
CLEAR temp1.
150121

122+
mv_check_enabled = abap_true.
151123
view = z2ui5_cl_xml_view=>factory( ).
152124

125+
view->_z2ui5( )->timer(
126+
finished = client->_event( 'LOAD' )
127+
checkactive = client->_bind( mv_check_active )
128+
).
129+
153130
temp5 = xsdbool( client->get( )-s_draft-id_prev_app_stack IS NOT INITIAL ).
154-
page1 = view->page( id = 'page_main'
155-
title = 'abap2UI5 - sap.ui.table.Table Features'
131+
page1 = view->shell( )->page( id = 'page_main'
132+
title = 'abap2UI5 - Progress Bar while Server Request'
156133
navbuttonpress = client->_event( 'BACK' )
157134
shownavbutton = temp5
158135
class = 'sapUiContentPadding' ).
159136

160-
page1->header_content(
161-
)->link(
162-
text = 'Source_Code' target = '_blank'
163-
).
164-
165-
*/
166137
DATA layout TYPE REF TO z2ui5_cl_xml_view.
167138
layout = page1->vertical_layout( class = 'sapuicontentpadding' width = '100%' ).
168139
layout->vbox( )->progress_indicator(
169-
percentvalue = client->_bind_edit( screen-progress_value )
140+
percentvalue = client->_bind_edit( mv_percent )
170141
displayvalue = client->_bind_edit( screen-display_value )
171142
showvalue = abap_true
143+
state = 'Success' ).
172144

173-
state = 'Success'
174-
).
175-
*/
176-
page = page1->dynamic_page( headerexpanded = abap_true headerpinned = abap_true ).
177-
178-
header_title = page->title( ns = 'f' )->get( )->dynamic_page_title( ).
179-
header_title->heading( ns = 'f' )->hbox( )->title( `Search Field` ).
180-
header_title->expanded_content( 'f' ).
181-
header_title->snapped_content( ns = 'f' ).
182-
183-
184-
lo_box = page->header( )->dynamic_page_header( pinnable = abap_true
185-
)->flex_box( alignitems = `Start` justifycontent = `SpaceBetween` )->flex_box( alignitems = `Start` ).
186-
187-
lo_box->vbox( )->text( `Search` )->search_field(
188-
value = client->_bind_edit( mv_search_value )
189-
search = client->_event( 'BUTTON_SEARCH' )
190-
change = client->_event( 'BUTTON_SEARCH' )
191-
livechange = client->_event( 'BUTTON_SEARCH' )
192-
width = `17.5rem`
193-
id = `SEARCH` ).
194-
lo_box->get_parent( )->hbox( justifycontent = 'end' )->button(
195-
text = 'go'
196-
press = client->_event( 'button_start' )
197-
type = 'emphasized' ).
198-
199-
cont = page->content( ns = 'f' ).
200-
201-
tab = cont->ui_table( rows = client->_bind( val = mt_table )
202-
editable = abap_false
203-
alternaterowcolors = abap_true
204-
rowactioncount = '2'
205-
enablegrouping = abap_false
206-
fixedcolumncount = '1'
207-
selectionmode = 'None'
208-
sort = client->_event( 'SORT' )
209-
filter = client->_event( 'FILTER' )
210-
customfilter = client->_event( 'CUSTOMFILTER' ) ).
211-
tab->ui_extension( )->overflow_toolbar( )->title( text = 'Products' ).
212-
213-
lo_columns = tab->ui_columns( ).
214-
lo_columns->ui_column( width = '4rem' )->checkbox( selected = client->_bind_edit( lv_selkz ) enabled = abap_true select = client->_event( val = 'SELKZ' ) )->ui_template( )->checkbox( selected = '{SELKZ}' ).
215-
lo_columns->ui_column( width = '5rem' sortproperty = 'ROW_ID'
216-
filterproperty = 'ROW_ID' )->text( text = 'index' )->ui_template( )->text( text = '{row_id}' ).
217-
lo_columns->ui_column( width = '11rem' sortproperty = 'CARRID' filterproperty = 'CARRID' )->text( text = 'carrid' )->ui_template( )->text( text = `{carrid}` ).
218-
lo_columns->ui_column( width = '11rem' sortproperty = 'CONNID' filterproperty = 'CONNID')->text( text = 'connid' )->ui_template( )->text( text = `{connid}` ).
219-
lo_columns->ui_column( width = '11rem' sortproperty = 'FLDATE' filterproperty = 'FLDATE' )->text( text = 'fldate' )->ui_template( )->text( text = `{fldate}`).
220-
lo_columns->ui_column( width = '11rem' sortproperty = 'PLANETYPE' filterproperty = 'PLANETYPE' )->text( text = 'planetype' )->ui_template( )->text( text = `{planetype}` ).
221-
222-
CLEAR temp3.
223-
INSERT `${row_id}` INTO TABLE temp3.
224-
225-
CLEAR temp4.
226-
INSERT `${row_id}` INTO TABLE temp4.
227-
lo_columns->get_parent( )->ui_row_action_template( )->ui_row_action(
228-
)->ui_row_action_item( type = 'Navigation'
229-
press = client->_event( val = 'ROW_ACTION_ITEM_NAVIGATION' t_arg = temp3 )
230-
)->get_parent( )->ui_row_action_item( icon = 'sap-icon://edit' text = 'Edit' press = client->_event( val = 'ROW_ACTION_ITEM_EDIT' t_arg = temp4 ) ).
231-
232-
lo_columns->ui_column( width = '4rem' )->text( )->ui_template( )->overflow_toolbar( )->overflow_toolbar_button(
233-
234-
icon = 'sap-icon://edit' type = 'Transparent' press = client->_event(
235-
236-
val = `rowedit` t_arg = VALUE #( ( `${row_id}` ) ) ) ).
145+
layout->button(
146+
text = `Load`
147+
press = client->_event( 'LOAD' )
148+
enabled = client->_bind( mv_check_enabled ) ).
237149

238150
client->view_display( view->stringify( ) ).
239-
ENDMETHOD.
240151

241-
METHOD z2ui5_set_data.
242-
243-
* DATA temp5 TYPE ty_t_table.
244-
* DATA temp6 LIKE LINE OF temp5.
245-
* CLEAR temp5.
246-
*
247-
**/ fetch 1
248-
* SELECT * UP TO 10 ROWS APPENDING CORRESPONDING FIELDS OF TABLE temp5 FROM sflight.
249-
* screen-progress_value = 25.
250-
* screen-display_value = 'fetch 1'.
251-
* WAIT UP TO 2 SECONDS.
252-
**/ fetch 2
253-
* SELECT * UP TO 10 ROWS APPENDING CORRESPONDING FIELDS OF TABLE temp5 FROM sflight.
254-
* screen-progress_value = 50.
255-
* screen-display_value = 'fetch 2'.
256-
* WAIT UP TO 2 SECONDS.
257-
**/ fetch 3
258-
* SELECT * UP TO 10 ROWS APPENDING CORRESPONDING FIELDS OF TABLE temp5 FROM sflight.
259-
* screen-progress_value = 75.
260-
* screen-display_value = 'fetch 3'.
261-
* WAIT UP TO 2 SECONDS.
262-
**/ fetch 4
263-
* SELECT * UP TO 10 ROWS APPENDING CORRESPONDING FIELDS OF TABLE temp5 FROM sflight.
264-
* screen-progress_value = 100.
265-
* screen-display_value = 'fetch 4'.
266-
* WAIT UP TO 2 SECONDS.
267-
*
268-
* mt_table = temp5.
269152
ENDMETHOD.
270153

271-
METHOD z2ui5_set_search.
272-
DATA temp7 LIKE LINE OF mt_table.
273-
DATA lr_row LIKE REF TO temp7.
274-
DATA lv_row TYPE string.
275-
DATA lv_index TYPE i.
276-
FIELD-SYMBOLS <field> TYPE any.
277-
278-
IF mv_search_value IS NOT INITIAL.
279-
280-
LOOP AT mt_table REFERENCE INTO lr_row.
281-
282-
lv_row = ``.
283-
284-
lv_index = 1.
285-
DO.
286-
287-
ASSIGN COMPONENT lv_index OF STRUCTURE lr_row->* TO <field>.
288-
IF sy-subrc <> 0.
289-
EXIT.
290-
ENDIF.
291-
lv_row = lv_row && <field>.
292-
lv_index = lv_index + 1.
293-
ENDDO.
294-
295-
IF lv_row NS mv_search_value.
296-
DELETE mt_table.
297-
ENDIF.
298-
ENDLOOP.
299-
ENDIF.
300-
301-
ENDMETHOD.
302154
ENDCLASS.

src/z2ui5_cl_demo_app_197.clas.abap

-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ CLASS z2ui5_cl_demo_app_197 DEFINITION
44

55
PUBLIC SECTION.
66

7-
INTERFACES if_serializable_object .
87
INTERFACES z2ui5_if_app .
98

109
TYPES:

src/z2ui5_cl_demo_app_198.clas.abap

+11-11
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
1-
class Z2UI5_CL_DEMO_APP_198 definition
2-
public
3-
create public .
1+
CLASS z2ui5_cl_demo_app_198 DEFINITION
2+
PUBLIC
3+
CREATE PUBLIC .
44

5-
public section.
5+
PUBLIC SECTION.
66

7-
interfaces IF_SERIALIZABLE_OBJECT .
8-
interfaces Z2UI5_IF_APP .
7+
INTERFACES z2ui5_if_app .
8+
9+
DATA product TYPE string .
10+
DATA quantity TYPE string .
11+
DATA check_initialized TYPE abap_bool.
912

10-
data PRODUCT type STRING .
11-
data QUANTITY type STRING .
12-
data CHECK_INITIALIZED type ABAP_BOOL .
1313
PROTECTED SECTION.
1414
PRIVATE SECTION.
1515
ENDCLASS.
1616

1717

1818

19-
CLASS Z2UI5_CL_DEMO_APP_198 IMPLEMENTATION.
19+
CLASS z2ui5_cl_demo_app_198 IMPLEMENTATION.
2020

2121

22-
METHOD Z2UI5_IF_APP~MAIN.
22+
METHOD z2ui5_if_app~main.
2323

2424
IF check_initialized = abap_false.
2525
check_initialized = abap_true.

0 commit comments

Comments
 (0)