Refactoring (#946)

* refactoring

* lint fixes
This commit is contained in:
oblomov 2024-02-24 12:48:20 +01:00 committed by GitHub
parent b747a388c7
commit 8706752a45
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 286 additions and 568 deletions

View File

@ -33,6 +33,7 @@ CLASS z2ui5_cl_popup_get_range DEFINITION
RETURNING
VALUE(result) TYPE ty_s_result.
DATA mt_mapping TYPE z2ui5_if_types=>ty_t_name_value.
PROTECTED SECTION.
DATA client TYPE REF TO z2ui5_if_client.
@ -43,7 +44,8 @@ ENDCLASS.
CLASS z2ui5_cl_popup_get_range IMPLEMENTATION.
CLASS Z2UI5_CL_POPUP_GET_RANGE IMPLEMENTATION.
METHOD factory.
@ -63,6 +65,7 @@ CLASS z2ui5_cl_popup_get_range IMPLEMENTATION.
METHOD view_display.
DATA(lo_popup) = z2ui5_cl_xml_view=>factory_popup( ).
lo_popup = lo_popup->dialog(
@ -85,7 +88,7 @@ CLASS z2ui5_cl_popup_get_range IMPLEMENTATION.
grid->combobox(
selectedkey = `{OPTION}`
items = client->_bind_local( z2ui5_cl_util=>filter_get_token_range_mapping( ) )
items = client->_bind( mt_mapping )
)->item(
key = '{N}'
text = '{N}'
@ -128,6 +131,8 @@ CLASS z2ui5_cl_popup_get_range IMPLEMENTATION.
IF check_initialized = abap_false.
check_initialized = abap_true.
mt_mapping = z2ui5_cl_util=>filter_get_token_range_mapping( ).
CLEAR mt_filter.
LOOP AT ms_result-t_range REFERENCE INTO DATA(lr_product).
INSERT VALUE #(
@ -143,6 +148,7 @@ CLASS z2ui5_cl_popup_get_range IMPLEMENTATION.
ENDIF.
CASE client->get( )-event.
WHEN `BUTTON_CONFIRM`.
CLEAR ms_result-t_range.

View File

@ -5,10 +5,38 @@ CLASS z2ui5_cl_popup_get_range_multi DEFINITION
PUBLIC SECTION.
INTERFACES z2ui5_if_app.
TYPES:
BEGIN OF ty_s_variant,
uname TYPE string,
handle1 TYPE string,
handle2 TYPE string,
handle3 TYPE string,
END OF ty_s_variant.
DATA ms_variant TYPE ty_s_variant.
TYPES:
BEGIN OF ty_s_variant_out,
s_variant TYPE ty_s_variant,
description TYPE string,
selkz TYPE abap_bool,
check_user TYPE abap_bool,
check_default TYPE abap_bool,
t_filter TYPE z2ui5_cl_util=>ty_t_filter_multi,
END OF ty_s_variant_out.
TYPES ty_t_variant_out TYPE STANDARD TABLE OF ty_s_variant_out WITH EMPTY KEY.
DATA mt_variant TYPE ty_t_variant_out.
DATA ms_variant_save TYPE ty_s_variant_out.
CLASS-METHODS factory
IMPORTING
val TYPE z2ui5_cl_util=>ty_t_filter_multi
o_variant TYPE REF TO z2ui5_cl_popup_get_variant
check_db_active TYPE abap_bool DEFAULT abap_true
var_check_user TYPE abap_bool DEFAULT abap_true
var_handle1 TYPE clike DEFAULT sy-repid
var_handle2 TYPE clike OPTIONAL
var_handle3 TYPE clike OPTIONAL
RETURNING
VALUE(r_result) TYPE REF TO z2ui5_cl_popup_get_range_multi.
@ -21,33 +49,111 @@ CLASS z2ui5_cl_popup_get_range_multi DEFINITION
DATA ms_result TYPE ty_s_result.
METHODS result
RETURNING VALUE(result) TYPE ty_s_result.
RETURNING
VALUE(result) TYPE ty_s_result.
PROTECTED SECTION.
DATA o_variant TYPE REF TO z2ui5_cl_popup_get_variant.
DATA check_db_active TYPE abap_bool.
DATA client TYPE REF TO z2ui5_if_client.
DATA check_initialized TYPE abap_bool.
DATA mv_popup_name TYPE LINE OF string_table.
METHODS popup_display.
METHODS popup_variant_read.
METHODS popup_variant_save.
METHODS init.
METHODS db_read.
METHODS db_save.
METHODS save_variant.
PRIVATE SECTION.
ENDCLASS.
CLASS z2ui5_cl_popup_get_range_multi IMPLEMENTATION.
CLASS Z2UI5_CL_POPUP_GET_RANGE_MULTI IMPLEMENTATION.
METHOD db_read.
TRY.
CLEAR mt_variant.
DATA lt_variant_user TYPE ty_t_variant_out.
z2ui5_cl_util=>db_load_by_handle(
EXPORTING
uname = ms_variant-uname
handle = ms_variant-handle1
handle2 = ms_variant-handle2
handle3 = ms_variant-handle3
IMPORTING
result = lt_variant_user ).
INSERT LINES OF lt_variant_user INTO TABLE mt_variant.
DATA lt_variant TYPE ty_t_variant_out.
z2ui5_cl_util=>db_load_by_handle(
EXPORTING
handle = ms_variant-handle1
handle2 = ms_variant-handle2
handle3 = ms_variant-handle3
IMPORTING
result = lt_variant
).
INSERT LINES OF lt_variant INTO TABLE mt_variant.
CATCH cx_root.
ENDTRY.
ENDMETHOD.
METHOD db_save.
DATA(lt_variant_user) = mt_variant.
DELETE lt_variant_user WHERE s_variant-uname IS INITIAL.
z2ui5_cl_util=>db_save(
uname = ms_variant-uname
handle = ms_variant-handle1
handle2 = ms_variant-handle2
handle3 = ms_variant-handle3
data = lt_variant_user
).
DATA(lt_variant) = mt_variant.
DELETE lt_variant WHERE s_variant-uname IS NOT INITIAL.
z2ui5_cl_util=>db_save(
handle = ms_variant-handle1
handle2 = ms_variant-handle2
handle3 = ms_variant-handle3
data = lt_variant
).
ENDMETHOD.
METHOD factory.
r_result = NEW #( ).
r_result->ms_result-t_sql = val.
r_result->o_variant = o_variant.
r_result->check_db_active = check_db_active.
r_result->ms_variant = VALUE #(
uname = COND #( WHEN var_check_user = abap_true THEN sy-uname )
handle1 = var_handle1
handle2 = var_handle2
handle3 = var_handle3
).
ENDMETHOD.
METHOD result.
result = ms_result.
METHOD init.
db_read( ).
popup_display( ).
ENDMETHOD.
METHOD popup_display.
DATA(lo_popup) = z2ui5_cl_xml_view=>factory_popup( ).
@ -64,8 +170,8 @@ CLASS z2ui5_cl_popup_get_range_multi IMPLEMENTATION.
selectionchange = client->_event( 'SELCHANGE' )
)->custom_list_item( ).
DATA(grid) = item->grid( ).
grid->label( `{NAME}` ).
DATA(grid) = item->grid( class = `sapUiSmallMarginTop sapUiSmallMarginBottom sapUiSmallMarginBegin` ).
grid->text( `{NAME}` ).
grid->multi_input( tokens = `{T_TOKEN}`
enabled = abap_false
@ -90,6 +196,13 @@ CLASS z2ui5_cl_popup_get_range_multi IMPLEMENTATION.
type = `Transparent`
press = client->_event( val = `POPUP_DELETE_ALL` )
)->toolbar_spacer(
)->button( text = 'DB Read'
press = client->_event( 'BUTTON_DB_READ' )
icon = 'sap-icon://download-from-cloud'
)->button( text = 'DB Save'
press = client->_event( 'BUTTON_DB_SAVE' )
icon = 'sap-icon://save'
)->toolbar_spacer(
)->button( text = 'Cancel'
press = client->_event( 'BUTTON_CANCEL' )
)->button( text = 'OK'
@ -99,12 +212,124 @@ CLASS z2ui5_cl_popup_get_range_multi IMPLEMENTATION.
client->popup_display( lo_popup->stringify( ) ).
ENDMETHOD.
METHOD popup_variant_read.
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( ).
DATA(dialog) = popup->dialog( title = 'Variant'
contentheight = `50%`
contentwidth = `50%`
afterclose = client->_event( 'DB_READ_CLOSE' ) ).
dialog->table(
mode = 'SingleSelectLeft'
items = client->_bind_edit( mt_variant )
)->columns(
)->column( )->text( 'Layout' )->get_parent(
)->column( )->text( 'Description' )->get_parent(
)->column( )->text( 'Default' )->get_parent(
)->get_parent(
)->items(
)->column_list_item( selected = '{SELKZ}'
)->cells(
)->text( '{S_VARIANT/HANDLE1}'
)->text( '{DESCR}'
)->text( '{DEF}' ).
dialog->footer( )->overflow_toolbar(
)->toolbar_spacer(
)->button(
text = 'Back'
icon = 'sap-icon://nav-back'
press = client->_event( 'DB_READ_CLOSE' )
)->button(
text = 'Open'
icon = 'sap-icon://accept'
press = client->_event( 'OPEN_SELECT' )
type = 'Emphasized' ).
client->popup_display( popup->stringify( ) ).
ENDMETHOD.
METHOD popup_variant_save.
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( ).
DATA(dialog) = popup->dialog( title = 'Save'
contentheight = `50%`
contentwidth = `50%`
afterclose = client->_event( 'DB_SAVE_CLOSE' ) ).
DATA(form) = dialog->simple_form( title = 'Layout'
editable = abap_true
labelspanxl = `4`
labelspanl = `4`
labelspanm = `4`
labelspans = `4`
adjustlabelspan = abap_false
).
form->toolbar( )->title( 'Layout' ).
form->content( 'form'
)->label( 'Layout'
)->input( client->_bind_edit( ms_variant_save-s_variant-handle1 )
)->label( 'Description'
)->input( client->_bind_edit( ms_variant_save-description ) ).
form->toolbar( )->title( `` ).
form->content( 'form'
)->label( 'Default Layout'
)->switch( type = 'AcceptReject' state = client->_bind_edit( ms_variant_save-check_default )
)->label( 'User specific'
)->switch( type = 'AcceptReject' state = client->_bind_edit( ms_variant_save-check_user )
).
dialog->footer( )->overflow_toolbar(
)->toolbar_spacer(
)->button(
text = 'Back'
icon = 'sap-icon://nav-back'
press = client->_event( 'DB_SAVE_CLOSE' )
)->button(
text = 'Save'
press = client->_event( 'DB_SAVE' )
type = 'Success'
icon = 'sap-icon://save' ).
client->popup_display( popup->get_root( )->xml_get( ) ).
ENDMETHOD.
METHOD result.
result = ms_result.
ENDMETHOD.
METHOD save_variant.
db_read( ).
ms_variant_save-t_filter = ms_result-t_sql.
INSERT ms_variant_save INTO TABLE mt_variant.
db_save( ).
db_read( ).
popup_display( ).
client->message_toast_display( `Variant saved` ).
ENDMETHOD.
METHOD z2ui5_if_app~main.
me->client = client.
IF check_initialized = abap_false.
check_initialized = abap_true.
popup_display( ).
init( ).
RETURN.
ENDIF.
@ -135,6 +360,21 @@ CLASS z2ui5_cl_popup_get_range_multi IMPLEMENTATION.
DATA(ls_sql) = ms_result-t_sql[ name = mv_popup_name ].
client->nav_app_call( z2ui5_cl_popup_get_range=>factory( ls_sql-t_range ) ).
WHEN `BUTTON_DB_READ`.
popup_variant_read( ).
WHEN 'BUTTON_DB_SAVE'.
popup_variant_save( ).
WHEN `DB_SAVE_CLOSE`.
popup_display( ).
WHEN `DB_READ_CLOSE`.
popup_display( ).
WHEN `DB_SAVE`.
save_variant( ).
WHEN `BUTTON_CONFIRM`.
ms_result-check_confirmed = abap_true.
client->popup_destroy( ).
@ -144,6 +384,11 @@ CLASS z2ui5_cl_popup_get_range_multi IMPLEMENTATION.
client->popup_destroy( ).
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
WHEN `OPEN_SELECT`.
DATA(ls_variant) = mt_variant[ selkz = abap_true ].
ms_result-t_sql = ls_variant-t_filter.
popup_display( ).
WHEN `POPUP_DELETE_ALL`.
LOOP AT ms_result-t_sql REFERENCE INTO DATA(lr_sql).
CLEAR lr_sql->t_range.

View File

@ -1,340 +0,0 @@
CLASS z2ui5_cl_popup_get_variant DEFINITION
PUBLIC FINAL
CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES z2ui5_if_app.
TYPES:
BEGIN OF ty_s_layo,
layout TYPE c LENGTH 12,
tab TYPE c LENGTH 30,
descr TYPE c LENGTH 50,
classname TYPE c LENGTH 30,
def TYPE c LENGTH 1,
uname TYPE c LENGTH 12,
selkz TYPE abap_bool,
END OF ty_s_layo.
TYPES ty_t_layo TYPE STANDARD TABLE OF ty_s_layo WITH EMPTY KEY.
DATA mv_layout TYPE string.
DATA mv_descr TYPE string.
DATA mv_usr TYPE string.
DATA mv_def TYPE string.
DATA mt_t001 TYPE ty_t_layo.
CLASS-METHODS factory_save
IMPORTING
val TYPE z2ui5_cl_util=>ty_t_filter_multi
RETURNING
VALUE(r_result) TYPE REF TO z2ui5_cl_popup_get_variant.
CLASS-METHODS factory_load
IMPORTING
val TYPE z2ui5_cl_util=>ty_t_filter_multi
RETURNING
VALUE(r_result) TYPE REF TO z2ui5_cl_popup_get_variant.
METHODS db_read_multi.
METHODS db_save.
TYPES:
BEGIN OF ty_s_result,
t_sql TYPE z2ui5_cl_util=>ty_t_filter_multi,
check_confirmed TYPE abap_bool,
END OF ty_s_result.
DATA ms_result TYPE ty_s_result.
METHODS result
RETURNING
VALUE(result) TYPE ty_s_result.
PROTECTED SECTION.
DATA client TYPE REF TO z2ui5_if_client.
DATA check_initialized TYPE abap_bool.
DATA mv_popup_name TYPE LINE OF string_table.
METHODS popup_display.
PRIVATE SECTION.
METHODS render_open.
METHODS render_delete.
METHODS render_save.
ENDCLASS.
CLASS z2ui5_cl_popup_get_variant IMPLEMENTATION.
METHOD db_read_multi.
ENDMETHOD.
METHOD db_save.
ENDMETHOD.
METHOD factory_load.
r_result = NEW #( ).
r_result->ms_result-t_sql = val.
ENDMETHOD.
METHOD factory_save.
r_result = NEW #( ).
r_result->ms_result-t_sql = val.
ENDMETHOD.
METHOD popup_display.
render_delete( ).
render_open( ).
render_save( ).
DATA(lo_popup) = z2ui5_cl_xml_view=>factory_popup( ).
lo_popup = lo_popup->dialog( afterclose = client->_event( 'BUTTON_CANCEL' )
contentheight = `50%`
contentwidth = `50%`
title = 'Define Filter Conditons' ).
DATA(vbox) = lo_popup->vbox( height = `100%`
justifycontent = 'SpaceBetween' ).
DATA(item) = vbox->list( nodata = `no conditions defined`
items = client->_bind( ms_result-t_sql )
selectionchange = client->_event( 'SELCHANGE' )
)->custom_list_item( ).
DATA(grid) = item->grid( ).
grid->label( `{NAME}` ).
grid->multi_input( tokens = `{T_TOKEN}`
enabled = abap_false
valuehelprequest = client->_event( val = `LIST_OPEN` t_arg = VALUE #( ( `${NAME}` ) ) )
)->tokens(
)->token( key = `{KEY}`
text = `{TEXT}`
visible = `{VISIBLE}`
selected = `{SELKZ}`
editable = `{EDITABLE}` ).
grid->button( text = `Select`
press = client->_event( val = `LIST_OPEN` t_arg = VALUE #( ( `${NAME}` ) ) ) ).
grid->button( icon = 'sap-icon://delete'
type = `Transparent`
text = `Clear`
press = client->_event( val = `LIST_DELETE` t_arg = VALUE #( ( `${NAME}` ) ) ) ).
lo_popup->footer( )->overflow_toolbar(
)->button( text = `Clear All`
icon = 'sap-icon://delete'
type = `Transparent`
press = client->_event( val = `POPUP_DELETE_ALL` )
)->toolbar_spacer(
)->button( text = 'Cancel'
press = client->_event( 'BUTTON_CANCEL' )
)->button( text = 'OK'
press = client->_event( 'BUTTON_CONFIRM' )
type = 'Emphasized' ).
client->popup_display( lo_popup->stringify( ) ).
ENDMETHOD.
METHOD render_delete.
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( ).
DATA(dialog) = popup->dialog( title = 'Layout'
afterclose = client->_event( 'CLOSE' ) ).
dialog->table(
headertext = 'Layout'
mode = 'SingleSelectLeft'
items = client->_bind_edit( mt_t001 )
)->columns(
)->column( )->text( 'Layout' )->get_parent(
)->column( )->text( 'Description'
)->get_parent( )->get_parent(
)->items(
)->column_list_item( selected = '{SELKZ}'
)->cells(
)->text( '{LAYOUT}'
)->text( '{DESCR}' ).
dialog->footer( )->overflow_toolbar(
)->toolbar_spacer(
)->button(
text = 'Back'
icon = 'sap-icon://nav-back'
press = client->_event( 'CLOSE' )
)->button(
text = 'Delete'
press = client->_event( 'DELETE_SELECT' )
type = 'Reject'
icon = 'sap-icon://delete' ).
client->popup_display( popup->stringify( ) ).
ENDMETHOD.
METHOD render_open.
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( ).
DATA(dialog) = popup->dialog( title = 'Layout'
afterclose = client->_event( 'CLOSE' ) ).
dialog->table(
headertext = 'Layout'
mode = 'SingleSelectLeft'
items = client->_bind_edit( mt_t001 )
)->columns(
)->column( )->text( 'Layout' )->get_parent(
)->column( )->text( 'Description' )->get_parent(
)->column( )->text( 'Default' )->get_parent(
)->get_parent(
)->items(
)->column_list_item( selected = '{SELKZ}'
)->cells(
)->text( '{LAYOUT}'
)->text( '{DESCR}'
)->text( '{DEF}' ).
dialog->footer( )->overflow_toolbar(
)->toolbar_spacer(
)->button(
text = 'Back'
icon = 'sap-icon://nav-back'
press = client->_event( 'CLOSE' )
)->button(
text = 'Open'
icon = 'sap-icon://accept'
press = client->_event( 'OPEN_SELECT' )
type = 'Emphasized' ).
client->popup_display( popup->stringify( ) ).
ENDMETHOD.
METHOD render_save.
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( ).
DATA(dialog) = popup->dialog( title = 'Save'
afterclose = client->_event( 'SAVE_CLOSE' ) ).
DATA(form) = dialog->simple_form( title = 'Layout'
editable = abap_true
labelspanxl = `4`
labelspanl = `4`
labelspanm = `4`
labelspans = `4`
adjustlabelspan = abap_false
).
form->toolbar( )->title( 'Layout' ).
form->content( 'form'
)->label( 'Layout'
)->input( client->_bind_edit( mv_layout )
)->label( 'Description'
)->input( client->_bind_edit( mv_descr ) ).
form->toolbar( )->title( `` ).
form->content( 'form'
)->label( 'Default Layout'
)->switch( type = 'AcceptReject' state = client->_bind_edit( mv_def )
)->label( 'User specific'
)->switch( type = 'AcceptReject' state = client->_bind_edit( mv_usr )
).
dialog->footer( )->overflow_toolbar(
)->toolbar_spacer(
)->button(
text = 'Back'
icon = 'sap-icon://nav-back'
press = client->_event( 'SAVE_CLOSE' )
)->button(
text = 'Save'
press = client->_event( 'SAVE_SAVE' )
type = 'Success'
icon = 'sap-icon://save' ).
client->popup_display( popup->get_root( )->xml_get( ) ).
ENDMETHOD.
METHOD result.
result = ms_result.
ENDMETHOD.
METHOD z2ui5_if_app~main.
me->client = client.
IF check_initialized = abap_false.
check_initialized = abap_true.
popup_display( ).
RETURN.
ENDIF.
IF client->get( )-check_on_navigated = abap_true.
DATA(lo_popup) = CAST z2ui5_cl_popup_get_range( client->get_app( client->get( )-s_draft-id_prev_app ) ).
IF lo_popup->result( )-check_confirmed = abap_true.
ASSIGN ms_result-t_sql[ name = mv_popup_name ] TO FIELD-SYMBOL(<tab>).
<tab>-t_range = lo_popup->result( )-t_range.
<tab>-t_token = z2ui5_cl_util=>filter_get_token_t_by_range_t( <tab>-t_range ).
ENDIF.
popup_display( ).
ENDIF.
CASE client->get( )-event.
WHEN 'LIST_DELETE'.
DATA(lt_event) = client->get( )-t_event_arg.
ASSIGN ms_result-t_sql[ name = lt_event[ 1 ] ] TO <tab>.
CLEAR <tab>-t_token.
CLEAR <tab>-t_range.
client->popup_model_update( ).
WHEN 'LIST_OPEN'.
lt_event = client->get( )-t_event_arg.
mv_popup_name = lt_event[ 1 ].
DATA(ls_sql) = ms_result-t_sql[ name = mv_popup_name ].
client->nav_app_call( z2ui5_cl_popup_get_range=>factory( ls_sql-t_range ) ).
WHEN `BUTTON_CONFIRM`.
ms_result-check_confirmed = abap_true.
client->popup_destroy( ).
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
WHEN `BUTTON_CANCEL`.
client->popup_destroy( ).
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
WHEN `POPUP_DELETE_ALL`.
LOOP AT ms_result-t_sql REFERENCE INTO DATA(lr_sql).
CLEAR lr_sql->t_range.
CLEAR lr_sql->t_token.
ENDLOOP.
client->popup_model_update( ).
ENDCASE.
ENDMETHOD.
ENDCLASS.

View File

@ -1,16 +0,0 @@
<?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_POPUP_GET_VARIANT</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>ui - popup get sel variants</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,159 +0,0 @@
CLASS z2ui5_cl_popup_layout DEFINITION
PUBLIC
FINAL
CREATE PROTECTED.
PUBLIC SECTION.
INTERFACES z2ui5_if_app.
TYPES:
BEGIN OF ty_s_layout,
name TYPE string,
visible TYPE abap_bool,
length TYPE string,
mergeduplicates TYPE abap_bool,
END OF ty_s_layout.
TYPES ty_t_layout TYPE STANDARD TABLE OF ty_s_layout WITH EMPTY KEY.
CLASS-METHODS factory
IMPORTING
t_layout TYPE ty_t_layout OPTIONAL
i_tab TYPE STANDARD TABLE OPTIONAL
RETURNING
VALUE(r_result) TYPE REF TO z2ui5_cl_popup_layout.
TYPES:
BEGIN OF ty_s_result,
t_layout TYPE ty_t_layout,
check_confirmed TYPE abap_bool,
END OF ty_s_result.
DATA ms_result TYPE ty_s_result.
METHODS result
RETURNING
VALUE(result) TYPE ty_s_result.
PROTECTED SECTION.
DATA check_initialized TYPE abap_bool.
DATA client TYPE REF TO z2ui5_if_client.
METHODS on_event.
METHODS display.
METHODS on_event_confirm.
PRIVATE SECTION.
ENDCLASS.
CLASS Z2UI5_CL_POPUP_LAYOUT IMPLEMENTATION.
METHOD display.
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog(
afterclose = client->_event( 'BUTTON_CONFIRM' )
stretch = abap_true
title = 'Layout View'
)->content( ).
DATA(tab) = popup->table(
client->_bind_edit( ms_result-t_layout ) ).
DATA(lt_comp) = z2ui5_cl_util=>rtti_get_t_attri_by_struc( ms_result-t_layout ).
DATA(list) = tab->column_list_item( valign = `Top` ).
DATA(cells) = list->cells( ).
DATA(columns) = tab->columns( ).
LOOP AT lt_comp INTO DATA(ls_comp2).
DATA(col) = columns->column( '8rem' )->header( `` ).
col->text( ls_comp2-name ).
ENDLOOP.
LOOP AT lt_comp INTO DATA(ls_comp).
IF ls_comp-name = 'NAME'.
cells->text( `{` && ls_comp-name && `}` ).
ELSE.
cells->checkbox( `{` && ls_comp-name && `}` ).
ENDIF.
ENDLOOP.
popup->get_parent(
)->footer( )->overflow_toolbar(
)->toolbar_spacer(
)->button(
text = 'OK'
press = client->_event( 'BUTTON_CONFIRM' )
type = 'Emphasized' ).
client->popup_display( popup->stringify( ) ).
ENDMETHOD.
METHOD factory.
r_result = NEW #( ).
IF t_layout IS INITIAL.
DATA(lt_comp) = z2ui5_cl_util=>rtti_get_t_attri_by_struc( i_tab ).
LOOP AT lt_comp REFERENCE INTO DATA(lr_comp).
INSERT VALUE #( name = lr_comp->name visible = abap_true mergeduplicates = abap_false )
INTO TABLE r_result->ms_result-t_layout.
ENDLOOP.
ELSE.
r_result->ms_result-t_layout = t_layout.
ENDIF.
ENDMETHOD.
METHOD on_event.
CASE client->get( )-event.
WHEN 'BUTTON_CONFIRM'.
ms_result-check_confirmed = abap_true.
on_event_confirm( ).
WHEN 'CANCEL'.
client->popup_destroy( ).
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
ENDCASE.
ENDMETHOD.
METHOD on_event_confirm.
client->popup_destroy( ).
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
ENDMETHOD.
METHOD result.
result = ms_result.
ENDMETHOD.
METHOD z2ui5_if_app~main.
me->client = client.
IF check_initialized = abap_false.
check_initialized = abap_true.
display( ).
RETURN.
ENDIF.
on_event( ).
ENDMETHOD.
ENDCLASS.

View File

@ -1,16 +0,0 @@
<?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_POPUP_LAYOUT</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>ui - popup layout</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -387,14 +387,11 @@ CLASS z2ui5_cl_popup_layout_v2 IMPLEMENTATION.
client->nav_app_leave( ).
WHEN 'SAVE_CLOSE'.
* client->popup_destroy( ).
render_edit( ).
WHEN 'SAVE_SAVE'.
save_layout( ).
render_edit( ).
* client->popup_destroy( ).
* client->nav_app_leave( ).
WHEN 'OPEN_SELECT'.
ms_layout = get_selected_layout( ).
@ -407,18 +404,11 @@ CLASS z2ui5_cl_popup_layout_v2 IMPLEMENTATION.
client->nav_app_leave( ).
WHEN 'LAYOUT_LOAD'.
* client->view_destroy( ).
client->nav_app_call( z2ui5_cl_popup_layout_v2=>factory( layout = ms_layout
client->nav_app_call( factory( layout = ms_layout
open_layout = abap_true ) ).
* WHEN 'LAYOUT_EDIT'.
* client->view_destroy( ).
* client->nav_app_call( z2ui5_cl_popup_layout_v2=>factory( layout = ms_layout
* extended_layout = abap_true ) ).
WHEN 'LAYOUT_DELETE'.
* client->view_destroy( ).
client->nav_app_call( z2ui5_cl_popup_layout_v2=>factory( layout = ms_layout
client->nav_app_call( factory( layout = ms_layout
delete_layout = abap_true ) ).
ENDCASE.
@ -451,11 +441,13 @@ CLASS z2ui5_cl_popup_layout_v2 IMPLEMENTATION.
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( ).
DATA(dialog) = popup->dialog( title = 'Layout'
DATA(dialog) = popup->dialog( title = 'Layout - Delete'
contentheight = `50%`
contentwidth = `50%`
afterclose = client->_event( 'CLOSE' ) ).
dialog->table(
headertext = 'Layout'
* headertext = 'Layout'
mode = 'SingleSelectLeft'
items = client->_bind_edit( mt_t001 )
)->columns(
@ -489,7 +481,8 @@ CLASS z2ui5_cl_popup_layout_v2 IMPLEMENTATION.
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( ).
DATA(dialog) = popup->dialog( title = 'Layout'
contentwidth = '50%'
contentheight = `50%`
contentwidth = `50%`
afterclose = client->_event( 'CANCEL' ) )->content( ).
DATA(tab) = dialog->table( growing = abap_true
@ -569,11 +562,6 @@ CLASS z2ui5_cl_popup_layout_v2 IMPLEMENTATION.
dialog->get_parent(
)->footer( )->overflow_toolbar(
)->toolbar_spacer(
)->button(
text = 'Cancel'
icon = 'sap-icon://sys-cancel-2'
press = client->_event( 'CANCEL' )
)->button(
text = 'DB Delete'
press = client->_event( 'LAYOUT_DELETE' )
@ -586,6 +574,11 @@ CLASS z2ui5_cl_popup_layout_v2 IMPLEMENTATION.
text = 'DB Save'
press = client->_event( 'LAYOUT_SAVE' )
icon = 'sap-icon://save'
)->toolbar_spacer(
)->button(
text = 'Cancel'
icon = 'sap-icon://sys-cancel-2'
press = client->_event( 'CANCEL' )
)->button(
text = 'OK'
icon = 'sap-icon://accept'
@ -603,11 +596,13 @@ CLASS z2ui5_cl_popup_layout_v2 IMPLEMENTATION.
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( ).
DATA(dialog) = popup->dialog( title = 'Layout'
DATA(dialog) = popup->dialog( title = 'Layout - Open'
contentheight = `50%`
contentwidth = `50%`
afterclose = client->_event( 'CLOSE' ) ).
dialog->table(
headertext = 'Layout'
* headertext = 'Layout'
mode = 'SingleSelectLeft'
items = client->_bind_edit( mt_t001 )
)->columns(
@ -643,10 +638,13 @@ CLASS z2ui5_cl_popup_layout_v2 IMPLEMENTATION.
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( ).
DATA(dialog) = popup->dialog( title = 'Save'
DATA(dialog) = popup->dialog( title = 'Layout - Save'
contentheight = `50%`
contentwidth = `50%`
afterclose = client->_event( 'SAVE_CLOSE' ) ).
DATA(form) = dialog->simple_form( title = 'Layout'
DATA(form) = dialog->simple_form(
* title = 'Layout'
editable = abap_true
labelspanxl = `4`
labelspanl = `4`
@ -655,7 +653,7 @@ CLASS z2ui5_cl_popup_layout_v2 IMPLEMENTATION.
adjustlabelspan = abap_false
).
form->toolbar( )->title( 'Layout' ).
* form->toolbar( )->title( 'Layout' ).
form->content( 'form'
)->label( 'Layout'