diff --git a/src/package.devc.xml b/src/package.devc.xml
index 9bd9bf7f..1fe29164 100644
--- a/src/package.devc.xml
+++ b/src/package.devc.xml
@@ -3,7 +3,7 @@
- test
+ abap2UI5 - samples
diff --git a/src/z2ui5_cl_demo_app_000.clas.abap b/src/z2ui5_cl_demo_app_000.clas.abap
index da21923a..dd8e50d2 100644
--- a/src/z2ui5_cl_demo_app_000.clas.abap
+++ b/src/z2ui5_cl_demo_app_000.clas.abap
@@ -993,7 +993,23 @@ CLASS Z2UI5_CL_DEMO_APP_000 IMPLEMENTATION.
panel->generic_tile(
header = 'Launchpad I'
- subheader = `App Navigation & Parameters`
+ subheader = `Read Startup Parameters`
+ press = client->_event( 'z2ui5_cl_demo_app_187' )
+ mode = 'LineMode'
+ class = 'sapUiTinyMarginEnd sapUiTinyMarginBottom'
+ ).
+
+ panel->generic_tile(
+ header = 'Launchpad II'
+ subheader = `Set Title`
+ press = client->_event( 'z2ui5_cl_demo_app_188' )
+ mode = 'LineMode'
+ class = 'sapUiTinyMarginEnd sapUiTinyMarginBottom'
+ ).
+
+ panel->generic_tile(
+ header = 'Launchpad III'
+ subheader = `Cross App Navigation`
press = client->_event( 'z2ui5_cl_demo_app_127' )
mode = 'LineMode'
class = 'sapUiTinyMarginEnd sapUiTinyMarginBottom'
diff --git a/src/z2ui5_cl_demo_app_061.clas.abap b/src/z2ui5_cl_demo_app_061.clas.abap
index 4891e730..f9ad8574 100644
--- a/src/z2ui5_cl_demo_app_061.clas.abap
+++ b/src/z2ui5_cl_demo_app_061.clas.abap
@@ -26,15 +26,8 @@ CLASS Z2UI5_CL_DEMO_APP_061 IMPLEMENTATION.
)->page(
title = 'abap2UI5 - RTTI created Table'
navbuttonpress = client->_event( 'BACK' )
- shownavbutton = abap_true
- )->header_content(
- )->link(
- text = 'Demo' target = '_blank'
- href = 'https://twitter.com/abap2UI5/status/1676522756781817857'
- )->link(
- text = 'Source_Code' target = '_blank'
-
- )->get_parent( ).
+ shownavbutton = xsdbool( client->get( )-s_draft-id_prev_app_stack IS NOT INITIAL )
+ ).
FIELD-SYMBOLS TYPE table.
@@ -78,7 +71,7 @@ CLASS Z2UI5_CL_DEMO_APP_061 IMPLEMENTATION.
IF check_initialized = abap_false.
check_initialized = abap_true.
- CREATE DATA t_tab TYPE STANDARD TABLE OF ('Z2UI5_T_CORE_01').
+ CREATE DATA t_tab TYPE STANDARD TABLE OF ('Z2UI5_T_01').
FIELD-SYMBOLS TYPE table.
ASSIGN t_tab->* TO .
diff --git a/src/z2ui5_cl_demo_app_127.clas.abap b/src/z2ui5_cl_demo_app_127.clas.abap
index 5864fe89..f7fe9779 100644
--- a/src/z2ui5_cl_demo_app_127.clas.abap
+++ b/src/z2ui5_cl_demo_app_127.clas.abap
@@ -32,10 +32,14 @@ CLASS z2ui5_cl_demo_app_127 IMPLEMENTATION.
nav_params-product = '102343333'.
+ IF client->get( )-check_launchpad_active = abap_false.
+ client->message_box_display( `No Launchpad Active, Sample not working!` ).
+ ENDIF.
+
DATA(view) = z2ui5_cl_xml_view=>factory( ).
client->view_display( view->shell(
)->page(
- showheader = xsdbool( abap_false = client->get( )-check_launchpad_active )
+ showheader = xsdbool( abap_false = client->get( )-check_launchpad_active )
title = 'abap2UI5 - Cross App Navigation App 127 - This App only works when started via Launchpad'
navbuttonpress = client->_event( val = 'BACK' )
shownavbutton = xsdbool( client->get( )-s_draft-id_prev_app_stack IS NOT INITIAL )
@@ -55,7 +59,7 @@ CLASS z2ui5_cl_demo_app_127 IMPLEMENTATION.
press = client->_event_client(
val = client->cs_event-cross_app_nav_to_ext
t_arg = VALUE #(
- ( `{ semanticObject: "Z2UI5_CL_DEMO_APP_128", action: "Z2UI5_CL_DEMO_APP_128" }` )
+ ( `{ semanticObject: "Z2UI5_CL_DEMO_APP_128", action: "display" }` )
* ( `{ "Product" : "102343333" }` )
( `$` && client->_bind_edit( nav_params ) )
)
diff --git a/src/z2ui5_cl_demo_app_127.clas.xml b/src/z2ui5_cl_demo_app_127.clas.xml
index 939a6bb8..6cf4a337 100644
--- a/src/z2ui5_cl_demo_app_127.clas.xml
+++ b/src/z2ui5_cl_demo_app_127.clas.xml
@@ -5,7 +5,7 @@
Z2UI5_CL_DEMO_APP_127
E
- cross app navigation I
+ Launchpad III - cross app navigation I
1
X
X
diff --git a/src/z2ui5_cl_demo_app_128.clas.abap b/src/z2ui5_cl_demo_app_128.clas.abap
index e1a2d6ff..3adb44e4 100644
--- a/src/z2ui5_cl_demo_app_128.clas.abap
+++ b/src/z2ui5_cl_demo_app_128.clas.abap
@@ -62,7 +62,7 @@ CLASS z2ui5_cl_demo_app_128 IMPLEMENTATION.
text = 'go to app 127'
press = client->_event_client(
val = client->cs_event-cross_app_nav_to_ext
- t_arg = VALUE #( ( `{ semanticObject: "Z2UI5_CL_DEMO_APP_127", action: "Z2UI5_CL_DEMO_APP_127" }` ) ( `{ ProductID : "123234" }`) )
+ t_arg = VALUE #( ( `{ semanticObject: "Z2UI5_CL_DEMO_APP_127", action: "display " }` ) ( `{ ProductID : "123234" }`) )
)
)->stringify( ) ).
diff --git a/src/z2ui5_cl_demo_app_128.clas.xml b/src/z2ui5_cl_demo_app_128.clas.xml
index d3c3f338..b1f687bd 100644
--- a/src/z2ui5_cl_demo_app_128.clas.xml
+++ b/src/z2ui5_cl_demo_app_128.clas.xml
@@ -5,7 +5,7 @@
Z2UI5_CL_DEMO_APP_128
E
- cross app navigation II
+ Launchpad IV - cross app navigation II
1
X
X
diff --git a/src/z2ui5_cl_demo_app_187.clas.abap b/src/z2ui5_cl_demo_app_187.clas.abap
new file mode 100644
index 00000000..1b1ec44a
--- /dev/null
+++ b/src/z2ui5_cl_demo_app_187.clas.abap
@@ -0,0 +1,50 @@
+CLASS z2ui5_cl_demo_app_187 DEFINITION PUBLIC.
+
+ PUBLIC SECTION.
+ INTERFACES z2ui5_if_app.
+
+ DATA check_initialized TYPE abap_bool.
+
+ PROTECTED SECTION.
+ PRIVATE SECTION.
+ENDCLASS.
+
+
+CLASS z2ui5_cl_demo_app_187 IMPLEMENTATION.
+ METHOD z2ui5_if_app~main.
+ IF check_initialized = abap_false.
+ check_initialized = abap_true.
+
+ IF client->get( )-check_launchpad_active = abap_false.
+ client->message_box_display( `No Launchpad Active, Sample not working!` ).
+ ENDIF.
+
+ DATA(view) = z2ui5_cl_xml_view=>factory( ).
+ DATA(page) = view->shell( )->page( showheader = abap_false ).
+ client->view_display( page->simple_form( title = 'Laucnhpad I - Read Startup Parameters' editable = abap_true
+ )->content( 'form'
+ )->label( ``
+ )->button( text = 'Read Parameters'
+ press = client->_event( val = 'READ_PARAMS' )
+ )->label( ``
+ )->button( text = 'Go Back'
+ press = client->_event( val = 'BACK' ) )->stringify( ) ).
+
+ ENDIF.
+
+ CASE client->get( )-event.
+
+ WHEN 'READ_PARAMS'.
+ DATA(lv_text) = `Start Parameter: `.
+ DATA(lt_params) = client->get( )-t_comp_params.
+ LOOP AT lt_params INTO DATA(ls_param).
+ lv_text = |{ lv_text } / { ls_param-n } = { ls_param-v }|.
+ ENDLOOP.
+ client->message_box_display( lv_text ).
+
+ WHEN 'BACK'.
+ client->nav_app_leave( ).
+ ENDCASE.
+
+ ENDMETHOD.
+ENDCLASS.
diff --git a/src/z2ui5_cl_demo_app_187.clas.xml b/src/z2ui5_cl_demo_app_187.clas.xml
new file mode 100644
index 00000000..75ead4b4
--- /dev/null
+++ b/src/z2ui5_cl_demo_app_187.clas.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+ Z2UI5_CL_DEMO_APP_187
+ E
+ launchpad I - Startup Parameters
+ 1
+ X
+ X
+ X
+
+
+
+
diff --git a/src/z2ui5_cl_demo_app_188.clas.abap b/src/z2ui5_cl_demo_app_188.clas.abap
new file mode 100644
index 00000000..551f424c
--- /dev/null
+++ b/src/z2ui5_cl_demo_app_188.clas.abap
@@ -0,0 +1,54 @@
+CLASS z2ui5_cl_demo_app_188 DEFINITION PUBLIC.
+
+ PUBLIC SECTION.
+ INTERFACES z2ui5_if_app.
+
+ DATA mv_title TYPE string VALUE `my title`.
+ DATA check_initialized TYPE abap_bool.
+
+ PROTECTED SECTION.
+
+ PRIVATE SECTION.
+ENDCLASS.
+
+
+CLASS z2ui5_cl_demo_app_188 IMPLEMENTATION.
+ METHOD z2ui5_if_app~main.
+ IF check_initialized = abap_false.
+ check_initialized = abap_true.
+
+ IF client->get( )-check_launchpad_active = abap_false.
+ client->message_box_display( `No Launchpad Active, Sample not working!` ).
+ ENDIF.
+
+ DATA(view) = z2ui5_cl_xml_view=>factory( ).
+ DATA(page) = view->shell( )->page( showheader = abap_false ).
+
+ page->_z2ui5( )->lp_title( client->_bind_edit( mv_title ) ).
+
+ client->view_display( page->simple_form( title = 'Set Launchpad Title Dynamically' editable = abap_true
+ )->content( 'form'
+ )->label( ``
+ )->input( client->_bind_edit( mv_title )
+ )->label( ``
+ )->button( text = 'Go Back'
+ press = client->_event( val = 'BACK' ) )->stringify( ) ).
+
+ ENDIF.
+
+ CASE client->get( )-event.
+
+ WHEN 'READ_PARAMS'.
+ DATA(lv_text) = `Start Parameter: `.
+ DATA(lt_params) = client->get( )-t_comp_params.
+ LOOP AT lt_params INTO DATA(ls_param).
+ lv_text = |{ lv_text } / { ls_param-n } = { ls_param-v }|.
+ ENDLOOP.
+ client->message_box_display( lv_text ).
+
+ WHEN 'BACK'.
+ client->nav_app_leave( ).
+ ENDCASE.
+
+ ENDMETHOD.
+ENDCLASS.
diff --git a/src/z2ui5_cl_demo_app_188.clas.xml b/src/z2ui5_cl_demo_app_188.clas.xml
new file mode 100644
index 00000000..b5744fcc
--- /dev/null
+++ b/src/z2ui5_cl_demo_app_188.clas.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+ Z2UI5_CL_DEMO_APP_188
+ E
+ launchpad II - Set Title
+ 1
+ X
+ X
+ X
+
+
+
+
diff --git a/src/z2ui5_cl_demo_app_199.clas.abap b/src/z2ui5_cl_demo_app_199.clas.abap
index df4a0008..850a5a76 100644
--- a/src/z2ui5_cl_demo_app_199.clas.abap
+++ b/src/z2ui5_cl_demo_app_199.clas.abap
@@ -7,7 +7,6 @@ CLASS z2ui5_cl_demo_app_199 DEFINITION
DATA mt_table TYPE REF TO data.
DATA mv_counter TYPE string.
-
DATA mt_comp TYPE abap_component_tab.
PROTECTED SECTION.
@@ -16,16 +15,12 @@ CLASS z2ui5_cl_demo_app_199 DEFINITION
METHODS on_init.
METHODS on_event.
-
METHODS render_main.
PRIVATE SECTION.
- METHODS get_data.
- METHODS refresh.
+ METHODS refresh_data.
METHODS add_data.
- METHODS get_comp
- RETURNING VALUE(result) TYPE abap_component_tab.
ENDCLASS.
CLASS z2ui5_cl_demo_app_199 IMPLEMENTATION.
@@ -35,16 +30,13 @@ CLASS z2ui5_cl_demo_app_199 IMPLEMENTATION.
CASE client->get( )-event.
WHEN 'BACK'.
-
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
- WHEN 'REFRESH'.
-
- refresh( ).
+ WHEN 'CLEAR'.
+ refresh_data( ).
client->view_model_update( ).
WHEN 'ADD'.
-
add_data( ).
client->view_model_update( ).
@@ -52,7 +44,7 @@ CLASS z2ui5_cl_demo_app_199 IMPLEMENTATION.
ENDMETHOD.
METHOD on_init.
- get_data( ).
+ refresh_data( ).
render_main( ).
ENDMETHOD.
@@ -68,23 +60,14 @@ CLASS z2ui5_cl_demo_app_199 IMPLEMENTATION.
navbuttonpress = client->_event( 'BACK' )
shownavbutton = xsdbool( client->get( )-s_draft-id_prev_app_stack IS NOT INITIAL )
class = 'sapUiContentPadding' ).
-
DATA(table) = page->table( growing = 'true'
width = 'auto'
- items = client->_bind_edit( )
-* headertext = mv_table
- ).
+ items = client->_bind_edit( ) ).
DATA(columns) = table->columns( ).
LOOP AT mt_comp INTO DATA(comp).
-
- IF comp-name = 'DATA'.
- CONTINUE.
- ENDIF.
-
columns->column( )->text( comp-name ).
-
ENDLOOP.
DATA(cells) = columns->get_parent( )->items(
@@ -93,16 +76,11 @@ CLASS z2ui5_cl_demo_app_199 IMPLEMENTATION.
)->cells( ).
LOOP AT mt_comp INTO comp.
-
- IF comp-name = 'DATA'.
- CONTINUE.
- ENDIF.
-
cells->object_identifier( text = '{' && comp-name && '}' ).
ENDLOOP.
- page->button( text = 'Refresh'
- press = client->_event( 'REFRESH' )
+ page->button( text = 'Clear'
+ press = client->_event( 'CLEAR' )
)->button( text = 'Add'
press = client->_event( 'ADD' ) ).
@@ -115,97 +93,43 @@ CLASS z2ui5_cl_demo_app_199 IMPLEMENTATION.
IF check_initialized = abap_false.
check_initialized = abap_true.
-
on_init( ).
-
ENDIF.
IF mv_counter <> lines( mt_table->* ) AND mv_counter IS NOT INITIAL.
- client->message_toast_display( text = 'Frontend Lines <> Backend!' ).
+ client->message_box_display( text = 'Frontend Lines <> Backend!' type = 'error' ).
ENDIF.
on_event( ).
-
mv_counter = lines( mt_table->* ).
ENDMETHOD.
- METHOD get_data.
-
- FIELD-SYMBOLS TYPE STANDARD TABLE.
-
- mt_comp = get_comp( ).
+ METHOD refresh_data.
TRY.
- DATA(new_struct_desc) = cl_abap_structdescr=>create( mt_comp ).
-
- DATA(new_table_desc) = cl_abap_tabledescr=>create( p_line_type = new_struct_desc
- p_table_kind = cl_abap_tabledescr=>tablekind_std ).
-
- CREATE DATA mt_table TYPE HANDLE new_table_desc.
-
+ FIELD-SYMBOLS TYPE STANDARD TABLE.
+ TYPES ty_t_01 TYPE STANDARD TABLE OF z2ui5_t_01.
+ CREATE DATA mt_table TYPE ty_t_01.
ASSIGN mt_table->* TO .
+ mt_comp = z2ui5_cl_util_api=>rtti_get_t_attri_by_struc( ).
- SELECT * FROM z2ui5_t_01
+ SELECT id, id_prev FROM z2ui5_t_01
INTO CORRESPONDING FIELDS OF TABLE @
UP TO 2 ROWS.
CATCH cx_root.
-
ENDTRY.
ENDMETHOD.
- METHOD get_comp.
- TRY.
-
- DATA index TYPE int4.
-
- TRY.
-
- cl_abap_typedescr=>describe_by_name( EXPORTING p_name = 'Z2UI5_T_01'
- RECEIVING p_descr_ref = DATA(typedesc)
- EXCEPTIONS type_not_found = 1
- OTHERS = 2 ).
-
- DATA(structdesc) = CAST cl_abap_structdescr( typedesc ).
- DATA(comp) = structdesc->get_components( ).
-
- LOOP AT comp INTO DATA(com).
- IF com-as_include = abap_false.
- APPEND com TO result.
- ENDIF.
- ENDLOOP.
-
- CATCH cx_root.
-
- ENDTRY.
-
- DATA(component) = VALUE cl_abap_structdescr=>component_table(
- ( name = 'ROW_ID'
- type = CAST #( cl_abap_datadescr=>describe_by_data( index ) ) ) ).
-
- APPEND LINES OF component TO result.
-
- CATCH cx_root.
- ENDTRY.
- ENDMETHOD.
-
METHOD add_data.
FIELD-SYMBOLS TYPE STANDARD TABLE.
-
ASSIGN mt_table->* TO .
-
APPEND LINES OF TO .
ENDMETHOD.
- METHOD refresh.
-
- get_data( ).
-
- ENDMETHOD.
-
ENDCLASS.