update chartjs CC + binding logic - add compress (#769)

* update bind logic + chartjs cc

add compress to bind logic in order to get refined json array in chartjs cc.

* update CC

* Update z2ui5_cl_util_func.clas.abap

* Update z2ui5_cl_util_func.clas.abap

---------

Co-authored-by: oblomov <102328295+oblomov-dev@users.noreply.github.com>
This commit is contained in:
choper725 2024-01-11 20:08:23 +02:00 committed by GitHub
parent 5e8d39c2d3
commit 7d5383ee42
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 332 additions and 158 deletions

View File

@ -74,6 +74,7 @@ CLASS z2ui5_cl_util_func DEFINITION
IMPORTING
!any TYPE any
!pretty_name TYPE clike DEFAULT /ui2/cl_json=>pretty_mode-none
!compress TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(result) TYPE string.
@ -194,7 +195,7 @@ ENDCLASS.
CLASS z2ui5_cl_util_func IMPLEMENTATION.
CLASS Z2UI5_CL_UTIL_FUNC IMPLEMENTATION.
METHOD app_get_url.
@ -534,7 +535,7 @@ CLASS z2ui5_cl_util_func IMPLEMENTATION.
METHOD trans_json_any_2.
result = /ui2/cl_json=>serialize( data = any pretty_name = CONV #( pretty_name ) ).
result = /ui2/cl_json=>serialize( data = any pretty_name = CONV #( pretty_name ) compress = compress ).
ENDMETHOD.

View File

@ -28,6 +28,7 @@ CLASS z2ui5_cl_fw_binding DEFINITION
check_temp TYPE abap_bool,
viewname TYPE string,
pretty_name TYPE string,
compress TYPE string,
depth TYPE i,
END OF ty_s_attri.
TYPES ty_t_attri TYPE SORTED TABLE OF ty_s_attri WITH UNIQUE KEY name.
@ -41,6 +42,7 @@ CLASS z2ui5_cl_fw_binding DEFINITION
check_attri TYPE data OPTIONAL
view TYPE string OPTIONAL
pretty_name TYPE clike OPTIONAL
compress TYPE clike OPTIONAL
RETURNING
VALUE(r_result) TYPE REF TO z2ui5_cl_fw_binding.
@ -55,6 +57,7 @@ CLASS z2ui5_cl_fw_binding DEFINITION
DATA mv_check_attri TYPE abap_bool.
DATA mv_view TYPE string.
DATA mv_pretty_name TYPE string.
DATA mv_compress TYPE string.
CLASS-METHODS update_attri
IMPORTING
@ -131,7 +134,7 @@ ENDCLASS.
CLASS z2ui5_cl_fw_binding IMPLEMENTATION.
CLASS Z2UI5_CL_FW_BINDING IMPLEMENTATION.
METHOD bind.
@ -158,6 +161,7 @@ CLASS z2ui5_cl_fw_binding IMPLEMENTATION.
bind->bind_type = mv_type.
bind->pretty_name = mv_pretty_name.
bind->compress = mv_compress.
bind->name_front = name_front_create( bind->name ).
bind->viewname = mv_view.
@ -257,6 +261,7 @@ CLASS z2ui5_cl_fw_binding IMPLEMENTATION.
r_result->mv_check_attri = check_attri.
r_result->mv_view = view.
r_result->mv_pretty_name = pretty_name.
r_result->mv_compress = compress.
IF z2ui5_cl_util_func=>rtti_check_type_kind_dref( data ).
@ -293,6 +298,25 @@ CLASS z2ui5_cl_fw_binding IMPLEMENTATION.
ENDMETHOD.
METHOD get_t_attri_by_include.
DATA(sdescr) = CAST cl_abap_structdescr( cl_abap_typedescr=>describe_by_name( type->absolute_name ) ).
LOOP AT sdescr->components REFERENCE INTO DATA(lr_comp).
DATA(lv_element) = attri && lr_comp->name.
DATA(ls_attri) = VALUE ty_s_attri(
name = lv_element
type_kind = lr_comp->type_kind ).
INSERT ls_attri INTO TABLE result.
ENDLOOP.
ENDMETHOD.
METHOD get_t_attri_by_oref.
DATA(lv_name) = COND #( WHEN val IS NOT INITIAL THEN `MO_APP` && `->` && val ELSE `MO_APP` ).
@ -318,24 +342,6 @@ CLASS z2ui5_cl_fw_binding IMPLEMENTATION.
ENDMETHOD.
METHOD get_t_attri_by_include.
DATA(sdescr) = CAST cl_abap_structdescr( cl_abap_typedescr=>describe_by_name( type->absolute_name ) ).
LOOP AT sdescr->components REFERENCE INTO DATA(lr_comp).
DATA(lv_element) = attri && lr_comp->name.
DATA(ls_attri) = VALUE ty_s_attri(
name = lv_element
type_kind = lr_comp->type_kind ).
INSERT ls_attri INTO TABLE result.
ENDLOOP.
ENDMETHOD.
METHOD get_t_attri_by_struc.
DATA(lv_name) = `MO_APP->` && val.

View File

@ -29,11 +29,42 @@ CLASS z2ui5_cl_fw_client DEFINITION
RETURNING
VALUE(r_result) TYPE string.
private section.
ENDCLASS.
CLASS z2ui5_cl_fw_client IMPLEMENTATION.
CLASS Z2UI5_CL_FW_CLIENT IMPLEMENTATION.
METHOD bind_tab_cell.
FIELD-SYMBOLS <ele> TYPE any.
FIELD-SYMBOLS <row> TYPE any.
data lr_ref_in type ref to data.
data lr_ref type ref to data.
ASSIGN i_tab[ i_tab_index ] TO <row>.
DATA(lt_attri) = z2ui5_cl_util_func=>rtti_get_t_comp_by_struc( <row> ).
LOOP AT lt_attri ASSIGNING FIELD-SYMBOL(<comp>).
ASSIGN COMPONENT <comp>-name OF STRUCTURE <row> TO <ele>.
lr_ref_in = REF #( <ele> ).
lr_ref = REF #( i_val ).
IF lr_ref = lr_ref_in.
r_result = `{` && iv_name && '/' && shift_right( CONV string( i_tab_index - 1 ) ) && '/' && <comp>-name && `}`.
RETURN.
ENDIF.
ENDLOOP.
RAISE EXCEPTION TYPE z2ui5_cx_util_error
EXPORTING
val = `BINDING_ERROR - No class attribute for binding found - Please check if the binded values are public attributes of your class`.
ENDMETHOD.
METHOD constructor.
@ -43,6 +74,28 @@ CLASS z2ui5_cl_fw_client IMPLEMENTATION.
ENDMETHOD.
METHOD set_arg_string.
IF val IS NOT INITIAL.
LOOP AT val REFERENCE INTO DATA(lr_arg).
DATA(lv_new) = lr_arg->*.
IF lv_new IS INITIAL.
CONTINUE.
ENDIF.
IF lv_new(1) <> `$` AND lv_new(1) <> `{`.
lv_new = `"` && lv_new && `"`.
ENDIF.
result = result && `, ` && lv_new.
ENDLOOP.
ENDIF.
result = result && `)`.
ENDMETHOD.
METHOD z2ui5_if_client~get.
result = VALUE #(
@ -85,20 +138,37 @@ CLASS z2ui5_cl_fw_client IMPLEMENTATION.
ENDMETHOD.
METHOD z2ui5_if_client~nest_view_destroy.
METHOD z2ui5_if_client~nest2_view_destroy.
mo_handler->ms_next-s_set-s_view_nest-check_update_model = abap_true.
mo_handler->ms_next-s_set-s_view_nest2-check_update_model = abap_true.
ENDMETHOD.
METHOD z2ui5_if_client~nest2_view_destroy.
METHOD z2ui5_if_client~nest2_view_display.
mo_handler->ms_next-s_set-s_view_nest2-xml = val.
mo_handler->ms_next-s_set-s_view_nest2-id = id.
mo_handler->ms_next-s_set-s_view_nest2-method_destroy = method_destroy.
mo_handler->ms_next-s_set-s_view_nest2-method_insert = method_insert.
ENDMETHOD.
METHOD z2ui5_if_client~nest2_view_model_update.
mo_handler->ms_next-s_set-s_view_nest2-check_update_model = abap_true.
ENDMETHOD.
METHOD z2ui5_if_client~nest_view_destroy.
mo_handler->ms_next-s_set-s_view_nest-check_update_model = abap_true.
ENDMETHOD.
METHOD z2ui5_if_client~nest_view_display.
mo_handler->ms_next-s_set-s_view_nest-xml = val.
@ -108,14 +178,6 @@ CLASS z2ui5_cl_fw_client IMPLEMENTATION.
ENDMETHOD.
METHOD z2ui5_if_client~nest2_view_display.
mo_handler->ms_next-s_set-s_view_nest2-xml = val.
mo_handler->ms_next-s_set-s_view_nest2-id = id.
mo_handler->ms_next-s_set-s_view_nest2-method_destroy = method_destroy.
mo_handler->ms_next-s_set-s_view_nest2-method_insert = method_insert.
ENDMETHOD.
METHOD z2ui5_if_client~nest_view_model_update.
@ -123,11 +185,6 @@ CLASS z2ui5_cl_fw_client IMPLEMENTATION.
ENDMETHOD.
METHOD z2ui5_if_client~nest2_view_model_update.
mo_handler->ms_next-s_set-s_view_nest2-check_update_model = abap_true.
ENDMETHOD.
METHOD z2ui5_if_client~popover_destroy.
@ -216,6 +273,7 @@ CLASS z2ui5_cl_fw_client IMPLEMENTATION.
type = z2ui5_cl_fw_binding=>cs_bind_type-one_way
data = val
pretty_name = pretty_name
compress = compress
).
result = lo_binder->main( ).
@ -229,27 +287,6 @@ CLASS z2ui5_cl_fw_client IMPLEMENTATION.
ENDMETHOD.
METHOD z2ui5_if_client~_bind_local.
DATA(lo_binder) = z2ui5_cl_fw_binding=>factory(
app = mo_handler->ms_db-app
attri = mo_handler->ms_db-t_attri
check_attri = mo_handler->ms_db-check_attri
type = z2ui5_cl_fw_binding=>cs_bind_type-one_time
data = val
pretty_name = pretty_name
).
result = lo_binder->main( ).
mo_handler->ms_db-t_attri = lo_binder->mt_attri.
mo_handler->ms_db-check_attri = lo_binder->mv_check_attri.
IF path = abap_false.
result = `{` && result && `}`.
ENDIF.
ENDMETHOD.
METHOD z2ui5_if_client~_bind_clear.
mo_handler->ms_db-t_attri[ name = val ]-check_dissolved = abap_false.
@ -286,6 +323,30 @@ CLASS z2ui5_cl_fw_client IMPLEMENTATION.
data = val
view = view
pretty_name = pretty_name
compress = compress
).
result = lo_binder->main( ).
mo_handler->ms_db-t_attri = lo_binder->mt_attri.
mo_handler->ms_db-check_attri = lo_binder->mv_check_attri.
IF path = abap_false.
result = `{` && result && `}`.
ENDIF.
ENDMETHOD.
METHOD z2ui5_if_client~_bind_local.
DATA(lo_binder) = z2ui5_cl_fw_binding=>factory(
app = mo_handler->ms_db-app
attri = mo_handler->ms_db-t_attri
check_attri = mo_handler->ms_db-check_attri
type = z2ui5_cl_fw_binding=>cs_bind_type-one_time
data = val
pretty_name = pretty_name
compress = compress
).
result = lo_binder->main( ).
@ -312,57 +373,4 @@ CLASS z2ui5_cl_fw_client IMPLEMENTATION.
result = `onEventFrontend( { 'EVENT' : '` && val && `' }` && set_arg_string( t_arg ).
ENDMETHOD.
METHOD set_arg_string.
IF val IS NOT INITIAL.
LOOP AT val REFERENCE INTO DATA(lr_arg).
DATA(lv_new) = lr_arg->*.
IF lv_new IS INITIAL.
CONTINUE.
ENDIF.
IF lv_new(1) <> `$` AND lv_new(1) <> `{`.
lv_new = `"` && lv_new && `"`.
ENDIF.
result = result && `, ` && lv_new.
ENDLOOP.
ENDIF.
result = result && `)`.
ENDMETHOD.
METHOD bind_tab_cell.
FIELD-SYMBOLS <ele> TYPE any.
FIELD-SYMBOLS <row> TYPE any.
data lr_ref_in type ref to data.
data lr_ref type ref to data.
ASSIGN i_tab[ i_tab_index ] TO <row>.
DATA(lt_attri) = z2ui5_cl_util_func=>rtti_get_t_comp_by_struc( <row> ).
LOOP AT lt_attri ASSIGNING FIELD-SYMBOL(<comp>).
ASSIGN COMPONENT <comp>-name OF STRUCTURE <row> TO <ele>.
lr_ref_in = REF #( <ele> ).
lr_ref = REF #( i_val ).
IF lr_ref = lr_ref_in.
r_result = `{` && iv_name && '/' && shift_right( CONV string( i_tab_index - 1 ) ) && '/' && <comp>-name && `}`.
RETURN.
ENDIF.
ENDLOOP.
RAISE EXCEPTION TYPE z2ui5_cx_util_error
EXPORTING
val = `BINDING_ERROR - No class attribute for binding found - Please check if the binded values are public attributes of your class`.
ENDMETHOD.
ENDCLASS.

View File

@ -25,12 +25,14 @@ CLASS z2ui5_cl_fw_model DEFINITION
DATA mt_attri TYPE z2ui5_cl_fw_binding=>ty_t_attri.
DATA mv_viewname TYPE string.
protected section.
PRIVATE SECTION.
ENDCLASS.
CLASS z2ui5_cl_fw_model IMPLEMENTATION.
CLASS Z2UI5_CL_FW_MODEL IMPLEMENTATION.
METHOD factory.
@ -41,6 +43,7 @@ CLASS z2ui5_cl_fw_model IMPLEMENTATION.
ENDMETHOD.
METHOD main_set_backend.
LOOP AT mt_attri REFERENCE INTO DATA(lr_attri)
@ -132,7 +135,7 @@ CLASS z2ui5_cl_fw_model IMPLEMENTATION.
WHEN `h`.
lo_actual->add_attribute( n = lr_attri->name_front
v = z2ui5_cl_util_func=>trans_json_any_2( any = <attribute> pretty_name = lr_attri->pretty_name )
v = z2ui5_cl_util_func=>trans_json_any_2( any = <attribute> pretty_name = lr_attri->pretty_name compress = lr_attri->compress )
apos_active = abap_false ).
WHEN OTHERS.
@ -148,7 +151,7 @@ CLASS z2ui5_cl_fw_model IMPLEMENTATION.
WHEN OTHERS.
lo_actual->add_attribute( n = lr_attri->name_front
v = z2ui5_cl_util_func=>trans_json_any_2( <attribute> )
v = z2ui5_cl_util_func=>trans_json_any_2( any = <attribute> pretty_name = lr_attri->pretty_name compress = lr_attri->compress )
apos_active = abap_false ).
ENDCASE.
ENDCASE.
@ -158,5 +161,4 @@ CLASS z2ui5_cl_fw_model IMPLEMENTATION.
result = lr_view_model->stringify( ).
ENDMETHOD.
ENDCLASS.

View File

@ -155,6 +155,7 @@ INTERFACE z2ui5_if_client
val TYPE data
path TYPE abap_bool DEFAULT abap_false
pretty_name TYPE clike DEFAULT /ui2/cl_json=>pretty_mode-none
compress TYPE clike DEFAULT abap_false
tab TYPE STANDARD TABLE OPTIONAL
tab_index TYPE i OPTIONAL
RETURNING
@ -166,6 +167,7 @@ INTERFACE z2ui5_if_client
path TYPE abap_bool DEFAULT abap_false
view TYPE string DEFAULT cs_view-main
pretty_name TYPE clike DEFAULT /ui2/cl_json=>pretty_mode-none
compress TYPE clike DEFAULT abap_false
tab TYPE STANDARD TABLE OPTIONAL
tab_index TYPE i OPTIONAL
RETURNING
@ -176,6 +178,7 @@ INTERFACE z2ui5_if_client
val TYPE data
path TYPE abap_bool DEFAULT abap_false
pretty_name TYPE clike DEFAULT /ui2/cl_json=>pretty_mode-none
compress TYPE clike DEFAULT abap_false
RETURNING
VALUE(result) TYPE string.

View File

@ -526,6 +526,10 @@ CLASS z2ui5_cl_cc_chartjs DEFINITION
!is_config TYPE ty_chart
RETURNING
VALUE(chartjs_config) TYPE string .
CLASS-METHODS load_cc
RETURNING
VALUE(result) TYPE string .
PROTECTED SECTION.
PRIVATE SECTION.
@ -565,6 +569,120 @@ CLASS Z2UI5_CL_CC_CHARTJS IMPLEMENTATION.
ENDMETHOD.
METHOD load_cc.
DATA lv_libs TYPE string VALUE ``.
result = `debugger;` && |\n| &&
`sap.ui.define("z2ui5/chartjs", [` && |\n| &&
` "sap/ui/core/Control",` && |\n| &&
`], function (Control) {` && |\n| &&
` "use strict";` && |\n| &&
|\n| &&
` return Control.extend("z2ui5.chartjs", {` && |\n| &&
` metadata: {` && |\n| &&
` properties: {` && |\n| &&
` config: { ` && |\n| &&
` type: "Array" ` && |\n| &&
` },` && |\n| &&
` canvas_id: {` && |\n| &&
` type: "string",` && |\n| &&
` defaultValue: ""` && |\n| &&
` },` && |\n| &&
` width: {` && |\n| &&
` type: "string",` && |\n| &&
` defaultValue: ""` && |\n| &&
` },` && |\n| &&
` height: {` && |\n| &&
` type: "string",` && |\n| &&
` defaultValue: ""` && |\n| &&
` },` && |\n| &&
` style: {` && |\n| &&
` type: "string",` && |\n| &&
` defaultValue: ""` && |\n| &&
` },` && |\n| &&
` view: {` && |\n| &&
` type: "string",` && |\n| &&
` defaultValue: ""` && |\n| &&
` }` && |\n| &&
` }` && |\n| &&
` },` && |\n| &&
` init() {` && |\n| &&
` },` && |\n| &&
|\n| &&
` fixJsonLibs(data) {` && |\n| &&
` ` && |\n| &&
` if (!data.hasOwnProperty("plugins")) { ` && |\n| &&
` data["plugins"] = [` && lv_libs && `];` && |\n| &&
` return;` && |\n| &&
` };` && |\n| &&
` ` && |\n| &&
` Object.keys(data).forEach(function(key) {` && |\n| &&
` if(key=="plugins") {` && |\n| &&
` data[key] = [` && lv_libs && `];` && |\n| &&
` };` && |\n| &&
` })},` && |\n| &&
|\n| &&
` onModelChange(oEvent) {` && |\n| &&
` this.Chart2Model();` && |\n| &&
` },` && |\n| &&
|\n| &&
` Chart2Model( ){` && |\n| &&
* ` var oData = Messaging.getMessageModel().getData();` && |\n| &&
` var oData = [];` && |\n| &&
` var Model = [];` && |\n| &&
* ` oData.forEach(element => {` && |\n| &&
* ` Model.push( { ` && |\n| &&
* ` MESSAGE : element.message , ` && |\n| &&
* ` DESCRIPTION : element.description , ` && |\n| &&
* ` TYPE : element.type, ` && |\n| &&
* ` TARGET : element.aTargets[0] , ` && |\n| &&
* ` ADDITIONALTEXT : element.additionalText , ` && |\n| &&
* ` DATE : element.date , ` && |\n| &&
* ` DESCRIPTIONURL : element.descriptionUrl, ` && |\n| &&
* ` PERSISTENT : element.persistent } );` && |\n| &&
* ` });` && |\n| &&
` this.setProperty("config", Model );` && |\n| &&
` },` && |\n| &&
|\n| &&
` Model2Chart( ){` && |\n| &&
` var Model = this.getProperty("config");` && |\n| &&
` if(!Model) { return; }` && |\n| &&
|\n| &&
* ` Model.forEach(element => {` && |\n| &&
* ` var target = element.CANVAS_ID;` && |\n| &&
* ` if ( target == undefined ) { target = element.CANVAS_ID }` && |\n| &&
* ` });` && |\n| &&
* ` var resBinding = new sap.ui.model.ListBinding(sap.z2ui5.cjsConfig, "/" );` && |\n| &&
* ` resBinding.attachChange(this.onModelChange.bind(this));` && |\n| &&
` },` && |\n| &&
|\n| &&
` renderer(oRm, oControl) {` && |\n| &&
` oControl.Model2Chart();` && |\n| &&
` var canvas_id = oControl.getProperty("canvas_id");` && |\n| &&
` var width = oControl.getProperty("width");` && |\n| &&
` var height = oControl.getProperty("height");` && |\n| &&
` var style = oControl.getProperty("style");` && |\n| &&
` oRm.write( "&lt;canvas id='" + canvas_id + "' width='" + width + "' height='" + height + "' style = '" + style + "' /&gt;");` && |\n| &&
|\n| &&
` var Model = oControl.getProperty("config");` && |\n| &&
` if(!Model ) { return; };` && |\n| &&
` var cVar = canvas_id+'_chartjs'; ` && |\n| &&
` setTimeout( (oControl) => { ` && |\n| &&
|\n| &&
` var ctx = document.getElementById(canvas_id); ` && |\n| &&
` sap.z2ui5.autocolors = {}; try { var autocolors = window['chartjs-plugin-autocolors']; } catch (err){};` && |\n| &&
` fixJsonLibs(Model);` && |\n| &&
` window[cVar] = new Chart( ctx, Model );` && |\n| &&
` ` && |\n| &&
` }, 150 , oControl );` && |\n| &&
` },` && |\n| &&
|\n| &&
` });` && |\n| &&
`});`.
ENDMETHOD.
METHOD load_js.
DATA lv_libs TYPE string VALUE ``.
@ -583,9 +701,9 @@ CLASS Z2UI5_CL_CC_CHARTJS IMPLEMENTATION.
IF autocolors = abap_true.
result = result && `libs.push("` && get_js_autocolors( ) && `");` && |\n|.
IF lv_libs IS INITIAL.
lv_libs = lv_libs && `autocolors`.
lv_libs = lv_libs && `sap.z2ui5.autocolors `.
ELSE.
lv_libs = lv_libs && `,` && `autocolors`.
lv_libs = lv_libs && `,` && `sap.z2ui5.autocolors `.
ENDIF.
ENDIF.
IF deferred = abap_true.
@ -599,6 +717,10 @@ CLASS Z2UI5_CL_CC_CHARTJS IMPLEMENTATION.
result = result && `` && |\n| &&
`var fixJsonLibs = function(data){` && |\n| &&
` if (!data.hasOwnProperty("plugins")) {` && |\n| &&
` data["plugins"] = [` && lv_libs && `];` && |\n| &&
` return;` && |\n| &&
` };` && |\n| &&
`` && |\n| &&
` Object.keys(data).forEach(function(key) {` && |\n| &&
` if(key=="plugins") {` && |\n| &&

View File

@ -148,6 +148,7 @@ CLASS z2ui5_cl_xml_view_cc DEFINITION
!items TYPE clike OPTIONAL
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_xml_view .
METHODS timer
IMPORTING
!finished TYPE clike OPTIONAL
@ -157,6 +158,18 @@ CLASS z2ui5_cl_xml_view_cc DEFINITION
PREFERRED PARAMETER finished
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_xml_view .
METHODS chartjs
IMPORTING
!canvas_id TYPE clike OPTIONAL
!view TYPE clike OPTIONAL
!config TYPE clike OPTIONAL
!height TYPE clike OPTIONAL
!width TYPE clike OPTIONAL
!style TYPE clike OPTIONAL
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_xml_view .
METHODS constructor
IMPORTING
!view TYPE REF TO z2ui5_cl_xml_view .
@ -167,7 +180,7 @@ ENDCLASS.
CLASS z2ui5_cl_xml_view_cc IMPLEMENTATION.
CLASS Z2UI5_CL_XML_VIEW_CC IMPLEMENTATION.
METHOD bwip_js.
@ -200,6 +213,20 @@ CLASS z2ui5_cl_xml_view_cc IMPLEMENTATION.
ENDMETHOD.
METHOD chartjs.
result = mo_view.
mo_view->_generic( name = `chartjs`
ns = `z2ui5`
t_prop = VALUE #( ( n = `canvas_id` v = canvas_id )
( n = `view` v = view )
( n = `config` v = config )
( n = `height` v = height )
( n = `width` v = width )
( n = `style` v = style )
) ).
ENDMETHOD.
METHOD constructor.
me->mo_view = view.
@ -271,6 +298,16 @@ CLASS z2ui5_cl_xml_view_cc IMPLEMENTATION.
ENDMETHOD.
METHOD history.
result = mo_view.
mo_view->_generic( name = `History`
ns = `z2ui5`
t_prop = VALUE #( ( n = `search` v = search ) ) ).
ENDMETHOD.
METHOD info_frontend.
result = mo_view.
@ -299,6 +336,40 @@ CLASS z2ui5_cl_xml_view_cc IMPLEMENTATION.
ENDMETHOD.
METHOD multiinput.
result = mo_view.
mo_view->_generic( name = `MultiInput` ns = `z2ui5`
t_prop = VALUE #( ( n = `tokens` v = tokens )
( n = `showClearIcon` v = z2ui5_cl_util_func=>boolean_abap_2_json( showclearicon ) )
( n = `showValueHelp` v = z2ui5_cl_util_func=>boolean_abap_2_json( showvaluehelp ) )
( n = `enabled` v = z2ui5_cl_util_func=>boolean_abap_2_json( enabled ) )
( n = `suggestionItems` v = suggestionitems )
( n = `tokenUpdate` v = tokenupdate )
( n = `submit` v = submit )
( n = `width` v = width )
( n = `value` v = value )
( n = `id` v = id )
( n = `change` v = change )
( n = `valueHelpRequest` v = valuehelprequest )
( n = `addedTokens` v = addedTokens )
( n = `removedTokens` v = removedTokens )
( n = `class` v = class ) ) ).
ENDMETHOD.
METHOD multiinput_ext.
result = mo_view.
mo_view->_generic( name = `MultiInputExt` ns = `z2ui5`
t_prop = VALUE #( ( n = `MultiInputId` v = MultiInputId )
( n = `change` v = change )
( n = `addedTokens` v = addedTokens )
( n = `removedTokens` v = removedTokens ) ) ).
ENDMETHOD.
METHOD scrolling.
result = mo_view.
@ -339,14 +410,6 @@ CLASS z2ui5_cl_xml_view_cc IMPLEMENTATION.
ENDMETHOD.
METHOD history.
result = mo_view.
mo_view->_generic( name = `History`
ns = `z2ui5`
t_prop = VALUE #( ( n = `search` v = search ) ) ).
ENDMETHOD.
METHOD title.
@ -356,26 +419,7 @@ CLASS z2ui5_cl_xml_view_cc IMPLEMENTATION.
t_prop = VALUE #( ( n = `title` v = title ) ) ).
ENDMETHOD.
METHOD multiinput.
result = mo_view.
mo_view->_generic( name = `MultiInput` ns = `z2ui5`
t_prop = VALUE #( ( n = `tokens` v = tokens )
( n = `showClearIcon` v = z2ui5_cl_util_func=>boolean_abap_2_json( showclearicon ) )
( n = `showValueHelp` v = z2ui5_cl_util_func=>boolean_abap_2_json( showvaluehelp ) )
( n = `enabled` v = z2ui5_cl_util_func=>boolean_abap_2_json( enabled ) )
( n = `suggestionItems` v = suggestionitems )
( n = `tokenUpdate` v = tokenupdate )
( n = `submit` v = submit )
( n = `width` v = width )
( n = `value` v = value )
( n = `id` v = id )
( n = `change` v = change )
( n = `valueHelpRequest` v = valuehelprequest )
( n = `addedTokens` v = addedTokens )
( n = `removedTokens` v = removedTokens )
( n = `class` v = class ) ) ).
ENDMETHOD.
METHOD uitableext.
@ -384,16 +428,4 @@ CLASS z2ui5_cl_xml_view_cc IMPLEMENTATION.
) ).
ENDMETHOD.
METHOD multiinput_ext.
result = mo_view.
mo_view->_generic( name = `MultiInputExt` ns = `z2ui5`
t_prop = VALUE #( ( n = `MultiInputId` v = MultiInputId )
( n = `change` v = change )
( n = `addedTokens` v = addedTokens )
( n = `removedTokens` v = removedTokens ) ) ).
ENDMETHOD.
ENDCLASS.