Add three new demo apps and reorganize catalog structure - #695
Merged
Conversation
New sample z2ui5_cl_demo_app_468 ("Navigation - Routing modes") demonstrates the
three modes of client->set_nav_routing( ) so the difference is observable with
the browser Back button: pick a mode, add some state (type / raise a counter),
open the detail page via nav_app_call, then press the browser Back button and
watch the page:
- default : no #/app route - browser Back leaves the app (in-app Back returns)
- fresh : route by class only - browser Back restarts the app empty
- keep : route by class + draft - browser Back restores the exact state
z2ui5_cl_demo_app_469 is the hidden detail page it navigates to (ZZZ helper).
Both live in 01/02 (framework use cases). Regenerated the overview catalogs;
the regeneration also synced pre-existing DESCRIPT drift (apps 139, 346, 421,
466).
Note: relies on set_nav_routing( mode ) / cs_nav_mode from abap2UI5; samples CI
lints against abap2UI5 main and will be green once that framework change lands.
New sample z2ui5_cl_demo_app_470 ("Popup - Aggregation binding") shows how to
bind a popup to one row of an aggregation with client->follow_up_action(
cs_event-bind_element, view = cs_view-popup ): the main table is bound to the
product aggregation, and pressing a row's "components" button opens a popup that
uses relative bindings only ({NAME}, {CATEGORY}, and the nested aggregation
{T_ITEM}). The element bind points the whole popup slot at /T_PRODUCT/<index>
(the index arrives as the event arg from the pressed control's binding context),
so the popup - including its component list's aggregation binding - resolves
against the selected product without copying any data into event args.
Regenerated the overview catalog: adds the app_470 tile and syncs the catalog
to the tree (the preceding file moves to src/01/01 had left it stale).
Turns the WIP SmartMultiInput sample into an end-to-end demo of the control's strength: define conditions on Product Type via the OData value help (contains, between, greater-than, exclude, several at once) and the backend translates the returned ranges into a real ABAP RANGE (do_search: Contains -> CP *x*, StartsWith/EndsWith -> CP, BT, GT/GE/LT/LE, exclude -> SIGN 'E') and filters a local demo product list with `... WHERE product_type IN <range>`. The derived SELECT-OPTIONS (SIGN/OPTION/LOW/HIGH) and the matching rows are both shown, plus a live match count. Removed the debug range-content message box; kept the ProductType / UI_PRODUCTLIST OData wiring. Also regenerated the overview catalog to mirror the current tree.
- app_470: vbox( class = ... ) -> vbox( ... ) (class is the PREFERRED parameter) - app_315: view_display( val = ... ) -> view_display( ... ) (val is the first, mandatory parameter) These only surface with full framework symbol resolution (CI), not in a formatting-only lint. The remaining ABAP_STANDARD errors on app_468 (cs_nav_mode / set_nav_routing) are the cross-repo dependency on abap2UI5#2476 and clear once that framework change is on main.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds three new demonstration applications showcasing advanced abap2UI5 features, reorganizes the demo app catalog structure, and updates class descriptions to reflect new categorization.
Key Changes
New Demo Applications
z2ui5_cl_demo_app_319 (moved to
src/00/00): Comprehensive SmartMultiInput demo showing how UI5 range conditions map to ABAP SELECT-OPTIONS. Demonstrates value help integration, multiple operators (contains, between, greater-than, exclude), and real-time filtering of local product data with derived range tables.z2ui5_cl_demo_app_468: Navigation routing modes demo illustrating three hash-routing strategies:
default: No URL route (original behavior)fresh: URL carries class only, browser Back restarts appkeep: URL carries app-state draft, browser Back restores exact statez2ui5_cl_demo_app_469: Detail page helper for routing demo, demonstrating navigation via
nav_app_call()and state restoration patterns.z2ui5_cl_demo_app_470: Popup aggregation binding demo showing element-binding of popup slots to selected table rows, enabling relative bindings (including nested aggregations) without copying data into event args.
Catalog and Organization Updates
Reorganized demo app catalog in
z2ui5_cl_demo_app_g00with new grouping:Updated class descriptions to reflect new categorization (e.g., "Input - Clipboard" → "Browser - Clipboard")
File Reorganization
src/00/00,src/00/02, andsrc/01/01directories per project folder scheme conventionsCode Updates
z2ui5_cl_demo_app_314with updated OData model references (BusinessPartnerSet instead of BookingSupplement)Implementation Details
client->set_nav_routing()andclient->nav_app_call()for browser history managementclient->follow_up_action()withcs_event-bind_elementfor context-aware popup bindinghttps://claude.ai/code/session_01A2ZwFMJkUWSnJjA4MPYRMk