-
Notifications
You must be signed in to change notification settings - Fork 12
/
z2ui5_cl_demo_app_142.clas.abap
145 lines (109 loc) · 4.64 KB
/
z2ui5_cl_demo_app_142.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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
CLASS z2ui5_cl_demo_app_142 DEFINITION
PUBLIC
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES z2ui5_if_app .
DATA check_initialized TYPE abap_bool .
DATA mv_value TYPE string .
DATA mv_path TYPE string .
PROTECTED SECTION.
DATA imagemapster TYPE REF TO z2ui5_cl_cc_imagemapster.
DATA ls_map_cfg TYPE imagemapster->ty_c.
METHODS z2ui5_on_rendering
IMPORTING
client TYPE REF TO z2ui5_if_client.
METHODS z2ui5_on_event
IMPORTING
client TYPE REF TO z2ui5_if_client.
METHODS z2ui5_on_init.
PRIVATE SECTION.
ENDCLASS.
CLASS Z2UI5_CL_DEMO_APP_142 IMPLEMENTATION.
METHOD z2ui5_if_app~main.
IF check_initialized = abap_false.
check_initialized = abap_true.
z2ui5_on_init( ).
client->view_display( z2ui5_cl_xml_view=>factory(
)->_z2ui5( )->timer( client->_event( `START` )
)->_generic( ns = `html` name = `script` )->_cc_plain_xml( z2ui5_cl_cc_imagemapster=>get_js_local( )
)->stringify( ) ).
ENDIF.
IF client->get( )-check_on_navigated = abap_true AND check_initialized = abap_false.
z2ui5_on_rendering( client ).
ENDIF.
z2ui5_on_event( client ).
ENDMETHOD.
METHOD z2ui5_on_event.
CASE client->get( )-event.
WHEN 'GO_TO_EDITOR'.
client->nav_app_call( NEW z2ui5_cl_demo_app_145( b64_image = mv_value filename = mv_path ) ).
WHEN 'START'.
z2ui5_on_rendering( client ).
WHEN 'BACK'.
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
WHEN 'TEST'.
client->message_toast_display( `Click on image map` ).
WHEN 'UPLOAD'.
* client->view_model_update( ).
z2ui5_on_rendering( client ).
ENDCASE.
ENDMETHOD.
METHOD z2ui5_on_init.
ls_map_cfg-stroke_color = `ff0000`.
ls_map_cfg-fill_color = `fcffa4`.
ls_map_cfg-fill_opacity = '0.8'.
ls_map_cfg-stroke = abap_true.
ls_map_cfg-stroke_opacity = `0.6`.
ls_map_cfg-stroke_width = `3`.
ls_map_cfg-is_selectable = abap_false.
ENDMETHOD.
METHOD z2ui5_on_rendering.
DATA(view) = z2ui5_cl_xml_view=>factory( ).
DATA(page) = view->shell(
)->page(
showheader = xsdbool( abap_false = client->get( )-check_launchpad_active )
title = 'abap2UI5 - imagemap demo'
navbuttonpress = client->_event( 'BACK' )
enablescrolling = abap_false
shownavbutton = abap_true ).
page->header_content(
)->link( text = 'Demo' target = '_blank' href = `https://twitter.com/abap2UI5/status/1628701535222865922`
)->link( text = 'Source_Code' target = '_blank'
)->button( text = 'Go to Editor' press = client->_event( 'GO_TO_EDITOR' ) enabled = `{= ${/EDIT/MV_VALUE} !== "" }` type = `Emphasized`
)->get_parent( ).
page->vbox(
)->_z2ui5( )->file_uploader(
value = client->_bind_edit( mv_value )
path = client->_bind_edit( mv_path )
checkdirectupload = abap_true
placeholder = 'upload an image'
upload = client->_event( 'UPLOAD' )
)->image( src = `{/XX/MV_VALUE}`
height = `100%`
width = `100%`
usemap = `#map_example`
densityaware = abap_false ).
IF mv_value IS NOT INITIAL.
page->html_map( id = `map_example` name = `map_example`
)->html_area( id = `area_1`
shape = `poly`
coords = `65,210,280,101,576,435,363,564`
* target = `_blank`
href = `#`
* onclick = `sap.z2ui5.oController.onEvent( { 'EVENT' : 'TEST', 'METHOD' : 'UPDATE' , 'CHECK_VIEW_DESTROY' : false })`
onclick = `sap.z2ui5.oController.eB(['TEST'])`
)->get_parent(
)->html_area( id = `area_2`
shape = `poly`
coords = `406,151,473,138,501,193,438,209`
* target = `_blank`
href = `#`
* onclick = `sap.z2ui5.oController.onEvent( { 'EVENT' : 'TEST', 'METHOD' : 'UPDATE' , 'CHECK_VIEW_DESTROY' : false })`
onclick = `sap.z2ui5.oController.eB(['TEST'])`
).
ENDIF.
view->_generic( ns = `html` name = `script` )->_cc_plain_xml( z2ui5_cl_cc_imagemapster=>set_js_config( is_config = ls_map_cfg auto_resize = abap_true ) ).
view->html( content = `<script> onWindowResize(200,200); </script>` ).
client->view_display( page->stringify( ) ).
ENDMETHOD.
ENDCLASS.