table selection mode (#112)

* Update README.md

* table selection modes

* Update README.md

* table selection modes

* table selection mode
This commit is contained in:
oblomov 2023-03-20 17:07:53 +01:00
parent 83abc8911e
commit 7154968aea
10 changed files with 281 additions and 341 deletions

View File

@ -4,8 +4,8 @@ Development of UI5 Apps in pure ABAP. Follow this project on [twitter](https://t
### Project Features ### Project Features
* easy to use implement just one interface for a standalone UI5 application * easy to use implement just one interface for a standalone UI5 application
* pure ABAP development in 100% ABAP source code (no JavaScript, EML, DDL or Customizing) * pure ABAP development in 100% ABAP source code (no JavaScript, DDL, EML or Customizing)
* low system footprint - based on a plain http handler (no BSP, OData, BOPF, CDS, FE or RAP) * low system footprint - based on a plain http handler (no BSP, OData, CDS, BOPF, FE or RAP)
* cloud and on-premise ready works with both language versions (ABAP for Cloud, Standard ABAP) * cloud and on-premise ready works with both language versions (ABAP for Cloud, Standard ABAP)
* high system compatibility runs on all available ABAP stacks (NW 7.02 to ABAP 2302) * high system compatibility runs on all available ABAP stacks (NW 7.02 to ABAP 2302)
* easy installation abapGit project, no additional app deployment needed * easy installation abapGit project, no additional app deployment needed
@ -32,7 +32,7 @@ Works with all available ABAP stacks and language versions:
* S/4 Public Cloud ABAP Environment (ABAP for Cloud) * S/4 Public Cloud ABAP Environment (ABAP for Cloud)
* S/4 Private Cloud or On-Premise (ABAP for Cloud, Standard ABAP) * S/4 Private Cloud or On-Premise (ABAP for Cloud, Standard ABAP)
* R/3 NetWeaver AS ABAP 7.50 or higher (Standard ABAP) * R/3 NetWeaver AS ABAP 7.50 or higher (Standard ABAP)
* R/3 NetWeaver AS ABAP 7.02 to 7.40 - use the low syntax [branch](https://github.com/oblomov-dev/ABAP2UI5/tree/main_v702) * R/3 NetWeaver AS ABAP 7.02 to 7.42 - use the low syntax [branch](https://github.com/oblomov-dev/ABAP2UI5/tree/main_v702)
Install with [abapGit](https://abapgit.org), create a new HTTP service and call abap2UI5 [(more information)](https://github.com/oblomov-dev/abap2ui5/wiki). Install with [abapGit](https://abapgit.org), create a new HTTP service and call abap2UI5 [(more information)](https://github.com/oblomov-dev/abap2ui5/wiki).

View File

@ -44,10 +44,12 @@ CLASS z2ui5_cl_app_demo_00 IMPLEMENTATION.
DATA(view) = client->factory_view( ). DATA(view) = client->factory_view( ).
DATA(page) = view->page( title = 'abap2UI5 - Demo Section' DATA(page) = view->page( title = 'abap2UI5 - Demo Section'
class = 'sapUiContentPadding sapUiResponsivePadding--subHeader sapUiResponsivePadding--content sapUiResponsivePadding--footer'
navbuttontap = view->_event( 'BACK' ) ). navbuttontap = view->_event( 'BACK' ) ).
page->header_content( page->header_content(
)->toolbar_spacer(
)->link( text = 'SCN' href = 'https://blogs.sap.com/tag/abap2ui5/' )->link( text = 'SCN' href = 'https://blogs.sap.com/tag/abap2ui5/'
)->link( text = 'Twitter' href = 'https://twitter.com/OblomovDev' )->link( text = 'Twitter' href = 'https://twitter.com/OblomovDev'
)->link( text = 'GitHub' href = 'https://github.com/oblomov-dev/abap2ui5' ). )->link( text = 'GitHub' href = 'https://github.com/oblomov-dev/abap2ui5' ).
@ -65,7 +67,7 @@ CLASS z2ui5_cl_app_demo_00 IMPLEMENTATION.
)->button( text = 'Layout (Header, Footer, Grid)' press = view->_event( 'z2ui5_cl_app_demo_10' ) )->button( text = 'Layout (Header, Footer, Grid)' press = view->_event( 'z2ui5_cl_app_demo_10' )
)->button( text = 'Scrolling & Focus' press = view->_event( 'z2ui5_cl_app_demo_22' ) )->button( text = 'Scrolling & Focus' press = view->_event( 'z2ui5_cl_app_demo_22' )
)->button( text = 'Popups' press = view->_event( 'Z2UI5_CL_APP_DEMO_21' ) )->button( text = 'Popups' press = view->_event( 'Z2UI5_CL_APP_DEMO_21' )
" )->button( text = 'Popups II (F4 Help)' press = view->_event( '0101' ) )->button( text = 'Popups & Flow Logic' press = view->_event( 'z2ui5_cl_app_demo_12' )
). ).
grid->simple_form( 'HowTo - Selection-Screen' )->content( 'f' grid->simple_form( 'HowTo - Selection-Screen' )->content( 'f'
@ -77,7 +79,7 @@ CLASS z2ui5_cl_app_demo_00 IMPLEMENTATION.
grid->simple_form( 'HowTo - Tables' )->content( 'f' grid->simple_form( 'HowTo - Tables' )->content( 'f'
)->button( text = 'List' press = view->_event( 'z2ui5_cl_app_demo_03' ) )->button( text = 'List' press = view->_event( 'z2ui5_cl_app_demo_03' )
)->button( text = 'Toolbar, Scroll Container' press = view->_event( 'z2ui5_cl_app_demo_06' ) )->button( text = 'Toolbar, Scroll Container' press = view->_event( 'z2ui5_cl_app_demo_06' )
" )->button( text = 'Selection Modes' press = view->_event( 'z2ui5_cl_app_demo_19' ) )->button( text = 'Selection Modes' press = view->_event( 'z2ui5_cl_app_demo_19' )
)->button( text = 'Editable' press = view->_event( 'z2ui5_cl_app_demo_11' ) )->button( text = 'Editable' press = view->_event( 'z2ui5_cl_app_demo_11' )
). ).
@ -86,7 +88,7 @@ CLASS z2ui5_cl_app_demo_00 IMPLEMENTATION.
DATA(form) = grid->simple_form( 'Applications and Examples' )->vbox( ). DATA(form) = grid->simple_form( 'Applications and Examples' )->vbox( ).
form->flex_box( class = 'columns' form->flex_box( class = 'columns'
)->button( text = 'MIME Editor' press = view->_event( 'MIME_EDITOR' ) )->button( text = 'MIME Editor' press = view->_event( 'Z2UI5_CL_APP_DEMO_14' )
)->get( )->get(
)->layout_data( )->layout_data(
)->flex_item_data( )->flex_item_data(
@ -102,7 +104,7 @@ CLASS z2ui5_cl_app_demo_00 IMPLEMENTATION.
). ).
form->flex_box( class = 'columns' form->flex_box( class = 'columns'
)->button( text = 'Table Maintenance' press = view->_event( 'TABLE_MAINTENANCE' ) )->button( text = 'Table Maintenance' press = view->_event( 'Z2UI5_CL_APP_DEMO_13' )
)->get( )->get(
)->layout_data( )->layout_data(
)->flex_item_data( )->flex_item_data(

View File

@ -45,7 +45,7 @@ CLASS z2ui5_cl_app_demo_01 IMPLEMENTATION.
)->label( 'quantity' )->label( 'quantity'
)->input( view->_bind( quantity ) )->input( view->_bind( quantity )
)->label( 'product' )->label( 'product'
)->input( value = product editable = abap_False )->input( value = product enabled = abap_False
)->button( text = 'post' press = view->_event( 'BUTTON_POST' ) ). )->button( text = 'post' press = view->_event( 'BUTTON_POST' ) ).
ENDCASE. ENDCASE.

View File

@ -82,7 +82,10 @@ CLASS z2ui5_cl_app_demo_09 IMPLEMENTATION.
DATA(view) = client->factory_view( 'MAIN' ). DATA(view) = client->factory_view( 'MAIN' ).
DATA(page) = view->page( title = 'abap2UI5 - Value Help Examples' navbuttontap = view->_event( 'BACK' ) ). DATA(page) = view->page( title = 'abap2UI5 - Value Help Examples' navbuttontap = view->_event( 'BACK' ) ).
page->header_content( )->link( text = 'Go to Source Code' href = client->get( )-s_request-url_source_code ). page->header_content(
)->link( text = 'Demo' href = 'https://twitter.com/OblomovDev/status/1637470531136921600'
)->link( text = 'Source_Code' href = client->get( )-s_request-url_source_code
).
DATA(grid) = page->grid( 'XL12 L12 M12 S12' )->content( 'l' ). DATA(grid) = page->grid( 'XL12 L12 M12 S12' )->content( 'l' ).

View File

@ -68,7 +68,10 @@ CLASS z2ui5_cl_app_demo_11 IMPLEMENTATION.
DATA(view) = client->factory_view( ). DATA(view) = client->factory_view( ).
DATA(page) = view->page( title = 'abap2UI5 - Tables and editable' navbuttontap = view->_event( 'BACK' ) ). DATA(page) = view->page( title = 'abap2UI5 - Tables and editable' navbuttontap = view->_event( 'BACK' ) ).
page->header_content( )->link( text = 'Go to Source Code' href = client->get( )-s_request-url_source_code ). page->header_content(
)->link( text = 'Demo' href = 'https://twitter.com/OblomovDev/status/1630240894581608448'
)->link( text = 'Source_Code' href = client->get( )-s_request-url_source_code
).

View File

@ -4,21 +4,6 @@ CLASS z2ui5_cl_app_demo_12 DEFINITION PUBLIC.
INTERFACES z2ui5_if_app. 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. PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
@ -32,85 +17,47 @@ CLASS z2ui5_cl_app_demo_12 IMPLEMENTATION.
CASE client->get( )-lifecycle_method. 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. WHEN client->cs-lifecycle_method-on_event.
CASE client->get( )-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'. WHEN 'BUTTON_POPUP_01'.
client->view_popup( 'BAL_POPUP' ). client->view_popup( 'POPUP_DECIDE' ).
WHEN 'POPUP_DECIDE_CONTINUE'.
client->popup_message_toast( 'continue pressed' ).
WHEN 'POPUP_DECIDE_CANCEL'.
client->popup_message_toast( 'cancel pressed' ).
WHEN 'BUTTON_POPUP_02'. WHEN 'BUTTON_POPUP_02'.
client->view_show( 'MAIN' ). client->view_show( 'MAIN' ).
client->view_popup( 'BAL_POPUP' ). client->view_popup( 'POPUP_DECIDE' ).
WHEN 'BUTTON_POPUP_03'. WHEN 'BUTTON_POPUP_03'.
client->view_show( 'MAIN' ). client->view_show( 'MAIN' ).
client->view_popup( 'BAL_POPUP2' ). client->view_popup( 'POPUP_DECIDE_FRONTEND_CLOSE' ).
WHEN 'BUTTON_POPUP_04'. WHEN 'BUTTON_POPUP_04'.
client->set( set_prev_view = abap_true ). client->set( set_prev_view = abap_true ).
client->view_popup( 'BAL_POPUP2' ). client->view_popup( 'POPUP_DECIDE' ).
WHEN 'BUTTON_POPUP_05'. WHEN 'BUTTON_POPUP_05'.
client->nav_app_call( z2ui5_cl_app_demo_20=>factory( client->nav_app_call( z2ui5_cl_app_demo_20=>factory(
i_text = '(new app )this is a popup to decide, the text is send from the previous app and the answer will be send back'
i_text = 'Do really want to continue?' i_cancel_text = 'Cancel '
i_cancel_text = 'No' i_cancel_event = 'POPUP_DECIDE_CANCEL'
i_cancel_event = 'POPUP_CONFIRM_NO' i_confirm_text = 'Continue'
i_confirm_text = 'Yes' i_confirm_event = 'POPUP_DECIDE_CONTINUE'
i_confirm_event = 'POPUP_CONFIRM_YES' ) i_check_show_previous_view = abap_false ) ).
).
WHEN 'BUTTON_POPUP_06'. WHEN 'BUTTON_POPUP_06'.
" client->set( set_prev_view = abap_true ). client->nav_app_call( z2ui5_cl_app_demo_20=>factory(
client->view_popup( 'POPUP_TABLE' ). i_text = '(new app )this is a popup to decide, the text is send from the previous app and the answer will be send back'
i_cancel_text = 'Cancel'
WHEN 'POPUP_TABLE_SEND'. i_cancel_event = 'POPUP_DECIDE_CANCEL'
client->popup_message_box( 'entries edited' ). i_confirm_text = 'Continue'
i_confirm_event = 'POPUP_DECIDE_CONTINUE' ) ).
WHEN 'BACK'. WHEN 'BACK'.
client->nav_app_leave( client->get( )-id_prev_app_stack ). client->nav_app_leave( client->get( )-id_prev_app_stack ).
@ -120,154 +67,66 @@ CLASS z2ui5_cl_app_demo_12 IMPLEMENTATION.
WHEN client->cs-lifecycle_method-on_rendering. WHEN client->cs-lifecycle_method-on_rendering.
DATA(view) = client->factory_view( ). DATA(view) = client->factory_view( name = 'MAIN' ).
DATA(page) = view->page( title = 'abap2UI5 - Popups' navbuttontap = view->_event( 'BACK' ) ). 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 ). 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' ). DATA(grid) = page->grid( 'L7 M12 S12' )->content( 'l' ).
grid->simple_form( 'Popup in same App' )->content( 'f'
grid->simple_form( 'Input' )->content( 'f' )->label( 'Demo'
)->label( '01' )->button(
)->button( text = 'Popup to Decide' press = view->_event( 'POPUP_TO_DECIDE' ) text = 'popup rendering, no background rendering'
)->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' ) press = view->_event( 'BUTTON_POPUP_01' )
). )->label( 'Demo'
)->button(
page->button( text = 'popup rendering, background rendering'
text = 'Popup same app - popup rendering, view rendering'
press = view->_event( 'BUTTON_POPUP_02' ) press = view->_event( 'BUTTON_POPUP_02' )
). )->label( 'Demo'
)->button(
page->button( text = 'popup rendering, background rendering - close (no roundtrip)'
text = 'Popup same app - popup rendering, view rendering - frontend close'
press = view->_event( 'BUTTON_POPUP_03' ) press = view->_event( 'BUTTON_POPUP_03' )
). )->label( 'Demo'
)->button(
page->button( text = 'popup rendering, background rendering (previous view)'
text = 'Popup same app - popup rendering, view previous' press = view->_event( 'BUTTON_POPUP_04' ) ).
press = view->_event( 'BUTTON_POPUP_04' ) grid->simple_form( 'Popup in new App' )->content( 'f'
). )->label( 'Demo'
)->button( text = 'popup rendering, no background'
press = view->_event( 'BUTTON_POPUP_05' )
page->button( )->label( 'Demo'
text = 'Popup next app - popup rendering, view previous' )->button(
press = view->_event( 'BUTTON_POPUP_05' ) text = 'popup rendering, background rendering (previous view)'
). press = view->_event( 'BUTTON_POPUP_06' ) ).
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' ). view = client->factory_view( 'POPUP_DECIDE' ).
DATA(popup) = view->dialog( title = 'Popup - Decide' ). DATA(popup) = view->dialog( title = 'Popup - Decide'
)->vbox( )->text( text = 'this is a popup to decide, you have to make a decision now...'
popup->text( text = 'this is a message' ). )->get_parent(
popup->button( text = 'YES' press = view->_event( 'POPUP_CONFIRM_YES' ) ). )->footer( )->overflow_toolbar(
popup->button( text = 'NO' press = view->_event( 'POPUP_CONFIRM_NO' ) ).
popup->footer( )->overflow_toolbar(
)->toolbar_spacer( )->toolbar_spacer(
)->button( )->button(
text = 'Send to Server' text = 'Cancel'
press = view->_event( 'BUTTON_SEND' ) press = view->_event( 'POPUP_DECIDE_CANCEL' )
type = 'Success' ). )->button(
text = 'Continue'
press = view->_event( 'POPUP_DECIDE_CONTINUE' )
type = 'Emphasized' ).
view = client->factory_view( 'POPUP_DECIDE_FRONTEND_CLOSE' ).
popup = view->dialog( title = 'Popup - Info'
)->vbox( )->text( text = 'this is an information, press close to go back to the main view without a server roundtrip'
view = client->factory_view( 'BAL_POPUP2' ). )->get_parent(
)->footer( )->overflow_toolbar(
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( )->toolbar_spacer(
)->button( )->button(
text = 'frontend close' text = 'close'
press = view->_event_close_popup( ) press = view->_event_close_popup( )
type = 'Success' ). type = 'Emphasized' ).
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. ENDCASE.
ENDMETHOD. ENDMETHOD.

View File

@ -6,6 +6,19 @@ CLASS z2ui5_cl_app_demo_18 DEFINITION PUBLIC.
DATA mv_path TYPE string. DATA mv_path TYPE string.
DATA mv_value TYPE string. DATA mv_value TYPE string.
TYPES:
BEGIN OF ty_file,
selkz TYPE abap_bool,
name TYPE string,
format TYPE string,
size TYPE string,
descr TYPE string,
data TYPE string,
END OF ty_file.
DATA mt_file TYPE STANDARD TABLE OF ty_file WITH EMPTY KEY.
DATA ms_file TYPE ty_file.
PROTECTED SECTION. PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
@ -26,27 +39,25 @@ CLASS z2ui5_cl_app_demo_18 IMPLEMENTATION.
WHEN client->cs-lifecycle_method-on_event. WHEN client->cs-lifecycle_method-on_event.
* *
CASE client->get( )-event. CASE client->get( )-event.
*
* WHEN 'DB_LOAD'. WHEN 'DISPLAY'.
* ms_file = mt_file[ selkz = abap_true ].
* mv_editor = COND #(
* WHEN mv_path CS 'abap' THEN lcl_mime_api=>read_abap( )
* WHEN mv_path CS 'json' THEN lcl_mime_api=>read_json( )
* WHEN mv_path CS 'yaml' THEN lcl_mime_api=>read_yaml( )
* WHEN mv_path CS 'text' THEN lcl_mime_api=>read_text( ) ).
* client->display_message_toast( 'Download successfull').
*
* WHEN 'DB_SAVE'.
* lcl_mime_api=>save_data( mv_editor ).
* client->display_message_box( text = 'Upload successfull. File saved!' type = 'success' ).
*
* WHEN 'EDIT'.
* mv_check_editable = xsdbool( mv_check_editable = abap_False ).
* WHEN 'CLEAR'.
* mv_editor = ``.
WHEN 'UPLOAD'. WHEN 'UPLOAD'.
DATA(lv_dummy) = ''. INSERT VALUE #( name = mv_path data = mv_value size = strlen( mv_value ) format = mv_value+5(5) ) INTO TABLE mt_file.
WHEN 'TEXTAREA_CONFIRM'.
mt_file[ name = ms_file-name ] = ms_file.
CLEAR ms_file.
WHEN 'POPUP_DESCR'.
ms_file = mt_file[ selkz = abap_true ].
client->view_popup( 'POPUP_DESCR' ).
WHEN 'POPUP_DATA'.
ms_file = mt_file[ selkz = abap_true ].
client->view_popup( 'POPUP_DATA' ).
WHEN 'BACK'. WHEN 'BACK'.
client->nav_app_leave( client->get( )-id_prev_app_stack ). client->nav_app_leave( client->get( )-id_prev_app_stack ).
@ -56,28 +67,91 @@ CLASS z2ui5_cl_app_demo_18 IMPLEMENTATION.
DATA(view) = client->factory_view( 'VIEW_INPUT' ). DATA(view) = client->factory_view( 'VIEW_INPUT' ).
DATA(page) = view->page( title = 'abap2UI5 - Upload/Download Files' navbuttontap = view->_event( 'BACK' ) ). DATA(page) = view->page( title = 'abap2UI5 - Upload/Download Files' navbuttontap = view->_event( 'BACK' ) ).
" DATA(grid) = page->grid( 'L12 M12 S12' )->content( 'l' ).
DATA(lv_html_text) = `<h3>subheader</h3><p>link: <a href="//www.sap.com" style="color:green; font-weight:600;">link to sap.com</a> - links open in a new window.</p><p>paragraph: <strong>strong</strong> and <em>emphasized</em>.</p><p>list:</p><ul` &&
`><li>list item 1</li><li>list item 2<ul><li>sub item 1</li><li>sub item 2</li></ul></li></ul><p>pre:</p><pre>abc def ghi</pre><p>code: <code>var el = document.getElementById("myId");</code></p><p>cite: <cite>a reference to a source</cite></p>` &&
`<dl><dt>definition:</dt><dd>definition list of terms and descriptions</dd>`.
page->vbox( 'sapUiSmallMargin' )->formatted_text( htmltext = lv_html_text ).
page->zz_file_uploader( page->zz_file_uploader(
value = view->_bind( mv_value ) value = view->_bind( mv_value )
path = view->_bind( mv_path ) path = view->_bind( mv_path )
placeholder = 'filepath here...' placeholder = 'filepath here...'
upload = view->_event( 'UPLOAD' ) upload = view->_event( 'UPLOAD' ) ).
).
IF mv_value IS NOT INITIAL.
page->zz_html( '<iframe src="' && mv_value && '" height="90%" width="98%"/>' ). DATA(tab) = page->table(
headertext = 'Table'
mode = 'SingleSelectLeft'
items = view->_bind( mt_file ) ).
"set toolbar
tab->header_toolbar( )->overflow_toolbar(
)->title( 'Files'
)->toolbar_spacer(
)->button( text = 'Edit Description' press = view->_event( 'POPUP_DESCR' )
)->button( text = 'Show Base64' press = view->_event( 'POPUP_DATA' )
)->button( text = 'display' press = view->_event( 'DISPLAY' )
).
tab->columns(
)->column( width = '10%'
" )->text( 'Title'
)->get_parent(
)->column( width = '10%'
" )->text( 'Value'
)->get_parent(
)->column( width = '10%'
" )->text( 'Value'
)->get_parent(
)->column(
" )->text( 'Description'
).
tab->items( )->column_list_item( selected = '{SELKZ}' )->cells(
)->text( '{NAME}'
)->text( '{FORMAT}'
)->text( '{SIZE}'
)->text( '{DESCR}' ).
IF ms_file-data IS NOT INITIAL.
page->zz_html( '<iframe src="' && ms_file-data && '" height="75%" width="98%"/>' ).
CLEAR mv_value. CLEAR mv_value.
ENDIF. ENDIF.
RETURN.
" mv_editor = escape( val = mv_editor format = cl_abap_format=>e_json_string ).
view = client->factory_view( 'POPUP_DESCR' ).
DATA(popup) = view->dialog( title = 'Edit Description' icon = 'sap-icon://edit' ).
popup->content(
)->text_area(
height = '100%'
width = '100%'
value = view->_bind( ms_file-descr ) ).
popup->footer( )->overflow_toolbar(
)->toolbar_spacer(
)->button(
text = 'Cancel'
press = view->_event( 'TEXTAREA_CANCEL' )
)->button(
text = 'Confirm'
press = view->_event( 'TEXTAREA_CONFIRM' )
type = 'Emphasized' ).
view = client->factory_view( 'POPUP_DATA' ).
popup = view->dialog( stretch = abaP_true title = 'Data:' ).
popup->content(
)->text_area(
height = '99%'
width = '99%'
enabled = abap_false
value = view->_bind( ms_file-data ) ).
popup->footer( )->overflow_toolbar(
)->toolbar_spacer(
)->button(
text = 'close'
press = view->_event( 'TEXTAREA_CONFIRM' )
type = 'Emphasized' ).
ENDCASE. ENDCASE.

View File

@ -5,22 +5,21 @@ CLASS z2ui5_cl_app_demo_20 DEFINITION PUBLIC.
INTERFACES z2ui5_if_app. INTERFACES z2ui5_if_app.
CLASS-METHODS factory CLASS-METHODS factory
IMPORTING IMPORTING
i_text TYPE string i_text TYPE string
i_cancel_text TYPE string i_cancel_text TYPE string
i_cancel_event TYPE string i_cancel_event TYPE string
i_confirm_text TYPE string i_confirm_text TYPE string
i_confirm_event TYPE string i_confirm_event TYPE string
i_check_show_previous_view type abap_bool optional i_check_show_previous_view TYPE abap_bool DEFAULT abap_true
RETURNING RETURNING
VALUE(r_result) TYPE REF TO z2ui5_cl_app_demo_20. VALUE(r_result) TYPE REF TO z2ui5_cl_app_demo_20.
DATA mv_text TYPE string. DATA mv_text TYPE string.
DATA mv_cancel_text TYPE string. DATA mv_cancel_text TYPE string.
DATA mv_cancel_event TYPE string. DATA mv_cancel_event TYPE string.
DATA mv_confirm_text TYPE string. DATA mv_confirm_text TYPE string.
DATA mv_confirm_event TYPE string. DATA mv_confirm_event TYPE string.
DATA mv_check_show_previous_view TYPE abap_bool.
data mv_check_show_previous_view type abap_bool.
PROTECTED SECTION. PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
@ -49,9 +48,9 @@ CLASS z2ui5_cl_app_demo_20 IMPLEMENTATION.
CASE client->get( )-lifecycle_method. CASE client->get( )-lifecycle_method.
WHEN client->cs-lifecycle_method-on_init. WHEN client->cs-lifecycle_method-on_init.
if mv_check_show_previous_view = abap_true. IF mv_check_show_previous_view = abap_true.
client->set( set_prev_view = abap_true ). client->set( set_prev_view = abap_true ).
endif. ENDIF.
client->view_popup( 'POPUP_DECIDE' ). client->view_popup( 'POPUP_DECIDE' ).
WHEN client->cs-lifecycle_method-on_event. WHEN client->cs-lifecycle_method-on_event.
@ -67,20 +66,18 @@ CLASS z2ui5_cl_app_demo_20 IMPLEMENTATION.
WHEN client->cs-lifecycle_method-on_rendering. WHEN client->cs-lifecycle_method-on_rendering.
DATA(view) = client->factory_view( 'POPUP_DECIDE' ). DATA(view) = client->factory_view( 'POPUP_DECIDE' ).
DATA(page) = view->dialog( title = 'abap2UI5 - Popup to decide'
)->vbox( )->text( text = mv_text )->get_parent(
)->footer( )->overflow_toolbar(
)->toolbar_spacer(
)->button(
text = mv_cancel_text
press = view->_event( mv_cancel_event )
)->button(
text = mv_confirm_text
press = view->_event( mv_confirm_event )
type = 'Emphasized' ).
DATA(page) = view->dialog( title = 'Example - ZZ2UI5_CL_APP_DEMO_07' ).
page->text( text = mv_text ).
page->button( text = mv_cancel_text press = view->_event( mv_cancel_event ) ).
page->button( text = mv_confirm_text press = view->_event( mv_confirm_event ) ).
page->footer( )->overflow_toolbar(
)->toolbar_spacer(
)->button(
text = 'Send to Server'
press = view->_event( 'BUTTON_SEND' )
type = 'Success' ).
ENDCASE. ENDCASE.
ENDMETHOD. ENDMETHOD.

View File

@ -67,7 +67,7 @@ CLASS z2ui5_lcl_utility DEFINITION INHERITING FROM cx_no_check.
CLASS-METHODS get_classname_by_ref CLASS-METHODS get_classname_by_ref
IMPORTING IMPORTING
in TYPE REF TO object in TYPE REF TO object
RETURNING RETURNING
VALUE(result) TYPE string. VALUE(result) TYPE string.
@ -109,15 +109,15 @@ CLASS z2ui5_lcl_utility DEFINITION INHERITING FROM cx_no_check.
CLASS-METHODS get_attri_name_by_ref CLASS-METHODS get_attri_name_by_ref
IMPORTING IMPORTING
i_focus TYPE data i_focus TYPE data
io_app TYPE REF TO object io_app TYPE REF TO object
t_attri TYPE ty-t-attri t_attri TYPE ty-t-attri
RETURNING RETURNING
VALUE(result) TYPE string ##NEEDED. VALUE(result) TYPE string ##NEEDED.
CLASS-METHODS get_t_attri_by_ref CLASS-METHODS get_t_attri_by_ref
IMPORTING IMPORTING
io_app TYPE REF TO object io_app TYPE REF TO object
RETURNING RETURNING
VALUE(result) TYPE ty-t-attri ##NEEDED. VALUE(result) TYPE ty-t-attri ##NEEDED.
@ -129,14 +129,14 @@ CLASS z2ui5_lcl_utility DEFINITION INHERITING FROM cx_no_check.
CLASS-METHODS get_params_by_url CLASS-METHODS get_params_by_url
IMPORTING IMPORTING
url TYPE string url TYPE string
name TYPE string name TYPE string
RETURNING RETURNING
VALUE(result) TYPE string. VALUE(result) TYPE string.
CLASS-METHODS get_prev_when_no_handler CLASS-METHODS get_prev_when_no_handler
IMPORTING IMPORTING
val TYPE REF TO cx_root val TYPE REF TO cx_root
RETURNING RETURNING
VALUE(result) TYPE REF TO cx_root. VALUE(result) TYPE REF TO cx_root.
@ -149,7 +149,7 @@ CLASS z2ui5_lcl_utility DEFINITION INHERITING FROM cx_no_check.
CLASS-METHODS get_abap_2_json CLASS-METHODS get_abap_2_json
IMPORTING IMPORTING
val TYPE any val TYPE any
RETURNING RETURNING
VALUE(result) TYPE string. VALUE(result) TYPE string.
@ -161,7 +161,7 @@ CLASS z2ui5_lcl_utility DEFINITION INHERITING FROM cx_no_check.
CLASS-METHODS get_json_boolean CLASS-METHODS get_json_boolean
IMPORTING IMPORTING
val TYPE any val TYPE any
RETURNING RETURNING
VALUE(result) TYPE string. VALUE(result) TYPE string.
@ -171,7 +171,7 @@ CLASS z2ui5_lcl_utility DEFINITION INHERITING FROM cx_no_check.
CLASS-METHODS get_trim_upper CLASS-METHODS get_trim_upper
IMPORTING IMPORTING
val TYPE clike val TYPE clike
RETURNING RETURNING
VALUE(result) TYPE string. VALUE(result) TYPE string.
@ -181,8 +181,8 @@ CLASS z2ui5_lcl_utility DEFINITION INHERITING FROM cx_no_check.
CLASS-METHODS _get_t_attri CLASS-METHODS _get_t_attri
IMPORTING IMPORTING
io_app TYPE REF TO object io_app TYPE REF TO object
iv_attri TYPE csequence iv_attri TYPE csequence
RETURNING RETURNING
VALUE(result) TYPE abap_attrdescr_tab. VALUE(result) TYPE abap_attrdescr_tab.
@ -594,14 +594,14 @@ CLASS z2ui5_lcl_utility_tree_json DEFINITION.
CLASS-METHODS new CLASS-METHODS new
IMPORTING IMPORTING
io_root TYPE REF TO z2ui5_lcl_utility_tree_json io_root TYPE REF TO z2ui5_lcl_utility_tree_json
iv_name TYPE simple iv_name TYPE simple
RETURNING RETURNING
VALUE(result) TYPE REF TO z2ui5_lcl_utility_tree_json. VALUE(result) TYPE REF TO z2ui5_lcl_utility_tree_json.
CLASS-METHODS factory CLASS-METHODS factory
IMPORTING IMPORTING
iv_json TYPE clike OPTIONAL iv_json TYPE clike OPTIONAL
RETURNING RETURNING
VALUE(result) TYPE REF TO z2ui5_lcl_utility_tree_json. VALUE(result) TYPE REF TO z2ui5_lcl_utility_tree_json.
@ -613,7 +613,7 @@ CLASS z2ui5_lcl_utility_tree_json DEFINITION.
METHODS get_attribute METHODS get_attribute
IMPORTING IMPORTING
name TYPE string name TYPE string
RETURNING RETURNING
VALUE(result) TYPE REF TO z2ui5_lcl_utility_tree_json. VALUE(result) TYPE REF TO z2ui5_lcl_utility_tree_json.
@ -627,27 +627,27 @@ CLASS z2ui5_lcl_utility_tree_json DEFINITION.
METHODS add_list_val METHODS add_list_val
IMPORTING IMPORTING
v TYPE string v TYPE string
RETURNING RETURNING
VALUE(result) TYPE REF TO z2ui5_lcl_utility_tree_json. VALUE(result) TYPE REF TO z2ui5_lcl_utility_tree_json.
METHODS add_attribute METHODS add_attribute
IMPORTING IMPORTING
n TYPE clike n TYPE clike
v TYPE clike v TYPE clike
apos_active TYPE abap_bool DEFAULT abap_true apos_active TYPE abap_bool DEFAULT abap_true
RETURNING RETURNING
VALUE(result) TYPE REF TO z2ui5_lcl_utility_tree_json. VALUE(result) TYPE REF TO z2ui5_lcl_utility_tree_json.
METHODS add_attributes_name_value_tab METHODS add_attributes_name_value_tab
IMPORTING IMPORTING
it_name_value TYPE ty_T_name_value it_name_value TYPE ty_T_name_value
RETURNING RETURNING
VALUE(result) TYPE REF TO z2ui5_lcl_utility_tree_json. VALUE(result) TYPE REF TO z2ui5_lcl_utility_tree_json.
METHODS add_attribute_object METHODS add_attribute_object
IMPORTING IMPORTING
name TYPE clike name TYPE clike
RETURNING RETURNING
VALUE(result) TYPE REF TO z2ui5_lcl_utility_tree_json. VALUE(result) TYPE REF TO z2ui5_lcl_utility_tree_json.
@ -661,13 +661,13 @@ CLASS z2ui5_lcl_utility_tree_json DEFINITION.
METHODS add_attribute_list METHODS add_attribute_list
IMPORTING IMPORTING
name TYPE clike name TYPE clike
RETURNING RETURNING
VALUE(result) TYPE REF TO z2ui5_lcl_utility_tree_json. VALUE(result) TYPE REF TO z2ui5_lcl_utility_tree_json.
METHODS add_attribute_instance METHODS add_attribute_instance
IMPORTING IMPORTING
val TYPE REF TO z2ui5_lcl_utility_tree_json val TYPE REF TO z2ui5_lcl_utility_tree_json
RETURNING RETURNING
VALUE(result) TYPE REF TO z2ui5_lcl_utility_tree_json. VALUE(result) TYPE REF TO z2ui5_lcl_utility_tree_json.
@ -683,14 +683,14 @@ CLASS z2ui5_lcl_utility_tree_json DEFINITION.
METHODS wrap_json METHODS wrap_json
IMPORTING IMPORTING
iv_text TYPE string iv_text TYPE string
RETURNING RETURNING
VALUE(result) TYPE string. VALUE(result) TYPE string.
METHODS quote_json METHODS quote_json
IMPORTING IMPORTING
iv_text TYPE string iv_text TYPE string
iv_cond TYPE abap_bool iv_cond TYPE abap_bool
RETURNING RETURNING
VALUE(result) TYPE string. VALUE(result) TYPE string.
@ -979,8 +979,8 @@ CLASS z2ui5_lcl_if_view DEFINITION.
METHODS _get_name_by_ref METHODS _get_name_by_ref
IMPORTING IMPORTING
value TYPE data value TYPE data
type TYPE string DEFAULT cs-bind_type-two_way type TYPE string DEFAULT cs-bind_type-two_way
RETURNING RETURNING
VALUE(result) TYPE string. VALUE(result) TYPE string.
@ -1027,6 +1027,7 @@ CLASS z2ui5_lcl_system_runtime DEFINITION.
id_prev_app TYPE string, id_prev_app TYPE string,
id_prev_app_stack TYPE string, id_prev_app_stack TYPE string,
view_active TYPE string,
t_attri TYPE _=>ty-t-attri, t_attri TYPE _=>ty-t-attri,
o_app TYPE REF TO object, o_app TYPE REF TO object,
app_classname TYPE string, app_classname TYPE string,
@ -1085,9 +1086,9 @@ CLASS z2ui5_lcl_system_runtime DEFINITION.
RETURNING RETURNING
VALUE(result) TYPE REF TO z2ui5_lcl_system_runtime. VALUE(result) TYPE REF TO z2ui5_lcl_system_runtime.
CLASS-METHODS set_app_client_update CLASS-METHODS set_app_update_by_client
IMPORTING IMPORTING
id_prev TYPE clike id_prev TYPE clike
RETURNING RETURNING
VALUE(result) TYPE REF TO z2ui5_lcl_system_runtime. VALUE(result) TYPE REF TO z2ui5_lcl_system_runtime.
@ -1101,8 +1102,8 @@ CLASS z2ui5_lcl_system_runtime DEFINITION.
METHODS set_app_system_error METHODS set_app_system_error
IMPORTING IMPORTING
kind TYPE string kind TYPE string
ix TYPE REF TO cx_root ix TYPE REF TO cx_root
RETURNING RETURNING
VALUE(result) TYPE REF TO z2ui5_lcl_system_runtime. VALUE(result) TYPE REF TO z2ui5_lcl_system_runtime.
@ -1370,6 +1371,7 @@ CLASS z2ui5_lcl_if_view IMPLEMENTATION.
( n = 'showClearIcon' v = _=>get_json_boolean( showclearicon ) ) ( n = 'showClearIcon' v = _=>get_json_boolean( showclearicon ) )
( n = 'description' v = description ) ( n = 'description' v = description )
( n = 'editable' v = _=>get_json_boolean( editable ) ) ( n = 'editable' v = _=>get_json_boolean( editable ) )
( n = 'enabled' v = _=>get_json_boolean( enabled ) )
( n = 'valueState' v = valuestate ) ( n = 'valueState' v = valuestate )
( n = 'valueStateText' v = valuestatetext ) ( n = 'valueStateText' v = valuestatetext )
( n = 'value' v = value ) ( n = 'value' v = value )
@ -1460,7 +1462,8 @@ CLASS z2ui5_lcl_if_view IMPLEMENTATION.
result = _generic( result = _generic(
name = 'VBox' name = 'VBox'
t_prop = VALUE #( t_prop = VALUE #(
( n = 'class' v = class ) ( n = 'height' v = height )
( n = 'class' v = class )
) ). ) ).
ENDMETHOD. ENDMETHOD.
@ -1737,6 +1740,8 @@ CLASS z2ui5_lcl_if_view IMPLEMENTATION.
( n = 'rows' v = rows ) ( n = 'rows' v = rows )
( n = 'height' v = height ) ( n = 'height' v = height )
( n = 'width' v = width ) ( n = 'width' v = width )
( n = 'editable' v = _=>get_json_boolean( editable ) )
( n = 'enabled' v = _=>get_json_boolean( enabled ) )
( n = 'id' v = id ) ( n = 'id' v = id )
( n = 'growing' v = _=>get_json_boolean( growing ) ) ( n = 'growing' v = _=>get_json_boolean( growing ) )
( n = 'growingMaxLines' v = growingMaxLines ) ( n = 'growingMaxLines' v = growingMaxLines )
@ -2359,9 +2364,9 @@ CLASS z2ui5_lcl_system_app DEFINITION.
CLASS-METHODS factory_error CLASS-METHODS factory_error
IMPORTING IMPORTING
error TYPE REF TO cx_root error TYPE REF TO cx_root
app TYPE REF TO object OPTIONAL app TYPE REF TO object OPTIONAL
kind TYPE string OPTIONAL kind TYPE string OPTIONAL
RETURNING RETURNING
VALUE(result) TYPE REF TO z2ui5_lcl_system_app. VALUE(result) TYPE REF TO z2ui5_lcl_system_app.
@ -2512,9 +2517,13 @@ CLASS z2ui5_lcl_system_app IMPLEMENTATION.
view = client->factory_view( 'HOME' ). view = client->factory_view( 'HOME' ).
DATA(page) = view->page( DATA(page) = view->page(
class = 'sapUiContentPadding sapUiResponsivePadding--header sapUiResponsivePadding--subHeader sapUiResponsivePadding--content sapUiResponsivePadding--footer' class = 'sapUiContentPadding sapUiResponsivePadding--subHeader sapUiResponsivePadding--content sapUiResponsivePadding--footer'
title = 'abap2UI5 - Development of UI5 Apps in pure ABAP' ). " title = 'abap2UI5 - Development of UI5 Apps in pure ABAP'
).
page->header_content( page->header_content(
)->title( ''
)->title( 'abap2UI5 - Development of UI5 Apps in pure ABAP'
)->toolbar_spacer(
)->link( text = 'SCN' href = 'https://blogs.sap.com/tag/abap2ui5/' )->link( text = 'SCN' href = 'https://blogs.sap.com/tag/abap2ui5/'
)->link( text = 'Twitter' href = 'https://twitter.com/OblomovDev' )->link( text = 'Twitter' href = 'https://twitter.com/OblomovDev'
)->link( text = 'GitHub' href = 'https://github.com/oblomov-dev/abap2ui5' ). )->link( text = 'GitHub' href = 'https://github.com/oblomov-dev/abap2ui5' ).
@ -2652,7 +2661,7 @@ CLASS z2ui5_lcl_system_runtime IMPLEMENTATION.
RETURN. RETURN.
ENDTRY. ENDTRY.
result = set_app_client_update( lv_id_prev ). result = set_app_update_by_client( lv_id_prev ).
ENDMETHOD. ENDMETHOD.
@ -2670,7 +2679,7 @@ CLASS z2ui5_lcl_system_runtime IMPLEMENTATION.
CATCH cx_root. CATCH cx_root.
_=>raise( `View with the name ` && ms_next-view && ` not found - check the rendering` ). _=>raise( `View with the name ` && ms_next-view && ` not found - check the rendering` ).
ENDTRY. ENDTRY.
ELSEIF ms_actual-view_active IS NOT INITIAL. ELSEIF ms_actual-view_active IS NOT INITIAL AND ms_next-view_popup IS INITIAL.
TRY. TRY.
lr_screen = REF #( ms_next-t_screen[ name = ms_actual-view_active ] ). lr_screen = REF #( ms_next-t_screen[ name = ms_actual-view_active ] ).
ms_next-view = ms_actual-view_active. ms_next-view = ms_actual-view_active.
@ -2687,6 +2696,7 @@ CLASS z2ui5_lcl_system_runtime IMPLEMENTATION.
IF lr_screen IS BOUND. IF lr_screen IS BOUND.
DATA(ls_view) = lr_screen->o_parser->get_view( ). DATA(ls_view) = lr_screen->o_parser->get_view( ).
lo_ui5_model->add_attribute( n = `vView` v = ls_view-xml ). lo_ui5_model->add_attribute( n = `vView` v = ls_view-xml ).
ms_db-view_active = lr_screen->name.
ls_view-o_model->mv_name = 'oViewModel'. ls_view-o_model->mv_name = 'oViewModel'.
lo_ui5_model->add_attribute_instance( ls_view-o_model ). lo_ui5_model->add_attribute_instance( ls_view-o_model ).
ENDIF. ENDIF.
@ -2708,14 +2718,14 @@ CLASS z2ui5_lcl_system_runtime IMPLEMENTATION.
DATA(lo_system) = lo_ui5_model->add_attribute_object( 'oSystem' ). DATA(lo_system) = lo_ui5_model->add_attribute_object( 'oSystem' ).
lo_system->add_attribute( n = 'ID' v = ms_db-id ). lo_system->add_attribute( n = 'ID' v = ms_db-id ).
lo_system->add_attribute( n = 'VIEW_NAME' v = ms_next-view ). * lo_system->add_attribute( n = 'VIEW_NAME' v = ms_next-view ).
lo_system->add_attribute( n = 'VIEW_POPUP_NAME' v = ms_next-view_popup ). * lo_system->add_attribute( n = 'VIEW_POPUP_NAME' v = ms_next-view_popup ).
IF lr_screen IS BOUND. * IF lr_screen IS BOUND.
lo_system->add_attribute( n = 'VIEW' v = lr_screen->name ). * lo_system->add_attribute( n = 'VIEW' v = lr_screen->name ).
ENDIF. * ENDIF.
IF lr_screen_popup IS BOUND. * IF lr_screen_popup IS BOUND.
lo_system->add_attribute( n = 'VIEW_POPUP' v = lr_screen_popup->name ). * lo_system->add_attribute( n = 'VIEW_POPUP' v = lr_screen_popup->name ).
ENDIF. * ENDIF.
lo_system->add_attribute( n = 'CHECK_DEBUG_ACTIVE' v = _=>get_abap_2_json( z2ui5_cl_http_handler=>cs_config-check_debug_mode ) apos_active = abap_false ). lo_system->add_attribute( n = 'CHECK_DEBUG_ACTIVE' v = _=>get_abap_2_json( z2ui5_cl_http_handler=>cs_config-check_debug_mode ) apos_active = abap_false ).
@ -2756,7 +2766,7 @@ CLASS z2ui5_lcl_system_runtime IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD set_app_client_update. METHOD set_app_update_by_client.
CONSTANTS c_prefix TYPE string VALUE `result->MS_DB-O_APP->`. CONSTANTS c_prefix TYPE string VALUE `result->MS_DB-O_APP->`.
@ -2769,7 +2779,7 @@ CLASS z2ui5_lcl_system_runtime IMPLEMENTATION.
DATA(lo_system) = ss_client-o_body->get_attribute( 'OSYSTEM' ). DATA(lo_system) = ss_client-o_body->get_attribute( 'OSYSTEM' ).
TRY. TRY.
result->ms_next-view_popup = lo_system->get_attribute( 'VIEW_POPUP' )->get_val( ). * result->ms_next-view_popup = lo_system->get_attribute( 'VIEW_POPUP' )->get_val( ).
DATA(lo_popup_model) = ss_client-o_body->get_attribute( 'OPOPUP' ). DATA(lo_popup_model) = ss_client-o_body->get_attribute( 'OPOPUP' ).
LOOP AT result->ms_db-t_attri REFERENCE INTO DATA(lr_attri) LOOP AT result->ms_db-t_attri REFERENCE INTO DATA(lr_attri)
@ -2825,22 +2835,9 @@ CLASS z2ui5_lcl_system_runtime IMPLEMENTATION.
result->ms_next-event = ss_client-o_body->get_attribute( 'OEVENT' )->get_attribute( 'EVENT' )->get_val( ). result->ms_next-event = ss_client-o_body->get_attribute( 'OEVENT' )->get_attribute( 'EVENT' )->get_val( ).
CATCH cx_root. CATCH cx_root.
ENDTRY. ENDTRY.
* TRY.
* result->ms_next-page_scroll_pos = ss_client-o_body->get_attribute( 'scrollPos' )->get_val( ). result->ms_next-view = result->ms_db-view_active.
* CATCH cx_root. CLEAR result->ms_db-view_active.
* ENDTRY.
TRY.
result->ms_next-view = lo_system->get_attribute( 'VIEW' )->get_val( ).
CATCH cx_root.
ENDTRY.
TRY.
result->ms_next-view = lo_system->get_attribute( 'VIEW_NAME' )->get_val( ).
CATCH cx_root.
ENDTRY.
* TRY.
* result->ms_next-view = lo_system->get_attribute( 'VIEW_POPUP_NAME' )->get_val( ).
* CATCH cx_root.
* ENDTRY.
result->ms_next-lifecycle_method = z2ui5_if_client=>cs-lifecycle_method-on_event. result->ms_next-lifecycle_method = z2ui5_if_client=>cs-lifecycle_method-on_event.

View File

@ -115,6 +115,7 @@ INTERFACE z2ui5_if_view
valueStateText TYPE clike OPTIONAL valueStateText TYPE clike OPTIONAL
description TYPE clike OPTIONAL description TYPE clike OPTIONAL
editable TYPE clike OPTIONAL editable TYPE clike OPTIONAL
enabled TYPE clike OPTIONAL
suggestionItems TYPE clike OPTIONAL suggestionItems TYPE clike OPTIONAL
showSuggestion TYPE clike OPTIONAL showSuggestion TYPE clike OPTIONAL
showValueHelp TYPE clike OPTIONAL showValueHelp TYPE clike OPTIONAL
@ -376,7 +377,9 @@ INTERFACE z2ui5_if_view
METHODS vbox METHODS vbox
importing importing
class type clike optional height type clike optional
class type clike optional
PREFERRED PARAMETER class
RETURNING RETURNING
VALUE(result) TYPE REF TO z2ui5_if_view. VALUE(result) TYPE REF TO z2ui5_if_view.
@ -545,6 +548,8 @@ INTERFACE z2ui5_if_view
rows TYPE clike OPTIONAL rows TYPE clike OPTIONAL
height TYPE clike OPTIONAL height TYPE clike OPTIONAL
width TYPE clike OPTIONAL width TYPE clike OPTIONAL
editable TYPE clike OPTIONAL
enabled TYPE clike OPTIONAL
growing TYPE clike OPTIONAL growing TYPE clike OPTIONAL
growingMaxLines TYPE clike OPTIONAL growingMaxLines TYPE clike OPTIONAL
id TYPE clike OPTIONAL id TYPE clike OPTIONAL