abap2UI5/src/00/z2ui5_cl_app_demo_06.clas.abap
oblomov dd31464414 demos and refactoring (#237)
* overflow toolbar menu item

* table popin

* test

* popups features

* popup

* popup

* POPUPS

* popups

* popup

* popups

* refactoring

* REFACTORING

* popover

* refactoring

* demos

* refactoring

* refactoring

* demos

* demos

* demos

* demo

* demos

* demos

* demo

* demos

* demo

* demos

* demos

* demos

* refactoring

* abaplint
2023-06-15 16:23:16 +00:00

177 lines
5.4 KiB
ABAP

CLASS z2ui5_cl_app_demo_06 DEFINITION PUBLIC.
PUBLIC SECTION.
INTERFACES z2ui5_if_app.
TYPES:
BEGIN OF ty_row,
count TYPE i,
value TYPE string,
descr TYPE string,
icon TYPE string,
info TYPE string,
checkbox TYPE abap_bool,
END OF ty_row.
DATA t_tab TYPE STANDARD TABLE OF ty_row WITH EMPTY KEY.
DATA check_initialized TYPE abap_bool.
DATA mv_key TYPE string.
METHODS refresh_data.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS Z2UI5_CL_APP_DEMO_06 IMPLEMENTATION.
METHOD refresh_data.
DO 1000 TIMES.
DATA(ls_row) = VALUE ty_row( count = sy-index value = 'red'
info = COND #( WHEN sy-index < 50 THEN 'completed' ELSE 'uncompleted' )
descr = 'this is a description' checkbox = abap_true ).
INSERT ls_row INTO TABLE t_tab.
ENDDO.
ENDMETHOD.
METHOD z2ui5_if_app~main.
IF check_initialized = abap_false.
check_initialized = abap_true.
refresh_data( ).
ENDIF.
CASE client->get( )-event.
WHEN 'SORT_ASCENDING'.
SORT t_tab BY count ASCENDING.
client->popup_message_toast( 'sort ascending' ).
WHEN 'SORT_DESCENDING'.
SORT t_tab BY count DESCENDING.
client->popup_message_toast( 'sort descending' ).
WHEN 'BUTTON_POST'.
client->popup_message_box( 'button post was pressed' ).
WHEN 'MENU_DEFAULT'.
client->popup_message_box( 'menu default pressed' ).
WHEN 'MENU_01'.
client->popup_message_box( 'menu 01 pressed' ).
WHEN 'MENU_02'.
client->popup_message_box( 'menu 02 pressed' ).
WHEN 'BACK'.
client->nav_app_leave( client->get_app( client->get( )-id_prev_app_stack ) ).
ENDCASE.
DATA(page) = Z2UI5_CL_XML_VIEW=>factory( )->shell(
)->page(
title = 'abap2UI5 - Scroll Container with Table and Toolbar'
navbuttonpress = client->_event( 'BACK' )
shownavbutton = abap_true
)->header_content(
)->link(
text = 'Source_Code' target = '_blank'
href = Z2UI5_CL_XML_VIEW=>hlp_get_source_code_url( app = me get = client->get( ) )
)->get_parent( ).
DATA(tab) = page->scroll_container( height = '70%' vertical = abap_true
)->table(
growing = abap_true
growingthreshold = '20'
growingscrolltoload = abap_true
items = client->_bind_one( t_tab )
sticky = 'ColumnHeaders,HeaderToolbar' ).
tab->header_toolbar(
)->overflow_toolbar(
)->title( 'title of the table'
)->button(
text = 'letf side button'
icon = 'sap-icon://account'
press = client->_event( 'BUTTON_SORT' )
)->segmented_button( selected_key = mv_key
)->items(
)->segmented_button_item(
key = 'BLUE'
icon = 'sap-icon://accept'
text = 'blue'
)->segmented_button_item(
key = 'GREEN'
icon = 'sap-icon://add-favorite'
text = 'green'
)->get_parent( )->get_parent(
)->toolbar_spacer(
)->generic_tag(
arialabelledby = 'genericTagLabel'
text = 'Project Cost'
design = 'StatusIconHidden'
status = 'Error'
class = 'sapUiSmallMarginBottom'
)->object_number(
state = 'Error'
emphasized = 'false'
number = '3.5M'
unit = 'EUR'
)->get_parent(
)->toolbar_spacer(
)->overflow_toolbar_toggle_button(
icon = 'sap-icon://sort-descending'
press = client->_event( 'SORT_DESCENDING' )
)->overflow_toolbar_toggle_button(
icon = 'sap-icon://sort-ascending'
press = client->_event( 'SORT_ASCENDING' )
)->overflow_toolbar_menu_button(
text = `Export`
type = `Transparent`
tooltip = `Export`
defaultaction = client->_event( 'MENU_DEFAULT' )
icon = `sap-icon://share`
buttonMode = `Split`
)->_generic( `menu` )->_generic( `Menu`
)->menu_item(
press = client->_event( 'MENU_01' )
text = `Export as PDF`
icon = `sap-icon://pdf-attachment`
)->menu_item(
press = client->_event( 'MENU_02' )
text = `Export to Excel`
icon = `sap-icon://excel-attachment`
).
tab->columns(
)->column(
)->text( 'Color' )->get_parent(
)->column(
)->text( 'Info' )->get_parent(
)->column(
)->text( 'Description' )->get_parent(
)->column(
)->text( 'Checkbox' )->get_parent(
)->column(
)->text( 'Counter' ).
tab->items( )->column_list_item( )->cells(
)->text( '{VALUE}'
)->text( '{INFO}'
)->text( '{DESCR}'
)->checkbox( selected = '{CHECKBOX}' enabled = abap_false
)->text( '{COUNT}' ).
client->set_next( VALUE #( xml_main = page->get_root( )->xml_get( ) ) ).
ENDMETHOD.
ENDCLASS.