From b878617dd275f9ab356455aef78c7bef00e98360 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 22 Sep 2026 19:10:26 +0000 Subject: [PATCH 1/3] Retire keyboard_set_mode and the nav_container_to family from the manual MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Three constants left abap2UI5 and the pages that taught them follow. **Soft Keyboard is rewritten around the control instead of the action.** `cs_event-keyboard_set_mode` wrote the HTML `inputmode` attribute straight onto the input's DOM node, and UI5 throws that DOM away on every re-render — so the mode was lost by whatever redrew the field next, a model update on the same input included, with nothing reporting it. `z2ui5.cc.InputExt` carries `inputMode` as a bound property, written on every rendering. The page now teaches that, says why it is a property rather than an action, and carries a warning block naming the removed constant so somebody arriving from an older app finds the migration rather than a page that no longer mentions what they are looking for. Its `samples:` frontmatter drops the deleted `z2ui5_cl_smp_app_352` and adds `_530`. **The nav_container_to section becomes a removal.** The five constants never reached the frontend as events of their own — the backend rewrote each into `cs_event-control_by_id` with method `to` — so the migration is to write that call, which additionally reaches every other NavContainer method. The slot variants become the `view` parameter, and the one behaviour difference is stated rather than glossed: `cs_view-main` travels as the EMPTY slot where the constant injected the literal `MAIN`, which resolves across every open view and is therefore wider, never narrower. Also: `cs_event-keyboard_set_mode` is gone from the `cs_event` block the frontend page reproduces, and the deprecations table gains three rows — the two event families and the DDIC structure `Z2UI5_T_02`, which abap2UI5 removed because nothing had ever named it. The generated API reference (`resources/api.md`, `public/api/client-api.json`) is deliberately untouched: `check:api-reference` regenerates it from `z2ui5_if_client` on `main` and compares byte for byte, so it updates itself when the framework change merges. Editing it by hand would fail that gate. All fifteen gates pass except two that cannot run in this environment and say so themselves: `check:design` has no playground checkout to compare against, and `npm run build` fetches the playground sitemap, which this sandbox's proxy answers with 403. `docs:build`, `check:cross-site`, `check:samples`, `check:api-names` and `check:api-reference` all pass. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_013QGx7T2k1n42yrvPfraLZW --- .../browser_interaction/soft_keyboard.md | 140 ++++++++++-------- docs/cookbook/event_navigation/frontend.md | 1 - .../event_navigation/navigation/hash.md | 4 +- docs/resources/deprecations.md | 31 +++- 4 files changed, 106 insertions(+), 70 deletions(-) diff --git a/docs/cookbook/browser_interaction/soft_keyboard.md b/docs/cookbook/browser_interaction/soft_keyboard.md index 605e98ee..267c58d1 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) | +| Scan Field with Submit (InputExt) (A,C) | [`Z2UI5_CL_SMP_APP_530`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_530.clas.abap) | diff --git a/docs/cookbook/event_navigation/frontend.md b/docs/cookbook/event_navigation/frontend.md index fbf3a60d..351a14bc 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`, diff --git a/docs/cookbook/event_navigation/navigation/hash.md b/docs/cookbook/event_navigation/navigation/hash.md index b55226cf..9bcc23a6 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) | +| Routing Mode FRESH (a New Instance) | [`Z2UI5_CL_SMP_APP_468`](https://github.com/abap2UI5/samples/blob/main/src/01/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/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) | diff --git a/docs/resources/deprecations.md b/docs/resources/deprecations.md index abe732c8..30527ebb 100644 --- a/docs/resources/deprecations.md +++ b/docs/resources/deprecations.md @@ -51,6 +51,9 @@ 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* | | `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 | @@ -220,22 +223,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: From cd2d4542bb49a853f16a5fc013e5ffc49c8a4bb4 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 22 Sep 2026 19:39:48 +0000 Subject: [PATCH 2/3] Document $controller.slotValue( ), and record the image-editor constant's removal MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The backend-event page had three ways to read something into an event argument — the control that fired, the event object, a bound model property — and no way to reach a *different* control. A new section says so and gives the form: `$controller.slotValue( slot, id, getter )`, with the dialog whose value the closing button has to carry as the example it exists for. Two things the section is explicit about, because both are easy to get wrong: the getter takes no arguments (calling a control is `cs_event-control_by_id`, which has a whitelist in front of it), and the helper never throws — an argument expression is evaluated while UI5 dispatches the handler, so one that throws loses the whole event rather than just the value. `cs_event-image_editor_popup_close` is added to the deprecations table with what replaces it. `getter` goes on the project vocabulary list: a word a developer writes that Hunspell does not carry. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_013QGx7T2k1n42yrvPfraLZW --- docs/cookbook/event_navigation/backend.md | 47 +++++++++++++++++++++++ docs/resources/deprecations.md | 1 + scripts/lib/vocabulary.txt | 1 + 3 files changed, 49 insertions(+) diff --git a/docs/cookbook/event_navigation/backend.md b/docs/cookbook/event_navigation/backend.md index e3c9289f..1a0112b0 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 diff --git a/docs/resources/deprecations.md b/docs/resources/deprecations.md index 30527ebb..cb343cc2 100644 --- a/docs/resources/deprecations.md +++ b/docs/resources/deprecations.md @@ -54,6 +54,7 @@ tell you what is coming if you do not. | `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 | 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 From 7e4702de9d951906871af333fa4efa4f1c243433 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 22 Sep 2026 20:07:17 +0000 Subject: [PATCH 3/3] Point every sample link at the flattened src/ of abap2UI5/samples abap2UI5/samples moved every sample out of `src/01` into `src/` and deleted `src/00` with it, so a link to `blob/main/src/01/.clas.abap` is a 404 the moment that lands. `npm run link:samples` rewrote the 48 generated "Working Samples" rows from the sibling checkout; the five hand-written prose links (one in the UI5 insight, four in the deprecations page) are fixed here by hand, which is what `check:samples` reported them as. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_013QGx7T2k1n42yrvPfraLZW --- .../01-somewhere-on-the-way-to-ui5.md | 2 +- .../cookbook/browser_interaction/clipboard.md | 4 ++-- docs/cookbook/browser_interaction/focus.md | 6 ++--- .../browser_interaction/keyboard_shortcuts.md | 2 +- .../cookbook/browser_interaction/scrolling.md | 4 ++-- .../browser_interaction/soft_keyboard.md | 4 ++-- docs/cookbook/browser_interaction/timer.md | 4 ++-- docs/cookbook/browser_interaction/title.md | 4 ++-- .../browser_interaction/url_handling.md | 6 ++--- docs/cookbook/device_capabilities/camera.md | 2 +- .../device_capabilities/geolocation.md | 2 +- docs/cookbook/device_capabilities/info.md | 4 ++-- docs/cookbook/device_capabilities/pdf.md | 2 +- .../device_capabilities/upload_download.md | 6 ++--- docs/cookbook/event_navigation/backend.md | 4 ++-- docs/cookbook/event_navigation/exception.md | 4 ++-- docs/cookbook/event_navigation/frontend.md | 22 +++++++++---------- docs/cookbook/event_navigation/life_cycle.md | 4 ++-- .../event_navigation/navigation/app_state.md | 2 +- .../event_navigation/navigation/hash.md | 6 ++--- .../event_navigation/navigation/inner_app.md | 6 ++--- docs/cookbook/expert_more/snippets.md | 6 ++--- docs/cookbook/expert_more/value_help.md | 4 ++-- docs/cookbook/model/binding.md | 10 ++++----- docs/cookbook/model/device_model.md | 2 +- docs/cookbook/model/expression_binding.md | 2 +- docs/cookbook/model/formatter.md | 12 +++++----- docs/cookbook/model/size_limit.md | 2 +- docs/cookbook/model/tables.md | 20 ++++++++--------- docs/cookbook/model/trees.md | 8 +++---- docs/cookbook/popup_popover/popover.md | 12 +++++----- docs/cookbook/popup_popover/popup.md | 10 ++++----- docs/cookbook/translation_messages/logging.md | 2 +- docs/cookbook/translation_messages/message.md | 16 +++++++------- .../translation_messages/translation_i18n.md | 2 +- .../troubleshooting/common_failures.md | 2 +- docs/cookbook/view/definition.md | 6 ++--- docs/cookbook/view/nested_views.md | 10 ++++----- docs/cookbook/view/xml_templating.md | 4 ++-- docs/get_started/hello_world.md | 2 +- docs/resources/deprecations.md | 8 +++---- docs/tutorials/walkthrough/step-1.md | 2 +- docs/tutorials/walkthrough/step-10.md | 4 ++-- docs/tutorials/walkthrough/step-3.md | 4 ++-- docs/tutorials/walkthrough/step-4.md | 2 +- docs/tutorials/walkthrough/step-5.md | 2 +- docs/tutorials/walkthrough/step-6.md | 2 +- docs/tutorials/walkthrough/step-7.md | 2 +- docs/tutorials/walkthrough/step-8.md | 2 +- docs/tutorials/walkthrough/step-9.md | 2 +- 50 files changed, 131 insertions(+), 131 deletions(-) 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 267c58d1..2d099b47 100644 --- a/docs/cookbook/browser_interaction/soft_keyboard.md +++ b/docs/cookbook/browser_interaction/soft_keyboard.md @@ -99,7 +99,7 @@ unless its row names another of the three sample repositories — pull that repo | Sample | Class | |---|---| -| 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) | -| Scan Field with Submit (InputExt) (A,C) | [`Z2UI5_CL_SMP_APP_530`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_530.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 1a0112b0..a39119d1 100644 --- a/docs/cookbook/event_navigation/backend.md +++ b/docs/cookbook/event_navigation/backend.md @@ -236,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 351a14bc..45e8d958 100644 --- a/docs/cookbook/event_navigation/frontend.md +++ b/docs/cookbook/event_navigation/frontend.md @@ -345,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 9bcc23a6..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 (a New Instance) | [`Z2UI5_CL_SMP_APP_468`](https://github.com/abap2UI5/samples/blob/main/src/01/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/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 cb343cc2..8e9e9928 100644 --- a/docs/resources/deprecations.md +++ b/docs/resources/deprecations.md @@ -174,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 @@ -394,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) |