Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
oblomov-dev authored Nov 18, 2024
1 parent 3de2610 commit 5355985
Show file tree
Hide file tree
Showing 2 changed files with 219 additions and 0 deletions.
203 changes: 203 additions & 0 deletions src/01/z2ui5_cl_cc_sample_messaging_2.clas.abap
Original file line number Diff line number Diff line change
@@ -0,0 +1,203 @@
CLASS z2ui5_cl_cc_sample_messaging_2 DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .

PUBLIC SECTION.

INTERFACES z2ui5_if_app .

DATA mv_input_master TYPE string.
DATA mv_input_detail TYPE string.
TYPES:
BEGIN OF ts_tree_row_base,
object TYPE string,
col2 TYPE string,
col3 TYPE string,
col4 TYPE string,
END OF ts_tree_row_base .
TYPES:
BEGIN OF ts_tree_level3.
INCLUDE TYPE ts_tree_row_base.
TYPES END OF ts_tree_level3 .
TYPES
tt_tree_level3 TYPE STANDARD TABLE OF ts_tree_level3 WITH KEY object .
TYPES
BEGIN OF ts_tree_level2.
INCLUDE TYPE ts_tree_row_base.
TYPES categories TYPE tt_tree_level3.
TYPES END OF ts_tree_level2.

TYPES
tt_tree_level2 TYPE STANDARD TABLE OF ts_tree_level2 WITH KEY object.
TYPES:
BEGIN OF ts_tree_level1.
INCLUDE TYPE ts_tree_row_base.
TYPES categories TYPE tt_tree_level2.
TYPES END OF ts_tree_level1 .
TYPES
tt_tree_level1 TYPE STANDARD TABLE OF ts_tree_level1 WITH KEY object .

DATA mt_tree TYPE tt_tree_level1.
DATA check_initialized TYPE abap_bool .

DATA mv_check_enabled_01 TYPE abap_bool VALUE abap_true.
DATA mv_check_enabled_02 TYPE abap_bool.

DATA mv_ui5_version TYPE string.

DATA mt_messaging TYPE z2ui5_cl_cc_messaging=>ty_t_items.

Check failure on line 49 in src/01/z2ui5_cl_cc_sample_messaging_2.clas.abap

View check run for this annotation

abaplint / abaplint

Variable "MT_MESSAGING" contains unknown: Could not resolve top Z2UI5_CL_CC_MESSAGING, resolveTypeChain

https://rules.abaplint.org/unknown_types

Check failure on line 49 in src/01/z2ui5_cl_cc_sample_messaging_2.clas.abap

View check run for this annotation

abaplint / abaplint / abap_cloud_readiness

Variable "MT_MESSAGING" contains unknown: Could not resolve top Z2UI5_CL_CC_MESSAGING, resolveTypeChain

https://rules.abaplint.org/unknown_types
DATA mt_message_manager TYPE z2ui5_cl_cc_message_m=>ty_t_items.

PROTECTED SECTION.

DATA client TYPE REF TO z2ui5_if_client.

METHODS view_display_master.
METHODS view_display_detail.

PRIVATE SECTION.

ENDCLASS.



CLASS Z2UI5_CL_CC_SAMPLE_MESSAGING_2 IMPLEMENTATION.


METHOD view_display_detail.

DATA(lo_view_nested) = z2ui5_cl_xml_view=>factory( ).

DATA(page) = lo_view_nested->page( title = `Nested View` ).

page->button( text = 'event' press = client->_event( 'UPDATE_DETAIL' )
)->input( id = `inputNest`
value = `{path:'` && client->_bind_edit( val = mv_input_detail view = client->cs_view-nested path = abap_true ) && `',type:'sap.ui.model.type.String', constraints: { maxLength: 3 } }` ).

page->button(
text = 'button 01'
* type = 'Transparent'
press = client->_event( `NEST_TEST` )
enabled = client->_bind( mv_check_enabled_01 ) ).

page->button(
text = 'button 02'
* type = 'Transparent'
press = client->_event( `NEST_TEST` )
enabled = client->_bind( mv_check_enabled_02 )
).

client->nest_view_display(
val = lo_view_nested->stringify( )
id = `test`
method_insert = 'addMidColumnPage'
method_destroy = 'removeAllMidColumnPages'
).

ENDMETHOD.


METHOD view_display_master.

DATA(view) = z2ui5_cl_xml_view=>factory( ).

IF mv_ui5_version > `1.118`.
view->_z2ui5( )->messaging( client->_bind_edit( mt_messaging ) ).
ELSE.
view->_z2ui5( )->message_manager( client->_bind_edit( mt_message_manager ) ).
ENDIF.

DATA(page) = view->shell(
)->page(
title = 'abap2UI5 - Master Detail Page with Nested View'
navbuttonpress = client->_event( 'BACK' )
shownavbutton = abap_true ).

page->header_content(
)->link( text = 'Demo' target = '_blank' href = `https://twitter.com/abap2UI5/status/1628701535222865922`
)->link(
)->get_parent( ).

DATA(col_layout) = page->flexible_column_layout( layout = 'TwoColumnsBeginExpanded' id ='test' ).

DATA(lr_master) = col_layout->begin_column_pages( ).

client->_bind( mt_tree ).
DATA(tab) = lr_master->vbox( )->tree_table(
rows = `{path:'/MT_TREE', parameters: {arrayNames:['CATEGORIES']}}` ).
tab->tree_columns(
)->tree_column( label = 'Object'
)->tree_template(
)->text( text = '{OBJECT}')->get_parent( )->get_parent(
)->tree_column( label = 'Column2'
)->tree_template(
)->text( text = '{COL2}')->get_parent( )->get_parent(
)->tree_column( label = 'Column3'
)->tree_template(
)->text( text = '{COL3}')->get_parent( )->get_parent(
)->tree_column( label = 'Column4'
)->tree_template(
)->text( text = '{COL4}').

tab->get_parent( )->label( text = `input master` )->input( id = `inputMain`
value = `{path:'` && client->_bind_edit( val = mv_input_master view = client->cs_view-main path = abap_true ) && `',type:'sap.ui.model.type.String', constraints: { maxLength: 3 } }`
)->button( press = client->_event( `TEST` ) text = `button` ).


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



ENDMETHOD.


METHOD z2ui5_if_app~main.

me->client = client.

IF check_initialized = abap_false.
check_initialized = abap_true.

mt_tree = VALUE #( ( object = '1' categories = VALUE #( ( object = '1.1' categories = VALUE #( ( object = '1.1.1')
( object = '1.1.2') ) )
( object = '1.2' ) ) )
( object = '2' categories = VALUE #( ( object = '2.1' )
( object = '2.2' ) ) )
( object = '3' categories = VALUE #( ( object = '3.1' )
( object = '3.2' ) ) ) ).

* load two types of message handling
DATA(view) = z2ui5_cl_xml_view=>factory( ).
client->view_display(
view->_z2ui5( )->info_frontend( ui5_version = client->_bind_edit( mv_ui5_version ) )->get_parent(
)->_generic( ns = `html` name = `script` )->_cc_plain_xml( z2ui5_cl_cc_messaging=>get_js( ) )->get_parent(

Check failure on line 174 in src/01/z2ui5_cl_cc_sample_messaging_2.clas.abap

View check run for this annotation

abaplint / abaplint

Class z2ui5_cl_cc_messaging not found

https://rules.abaplint.org/check_syntax

Check failure on line 174 in src/01/z2ui5_cl_cc_sample_messaging_2.clas.abap

View check run for this annotation

abaplint / abaplint / abap_cloud_readiness

Class z2ui5_cl_cc_messaging not found

https://rules.abaplint.org/check_syntax
)->_generic( ns = `html` name = `script` )->_cc_plain_xml( z2ui5_cl_cc_message_m=>get_js( ) )->get_parent(
)->_z2ui5( )->timer( client->_event( `START` )
)->stringify( ) ).

ENDIF.

CASE client->get( )-event.
WHEN 'START'.
view_display_master( ).
view_display_detail( ).

WHEN `UPDATE_DETAIL`.
view_display_detail( ).

WHEN 'TEST'.
client->message_toast_display( `output: ` && mv_input_master ).

WHEN `NEST_TEST`.

mv_check_enabled_01 = xsdbool( mv_check_enabled_01 = abap_false ).
mv_check_enabled_02 = xsdbool( mv_check_enabled_01 = abap_false ).
client->message_toast_display( mv_input_detail ).

WHEN 'BACK'.
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
ENDCASE.

ENDMETHOD.
ENDCLASS.
16 changes: 16 additions & 0 deletions src/01/z2ui5_cl_cc_sample_messaging_2.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_CC_SAMPLE_MESSAGING_2</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>nested view - master detail</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

0 comments on commit 5355985

Please sign in to comment.