mirror of
https://github.com/abap2UI5/abap2UI5.git
synced 2025-04-29 23:06:30 +08:00
custom control handling (#669)
This commit is contained in:
parent
774bcde019
commit
abb818141d
|
@ -5,18 +5,20 @@ CLASS z2ui5_cl_cc_focus DEFINITION
|
|||
|
||||
PUBLIC SECTION.
|
||||
|
||||
INTERFACES z2ui5_if_cc.
|
||||
|
||||
METHODS constructor
|
||||
IMPORTING
|
||||
view TYPE REF TO z2ui5_cl_xml_view.
|
||||
view TYPE REF TO z2ui5_cl_xml_view optional.
|
||||
|
||||
METHODS control
|
||||
IMPORTING
|
||||
focusId TYPE clike OPTIONAL
|
||||
selectionStart TYPE clike OPTIONAL
|
||||
selectionEnd TYPE clike OPTIONAL
|
||||
setUpdate TYPE clike OPTIONAL
|
||||
focusid TYPE clike OPTIONAL
|
||||
selectionstart TYPE clike OPTIONAL
|
||||
selectionend TYPE clike OPTIONAL
|
||||
setupdate TYPE clike OPTIONAL
|
||||
RETURNING
|
||||
VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
|
||||
VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
|
||||
|
||||
METHODS load_cc
|
||||
RETURNING
|
||||
|
@ -34,7 +36,8 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS z2ui5_cl_cc_focus IMPLEMENTATION.
|
||||
CLASS Z2UI5_CL_CC_FOCUS IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD constructor.
|
||||
|
||||
|
@ -42,25 +45,21 @@ CLASS z2ui5_cl_cc_focus IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD control.
|
||||
|
||||
result = mo_view.
|
||||
mo_view->_generic( name = `Focus`
|
||||
ns = `z2ui5`
|
||||
t_prop = VALUE #(
|
||||
( n = `setUpdate` v = setUpdate )
|
||||
( n = `selectionStart` v = selectionStart )
|
||||
( n = `selectionEnd` v = selectionEnd )
|
||||
( n = `focusId` v = focusId )
|
||||
( n = `setUpdate` v = setupdate )
|
||||
( n = `selectionStart` v = selectionstart )
|
||||
( n = `selectionEnd` v = selectionend )
|
||||
( n = `focusId` v = focusid )
|
||||
) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD load_cc.
|
||||
|
||||
result = mo_view->_generic( ns = `html` name = `script` )->_cc_plain_xml( get_js( ) )->get_parent( ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_js.
|
||||
|
||||
|
@ -104,4 +103,15 @@ CLASS z2ui5_cl_cc_focus IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD load_cc.
|
||||
|
||||
result = mo_view->_generic( ns = `html` name = `script` )->_cc_plain_xml( get_js( ) )->get_parent( ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_cc~get_js.
|
||||
result = get_js( ).
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
|
|
@ -4,17 +4,18 @@ CLASS z2ui5_cl_cc_timer DEFINITION
|
|||
CREATE PUBLIC .
|
||||
|
||||
PUBLIC SECTION.
|
||||
INTERFACES z2ui5_if_cc.
|
||||
|
||||
METHODS constructor
|
||||
IMPORTING
|
||||
view TYPE REF TO z2ui5_cl_xml_view.
|
||||
view TYPE REF TO z2ui5_cl_xml_view optional.
|
||||
|
||||
METHODS control
|
||||
IMPORTING
|
||||
finished TYPE clike OPTIONAL
|
||||
delayms TYPE clike OPTIONAL
|
||||
checkrepeat TYPE clike OPTIONAL
|
||||
PREFERRED PARAMETER finished
|
||||
PREFERRED PARAMETER finished
|
||||
RETURNING
|
||||
VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
|
||||
|
||||
|
@ -22,7 +23,7 @@ CLASS z2ui5_cl_cc_timer DEFINITION
|
|||
RETURNING
|
||||
VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
|
||||
|
||||
class-METHODS get_js
|
||||
CLASS-METHODS get_js
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
|
@ -104,4 +105,8 @@ CLASS z2ui5_cl_cc_timer IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD z2ui5_if_cc~get_js.
|
||||
get_js( ).
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -5,9 +5,11 @@ CLASS z2ui5_cl_cc_title DEFINITION
|
|||
|
||||
PUBLIC SECTION.
|
||||
|
||||
INTERFACES z2ui5_if_cc.
|
||||
|
||||
METHODS constructor
|
||||
IMPORTING
|
||||
view TYPE REF TO z2ui5_cl_xml_view.
|
||||
view TYPE REF TO z2ui5_cl_xml_view optional.
|
||||
|
||||
METHODS control
|
||||
IMPORTING
|
||||
|
@ -31,7 +33,8 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS z2ui5_cl_cc_title IMPLEMENTATION.
|
||||
CLASS Z2UI5_CL_CC_TITLE IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD constructor.
|
||||
|
||||
|
@ -39,6 +42,7 @@ CLASS z2ui5_cl_cc_title IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD control.
|
||||
|
||||
result = mo_view.
|
||||
|
@ -48,11 +52,6 @@ CLASS z2ui5_cl_cc_title IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD load_cc.
|
||||
|
||||
result = mo_view->_generic( ns = `html` name = `script` )->_cc_plain_xml( get_js( ) )->get_parent( ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_js.
|
||||
|
||||
|
@ -88,4 +87,15 @@ CLASS z2ui5_cl_cc_title IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD load_cc.
|
||||
|
||||
result = mo_view->_generic( ns = `html` name = `script` )->_cc_plain_xml( get_js( ) )->get_parent( ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_cc~get_js.
|
||||
result = get_js( ).
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
|
10
src/03/z2ui5_if_cc.intf.abap
Normal file
10
src/03/z2ui5_if_cc.intf.abap
Normal file
|
@ -0,0 +1,10 @@
|
|||
INTERFACE z2ui5_if_cc
|
||||
PUBLIC .
|
||||
|
||||
TYPES ty_t_cc TYPE STANDARD TABLE OF REF TO z2ui5_if_cc WITH DEFAULT KEY.
|
||||
|
||||
METHODS get_js
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
ENDINTERFACE.
|
15
src/03/z2ui5_if_cc.intf.xml
Normal file
15
src/03/z2ui5_if_cc.intf.xml
Normal file
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_INTF" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<VSEOINTERF>
|
||||
<CLSNAME>Z2UI5_IF_CC</CLSNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>Custom Control</DESCRIPT>
|
||||
<EXPOSURE>2</EXPOSURE>
|
||||
<STATE>1</STATE>
|
||||
<UNICODE>X</UNICODE>
|
||||
</VSEOINTERF>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
|
@ -17,6 +17,7 @@ CLASS z2ui5_cl_fw_http_handler DEFINITION
|
|||
check_logging TYPE abap_bool OPTIONAL
|
||||
custom_js TYPE string OPTIONAL
|
||||
custom_js_oneventfrontend TYPE string OPTIONAL
|
||||
t_load_cc TYPE z2ui5_if_cc=>ty_t_cc OPTIONAL
|
||||
PREFERRED PARAMETER t_config
|
||||
RETURNING
|
||||
VALUE(r_result) TYPE string.
|
||||
|
@ -29,13 +30,12 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS Z2UI5_CL_FW_HTTP_HANDLER IMPLEMENTATION.
|
||||
CLASS z2ui5_cl_fw_http_handler IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD http_get.
|
||||
|
||||
DATA(lt_config) = t_config.
|
||||
|
||||
IF lt_config IS INITIAL.
|
||||
lt_config = VALUE #(
|
||||
( n = `data-sap-ui-theme` v = `sap_horizon` )
|
||||
|
@ -46,6 +46,18 @@ CLASS Z2UI5_CL_FW_HTTP_HANDLER IMPLEMENTATION.
|
|||
( n = `data-sap-ui-compatVersion` v = `edge` ) ).
|
||||
ENDIF.
|
||||
|
||||
DATA(lt_load_cc) = t_load_cc.
|
||||
IF t_load_cc IS INITIAL.
|
||||
INSERT NEW z2ui5_cl_cc_timer( ) INTO TABLE lt_load_cc.
|
||||
INSERT NEW z2ui5_cl_cc_focus( ) INTO TABLE lt_load_cc.
|
||||
INSERT NEW z2ui5_cl_cc_title( ) INTO TABLE lt_load_cc.
|
||||
ENDIF.
|
||||
DATA(lv_cc) = ``.
|
||||
LOOP AT lt_load_cc INTO DATA(li_cc).
|
||||
lv_cc = lv_cc && li_cc->get_js( ) && |\n|.
|
||||
ENDLOOP.
|
||||
|
||||
|
||||
IF content_security_policy IS NOT SUPPLIED.
|
||||
DATA(lv_sec_policy) = `<meta http-equiv="Content-Security-Policy" content="default-src 'self' 'unsafe-inline' 'unsafe-eval' data: ` &&
|
||||
`ui5.sap.com *.ui5.sap.com sapui5.hana.ondemand.com *.sapui5.hana.ondemand.com sdk.openui5.org *.sdk.openui5.org cdn.jsdelivr.net *.cdn.jsdelivr.net cdnjs.cloudflare.com *.cdnjs.cloudflare.com"/>`.
|
||||
|
@ -552,6 +564,8 @@ CLASS Z2UI5_CL_FW_HTTP_HANDLER IMPLEMENTATION.
|
|||
`sap.z2ui5.Helper.DateAbapDateTimeToDateObject = ((d,t = '000000') => new Date(d.slice(0,4), (d[4]+d[5])-1, d[6]+d[7],t.slice(0,2),t.slice(2,4),t.slice(4,6)));` && |\n| &&
|
||||
custom_js && |\n| &&
|
||||
z2ui5_cl_cc_timer=>get_js( ) && |\n| &&
|
||||
* VALUE string( FOR z2ui5_cl_cc_timer=>get_js( ) && |\n| &&
|
||||
lv_cc && |\n| &&
|
||||
` });` && |\n| &&
|
||||
`</script>` && |\n| &&
|
||||
`<abc/></body></html>`.
|
||||
|
|
Loading…
Reference in New Issue
Block a user