Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
187 changes: 187 additions & 0 deletions src/z2ui5_cl_demo_app_211.clas.abap
Original file line number Diff line number Diff line change
@@ -0,0 +1,187 @@
"!
CLASS z2ui5_cl_demo_app_211 DEFINITION
PUBLIC
CREATE PUBLIC.

PUBLIC SECTION.
INTERFACES if_serializable_object.
INTERFACES z2ui5_if_app.

TYPES:
BEGIN OF ty_s_t002,
id TYPE string,
icon TYPE string,
count TYPE string,
table TYPE string,
descr TYPE string,
class TYPE string,
END OF ty_s_t002.
TYPES ty_t_t002 TYPE STANDARD TABLE OF ty_s_t002 WITH DEFAULT KEY.

DATA mv_selectedkey TYPE string.
DATA mv_selectedkey_tmp TYPE string.
DATA mt_t002 TYPE ty_t_t002.
DATA mo_app TYPE REF TO object.

PROTECTED SECTION.
DATA mo_main_page TYPE REF TO z2ui5_cl_xml_view.

DATA client TYPE REF TO z2ui5_if_client.
DATA check_initialized TYPE abap_bool.

METHODS on_init.
METHODS on_event.
METHODS render_Main.



METHODS Render_sub_app.

PRIVATE SECTION.

ENDCLASS.


CLASS z2ui5_cl_demo_app_211 IMPLEMENTATION.


METHOD on_event.
CASE client->get( )-event.
WHEN 'ONSELECTICONTABBAR'.

CASE mv_selectedkey.

WHEN space.

WHEN OTHERS.

ENDCASE.

WHEN 'BACK'.

ENDCASE.
ENDMETHOD.

METHOD on_init.

mt_t002 = VALUE #( class = 'Z2UI5_CL_DEMO_APP_212'
( id = '1' count = '5' table = 'Z2UI5_T003' descr = 'Table 01' icon = 'sap-icon://add' )
( id = '2' count = '10' table = 'Z2UI5_T003' descr = 'Table 01' icon = 'sap-icon://add' )
( id = '3' count = '15' table = 'Z2UI5_T004' descr = 'Table 02' icon = 'sap-icon://accept' ) ).

mv_selectedkey = '1'.

ENDMETHOD.

METHOD render_main.
DATA(view) = z2ui5_cl_xml_view=>factory( )->shell( ).

DATA(page) = view->page( id = `page_main`
title = 'Customizing'
navbuttonpress = client->_event( 'BACK' )
shownavbutton = abap_true
class = 'sapUiContentPadding' ).

DATA(lo_items) = page->icon_tab_bar( class = 'sapUiResponsiveContentPadding'
selectedKey = client->_bind_edit( mv_selectedkey )
select = client->_event( val = 'ONSELECTICONTABBAR' )
)->items( ).

LOOP AT mt_t002 REFERENCE INTO DATA(line).

DATA(text) = line->descr.
DATA(with_icon) = line->icon.

lo_items->icon_tab_filter( icon = line->icon
iconcolor = 'Positive'
count = line->count
text = text
key = line->id
showall = with_icon ).

lo_items->icon_tab_separator( ).

ENDLOOP.

mo_main_page = lo_items.
ENDMETHOD.

METHOD z2ui5_if_app~main.
me->client = client.

IF check_initialized = abap_false.
check_initialized = abap_true.

on_init( ).

render_Main( ).

ENDIF.

on_event( ).

Render_sub_app( ).
ENDMETHOD.

METHOD Render_sub_app.

READ TABLE mt_t002 REFERENCE INTO DATA(t002)
WITH KEY id = mv_selectedkey.

IF sy-subrc <> 0.
RETURN.
ENDIF.

CASE mv_selectedkey.

WHEN OTHERS.

IF mv_selectedkey <> mv_selectedkey_tmp.
CREATE OBJECT mo_app TYPE (t002->class).
ENDIF.

TRY.

CALL METHOD mo_app->('SET_APP_DATA')
EXPORTING table = t002->table.

render_Main( ).

ASSIGN mo_app->('MO_PARENT_VIEW') TO FIELD-SYMBOL(<view>).
IF <view> IS ASSIGNED.
<view> = mo_main_page.
ENDIF.

CALL METHOD mo_app->('Z2UI5_IF_APP~MAIN')
EXPORTING client = client.

CATCH cx_root.
RETURN.
ENDTRY.

ENDCASE.

ASSIGN mo_app->('MV_VIEW_DISPLAY') TO FIELD-SYMBOL(<view_display>).

IF <view_display> = abap_true.
<view_display> = abap_false.
client->view_display( mo_main_page->stringify( ) ).
ENDIF.

ASSIGN mo_app->('MV_VIEW_MODEL_UPDATE') TO FIELD-SYMBOL(<view_update>).

IF <view_update> = abap_true.
<view_update> = abap_false.
client->view_model_update( ).
ENDIF.

IF mv_selectedkey <> mv_selectedkey_tmp.

client->view_display( mo_main_page->stringify( ) ).

mv_selectedkey_tmp = mv_selectedkey.

ENDIF.
ENDMETHOD.

ENDCLASS.
16 changes: 16 additions & 0 deletions src/z2ui5_cl_demo_app_211.clas.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>Z2UI5_CL_DEMO_APP_211</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>App in App I</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>
Loading