Skip to content

Commit a42ebc9

Browse files
abapsheepViktor Hoffmann
andauthored
Update RTTI Samples (#527)
* Update RTTI Samples * Update --------- Co-authored-by: Viktor Hoffmann <[email protected]>
1 parent e32eb9b commit a42ebc9

10 files changed

+448
-13
lines changed

src/z2ui5_cl_demo_app_000.clas.abap

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1965,6 +1965,13 @@ CLASS z2ui5_cl_demo_app_000 IMPLEMENTATION.
19651965
class = 'sapUiTinyMarginEnd sapUiTinyMarginBottom'
19661966
).
19671967

1968+
panel->generic_tile( header = 'Model X'
1969+
subheader = 'RTTI Data - Sub Apps with deep truc'
1970+
press = client->_event( 'Z2UI5_CL_DEMO_APP_338' )
1971+
mode = 'LineMode'
1972+
class = 'sapUiTinyMarginEnd sapUiTinyMarginBottom'
1973+
).
1974+
19681975
panel->generic_tile( header = 'Date Format Error in internal table'
19691976
subheader = ''
19701977
press = client->_event( 'Z2UI5_CL_DEMO_APP_118' )

src/z2ui5_cl_demo_app_332.clas.abap

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ CLASS z2ui5_cl_demo_app_332 IMPLEMENTATION.
6565

6666
DATA(index) = 0.
6767

68-
LOOP AT mo_table_obj->mt_layout REFERENCE INTO DATA(layout).
68+
LOOP AT mo_table_obj->ms_data-t_layout REFERENCE INTO DATA(layout).
6969

7070
index = index + 1.
7171

@@ -80,7 +80,7 @@ CLASS z2ui5_cl_demo_app_332 IMPLEMENTATION.
8080

8181
line->input( value = client->_bind( <value> )
8282
visible = client->_bind( val = layout->visible
83-
tab = mo_table_obj->mt_layout
83+
tab = mo_table_obj->ms_data-t_layout
8484
tab_index = index )
8585
enabled = abap_false ).
8686
ENDLOOP.

src/z2ui5_cl_demo_app_333.clas.abap

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,37 @@ CLASS z2ui5_cl_demo_app_333 DEFINITION PUBLIC.
33
PUBLIC SECTION.
44
INTERFACES if_serializable_object.
55

6+
TYPES:
7+
BEGIN OF ty_s_test,
8+
v1 type abap_bool,
9+
BEGIN OF test2,
10+
v2 type abap_bool,
11+
BEGIN OF test3,
12+
v3 type abap_bool,
13+
BEGIN OF test4,
14+
v4 type abap_bool,
15+
END OF test4,
16+
end of test3,
17+
end of test2,
18+
END OF ty_s_test.
19+
TYPES ty_t_test TYPE STANDARD TABLE OF ty_s_test WITH EMPTY KEY.
20+
621
TYPES:
722
BEGIN OF ty_s_layout,
823
name TYPE string,
924
visible TYPE abap_bool,
25+
s_test type ty_s_test,
1026
END OF ty_s_layout.
1127
TYPES ty_t_layout TYPE STANDARD TABLE OF ty_s_layout WITH EMPTY KEY.
1228

1329
TYPES: BEGIN OF ty_s_DATA,
1430
guid TYPE sysuuid_c32,
31+
t_layout type ty_t_layout,
32+
s_test type ty_s_test,
1533
END OF ty_s_DATA.
1634
TYPES ty_t_DATA TYPE STANDARD TABLE OF ty_s_DATA WITH EMPTY KEY.
1735

18-
DATA mt_layout TYPE ty_t_layout.
36+
* DATA mt_layout TYPE ty_t_layout.
1937
DATA ms_DATA TYPE ty_s_data.
2038
DATA mr_data TYPE REF TO data.
2139

@@ -44,7 +62,7 @@ CLASS z2ui5_cl_demo_app_333 IMPLEMENTATION.
4462

4563
LOOP AT t_comp INTO DATA(comp).
4664

47-
APPEND INITIAL LINE TO result->mt_layout REFERENCE INTO DATA(layout).
65+
APPEND INITIAL LINE TO result->ms_data-t_layout REFERENCE INTO DATA(layout).
4866

4967
layout->name = comp-name.
5068
IF sy-tabix <= vis_cols.

src/z2ui5_cl_demo_app_334.clas.abap

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ CLASS z2ui5_cl_demo_app_334 IMPLEMENTATION.
7979

8080
DATA(index) = 0.
8181

82-
LOOP AT mo_layout_obj->mt_layout REFERENCE INTO DATA(layout).
82+
LOOP AT mo_layout_obj->ms_data-t_layout REFERENCE INTO DATA(layout).
8383

8484
index = index + 1.
8585

@@ -94,7 +94,7 @@ CLASS z2ui5_cl_demo_app_334 IMPLEMENTATION.
9494

9595
line->input( value = client->_bind( <value> )
9696
visible = client->_bind( val = layout->visible
97-
tab = mo_layout_obj->mt_layout
97+
tab = mo_layout_obj->ms_data-t_layout
9898
tab_index = index )
9999
enabled = abap_false ).
100100
ENDLOOP.

src/z2ui5_cl_demo_app_335.clas.abap

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ CLASS z2ui5_cl_demo_app_335 IMPLEMENTATION.
9595

9696
DATA(index) = 0.
9797

98-
LOOP AT mo_layout_obj->mt_layout REFERENCE INTO DATA(layout).
98+
LOOP AT mo_layout_obj->ms_data-t_layout REFERENCE INTO DATA(layout).
9999

100100
index = index + 1.
101101

@@ -110,7 +110,7 @@ CLASS z2ui5_cl_demo_app_335 IMPLEMENTATION.
110110

111111
line->input( value = client->_bind( <value> )
112112
visible = client->_bind( val = layout->visible
113-
tab = mo_layout_obj->mt_layout
113+
tab = mo_layout_obj->ms_data-t_layout
114114
tab_index = index )
115115
enabled = abap_false ).
116116
ENDLOOP.

src/z2ui5_cl_demo_app_337.clas.abap

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -121,11 +121,11 @@ CLASS z2ui5_cl_demo_app_337 IMPLEMENTATION.
121121

122122
DATA(columns) = table->columns( ).
123123

124-
LOOP AT mo_layout_obj->mt_layout REFERENCE INTO DATA(layout).
124+
LOOP AT mo_layout_obj->ms_data-t_layout REFERENCE INTO DATA(layout).
125125
DATA(lv_index) = sy-tabix.
126126

127127
columns->column( visible = i_client->_bind( val = layout->visible
128-
tab = mo_layout_obj->mt_layout
128+
tab = mo_layout_obj->ms_data-t_layout
129129
tab_index = lv_index )
130130
)->text( layout->name ).
131131

@@ -137,7 +137,7 @@ CLASS z2ui5_cl_demo_app_337 IMPLEMENTATION.
137137

138138
DATA(cells) = column_list_item->cells( ).
139139

140-
LOOP AT mo_layout_obj->mt_layout REFERENCE INTO layout.
140+
LOOP AT mo_layout_obj->ms_data-t_layout REFERENCE INTO layout.
141141

142142
lv_index = sy-tabix.
143143

@@ -171,7 +171,7 @@ CLASS z2ui5_cl_demo_app_337 IMPLEMENTATION.
171171

172172
DATA(index) = 0.
173173

174-
LOOP AT mo_layout_obj_2->mt_layout REFERENCE INTO DATA(layout).
174+
LOOP AT mo_layout_obj->ms_data-t_layout REFERENCE INTO DATA(layout).
175175

176176
index = index + 1.
177177

@@ -186,7 +186,7 @@ CLASS z2ui5_cl_demo_app_337 IMPLEMENTATION.
186186

187187
line->input( value = i_client->_bind( <value> )
188188
visible = I_client->_bind( val = layout->visible
189-
tab = mo_layout_obj_2->mt_layout
189+
tab = mo_layout_obj->ms_data-t_layout
190190
tab_index = index )
191191
enabled = abap_false ).
192192
ENDLOOP.

src/z2ui5_cl_demo_app_338.clas.abap

Lines changed: 170 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,170 @@
1+
CLASS z2ui5_cl_demo_app_338 DEFINITION
2+
PUBLIC
3+
CREATE PUBLIC.
4+
5+
PUBLIC SECTION.
6+
INTERFACES z2ui5_if_app.
7+
8+
TYPES:
9+
BEGIN OF ty_s_t002,
10+
id TYPE string,
11+
count TYPE string,
12+
table TYPE string,
13+
class TYPE string,
14+
END OF ty_s_t002.
15+
TYPES ty_t_t002 TYPE STANDARD TABLE OF ty_s_t002 WITH DEFAULT KEY.
16+
17+
DATA mv_selectedkey TYPE string.
18+
DATA mv_selectedkey_tmp TYPE string.
19+
DATA mt_t002 TYPE ty_t_t002.
20+
DATA mo_app TYPE REF TO object.
21+
22+
PROTECTED SECTION.
23+
DATA client TYPE REF TO z2ui5_if_client.
24+
25+
DATA mo_main_page TYPE REF TO z2ui5_cl_xml_view.
26+
27+
METHODS on_init.
28+
METHODS on_event.
29+
METHODS render_main.
30+
31+
METHODS render_sub_app.
32+
33+
PRIVATE SECTION.
34+
35+
ENDCLASS.
36+
37+
CLASS z2ui5_cl_demo_app_338 IMPLEMENTATION.
38+
39+
METHOD on_event.
40+
41+
CASE client->get( )-event.
42+
43+
WHEN 'ONSELECTICONTABBAR'.
44+
45+
CASE mv_selectedkey.
46+
47+
WHEN space.
48+
49+
WHEN OTHERS.
50+
51+
ENDCASE.
52+
53+
WHEN 'BACK'.
54+
55+
ENDCASE.
56+
57+
ENDMETHOD.
58+
59+
METHOD on_init.
60+
61+
MT_T002 = VALUE #( ( ID = '1' CLASS = 'Z2UI5_CL_DEMO_APP_339' TABLE = 'Z2UI5_T_01' )
62+
( ID = '2' CLASS = 'Z2UI5_CL_DEMO_APP_339' TABLE = 'Z2UI5_T_01' ) ).
63+
64+
mv_selectedkey = '1'.
65+
66+
ENDMETHOD.
67+
68+
METHOD render_main.
69+
70+
DATA(view) = z2ui5_cl_xml_view=>factory( )->shell( ).
71+
DATA(page) = view->page( id = `page_main`
72+
title = 'Main App calling Subapps'
73+
navbuttonpress = client->_event( 'BACK' )
74+
shownavbutton = xsdbool( client->get( )-s_draft-id_prev_app_stack IS NOT INITIAL )
75+
class = 'sapUiContentPadding' ).
76+
77+
DATA(lo_items) = page->icon_tab_bar( class = 'sapUiResponsiveContentPadding'
78+
selectedkey = client->_bind_edit( mv_selectedkey )
79+
select = client->_event( val = 'ONSELECTICONTABBAR' )
80+
)->items( ).
81+
82+
LOOP AT mt_t002 REFERENCE INTO DATA(line).
83+
lo_items->icon_tab_filter( text = line->class
84+
count = line->count
85+
key = line->id ).
86+
lo_items->icon_tab_separator( ).
87+
ENDLOOP.
88+
89+
mo_main_page = lo_items.
90+
91+
ENDMETHOD.
92+
93+
METHOD z2ui5_if_app~main.
94+
95+
me->client = client.
96+
97+
IF client->check_on_init( ).
98+
99+
on_init( ).
100+
render_main( ).
101+
ENDIF.
102+
103+
on_event( ).
104+
render_sub_app( ).
105+
106+
ENDMETHOD.
107+
108+
METHOD render_sub_app.
109+
FIELD-SYMBOLS <view_display> TYPE any.
110+
111+
112+
READ TABLE mt_t002 REFERENCE INTO DATA(t002)
113+
WITH KEY id = mv_selectedkey.
114+
115+
IF sy-subrc <> 0.
116+
RETURN.
117+
ENDIF.
118+
119+
CASE mv_selectedkey.
120+
121+
WHEN OTHERS.
122+
123+
IF mv_selectedkey <> mv_selectedkey_tmp.
124+
CREATE OBJECT mo_app TYPE (t002->class).
125+
ENDIF.
126+
TRY.
127+
128+
CALL METHOD mo_app->('SET_APP_DATA')
129+
EXPORTING
130+
table = t002->table.
131+
132+
render_main( ).
133+
134+
ASSIGN mo_app->('MO_PARENT_VIEW') TO FIELD-SYMBOL(<view>).
135+
IF <view> IS ASSIGNED.
136+
<view> = mo_main_page.
137+
ENDIF.
138+
139+
CALL METHOD mo_app->('Z2UI5_IF_APP~MAIN')
140+
EXPORTING
141+
client = client.
142+
143+
CATCH cx_root.
144+
RETURN.
145+
ENDTRY.
146+
147+
ENDCASE.
148+
149+
client->view_model_update( ).
150+
151+
152+
ASSIGN mo_app->('MV_VIEW_DISPLAY') TO <view_display>.
153+
154+
IF <view_display> = abap_true.
155+
<view_display> = abap_false.
156+
client->view_display( mo_main_page->stringify( ) ).
157+
ENDIF.
158+
159+
IF mv_selectedkey <> mv_selectedkey_tmp.
160+
161+
client->view_display( mo_main_page->stringify( ) ).
162+
mv_selectedkey_tmp = mv_selectedkey.
163+
164+
ENDIF.
165+
166+
client->view_model_update( ).
167+
168+
ENDMETHOD.
169+
170+
ENDCLASS.

src/z2ui5_cl_demo_app_338.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_338</CLSNAME>
7+
<LANGU>E</LANGU>
8+
<DESCRIPT>App in App -Main App</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)