From e2641d2b0c7a17e3b74696f37f42310860326eae Mon Sep 17 00:00:00 2001 From: oblomov <102328295+oblomov-dev@users.noreply.github.com> Date: Sat, 18 Mar 2023 15:52:41 +0100 Subject: [PATCH] popups (#105) * popups * popups --- src/00/z2ui5_cl_app_demo_00.clas.abap | 21 +- src/00/z2ui5_cl_app_demo_02.clas.abap | 2 +- src/00/z2ui5_cl_app_demo_12.clas.abap | 274 ++++++++++ src/00/z2ui5_cl_app_demo_12.clas.xml | 16 + src/00/z2ui5_cl_app_demo_21.clas.abap | 466 +++++++++++------- src/z2ui5_cl_http_handler.clas.abap | 6 + ...z2ui5_cl_http_handler.clas.locals_imp.abap | 13 +- src/z2ui5_if_view.intf.abap | 7 + 8 files changed, 616 insertions(+), 189 deletions(-) create mode 100644 src/00/z2ui5_cl_app_demo_12.clas.abap create mode 100644 src/00/z2ui5_cl_app_demo_12.clas.xml diff --git a/src/00/z2ui5_cl_app_demo_00.clas.abap b/src/00/z2ui5_cl_app_demo_00.clas.abap index 9bff19d1..3e5b4fce 100644 --- a/src/00/z2ui5_cl_app_demo_00.clas.abap +++ b/src/00/z2ui5_cl_app_demo_00.clas.abap @@ -10,7 +10,7 @@ ENDCLASS. -CLASS Z2UI5_CL_APP_DEMO_00 IMPLEMENTATION. +CLASS z2ui5_cl_app_demo_00 IMPLEMENTATION. METHOD z2ui5_if_app~controller. @@ -66,6 +66,18 @@ CLASS Z2UI5_CL_APP_DEMO_00 IMPLEMENTATION. WHEN 'BACK'. client->nav_app_leave( client->get( )-id_prev_app_stack ). + WHEN OTHERS. + try. + DATA(lv_classname) = client->get( )-event. + IF lv_classname(5) <> 'Z2UI5'. + RETURN. + ENDIF. + DATA li_app TYPE REF TO z2ui5_if_app. + + CREATE OBJECT li_app TYPE (lv_classname). + client->nav_app_call( li_app ). + catch cx_root. + endtry. ENDCASE. @@ -87,7 +99,7 @@ CLASS Z2UI5_CL_APP_DEMO_00 IMPLEMENTATION. grid->simple_form( 'HowTo - General' )->content( 'f' )->button( text = 'Communication & Data Binding' press = view->_event( '0101' ) )->button( text = 'Events, Error & Change View' press = view->_event( '0102' ) - )->button( text = 'Call new app and go back' press = view->_event( '2400' ) + )->button( text = 'Flow Logic' press = view->_event( '2400' ) )->button( text = 'Messages (Toast, Box, Strip)' press = view->_event( '0103' ) ). @@ -95,7 +107,7 @@ CLASS Z2UI5_CL_APP_DEMO_00 IMPLEMENTATION. grid->simple_form( 'HowTo - General II' )->content( 'f' )->button( text = 'Layout (Header, Footer, Grid)' press = view->_event( '0104' ) )->button( text = 'Scrolling & Focus' press = view->_event( '0100' ) - " )->button( text = 'Popups I' press = view->_event( '0101' ) + )->button( text = 'Popups' press = view->_event( 'Z2UI5_CL_APP_DEMO_21' ) " )->button( text = 'Popups II (F4 Help)' press = view->_event( '0101' ) ). @@ -111,8 +123,7 @@ CLASS Z2UI5_CL_APP_DEMO_00 IMPLEMENTATION. " )->button( text = 'Cell changes' press = view->_event( '0304' ) ). - grid = page->grid( default_span = 'L12 M12 S12' ). - + grid = page->grid( default_span = 'XL9 L9 M12 S12' )->content( 'l' ). DATA(form) = grid->simple_form( 'Applications and Examples' )->vbox( ). diff --git a/src/00/z2ui5_cl_app_demo_02.clas.abap b/src/00/z2ui5_cl_app_demo_02.clas.abap index 2162744e..6a033ab3 100644 --- a/src/00/z2ui5_cl_app_demo_02.clas.abap +++ b/src/00/z2ui5_cl_app_demo_02.clas.abap @@ -161,7 +161,7 @@ CLASS z2ui5_cl_app_demo_02 IMPLEMENTATION. CASE client->get( )-event. WHEN 'BUTTON_SEND'. - client->popup_message_box( 'Values were send to the server successfully' ). + client->popup_message_box( 'success - values send to the server' ). WHEN 'BUTTON_CLEAR'. CLEAR screen. client->popup_message_toast( 'View initialized' ). diff --git a/src/00/z2ui5_cl_app_demo_12.clas.abap b/src/00/z2ui5_cl_app_demo_12.clas.abap new file mode 100644 index 00000000..42bae150 --- /dev/null +++ b/src/00/z2ui5_cl_app_demo_12.clas.abap @@ -0,0 +1,274 @@ +CLASS z2ui5_cl_app_demo_12 DEFINITION PUBLIC. + + PUBLIC SECTION. + + INTERFACES z2ui5_if_app. + + + TYPES: + BEGIN OF ty_row, + 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_value TYPE string VALUE 'value'. + + PROTECTED SECTION. + PRIVATE SECTION. +ENDCLASS. + + + +CLASS z2ui5_cl_app_demo_12 IMPLEMENTATION. + + + METHOD z2ui5_if_app~controller. + + CASE client->get( )-lifecycle_method. + + WHEN client->cs-lifecycle_method-on_init. + t_tab = REDUCE #( INIT ret = VALUE #( ) FOR n = 1 WHILE n < 11 NEXT ret = + VALUE #( BASE ret ( title = 'Hans' value = 'red' info = 'completed' descr = 'this is a description' checkbox = abap_true ) ) ). + + + + WHEN client->cs-lifecycle_method-on_event. + + CASE client->get( )-event. + + when 'POPUP_TO_DECIDE'. + + + + WHEN 'BUTTON_POPUP_DECIDE'. + + client->nav_app_call( z2ui5_cl_app_demo_20=>factory( + i_text = 'Do really want to continue?' + i_cancel_text = 'No' + i_cancel_event = 'POPUP_CONFIRM_NO' + i_confirm_text = 'Yes' + i_confirm_event = 'POPUP_CONFIRM_YES' ) + ). + + WHEN 'BUTTON_POPUP_SELECT'. + DATA(lo_popup_select) = z2ui5_cl_app_demo_23=>factory( + event_callback = 'POPUP_SELECT_RETURN' + i_tab = VALUE #( descr = 'this is a description' + ( title = 'title_01' value = 'value_01' ) + ( title = 'title_02' value = 'value_02' ) + ( title = 'title_03' value = 'value_03' ) + ( title = 'title_04' value = 'value_04' ) ) ). + client->nav_app_call( lo_popup_select ). + + WHEN 'POPUP_SELECT_RETURN'. + lo_popup_select = CAST z2ui5_cl_app_demo_23( client->get_app_by_id( client->get( )-id_prev_app ) ). + DELETE lo_popup_select->t_tab WHERE selkz <> abap_true. + client->popup_message_box( 'Entry selected: ' && lo_popup_select->t_tab[ 1 ]-title ). + + WHEN 'POPUP_CONFIRM_YES'. + client->popup_message_box( 'decide yes' ). + + WHEN 'POPUP_CONFIRM_NO'. + client->popup_message_box( 'decide no' ). + + WHEN 'F4HELP'. + client->popup_message_box( 'F4HELP' ). + + WHEN 'BUTTON_POPUP_01'. + client->view_popup( 'BAL_POPUP' ). + + WHEN 'BUTTON_POPUP_02'. + client->view_show( 'MAIN' ). + client->view_popup( 'BAL_POPUP' ). + + WHEN 'BUTTON_POPUP_03'. + client->view_show( 'MAIN' ). + client->view_popup( 'BAL_POPUP2' ). + + WHEN 'BUTTON_POPUP_04'. + client->set( set_prev_view = abap_true ). + client->view_popup( 'BAL_POPUP2' ). + + WHEN 'BUTTON_POPUP_05'. + client->nav_app_call( z2ui5_cl_app_demo_20=>factory( + + i_text = 'Do really want to continue?' + i_cancel_text = 'No' + i_cancel_event = 'POPUP_CONFIRM_NO' + i_confirm_text = 'Yes' + i_confirm_event = 'POPUP_CONFIRM_YES' ) + ). + + WHEN 'BUTTON_POPUP_06'. + " client->set( set_prev_view = abap_true ). + client->view_popup( 'POPUP_TABLE' ). + + WHEN 'POPUP_TABLE_SEND'. + client->popup_message_box( 'entries edited' ). + + WHEN 'BACK'. + client->nav_app_leave( client->get( )-id_prev_app_stack ). + + ENDCASE. + + + WHEN client->cs-lifecycle_method-on_rendering. + + DATA(view) = client->factory_view( ). + DATA(page) = view->page( title = 'abap2UI5 - Popups' navbuttontap = view->_event( 'BACK' ) ). + page->header_content( )->link( text = 'Go to Source Code' href = client->get( )-s_request-url_source_code ). + + DATA(grid) = page->grid( 'L6 M12 S12' )->content( 'l' ). + + grid->simple_form( 'Input' )->content( 'f' + )->label( '01' + )->button( text = 'Popup to Decide' press = view->_event( 'POPUP_TO_DECIDE' ) + )->label( '02' + )->button( text = 'Popup Get Text Input' press = view->_event( 'POPUP_TO_TEXTAREA' ) + )->label( '03' + )->button( text = 'Popup Get Input Values' press = view->_event( 'POPUP_TO_INPUT' ) + )->label( '04' + )->button( text = 'Popup Get selected Entry' press = view->_event( 'POPUP_TO_SELECT' ) + )->label( '06' + )->button( text = 'Popup show BAL' press = view->_event( 'POPUP_TO_BAL' ) + ). + + + page->input( + value = view->_bind( mv_value ) + showvaluehelp = abap_true + valuehelprequest = view->_event( 'F4HELP' ) + ). + + page->button( + text = 'Popup new app - popup renderung, no view' + press = view->_event( 'BUTTON_POPUP_DECIDE' ) + ). + + page->button( + text = 'Popup same app - popup rendering, no view rendering' + press = view->_event( 'BUTTON_POPUP_01' ) + ). + + page->button( + text = 'Popup same app - popup rendering, view rendering' + press = view->_event( 'BUTTON_POPUP_02' ) + ). + + page->button( + text = 'Popup same app - popup rendering, view rendering - frontend close' + press = view->_event( 'BUTTON_POPUP_03' ) + ). + + page->button( + text = 'Popup same app - popup rendering, view previous' + press = view->_event( 'BUTTON_POPUP_04' ) + ). + + + page->button( + text = 'Popup next app - popup rendering, view previous' + press = view->_event( 'BUTTON_POPUP_05' ) + ). + + page->button( + text = 'Popup select' + press = view->_event( 'BUTTON_POPUP_06' ) + ). + + + " client->set( focus = mv_value ). + + page->footer( )->overflow_toolbar( + )->toolbar_spacer( + )->button( + text = 'Send to Server' + press = view->_event( 'BUTTON_SEND' ) + type = 'Success' ). + + + + + + view = client->factory_view( 'POPUP_DECIDE' ). + + DATA(popup) = view->dialog( title = 'Popup - Decide' ). + + popup->text( text = 'this is a message' ). + popup->button( text = 'YES' press = view->_event( 'POPUP_CONFIRM_YES' ) ). + popup->button( text = 'NO' press = view->_event( 'POPUP_CONFIRM_NO' ) ). + + popup->footer( )->overflow_toolbar( + )->toolbar_spacer( + )->button( + text = 'Send to Server' + press = view->_event( 'BUTTON_SEND' ) + type = 'Success' ). + + + + + + view = client->factory_view( 'BAL_POPUP2' ). + + popup = view->dialog( title = 'Example - ZZ2UI5_CL_APP_DEMO_07' ). + + popup->text( text = 'this popup frontend close' ). + popup->button( text = 'YES' press = view->_event( 'POPUP_CONFIRM_YES' ) ). + popup->button( text = 'NO' press = view->_event( 'POPUP_CONFIRM_NO' ) ). + + popup->footer( )->overflow_toolbar( + )->toolbar_spacer( + )->button( + text = 'frontend close' + press = view->_event_close_popup( ) + type = 'Success' ). + + + + + + + + + view = client->factory_view( 'POPUP_TABLE' ). + + popup = view->dialog( title = 'Example - ZZ2UI5_CL_APP_DEMO_07' ). + + DATA(tab) = popup->table( view->_bind( t_tab ) ). + + "set toolbar + tab->header_toolbar( )->overflow_toolbar( + )->title( 'title of the table' ). + + "set header + tab->columns( + )->column( )->text( 'Title' )->get_parent( + )->column( )->text( 'Color' )->get_parent( + )->column( )->text( 'Info' )->get_parent( + )->column( )->text( 'Description' )->get_parent( + )->column( )->text( 'Checkbox' ). + + tab->items( )->column_list_item( )->cells( + )->input( '{TITLE}' + )->input( '{VALUE}' + )->input( '{INFO}' + )->input( '{DESCR}' + )->checkbox( selected = '{CHECKBOX}' enabled = abap_true ). + + popup->footer( )->overflow_toolbar( + )->toolbar_spacer( + )->button( + text = 'Commit' + press = view->_event( 'POPUP_TABLE_SEND' ) + type = 'Success' ). + ENDCASE. + + ENDMETHOD. +ENDCLASS. diff --git a/src/00/z2ui5_cl_app_demo_12.clas.xml b/src/00/z2ui5_cl_app_demo_12.clas.xml new file mode 100644 index 00000000..dd85063c --- /dev/null +++ b/src/00/z2ui5_cl_app_demo_12.clas.xml @@ -0,0 +1,16 @@ + + + + + + Z2UI5_CL_APP_DEMO_12 + E + basic - popups 2 + 1 + X + X + X + + + + diff --git a/src/00/z2ui5_cl_app_demo_21.clas.abap b/src/00/z2ui5_cl_app_demo_21.clas.abap index afb8f241..fc8c3435 100644 --- a/src/00/z2ui5_cl_app_demo_21.clas.abap +++ b/src/00/z2ui5_cl_app_demo_21.clas.abap @@ -4,9 +4,9 @@ CLASS z2ui5_cl_app_demo_21 DEFINITION PUBLIC. INTERFACES z2ui5_if_app. - TYPES: BEGIN OF ty_row, + selkz TYPE abap_bool, title TYPE string, value TYPE string, descr TYPE string, @@ -17,7 +17,38 @@ CLASS z2ui5_cl_app_demo_21 DEFINITION PUBLIC. DATA t_tab TYPE STANDARD TABLE OF ty_row WITH EMPTY KEY. - DATA mv_value TYPE string VALUE 'value'. + 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. + + METHODS view_main + IMPORTING + i_client TYPE REF TO z2ui5_if_client. + + METHODS view_popup_decide + IMPORTING + i_client TYPE REF TO z2ui5_if_client. + + METHODS view_popup_textarea + IMPORTING + i_client TYPE REF TO z2ui5_if_client. + + METHODS view_popup_input + IMPORTING + i_client TYPE REF TO z2ui5_if_client. + + METHODS view_popup_table + IMPORTING + i_client TYPE REF TO z2ui5_if_client. PROTECTED SECTION. PRIVATE SECTION. @@ -25,7 +56,7 @@ ENDCLASS. -CLASS Z2UI5_CL_APP_DEMO_21 IMPLEMENTATION. +CLASS z2ui5_cl_app_demo_21 IMPLEMENTATION. METHOD z2ui5_if_app~controller. @@ -33,8 +64,15 @@ CLASS Z2UI5_CL_APP_DEMO_21 IMPLEMENTATION. CASE client->get( )-lifecycle_method. WHEN client->cs-lifecycle_method-on_init. - t_tab = REDUCE #( INIT ret = VALUE #( ) FOR n = 1 WHILE n < 11 NEXT ret = - VALUE #( BASE ret ( title = 'Hans' value = 'red' info = 'completed' descr = 'this is a description' checkbox = 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' ) + ). @@ -42,73 +80,53 @@ CLASS Z2UI5_CL_APP_DEMO_21 IMPLEMENTATION. CASE client->get( )-event. - WHEN 'BUTTON_POPUP_DECIDE'. + WHEN 'POPUP_TO_DECIDE'. + client->view_popup( 'POPUP_TO_DECIDE' ). - client->nav_app_call( z2ui5_cl_app_demo_20=>factory( - i_text = 'Do really want to continue?' - i_cancel_text = 'No' - i_cancel_event = 'POPUP_CONFIRM_NO' - i_confirm_text = 'Yes' - i_confirm_event = 'POPUP_CONFIRM_YES' ) - ). + WHEN 'BUTTON_CONFIRM'. + client->popup_message_toast( 'confirm pressed' ). - WHEN 'BUTTON_POPUP_SELECT'. - DATA(lo_popup_select) = z2ui5_cl_app_demo_23=>factory( - event_callback = 'POPUP_SELECT_RETURN' - i_tab = VALUE #( descr = 'this is a description' - ( title = 'title_01' value = 'value_01' ) - ( title = 'title_02' value = 'value_02' ) - ( title = 'title_03' value = 'value_03' ) - ( title = 'title_04' value = 'value_04' ) ) ). - client->nav_app_call( lo_popup_select ). + WHEN 'BUTTON_CANCEL'. + client->popup_message_toast( 'cancel pressed' ). - WHEN 'POPUP_SELECT_RETURN'. - lo_popup_select = CAST z2ui5_cl_app_demo_23( client->get_app_by_id( client->get( )-id_prev_app ) ). - DELETE lo_popup_select->t_tab WHERE selkz <> abap_true. - client->popup_message_box( 'Entry selected: ' && lo_popup_select->t_tab[ 1 ]-title ). + WHEN 'POPUP_TO_TEXTAREA'. + mv_stretch_active = abap_false. + client->view_popup( 'POPUP_TO_TEXTAREA' ). - WHEN 'POPUP_CONFIRM_YES'. - client->popup_message_box( 'decide yes' ). + WHEN 'POPUP_TO_TEXTAREA_STRETCH'. + client->view_popup( 'POPUP_TO_TEXTAREA' ). + mv_stretch_active = abap_true. - WHEN 'POPUP_CONFIRM_NO'. - client->popup_message_box( 'decide no' ). + WHEN 'POPUP_TO_TEXTAREA_SIZE'. + client->view_popup( 'POPUP_TO_TEXTAREA_SIZE' ). - WHEN 'F4HELP'. - client->popup_message_box( 'F4HELP' ). + WHEN 'BUTTON_TEXTAREA_CONFIRM'. + " client->popup_message_box( mv_textarea ). - WHEN 'BUTTON_POPUP_01'. - client->view_popup( 'BAL_POPUP' ). + WHEN 'BUTTON_TEXTAREA_CANCEL'. + client->popup_message_toast( 'textarea deleted' ). + CLEAR mv_textarea. - WHEN 'BUTTON_POPUP_02'. - client->view_show( 'MAIN' ). - client->view_popup( 'BAL_POPUP' ). + WHEN 'POPUP_TO_INPUT'. + ms_popup_input-value1 = 'value1'. + client->view_popup( 'POPUP_TO_INPUT' ). - WHEN 'BUTTON_POPUP_03'. - client->view_show( 'MAIN' ). - client->view_popup( 'BAL_POPUP2' ). + WHEN 'POPUP_BAL'. + client->view_popup( 'POPUP_BAL' ). - WHEN 'BUTTON_POPUP_04'. - client->set( set_prev_view = abap_true ). - client->view_popup( 'BAL_POPUP2' ). - - WHEN 'BUTTON_POPUP_05'. - client->nav_app_call( z2ui5_cl_app_demo_20=>factory( - - i_text = 'Do really want to continue?' - i_cancel_text = 'No' - i_cancel_event = 'POPUP_CONFIRM_NO' - i_confirm_text = 'Yes' - i_confirm_event = 'POPUP_CONFIRM_YES' ) - ). - - WHEN 'BUTTON_POPUP_06'. - " client->set( set_prev_view = abap_true ). + WHEN 'POPUP_TABLE'. + clear t_tab. + DO 10 TIMES. + DATA(ls_row) = VALUE ty_row( title = 'entry_' && sy-index value = 'red' info = 'completed' descr = 'this is a description' ). + INSERT ls_row INTO TABLE t_tab. + ENDDO. client->view_popup( 'POPUP_TABLE' ). - WHEN 'POPUP_TABLE_SEND'. - client->popup_message_box( 'entries edited' ). + WHEN 'POPUP_TABLE_CONTINUE'. + delete t_tab where selkz = abap_false. + client->popup_message_toast( `Entry selected: ` && t_tab[ 1 ]-title ). - WHEN 'BACK'. + WHEN 'BACK'. client->nav_app_leave( client->get( )-id_prev_app_stack ). ENDCASE. @@ -116,128 +134,218 @@ CLASS Z2UI5_CL_APP_DEMO_21 IMPLEMENTATION. WHEN client->cs-lifecycle_method-on_rendering. - DATA(view) = client->factory_view( 'MAIN' ). - DATA(page) = view->page( title = 'Example - ZZ2UI5_CL_APP_DEMO_07' navbuttontap = view->_event( 'BACK' ) ). + view_main( client ). + view_popup_decide( client ). + view_popup_textarea( client ). + view_popup_input( client ). + view_popup_table( client ). - - page->input( - value = view->_bind( mv_value ) - showvaluehelp = abap_true - valuehelprequest = view->_event( 'F4HELP' ) - ). - - page->button( - text = 'Popup new app - popup renderung, no view' - press = view->_event( 'BUTTON_POPUP_DECIDE' ) - ). - - page->button( - text = 'Popup same app - popup rendering, no view rendering' - press = view->_event( 'BUTTON_POPUP_01' ) - ). - - page->button( - text = 'Popup same app - popup rendering, view rendering' - press = view->_event( 'BUTTON_POPUP_02' ) - ). - - page->button( - text = 'Popup same app - popup rendering, view rendering - frontend close' - press = view->_event( 'BUTTON_POPUP_03' ) - ). - - page->button( - text = 'Popup same app - popup rendering, view previous' - press = view->_event( 'BUTTON_POPUP_04' ) - ). - - - page->button( - text = 'Popup next app - popup rendering, view previous' - press = view->_event( 'BUTTON_POPUP_05' ) - ). - - page->button( - text = 'Popup select' - press = view->_event( 'BUTTON_POPUP_06' ) - ). - - - " client->set( focus = mv_value ). - - page->footer( )->overflow_toolbar( - )->toolbar_spacer( - )->button( - text = 'Send to Server' - press = view->_event( 'BUTTON_SEND' ) - type = 'Success' ). - - - view = client->factory_view( 'BAL_POPUP' ). - - DATA(popup) = view->dialog( title = 'Example - ZZ2UI5_CL_APP_DEMO_07' ). - - popup->text( text = 'this is a message' ). - popup->button( text = 'YES' press = view->_event( 'POPUP_CONFIRM_YES' ) ). - popup->button( text = 'NO' press = view->_event( 'POPUP_CONFIRM_NO' ) ). - - popup->footer( )->overflow_toolbar( - )->toolbar_spacer( - )->button( - text = 'Send to Server' - press = view->_event( 'BUTTON_SEND' ) - type = 'Success' ). - - view = client->factory_view( 'BAL_POPUP2' ). - - popup = view->dialog( title = 'Example - ZZ2UI5_CL_APP_DEMO_07' ). - - popup->text( text = 'this popup frontend close' ). - popup->button( text = 'YES' press = view->_event( 'POPUP_CONFIRM_YES' ) ). - popup->button( text = 'NO' press = view->_event( 'POPUP_CONFIRM_NO' ) ). - - popup->footer( )->overflow_toolbar( - )->toolbar_spacer( - )->button( - text = 'frontend close' - press = view->_event_close_popup( ) - type = 'Success' ). - - - - - view = client->factory_view( 'POPUP_TABLE' ). - - popup = view->dialog( title = 'Example - ZZ2UI5_CL_APP_DEMO_07' ). - - DATA(tab) = popup->table( view->_bind( t_tab ) ). - - "set toolbar - tab->header_toolbar( )->overflow_toolbar( - )->title( 'title of the table' ). - - "set header - tab->columns( - )->column( )->text( 'Title' )->get_parent( - )->column( )->text( 'Color' )->get_parent( - )->column( )->text( 'Info' )->get_parent( - )->column( )->text( 'Description' )->get_parent( - )->column( )->text( 'Checkbox' ). - - tab->items( )->column_list_item( )->cells( - )->input( '{TITLE}' - )->input( '{VALUE}' - )->input( '{INFO}' - )->input( '{DESCR}' - )->checkbox( selected = '{CHECKBOX}' enabled = abap_true ). - - popup->footer( )->overflow_toolbar( - )->toolbar_spacer( - )->button( - text = 'Commit' - press = view->_event( 'POPUP_TABLE_SEND' ) - type = 'Success' ). ENDCASE. ENDMETHOD. + + METHOD view_main. + + DATA(view) = i_client->factory_view( 'MAIN' ). + DATA(page) = view->page( title = 'abap2UI5 - Popups' navbuttontap = view->_event( 'BACK' ) ). + page->header_content( )->link( text = 'Go to Source Code' href = i_client->get( )-s_request-url_source_code ). + + DATA(grid) = page->grid( 'XL8 L8 M12 S12' )->content( 'l' ). + + grid->simple_form( 'Decide' )->content( 'f' + )->label( '01' + )->button( text = 'Popup to decide' press = view->_event( 'POPUP_TO_DECIDE' ) + ). + grid->simple_form( 'TextArea' )->content( 'f' + )->label( '01' + )->button( text = 'Popup with textarea input' press = view->_event( 'POPUP_TO_TEXTAREA' ) + )->label( '02' + )->button( text = 'Popup with textarea input (size)' press = view->_event( 'POPUP_TO_TEXTAREA_SIZE' ) + )->label( '03' + )->button( text = 'Popup with textarea input (stretched)' press = view->_event( 'POPUP_TO_TEXTAREA_STRETCH' ) + ). + + grid->simple_form( 'Inputs' )->content( 'f' )->label( '01' + )->button( text = 'Popup Get Input Values' press = view->_event( 'POPUP_TO_INPUT' ) + ). + + grid->simple_form( 'Tables' )->content( 'f' )->label( '01' + )->button( text = 'Show bapiret tab' press = view->_event( 'POPUP_BAL' ) + )->label( '02' + )->button( text = 'Popup to select' press = view->_event( 'POPUP_TABLE' ) + ). + + ENDMETHOD. + + + METHOD view_popup_decide. + + DATA(view) = i_client->factory_view( 'POPUP_TO_DECIDE' ). + DATA(popup) = view->dialog( + title = 'Title' + icon = 'sap-icon://question-mark' ). + + popup->content( )->vbox( class = 'sapUiMediumMargin' + )->text( text = 'This is a question, you have to make a decision now, cancel or confirm?' ). + + popup->footer( )->overflow_toolbar( + )->toolbar_spacer( + )->button( + text = 'Cancel' + press = view->_event( 'BUTTON_CANCEL' ) + )->button( + text = 'Confirm' + press = view->_event( 'BUTTON_CONFIRM' ) + type = 'Emphasized' ). + + ENDMETHOD. + + + METHOD view_popup_textarea. + + DATA view TYPE REF TO z2ui5_if_view. + DATA popup TYPE REF TO z2ui5_if_view. + + view = i_client->factory_view( 'POPUP_TO_TEXTAREA' ). + popup = view->dialog( + stretch = mv_stretch_active + title = 'Title' + icon = 'sap-icon://edit' ). + + popup->content( + )->text_area( + height = '100%' + width = '100%' + value = view->_bind( mv_textarea ) ). + + popup->footer( )->overflow_toolbar( + )->toolbar_spacer( + )->button( + text = 'Cancel' + press = view->_event( 'BUTTON_TEXTAREA_CANCEL' ) + )->button( + text = 'Confirm' + press = view->_event( 'BUTTON_TEXTAREA_CONFIRM' ) + type = 'Emphasized' ). + + + view = i_client->factory_view( 'POPUP_TO_TEXTAREA_SIZE' ). + popup = view->dialog( + contentheight = '100px' + contentwidth = '1200px' + title = 'Title' + icon = 'sap-icon://edit' ). + + popup->content( + )->text_area( + height = '95%' + width = '99%' + value = view->_bind( mv_textarea ) ). + + popup->footer( )->overflow_toolbar( + )->toolbar_spacer( + )->button( + text = 'Cancel' + press = view->_event( 'BUTTON_TEXTAREA_CANCEL' ) + )->button( + text = 'Confirm' + press = view->_event( 'BUTTON_TEXTAREA_CONFIRM' ) + type = 'Emphasized' ). + + ENDMETHOD. + + + METHOD view_popup_input. + + + + DATA popup TYPE REF TO z2ui5_if_view. + DATA view TYPE REF TO z2ui5_if_view. + + view = i_client->factory_view( 'POPUP_TO_INPUT' ). + popup = view->dialog( + contentheight = '500px' + contentwidth = '500px' + title = 'Title' ). + + popup->content( + )->simple_form( + )->label( 'Input1' + )->input( view->_bind( ms_popup_input-value1 ) + )->label( 'Input2' + )->input( view->_bind( ms_popup_input-value2 ) + )->label( 'Checkbox' + )->checkbox( + selected = view->_bind( ms_popup_input-check_is_active ) + text = 'this is a checkbox' + enabled = abap_true ). + + popup->footer( )->overflow_toolbar( + )->toolbar_spacer( + )->button( + text = 'Cancel' + press = view->_event( 'BUTTON_TEXTAREA_CANCEL' ) + )->button( + text = 'Confirm' + press = view->_event( 'BUTTON_TEXTAREA_CONFIRM' ) + type = 'Emphasized' ). + + ENDMETHOD. + + + METHOD view_popup_table. + + DATA(view) = i_client->factory_view( 'POPUP_BAL' ). + DATA(popup) = view->dialog( title = 'abap2ui5 - Popup Message Log:' ). + DATA(tab) = popup->table( view->_bind( t_bapiret ) ). + + tab->columns( + )->column( width = '5rem' )->text( 'Type' )->get_parent( + )->column( width = '5rem' )->text( 'Number' )->get_parent( + )->column( width = '5rem' )->text( 'ID' )->get_parent( + )->column( )->text( 'Message' )->get_parent( ). + + tab->items( )->column_list_item( )->cells( + )->text( '{TYPE}' + )->text( '{NUMBER}' + )->text( '{ID}' + )->text( '{MESSAGE}' ). + + popup->footer( )->overflow_toolbar( + )->toolbar_spacer( + )->button( + text = 'close' + press = view->_event( 'POPUP_BAL_CLOSE' ) + type = 'Emphasized' ). + + + view = i_client->factory_view( 'POPUP_TABLE' ). + + popup = view->dialog( title = 'abap2UI5 - Popup to select entry' ). + + tab = popup->table( + mode = 'SingleSelectLeft' + items = view->_bind( t_tab ) ). + + tab->columns( + )->column( )->text( 'Title' )->get_parent( + )->column( )->text( 'Color' )->get_parent( + )->column( )->text( 'Info' )->get_parent( + )->column( )->text( 'Description' )->get_parent( ). + + tab->items( )->column_list_item( selected = '{SELKZ}' )->cells( + )->text( '{TITLE}' + )->text( '{VALUE}' + )->text( '{INFO}' + )->text( '{DESCR}' ). + + popup->footer( )->overflow_toolbar( + )->toolbar_spacer( + )->button( + text = 'continue' + press = view->_event( 'POPUP_TABLE_CONTINUE' ) + type = 'Emphasized' ). + + ENDMETHOD. + ENDCLASS. diff --git a/src/z2ui5_cl_http_handler.clas.abap b/src/z2ui5_cl_http_handler.clas.abap index 922721bd..a4e50e94 100644 --- a/src/z2ui5_cl_http_handler.clas.abap +++ b/src/z2ui5_cl_http_handler.clas.abap @@ -232,8 +232,14 @@ CLASS Z2UI5_CL_HTTP_HANDLER IMPLEMENTATION. ` if (sap.z2ui5.oResponse.oSystem.CHECK_DEBUG_ACTIVE) {` && |\n| && ` console.log('Response Object:');` && |\n| && ` console.log(sap.z2ui5.oResponse);` && |\n| && + ` if (sap.z2ui5.oResponse.vView){` && |\n| && ` console.log('UI5-XML-View:');` && |\n| && ` console.log(sap.z2ui5.oResponse.vView);` && |\n| && + ` }` && |\n| && + ` if (sap.z2ui5.oResponse.vViewPopup){` && |\n| && + ` console.log('UI5-XML-Popup:');` && |\n| && + ` console.log(sap.z2ui5.oResponse.vViewPopup);` && |\n| && + ` }` && |\n| && ` }` && |\n| && |\n| && ` if (sap.z2ui5.oResponse.oAfter) {` && |\n| && diff --git a/src/z2ui5_cl_http_handler.clas.locals_imp.abap b/src/z2ui5_cl_http_handler.clas.locals_imp.abap index de419f95..9455d6f9 100644 --- a/src/z2ui5_cl_http_handler.clas.locals_imp.abap +++ b/src/z2ui5_cl_http_handler.clas.locals_imp.abap @@ -1417,7 +1417,7 @@ CLASS z2ui5_lcl_if_view IMPLEMENTATION. result = _generic( name = 'VBox' t_prop = VALUE #( - ( n = 'class' v = 'sapUiSmallMargin' ) + ( n = 'class' v = class ) ) ). ENDMETHOD. @@ -1860,6 +1860,11 @@ CLASS z2ui5_lcl_if_view IMPLEMENTATION. name = 'Dialog' t_prop = VALUE #( ( n = 'title' v = title ) + ( n = 'icon' v = icon ) + ( n = 'stretch' v = stretch ) + ( n = 'showHeader' v = showheader ) + ( n = 'contentWidth' v = contentWidth ) + ( n = 'contentHeight' v = contentHeight ) ) ). ENDMETHOD. @@ -2469,7 +2474,7 @@ CLASS z2ui5_lcl_system_app IMPLEMENTATION. )->link( text = 'Twitter' href = 'https://twitter.com/OblomovDev' )->link( text = 'GitHub' href = 'https://github.com/oblomov-dev/abap2ui5' ). - DATA(grid) = page->grid( 'L12 M12 S12' )->content( 'l' ). + DATA(grid) = page->grid( 'XL8 L8 M12 S12' )->content( 'l' ). DATA(form) = grid->simple_form( 'Quick Start' )->content( 'f' ). form->label( 'Step 1' @@ -2500,8 +2505,8 @@ CLASS z2ui5_lcl_system_app IMPLEMENTATION. DATA(lv_link) = client->get( )-s_request-url_app_gen && ms_home-classname. form->link( text = 'Link to the Application' href = lv_link enabled = xsdbool( ms_home-class_editable = abap_false ) ). - grid = page->grid( default_span = 'L12 M12 S12' )->content( 'l' - )->simple_form( 'Applications and Examples' )->content( 'f' + " grid = page->grid( default_span = 'L12 M12 S12' )->content( 'l' + grid->simple_form( 'Applications and Examples' )->content( 'f' )->button( text = `Press to continue..` press = view->_event( 'DEMOS' ) ). ENDMETHOD. diff --git a/src/z2ui5_if_view.intf.abap b/src/z2ui5_if_view.intf.abap index d3bc3b81..839e78d6 100644 --- a/src/z2ui5_if_view.intf.abap +++ b/src/z2ui5_if_view.intf.abap @@ -180,6 +180,11 @@ INTERFACE z2ui5_if_view METHODS dialog IMPORTING title TYPE clike OPTIONAL + icon TYPE clike OPTIONAL + showHeader TYPE clike OPTIONAL + stretch TYPE clike OPTIONAL + contentHeight TYPE clike OPTIONAL + contentWidth TYPE clike OPTIONAL RETURNING VALUE(result) TYPE REF TO z2ui5_if_view. @@ -369,6 +374,8 @@ INTERFACE z2ui5_if_view VALUE(result) TYPE REF TO z2ui5_if_view. METHODS vbox + importing + class type clike optional RETURNING VALUE(result) TYPE REF TO z2ui5_if_view.