Skip to content

Commit 0ea15fc

Browse files
abapsheepViktor Hoffmann
andauthored
New Sample (#528)
Co-authored-by: Viktor Hoffmann <viktor.hoffmann@swisskrono.com>
1 parent a42ebc9 commit 0ea15fc

File tree

3 files changed

+161
-12
lines changed

3 files changed

+161
-12
lines changed

src/z2ui5_cl_demo_app_339.clas.abap

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ CLASS z2ui5_cl_demo_app_339 DEFINITION
1313
DATA mt_table_tmp TYPE REF TO data.
1414
DATA mt_table TYPE REF TO data.
1515

16-
DATA mo_layout_obj TYPE REF TO z2ui5_cl_demo_app_333.
16+
DATA mo_layout TYPE REF TO z2ui5_cl_demo_app_333.
1717

1818
METHODS set_app_data
1919
IMPORTING
@@ -37,7 +37,7 @@ CLASS z2ui5_cl_demo_app_339 IMPLEMENTATION.
3737

3838
METHOD get_comp.
3939

40-
DATA index TYPE int4.
40+
DATA selkz TYPE abap_bool.
4141

4242
IF mv_table IS INITIAL.
4343
mv_table = 'Z2UI5_T_01'.
@@ -70,8 +70,8 @@ CLASS z2ui5_cl_demo_app_339 IMPLEMENTATION.
7070
ENDTRY.
7171

7272
DATA(component) = VALUE cl_abap_structdescr=>component_table(
73-
( name = 'ROW_ID'
74-
type = CAST #( cl_abap_datadescr=>describe_by_data( index ) ) ) ).
73+
( name = 'SELKZ'
74+
type = CAST #( cl_abap_datadescr=>describe_by_data( selkz ) ) ) ).
7575

7676
APPEND LINES OF component TO result.
7777

@@ -83,6 +83,12 @@ CLASS z2ui5_cl_demo_app_339 IMPLEMENTATION.
8383
METHOD on_event.
8484
CASE client->get( )-event.
8585

86+
WHEN 'SELECTION_CHANGE'.
87+
88+
client->nav_app_call( Z2UI5_CL_DEMO_APP_340=>factory(
89+
io_table = mt_table
90+
io_layout = mo_layout ) ).
91+
8692
WHEN 'BACK'.
8793

8894
client->nav_app_leave( ).
@@ -106,31 +112,34 @@ CLASS z2ui5_cl_demo_app_339 IMPLEMENTATION.
106112

107113
ENDIF.
108114

109-
mo_layout_obj = z2ui5_cl_demo_app_333=>factory( i_data = mt_table
115+
mo_layout = z2ui5_cl_demo_app_333=>factory( i_data = mt_table
110116
vis_cols = 5 ).
111117

112118
DATA(table) = page->table( width = 'auto'
119+
mode = 'SingleSelectLeft'
120+
selectionchange = client->_event( 'SELECTION_CHANGE' )
113121
items = client->_bind_edit( val = mt_table->* ) ).
114122

115123
DATA(columns) = table->columns( ).
116124

117-
LOOP AT mo_layout_obj->ms_data-t_layout REFERENCE INTO DATA(layout).
125+
LOOP AT mo_layout->ms_data-t_layout REFERENCE INTO DATA(layout).
118126
DATA(lv_index) = sy-tabix.
119127

120128
columns->column( visible = client->_bind( val = layout->visible
121-
tab = mo_layout_obj->ms_data-t_layout
129+
tab = mo_layout->ms_data-t_layout
122130
tab_index = lv_index )
123131
)->text( layout->name ).
124132

125133
ENDLOOP.
126134

127135
DATA(column_list_item) = columns->get_parent( )->items(
128-
)->column_list_item( valign = 'Middle'
129-
type = `Inactive` ).
136+
)->column_list_item( valign = 'Middle'
137+
type = `Inactive`
138+
selected = `{SELKZ}` ).
130139

131140
DATA(cells) = column_list_item->cells( ).
132141

133-
LOOP AT mo_layout_obj->ms_data-t_layout REFERENCE INTO layout.
142+
LOOP AT mo_layout->ms_data-t_layout REFERENCE INTO layout.
134143

135144
lv_index = sy-tabix.
136145

@@ -166,9 +175,10 @@ CLASS z2ui5_cl_demo_app_339 IMPLEMENTATION.
166175

167176
ENDIF.
168177

169-
IF mo_layout_obj->mr_data->* <> mt_table->*.
170-
client->message_toast_display( 'ERROR - mo_layout_obj->mr_data->* ne mt_table->*' ).
178+
IF mo_layout->mr_data->* <> mt_table->*.
179+
client->message_toast_display( 'ERROR - mo_layout->mr_data->* ne mt_table->*' ).
171180
ENDIF.
181+
172182
on_event( client ).
173183

174184
ENDMETHOD.

src/z2ui5_cl_demo_app_340.clas.abap

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
CLASS z2ui5_cl_demo_app_340 DEFINITION
2+
PUBLIC
3+
CREATE PUBLIC.
4+
5+
PUBLIC SECTION.
6+
INTERFACES z2ui5_if_app.
7+
8+
DATA mv_init TYPE abap_bool.
9+
DATA mt_DATA_tmp TYPE REF TO data.
10+
DATA mt_DATA TYPE REF TO data.
11+
DATA ms_DATA_row TYPE REF TO data.
12+
13+
DATA mo_layout TYPE REF TO z2ui5_cl_demo_app_333.
14+
15+
CLASS-METHODS factory
16+
IMPORTING
17+
io_table TYPE REF TO data
18+
io_layout TYPE REF TO z2ui5_cl_demo_app_333
19+
RETURNING
20+
VALUE(result) TYPE REF TO z2ui5_cl_demo_app_340.
21+
22+
PROTECTED SECTION.
23+
METHODS on_init.
24+
METHODS on_event IMPORTING !client TYPE REF TO z2ui5_if_client.
25+
METHODS render_main IMPORTING !client TYPE REF TO z2ui5_if_client.
26+
27+
PRIVATE SECTION.
28+
29+
ENDCLASS.
30+
31+
32+
CLASS z2ui5_cl_demo_app_340 IMPLEMENTATION.
33+
34+
METHOD on_event.
35+
CASE client->get( )-event.
36+
37+
WHEN 'POPUP_CLOSE'.
38+
39+
client->popup_destroy( ).
40+
41+
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
42+
43+
WHEN 'BACK'.
44+
45+
client->nav_app_leave( ).
46+
47+
ENDCASE.
48+
ENDMETHOD.
49+
50+
METHOD on_init.
51+
52+
ENDMETHOD.
53+
54+
METHOD render_main.
55+
56+
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( ).
57+
58+
" TODO: variable is assigned but never used (ABAP cleaner)
59+
DATA(simple_form) = popup->dialog( title = 'Test'
60+
contentwidth = '60%'
61+
afterclose = client->_event( 'POPUP_CLOSE' )
62+
)->simple_form( title = ''
63+
layout = 'ResponsiveGridLayout'
64+
editable = abap_true
65+
)->content( ns = 'form' )->label( text = 'Test' )->input( value = 'TEST' ).
66+
67+
client->popup_display( popup->stringify( ) ).
68+
69+
ENDMETHOD.
70+
71+
METHOD z2ui5_if_app~main.
72+
73+
IF mv_init IS INITIAL.
74+
mv_init = abap_true.
75+
76+
render_main( client ).
77+
78+
ENDIF.
79+
80+
IF mo_layout->mr_data IS INITIAL.
81+
client->message_toast_display( 'ERROR - mo_layout_obj->mr_data is initial' ).
82+
RETURN.
83+
ENDIF.
84+
85+
IF mo_layout->mr_data->* <> mt_data->*.
86+
client->message_toast_display( 'ERROR - mo_layout_obj->mr_data->* ne mt_table->*' ).
87+
ENDIF.
88+
on_event( client ).
89+
90+
ENDMETHOD.
91+
92+
METHOD factory.
93+
94+
" Add new empty row
95+
96+
result = NEW #( ).
97+
98+
result->mo_layout = io_layout.
99+
100+
TRY.
101+
DATA(comp) = z2ui5_cl_util=>rtti_get_t_attri_by_any( io_table ).
102+
CATCH cx_root.
103+
ENDTRY.
104+
105+
TRY.
106+
DATA(new_struct_desc) = cl_abap_structdescr=>create( comp ).
107+
108+
DATA(new_table_desc) = cl_abap_tabledescr=>create( p_line_type = new_struct_desc
109+
p_table_kind = cl_abap_tabledescr=>tablekind_std ).
110+
111+
CREATE DATA result->mt_data TYPE HANDLE new_table_desc.
112+
CREATE DATA result->mt_data_tmp TYPE HANDLE new_table_desc.
113+
CREATE DATA result->ms_data_row TYPE HANDLE new_struct_desc.
114+
115+
CATCH cx_root.
116+
ENDTRY.
117+
118+
result->mt_data->* = io_table->*.
119+
result->mt_data_tmp->* = io_table->*.
120+
121+
ENDMETHOD.
122+
123+
ENDCLASS.

src/z2ui5_cl_demo_app_340.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_340</CLSNAME>
7+
<LANGU>E</LANGU>
8+
<DESCRIPT>App in App - Popup</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)