-
Notifications
You must be signed in to change notification settings - Fork 12
/
z2ui5_cl_demo_app_137.clas.abap
120 lines (89 loc) · 3.31 KB
/
z2ui5_cl_demo_app_137.clas.abap
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
CLASS z2ui5_cl_demo_app_137 DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES z2ui5_if_app.
TYPES:
BEGIN OF ty_picture,
time TYPE string,
id TYPE string,
name TYPE string,
data TYPE string,
selected type abap_bool,
END OF ty_picture.
DATA mt_picture TYPE STANDARD TABLE OF ty_picture WITH EMPTY KEY.
DATA mt_picture_out TYPE STANDARD TABLE OF ty_picture WITH EMPTY KEY.
DATA mv_pic_display TYPE string.
DATA mv_check_init TYPE abap_bool.
DATA mv_picture_base TYPE string.
PROTECTED SECTION.
METHODS view_display
IMPORTING
client TYPE REF TO z2ui5_if_client.
PRIVATE SECTION.
ENDCLASS.
CLASS Z2UI5_CL_DEMO_APP_137 IMPLEMENTATION.
METHOD view_display.
DATA(view) = z2ui5_cl_xml_view=>factory( ).
DATA(cont) = view->shell( ).
DATA(page) = cont->page( title = 'abap2UI5 - Device Camera Picture'
navbuttonpress = client->_event( 'BACK' )
shownavbutton = xsdbool( client->get( )-s_draft-id_prev_app_stack IS NOT INITIAL )
)->header_content(
)->link( text = 'Source_Code' target = '_blank'
)->get_parent( ).
page->_z2ui5( )->camera_picture(
value = client->_bind_edit( mv_picture_base )
onphoto = client->_event( 'CAPTURE' )
).
page->list(
headertext = 'List Ouput'
items = client->_bind_edit( mt_picture_out )
mode = `SingleSelectMaster`
selectionchange = client->_event( 'DISPLAY' )
)->standard_list_item(
title = '{NAME}'
description = '{NAME}'
icon = '{ICON}'
info = '{INFO}'
selected = `{SELECTED}`
).
IF mv_pic_display IS NOT INITIAL.
page->_generic( ns = 'html' name = 'center'
)->_generic( ns = 'html' name = 'img' t_prop = value #(
( n = 'src' v = mv_pic_display )
) ).
ENDIF.
client->view_display( view->stringify( ) ).
ENDMETHOD.
METHOD z2ui5_if_app~main.
IF mv_check_init = abap_false.
mv_check_init = abap_true.
client->view_display( z2ui5_cl_xml_view=>factory(
)->_generic( ns = `html` name = `script` )->_cc_plain_xml( z2ui5_cl_cc_camera_pic=>get_js( ) )->get_parent(
)->_z2ui5( )->timer( delayms = `200` finished = client->_event( 'START' )
)->stringify( ) ).
ENDIF.
CASE client->get( )-event.
WHEN 'CAPTURE'.
INSERT VALUE #( data = mv_picture_base time = sy-uzeit ) INTO TABLE mt_picture.
CLEAR mv_picture_base.
client->view_model_update( ).
WHEN 'START'.
view_display( client ).
WHEN 'DISPLAY'.
DATA(lt_sel) = mt_picture_out.
DELETE lt_sel WHERE selected = abap_false.
data(ls_sel) = lt_sel[ 1 ].
mv_pic_display = mt_picture[ ls_sel-id ]-data.
view_display( client ).
WHEN 'BACK'.
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
ENDCASE.
mt_picture_out = VALUE #( ).
LOOP AT mt_picture INTO DATA(ls_pic).
INSERT VALUE #( name = `picture ` && sy-tabix id = sy-tabix ) INTO TABLE mt_picture_out.
ENDLOOP.
ENDMETHOD.
ENDCLASS.