mirror of
https://github.com/abap2UI5/abap2UI5.git
synced 2025-04-30 09:06:16 +08:00
add-search-app (#824)
* add-search-app * Update src/02/02/z2ui5_cl_app_search_apps.clas.abap Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com> * update abaplint fixes * update startup app * update * update * update * update * update --------- Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
This commit is contained in:
parent
fc6952a072
commit
63ff4eed6d
|
@ -42,6 +42,31 @@ CLASS z2ui5_cl_util_func DEFINITION
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(result) TYPE string.
|
VALUE(result) TYPE string.
|
||||||
|
|
||||||
|
CLASS-METHODS db_save
|
||||||
|
IMPORTING
|
||||||
|
uname TYPE clike OPTIONAL
|
||||||
|
handle TYPE clike OPTIONAL
|
||||||
|
handle2 TYPE clike OPTIONAL
|
||||||
|
handle3 TYPE clike OPTIONAL
|
||||||
|
data TYPE any
|
||||||
|
check_commit TYPE abap_bool DEFAULT abap_true
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE string.
|
||||||
|
|
||||||
|
CLASS-METHODS db_load_by_id
|
||||||
|
IMPORTING
|
||||||
|
id TYPE clike OPTIONAL
|
||||||
|
EXPORTING
|
||||||
|
VALUE(result) TYPE any.
|
||||||
|
|
||||||
|
CLASS-METHODS db_load_by_handle
|
||||||
|
IMPORTING
|
||||||
|
uname TYPE clike OPTIONAL
|
||||||
|
handle TYPE clike OPTIONAL
|
||||||
|
handle2 TYPE clike OPTIONAL
|
||||||
|
handle3 TYPE clike OPTIONAL
|
||||||
|
EXPORTING
|
||||||
|
VALUE(result) TYPE any.
|
||||||
|
|
||||||
CLASS-METHODS source_get_method
|
CLASS-METHODS source_get_method
|
||||||
IMPORTING
|
IMPORTING
|
||||||
|
@ -1508,4 +1533,70 @@ CLASS z2ui5_cl_util_func IMPLEMENTATION.
|
||||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error EXPORTING val = v.
|
RAISE EXCEPTION TYPE z2ui5_cx_util_error EXPORTING val = v.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD db_load_by_handle.
|
||||||
|
|
||||||
|
DATA lt_db TYPE STANDARD TABLE OF z2ui5_t_fw_02 WITH EMPTY KEY.
|
||||||
|
|
||||||
|
SELECT data
|
||||||
|
FROM z2ui5_t_fw_02
|
||||||
|
WHERE
|
||||||
|
uname = @uname
|
||||||
|
AND handle = @handle
|
||||||
|
AND handle2 = @handle2
|
||||||
|
AND handle3 = @handle3
|
||||||
|
INTO CORRESPONDING FIELDS OF TABLE @lt_db.
|
||||||
|
|
||||||
|
DATA(ls_db) = lt_db[ 1 ].
|
||||||
|
|
||||||
|
trans_xml_2_any(
|
||||||
|
EXPORTING
|
||||||
|
xml = ls_db-data
|
||||||
|
IMPORTING
|
||||||
|
any = result
|
||||||
|
).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD db_load_by_id.
|
||||||
|
|
||||||
|
DATA lt_db TYPE STANDARD TABLE OF z2ui5_t_fw_02 WITH EMPTY KEY.
|
||||||
|
|
||||||
|
SELECT data
|
||||||
|
FROM z2ui5_t_fw_02
|
||||||
|
WHERE id = @id
|
||||||
|
INTO CORRESPONDING FIELDS OF TABLE @lt_db.
|
||||||
|
|
||||||
|
DATA(ls_db) = lt_db[ 1 ].
|
||||||
|
|
||||||
|
trans_xml_2_any(
|
||||||
|
EXPORTING
|
||||||
|
xml = ls_db-data
|
||||||
|
IMPORTING
|
||||||
|
any = result
|
||||||
|
).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD db_save.
|
||||||
|
|
||||||
|
DATA(ls_db) = VALUE z2ui5_t_fw_02(
|
||||||
|
id = uuid_get_c32( )
|
||||||
|
uname = uname
|
||||||
|
handle = handle
|
||||||
|
handle2 = handle2
|
||||||
|
handle3 = handle3
|
||||||
|
data = trans_xml_by_any( data )
|
||||||
|
).
|
||||||
|
|
||||||
|
MODIFY z2ui5_t_fw_02 FROM @ls_db.
|
||||||
|
|
||||||
|
IF check_commit = abap_true.
|
||||||
|
COMMIT WORK AND WAIT.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
result = ls_db-id.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
98
src/01/01/z2ui5_t_fw_02.tabl.xml
Normal file
98
src/01/01/z2ui5_t_fw_02.tabl.xml
Normal file
|
@ -0,0 +1,98 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<abapGit version="v1.0.0" serializer="LCL_OBJECT_TABL" serializer_version="v1.0.0">
|
||||||
|
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||||
|
<asx:values>
|
||||||
|
<DD02V>
|
||||||
|
<TABNAME>Z2UI5_T_FW_02</TABNAME>
|
||||||
|
<DDLANGUAGE>E</DDLANGUAGE>
|
||||||
|
<TABCLASS>TRANSP</TABCLASS>
|
||||||
|
<DDTEXT>abap2UI5 - data storage</DDTEXT>
|
||||||
|
<CONTFLAG>A</CONTFLAG>
|
||||||
|
<EXCLASS>1</EXCLASS>
|
||||||
|
</DD02V>
|
||||||
|
<DD09L>
|
||||||
|
<TABNAME>Z2UI5_T_FW_02</TABNAME>
|
||||||
|
<AS4LOCAL>A</AS4LOCAL>
|
||||||
|
<TABKAT>0</TABKAT>
|
||||||
|
<TABART>APPL0</TABART>
|
||||||
|
<BUFALLOW>N</BUFALLOW>
|
||||||
|
</DD09L>
|
||||||
|
<DD03P_TABLE>
|
||||||
|
<DD03P>
|
||||||
|
<FIELDNAME>MANDT</FIELDNAME>
|
||||||
|
<KEYFLAG>X</KEYFLAG>
|
||||||
|
<ADMINFIELD>0</ADMINFIELD>
|
||||||
|
<INTTYPE>C</INTTYPE>
|
||||||
|
<INTLEN>000006</INTLEN>
|
||||||
|
<NOTNULL>X</NOTNULL>
|
||||||
|
<DATATYPE>CHAR</DATATYPE>
|
||||||
|
<LENG>000003</LENG>
|
||||||
|
<MASK> CHAR</MASK>
|
||||||
|
</DD03P>
|
||||||
|
<DD03P>
|
||||||
|
<FIELDNAME>ID</FIELDNAME>
|
||||||
|
<KEYFLAG>X</KEYFLAG>
|
||||||
|
<ADMINFIELD>0</ADMINFIELD>
|
||||||
|
<INTTYPE>C</INTTYPE>
|
||||||
|
<INTLEN>000064</INTLEN>
|
||||||
|
<NOTNULL>X</NOTNULL>
|
||||||
|
<DATATYPE>CHAR</DATATYPE>
|
||||||
|
<LENG>000032</LENG>
|
||||||
|
<MASK> CHAR</MASK>
|
||||||
|
</DD03P>
|
||||||
|
<DD03P>
|
||||||
|
<FIELDNAME>UNAME</FIELDNAME>
|
||||||
|
<ADMINFIELD>0</ADMINFIELD>
|
||||||
|
<INTTYPE>C</INTTYPE>
|
||||||
|
<INTLEN>000064</INTLEN>
|
||||||
|
<DATATYPE>CHAR</DATATYPE>
|
||||||
|
<LENG>000032</LENG>
|
||||||
|
<MASK> CHAR</MASK>
|
||||||
|
</DD03P>
|
||||||
|
<DD03P>
|
||||||
|
<FIELDNAME>HANDLE</FIELDNAME>
|
||||||
|
<ADMINFIELD>0</ADMINFIELD>
|
||||||
|
<INTTYPE>C</INTTYPE>
|
||||||
|
<INTLEN>000064</INTLEN>
|
||||||
|
<DATATYPE>CHAR</DATATYPE>
|
||||||
|
<LENG>000032</LENG>
|
||||||
|
<MASK> CHAR</MASK>
|
||||||
|
</DD03P>
|
||||||
|
<DD03P>
|
||||||
|
<FIELDNAME>HANDLE2</FIELDNAME>
|
||||||
|
<ADMINFIELD>0</ADMINFIELD>
|
||||||
|
<INTTYPE>C</INTTYPE>
|
||||||
|
<INTLEN>000064</INTLEN>
|
||||||
|
<DATATYPE>CHAR</DATATYPE>
|
||||||
|
<LENG>000032</LENG>
|
||||||
|
<MASK> CHAR</MASK>
|
||||||
|
</DD03P>
|
||||||
|
<DD03P>
|
||||||
|
<FIELDNAME>HANDLE3</FIELDNAME>
|
||||||
|
<ADMINFIELD>0</ADMINFIELD>
|
||||||
|
<INTTYPE>C</INTTYPE>
|
||||||
|
<INTLEN>000064</INTLEN>
|
||||||
|
<DATATYPE>CHAR</DATATYPE>
|
||||||
|
<LENG>000032</LENG>
|
||||||
|
<MASK> CHAR</MASK>
|
||||||
|
</DD03P>
|
||||||
|
<DD03P>
|
||||||
|
<FIELDNAME>DATA</FIELDNAME>
|
||||||
|
<ADMINFIELD>0</ADMINFIELD>
|
||||||
|
<INTTYPE>g</INTTYPE>
|
||||||
|
<INTLEN>000008</INTLEN>
|
||||||
|
<DATATYPE>STRG</DATATYPE>
|
||||||
|
<MASK> STRG</MASK>
|
||||||
|
</DD03P>
|
||||||
|
<DD03P>
|
||||||
|
<FIELDNAME>DATA2</FIELDNAME>
|
||||||
|
<ADMINFIELD>0</ADMINFIELD>
|
||||||
|
<INTTYPE>g</INTTYPE>
|
||||||
|
<INTLEN>000008</INTLEN>
|
||||||
|
<DATATYPE>STRG</DATATYPE>
|
||||||
|
<MASK> STRG</MASK>
|
||||||
|
</DD03P>
|
||||||
|
</DD03P_TABLE>
|
||||||
|
</asx:values>
|
||||||
|
</asx:abap>
|
||||||
|
</abapGit>
|
|
@ -169,7 +169,8 @@ CLASS Z2UI5_CL_FW_INDEX_HTML IMPLEMENTATION.
|
||||||
` }` && |\n| &&
|
` }` && |\n| &&
|
||||||
` }` && |\n| &&
|
` }` && |\n| &&
|
||||||
` )` && |\n| &&
|
` )` && |\n| &&
|
||||||
` }catch(e){ BusyIndicator.hide(); MessageBox.error(e.toLocaleString()); }` && |\n| &&
|
` }catch(e){ BusyIndicator.hide(); sap.z2ui5.isBusy = false; MessageBox.error( e.toLocaleString() , { title : "Unexpected Error Occured - App Terminated" , actions : [ ] , onClose : () => { new sap.m.BusyDialog({ text : "Please Restart t` &&
|
||||||
|
`he App" }).open(); } } ) }` && |\n| &&
|
||||||
` },` && |\n| &&
|
` },` && |\n| &&
|
||||||
|\n| &&
|
|\n| &&
|
||||||
` async displayFragment(xml, viewProp, openById) {` && |\n| &&
|
` async displayFragment(xml, viewProp, openById) {` && |\n| &&
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
<TABCLASS>TRANSP</TABCLASS>
|
<TABCLASS>TRANSP</TABCLASS>
|
||||||
<CLIDEP>X</CLIDEP>
|
<CLIDEP>X</CLIDEP>
|
||||||
<DDTEXT>abap2UI5 - drafts</DDTEXT>
|
<DDTEXT>abap2UI5 - drafts</DDTEXT>
|
||||||
<MASTERLANG>E</MASTERLANG>
|
|
||||||
<CONTFLAG>A</CONTFLAG>
|
<CONTFLAG>A</CONTFLAG>
|
||||||
<EXCLASS>1</EXCLASS>
|
<EXCLASS>1</EXCLASS>
|
||||||
</DD02V>
|
</DD02V>
|
||||||
|
@ -44,7 +43,6 @@
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
<ADMINFIELD>0</ADMINFIELD>
|
||||||
<INTTYPE>C</INTTYPE>
|
<INTTYPE>C</INTTYPE>
|
||||||
<INTLEN>000064</INTLEN>
|
<INTLEN>000064</INTLEN>
|
||||||
<NOTNULL>X</NOTNULL>
|
|
||||||
<DATATYPE>CHAR</DATATYPE>
|
<DATATYPE>CHAR</DATATYPE>
|
||||||
<LENG>000032</LENG>
|
<LENG>000032</LENG>
|
||||||
<MASK> CHAR</MASK>
|
<MASK> CHAR</MASK>
|
||||||
|
@ -54,7 +52,6 @@
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
<ADMINFIELD>0</ADMINFIELD>
|
||||||
<INTTYPE>C</INTTYPE>
|
<INTTYPE>C</INTTYPE>
|
||||||
<INTLEN>000064</INTLEN>
|
<INTLEN>000064</INTLEN>
|
||||||
<NOTNULL>X</NOTNULL>
|
|
||||||
<DATATYPE>CHAR</DATATYPE>
|
<DATATYPE>CHAR</DATATYPE>
|
||||||
<LENG>000032</LENG>
|
<LENG>000032</LENG>
|
||||||
<MASK> CHAR</MASK>
|
<MASK> CHAR</MASK>
|
||||||
|
@ -64,7 +61,6 @@
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
<ADMINFIELD>0</ADMINFIELD>
|
||||||
<INTTYPE>C</INTTYPE>
|
<INTTYPE>C</INTTYPE>
|
||||||
<INTLEN>000064</INTLEN>
|
<INTLEN>000064</INTLEN>
|
||||||
<NOTNULL>X</NOTNULL>
|
|
||||||
<DATATYPE>CHAR</DATATYPE>
|
<DATATYPE>CHAR</DATATYPE>
|
||||||
<LENG>000032</LENG>
|
<LENG>000032</LENG>
|
||||||
<MASK> CHAR</MASK>
|
<MASK> CHAR</MASK>
|
||||||
|
|
|
@ -75,6 +75,10 @@ CLASS z2ui5_cl_fw_app_startup IMPLEMENTATION.
|
||||||
editable = `true`
|
editable = `true`
|
||||||
)->content( )->_ns_m( ).
|
)->content( )->_ns_m( ).
|
||||||
|
|
||||||
|
DATA(lv_url_search) = z2ui5_cl_util_func=>app_get_url(
|
||||||
|
client = client
|
||||||
|
classname = 'z2ui5_cl_app_search_apps' ).
|
||||||
|
|
||||||
content->label( `Step 1`
|
content->label( `Step 1`
|
||||||
)->text( `Create a new class in your abap system`
|
)->text( `Create a new class in your abap system`
|
||||||
)->label( `Step 2`
|
)->label( `Step 2`
|
||||||
|
@ -86,6 +90,7 @@ CLASS z2ui5_cl_fw_app_startup IMPLEMENTATION.
|
||||||
href = `https://github.com/abap2UI5/abap2UI5/blob/main/src/03/02/z2ui5_cl_app_hello_world.clas.abap`
|
href = `https://github.com/abap2UI5/abap2UI5/blob/main/src/03/02/z2ui5_cl_app_hello_world.clas.abap`
|
||||||
)->label( `Step 4` ).
|
)->label( `Step 4` ).
|
||||||
|
|
||||||
|
|
||||||
IF ms_home-class_editable = abap_true.
|
IF ms_home-class_editable = abap_true.
|
||||||
|
|
||||||
content->input( placeholder = `fill in the class name and press 'check'`
|
content->input( placeholder = `fill in the class name and press 'check'`
|
||||||
|
@ -109,7 +114,8 @@ CLASS z2ui5_cl_fw_app_startup IMPLEMENTATION.
|
||||||
href = lv_url
|
href = lv_url
|
||||||
enabled = z2ui5_cl_util_func=>boolean_abap_2_json( xsdbool( ms_home-class_editable = abap_false ) ) ).
|
enabled = z2ui5_cl_util_func=>boolean_abap_2_json( xsdbool( ms_home-class_editable = abap_false ) ) ).
|
||||||
|
|
||||||
DATA(form) = grid->simpleform( title = `Samples`
|
|
||||||
|
DATA(form) = grid->simpleform( title = `Apps`
|
||||||
editable = abap_true
|
editable = abap_true
|
||||||
layout = `ResponsiveGridLayout` ).
|
layout = `ResponsiveGridLayout` ).
|
||||||
|
|
||||||
|
@ -121,16 +127,36 @@ CLASS z2ui5_cl_fw_app_startup IMPLEMENTATION.
|
||||||
href = `https://github.com/abap2UI5/abap2UI5-samples` ).
|
href = `https://github.com/abap2UI5/abap2UI5-samples` ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
data(lv_url_samples) = z2ui5_cl_util_func=>app_get_url(
|
||||||
|
client = client
|
||||||
|
classname = 'z2ui5_cl_demo_app_000' ).
|
||||||
|
|
||||||
DATA(cont) = form->content( )->_ns_m( ).
|
DATA(cont) = form->content( )->_ns_m( ).
|
||||||
cont->label( ).
|
cont->label( `Samples`).
|
||||||
cont->button(
|
* cont->button(
|
||||||
|
* text = `Continue...`
|
||||||
|
* press = client->_event( val = `DEMOS` check_view_destroy = abap_true )
|
||||||
|
* enabled = xsdbool( mv_check_demo = abap_true ) )->_go_new( ).
|
||||||
|
cont->link(
|
||||||
text = `Continue...`
|
text = `Continue...`
|
||||||
press = client->_event( val = `DEMOS` check_view_destroy = abap_true )
|
target = `_blank`
|
||||||
enabled = xsdbool( mv_check_demo = abap_true ) )->_go_new( ).
|
* press = client->_event( val = `DEMOS` check_view_destroy = abap_true )
|
||||||
cont->button( visible = abap_false )->link( text = `More on GitHub...`
|
href = lv_url_samples
|
||||||
|
enabled = xsdbool( mv_check_demo = abap_true )
|
||||||
|
)->_go_new( ).
|
||||||
|
cont->button( visible = abap_false ).
|
||||||
|
|
||||||
|
cont->label( `Local`
|
||||||
|
)->link( text = `Search apps on your system...`
|
||||||
|
target = `_blank`
|
||||||
|
href = lv_url_search
|
||||||
|
).
|
||||||
|
|
||||||
|
cont->label( `Online` )->link( text = `More on GitHub...`
|
||||||
target = `_blank`
|
target = `_blank`
|
||||||
href = `https://github.com/abap2UI5/abap2UI5-documentation/blob/main/docs/links.md` ).
|
href = `https://github.com/abap2UI5/abap2UI5-documentation/blob/main/docs/links.md` ).
|
||||||
|
|
||||||
|
|
||||||
client->view_display( form->_stringify( ) ).
|
client->view_display( form->_stringify( ) ).
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
@ -144,7 +170,7 @@ CLASS z2ui5_cl_fw_app_startup IMPLEMENTATION.
|
||||||
mv_check_initialized = abap_true.
|
mv_check_initialized = abap_true.
|
||||||
z2ui5_on_init( ).
|
z2ui5_on_init( ).
|
||||||
view_display_start( ).
|
view_display_start( ).
|
||||||
return.
|
RETURN.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
IF client->get( )-check_on_navigated = abap_true.
|
IF client->get( )-check_on_navigated = abap_true.
|
||||||
|
@ -156,7 +182,7 @@ CLASS z2ui5_cl_fw_app_startup IMPLEMENTATION.
|
||||||
ASSIGN ls_result-row->* TO <class>.
|
ASSIGN ls_result-row->* TO <class>.
|
||||||
ms_home-classname = <class>.
|
ms_home-classname = <class>.
|
||||||
view_display_start( ).
|
view_display_start( ).
|
||||||
return.
|
RETURN.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
CATCH cx_root.
|
CATCH cx_root.
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
|
|
120
src/02/02/z2ui5_cl_app_search_apps.clas.abap
Normal file
120
src/02/02/z2ui5_cl_app_search_apps.clas.abap
Normal file
|
@ -0,0 +1,120 @@
|
||||||
|
CLASS z2ui5_cl_app_search_apps DEFINITION
|
||||||
|
PUBLIC
|
||||||
|
CREATE PUBLIC .
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
|
||||||
|
INTERFACES z2ui5_if_app.
|
||||||
|
|
||||||
|
TYPES:
|
||||||
|
BEGIN OF ty_app,
|
||||||
|
name TYPE string,
|
||||||
|
visible TYPE abap_bool,
|
||||||
|
END OF ty_app.
|
||||||
|
DATA mt_apps TYPE STANDARD TABLE OF ty_app WITH EMPTY KEY.
|
||||||
|
|
||||||
|
DATA check_initialized TYPE abap_bool.
|
||||||
|
DATA mv_search_value TYPE string.
|
||||||
|
|
||||||
|
PROTECTED SECTION.
|
||||||
|
METHODS search.
|
||||||
|
METHODS view_display
|
||||||
|
IMPORTING
|
||||||
|
client TYPE REF TO z2ui5_if_client.
|
||||||
|
PRIVATE SECTION.
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CLASS z2ui5_cl_app_search_apps IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD z2ui5_if_app~main.
|
||||||
|
|
||||||
|
IF check_initialized = abap_false.
|
||||||
|
check_initialized = abap_true.
|
||||||
|
|
||||||
|
mt_apps = VALUE #( FOR row IN z2ui5_cl_util_func=>rtti_get_classes_impl_intf( `Z2UI5_IF_APP` )
|
||||||
|
( name = row ) ).
|
||||||
|
search( ).
|
||||||
|
view_display( client ).
|
||||||
|
RETURN.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
IF client->get( )-check_on_navigated = abap_true.
|
||||||
|
view_display( client ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
CASE client->get( )-event.
|
||||||
|
|
||||||
|
WHEN `ON_PRESS`.
|
||||||
|
DATA(lt_arg) = client->get( )-t_event_arg.
|
||||||
|
DATA(lv_app) = lt_arg[ 1 ].
|
||||||
|
|
||||||
|
DATA li_app TYPE REF TO z2ui5_if_app.
|
||||||
|
CREATE OBJECT li_app TYPE (lv_app).
|
||||||
|
client->nav_app_call( li_app ).
|
||||||
|
|
||||||
|
* client->message_toast_display( lv_app ).
|
||||||
|
|
||||||
|
WHEN 'BACK'.
|
||||||
|
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
|
||||||
|
|
||||||
|
WHEN 'ON_SEARCH'.
|
||||||
|
search( ).
|
||||||
|
client->view_model_update( ).
|
||||||
|
client->message_toast_display( |backend search done| ).
|
||||||
|
ENDCASE.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD search.
|
||||||
|
|
||||||
|
DATA lr_app TYPE REF TO ty_app.
|
||||||
|
|
||||||
|
LOOP AT mt_apps REFERENCE INTO lr_app.
|
||||||
|
lr_app->visible = abap_false.
|
||||||
|
IF lr_app->name CS 'DEMO'.
|
||||||
|
CONTINUE.
|
||||||
|
ENDIF.
|
||||||
|
IF lr_app->name CS mv_search_value.
|
||||||
|
lr_app->visible = abap_true.
|
||||||
|
ENDIF.
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD view_display.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DATA(page) = z2ui5_cl_xml_view=>factory(
|
||||||
|
)->shell(
|
||||||
|
)->page(
|
||||||
|
title = 'abap2UI5 - Search Apps'
|
||||||
|
navbuttonpress = client->_event( 'BACK' )
|
||||||
|
shownavbutton = xsdbool( client->get( )-s_draft-id_prev_app_stack is not initial )
|
||||||
|
)->header_content(
|
||||||
|
)->search_field(
|
||||||
|
value = client->_bind_edit( mv_search_value )
|
||||||
|
search = client->_event( 'ON_SEARCH' )
|
||||||
|
change = client->_event( 'ON_SEARCH' )
|
||||||
|
width = `17.5rem`
|
||||||
|
id = `SEARCH`
|
||||||
|
)->get_parent( ).
|
||||||
|
|
||||||
|
LOOP AT mt_apps REFERENCE INTO DATA(lr_app).
|
||||||
|
DATA(lv_tabix) = sy-tabix.
|
||||||
|
page->generic_tile(
|
||||||
|
class = 'sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout'
|
||||||
|
press = client->_event( val = `ON_PRESS` t_arg = VALUE #( ( `${$source>/header}` ) ) )
|
||||||
|
header = client->_bind( val = lr_app->name tab = mt_apps tab_index = lv_tabix )
|
||||||
|
visible = client->_bind( val = lr_app->visible tab = mt_apps tab_index = lv_tabix ) ).
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
client->view_display( page->stringify( ) ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
ENDCLASS.
|
19
src/02/02/z2ui5_cl_app_search_apps.clas.testclasses.abap
Normal file
19
src/02/02/z2ui5_cl_app_search_apps.clas.testclasses.abap
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
CLASS ltcl_unit_test DEFINITION FINAL FOR TESTING
|
||||||
|
DURATION short
|
||||||
|
RISK LEVEL dangerous.
|
||||||
|
|
||||||
|
PRIVATE SECTION.
|
||||||
|
METHODS first_test FOR TESTING RAISING cx_static_check.
|
||||||
|
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
CLASS ltcl_unit_test IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD first_test.
|
||||||
|
|
||||||
|
DATA(lo_app) = NEW z2ui5_cl_app_search_apps( ) ##NEEDED.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
ENDCLASS.
|
17
src/02/02/z2ui5_cl_app_search_apps.clas.xml
Normal file
17
src/02/02/z2ui5_cl_app_search_apps.clas.xml
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
<?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_APP_SEARCH_APPS</CLSNAME>
|
||||||
|
<LANGU>E</LANGU>
|
||||||
|
<DESCRIPT>abap2UI5 - find all apps on the system</DESCRIPT>
|
||||||
|
<STATE>1</STATE>
|
||||||
|
<CLSCCINCL>X</CLSCCINCL>
|
||||||
|
<FIXPT>X</FIXPT>
|
||||||
|
<UNICODE>X</UNICODE>
|
||||||
|
<WITH_UNIT_TESTS>X</WITH_UNIT_TESTS>
|
||||||
|
</VSEOCLASS>
|
||||||
|
</asx:values>
|
||||||
|
</asx:abap>
|
||||||
|
</abapGit>
|
Loading…
Reference in New Issue
Block a user