mirror of
https://github.com/abap2UI5/abap2UI5.git
synced 2025-04-29 02:58:20 +08:00
115 lines
3.0 KiB
ABAP
115 lines
3.0 KiB
ABAP
CLASS z2ui5_cl_pop_messages DEFINITION
|
|
PUBLIC FINAL
|
|
CREATE PUBLIC.
|
|
|
|
PUBLIC SECTION.
|
|
|
|
INTERFACES z2ui5_if_app.
|
|
|
|
TYPES:
|
|
BEGIN OF ty_s_msg,
|
|
type TYPE string,
|
|
id TYPE string,
|
|
title TYPE string,
|
|
subtitle TYPE string,
|
|
number TYPE string,
|
|
message TYPE string,
|
|
message_v1 TYPE string,
|
|
message_v2 TYPE string,
|
|
message_v3 TYPE string,
|
|
message_v4 TYPE string,
|
|
group TYPE string,
|
|
END OF ty_s_msg.
|
|
TYPES ty_t_msg TYPE STANDARD TABLE OF ty_s_msg.
|
|
|
|
DATA mt_msg TYPE ty_t_msg.
|
|
|
|
CLASS-METHODS factory
|
|
IMPORTING
|
|
i_messages TYPE STANDARD TABLE
|
|
i_title TYPE string DEFAULT `abap2UI5 - Message Popup`
|
|
RETURNING
|
|
VALUE(r_result) TYPE REF TO z2ui5_cl_pop_messages.
|
|
|
|
PROTECTED SECTION.
|
|
DATA client TYPE REF TO z2ui5_if_client.
|
|
DATA title TYPE string.
|
|
DATA check_initialized TYPE abap_bool.
|
|
|
|
METHODS view_display.
|
|
|
|
PRIVATE SECTION.
|
|
ENDCLASS.
|
|
|
|
|
|
CLASS z2ui5_cl_pop_messages IMPLEMENTATION.
|
|
METHOD factory.
|
|
|
|
r_result = NEW #( ).
|
|
DATA(lt_msg) = z2ui5_cl_util=>msg_get( i_messages ).
|
|
|
|
LOOP AT lt_msg REFERENCE INTO DATA(lr_row).
|
|
|
|
DATA(ls_row) = VALUE ty_s_msg( ).
|
|
ls_row-type = z2ui5_cl_util=>ui5_get_msg_type( lr_row->type ).
|
|
ls_row-title = lr_row->text.
|
|
* lr_row->title = `title`.
|
|
* lr_row->message = `message`.
|
|
ls_row-subtitle = |{ lr_row->id } { lr_row->no }|.
|
|
* lr_row->group = `001`.
|
|
|
|
INSERT ls_row INTO TABLE r_result->mt_msg.
|
|
ENDLOOP.
|
|
|
|
r_result->title = i_title.
|
|
|
|
ENDMETHOD.
|
|
|
|
METHOD view_display.
|
|
|
|
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( ).
|
|
popup = popup->dialog( title = `Messages`
|
|
contentheight = '50%'
|
|
contentwidth = '50%'
|
|
verticalScrolling = abap_false
|
|
afterclose = client->_event( 'BUTTON_CONTINUE' )
|
|
).
|
|
|
|
popup->message_view( items = client->_bind( mt_msg )
|
|
* groupitems = abap_true
|
|
)->message_item( type = `{TYPE}`
|
|
title = `{TITLE}`
|
|
subtitle = `{SUBTITLE}`
|
|
* description = `{MESSAGE}`
|
|
* groupname = `{GROUP}`
|
|
).
|
|
|
|
popup->buttons(
|
|
)->button( text = 'continue'
|
|
press = client->_event( 'BUTTON_CONTINUE' )
|
|
type = 'Emphasized' ).
|
|
|
|
client->popup_display( popup->stringify( ) ).
|
|
|
|
ENDMETHOD.
|
|
|
|
METHOD z2ui5_if_app~main.
|
|
|
|
me->client = client.
|
|
|
|
IF check_initialized = abap_false.
|
|
check_initialized = abap_true.
|
|
view_display( ).
|
|
RETURN.
|
|
ENDIF.
|
|
|
|
CASE client->get( )-event.
|
|
WHEN `BUTTON_CONTINUE`.
|
|
client->popup_destroy( ).
|
|
client->nav_app_leave( ).
|
|
WHEN OTHERS.
|
|
ENDCASE.
|
|
|
|
ENDMETHOD.
|
|
ENDCLASS.
|