diff --git a/docs/advanced/insights/01-somewhere-on-the-way-to-ui5.md b/docs/advanced/insights/01-somewhere-on-the-way-to-ui5.md index 75493820..a3781626 100644 --- a/docs/advanced/insights/01-somewhere-on-the-way-to-ui5.md +++ b/docs/advanced/insights/01-somewhere-on-the-way-to-ui5.md @@ -103,7 +103,7 @@ handed back. `comp-type` says whether a component is a DDIC type, which is where the real labels live — the field catalog, rebuilt from its own source. Full source: -[`Z2UI5_CL_SMP_APP_497`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_497.clas.abap), +[`Z2UI5_CL_SMP_APP_497`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_497.clas.abap), one of the abap2UI5 samples, so it is compiled and linted on every commit. A table nobody described, drawn from whatever the data turned out to be. diff --git a/docs/cookbook/browser_interaction/clipboard.md b/docs/cookbook/browser_interaction/clipboard.md index ae28d9f1..9d4d9f9b 100644 --- a/docs/cookbook/browser_interaction/clipboard.md +++ b/docs/cookbook/browser_interaction/clipboard.md @@ -72,7 +72,7 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Copy to Clipboard (A) | [`Z2UI5_CL_SMP_APP_325`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_325.clas.abap) | -| Local and Session Storage (A,C) | [`Z2UI5_CL_SMP_APP_327`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_327.clas.abap) | +| Copy to Clipboard (A) | [`Z2UI5_CL_SMP_APP_325`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_325.clas.abap) | +| Local and Session Storage (A,C) | [`Z2UI5_CL_SMP_APP_327`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_327.clas.abap) | diff --git a/docs/cookbook/browser_interaction/focus.md b/docs/cookbook/browser_interaction/focus.md index 4c95e5e3..040b2bf8 100644 --- a/docs/cookbook/browser_interaction/focus.md +++ b/docs/cookbook/browser_interaction/focus.md @@ -108,8 +108,8 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Set Focus and Select Text in an Input (A) | [`Z2UI5_CL_SMP_APP_133`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_133.clas.abap) | -| Jump to the Next Input on Enter (A) | [`Z2UI5_CL_SMP_APP_189`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_189.clas.abap) | -| Focus a Table Cell by Column and Row (A) | [`Z2UI5_CL_SMP_APP_421`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_421.clas.abap) | +| Set Focus and Select Text in an Input (A) | [`Z2UI5_CL_SMP_APP_133`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_133.clas.abap) | +| Jump to the Next Input on Enter (A) | [`Z2UI5_CL_SMP_APP_189`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_189.clas.abap) | +| Focus a Table Cell by Column and Row (A) | [`Z2UI5_CL_SMP_APP_421`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_421.clas.abap) | diff --git a/docs/cookbook/browser_interaction/keyboard_shortcuts.md b/docs/cookbook/browser_interaction/keyboard_shortcuts.md index 55dba0b3..03a20961 100644 --- a/docs/cookbook/browser_interaction/keyboard_shortcuts.md +++ b/docs/cookbook/browser_interaction/keyboard_shortcuts.md @@ -94,6 +94,6 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Keyboard Shortcuts, Ctrl+S (A) | [`Z2UI5_CL_SMP_APP_471`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_471.clas.abap) | +| Keyboard Shortcuts, Ctrl+S (A) | [`Z2UI5_CL_SMP_APP_471`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_471.clas.abap) | diff --git a/docs/cookbook/browser_interaction/scrolling.md b/docs/cookbook/browser_interaction/scrolling.md index 8082e52c..2035605f 100644 --- a/docs/cookbook/browser_interaction/scrolling.md +++ b/docs/cookbook/browser_interaction/scrolling.md @@ -114,7 +114,7 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Scroll to a Pixel Position (A) | [`Z2UI5_CL_SMP_APP_362`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_362.clas.abap) | -| Scroll a Control into View (A) | [`Z2UI5_CL_SMP_APP_363`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_363.clas.abap) | +| Scroll to a Pixel Position (A) | [`Z2UI5_CL_SMP_APP_362`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_362.clas.abap) | +| Scroll a Control into View (A) | [`Z2UI5_CL_SMP_APP_363`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_363.clas.abap) | diff --git a/docs/cookbook/browser_interaction/soft_keyboard.md b/docs/cookbook/browser_interaction/soft_keyboard.md index 605e98ee..2d099b47 100644 --- a/docs/cookbook/browser_interaction/soft_keyboard.md +++ b/docs/cookbook/browser_interaction/soft_keyboard.md @@ -1,78 +1,92 @@ --- outline: [2, 4] samples: - - z2ui5_cl_smp_app_352 - z2ui5_cl_smp_app_516 + - z2ui5_cl_smp_app_530 --- # Soft Keyboard -## Hide Soft Keyboard +On a touch device the on-screen keyboard pops up whenever an input receives +focus. Sometimes you do not want it — in a warehouse, on a handheld used mainly +for barcode scanning, the keyboard covers half the screen and nobody ever types +into the field. Sometimes you want a *different* one: a digit pad for a +quantity, a phone layout for a number. -For UI5 input fields, the soft keyboard pops up automatically when an input receives focus. Sometimes — for example, in warehouses with small devices used mainly for barcode scanning — you don't want this behavior. +Both are the HTML `inputmode` attribute, and abap2UI5 exposes it as a **bound +property** of a companion control. -The `keyboard_set_mode` frontend event sets the HTML `inputmode` attribute on a UI5 input. Pass the control id and the desired mode (`none` hides the soft keyboard; `text`, `numeric`, `decimal`, `tel`, etc. restore it with the matching layout). +## The control + +`z2ui5.cc.InputExt` is a `sap.m.Input` in every respect — same value binding, +same suggestions, same value state, same events — with one property added: + +| Property | What it does | +|---|---| +| `inputMode` | the HTML `inputmode` of the inner ``: `none` keeps the keyboard down, `numeric`, `decimal`, `tel`, `email`, `url`, `search`, `text` ask for that layout. Empty leaves the field exactly as `sap.m.Input` rendered it | + +Declare the namespace on the view and build the field as `z2ui5:InputExt`: ```abap -CLASS z2ui5_cl_sample_softkeyb DEFINITION PUBLIC. - - PUBLIC SECTION. - INTERFACES z2ui5_if_app. - - DATA input TYPE string. - - PROTECTED SECTION. - PRIVATE SECTION. -ENDCLASS. - -CLASS z2ui5_cl_sample_softkeyb IMPLEMENTATION. - METHOD z2ui5_if_app~main. - - IF client->check_on_navigated( ). - - DATA(view) = z2ui5_cl_ui5_view_builder=>factory( - )->ele( n = `View` ns = `mvc` - )->a( n = `xmlns` v = `sap.m` - )->a( n = `xmlns:mvc` v = `sap.ui.core.mvc` - )->a( n = `xmlns:form` v = `sap.ui.layout.form` - - )->ele( `Shell` - )->ele( `Page` - )->a( n = `title` v = `abap2UI5 - Softkeyboard on/off` - )->a( n = `navButtonPress` v = client->_event( `BACK` ) - )->a( n = `showNavButton` b = client->check_app_prev_stack( ) - - )->ele( n = `SimpleForm` ns = `form` - )->a( n = `editable` b = abap_true - - )->ele( n = `content` ns = `form` - )->tag( `Title` - )->a( n = `text` v = `Keyboard on/off` - )->tag( `Label` - )->a( n = `text` v = `Input` - )->tag( `Input` - )->a( n = `id` v = `ZINPUT` - )->a( n = `value` v = client->_bind( input ) - )->a( n = `valueHelpRequest` v = client->_event( `CALL_KEYBOARD` ) - )->a( n = `showValueHelp` b = abap_true ). - - client->view_display( view->stringify( ) ). - - RETURN. - ENDIF. - - CASE client->get( )-event. - WHEN `CALL_KEYBOARD`. - client->follow_up_action( val = client->cs_event-keyboard_set_mode - t_arg = VALUE #( ( `ZINPUT` ) ( `none` ) ) ). - WHEN `BACK`. - client->nav_app_leave( ). - ENDCASE. - - ENDMETHOD. -ENDCLASS. +DATA(view) = z2ui5_cl_ui5_view_builder=>factory( + )->ele( n = `View` ns = `mvc` + )->a( n = `xmlns` v = `sap.m` + )->a( n = `xmlns:mvc` v = `sap.ui.core.mvc` + )->a( n = `xmlns:z2ui5` v = `z2ui5.cc` ). + +view->ele( `Shell` + )->ele( `Page` + )->a( n = `title` v = `abap2UI5 - Soft Keyboard` + + )->tag( n = `InputExt` ns = `z2ui5` + )->a( n = `value` v = client->_bind( value ) + )->a( n = `inputMode` v = client->_bind( mode ) ). + +client->view_display( view->stringify( ) ). ``` -To re-enable the keyboard, fire the same event with a different mode (`text`, `numeric`, …). +`mode` is an ordinary `TYPE string` attribute of the app. Switching the keyboard +is therefore a **model update and nothing else**: + +```abap +CASE client->get_event( ). + WHEN `NUMERIC`. + mode = `numeric`. + WHEN `OFF`. + mode = `none`. +ENDCASE. +``` + +No follow-up action travels, and there is no ordering to get right between an +action and the next render. + +## Why it is a property and not an action + +`inputmode` lives on one DOM attribute, and **UI5 throws that DOM away on every +re-render**. A frontend action that writes the attribute therefore holds only +until the next thing redraws the field — a model update on the same input +included — and nothing reports that it is gone: the field still works, the +keyboard just comes back. + +`InputExt` writes the mode on every rendering, so it is part of what the control +*is*. That is also why the mode survives a roundtrip without the app restoring +anything. + +::: warning cs_event-keyboard_set_mode is removed +Before 2026-09 this page taught a frontend action, +`client->follow_up_action( val = client->cs_event-keyboard_set_mode … )`, which +set the attribute directly on the DOM. It carried exactly the defect above and +**was removed from the framework**; an app that still calls it fails at compile +time. The migration is the control on this page: declare +`xmlns:z2ui5="z2ui5.cc"`, build the field as `z2ui5:InputExt`, bind `inputMode` +to a string attribute, and delete the action. +::: + +## An unknown mode is refused, not guessed + +`inputMode` is checked against the HTML keyword list before it is written. A +browser silently falls back to its default for a keyword it does not know, which +on screen is indistinguishable from the property having had no effect at all — +so the control logs the bad value instead and writes nothing. @@ -85,7 +99,7 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Soft Keyboard Mode on Mobile (A) | [`Z2UI5_CL_SMP_APP_352`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_352.clas.abap) | -| Keyboard Layout of an Input (inputmode) (C) | [`Z2UI5_CL_SMP_APP_516`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_516.clas.abap) | +| Keyboard Layout of an Input (inputmode) (C) | [`Z2UI5_CL_SMP_APP_516`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_516.clas.abap) | +| Scan Field with Submit (InputExt) (A,C) | [`Z2UI5_CL_SMP_APP_530`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_530.clas.abap) | diff --git a/docs/cookbook/browser_interaction/timer.md b/docs/cookbook/browser_interaction/timer.md index a76f6bfc..2e3d7f6d 100644 --- a/docs/cookbook/browser_interaction/timer.md +++ b/docs/cookbook/browser_interaction/timer.md @@ -101,7 +101,7 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Progress Indicator during a Backend Call (A) | [`Z2UI5_CL_SMP_APP_064`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_064.clas.abap) | -| Refresh the View Every n Seconds (A) | [`Z2UI5_CL_SMP_APP_028`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_028.clas.abap) | +| Progress Indicator during a Backend Call (A) | [`Z2UI5_CL_SMP_APP_064`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_064.clas.abap) | +| Refresh the View Every n Seconds (A) | [`Z2UI5_CL_SMP_APP_028`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_028.clas.abap) | diff --git a/docs/cookbook/browser_interaction/title.md b/docs/cookbook/browser_interaction/title.md index ee575ea3..4c7fc96f 100644 --- a/docs/cookbook/browser_interaction/title.md +++ b/docs/cookbook/browser_interaction/title.md @@ -80,7 +80,7 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Set the Tab Title (A) | [`Z2UI5_CL_SMP_APP_125`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_125.clas.abap) | -| Set the Tab Favicon (A) | [`Z2UI5_CL_SMP_APP_491`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_491.clas.abap) | +| Set the Tab Title (A) | [`Z2UI5_CL_SMP_APP_125`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_125.clas.abap) | +| Set the Tab Favicon (A) | [`Z2UI5_CL_SMP_APP_491`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_491.clas.abap) | diff --git a/docs/cookbook/browser_interaction/url_handling.md b/docs/cookbook/browser_interaction/url_handling.md index a6ac5759..4e0b594c 100644 --- a/docs/cookbook/browser_interaction/url_handling.md +++ b/docs/cookbook/browser_interaction/url_handling.md @@ -121,8 +121,8 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Open a URL in a New Tab (A) | [`Z2UI5_CL_SMP_APP_073`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_073.clas.abap) | -| Open Mail, Phone and SMS Links (A) | [`Z2UI5_CL_SMP_APP_316`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_316.clas.abap) | -| Reload the Page (A) | [`Z2UI5_CL_SMP_APP_492`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_492.clas.abap) | +| Open a URL in a New Tab (A) | [`Z2UI5_CL_SMP_APP_073`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_073.clas.abap) | +| Open Mail, Phone and SMS Links (A) | [`Z2UI5_CL_SMP_APP_316`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_316.clas.abap) | +| Reload the Page (A) | [`Z2UI5_CL_SMP_APP_492`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_492.clas.abap) | diff --git a/docs/cookbook/device_capabilities/camera.md b/docs/cookbook/device_capabilities/camera.md index 6822f2dd..245f5a8e 100644 --- a/docs/cookbook/device_capabilities/camera.md +++ b/docs/cookbook/device_capabilities/camera.md @@ -64,6 +64,6 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Camera, Take Photos (C) | [`Z2UI5_CL_SMP_APP_306`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_306.clas.abap) | +| Camera, Take Photos (C) | [`Z2UI5_CL_SMP_APP_306`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_306.clas.abap) | diff --git a/docs/cookbook/device_capabilities/geolocation.md b/docs/cookbook/device_capabilities/geolocation.md index a44867dd..6bb35bd6 100644 --- a/docs/cookbook/device_capabilities/geolocation.md +++ b/docs/cookbook/device_capabilities/geolocation.md @@ -93,6 +93,6 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Geolocation from the Browser (C) | [`Z2UI5_CL_SMP_APP_120`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_120.clas.abap) | +| Geolocation from the Browser (C) | [`Z2UI5_CL_SMP_APP_120`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_120.clas.abap) | diff --git a/docs/cookbook/device_capabilities/info.md b/docs/cookbook/device_capabilities/info.md index 12fd6a7f..5cfdaa7d 100644 --- a/docs/cookbook/device_capabilities/info.md +++ b/docs/cookbook/device_capabilities/info.md @@ -143,7 +143,7 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Frontend Info: UI5 Version, Theme, OS, Browser | [`Z2UI5_CL_SMP_APP_122`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_122.clas.abap) | -| Device Model: Phone, Tablet, Desktop (A) | [`Z2UI5_CL_SMP_APP_445`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_445.clas.abap) | +| Frontend Info: UI5 Version, Theme, OS, Browser | [`Z2UI5_CL_SMP_APP_122`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_122.clas.abap) | +| Device Model: Phone, Tablet, Desktop (A) | [`Z2UI5_CL_SMP_APP_445`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_445.clas.abap) | diff --git a/docs/cookbook/device_capabilities/pdf.md b/docs/cookbook/device_capabilities/pdf.md index cf389de0..12fe0129 100644 --- a/docs/cookbook/device_capabilities/pdf.md +++ b/docs/cookbook/device_capabilities/pdf.md @@ -104,6 +104,6 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Open the PDF Viewer by ID (A) | [`Z2UI5_CL_SMP_APP_449`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_449.clas.abap) | +| Open the PDF Viewer by ID (A) | [`Z2UI5_CL_SMP_APP_449`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_449.clas.abap) | diff --git a/docs/cookbook/device_capabilities/upload_download.md b/docs/cookbook/device_capabilities/upload_download.md index 310dda3c..896e450f 100644 --- a/docs/cookbook/device_capabilities/upload_download.md +++ b/docs/cookbook/device_capabilities/upload_download.md @@ -102,8 +102,8 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Upload to the Backend (C) | [`Z2UI5_CL_SMP_APP_074`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_074.clas.abap) | -| Download to the Browser (A) | [`Z2UI5_CL_SMP_APP_186`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_186.clas.abap) | -| Upload with an UploadSet (C) | [`Z2UI5_CL_SMP_APP_517`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_517.clas.abap) | +| Upload to the Backend (C) | [`Z2UI5_CL_SMP_APP_074`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_074.clas.abap) | +| Download to the Browser (A) | [`Z2UI5_CL_SMP_APP_186`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_186.clas.abap) | +| Upload with an UploadSet (C) | [`Z2UI5_CL_SMP_APP_517`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_517.clas.abap) | diff --git a/docs/cookbook/event_navigation/backend.md b/docs/cookbook/event_navigation/backend.md index e3c9289f..a39119d1 100644 --- a/docs/cookbook/event_navigation/backend.md +++ b/docs/cookbook/event_navigation/backend.md @@ -132,6 +132,53 @@ ENDMETHOD. You can read any object attribute, but use only public and released attributes to avoid compatibility issues with future UI5 versions. ::: +## A Control in Another View Slot + +The forms above read the control that fired, the event object, or a bound +model property. None of them reaches a **different** control — an id is local +to the view or fragment it was written in, and a `${...}` is a binding path, +so it addresses data and never a control. + +`$controller.slotValue( slot, id, getter )` reads what a control in a named +view slot currently holds. The classic case is a dialog whose value the button +that closes it has to carry: + +```abap +)->a( n = `press` v = client->_event( + val = `SAVE` + arg = `$controller.slotValue('POPUP','myEditor','getImagePngDataURL')` ) ). +``` + +```abap +CASE client->get( )-event. + WHEN `SAVE`. + DATA(image) = client->get_event_arg( ). + client->popup_destroy( ). +ENDCASE. +``` + +The slot is one of the `cs_view` keys — `MAIN`, `NEST`, `NEST2`, `POPUP`, +`POPOVER` — and an **empty** slot searches every open one and then the global +registry, the same resolution `cs_event-control_by_id` uses for +`cs_view-main`. + +The getter takes no arguments on purpose. To *call* a control, use +`cs_event-control_by_id`, which has a method whitelist in front of it; this is +a read. + +::: tip It never throws, it logs +A closed slot, an unknown id, a method the control does not have, or a getter +that raises — each is written to the browser console and sent as the empty +string. That is deliberate: an argument expression is evaluated while UI5 +dispatches the handler, so an expression that throws loses the whole **event**, +leaving a button that does nothing and an app with no way to tell. +::: + +`$controller.slotById( slot, id )` hands the control itself over, for a +null-tolerant reader such as `$controller.textPath( )`. It answers `null` on a +miss — and a method call on that `null` is exactly the throw the tip above +describes, so prefer `slotValue( )` whenever you want a value. + ## Model Properties Read model properties bound to the event: ```abap @@ -189,7 +236,7 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Extra Arguments with t_arg | [`Z2UI5_CL_SMP_APP_167`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_167.clas.abap) | -| Control Objects in t_arg (FacetFilter) | [`Z2UI5_CL_SMP_APP_197`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_197.clas.abap) | +| Extra Arguments with t_arg | [`Z2UI5_CL_SMP_APP_167`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_167.clas.abap) | +| Control Objects in t_arg (FacetFilter) | [`Z2UI5_CL_SMP_APP_197`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_197.clas.abap) | diff --git a/docs/cookbook/event_navigation/exception.md b/docs/cookbook/event_navigation/exception.md index f5a5ee54..b8453f30 100644 --- a/docs/cookbook/event_navigation/exception.md +++ b/docs/cookbook/event_navigation/exception.md @@ -142,7 +142,7 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| MessageBox from SY, BAPIRET2 or Exception | [`Z2UI5_CL_SMP_APP_008`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_008.clas.abap) | -| Uncaught Error and Error Popup | [`Z2UI5_CL_SMP_APP_464`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_464.clas.abap) | +| MessageBox from SY, BAPIRET2 or Exception | [`Z2UI5_CL_SMP_APP_008`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_008.clas.abap) | +| Uncaught Error and Error Popup | [`Z2UI5_CL_SMP_APP_464`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_464.clas.abap) | diff --git a/docs/cookbook/event_navigation/frontend.md b/docs/cookbook/event_navigation/frontend.md index fbf3a60d..45e8d958 100644 --- a/docs/cookbook/event_navigation/frontend.md +++ b/docs/cookbook/event_navigation/frontend.md @@ -88,7 +88,6 @@ The frontend events, as `z2ui5_if_client=>cs_event` carries them: scroll_to TYPE string VALUE `SCROLL_TO`, scroll_into_view TYPE string VALUE `SCROLL_INTO_VIEW`, start_timer TYPE string VALUE `START_TIMER`, - keyboard_set_mode TYPE string VALUE `KEYBOARD_SET_MODE`, keyboard_shortcut TYPE string VALUE `KEYBOARD_SHORTCUT`, open_new_tab TYPE string VALUE `OPEN_NEW_TAB`, location_reload TYPE string VALUE `LOCATION_RELOAD`, @@ -346,16 +345,16 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Link with preventDefault (A) | [`Z2UI5_CL_SMP_APP_472`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_472.clas.abap) | -| Element Binding to the Selected Row (A) | [`Z2UI5_CL_SMP_APP_470`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_470.clas.abap) | -| Expand a Panel by ID (setExpanded) (A) | [`Z2UI5_CL_SMP_APP_448`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_448.clas.abap) | -| Switch NavContainer Page by ID (A) | [`Z2UI5_CL_SMP_APP_088`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_088.clas.abap) | -| Wizard with Steps (A) | [`Z2UI5_CL_SMP_APP_202`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_202.clas.abap) | -| Open the PDF Viewer by ID (A) | [`Z2UI5_CL_SMP_APP_449`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_449.clas.abap) | -| Toggle by ID (toggleBy) (A) | [`Z2UI5_CL_SMP_APP_465`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_465.clas.abap) | -| Inline CSS on a Control (css) (A) | [`Z2UI5_CL_SMP_APP_513`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_513.clas.abap) | -| Aggregation Item by Index (A) | [`Z2UI5_CL_SMP_APP_514`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_514.clas.abap) | -| The Global Busy Indicator (A) | [`Z2UI5_CL_SMP_APP_515`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_515.clas.abap) | -| Register an Icon Font (A) | [`Z2UI5_CL_SMP_APP_518`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_518.clas.abap) | +| Link with preventDefault (A) | [`Z2UI5_CL_SMP_APP_472`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_472.clas.abap) | +| Element Binding to the Selected Row (A) | [`Z2UI5_CL_SMP_APP_470`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_470.clas.abap) | +| Expand a Panel by ID (setExpanded) (A) | [`Z2UI5_CL_SMP_APP_448`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_448.clas.abap) | +| Switch NavContainer Page by ID (A) | [`Z2UI5_CL_SMP_APP_088`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_088.clas.abap) | +| Wizard with Steps (A) | [`Z2UI5_CL_SMP_APP_202`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_202.clas.abap) | +| Open the PDF Viewer by ID (A) | [`Z2UI5_CL_SMP_APP_449`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_449.clas.abap) | +| Toggle by ID (toggleBy) (A) | [`Z2UI5_CL_SMP_APP_465`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_465.clas.abap) | +| Inline CSS on a Control (css) (A) | [`Z2UI5_CL_SMP_APP_513`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_513.clas.abap) | +| Aggregation Item by Index (A) | [`Z2UI5_CL_SMP_APP_514`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_514.clas.abap) | +| The Global Busy Indicator (A) | [`Z2UI5_CL_SMP_APP_515`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_515.clas.abap) | +| Register an Icon Font (A) | [`Z2UI5_CL_SMP_APP_518`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_518.clas.abap) | diff --git a/docs/cookbook/event_navigation/life_cycle.md b/docs/cookbook/event_navigation/life_cycle.md index 024764d5..89c204fd 100644 --- a/docs/cookbook/event_navigation/life_cycle.md +++ b/docs/cookbook/event_navigation/life_cycle.md @@ -148,7 +148,7 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Basics III — Lifecycle: Init, Event, Navigated | [`Z2UI5_CL_SMP_APP_495`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_495.clas.abap) | -| Basics IV — Events, Views and Roundtrips | [`Z2UI5_CL_SMP_APP_004`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_004.clas.abap) | +| Basics III — Lifecycle: Init, Event, Navigated | [`Z2UI5_CL_SMP_APP_495`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_495.clas.abap) | +| Basics IV — Events, Views and Roundtrips | [`Z2UI5_CL_SMP_APP_004`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_004.clas.abap) | diff --git a/docs/cookbook/event_navigation/navigation/app_state.md b/docs/cookbook/event_navigation/navigation/app_state.md index 36f362d6..903b7ce0 100644 --- a/docs/cookbook/event_navigation/navigation/app_state.md +++ b/docs/cookbook/event_navigation/navigation/app_state.md @@ -218,6 +218,6 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| App State, Bookmark and Share | [`Z2UI5_CL_SMP_APP_498`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_498.clas.abap) | +| App State, Bookmark and Share | [`Z2UI5_CL_SMP_APP_498`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_498.clas.abap) | diff --git a/docs/cookbook/event_navigation/navigation/hash.md b/docs/cookbook/event_navigation/navigation/hash.md index b55226cf..e5a0899e 100644 --- a/docs/cookbook/event_navigation/navigation/hash.md +++ b/docs/cookbook/event_navigation/navigation/hash.md @@ -207,8 +207,8 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Routing mode fresh | [`Z2UI5_CL_SMP_APP_468`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_468.clas.abap) | -| Routing mode keep | [`Z2UI5_CL_SMP_APP_480`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_480.clas.abap) | -| App-Owned Routing (#/detail) | [`Z2UI5_CL_SMP_APP_499`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_499.clas.abap) | +| Routing Mode FRESH (a New Instance) | [`Z2UI5_CL_SMP_APP_468`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_468.clas.abap) | +| Routing Mode KEEP (Back to the State) | [`Z2UI5_CL_SMP_APP_480`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_480.clas.abap) | +| App-Owned Routing (#/detail) | [`Z2UI5_CL_SMP_APP_499`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_499.clas.abap) | diff --git a/docs/cookbook/event_navigation/navigation/inner_app.md b/docs/cookbook/event_navigation/navigation/inner_app.md index 0790bcdb..919022f1 100644 --- a/docs/cookbook/event_navigation/navigation/inner_app.md +++ b/docs/cookbook/event_navigation/navigation/inner_app.md @@ -156,8 +156,8 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Call and Leave Apps (nav_app_call) | [`Z2UI5_CL_SMP_APP_024`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_024.clas.abap) | -| Return Data and Events to the Caller | [`Z2UI5_CL_SMP_APP_488`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_488.clas.abap) | -| Data Loss Protection on Leaving (A,C) | [`Z2UI5_CL_SMP_APP_279`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_279.clas.abap) | +| Call and Leave Apps (nav_app_call) | [`Z2UI5_CL_SMP_APP_024`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_024.clas.abap) | +| Return Data and Events to the Caller | [`Z2UI5_CL_SMP_APP_488`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_488.clas.abap) | +| Data Loss Protection on Leaving (A,C) | [`Z2UI5_CL_SMP_APP_279`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_279.clas.abap) | diff --git a/docs/cookbook/expert_more/snippets.md b/docs/cookbook/expert_more/snippets.md index d34f6dd1..9ae5a33d 100644 --- a/docs/cookbook/expert_more/snippets.md +++ b/docs/cookbook/expert_more/snippets.md @@ -369,8 +369,8 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Basics I — Hello World, the Smallest App | [`Z2UI5_CL_SMP_APP_493`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_493.clas.abap) | -| Basics III — Lifecycle: Init, Event, Navigated | [`Z2UI5_CL_SMP_APP_495`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_495.clas.abap) | -| Basics IV — Events, Views and Roundtrips | [`Z2UI5_CL_SMP_APP_004`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_004.clas.abap) | +| Basics I — Hello World, the Smallest App | [`Z2UI5_CL_SMP_APP_493`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_493.clas.abap) | +| Basics III — Lifecycle: Init, Event, Navigated | [`Z2UI5_CL_SMP_APP_495`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_495.clas.abap) | +| Basics IV — Events, Views and Roundtrips | [`Z2UI5_CL_SMP_APP_004`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_004.clas.abap) | diff --git a/docs/cookbook/expert_more/value_help.md b/docs/cookbook/expert_more/value_help.md index 79521f02..b90d1556 100644 --- a/docs/cookbook/expert_more/value_help.md +++ b/docs/cookbook/expert_more/value_help.md @@ -159,7 +159,7 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Value Help: Suggestions and F4 Dialog | [`Z2UI5_CL_SMP_APP_009`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_009.clas.abap) | -| MultiInput with Tokens (C) | [`Z2UI5_CL_SMP_APP_078`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_078.clas.abap) | +| Value Help: Suggestions and F4 Dialog | [`Z2UI5_CL_SMP_APP_009`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_009.clas.abap) | +| MultiInput with Tokens (C) | [`Z2UI5_CL_SMP_APP_078`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_078.clas.abap) | diff --git a/docs/cookbook/model/binding.md b/docs/cookbook/model/binding.md index acffae21..ff4aba79 100644 --- a/docs/cookbook/model/binding.md +++ b/docs/cookbook/model/binding.md @@ -178,10 +178,10 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Basics II — Data Binding: Input and Button | [`Z2UI5_CL_SMP_APP_494`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_494.clas.abap) | -| Types for Integer, Decimal, Date and Time | [`Z2UI5_CL_SMP_APP_047`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_047.clas.abap) | -| Structure Fields and INCLUDEs | [`Z2UI5_CL_SMP_APP_166`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_166.clas.abap) | -| Single Table Cell (tab_index) | [`Z2UI5_CL_SMP_APP_144`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_144.clas.abap) | -| Dynamic Table Typed at Runtime (RTTI) | [`Z2UI5_CL_SMP_APP_061`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_061.clas.abap) | +| Basics II — Data Binding: Input and Button | [`Z2UI5_CL_SMP_APP_494`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_494.clas.abap) | +| Types for Integer, Decimal, Date and Time | [`Z2UI5_CL_SMP_APP_047`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_047.clas.abap) | +| Structure Fields and INCLUDEs | [`Z2UI5_CL_SMP_APP_166`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_166.clas.abap) | +| Single Table Cell (tab_index) | [`Z2UI5_CL_SMP_APP_144`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_144.clas.abap) | +| Dynamic Table Typed at Runtime (RTTI) | [`Z2UI5_CL_SMP_APP_061`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_061.clas.abap) | diff --git a/docs/cookbook/model/device_model.md b/docs/cookbook/model/device_model.md index b2c34025..feabbe8d 100644 --- a/docs/cookbook/model/device_model.md +++ b/docs/cookbook/model/device_model.md @@ -136,6 +136,6 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Device Model: Phone, Tablet, Desktop (A) | [`Z2UI5_CL_SMP_APP_445`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_445.clas.abap) | +| Device Model: Phone, Tablet, Desktop (A) | [`Z2UI5_CL_SMP_APP_445`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_445.clas.abap) | diff --git a/docs/cookbook/model/expression_binding.md b/docs/cookbook/model/expression_binding.md index 349d3361..65d31955 100644 --- a/docs/cookbook/model/expression_binding.md +++ b/docs/cookbook/model/expression_binding.md @@ -126,6 +126,6 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Expression Binding, Types and Composite Parts | [`Z2UI5_CL_SMP_APP_027`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_027.clas.abap) | +| Expression Binding, Types and Composite Parts | [`Z2UI5_CL_SMP_APP_027`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_027.clas.abap) | diff --git a/docs/cookbook/model/formatter.md b/docs/cookbook/model/formatter.md index be5da013..9c5e3475 100644 --- a/docs/cookbook/model/formatter.md +++ b/docs/cookbook/model/formatter.md @@ -365,11 +365,11 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Currency Amounts (sap.ui.model.type.Currency) | [`Z2UI5_CL_SMP_APP_067`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_067.clas.abap) | -| ABAP Date and Time Strings (DATS/TIMS) | [`Z2UI5_CL_SMP_APP_450`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_450.clas.abap) | -| Date Object for the DatePicker | [`Z2UI5_CL_SMP_APP_457`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_457.clas.abap) | -| Date Objects for the PlanningCalendar | [`Z2UI5_CL_SMP_APP_456`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_456.clas.abap) | -| Inline Icons in a Text | [`Z2UI5_CL_SMP_APP_466`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_466.clas.abap) | -| When Not to Use One: Compute in ABAP | [`Z2UI5_CL_SMP_APP_453`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_453.clas.abap) | +| Currency Amounts (sap.ui.model.type.Currency) | [`Z2UI5_CL_SMP_APP_067`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_067.clas.abap) | +| ABAP Date and Time Strings (DATS/TIMS) | [`Z2UI5_CL_SMP_APP_450`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_450.clas.abap) | +| Date Object for the DatePicker | [`Z2UI5_CL_SMP_APP_457`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_457.clas.abap) | +| Date Objects for the PlanningCalendar | [`Z2UI5_CL_SMP_APP_456`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_456.clas.abap) | +| Inline Icons in a Text | [`Z2UI5_CL_SMP_APP_466`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_466.clas.abap) | +| When Not to Use One: Compute in ABAP | [`Z2UI5_CL_SMP_APP_453`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_453.clas.abap) | diff --git a/docs/cookbook/model/size_limit.md b/docs/cookbook/model/size_limit.md index 35af3099..f85fa8a7 100644 --- a/docs/cookbook/model/size_limit.md +++ b/docs/cookbook/model/size_limit.md @@ -161,6 +161,6 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Model setSizeLimit for Large Tables (A) | [`Z2UI5_CL_SMP_APP_071`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_071.clas.abap) | +| Model setSizeLimit for Large Tables (A) | [`Z2UI5_CL_SMP_APP_071`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_071.clas.abap) | diff --git a/docs/cookbook/model/tables.md b/docs/cookbook/model/tables.md index d32c3e0b..a11bfba3 100644 --- a/docs/cookbook/model/tables.md +++ b/docs/cookbook/model/tables.md @@ -229,15 +229,15 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Editable Cells, Add and Delete Rows | [`Z2UI5_CL_SMP_APP_011`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_011.clas.abap) | -| Selection Modes: Single and Multi Select | [`Z2UI5_CL_SMP_APP_019`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_019.clas.abap) | -| Large Table with Growing and ScrollContainer | [`Z2UI5_CL_SMP_APP_006`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_006.clas.abap) | -| Filter Rows in the Backend | [`Z2UI5_CL_SMP_APP_045`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_045.clas.abap) | -| Search in the Backend (SearchField) | [`Z2UI5_CL_SMP_APP_053`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_053.clas.abap) | -| Live Search over a Large Table | [`Z2UI5_CL_SMP_APP_059`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_059.clas.abap) | -| Full Example with sap.ui.table | [`Z2UI5_CL_SMP_APP_070`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_070.clas.abap) | -| Events on Cell Level | [`Z2UI5_CL_SMP_APP_160`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_160.clas.abap) | -| Keep Column Filters on Refresh (C) | [`Z2UI5_CL_SMP_APP_143`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_143.clas.abap) | -| Drag and Drop Rows (A) | [`Z2UI5_CL_SMP_APP_459`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_459.clas.abap) | +| Editable Cells, Add and Delete Rows | [`Z2UI5_CL_SMP_APP_011`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_011.clas.abap) | +| Selection Modes: Single and Multi Select | [`Z2UI5_CL_SMP_APP_019`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_019.clas.abap) | +| Large Table with Growing and ScrollContainer | [`Z2UI5_CL_SMP_APP_006`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_006.clas.abap) | +| Filter Rows in the Backend | [`Z2UI5_CL_SMP_APP_045`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_045.clas.abap) | +| Search in the Backend (SearchField) | [`Z2UI5_CL_SMP_APP_053`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_053.clas.abap) | +| Live Search over a Large Table | [`Z2UI5_CL_SMP_APP_059`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_059.clas.abap) | +| Full Example with sap.ui.table | [`Z2UI5_CL_SMP_APP_070`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_070.clas.abap) | +| Events on Cell Level | [`Z2UI5_CL_SMP_APP_160`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_160.clas.abap) | +| Keep Column Filters on Refresh (C) | [`Z2UI5_CL_SMP_APP_143`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_143.clas.abap) | +| Drag and Drop Rows (A) | [`Z2UI5_CL_SMP_APP_459`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_459.clas.abap) | diff --git a/docs/cookbook/model/trees.md b/docs/cookbook/model/trees.md index 7541f546..e1e72708 100644 --- a/docs/cookbook/model/trees.md +++ b/docs/cookbook/model/trees.md @@ -105,9 +105,9 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Nested ABAP Table in a sap.m.Tree | [`Z2UI5_CL_SMP_APP_460`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_460.clas.abap) | -| Drag and Drop Nodes (A,C) | [`Z2UI5_CL_SMP_APP_461`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_461.clas.abap) | -| Inside a Dialog (C) | [`Z2UI5_CL_SMP_APP_462`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_462.clas.abap) | -| Editable Nodes with CustomTreeItem (C) | [`Z2UI5_CL_SMP_APP_463`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_463.clas.abap) | +| Nested ABAP Table in a sap.m.Tree | [`Z2UI5_CL_SMP_APP_460`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_460.clas.abap) | +| Drag and Drop Nodes (A,C) | [`Z2UI5_CL_SMP_APP_461`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_461.clas.abap) | +| Inside a Dialog (C) | [`Z2UI5_CL_SMP_APP_462`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_462.clas.abap) | +| Editable Nodes with CustomTreeItem (C) | [`Z2UI5_CL_SMP_APP_463`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_463.clas.abap) | diff --git a/docs/cookbook/popup_popover/popover.md b/docs/cookbook/popup_popover/popover.md index c76bdda0..e7da436b 100644 --- a/docs/cookbook/popup_popover/popover.md +++ b/docs/cookbook/popup_popover/popover.md @@ -86,11 +86,11 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Basic Example with Placement | [`Z2UI5_CL_SMP_APP_026`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_026.clas.abap) | -| Open from a Table Row (A) | [`Z2UI5_CL_SMP_APP_052`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_052.clas.abap) | -| Select from a List | [`Z2UI5_CL_SMP_APP_081`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_081.clas.abap) | -| QuickView Contact Card | [`Z2UI5_CL_SMP_APP_109`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_109.clas.abap) | -| Toggle by ID (toggleBy) (A) | [`Z2UI5_CL_SMP_APP_465`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_465.clas.abap) | -| Open Together with the View Build | [`Z2UI5_CL_SMP_APP_490`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_490.clas.abap) | +| Basic Example with Placement | [`Z2UI5_CL_SMP_APP_026`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_026.clas.abap) | +| Open from a Table Row (A) | [`Z2UI5_CL_SMP_APP_052`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_052.clas.abap) | +| Select from a List | [`Z2UI5_CL_SMP_APP_081`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_081.clas.abap) | +| QuickView Contact Card | [`Z2UI5_CL_SMP_APP_109`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_109.clas.abap) | +| Toggle by ID (toggleBy) (A) | [`Z2UI5_CL_SMP_APP_465`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_465.clas.abap) | +| Open Together with the View Build | [`Z2UI5_CL_SMP_APP_490`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_490.clas.abap) | diff --git a/docs/cookbook/popup_popover/popup.md b/docs/cookbook/popup_popover/popup.md index 12cfca6d..fe3b77df 100644 --- a/docs/cookbook/popup_popover/popup.md +++ b/docs/cookbook/popup_popover/popup.md @@ -189,10 +189,10 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Ways to Open a Dialog (A) | [`Z2UI5_CL_SMP_APP_012`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_012.clas.abap) | -| Value Help: Suggestions and F4 Dialog | [`Z2UI5_CL_SMP_APP_009`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_009.clas.abap) | -| Dialog inside a Dialog | [`Z2UI5_CL_SMP_APP_161`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_161.clas.abap) | -| Navigate between Dialogs (NavContainer) (A) | [`Z2UI5_CL_SMP_APP_170`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_170.clas.abap) | -| Element Binding to the Selected Row (A) | [`Z2UI5_CL_SMP_APP_470`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_470.clas.abap) | +| Ways to Open a Dialog (A) | [`Z2UI5_CL_SMP_APP_012`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_012.clas.abap) | +| Value Help: Suggestions and F4 Dialog | [`Z2UI5_CL_SMP_APP_009`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_009.clas.abap) | +| Dialog inside a Dialog | [`Z2UI5_CL_SMP_APP_161`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_161.clas.abap) | +| Navigate between Dialogs (NavContainer) (A) | [`Z2UI5_CL_SMP_APP_170`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_170.clas.abap) | +| Element Binding to the Selected Row (A) | [`Z2UI5_CL_SMP_APP_470`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_470.clas.abap) | diff --git a/docs/cookbook/translation_messages/logging.md b/docs/cookbook/translation_messages/logging.md index bf5d9b1b..f768d580 100644 --- a/docs/cookbook/translation_messages/logging.md +++ b/docs/cookbook/translation_messages/logging.md @@ -100,6 +100,6 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| MessageBox for Any Data | [`Z2UI5_CL_SMP_APP_502`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_502.clas.abap) | +| MessageBox for Any Data | [`Z2UI5_CL_SMP_APP_502`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_502.clas.abap) | diff --git a/docs/cookbook/translation_messages/message.md b/docs/cookbook/translation_messages/message.md index 0cf6afa7..9a0436f1 100644 --- a/docs/cookbook/translation_messages/message.md +++ b/docs/cookbook/translation_messages/message.md @@ -234,13 +234,13 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| MessageToast via the Global Object | [`Z2UI5_CL_SMP_APP_381`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_381.clas.abap) | -| MessageBox, Types and Custom Actions | [`Z2UI5_CL_SMP_APP_382`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_382.clas.abap) | -| MessageBox from SY, BAPIRET2 or Exception | [`Z2UI5_CL_SMP_APP_008`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_008.clas.abap) | -| MessageView and MessagePopover (A) | [`Z2UI5_CL_SMP_APP_452`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_452.clas.abap) | -| Message Model and MessageManager (C) | [`Z2UI5_CL_SMP_APP_467`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_467.clas.abap) | -| MessagePopover URL Policy (A) | [`Z2UI5_CL_SMP_APP_474`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_474.clas.abap) | -| MessageBox for Any Data | [`Z2UI5_CL_SMP_APP_502`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_502.clas.abap) | -| MessageBox via the Global Object | [`Z2UI5_CL_SMP_APP_512`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_512.clas.abap) | +| MessageToast via the Global Object | [`Z2UI5_CL_SMP_APP_381`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_381.clas.abap) | +| MessageBox, Types and Custom Actions | [`Z2UI5_CL_SMP_APP_382`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_382.clas.abap) | +| MessageBox from SY, BAPIRET2 or Exception | [`Z2UI5_CL_SMP_APP_008`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_008.clas.abap) | +| MessageView and MessagePopover (A) | [`Z2UI5_CL_SMP_APP_452`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_452.clas.abap) | +| Message Model and MessageManager (C) | [`Z2UI5_CL_SMP_APP_467`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_467.clas.abap) | +| MessagePopover URL Policy (A) | [`Z2UI5_CL_SMP_APP_474`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_474.clas.abap) | +| MessageBox for Any Data | [`Z2UI5_CL_SMP_APP_502`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_502.clas.abap) | +| MessageBox via the Global Object | [`Z2UI5_CL_SMP_APP_512`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_512.clas.abap) | diff --git a/docs/cookbook/translation_messages/translation_i18n.md b/docs/cookbook/translation_messages/translation_i18n.md index d4e58c39..b1e3f4d0 100644 --- a/docs/cookbook/translation_messages/translation_i18n.md +++ b/docs/cookbook/translation_messages/translation_i18n.md @@ -176,6 +176,6 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Basics VII — Translatable Texts (Text Elements) | [`Z2UI5_CL_SMP_APP_519`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_519.clas.abap) | +| Basics VII — Translatable Texts (Text Elements) | [`Z2UI5_CL_SMP_APP_519`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_519.clas.abap) | diff --git a/docs/cookbook/troubleshooting/common_failures.md b/docs/cookbook/troubleshooting/common_failures.md index e16cdc7b..ba86b775 100644 --- a/docs/cookbook/troubleshooting/common_failures.md +++ b/docs/cookbook/troubleshooting/common_failures.md @@ -251,6 +251,6 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Basics V — The Developer Tools (Ctrl+F12) | [`Z2UI5_CL_SMP_APP_496`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_496.clas.abap) | +| Basics V — The Developer Tools (Ctrl+F12) | [`Z2UI5_CL_SMP_APP_496`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_496.clas.abap) | diff --git a/docs/cookbook/view/definition.md b/docs/cookbook/view/definition.md index 9facd4e0..c2a6ba96 100644 --- a/docs/cookbook/view/definition.md +++ b/docs/cookbook/view/definition.md @@ -217,8 +217,8 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Basics I — Hello World, the Smallest App | [`Z2UI5_CL_SMP_APP_493`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_493.clas.abap) | -| Ship Your Own CSS with the View | [`Z2UI5_CL_SMP_APP_050`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_050.clas.abap) | -| FlexBox Layouts with Custom Classes | [`Z2UI5_CL_SMP_APP_255`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_255.clas.abap) | +| Basics I — Hello World, the Smallest App | [`Z2UI5_CL_SMP_APP_493`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_493.clas.abap) | +| Ship Your Own CSS with the View | [`Z2UI5_CL_SMP_APP_050`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_050.clas.abap) | +| FlexBox Layouts with Custom Classes | [`Z2UI5_CL_SMP_APP_255`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_255.clas.abap) | diff --git a/docs/cookbook/view/nested_views.md b/docs/cookbook/view/nested_views.md index 9e09173a..bb0ca533 100644 --- a/docs/cookbook/view/nested_views.md +++ b/docs/cookbook/view/nested_views.md @@ -337,10 +337,10 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Basic Example (nest_view_display) | [`Z2UI5_CL_SMP_APP_065`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_065.clas.abap) | -| Embed Another App's View | [`Z2UI5_CL_SMP_APP_104`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_104.clas.abap) | -| Master-Detail with FlexibleColumnLayout | [`Z2UI5_CL_SMP_APP_097`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_097.clas.abap) | -| Three Columns with FlexibleColumnLayout | [`Z2UI5_CL_SMP_APP_098`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_098.clas.abap) | -| Dynamic Content in a Nested View | [`Z2UI5_CL_SMP_APP_176`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_176.clas.abap) | +| Basic Example (nest_view_display) | [`Z2UI5_CL_SMP_APP_065`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_065.clas.abap) | +| Embed Another App's View | [`Z2UI5_CL_SMP_APP_104`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_104.clas.abap) | +| Master-Detail with FlexibleColumnLayout | [`Z2UI5_CL_SMP_APP_097`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_097.clas.abap) | +| Three Columns with FlexibleColumnLayout | [`Z2UI5_CL_SMP_APP_098`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_098.clas.abap) | +| Dynamic Content in a Nested View | [`Z2UI5_CL_SMP_APP_176`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_176.clas.abap) | diff --git a/docs/cookbook/view/xml_templating.md b/docs/cookbook/view/xml_templating.md index dbbf04fa..ab593873 100644 --- a/docs/cookbook/view/xml_templating.md +++ b/docs/cookbook/view/xml_templating.md @@ -296,7 +296,7 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Build Columns Dynamically (template:repeat) | [`Z2UI5_CL_SMP_APP_173`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_173.clas.abap) | -| Dynamic Content in a Nested View | [`Z2UI5_CL_SMP_APP_176`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_176.clas.abap) | +| Build Columns Dynamically (template:repeat) | [`Z2UI5_CL_SMP_APP_173`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_173.clas.abap) | +| Dynamic Content in a Nested View | [`Z2UI5_CL_SMP_APP_176`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_176.clas.abap) | diff --git a/docs/get_started/hello_world.md b/docs/get_started/hello_world.md index 70b2e7cd..c76adf87 100644 --- a/docs/get_started/hello_world.md +++ b/docs/get_started/hello_world.md @@ -161,6 +161,6 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Basics I — Hello World, the Smallest App | [`Z2UI5_CL_SMP_APP_493`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_493.clas.abap) | +| Basics I — Hello World, the Smallest App | [`Z2UI5_CL_SMP_APP_493`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_493.clas.abap) | diff --git a/docs/resources/deprecations.md b/docs/resources/deprecations.md index abe732c8..8e9e9928 100644 --- a/docs/resources/deprecations.md +++ b/docs/resources/deprecations.md @@ -51,6 +51,10 @@ tell you what is coming if you do not. | `_bind_edit( )` | `_bind( )` | 1.142.0 | | `_bind( custom_mapper = … custom_filter = … )` | `omit_initial` / `omit_initial_paths` / `json`, or shape it in ABAP | 1.143.0 | | `_bind( view = … )` | omit the parameter | **removed**, *next release* | +| `cs_event-keyboard_set_mode` | the bound `inputMode` property of `z2ui5.cc.InputExt` — see [Soft Keyboard](../cookbook/browser_interaction/soft_keyboard) | **removed**, *next release* | +| `cs_event-nav_container_to` and its `nest_` / `nest2_` / `popup_` / `popover_` variants | `cs_event-control_by_id` with method `to`, the slot as the `view` parameter | **removed**, *next release* | +| the DDIC structure `Z2UI5_T_02` | name a type your own system has | **removed**, *next release* | +| `cs_event-image_editor_popup_close` | `_event( arg = `$controller.slotValue('POPUP','myEditor','getImagePngDataURL')` )` plus the app's own `popup_destroy( )` | **removed**, *next release* | | `z2ui5_if_app~check_sticky` / `check_initialized` | `set_session_stateful( )` / `check_on_init( )` | **removed**, 1.143.0 | | `set_nav_back( )` / `set_nav_routing( )` | `follow_up_action( )` | **removed**, 1.143.0 | | `cs_event-nav_to_route` | `nav_app_call( )` | **removed**, 1.143.0 | @@ -170,8 +174,8 @@ replacement has a sample that proves it: | What you used AJSON for | What to write instead | Sample | |---|---|---| -| Drop initial fields so the UI5 default applies (`create_empty_filter`) | `omit_initial`, or `omit_initial_paths` for single columns | [`Z2UI5_CL_SMP_APP_507`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_507.clas.abap) | -| Get a model **node** instead of a quoted string — under keys no ABAP component could be named after | `json = abap_true` | [`Z2UI5_CL_SMP_APP_509`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_509.clas.abap) | +| Drop initial fields so the UI5 default applies (`create_empty_filter`) | `omit_initial`, or `omit_initial_paths` for single columns | [`Z2UI5_CL_SMP_APP_507`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_507.clas.abap) | +| Get a model **node** instead of a quoted string — under keys no ABAP component could be named after | `json = abap_true` | [`Z2UI5_CL_SMP_APP_509`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_509.clas.abap) | | Anything else | Shape the value in ABAP before you bind it | — | ```abap @@ -220,22 +224,42 @@ compiles against. Both parameters are still evaluated and keep working — existing code does not break. -### The `nav_container_to` event family +### The `nav_container_to` event family — removed `cs_event-nav_container_to` and its `nest_` / `nest2_` / `popup_` / `popover_` -variants still work — the backend maps them onto `cs_event-control_by_id` with -method `to`. New code can address the container directly: +variants are **gone**; an app that names one fails at compile time. They never +reached the frontend as events of their own — the backend rewrote each of them +into `cs_event-control_by_id` with method `to` — so the migration is to write +that call, which additionally reaches every *other* method of a NavContainer +instead of the single `to` the constants could express: ```abap " old client->follow_up_action( val = client->cs_event-nav_container_to - t_arg = VALUE #( ( `page2` ) ) ). + t_arg = VALUE #( ( `navcon` ) ( `page2` ) ) ). " new client->follow_up_action( val = client->cs_event-control_by_id t_arg = VALUE #( ( `navcon` ) ( `to` ) ( `page2` ) ) ). ``` +A container in another view slot took a variant of its own; now it is the +`view` parameter: + +```abap +" old: cs_event-popup_nav_container_to +" new +client->follow_up_action( val = client->cs_event-control_by_id + view = client->cs_view-popup + t_arg = VALUE #( ( `navcon` ) ( `to` ) ( `page2` ) ) ). +``` + +One difference worth knowing when migrating the MAIN variant: `cs_view-main` +travels as the *empty* slot where the removed constant injected the literal +`MAIN`. An empty slot resolves the id across every open view, so it still finds +a container in the main view — it is wider, never narrower, and only an id that +exists in two open slots at once could tell the two apart. + `cs_event-z2ui5` sits in the same obsolete group. It calls a function you registered as a `z2ui5.*` global; passing the expression straight to `follow_up_action( )` is the same call without the indirection: @@ -370,9 +394,9 @@ that; it needs no flag. **Inbound — an event argument that arrives as JSON.** Write the few lines that read the field you need. `Z2UI5_CL_SMP_APP_327` -([`json_get_value`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_327.clas.abap), +([`json_get_value`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_327.clas.abap), one field of a flat object) and `Z2UI5_CL_SMP_APP_197` -([`json_get_values`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_197.clas.abap), +([`json_get_values`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_197.clas.abap), one property across an array of objects) are the pattern to copy: find `"":"` and take what stands up to the next quote. diff --git a/docs/tutorials/walkthrough/step-1.md b/docs/tutorials/walkthrough/step-1.md index da814047..a8badaa6 100644 --- a/docs/tutorials/walkthrough/step-1.md +++ b/docs/tutorials/walkthrough/step-1.md @@ -75,6 +75,6 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Basics I — Hello World, the Smallest App | [`Z2UI5_CL_SMP_APP_493`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_493.clas.abap) | +| Basics I — Hello World, the Smallest App | [`Z2UI5_CL_SMP_APP_493`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_493.clas.abap) | diff --git a/docs/tutorials/walkthrough/step-10.md b/docs/tutorials/walkthrough/step-10.md index e697c491..a30913b2 100644 --- a/docs/tutorials/walkthrough/step-10.md +++ b/docs/tutorials/walkthrough/step-10.md @@ -320,7 +320,7 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Full Example with sap.ui.table | [`Z2UI5_CL_SMP_APP_070`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_070.clas.abap) | -| Editable Cells, Add and Delete Rows | [`Z2UI5_CL_SMP_APP_011`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_011.clas.abap) | +| Full Example with sap.ui.table | [`Z2UI5_CL_SMP_APP_070`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_070.clas.abap) | +| Editable Cells, Add and Delete Rows | [`Z2UI5_CL_SMP_APP_011`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_011.clas.abap) | diff --git a/docs/tutorials/walkthrough/step-3.md b/docs/tutorials/walkthrough/step-3.md index 11f3ce7a..a929e52c 100644 --- a/docs/tutorials/walkthrough/step-3.md +++ b/docs/tutorials/walkthrough/step-3.md @@ -93,7 +93,7 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Basics III — Lifecycle: Init, Event, Navigated | [`Z2UI5_CL_SMP_APP_495`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_495.clas.abap) | -| Basics IV — Events, Views and Roundtrips | [`Z2UI5_CL_SMP_APP_004`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_004.clas.abap) | +| Basics III — Lifecycle: Init, Event, Navigated | [`Z2UI5_CL_SMP_APP_495`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_495.clas.abap) | +| Basics IV — Events, Views and Roundtrips | [`Z2UI5_CL_SMP_APP_004`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_004.clas.abap) | diff --git a/docs/tutorials/walkthrough/step-4.md b/docs/tutorials/walkthrough/step-4.md index 0ba8d949..a7879cbe 100644 --- a/docs/tutorials/walkthrough/step-4.md +++ b/docs/tutorials/walkthrough/step-4.md @@ -84,6 +84,6 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Basics II — Data Binding: Input and Button | [`Z2UI5_CL_SMP_APP_494`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_494.clas.abap) | +| Basics II — Data Binding: Input and Button | [`Z2UI5_CL_SMP_APP_494`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_494.clas.abap) | diff --git a/docs/tutorials/walkthrough/step-5.md b/docs/tutorials/walkthrough/step-5.md index fc82b96e..5f38ce0f 100644 --- a/docs/tutorials/walkthrough/step-5.md +++ b/docs/tutorials/walkthrough/step-5.md @@ -97,6 +97,6 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| StandardListItem, Highlight and Events | [`Z2UI5_CL_SMP_APP_048`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_048.clas.abap) | +| StandardListItem, Highlight and Events | [`Z2UI5_CL_SMP_APP_048`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_048.clas.abap) | diff --git a/docs/tutorials/walkthrough/step-6.md b/docs/tutorials/walkthrough/step-6.md index 5a54ea6f..42126e14 100644 --- a/docs/tutorials/walkthrough/step-6.md +++ b/docs/tutorials/walkthrough/step-6.md @@ -108,6 +108,6 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Extra Arguments with t_arg | [`Z2UI5_CL_SMP_APP_167`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_167.clas.abap) | +| Extra Arguments with t_arg | [`Z2UI5_CL_SMP_APP_167`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_167.clas.abap) | diff --git a/docs/tutorials/walkthrough/step-7.md b/docs/tutorials/walkthrough/step-7.md index 3aa3883f..45c1837c 100644 --- a/docs/tutorials/walkthrough/step-7.md +++ b/docs/tutorials/walkthrough/step-7.md @@ -142,6 +142,6 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Ways to Open a Dialog (A) | [`Z2UI5_CL_SMP_APP_012`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_012.clas.abap) | +| Ways to Open a Dialog (A) | [`Z2UI5_CL_SMP_APP_012`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_012.clas.abap) | diff --git a/docs/tutorials/walkthrough/step-8.md b/docs/tutorials/walkthrough/step-8.md index 3d5be4a6..073e2540 100644 --- a/docs/tutorials/walkthrough/step-8.md +++ b/docs/tutorials/walkthrough/step-8.md @@ -160,6 +160,6 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Editable Cells, Add and Delete Rows | [`Z2UI5_CL_SMP_APP_011`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_011.clas.abap) | +| Editable Cells, Add and Delete Rows | [`Z2UI5_CL_SMP_APP_011`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_011.clas.abap) | diff --git a/docs/tutorials/walkthrough/step-9.md b/docs/tutorials/walkthrough/step-9.md index 893a4f66..65c60127 100644 --- a/docs/tutorials/walkthrough/step-9.md +++ b/docs/tutorials/walkthrough/step-9.md @@ -188,6 +188,6 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| Full Example with sap.ui.table | [`Z2UI5_CL_SMP_APP_070`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_070.clas.abap) | +| Full Example with sap.ui.table | [`Z2UI5_CL_SMP_APP_070`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_070.clas.abap) | diff --git a/scripts/lib/vocabulary.txt b/scripts/lib/vocabulary.txt index 2e4ee71f..e15e6cf7 100644 --- a/scripts/lib/vocabulary.txt +++ b/scripts/lib/vocabulary.txt @@ -126,6 +126,7 @@ formatter formatters fullscreen geolocation +getter github gitignored globals