bugfix gen reference (#159)

* fix shell

* illustrated message

* add messages and popups

* fix geenric references
This commit is contained in:
oblomov 2023-04-11 11:36:22 +02:00
parent d0d52dd10c
commit 6a38857051
10 changed files with 279 additions and 57 deletions

View File

@ -93,7 +93,9 @@ CLASS z2ui5_cl_app_demo_00 IMPLEMENTATION.
). ).
grid->simple_form( title = 'HowTo - Messages' layout = 'ResponsiveGridLayout' )->content( 'form' grid->simple_form( title = 'HowTo - Messages' layout = 'ResponsiveGridLayout' )->content( 'form'
)->button( text = 'Messages (Toast, Box, Strip)' press = client->_event( 'z2ui5_cl_app_demo_08' ) )->button( text = 'Toast, Box & Strip' press = client->_event( 'z2ui5_cl_app_demo_08' )
)->button( text = 'Illustrated Message' press = client->_event( 'z2ui5_cl_app_demo_33' )
)->button( text = 'T100 & bapiret popup' press = client->_event( 'z2ui5_cl_app_demo_34' )
). ).
DATA(form) = page->grid( 'L9 M12 S12' DATA(form) = page->grid( 'L9 M12 S12'

View File

@ -5,7 +5,7 @@
<VSEOCLASS> <VSEOCLASS>
<CLSNAME>Z2UI5_CL_APP_DEMO_08</CLSNAME> <CLSNAME>Z2UI5_CL_APP_DEMO_08</CLSNAME>
<LANGU>E</LANGU> <LANGU>E</LANGU>
<DESCRIPT>basic - messages</DESCRIPT> <DESCRIPT>messages - basic</DESCRIPT>
<STATE>1</STATE> <STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL> <CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT> <FIXPT>X</FIXPT>

View File

@ -54,7 +54,7 @@ CLASS Z2UI5_CL_APP_DEMO_19 IMPLEMENTATION.
ENDCASE. ENDCASE.
DATA(page) = z2ui5_cl_xml_view_helper=>factory( DATA(page) = z2ui5_cl_xml_view_helper=>factory( )->shell(
)->page( )->page(
title = 'abap2UI5 - Table with different Selection Modes' title = 'abap2UI5 - Table with different Selection Modes'
navbuttonpress = client->_event( 'BACK' ) navbuttonpress = client->_event( 'BACK' )

View File

@ -54,10 +54,6 @@ CLASS z2ui5_cl_app_demo_21 DEFINITION PUBLIC.
IMPORTING IMPORTING
client TYPE REF TO z2ui5_if_client. client TYPE REF TO z2ui5_if_client.
METHODS view_popup_bal
IMPORTING
client TYPE REF TO z2ui5_if_client.
METHODS view_popup_table METHODS view_popup_table
IMPORTING IMPORTING
client TYPE REF TO z2ui5_if_client. client TYPE REF TO z2ui5_if_client.
@ -115,10 +111,6 @@ CLASS Z2UI5_CL_APP_DEMO_21 IMPLEMENTATION.
press = client->_event( 'POPUP_TO_INPUT' ) ). press = client->_event( 'POPUP_TO_INPUT' ) ).
grid->simple_form( 'Tables' )->content( 'form' grid->simple_form( 'Tables' )->content( 'form'
)->label( '01'
)->button(
text = 'Show bapiret tab'
press = client->_event( 'POPUP_BAL' )
)->label( '02' )->label( '02'
)->button( )->button(
text = 'Popup to select' text = 'Popup to select'
@ -128,42 +120,6 @@ CLASS Z2UI5_CL_APP_DEMO_21 IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD view_popup_bal.
DATA(popup) = z2ui5_cl_xml_view_helper=>factory(
)->dialog( 'abap2ui5 - Popup Message Log'
)->table( client->_bind( t_bapiret )
)->columns(
)->column( '5rem'
)->text( 'Type' )->get_parent(
)->column( '5rem'
)->text( 'Number' )->get_parent(
)->column( '5rem'
)->text( 'ID' )->get_parent(
)->column(
)->text( 'Message' )->get_parent(
)->get_parent(
)->items(
)->column_list_item(
)->cells(
)->text( '{TYPE}'
)->text( '{NUMBER}'
)->text( '{ID}'
)->text( '{MESSAGE}'
)->get_parent( )->get_parent( )->get_parent( )->get_parent(
)->footer( )->overflow_toolbar(
)->toolbar_spacer(
)->button(
text = 'close'
press = client->_event( 'POPUP_BAL_CLOSE' )
type = 'Emphasized' ).
mv_popup_xml = popup->get_root( )->xml_get( ).
ENDMETHOD.
METHOD view_popup_decide. METHOD view_popup_decide.
DATA(popup) = z2ui5_cl_xml_view_helper=>factory( DATA(popup) = z2ui5_cl_xml_view_helper=>factory(
@ -393,8 +349,6 @@ CLASS Z2UI5_CL_APP_DEMO_21 IMPLEMENTATION.
view_popup_textarea_size( client ). view_popup_textarea_size( client ).
WHEN 'POPUP_TO_INPUT'. WHEN 'POPUP_TO_INPUT'.
view_popup_input( client ). view_popup_input( client ).
WHEN 'POPUP_BAL'.
view_popup_bal( client ).
WHEN 'POPUP_TABLE'. WHEN 'POPUP_TABLE'.
view_popup_table( client ). view_popup_table( client ).

View File

@ -0,0 +1,45 @@
CLASS z2ui5_cl_app_demo_33 DEFINITION PUBLIC.
PUBLIC SECTION.
INTERFACES z2ui5_if_app.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS z2ui5_cl_app_demo_33 IMPLEMENTATION.
METHOD z2ui5_if_app~controller.
CASE client->get( )-event.
WHEN 'BUTTON_MESSAGE_BOX'.
client->popup_message_box( 'this is a message box' ).
WHEN 'BACK'.
client->nav_app_leave( client->get_app( client->get( )-id_prev_app_stack ) ).
ENDCASE.
DATA(page) = z2ui5_cl_xml_view_helper=>factory( )->shell(
)->page(
title = 'abap2UI5 - Messages'
navbuttonpress = client->_event( 'BACK' )
shownavbutton = abap_true
)->header_content(
)->link(
text = 'Source_Code' target = '_blank'
href = z2ui5_cl_xml_view_helper=>hlp_get_source_code_url( app = me get = client->get( ) )
)->get_parent( ).
page->illustrated_message(
illustrationtype = 'sapIllus-NoActivities'
)->additional_content( )->button(
text = 'information'
press = client->_event( 'BUTTON_MESSAGE_BOX' ) ).
client->set_next( VALUE #( xml_main = page->get_root( )->xml_get( ) ) ).
ENDMETHOD.
ENDCLASS.

View File

@ -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_APP_DEMO_33</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>messages - illustrated</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -0,0 +1,155 @@
CLASS z2ui5_cl_app_demo_34 DEFINITION PUBLIC.
PUBLIC SECTION.
INTERFACES z2ui5_if_app.
TYPES:
BEGIN OF ty_row,
selkz TYPE abap_bool,
title TYPE string,
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 mv_textarea TYPE string.
DATA mv_stretch_active TYPE abap_bool.
DATA:
BEGIN OF ms_popup_input,
value1 TYPE string,
value2 TYPE string,
check_is_active TYPE abap_bool,
combo_key TYPE string,
END OF ms_popup_input.
DATA t_bapiret TYPE bapirettab.
DATA check_initialized TYPE abap_bool.
DATA mv_popup_name TYPE string.
DATA mv_main_xml TYPE string.
DATA mv_popup_xml TYPE string.
METHODS view_main
IMPORTING
client TYPE REF TO z2ui5_if_client.
METHODS view_popup_bal
IMPORTING
client TYPE REF TO z2ui5_if_client.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS Z2UI5_CL_APP_DEMO_34 IMPLEMENTATION.
METHOD view_main.
DATA(page) = z2ui5_cl_xml_view_helper=>factory(
)->page(
title = 'abap2UI5 - Popups'
navbuttonpress = client->_event( 'BACK' )
shownavbutton = abap_true
)->header_content(
" )->link(
" text = 'Demo' target = '_blank'
" href = 'https://twitter.com/OblomovDev/status/1637163852264624139'
)->link(
text = 'Source_Code' target = '_blank' href = z2ui5_cl_xml_view_helper=>hlp_get_source_code_url( app = me get = client->get( ) )
)->get_parent( ).
DATA(grid) = page->grid( 'L8 M12 S12' )->content( 'l' ).
grid->simple_form( 'Tables' )->content( 'form'
)->label( '01'
)->button(
text = 'Show bapiret tab'
press = client->_event( 'POPUP_BAL' )
).
mv_main_xml = page->get_root( )->xml_get( ).
ENDMETHOD.
METHOD view_popup_bal.
DATA(popup) = z2ui5_cl_xml_view_helper=>factory(
)->dialog( 'abap2ui5 - Popup Message Log'
)->table( client->_bind( t_bapiret )
)->columns(
)->column( '5rem'
)->text( 'Type' )->get_parent(
)->column( '5rem'
)->text( 'Number' )->get_parent(
)->column( '5rem'
)->text( 'ID' )->get_parent(
)->column(
)->text( 'Message' )->get_parent(
)->get_parent(
)->items(
)->column_list_item(
)->cells(
)->text( '{TYPE}'
)->text( '{NUMBER}'
)->text( '{ID}'
)->text( '{MESSAGE}'
)->get_parent( )->get_parent( )->get_parent( )->get_parent(
)->footer( )->overflow_toolbar(
)->toolbar_spacer(
)->button(
text = 'close'
press = client->_event( 'POPUP_BAL_CLOSE' )
type = 'Emphasized' ).
mv_popup_xml = popup->get_root( )->xml_get( ).
ENDMETHOD.
METHOD z2ui5_if_app~controller.
IF check_initialized = abap_false.
check_initialized = abap_true.
t_bapiret = VALUE #(
( message = 'An empty Report field causes an empty XML Message to be sent' type = 'E' id = 'MSG1' number = '001' )
( message = 'Check was executed for wrong Scenario' type = 'E' id = 'MSG1' number = '002' )
( message = 'Request was handled without errors' type = 'S' id = 'MSG1' number = '003' )
( message = 'product activated' type = 'S' id = 'MSG4' number = '375' )
( message = 'check the input values' type = 'W' id = 'MSG2' number = '375' )
( message = 'product already in use' type = 'I' id = 'MSG2' number = '375' )
).
ENDIF.
mv_popup_name = ''.
CASE client->get( )-event.
WHEN 'POPUP_BAL'.
mv_popup_name = 'POPUP_BAL'.
WHEN 'BACK'.
client->nav_app_leave( client->get_app( client->get( )-id_prev_app_stack ) ).
ENDCASE.
view_main( client ).
CASE mv_popup_name.
WHEN 'POPUP_BAL'.
view_popup_bal( client ).
ENDCASE.
client->set_next( VALUE #( xml_main = mv_main_xml xml_popup = mv_popup_xml ) ).
CLEAR: mv_main_xml, mv_popup_xml.
ENDMETHOD.
ENDCLASS.

View File

@ -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_APP_DEMO_34</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>messages - t100 bapiret</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -29,7 +29,7 @@ CLASS z2ui5_cl_xml_view_helper DEFINITION
CLASS-METHODS hlp_get_source_code_url CLASS-METHODS hlp_get_source_code_url
IMPORTING IMPORTING
app TYPE ref to z2ui5_if_app app TYPE REF TO z2ui5_if_app
get TYPE z2ui5_if_client=>ty_s_get get TYPE z2ui5_if_client=>ty_s_get
RETURNING RETURNING
VALUE(result) TYPE string. VALUE(result) TYPE string.
@ -56,12 +56,24 @@ CLASS z2ui5_cl_xml_view_helper DEFINITION
RETURNING RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_xml_view_helper. VALUE(result) TYPE REF TO z2ui5_cl_xml_view_helper.
METHODS Dynamic_Page_Header METHODS Dynamic_Page_Header
IMPORTING IMPORTING
pinnable TYPE clike OPTIONAL pinnable TYPE clike OPTIONAL
RETURNING RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_xml_view_helper. VALUE(result) TYPE REF TO z2ui5_cl_xml_view_helper.
METHODS Illustrated_Message
IMPORTING
enableVerticalResponsiveness TYPE clike OPTIONAL
illustrationType TYPE clike OPTIONAL
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_xml_view_helper.
METHODS additional_Content
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_xml_view_helper.
METHODS flex_box METHODS flex_box
IMPORTING IMPORTING
class TYPE clike OPTIONAL class TYPE clike OPTIONAL
@ -637,7 +649,7 @@ CLASS z2ui5_cl_xml_view_helper DEFINITION
IMPORTING IMPORTING
text TYPE clike OPTIONAL text TYPE clike OPTIONAL
href TYPE clike OPTIONAL href TYPE clike OPTIONAL
target type clike optional target TYPE clike OPTIONAL
enabled TYPE clike OPTIONAL enabled TYPE clike OPTIONAL
ns TYPE clike OPTIONAL ns TYPE clike OPTIONAL
RETURNING RETURNING
@ -2062,7 +2074,7 @@ CLASS z2ui5_cl_xml_view_helper IMPLEMENTATION.
METHOD title. METHOD title.
data(lv_name) = COND #( WHEN ns = 'f' THEN 'title' ELSE `Title` ). DATA(lv_name) = COND #( WHEN ns = 'f' THEN 'title' ELSE `Title` ).
result = me. result = me.
_generic( _generic(
@ -2311,4 +2323,24 @@ CLASS z2ui5_cl_xml_view_helper IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD additional_content.
result = _generic(
name = `additionalContent`
).
ENDMETHOD.
METHOD illustrated_message.
result = _generic(
name = `IllustratedMessage`
t_prop = VALUE #(
( n = `enableVerticalResponsiveness` v = enableVerticalResponsiveness )
( n = `illustrationType` v = illustrationType )
) ).
ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -1645,7 +1645,9 @@ CLASS z2ui5_lcl_system_runtime IMPLEMENTATION.
IF check_gen_data = abap_true. IF check_gen_data = abap_true.
TRY. TRY.
DATA(lr_ref) = CAST data( lr_ref2->* ). FIELD-SYMBOLS <field> type any.
assign lr_ref2->* to <field>.
DATA(lr_ref) = CAST data( <field> ).
IF lr_attri->gen_type IS INITIAL. IF lr_attri->gen_type IS INITIAL.
DATA(lo_datadescr) = cl_abap_datadescr=>describe_by_data( lr_ref->* ). DATA(lo_datadescr) = cl_abap_datadescr=>describe_by_data( lr_ref->* ).
lr_attri->gen_type_kind = lo_datadescr->type_kind. lr_attri->gen_type_kind = lo_datadescr->type_kind.