Skip to content

Commit c56ff1a

Browse files
Added Demo for SmartMultiInput feature (#463)
* SmartMultiInput Demo * Update z2ui5_cl_demo_app_319.clas.abap --------- Co-authored-by: oblomov-dev <102328295+oblomov-dev@users.noreply.github.com>
1 parent fd69b71 commit c56ff1a

File tree

2 files changed

+110
-0
lines changed

2 files changed

+110
-0
lines changed
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
CLASS z2ui5_cl_demo_app_319 DEFINITION PUBLIC.
2+
3+
PUBLIC SECTION.
4+
INTERFACES z2ui5_if_app.
5+
6+
TYPES:
7+
BEGIN OF t_token,
8+
key TYPE string,
9+
text TYPE string,
10+
END OF t_token,
11+
t_tokens TYPE STANDARD TABLE OF t_token WITH EMPTY KEY.
12+
TYPES:
13+
BEGIN OF t_range,
14+
exclude TYPE boole_d,
15+
operation TYPE string,
16+
value1 TYPE string,
17+
value2 TYPE string,
18+
keyField TYPE string,
19+
END OF t_range,
20+
t_ranges TYPE STANDARD TABLE OF t_range WITH EMPTY KEY.
21+
DATA:
22+
BEGIN OF m_selection,
23+
BEGIN OF product_type,
24+
tokens_added TYPE t_tokens,
25+
tokens_removed TYPE t_tokens,
26+
ranges TYPE t_ranges,
27+
END OF product_type,
28+
END OF m_selection.
29+
PROTECTED SECTION.
30+
DATA m_client TYPE REF TO z2ui5_if_client.
31+
METHODS on_init.
32+
METHODS on_event.
33+
ENDCLASS.
34+
35+
CLASS z2ui5_cl_demo_app_319 IMPLEMENTATION.
36+
37+
METHOD z2ui5_if_app~main.
38+
39+
m_client = client.
40+
41+
IF m_client->check_on_init( ).
42+
on_init( ).
43+
RETURN.
44+
ENDIF.
45+
46+
on_event( ).
47+
48+
ENDMETHOD.
49+
50+
METHOD on_init.
51+
52+
DATA(l_view) = z2ui5_cl_xml_view=>factory( ).
53+
54+
DATA(l_page) = l_view->shell( appwidthlimited = 'false' )->page(
55+
id = 'SearchPage'
56+
title = TEXT-001
57+
shownavbutton = abap_false
58+
showheader = abap_true ).
59+
60+
l_page->_z2ui5( )->smartmultiinput_ext(
61+
addedtokens = m_client->_bind_edit( val = m_selection-product_type-tokens_added switch_default_model = abap_true )
62+
removedtokens = m_client->_bind_edit( val = m_selection-product_type-tokens_removed switch_default_model = abap_true )
63+
rangeData = m_client->_bind_edit( val = m_selection-product_type-ranges switch_default_model = abap_true )
64+
change = m_client->_event( 'PRODTYPE_CHANGED' )
65+
multiinputid = `ProductTypeMultiInput` ).
66+
67+
l_page->smart_multi_input(
68+
id = 'ProductTypeMultiInput'
69+
value = '{ProductType}'
70+
entityset = 'ProductList'
71+
supportranges = 'true'
72+
enableodataselect = 'true' ).
73+
74+
m_client->view_display( val = l_page->stringify( )
75+
switch_default_model_path = `/sap/opu/odata/sap/UI_PRODUCTLIST`
76+
switchdefaultmodelannouri = `/sap/opu/odata/IWFND/CATALOGSERVICE;v=2/Annotations(TechnicalName='UI_PRODUCTLIST_VAN',Version='0001')/$value` ).
77+
78+
ENDMETHOD.
79+
80+
METHOD on_event.
81+
82+
CASE m_client->get( )-event.
83+
WHEN 'PRODTYPE_CHANGED'.
84+
TRY.
85+
m_client->message_box_display(
86+
text = z2ui5_cl_ajson=>new( )->set( iv_path = '/' iv_val = m_selection-product_type-ranges )->stringify( )
87+
title = 'range content' ).
88+
CATCH z2ui5_cx_ajson_error INTO DATA(lx_ajson).
89+
m_client->message_toast_display( lx_ajson->get_text( ) ).
90+
ENDTRY.
91+
ENDCASE.
92+
93+
ENDMETHOD.
94+
ENDCLASS.

src/z2ui5_cl_demo_app_319.clas.xml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
3+
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
4+
<asx:values>
5+
<VSEOCLASS>
6+
<CLSNAME>Z2UI5_CL_DEMO_APP_319</CLSNAME>
7+
<LANGU>E</LANGU>
8+
<DESCRIPT>odata, smartmultiinput</DESCRIPT>
9+
<STATE>1</STATE>
10+
<CLSCCINCL>X</CLSCCINCL>
11+
<FIXPT>X</FIXPT>
12+
<UNICODE>X</UNICODE>
13+
</VSEOCLASS>
14+
</asx:values>
15+
</asx:abap>
16+
</abapGit>

0 commit comments

Comments
 (0)