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'
)->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'

View File

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

View File

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

View File

@ -54,10 +54,6 @@ CLASS z2ui5_cl_app_demo_21 DEFINITION PUBLIC.
IMPORTING
client TYPE REF TO z2ui5_if_client.
METHODS view_popup_bal
IMPORTING
client TYPE REF TO z2ui5_if_client.
METHODS view_popup_table
IMPORTING
client TYPE REF TO z2ui5_if_client.
@ -115,10 +111,6 @@ CLASS Z2UI5_CL_APP_DEMO_21 IMPLEMENTATION.
press = client->_event( 'POPUP_TO_INPUT' ) ).
grid->simple_form( 'Tables' )->content( 'form'
)->label( '01'
)->button(
text = 'Show bapiret tab'
press = client->_event( 'POPUP_BAL' )
)->label( '02'
)->button(
text = 'Popup to select'
@ -128,42 +120,6 @@ CLASS Z2UI5_CL_APP_DEMO_21 IMPLEMENTATION.
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.
DATA(popup) = z2ui5_cl_xml_view_helper=>factory(
@ -393,8 +349,6 @@ CLASS Z2UI5_CL_APP_DEMO_21 IMPLEMENTATION.
view_popup_textarea_size( client ).
WHEN 'POPUP_TO_INPUT'.
view_popup_input( client ).
WHEN 'POPUP_BAL'.
view_popup_bal( client ).
WHEN 'POPUP_TABLE'.
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
IMPORTING
app TYPE ref to z2ui5_if_app
app TYPE REF TO z2ui5_if_app
get TYPE z2ui5_if_client=>ty_s_get
RETURNING
VALUE(result) TYPE string.
@ -56,12 +56,24 @@ CLASS z2ui5_cl_xml_view_helper DEFINITION
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_xml_view_helper.
METHODS Dynamic_Page_Header
IMPORTING
pinnable TYPE clike OPTIONAL
RETURNING
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
IMPORTING
class TYPE clike OPTIONAL
@ -637,7 +649,7 @@ CLASS z2ui5_cl_xml_view_helper DEFINITION
IMPORTING
text TYPE clike OPTIONAL
href TYPE clike OPTIONAL
target type clike optional
target TYPE clike OPTIONAL
enabled TYPE clike OPTIONAL
ns TYPE clike OPTIONAL
RETURNING
@ -2062,7 +2074,7 @@ CLASS z2ui5_cl_xml_view_helper IMPLEMENTATION.
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.
_generic(
@ -2302,13 +2314,33 @@ CLASS z2ui5_cl_xml_view_helper IMPLEMENTATION.
METHOD hlp_get_source_code_url.
DATA(lv_url) = get-t_req_header[ name = `referer` ]-value.
SPLIT lv_url AT '?' INTO lv_url DATA(lv_dummy).
DATA(lv_url) = get-t_req_header[ name = `referer` ]-value.
SPLIT lv_url AT '?' INTO lv_url DATA(lv_dummy).
" result-url_app = lv_url && `?sap-client=` && sy-mandt && `&app=` && _=>get_classname_by_ref( mo_runtime->ms_db-o_app ).
result = z2ui5_cl_http_handler=>client-t_header[ name = `origin` ]-value && `/sap/bc/adt/oo/classes/` && _=>get_classname_by_ref( app ) && `/source/main`.
" result-url_app = lv_url && `?sap-client=` && sy-mandt && `&app=` && _=>get_classname_by_ref( mo_runtime->ms_db-o_app ).
result = z2ui5_cl_http_handler=>client-t_header[ name = `origin` ]-value && `/sap/bc/adt/oo/classes/` && _=>get_classname_by_ref( app ) && `/source/main`.
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.

View File

@ -1645,7 +1645,9 @@ CLASS z2ui5_lcl_system_runtime IMPLEMENTATION.
IF check_gen_data = abap_true.
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.
DATA(lo_datadescr) = cl_abap_datadescr=>describe_by_data( lr_ref->* ).
lr_attri->gen_type_kind = lo_datadescr->type_kind.