abap2UI5/src/01/03/z2ui5_cl_fw_cc_scrolling.clas.abap
oblomov c2d6c157b4
Xml parser factory plain + UI table extension (#735)
* xml parser factory plain + ui table extension

* abaplint fix
2023-12-19 14:56:08 +01:00

87 lines
3.9 KiB
ABAP

CLASS z2ui5_cl_fw_cc_scrolling DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
TYPES:
BEGIN OF ty_s_item,
id TYPE string,
scrollto TYPE string,
END OF ty_s_item.
TYPES ty_t_item TYPE STANDARD TABLE OF ty_s_item WITH DEFAULT KEY ##NEEDED.
CLASS-METHODS get_js
RETURNING
VALUE(result) TYPE string.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS z2ui5_cl_fw_cc_scrolling IMPLEMENTATION.
METHOD get_js.
result = `jQuery.sap.declare("z2ui5.Scrolling");` && |\n| &&
`sap.ui.require([` && |\n| &&
` "sap/ui/core/Control",` && |\n| &&
`], (Control) => {` && |\n| &&
` "use strict";` && |\n| &&
|\n| &&
` return Control.extend("z2ui5.Scrolling", {` && |\n| &&
` metadata: {` && |\n| &&
` properties: {` && |\n| &&
` setUpdate: { type: "boolean" , defaultValue: true},` && |\n| &&
` items: { type: "Array" },` && |\n| &&
` }` && |\n| &&
` },` && |\n| &&
|\n| &&
` setBackend() { ` && |\n| &&
` if (this.mProperties.items){ this.mProperties.items.forEach(item => {` && |\n| &&
` try {` && |\n| &&
` item.SCROLLTO = sap.z2ui5.oView.byId(item.ID).getScrollDelegate().getScrollTop();` && |\n| &&
` } catch (e) {` && |\n| &&
` try {` && |\n| &&
` var ele = '#' + sap.z2ui5.oView.byId(item.ID).getId() + '-inner';` && |\n| &&
` item.SCROLLTO = $(ele).scrollTop();` && |\n| &&
` } catch (e) { }` && |\n| &&
` }` && |\n| &&
` });` && |\n| &&
` } },` && |\n| &&
` init() { sap.z2ui5.onBeforeRoundtrip.push( this.setBackend.bind(this) ); },` && |\n| &&
` renderer(oRm, oControl) {` && |\n| &&
|\n| &&
` ` && |\n| &&
` if (!oControl.getProperty("setUpdate")){ return; }` && |\n| &&
|\n| &&
` oControl.setProperty("setUpdate", false);` && |\n| &&
` var items = oControl.getProperty("items");` && |\n| &&
` if(!items){return;};` && |\n| &&
|\n| &&
` setTimeout( (oControl) => { ` && |\n| &&
` var items = oControl.getProperty("items"); ` && |\n| &&
` items.forEach(item => {` && |\n| &&
` try {` && |\n| &&
` sap.z2ui5.oView.byId(item.ID).scrollTo(item.SCROLLTO);` && |\n| &&
` } catch {` && |\n| &&
` try {` && |\n| &&
` var ele = '#' + sap.z2ui5.oView.byId(item.ID).getId() + '-inner';` && |\n| &&
` $(ele).scrollTop(item.SCROLLTO);` && |\n| &&
` } catch { setTimeout( function( item ) { sap.z2ui5.oView.byId(item.ID).scrollTo(item.SCROLLTO); } , 1 , item);}` && |\n| &&
` }` && |\n| &&
` } ` && |\n| &&
` );` && |\n| &&
|\n| &&
` } , 50 , oControl );` && |\n| &&
` }` && |\n| &&
` });` && |\n| &&
`});`.
ENDMETHOD.
ENDCLASS.