diff --git a/src/00/z2ui5_cl_demo_app_s_03.clas.abap b/src/00/z2ui5_cl_demo_app_s_03.clas.abap index 22b72047..ad11ea80 100644 --- a/src/00/z2ui5_cl_demo_app_s_03.clas.abap +++ b/src/00/z2ui5_cl_demo_app_s_03.clas.abap @@ -46,11 +46,6 @@ CLASS z2ui5_cl_demo_app_s_03 IMPLEMENTATION. " Note, these are demo sounds and are part of the abap2UI5 sample repo. " They are NOT meant to use in production. - view->_generic( name = `script` - ns = `html` )->_cc_plain_xml( - |function playSuccess() \{ new Audio("/SAP/PUBLIC/BC/ABAP/mime_demo/z2ui5_demo_success.mp3").play(); \}| - && |function playError() \{ new Audio("/SAP/PUBLIC/BC/ABAP/mime_demo/z2ui5_demo_error.mp3").play(); \}| ). - DATA(vbox) = view->page( title = `Play success and error sounds` )->vbox( class = `sapUiSmallMargin` ). IF icfactive = abap_false. @@ -84,12 +79,18 @@ CLASS z2ui5_cl_demo_app_s_03 IMPLEMENTATION. IF client->get( )-event = `enter`. IF magic_key = `abap2UI5`. - client->follow_up_action( val = `playSuccess()` ). + client->follow_up_action( + client->_event_client( + val = z2ui5_if_client=>cs_event-play_audio + t_arg = VALUE #( ( `/SAP/PUBLIC/BC/ABAP/mime_demo/z2ui5_demo_success.mp3` ) ) ) ). message-type = `Success`. message-text = `Hooray!`. ELSE. - client->follow_up_action( val = `playError()` ). + client->follow_up_action( + client->_event_client( + val = z2ui5_if_client=>cs_event-play_audio + t_arg = VALUE #( ( `/SAP/PUBLIC/BC/ABAP/mime_demo/z2ui5_demo_error.mp3` ) ) ) ). message-type = `Error`. message-text = `That wasn't the magic key`. ENDIF. diff --git a/src/99/z2ui5_cl_demo_app_116_0.clas.abap b/src/99/z2ui5_cl_demo_app_116_0.clas.abap new file mode 100644 index 00000000..76a17a2e --- /dev/null +++ b/src/99/z2ui5_cl_demo_app_116_0.clas.abap @@ -0,0 +1,281 @@ +CLASS z2ui5_cl_demo_app_116_0 DEFINITION PUBLIC. + + PUBLIC SECTION. + INTERFACES z2ui5_if_app. + + TYPES: + BEGIN OF ty_prodh_node_level3, + is_selected TYPE abap_bool, + text TYPE string, + counter TYPE i, + prodh TYPE string, + END OF ty_prodh_node_level3. + TYPES: + BEGIN OF ty_prodh_node_level2, + is_selected TYPE abap_bool, + text TYPE string, + counter TYPE i, + prodh TYPE string, + 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, + is_selected TYPE abap_bool, + text TYPE string, + counter TYPE i, + prodh TYPE string, + 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 + ty_prin_nodes TYPE STANDARD TABLE OF ty_prodh_node_level2 WITH DEFAULT KEY. + + DATA prodh_nodes TYPE ty_prodh_nodes. + DATA gv_user TYPE c LENGTH 12. + DATA gv_date TYPE d. + + DATA mv_run_js TYPE abap_bool VALUE abap_false. + + METHODS view_display. + METHODS popover_display + IMPORTING + id TYPE string. + + PROTECTED SECTION. + DATA client TYPE REF TO z2ui5_if_client. + + METHODS on_init. + METHODS add_node + IMPORTING p_prodh TYPE string. + + PRIVATE SECTION. +ENDCLASS. + + +CLASS z2ui5_cl_demo_app_116_0 IMPLEMENTATION. + + METHOD add_node. + + LOOP AT prodh_nodes ASSIGNING FIELD-SYMBOL(). + IF -prodh = p_prodh. + -counter = -counter + 1. + EXIT. + + ELSE. + LOOP AT -nodes ASSIGNING FIELD-SYMBOL(). + IF -prodh = p_prodh. + -counter = -counter + 1. + EXIT. + + ELSE. + LOOP AT -nodes ASSIGNING FIELD-SYMBOL(). + IF -prodh = p_prodh. + -counter = -counter + 1. + EXIT. + + ENDIF. + ENDLOOP. + ENDIF. + ENDLOOP. + ENDIF. + ENDLOOP. + + ENDMETHOD. + + + METHOD popover_display. + + DATA(lo_popover) = z2ui5_cl_xml_view=>factory_popup( ). + lo_popover->popover( placement = `Right` + title = `SS` "text-028 "`Stock - Details:` + "&& '-' && gv_matnr "contentwidth = `32%` + )->footer( + )->overflow_toolbar( + )->toolbar_spacer( + )->button( + text = `OK` + press = client->_event( `POPOVER_OK` ) + type = `Emphasized` + )->get_parent( )->get_parent( + )->text( `TEST` ). + + client->popover_display( xml = lo_popover->stringify( ) + by_id = id ). + + ENDMETHOD. + + + METHOD view_display. + + DATA(view) = z2ui5_cl_xml_view=>factory( ). + + DATA(page) = view->object_page_layout( + showtitleinheadercontent = abap_true + uppercaseanchorbar = abap_false ). + + DATA(header_title) = page->header_title( )->object_page_dyn_header_title( ). + header_title->expanded_heading( + )->hbox( + )->title( `PriceList` ). + + DATA(header_content) = page->header_content( `uxap`). + header_content->block_layout( + )->block_layout_row( + )->block_layout_cell( backgroundcolorset = `ColorSet10` + backgroundcolorshade = `ShadeE` + )->flex_box( justifycontent = `SpaceBetween` + )->hbox( + )->vertical_layout( class = `sapUiSmallMarginBeginEnd` + )->label( design = `Bold` + text = `Something:` + )->get_parent( + )->vertical_layout( class = `sapUiSmallMarginBeginEnd` + )->text( `Other` + )->get_parent( )->get_parent( + )->hbox( justifycontent = `End` + )->vertical_layout( class = `sapUiSmallMarginBeginEnd` + )->label( design = `Bold` + text = `User:` + )->label( design = `Bold` + text = `Date:` + )->get_parent( + )->vertical_layout( class = `sapUiSmallMarginBeginEnd` + )->text( client->_bind( gv_user ) + )->text( client->_bind( gv_date ) ). + + DATA(sections) = page->sections( ). + + DATA(cont) = sections->object_page_section( titleuppercase = abap_false + id = `Sets` + title = `Sets` + )->heading( `uxap` + )->get_parent( + )->sub_sections( + )->object_page_sub_section( id = `SETS` + title = `Sets` + )->scroll_container( vertical = abap_true + )->vbox( + )->tree_table( id = `treeTable` + rows = `{path:'` && client->_bind( val = prodh_nodes path = abap_true ) && `', parameters: {arrayNames:['NODES']}}` + toggleopenstate = `saveState()` + )->tree_columns( + )->tree_column( `Label` + )->tree_template( + )->text( `{TEXT}` + )->get_parent( )->get_parent( + )->tree_column( `PRODH` + )->tree_template( + )->text( `{PRODH}` + )->get_parent( )->get_parent( + )->tree_column( `Counter` + )->tree_template( + )->link( text = `{COUNTER}` + press = client->_event( val = `POPOVER` t_arg = VALUE #( ( `${$source>/id}` ) ) ) + )->get_parent( )->get_parent( + )->tree_column( `ADD` + )->tree_template( + )->button( icon = `sap-icon://add` + press = client->_event( val = `ROW_ADD` t_arg = VALUE #( ( `${PRODH}` ) ) ) + tooltip = `ADD` + )->get_parent( )->get_parent( ). + client->view_display( page->stringify( ) ). + + ENDMETHOD. + + + METHOD on_init. + + prodh_nodes = + VALUE #( ( text = `Machines` + prodh = `00100` + nodes = VALUE #( ( text = `Pumps` + prodh = `0010000100` + nodes = VALUE #( ( text = `Pump 001` + prodh = `001000010000000100` ) + ( text = `Pump 002` + prodh = `001000010000000105` ) + ) + ) ) + ) + ( text = `Paints` + prodh = `00110` + nodes = VALUE #( ( text = `Gloss paints` + prodh = `0011000105` + nodes = VALUE #( ( text = `Paint 001` + prodh = `001100010500000100` ) + ( text = `Paint 002` + prodh = `001100010500000105` ) + ) + ) ) + ) ). + + gv_user = sy-uname. + gv_date = sy-datum. + + ENDMETHOD. + + + METHOD z2ui5_if_app~main. + + DATA lt_event_arg TYPE string_table. + + me->client = client. + + IF client->check_on_init( ). + on_init( ). + + DATA(lv_save_state_js) = `function saveState() {debugger;` && |\n| && + ` var treeTable = sap.z2ui5.oView.byId("treeTable");` && |\n| && + ` sap.z2ui5.treeState = treeTable.getBinding('rows').getCurrentTreeState();` && |\n| && + ` }; `. + + DATA(lv_reset_state_js) = `function setState() {debugger;` && |\n| && + ` var treeTable = sap.z2ui5.oView.byId("treeTable");` && |\n| && + ` if( sap.z2ui5.treeState == undefined ) {` && |\n| && + ` sap.z2ui5.treeState = treeTable.getBinding('rows').getCurrentTreeState();` && |\n| && + ` } else {` && |\n| && + ` treeTable.getBinding("rows").setTreeState(sap.z2ui5.treeState);` && |\n| && + ` treeTable.getBinding("rows").refresh();` && |\n| && + ` sap.z2ui5.treeState = treeTable.getBinding('rows').getCurrentTreeState();` && |\n| && + ` };` && |\n| && + `};`. + + client->view_display( z2ui5_cl_xml_view=>factory( + )->_z2ui5( )->timer( client->_event( `START` ) + )->_generic( ns = `html` + name = `script` )->_cc_plain_xml( lv_save_state_js )->get_parent( + )->_generic( ns = `html` + name = `script` )->_cc_plain_xml( lv_reset_state_js + )->stringify( ) ). + ENDIF. + + lt_event_arg = client->get( )-t_event_arg. + CASE client->get( )-event. + + WHEN `START`. + view_display( ). + WHEN `CONTINUE`. + client->popup_destroy( ). + + WHEN `CANCEL`. + client->popup_destroy( ). + WHEN `POPOVER`. + lt_event_arg = client->get( )-t_event_arg. + DATA(lv_open_by_id) = lt_event_arg[ 1 ]. + popover_display( lv_open_by_id ). + + WHEN `ROW_ADD`. + add_node( lt_event_arg[ 1 ] ). + + mv_run_js = abap_true. + + client->view_model_update( ). + + client->follow_up_action( `setState();` ). + + ENDCASE. + + ENDMETHOD. + +ENDCLASS. diff --git a/src/99/z2ui5_cl_demo_app_116_0.clas.xml b/src/99/z2ui5_cl_demo_app_116_0.clas.xml new file mode 100644 index 00000000..5057b84a --- /dev/null +++ b/src/99/z2ui5_cl_demo_app_116_0.clas.xml @@ -0,0 +1,16 @@ + + + + + + Z2UI5_CL_DEMO_APP_116_0 + E + tree table - save expand state + 1 + X + X + X + + + + diff --git a/src/99/z2ui5_cl_demo_app_202_0.clas.abap b/src/99/z2ui5_cl_demo_app_202_0.clas.abap new file mode 100644 index 00000000..202acfbc --- /dev/null +++ b/src/99/z2ui5_cl_demo_app_202_0.clas.abap @@ -0,0 +1,103 @@ +CLASS z2ui5_cl_demo_app_202_0 DEFINITION PUBLIC. + + PUBLIC SECTION. + INTERFACES z2ui5_if_app. + + DATA av_next TYPE string VALUE `Step22` ##NO_TEXT. + + PROTECTED SECTION. + METHODS view_display + IMPORTING + client TYPE REF TO z2ui5_if_client. + + PRIVATE SECTION. +ENDCLASS. + + +CLASS z2ui5_cl_demo_app_202_0 IMPLEMENTATION. + + METHOD view_display. + + DATA(lr_view) = z2ui5_cl_xml_view=>factory( ). + + lr_view->_generic( name = `script` + ns = `html` )->_cc_plain_xml( `sap.z2ui5.decideNextStep = (stepId, nextStepId) => {debugger;` && |\n| && + ` var wiz = sap.z2ui5.oView.byId('wiz');` && |\n| && + ` wiz.discardProgress(sap.z2ui5.oView.byId(stepId));` && |\n| && + ` var step = sap.z2ui5.oView.byId(stepId);` && |\n| && + ` var nextStep = sap.z2ui5.oView.byId(nextStepId);` && |\n| && + ` step.setNextStep(nextStep);` && |\n| && + `}` ). + + lr_view = lr_view->shell( )->page( id = `page_main` + title = `abap2UI5 - Demo Wizard Control` + navbuttonpress = client->_event_nav_app_leave( ) + shownavbutton = client->check_app_prev_stack( ) ). + + DATA(lr_wizard) = lr_view->wizard( id = `wiz` + enablebranching = abap_true ). + DATA(lr_wiz_step1) = lr_wizard->wizard_step( title = `STEP1` + validated = abap_true + nextstep = `STEP2` ). + lr_wiz_step1->message_strip( `STEP1` ). + + DATA(lr_wiz_step2) = lr_wizard->wizard_step( id = `STEP2` + title = `STEP2` + validated = abap_true + subsequentsteps = `STEP22, STEP23` ). + + lr_wiz_step2->message_strip( `STEP2` ). + lr_wiz_step2->button( +* EXPORTING + text = `Press Step 2.2` + press = client->_event(`STEP22` ) ). + lr_wiz_step2->button( +* EXPORTING + text = `Press Step 2.3` + press = client->_event( `STEP23` ) ). + + DATA(lr_wiz_step22) = lr_wizard->wizard_step( id = `STEP22` + title = `STEP2.2` + validated = abap_true ). + + lr_wiz_step22->message_strip( `STEP22` ). + + DATA(lr_wiz_step23) = lr_wizard->wizard_step( id = `STEP23` + title = `STEP2.3` + validated = abap_true ). + + lr_wiz_step23->message_strip( `STEP23` ). + + DATA(lr_wiz_step3) = lr_wizard->wizard_step( title = `STEP3` + validated = abap_true ). + + lr_wiz_step3->message_strip( `STEP3` ). + +* + client->view_display( lr_view->stringify( ) ). + + ENDMETHOD. + + + METHOD z2ui5_if_app~main. + + IF client->check_on_init( ). + view_display( client ). + RETURN. + ENDIF. + + CASE client->get( )-event. + WHEN `STEP22`. + + client->follow_up_action( 'sap.z2ui5.decideNextStep(`STEP2`,`STEP22`);' ). + + WHEN `STEP23`. + + client->follow_up_action( 'sap.z2ui5.decideNextStep(`STEP2`,`STEP23`);' ). + + ENDCASE. + client->view_model_update( ). + + ENDMETHOD. + +ENDCLASS. diff --git a/src/99/z2ui5_cl_demo_app_202_0.clas.xml b/src/99/z2ui5_cl_demo_app_202_0.clas.xml new file mode 100644 index 00000000..55969c8f --- /dev/null +++ b/src/99/z2ui5_cl_demo_app_202_0.clas.xml @@ -0,0 +1,16 @@ + + + + + + Z2UI5_CL_DEMO_APP_202_0 + E + wizard - nextStep & subsequentSteps + 1 + X + X + X + + + + diff --git a/src/99/z2ui5_cl_demo_app_309_0.clas.abap b/src/99/z2ui5_cl_demo_app_309_0.clas.abap new file mode 100644 index 00000000..a9d8a19b --- /dev/null +++ b/src/99/z2ui5_cl_demo_app_309_0.clas.abap @@ -0,0 +1,64 @@ +CLASS z2ui5_cl_demo_app_309_0 DEFINITION PUBLIC. + + PUBLIC SECTION. + INTERFACES z2ui5_if_app. + + DATA mv_url TYPE string. + + METHODS on_event. + METHODS view_display. + + PROTECTED SECTION. + DATA client TYPE REF TO z2ui5_if_client. + + PRIVATE SECTION. +ENDCLASS. + + +CLASS z2ui5_cl_demo_app_309_0 IMPLEMENTATION. + + METHOD on_event. + + IF client->check_on_event( `CUSTOM_JS_FROM_EB` ). +* client->follow_up_action( val = `sap.z2ui5.afterBE()` ). + client->follow_up_action( `alert("afterBE triggered !!");` ). + ENDIF. + + ENDMETHOD. + + + METHOD view_display. + + DATA(view) = z2ui5_cl_xml_view=>factory( ). + view->_generic( name = `script` + ns = `html` )->_cc_plain_xml( `sap.z2ui5.afterBE = () => { alert("afterBE triggered !!"); }` ). + + DATA(page) = view->shell( )->page( + title = `Client->FOLLOW_UP_ACTION use cases` + class = `sapUiContentPadding` + navbuttonpress = client->_event_nav_app_leave( ) + shownavbutton = client->check_app_prev_stack( ) ). + page = page->vbox( ). + page->get_parent( )->hbox( class = `sapUiSmallMargin` ). + page->button( text = `call custom JS from EB` + press = client->_event( `CUSTOM_JS_FROM_EB` ) ). + + client->view_display( view->stringify( ) ). + + ENDMETHOD. + + + METHOD z2ui5_if_app~main. + + me->client = client. + + IF client->check_on_init( ). + view_display( ). + + ENDIF. + + on_event( ). + + ENDMETHOD. + +ENDCLASS. diff --git a/src/99/z2ui5_cl_demo_app_309_0.clas.xml b/src/99/z2ui5_cl_demo_app_309_0.clas.xml new file mode 100644 index 00000000..1377a3b4 --- /dev/null +++ b/src/99/z2ui5_cl_demo_app_309_0.clas.xml @@ -0,0 +1,16 @@ + + + + + + Z2UI5_CL_DEMO_APP_309_0 + E + follow_up_action with JS + 1 + X + X + X + + + + diff --git a/src/99/z2ui5_cl_demo_app_317_0.clas.abap b/src/99/z2ui5_cl_demo_app_317_0.clas.abap new file mode 100644 index 00000000..8cc01156 --- /dev/null +++ b/src/99/z2ui5_cl_demo_app_317_0.clas.abap @@ -0,0 +1,163 @@ +CLASS z2ui5_cl_demo_app_317_0 DEFINITION PUBLIC. + + PUBLIC SECTION. + INTERFACES z2ui5_if_app. + + TYPES: + BEGIN OF ty_node4, + id TYPE string, + text TYPE string, +* nodes TYPE STANDARD TABLE OF ty_node5 WITH DEFAULT KEY, + END OF ty_node4, + BEGIN OF ty_node3, + id TYPE string, + text TYPE string, + nodes TYPE STANDARD TABLE OF ty_node4 WITH DEFAULT KEY, + END OF ty_node3, + BEGIN OF ty_node2, + id TYPE string, + text TYPE string, + nodes TYPE STANDARD TABLE OF ty_node3 WITH DEFAULT KEY, + END OF ty_node2, + BEGIN OF ty_node1, + id TYPE string, + text TYPE string, + nodes TYPE STANDARD TABLE OF ty_node2 WITH DEFAULT KEY, + END OF ty_node1, + ty_tree TYPE STANDARD TABLE OF ty_node1 WITH DEFAULT KEY. + + TYPES: + BEGIN OF ty_s_node, + id TYPE string, + id_parent TYPE string, + text TYPE string, + END OF ty_s_node. + + DATA mt_tree TYPE ty_tree. + + DATA mt_node TYPE STANDARD TABLE OF ty_s_node WITH EMPTY KEY. + PROTECTED SECTION. + METHODS build_tree. + METHODS view_display + IMPORTING + client TYPE REF TO z2ui5_if_client. + PRIVATE SECTION. +ENDCLASS. + + +CLASS z2ui5_cl_demo_app_317_0 IMPLEMENTATION. + + METHOD z2ui5_if_app~main. + + IF client->check_on_init( ). + + mt_node = VALUE #( + ( id = `01` id_parent = `` text = `Machines` ) + ( id = `03` id_parent = `01` text = `Pumps` ) + ( id = `04` id_parent = `03` text = `Pump 001` ) + ( id = `05` id_parent = `03` text = `Pump 002` ) + ( id = `02` id_parent = `` text = `Paints` ) + ( id = `06` id_parent = `02` text = `Gloss paints` ) + ( id = `07` id_parent = `06` text = `Paint 001` ) + ( id = `08` id_parent = `06` text = `Paint 002` ) ). + + build_tree( ). + view_display( client ). + + ENDIF. + + CASE client->get( )-event. + + WHEN `expand`. + client->follow_up_action( `debugger; z2ui5.oView.byId( 'tree' ).expandToLevel(10);`). + + WHEN `onDrop`. + mt_node[ id = client->get_event_arg( 1 ) ]-id_parent = client->get_event_arg( 2 ). + build_tree( ). + view_display( client ). + ENDCASE. + + ENDMETHOD. + + + METHOD build_tree. + + mt_tree = VALUE #( ). + LOOP AT mt_node INTO DATA(ls_node) WHERE id_parent IS INITIAL. + + DATA(ls_root) = CORRESPONDING ty_node1( ls_node ). + INSERT ls_root INTO TABLE mt_tree. + + ENDLOOP. + + LOOP AT mt_tree REFERENCE INTO DATA(lr_node). + + LOOP AT mt_node INTO ls_node WHERE id_parent = lr_node->id. + DATA(ls_root2) = CORRESPONDING ty_node2( ls_node ). + INSERT ls_root2 INTO TABLE lr_node->nodes. + ENDLOOP. + + ENDLOOP. + + LOOP AT mt_tree REFERENCE INTO lr_node. + LOOP AT lr_node->nodes REFERENCE INTO DATA(lr_node2). + + LOOP AT mt_node INTO ls_node WHERE id_parent = lr_node2->id. + DATA(ls_root3) = CORRESPONDING ty_node3( ls_node ). + INSERT ls_root3 INTO TABLE lr_node2->nodes. + ENDLOOP. + + ENDLOOP. + ENDLOOP. + + LOOP AT mt_tree REFERENCE INTO lr_node. + LOOP AT lr_node->nodes REFERENCE INTO lr_node2. + LOOP AT lr_node2->nodes REFERENCE INTO DATA(lr_node3). + + LOOP AT mt_node INTO ls_node WHERE id_parent = lr_node3->id. + DATA(ls_root4) = CORRESPONDING ty_node4( ls_node ). + INSERT ls_root4 INTO TABLE lr_node3->nodes. + ENDLOOP. + + ENDLOOP. + ENDLOOP. + ENDLOOP. + + ENDMETHOD. + + + METHOD view_display. + + DATA(page) = z2ui5_cl_xml_view=>factory( )->page( ). + + page->_generic( name = `script` + ns = `html` + )->_cc_plain_xml( + |function myFunction() \{ z2ui5.oView.byId(`tree`).expandToLevel(5); \}| ). + + DATA(tree) = page->tree( items = client->_bind( mt_tree ) + id = `tree` ). + tree->items( + )->standard_tree_item( title = `{TEXT}` + )->get( + )->custom_data( + )->core_custom_data( key = `ID` + value = `{ID}`). + + tree->drag_drop_config( `` )->drag_drop_info( + sourceaggregation = `items` + targetaggregation = `items` + dragstart = `Horizontal` + drop = client->_event( + val = `onDrop` + t_arg = VALUE #( + ( `${$parameters>/draggedControl/mAggregations/customData/0/mProperties/value}` ) + ( `${$parameters>/droppedControl/mAggregations/customData/0/mProperties/value}` ) + ) ) ). + + client->follow_up_action( `myFunction()` ). + client->view_display( page->stringify( ) ). + + ENDMETHOD. + +ENDCLASS. diff --git a/src/99/z2ui5_cl_demo_app_317_0.clas.xml b/src/99/z2ui5_cl_demo_app_317_0.clas.xml new file mode 100644 index 00000000..c9f20b4c --- /dev/null +++ b/src/99/z2ui5_cl_demo_app_317_0.clas.xml @@ -0,0 +1,16 @@ + + + + + + Z2UI5_CL_DEMO_APP_317_0 + E + tree - drag & drop + 1 + X + X + X + + + + diff --git a/src/99/z2ui5_cl_demo_app_s_03_0.clas.abap b/src/99/z2ui5_cl_demo_app_s_03_0.clas.abap new file mode 100644 index 00000000..fae57afb --- /dev/null +++ b/src/99/z2ui5_cl_demo_app_s_03_0.clas.abap @@ -0,0 +1,102 @@ +CLASS z2ui5_cl_demo_app_s_03_0 DEFINITION PUBLIC. + + PUBLIC SECTION. + INTERFACES z2ui5_if_app. + + DATA magic_key TYPE string. + DATA: BEGIN OF message, + text TYPE string VALUE IS INITIAL, + type TYPE string VALUE `None`, + END OF message. + + PROTECTED SECTION. + DATA client TYPE REF TO z2ui5_if_client. + + METHODS view_display. + METHODS on_event. + + PRIVATE SECTION. +ENDCLASS. + + +CLASS z2ui5_cl_demo_app_s_03_0 IMPLEMENTATION. + + METHOD z2ui5_if_app~main. + + me->client = client. + + IF client->check_on_init( ). + view_display( ). + ENDIF. + + on_event( ). + + ENDMETHOD. + + + METHOD view_display. + + DATA(view) = z2ui5_cl_xml_view=>factory( ). + + SELECT + SINGLE FROM icfservloc + FIELDS icfactive + WHERE icf_name = `MIME_DEMO` + INTO @DATA(icfactive). + + " Note, these are demo sounds and are part of the abap2UI5 sample repo. + " They are NOT meant to use in production. + view->_generic( name = `script` + ns = `html` )->_cc_plain_xml( + |function playSuccess() \{ new Audio("/SAP/PUBLIC/BC/ABAP/mime_demo/z2ui5_demo_success.mp3").play(); \}| + && |function playError() \{ new Audio("/SAP/PUBLIC/BC/ABAP/mime_demo/z2ui5_demo_error.mp3").play(); \}| ). + + DATA(vbox) = view->page( `Play success and error sounds` )->vbox( class = `sapUiSmallMargin` ). + + IF icfactive = abap_false. + vbox->message_strip( + text = `ICF Service '/SAP/PUBLIC/BC/ABAP/mime_demo' is not active. Sounds will not play. Please activate the ICF service first.` + type = `Warning` + visible = abap_true ). + ENDIF. + + vbox->message_strip( + text = client->_bind( message-text ) + type = client->_bind( message-type ) + visible = `{= !!$` && client->_bind( message-text ) && ` }` ). + vbox->text( text = `The magic key is: abap2UI5` ). + vbox->input( id = `inputApp` + value = client->_bind_edit( magic_key ) + placeholder = `Enter magic key` + submit = client->_event( `enter` ) ). + vbox->button( text = `submit` + type = `accept` + press = client->_event( `enter` ) ). + + view->_z2ui5( )->focus( focusid = `inputApp` ). + client->view_display( view->stringify( ) ). + + ENDMETHOD. + + + METHOD on_event. + + IF client->get( )-event = `enter`. + + IF magic_key = `abap2UI5`. + client->follow_up_action( `playSuccess()` ). + message-type = `Success`. + message-text = `Hooray!`. + + ELSE. + client->follow_up_action( `playError()` ). + message-type = `Error`. + message-text = `That wasn't the magic key`. + ENDIF. + magic_key = VALUE #( ). + client->view_model_update( ). + ENDIF. + + ENDMETHOD. + +ENDCLASS. diff --git a/src/99/z2ui5_cl_demo_app_s_03_0.clas.xml b/src/99/z2ui5_cl_demo_app_s_03_0.clas.xml new file mode 100644 index 00000000..532e6d23 --- /dev/null +++ b/src/99/z2ui5_cl_demo_app_s_03_0.clas.xml @@ -0,0 +1,16 @@ + + + + + + Z2UI5_CL_DEMO_APP_S_03_0 + E + Play Sound + 1 + X + X + X + + + + diff --git a/src/z2ui5_cl_demo_app_116.clas.abap b/src/z2ui5_cl_demo_app_116.clas.abap index aa133bf3..e7591c35 100644 --- a/src/z2ui5_cl_demo_app_116.clas.abap +++ b/src/z2ui5_cl_demo_app_116.clas.abap @@ -225,12 +225,12 @@ CLASS z2ui5_cl_demo_app_116 IMPLEMENTATION. IF client->check_on_init( ). on_init( ). - DATA(lv_save_state_js) = `function saveState() {debugger;` && |\n| && + DATA(lv_save_state_js) = `sap.z2ui5.saveState = function() {` && |\n| && ` var treeTable = sap.z2ui5.oView.byId("treeTable");` && |\n| && ` sap.z2ui5.treeState = treeTable.getBinding('rows').getCurrentTreeState();` && |\n| && ` }; `. - DATA(lv_reset_state_js) = `function setState() {debugger;` && |\n| && + DATA(lv_reset_state_js) = `sap.z2ui5.setState = function() {` && |\n| && ` var treeTable = sap.z2ui5.oView.byId("treeTable");` && |\n| && ` if( sap.z2ui5.treeState == undefined ) {` && |\n| && ` sap.z2ui5.treeState = treeTable.getBinding('rows').getCurrentTreeState();` && |\n| && @@ -272,7 +272,10 @@ CLASS z2ui5_cl_demo_app_116 IMPLEMENTATION. client->view_model_update( ). - client->follow_up_action( `setState();` ). + client->follow_up_action( + client->_event_client( + val = z2ui5_if_client=>cs_event-z2ui5 + t_arg = VALUE #( ( `setState` ) ) ) ). ENDCASE. diff --git a/src/z2ui5_cl_demo_app_202.clas.abap b/src/z2ui5_cl_demo_app_202.clas.abap index b98be5e8..286f3c3c 100644 --- a/src/z2ui5_cl_demo_app_202.clas.abap +++ b/src/z2ui5_cl_demo_app_202.clas.abap @@ -20,15 +20,6 @@ CLASS z2ui5_cl_demo_app_202 IMPLEMENTATION. DATA(lr_view) = z2ui5_cl_xml_view=>factory( ). - lr_view->_generic( name = `script` - ns = `html` )->_cc_plain_xml( `sap.z2ui5.decideNextStep = (stepId, nextStepId) => {debugger;` && |\n| && - ` var wiz = sap.z2ui5.oView.byId('wiz');` && |\n| && - ` wiz.discardProgress(sap.z2ui5.oView.byId(stepId));` && |\n| && - ` var step = sap.z2ui5.oView.byId(stepId);` && |\n| && - ` var nextStep = sap.z2ui5.oView.byId(nextStepId);` && |\n| && - ` step.setNextStep(nextStep);` && |\n| && - `}` ). - lr_view = lr_view->shell( )->page( id = `page_main` title = `abap2UI5 - Demo Wizard Control` navbuttonpress = client->_event_nav_app_leave( ) @@ -88,12 +79,16 @@ CLASS z2ui5_cl_demo_app_202 IMPLEMENTATION. CASE client->get( )-event. WHEN `STEP22`. - - client->follow_up_action( 'sap.z2ui5.decideNextStep(`STEP2`,`STEP22`);' ). + client->follow_up_action( + client->_event_client( + val = z2ui5_if_client=>cs_event-wizard_set_next_step + t_arg = VALUE #( ( `wiz` ) ( `STEP2` ) ( `STEP22` ) ) ) ). WHEN `STEP23`. - - client->follow_up_action( 'sap.z2ui5.decideNextStep(`STEP2`,`STEP23`);' ). + client->follow_up_action( + client->_event_client( + val = z2ui5_if_client=>cs_event-wizard_set_next_step + t_arg = VALUE #( ( `wiz` ) ( `STEP2` ) ( `STEP23` ) ) ) ). ENDCASE. client->view_model_update( ). diff --git a/src/z2ui5_cl_demo_app_309.clas.abap b/src/z2ui5_cl_demo_app_309.clas.abap index ef508844..bfb30ca8 100644 --- a/src/z2ui5_cl_demo_app_309.clas.abap +++ b/src/z2ui5_cl_demo_app_309.clas.abap @@ -20,8 +20,10 @@ CLASS z2ui5_cl_demo_app_309 IMPLEMENTATION. METHOD on_event. IF client->check_on_event( `CUSTOM_JS_FROM_EB` ). -* client->follow_up_action( val = `sap.z2ui5.afterBE()` ). - client->follow_up_action( `alert("afterBE triggered !!");` ). + client->follow_up_action( + client->_event_client( + val = z2ui5_if_client=>cs_event-z2ui5 + t_arg = VALUE #( ( `afterBE` ) ) ) ). ENDIF. ENDMETHOD. diff --git a/src/z2ui5_cl_demo_app_317.clas.abap b/src/z2ui5_cl_demo_app_317.clas.abap index b55c9e93..dbd65af5 100644 --- a/src/z2ui5_cl_demo_app_317.clas.abap +++ b/src/z2ui5_cl_demo_app_317.clas.abap @@ -69,7 +69,10 @@ CLASS z2ui5_cl_demo_app_317 IMPLEMENTATION. CASE client->get( )-event. WHEN `expand`. - client->follow_up_action( `debugger; z2ui5.oView.byId( 'tree' ).expandToLevel(10);`). + client->follow_up_action( + client->_event_client( + val = z2ui5_if_client=>cs_event-expand_to_level + t_arg = VALUE #( ( `tree` ) ( `10` ) ) ) ). WHEN `onDrop`. mt_node[ id = client->get_event_arg( 1 ) ]-id_parent = client->get_event_arg( 2 ). @@ -130,11 +133,6 @@ CLASS z2ui5_cl_demo_app_317 IMPLEMENTATION. DATA(page) = z2ui5_cl_xml_view=>factory( )->page( ). - page->_generic( name = `script` - ns = `html` - )->_cc_plain_xml( - |function myFunction() \{ z2ui5.oView.byId(`tree`).expandToLevel(5); \}| ). - DATA(tree) = page->tree( items = client->_bind( mt_tree ) id = `tree` ). tree->items( @@ -155,7 +153,10 @@ CLASS z2ui5_cl_demo_app_317 IMPLEMENTATION. ( `${$parameters>/droppedControl/mAggregations/customData/0/mProperties/value}` ) ) ) ). - client->follow_up_action( `myFunction()` ). + client->follow_up_action( + client->_event_client( + val = z2ui5_if_client=>cs_event-expand_to_level + t_arg = VALUE #( ( `tree` ) ( `5` ) ) ) ). client->view_display( page->stringify( ) ). ENDMETHOD.