Skip to content

Commit

Permalink
update demo 178 (#137)
Browse files Browse the repository at this point in the history
  • Loading branch information
choper725 authored Mar 10, 2024
1 parent 1bb5ce9 commit 7c0f9a2
Showing 1 changed file with 46 additions and 108 deletions.
154 changes: 46 additions & 108 deletions src/z2ui5_cl_demo_app_178.clas.abap
Original file line number Diff line number Diff line change
@@ -1,54 +1,40 @@
CLASS z2ui5_cl_demo_app_178 DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
class Z2UI5_CL_DEMO_APP_178 definition
public
final
create public .

PUBLIC SECTION.
public section.

INTERFACES z2ui5_if_app.
interfaces IF_SERIALIZABLE_OBJECT .
interfaces Z2UI5_IF_APP .

TYPES:
BEGIN OF ty_prodh_node_level3,
types:
BEGIN OF ty_prodh_node_level3,
is_selected TYPE abap_bool,
text TYPE string,
prodh TYPE string,
END OF ty_prodh_node_level3 .
TYPES:
BEGIN OF ty_prodh_node_level2,
types:
BEGIN OF ty_prodh_node_level2,
is_selected TYPE abap_bool,
text TYPE string,
prodh TYPE string,
expanded TYPE abap_bool,
nodes TYPE STANDARD TABLE OF ty_prodh_node_level3 WITH DEFAULT KEY,
END OF ty_prodh_node_level2 .
TYPES:
BEGIN OF ty_prodh_node_level1,
types:
BEGIN OF ty_prodh_node_level1,
is_selected TYPE abap_bool,
text TYPE string,
prodh TYPE string,
expanded TYPE abap_bool,
nodes TYPE STANDARD TABLE OF ty_prodh_node_level2 WITH DEFAULT KEY,
END OF ty_prodh_node_level1 .
TYPES:
ty_prodh_nodes TYPE STANDARD TABLE OF ty_prodh_node_level1 WITH DEFAULT KEY .
TYPES:
BEGIN OF ty_prodh_node_level2_ex,
expanded TYPE abap_bool,
END OF ty_prodh_node_level2_ex .
TYPES:
BEGIN OF ty_prodh_node_level1_ex,
expanded TYPE abap_bool,
nodes TYPE STANDARD TABLE OF ty_prodh_node_level2_ex WITH DEFAULT KEY,
END OF ty_prodh_node_level1_ex .
TYPES:
ty_prodh_nodes_ex TYPE STANDARD TABLE OF ty_prodh_node_level1_ex WITH DEFAULT KEY .

DATA prodh_nodes TYPE ty_prodh_nodes .
DATA prodh_nodes_ex TYPE ty_prodh_nodes_ex .
DATA prodh_nodes_ex_tmp TYPE ty_prodh_nodes_ex .
DATA is_initialized TYPE abap_bool .

METHODS ui5_display_view .
types:
ty_prodh_nodes TYPE STANDARD TABLE OF ty_prodh_node_level1 WITH DEFAULT KEY .

data PRODH_NODES type TY_PRODH_NODES .
data IS_INITIALIZED type ABAP_BOOL .

methods UI5_DISPLAY_VIEW .
PROTECTED SECTION.

DATA client TYPE REF TO z2ui5_if_client.
Expand All @@ -63,36 +49,15 @@ ENDCLASS.
CLASS Z2UI5_CL_DEMO_APP_178 IMPLEMENTATION.


METHOD ui5_display_popup_tree_select.

DATA(lv_js) = `debugger;` && |\n| &&
`var tree_table = sap.z2ui5.oViewPopup.Fragment.byId("popupId","tree");` && |\n| &&
`for (var i in sap.z2ui5.oResponse.OVIEWMODEL.XX.PRODH_NODES_EX) {` && |\n| &&
` if( sap.z2ui5.oResponse.OVIEWMODEL.XX.PRODH_NODES_EX[i].EXPANDED ) {` && |\n| &&
` tree_table.expand(parseInt(i));` && |\n| &&
` for (var j in sap.z2ui5.oResponse.OVIEWMODEL.XX.PRODH_NODES_EX[i].NODES) {` && |\n| &&
` if( sap.z2ui5.oResponse.OVIEWMODEL.XX.PRODH_NODES_EX[i].NODES[j].EXPANDED ) {` && |\n| &&
` tree_table.expand(parseInt(j+1));` && |\n| &&
` };` && |\n| &&
` };` && |\n| &&
` };` && |\n| &&
`};` && |\n| &&
`console.log(tree_table);`.
METHOD UI5_DISPLAY_POPUP_TREE_SELECT.

DATA(dialog) = z2ui5_cl_xml_view=>factory_popup(
)->dialog( title = 'Choose Product here...' contentheight = '50%' contentwidth = '50%' ).
)->dialog( title = 'Choose Product here...' contentheight = '50%' contentwidth = '50%' beforeopen = `setState()` beforeclose = `saveState()` ).

dialog->tree(
id = `tree`
mode = 'SingleSelectMaster'
items = client->_bind_edit( prodh_nodes )
* toggleopenstate = client->_event( val = 'TOGGLE_STATE' t_arg = VALUE #( ( `${$parameters>/itemIndex}` ) ( `${$parameters>/expanded}` ) ) )
toggleopenstate = client->_event(
val = 'TOGGLE_STATE'
t_arg = VALUE #(
( `${$parameters>/itemContext/sPath}` )
( `${$parameters>/expanded}` ) )
s_ctrl = value #( model_name = client->cs_view-main )
)
)->items(
)->standard_tree_item( selected = '{IS_SELECTED}' title = '{TEXT}' ).

Expand All @@ -106,17 +71,33 @@ CLASS Z2UI5_CL_DEMO_APP_178 IMPLEMENTATION.
type = `Reject`
press = client->_event( 'CANCEL' ) ).

* dialog->html( content = `<script>` && lv_js && `</script>` ).
* dialog->_generic( ns = `html` name = `script` )->_cc_plain_xml( lv_js ).

client->popup_display( dialog->stringify( ) ).

ENDMETHOD.


METHOD ui5_display_view.
client->_bind_edit( val = prodh_nodes_ex view = client->cs_view-main ).
DATA(page) = z2ui5_cl_xml_view=>factory( )->shell(
METHOD UI5_DISPLAY_VIEW.
DATA(lv_save_state_js) = `function saveState() {` && |\n| &&
* ` debugger;` && |\n| &&
` var treeTable = sap.z2ui5.oViewPopup.Fragment.byId("popupId","tree");` && |\n| &&
` sap.z2ui5.treeState = treeTable.getBinding('items').getCurrentTreeState();` && |\n| &&
` }; `.
DATA(lv_reset_state_js) = `function setState() { ` && |\n| &&
* ` debugger;` && |\n| &&
` var treeTable = sap.z2ui5.oViewPopup.Fragment.byId("popupId","tree");` && |\n| &&
` if( sap.z2ui5.treeState == undefined ) {` && |\n| &&
` sap.z2ui5.treeState = treeTable.getBinding('items').getCurrentTreeState();` && |\n| &&
` } else {` && |\n| &&
` treeTable.getBinding("items").setTreeState(sap.z2ui5.treeState);` && |\n| &&
` treeTable.getBinding("items").refresh();` && |\n| &&
` };` && |\n| &&
`};`.

DATA(view) = z2ui5_cl_xml_view=>factory( ).
view->_generic( ns = `html` name = `script` )->_cc_plain_xml( lv_save_state_js ).
view->_generic( ns = `html` name = `script` )->_cc_plain_xml( lv_reset_state_js ).
DATA(page) = view->shell(
)->page(
title = 'abap2UI5 - Popup Tree select Entry'
navbuttonpress = client->_event( 'BACK' )
Expand All @@ -127,7 +108,7 @@ CLASS Z2UI5_CL_DEMO_APP_178 IMPLEMENTATION.
ENDMETHOD.


METHOD ui5_initialize.
METHOD UI5_INITIALIZE.
prodh_nodes =
VALUE #( ( text = 'Machines'
prodh = '00100'
Expand All @@ -152,22 +133,10 @@ CLASS Z2UI5_CL_DEMO_APP_178 IMPLEMENTATION.
) )
)
).
prodh_nodes_ex =
VALUE #( ( expanded = abap_false
nodes = VALUE #(
( expanded = abap_false )
)
)
( expanded = abap_false
nodes = VALUE #(
( expanded = abap_false )
)
)
).
ENDMETHOD.


METHOD z2ui5_if_app~main.
METHOD Z2UI5_IF_APP~MAIN.

me->client = client.

Expand All @@ -179,41 +148,10 @@ CLASS Z2UI5_CL_DEMO_APP_178 IMPLEMENTATION.

CASE client->get( )-event.

WHEN 'TOGGLE_STATE'.
DATA(lt_arg) = client->get( )-t_event_arg.
DATA(row) = lt_arg[ 1 ].
DATA(expanded) = lt_arg[ 2 ].

* IF prodh_nodes_ex_tmp IS INITIAL.
* prodh_nodes_ex_tmp = prodh_nodes_ex.
* ELSE.
* prodh_nodes_ex = prodh_nodes_ex_tmp.
* ENDIF.


SPLIT row AT '/' INTO TABLE DATA(lt_indxs).

IF row CS '/NODES/'.
DATA(lv_node) = lt_indxs[ 4 ].
DATA(lv_child_node) = lt_indxs[ 6 ].
ASSIGN prodh_nodes_ex[ lv_node + 1 ]-nodes[ lv_child_node + 1 ]-expanded TO FIELD-SYMBOL(<fss>).
<fss> = expanded.
ELSE.
lv_node = lt_indxs[ 4 ].
ASSIGN prodh_nodes_ex[ lv_node + 1 ]-expanded TO FIELD-SYMBOL(<fss1>).
<fss1> = expanded.
ENDIF.

* prodh_nodes_ex_tmp = prodh_nodes_ex.

* client->popup_model_update( ).
client->view_model_update( ).

WHEN 'BACK'.
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).

WHEN 'POPUP_TREE'.
CLEAR prodh_nodes_ex_tmp.
ui5_display_popup_tree_select( ).

WHEN 'CONTINUE'.
Expand Down

0 comments on commit 7c0f9a2

Please sign in to comment.