diff --git a/package-lock.json b/package-lock.json
index 40747b3f..a65f5111 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,16 +9,16 @@
"version": "1.0.0",
"license": "MIT",
"devDependencies": {
- "@abaplint/cli": "^2.103.6",
+ "@abaplint/cli": "^2.103.7",
"@abaplint/database-sqlite": "^2.7.119",
"@abaplint/runtime": "^2.7.135",
"@abaplint/transpiler-cli": "^2.7.135"
}
},
"node_modules/@abaplint/cli": {
- "version": "2.103.6",
- "resolved": "https://registry.npmjs.org/@abaplint/cli/-/cli-2.103.6.tgz",
- "integrity": "sha512-htiMy5bLmN4f1+3jgmVeUFYZcjD3/qC381xl+8TuRapcFwKHCRY/uxF+6f1d+0NpWjW23uZSYs1aFz54n0Taig==",
+ "version": "2.103.7",
+ "resolved": "https://registry.npmjs.org/@abaplint/cli/-/cli-2.103.7.tgz",
+ "integrity": "sha512-cIf4PBrvk85SZ+EZnKQOEVXe9G0SWKT03K2pp/+P6mCO08bw4sRi0aNeJsMaSp9/iwuWqno6J7s01c0Ua6uUGg==",
"dev": true,
"bin": {
"abaplint": "abaplint"
@@ -87,9 +87,9 @@
},
"dependencies": {
"@abaplint/cli": {
- "version": "2.103.6",
- "resolved": "https://registry.npmjs.org/@abaplint/cli/-/cli-2.103.6.tgz",
- "integrity": "sha512-htiMy5bLmN4f1+3jgmVeUFYZcjD3/qC381xl+8TuRapcFwKHCRY/uxF+6f1d+0NpWjW23uZSYs1aFz54n0Taig==",
+ "version": "2.103.7",
+ "resolved": "https://registry.npmjs.org/@abaplint/cli/-/cli-2.103.7.tgz",
+ "integrity": "sha512-cIf4PBrvk85SZ+EZnKQOEVXe9G0SWKT03K2pp/+P6mCO08bw4sRi0aNeJsMaSp9/iwuWqno6J7s01c0Ua6uUGg==",
"dev": true
},
"@abaplint/database-sqlite": {
diff --git a/package.json b/package.json
index cde45834..6be4337b 100644
--- a/package.json
+++ b/package.json
@@ -19,7 +19,7 @@
},
"homepage": "https://github.com/abap2UI5/abap2UI5#readme",
"devDependencies": {
- "@abaplint/cli": "^2.103.6",
+ "@abaplint/cli": "^2.103.7",
"@abaplint/database-sqlite": "^2.7.119",
"@abaplint/runtime": "^2.7.135",
"@abaplint/transpiler-cli": "^2.7.135"
diff --git a/src/00/package.devc.xml b/src/00/package.devc.xml
index 99f8635d..301008ed 100644
--- a/src/00/package.devc.xml
+++ b/src/00/package.devc.xml
@@ -3,7 +3,7 @@
- abap2UI5 - framework
+ abap2UI5 - obsolet
diff --git a/src/01/00/00/z2ui5_cl_app_hello_world_test.clas.testclasses.abap b/src/01/00/00/z2ui5_cl_app_hello_world_test.clas.testclasses.abap
deleted file mode 100644
index 5d55af18..00000000
--- a/src/01/00/00/z2ui5_cl_app_hello_world_test.clas.testclasses.abap
+++ /dev/null
@@ -1,19 +0,0 @@
-CLASS ltcl_unit_test DEFINITION FINAL FOR TESTING
- DURATION short
- RISK LEVEL dangerous.
-
- PRIVATE SECTION.
- METHODS first_test FOR TESTING RAISING cx_static_check.
-
-ENDCLASS.
-
-
-CLASS ltcl_unit_test IMPLEMENTATION.
-
- METHOD first_test.
-
- DATA(lo_app) = NEW z2ui5_cl_app_hello_world_test( ) ##NEEDED.
-
- ENDMETHOD.
-
-ENDCLASS.
diff --git a/src/01/00/00/z2ui5_cl_app_hello_world_test.clas.xml b/src/01/00/00/z2ui5_cl_app_hello_world_test.clas.xml
deleted file mode 100644
index c8ff07fb..00000000
--- a/src/01/00/00/z2ui5_cl_app_hello_world_test.clas.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
- Z2UI5_CL_APP_HELLO_WORLD_TEST
- E
- abap2UI5 - hello world demo test
- 1
- X
- X
- X
- X
-
-
-
-
diff --git a/src/01/00/z2ui5_cl_view.clas.abap b/src/01/00/z2ui5_cl_view.clas.abap
deleted file mode 100644
index a7ef7afe..00000000
--- a/src/01/00/z2ui5_cl_view.clas.abap
+++ /dev/null
@@ -1,144 +0,0 @@
-CLASS z2ui5_cl_view DEFINITION
- PUBLIC
- CREATE PUBLIC .
-
- PUBLIC SECTION.
-
-
- METHODS to_parent
- RETURNING
- VALUE(result) TYPE REF TO z2ui5_cl_view.
- METHODS to_root
- RETURNING
- VALUE(result) TYPE REF TO z2ui5_cl_view.
- METHODS to_previous
- RETURNING
- VALUE(result) TYPE REF TO z2ui5_cl_view.
-
- METHODS stringify
- RETURNING
- VALUE(result) TYPE string.
-
- METHODS add_property
- IMPORTING
- val TYPE z2ui5_if_client=>ty_s_name_value OPTIONAL
- RETURNING
- VALUE(result) TYPE REF TO z2ui5_cl_view.
-
- METHODS add
- IMPORTING
- name TYPE clike
- ns TYPE clike OPTIONAL
- t_prop TYPE z2ui5_if_client=>ty_t_name_value OPTIONAL
- RETURNING
- VALUE(result) TYPE REF TO z2ui5_cl_view.
- METHODS ns_m
- RETURNING
- VALUE(result) TYPE REF TO z2ui5_cl_view_m.
- METHODS ns_ui
- RETURNING
- VALUE(result) TYPE REF TO z2ui5_cl_view_ui.
- METHODS ns_zcc
- RETURNING
- VALUE(result) TYPE REF TO z2ui5_cl_view_ui.
-
- PROTECTED SECTION.
-
- DATA mt_prop TYPE z2ui5_if_client=>ty_t_name_value.
- DATA mv_name TYPE string.
- DATA mv_ns TYPE string.
- DATA mo_root TYPE REF TO z2ui5_cl_view.
- DATA mo_previous TYPE REF TO z2ui5_cl_view.
- DATA mo_parent TYPE REF TO z2ui5_cl_view.
- DATA mt_child TYPE STANDARD TABLE OF REF TO z2ui5_cl_view WITH EMPTY KEY.
-
- CLASS-METHODS b2json
- IMPORTING
- val TYPE any
- RETURNING
- VALUE(result) TYPE string.
-
- PRIVATE SECTION.
-ENDCLASS.
-
-
-
-CLASS z2ui5_cl_view IMPLEMENTATION.
-
-
- METHOD b2json.
-
-* IF val.
- result = COND #( WHEN val = abap_true THEN `true` ELSE `false` ).
-* ELSE.
- result = val.
-* ENDIF.
-
- ENDMETHOD.
-
-
- METHOD add_property.
-
- INSERT val INTO TABLE mt_prop.
- result = me.
-
- ENDMETHOD.
-
- METHOD add.
-
- DATA(result2) = NEW z2ui5_cl_view( ).
- result2->mv_name = name.
- result2->mv_ns = ns.
- result2->mt_prop = t_prop.
- result2->mo_parent = me.
- result2->mo_root = mo_root.
- INSERT result2 INTO TABLE mt_child.
-
- mo_root->mo_previous = result2.
- result = result2.
-
- ENDMETHOD.
-
- METHOD ns_m.
-
- result = NEW #( ).
-
- ENDMETHOD.
-
- METHOD ns_ui.
-
- result = NEW #( ).
-
- ENDMETHOD.
-
- METHOD ns_zcc.
-
- result = NEW #( ).
-
- ENDMETHOD.
-
- METHOD stringify.
-
- result = ``.
-
- ENDMETHOD.
-
- METHOD to_parent.
-
- result = mo_parent.
-
- ENDMETHOD.
-
- METHOD to_previous.
-
- result = mo_previous.
-
- ENDMETHOD.
-
- METHOD to_root.
-
- result = mo_root.
-
- ENDMETHOD.
-
-ENDCLASS.
diff --git a/src/01/00/z2ui5_cl_view_m.clas.abap b/src/01/00/z2ui5_cl_view_m.clas.abap
deleted file mode 100644
index 698482ed..00000000
--- a/src/01/00/z2ui5_cl_view_m.clas.abap
+++ /dev/null
@@ -1,243 +0,0 @@
-CLASS z2ui5_cl_view_m DEFINITION
- PUBLIC
- FINAL
- CREATE PUBLIC INHERITING FROM z2ui5_cl_view.
-
- PUBLIC SECTION.
-
- METHODS input
- IMPORTING
- id TYPE clike OPTIONAL
- value TYPE clike OPTIONAL
- placeholder TYPE clike OPTIONAL
- type TYPE clike OPTIONAL
- showclearicon TYPE clike OPTIONAL
- valuestate TYPE clike OPTIONAL
- valuestatetext TYPE clike OPTIONAL
- showtablesuggestionvaluehelp TYPE clike OPTIONAL
- description TYPE clike OPTIONAL
- editable TYPE clike OPTIONAL
- enabled TYPE clike OPTIONAL
- suggestionitems TYPE clike OPTIONAL
- suggestionrows TYPE clike OPTIONAL
- showsuggestion TYPE clike OPTIONAL
- showvaluehelp TYPE clike OPTIONAL
- valuehelprequest TYPE clike OPTIONAL
- required TYPE clike OPTIONAL
- suggest TYPE clike OPTIONAL
- class TYPE clike OPTIONAL
- visible TYPE clike OPTIONAL
- submit TYPE clike OPTIONAL
- valueliveupdate TYPE clike OPTIONAL
- autocomplete TYPE clike OPTIONAL
- maxsuggestionwidth TYPE clike OPTIONAL
- fieldwidth TYPE clike OPTIONAL
- valuehelponly TYPE clike OPTIONAL
- width TYPE clike OPTIONAL
- change TYPE clike OPTIONAL
- valuehelpiconsrc TYPE clike OPTIONAL
- textformatter TYPE clike OPTIONAL
- textformatmode TYPE clike OPTIONAL
- maxlength TYPE clike OPTIONAL
- startsuggestion TYPE clike OPTIONAL
- enablesuggestionshighlighting TYPE clike OPTIONAL
- enabletableautopopinmode TYPE clike OPTIONAL
- PREFERRED PARAMETER value
- RETURNING
- VALUE(result) TYPE REF TO z2ui5_cl_view_m.
-
- METHODS page
- IMPORTING
- title TYPE clike OPTIONAL
- navbuttonpress TYPE clike OPTIONAL
- shownavbutton TYPE clike OPTIONAL
- showheader TYPE clike OPTIONAL
- id TYPE clike OPTIONAL
- class TYPE clike OPTIONAL
- backgrounddesign TYPE clike OPTIONAL
- contentonlybusy TYPE clike OPTIONAL
- enablescrolling TYPE clike OPTIONAL
- navbuttontooltip TYPE clike OPTIONAL
- floatingfooter TYPE clike OPTIONAL
- showfooter TYPE clike OPTIONAL
- showsubheader TYPE clike OPTIONAL
- titlealignment TYPE clike OPTIONAL
- titlelevel TYPE clike OPTIONAL
- PREFERRED PARAMETER title
- RETURNING
- VALUE(result) TYPE REF TO z2ui5_cl_view_m.
-
- METHODS shell
- RETURNING
- VALUE(result) TYPE REF TO z2ui5_cl_view_m.
-
- METHODS title
- IMPORTING
- text TYPE clike OPTIONAL
- wrapping TYPE clike OPTIONAL
- level TYPE clike OPTIONAL
- PREFERRED PARAMETER text
- RETURNING
- VALUE(result) TYPE REF TO z2ui5_cl_view_m.
-
- METHODS button
- IMPORTING
- text TYPE clike OPTIONAL
- icon TYPE clike OPTIONAL
- type TYPE clike OPTIONAL
- enabled TYPE clike OPTIONAL
- visible TYPE clike OPTIONAL
- press TYPE clike OPTIONAL
- class TYPE clike OPTIONAL
- id TYPE clike OPTIONAL
- tooltip TYPE clike OPTIONAL
- width TYPE clike OPTIONAL
- iconfirst TYPE clike OPTIONAL
- icondensityaware TYPE clike OPTIONAL
- ariahaspopup TYPE clike OPTIONAL
- activeicon TYPE clike OPTIONAL
- accessiblerole TYPE clike OPTIONAL
- textdirection TYPE clike OPTIONAL
- RETURNING
- VALUE(result) TYPE REF TO z2ui5_cl_view_m.
-
- METHODS label
- IMPORTING
- text TYPE clike OPTIONAL
- labelfor TYPE clike OPTIONAL
- design TYPE clike OPTIONAL
- displayonly TYPE clike OPTIONAL
- required TYPE clike OPTIONAL
- showcolon TYPE clike OPTIONAL
- textalign TYPE clike OPTIONAL
- textdirection TYPE clike OPTIONAL
- valign TYPE clike OPTIONAL
- width TYPE clike OPTIONAL
- wrapping TYPE clike OPTIONAL
- wrappingtype TYPE clike OPTIONAL
- id TYPE clike OPTIONAL
- class TYPE clike OPTIONAL
- PREFERRED PARAMETER text
- RETURNING
- VALUE(result) TYPE REF TO z2ui5_cl_view_m.
-
-
- PROTECTED SECTION.
- PRIVATE SECTION.
-ENDCLASS.
-
-
-CLASS z2ui5_cl_view_m IMPLEMENTATION.
- METHOD button.
- result = me.
- add( name = `Button`
- t_prop = VALUE #( ( n = `press` v = press )
- ( n = `text` v = text )
- ( n = `enabled` v = b2json( enabled ) )
- ( n = `visible` v = b2json( visible ) )
- ( n = `iconDensityAware` v = b2json( icondensityaware ) )
- ( n = `iconFirst` v = b2json( iconfirst ) )
- ( n = `icon` v = icon )
- ( n = `type` v = type )
- ( n = `id` v = id )
- ( n = `width` v = width )
- ( n = `tooltip` v = tooltip )
- ( n = `textDirection` v = textdirection )
- ( n = `accessibleRole` v = accessiblerole )
- ( n = `activeIcon` v = activeicon )
- ( n = `ariaHasPopup` v = ariahaspopup )
- ( n = `class` v = class ) ) ).
- ENDMETHOD.
-
- METHOD label.
- result = me.
- add( name = `Label`
- t_prop = VALUE #( ( n = `text` v = text )
- ( n = `displayOnly` v = b2json( displayonly ) )
- ( n = `required` v = b2json( required ) )
- ( n = `showColon` v = b2json( showcolon ) )
- ( n = `textAlign` v = textalign )
- ( n = `textDirection` v = textdirection )
- ( n = `vAlign` v = valign )
- ( n = `width` v = width )
- ( n = `wrapping` v = b2json( wrapping ) )
- ( n = `wrappingType` v = wrappingtype )
- ( n = `design` v = design )
- ( n = `id` v = id )
- ( n = `class` v = class )
- ( n = `labelFor` v = labelfor ) ) ).
- ENDMETHOD.
-
- METHOD title.
- result = me.
- add( name = `Title`
- t_prop = VALUE #( ( n = `text` v = text )
- ( n = `wrapping` v = b2json( wrapping ) )
- ( n = `level` v = level ) ) ).
- ENDMETHOD.
-
- METHOD page.
-
- result = add( name = `Page`
- t_prop = VALUE #( ( n = `title` v = title )
- ( n = `showNavButton` v = b2json( shownavbutton ) )
- ( n = `navButtonPress` v = navbuttonpress )
- ( n = `showHeader` v = b2json( showheader ) )
- ( n = `class` v = class )
- ( n = `backgroundDesign` v = backgrounddesign )
- ( n = `navButtonTooltip` v = navbuttontooltip )
- ( n = `titleAlignment` v = titlealignment )
- ( n = `titleLevel` v = titlelevel )
- ( n = `contentOnlyBusy` v = b2json( contentonlybusy ) )
- ( n = `enableScrolling` v = b2json( enablescrolling ) )
- ( n = `floatingFooter` v = b2json( floatingfooter ) )
- ( n = `showFooter` v = b2json( showfooter ) )
- ( n = `showSubHeader` v = b2json( showsubheader ) )
- ( n = `id` v = id ) ) )->ns_m( ).
-
- ENDMETHOD.
-
- METHOD shell.
- result = add( `Shell` )->ns_m( ).
- ENDMETHOD.
-
- METHOD input.
- result = me.
- add( name = `Input`
- t_prop = VALUE #( ( n = `id` v = id )
- ( n = `placeholder` v = placeholder )
- ( n = `type` v = type )
- ( n = `maxLength` v = maxlength )
- ( n = `showClearIcon` v = b2json( showclearicon ) )
- ( n = `description` v = description )
- ( n = `editable` v = b2json( editable ) )
- ( n = `enabled` v = b2json( enabled ) )
- ( n = `visible` v = b2json( visible ) )
- ( n = `enableTableAutoPopinMode` v = b2json( enabletableautopopinmode ) )
- ( n = `enableSuggestionsHighlighting` v = b2json( enablesuggestionshighlighting ) )
- ( n = `showTableSuggestionValueHelp` v = b2json( showtablesuggestionvaluehelp ) )
- ( n = `valueState` v = valuestate )
- ( n = `valueStateText` v = valuestatetext )
- ( n = `value` v = value )
- ( n = `required` v = b2json( required ) )
- ( n = `suggest` v = suggest )
- ( n = `suggestionItems` v = suggestionitems )
- ( n = `suggestionRows` v = suggestionrows )
- ( n = `showSuggestion` v = b2json( showsuggestion ) )
- ( n = `valueHelpRequest` v = valuehelprequest )
- ( n = `autocomplete` v = b2json( autocomplete ) )
- ( n = `valueLiveUpdate` v = b2json( valueliveupdate ) )
- ( n = `submit` v = b2json( submit ) )
- ( n = `showValueHelp` v = b2json( showvaluehelp ) )
- ( n = `valueHelpOnly` v = b2json( valuehelponly ) )
- ( n = `class` v = class )
- ( n = `change` v = change )
- ( n = `maxSuggestionWidth` v = maxsuggestionwidth )
- ( n = `width` v = width )
- ( n = `textFormatter` v = textformatter )
- ( n = `startSuggestion` v = startsuggestion )
- ( n = `valueHelpIconSrc` v = valuehelpiconsrc )
- ( n = `textFormatMode` v = textformatmode )
- ( n = `fieldWidth` v = fieldwidth ) ) ).
- ENDMETHOD.
-ENDCLASS.
diff --git a/src/01/00/z2ui5_cl_view_suite.clas.abap b/src/01/00/z2ui5_cl_view_suite.clas.abap
deleted file mode 100644
index 74b531ce..00000000
--- a/src/01/00/z2ui5_cl_view_suite.clas.abap
+++ /dev/null
@@ -1,17 +0,0 @@
-CLASS z2ui5_cl_view_suite DEFINITION
- PUBLIC
- FINAL
- CREATE PUBLIC INHERITING FROM z2ui5_cl_view.
-
- PUBLIC SECTION.
-
- PROTECTED SECTION.
- PRIVATE SECTION.
-ENDCLASS.
-
-
-
-CLASS z2ui5_cl_view_suite IMPLEMENTATION.
-
-
-ENDCLASS.
diff --git a/src/01/00/z2ui5_cl_view_ui.clas.abap b/src/01/00/z2ui5_cl_view_ui.clas.abap
deleted file mode 100644
index 014965a9..00000000
--- a/src/01/00/z2ui5_cl_view_ui.clas.abap
+++ /dev/null
@@ -1,58 +0,0 @@
-CLASS z2ui5_cl_view_ui DEFINITION
- PUBLIC
- FINAL
- CREATE PUBLIC INHERITING FROM z2ui5_cl_view.
-
- PUBLIC SECTION.
-
- METHODS simpleform
- IMPORTING
- !title TYPE clike OPTIONAL
- !layout TYPE clike OPTIONAL
- !editable TYPE clike OPTIONAL
- !columnsxl TYPE clike OPTIONAL
- !columnsl TYPE clike OPTIONAL
- !columnsm TYPE clike OPTIONAL
- !id TYPE clike OPTIONAL
- PREFERRED PARAMETER title
- RETURNING
- VALUE(result) TYPE REF TO z2ui5_cl_view_ui.
-
- METHODS content
- RETURNING
- VALUE(result) TYPE REF TO z2ui5_cl_view_ui.
-
- DATA _view TYPE REF TO z2ui5_cl_view.
-
- PROTECTED SECTION.
- PRIVATE SECTION.
-ENDCLASS.
-
-
-
-CLASS z2ui5_cl_view_ui IMPLEMENTATION.
-
- METHOD content.
-
- result = _view->add(
- ns = `form`
- name = `content` )->ns_ui( ).
-
- ENDMETHOD.
-
- METHOD simpleform.
-
- result = add(
- name = `SimpleForm`
- ns = `form`
- t_prop = VALUE #( ( n = `title` v = title )
- ( n = `layout` v = layout )
- ( n = `id` v = id )
- ( n = `columnsXL` v = columnsxl )
- ( n = `columnsL` v = columnsl )
- ( n = `columnsM` v = columnsm )
- ( n = `editable` v = b2json( editable ) ) ) )->ns_ui( ).
-
- ENDMETHOD.
-
-ENDCLASS.
diff --git a/src/01/00/z2ui5_cl_view_zcc.clas.abap b/src/01/00/z2ui5_cl_view_zcc.clas.abap
deleted file mode 100644
index 8a9fb61f..00000000
--- a/src/01/00/z2ui5_cl_view_zcc.clas.abap
+++ /dev/null
@@ -1,18 +0,0 @@
-CLASS z2ui5_cl_view_zcc DEFINITION
- PUBLIC
- FINAL
- CREATE PUBLIC INHERITING FROM z2ui5_cl_view.
-
- PUBLIC SECTION.
-
-
- PROTECTED SECTION.
- PRIVATE SECTION.
-ENDCLASS.
-
-
-
-CLASS z2ui5_cl_view_zcc IMPLEMENTATION.
-
-
-ENDCLASS.
diff --git a/src/01/00/z2ui5_cl_view_zcc.clas.xml b/src/01/00/z2ui5_cl_view_zcc.clas.xml
deleted file mode 100644
index 531b82d7..00000000
--- a/src/01/00/z2ui5_cl_view_zcc.clas.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- Z2UI5_CL_VIEW_ZCC
- E
- namespace z2ui5.zcc (custom)
- 1
- X
- X
- X
-
-
-
-
diff --git a/src/01/package.devc.xml b/src/01/package.devc.xml
index acd6e686..3a88f215 100644
--- a/src/01/package.devc.xml
+++ b/src/01/package.devc.xml
@@ -3,7 +3,7 @@
- abap2UI5 - custom controls
+ abap2UI5 - framework (fw)
diff --git a/src/00/z2ui5_cl_fw_app.clas.abap b/src/01/z2ui5_cl_fw_app.clas.abap
similarity index 88%
rename from src/00/z2ui5_cl_fw_app.clas.abap
rename to src/01/z2ui5_cl_fw_app.clas.abap
index e7e28d8f..4ae31325 100644
--- a/src/00/z2ui5_cl_fw_app.clas.abap
+++ b/src/01/z2ui5_cl_fw_app.clas.abap
@@ -1,15 +1,15 @@
-class Z2UI5_CL_FW_APP definition
- public
- final
- create protected .
+CLASS z2ui5_cl_fw_app DEFINITION
+ PUBLIC
+ FINAL
+ CREATE PROTECTED .
-public section.
+ PUBLIC SECTION.
- interfaces Z2UI5_IF_APP .
- interfaces IF_SERIALIZABLE_OBJECT .
+ INTERFACES z2ui5_if_app .
+ INTERFACES if_serializable_object .
- data:
- BEGIN OF ms_home,
+ DATA:
+ BEGIN OF ms_home,
btn_text TYPE string,
btn_event_id TYPE string,
btn_icon TYPE string,
@@ -18,30 +18,30 @@ public section.
class_value_state_text TYPE string,
class_editable TYPE abap_bool VALUE abap_true,
END OF ms_home .
- data CLIENT type ref to Z2UI5_IF_CLIENT .
- data MV_CHECK_INITIALIZED type ABAP_BOOL .
- data MV_CHECK_DEMO type ABAP_BOOL .
- data MX_ERROR type ref to CX_ROOT .
+ DATA client TYPE REF TO z2ui5_if_client .
+ DATA mv_check_initialized TYPE abap_bool .
+ DATA mv_check_demo TYPE abap_bool .
+ DATA mx_error TYPE REF TO cx_root .
- class-methods FACTORY_START
- returning
- value(RESULT) type ref to Z2UI5_CL_FW_APP .
- class-methods FACTORY_ERROR
- importing
- !ERROR type ref to CX_ROOT
- returning
- value(RESULT) type ref to Z2UI5_CL_FW_APP .
- methods Z2UI5_ON_INIT .
- methods Z2UI5_ON_EVENT .
- methods VIEW_DISPLAY_ERROR .
- methods VIEW_DISPLAY_START .
+ CLASS-METHODS factory_start
+ RETURNING
+ VALUE(result) TYPE REF TO z2ui5_cl_fw_app .
+ CLASS-METHODS factory_error
+ IMPORTING
+ !error TYPE REF TO cx_root
+ RETURNING
+ VALUE(result) TYPE REF TO z2ui5_cl_fw_app .
+ METHODS z2ui5_on_init .
+ METHODS z2ui5_on_event .
+ METHODS view_display_error .
+ METHODS view_display_start .
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
-CLASS Z2UI5_CL_FW_APP IMPLEMENTATION.
+CLASS z2ui5_cl_fw_app IMPLEMENTATION.
METHOD factory_error.
@@ -104,7 +104,7 @@ CLASS Z2UI5_CL_FW_APP IMPLEMENTATION.
)->page( shownavbutton = abap_false ).
page->header_content(
- )->title( `abap2UI5 - Developing UI5 Apps in pure ABAP`
+ )->title( `abap2UI5 - Developing UI5 Apps in Pure ABAP`
)->toolbar_spacer(
)->link( text = `SCN`
target = `_blank`
@@ -124,7 +124,7 @@ CLASS Z2UI5_CL_FW_APP IMPLEMENTATION.
)->content( `form` ).
content->label( `Step 1`
- )->text( `Create a global class in your abap system`
+ )->text( `Create a new class in your abap system`
)->label( `Step 2`
)->text( `Add the interface: Z2UI5_IF_APP`
)->label( `Step 3`
@@ -162,7 +162,7 @@ CLASS Z2UI5_CL_FW_APP IMPLEMENTATION.
type = `Warning`
)->get( )->_generic( `link` )->link( text = `(HERE)`
target = `_blank`
- href = `https://github.com/oblomov-dev/abap2UI5-demos` ).
+ href = `https://github.com/abap2UI5/abap2UI5-samples` ).
ENDIF.
DATA(cont) = form->content( `form` ).
diff --git a/src/00/z2ui5_cl_fw_app.clas.testclasses.abap b/src/01/z2ui5_cl_fw_app.clas.testclasses.abap
similarity index 100%
rename from src/00/z2ui5_cl_fw_app.clas.testclasses.abap
rename to src/01/z2ui5_cl_fw_app.clas.testclasses.abap
diff --git a/src/00/z2ui5_cl_fw_app.clas.xml b/src/01/z2ui5_cl_fw_app.clas.xml
similarity index 100%
rename from src/00/z2ui5_cl_fw_app.clas.xml
rename to src/01/z2ui5_cl_fw_app.clas.xml
diff --git a/src/00/z2ui5_cl_fw_binding.clas.abap b/src/01/z2ui5_cl_fw_binding.clas.abap
similarity index 100%
rename from src/00/z2ui5_cl_fw_binding.clas.abap
rename to src/01/z2ui5_cl_fw_binding.clas.abap
diff --git a/src/00/z2ui5_cl_fw_binding.clas.testclasses.abap b/src/01/z2ui5_cl_fw_binding.clas.testclasses.abap
similarity index 100%
rename from src/00/z2ui5_cl_fw_binding.clas.testclasses.abap
rename to src/01/z2ui5_cl_fw_binding.clas.testclasses.abap
diff --git a/src/00/z2ui5_cl_fw_binding.clas.xml b/src/01/z2ui5_cl_fw_binding.clas.xml
similarity index 100%
rename from src/00/z2ui5_cl_fw_binding.clas.xml
rename to src/01/z2ui5_cl_fw_binding.clas.xml
diff --git a/src/00/z2ui5_cl_fw_client.clas.abap b/src/01/z2ui5_cl_fw_client.clas.abap
similarity index 99%
rename from src/00/z2ui5_cl_fw_client.clas.abap
rename to src/01/z2ui5_cl_fw_client.clas.abap
index a3bda126..32dc2371 100644
--- a/src/00/z2ui5_cl_fw_client.clas.abap
+++ b/src/01/z2ui5_cl_fw_client.clas.abap
@@ -274,7 +274,7 @@ CLASS z2ui5_cl_fw_client IMPLEMENTATION.
METHOD z2ui5_if_client~factory_view.
- result = NEW #( ).
+ result = z2ui5_cl_ui5=>_factory( check_popup ).
ENDMETHOD.
diff --git a/src/00/z2ui5_cl_fw_client.clas.testclasses.abap b/src/01/z2ui5_cl_fw_client.clas.testclasses.abap
similarity index 100%
rename from src/00/z2ui5_cl_fw_client.clas.testclasses.abap
rename to src/01/z2ui5_cl_fw_client.clas.testclasses.abap
diff --git a/src/00/z2ui5_cl_fw_client.clas.xml b/src/01/z2ui5_cl_fw_client.clas.xml
similarity index 100%
rename from src/00/z2ui5_cl_fw_client.clas.xml
rename to src/01/z2ui5_cl_fw_client.clas.xml
diff --git a/src/00/z2ui5_cl_fw_db.clas.abap b/src/01/z2ui5_cl_fw_db.clas.abap
similarity index 100%
rename from src/00/z2ui5_cl_fw_db.clas.abap
rename to src/01/z2ui5_cl_fw_db.clas.abap
diff --git a/src/00/z2ui5_cl_fw_db.clas.testclasses.abap b/src/01/z2ui5_cl_fw_db.clas.testclasses.abap
similarity index 100%
rename from src/00/z2ui5_cl_fw_db.clas.testclasses.abap
rename to src/01/z2ui5_cl_fw_db.clas.testclasses.abap
diff --git a/src/00/z2ui5_cl_fw_db.clas.xml b/src/01/z2ui5_cl_fw_db.clas.xml
similarity index 100%
rename from src/00/z2ui5_cl_fw_db.clas.xml
rename to src/01/z2ui5_cl_fw_db.clas.xml
diff --git a/src/00/z2ui5_cl_fw_handler.clas.abap b/src/01/z2ui5_cl_fw_handler.clas.abap
similarity index 99%
rename from src/00/z2ui5_cl_fw_handler.clas.abap
rename to src/01/z2ui5_cl_fw_handler.clas.abap
index 6cd3f4cd..d3f4b62d 100644
--- a/src/00/z2ui5_cl_fw_handler.clas.abap
+++ b/src/01/z2ui5_cl_fw_handler.clas.abap
@@ -65,7 +65,7 @@ CLASS z2ui5_cl_fw_handler DEFINITION
t_message TYPE z2ui5_if_client=>ty_t_message_manager,
check_clear TYPE abap_bool,
END OF s_message_manager,
- _viewmodel TYPE string,
+* _viewmodel TYPE string,
END OF ty_s_next2.
TYPES:
diff --git a/src/00/z2ui5_cl_fw_handler.clas.testclasses.abap b/src/01/z2ui5_cl_fw_handler.clas.testclasses.abap
similarity index 100%
rename from src/00/z2ui5_cl_fw_handler.clas.testclasses.abap
rename to src/01/z2ui5_cl_fw_handler.clas.testclasses.abap
diff --git a/src/00/z2ui5_cl_fw_handler.clas.xml b/src/01/z2ui5_cl_fw_handler.clas.xml
similarity index 100%
rename from src/00/z2ui5_cl_fw_handler.clas.xml
rename to src/01/z2ui5_cl_fw_handler.clas.xml
diff --git a/src/00/z2ui5_cl_fw_integration_test.clas.abap b/src/01/z2ui5_cl_fw_integration_test.clas.abap
similarity index 76%
rename from src/00/z2ui5_cl_fw_integration_test.clas.abap
rename to src/01/z2ui5_cl_fw_integration_test.clas.abap
index e353d1f2..5b72e9b7 100644
--- a/src/00/z2ui5_cl_fw_integration_test.clas.abap
+++ b/src/01/z2ui5_cl_fw_integration_test.clas.abap
@@ -83,26 +83,26 @@ CLASS Z2UI5_CL_FW_INTEGRATION_TEST IMPLEMENTATION.
press = client->_event( 'BUTTON_POST' )
)->get_root( )->xml_get( ) ).
- WHEN 'TEST_TIMER'.
- client->timer_set( event_finished = 'TIMER_FINISHED'
- interval_ms = `500` ).
-
- client->view_display( z2ui5_cl_xml_view=>factory( client )->shell(
- )->page( title = 'abap2UI5 - First Example'
- navbuttonpress = client->_event( 'BACK' )
- shownavbutton = abap_true
- )->simple_form( title = 'Form Title'
- editable = abap_true
- )->content( 'form'
- )->title( 'Input'
- )->label( 'quantity'
- )->input( client->_bind( quantity )
- )->label( 'product'
- )->input( value = product
- enabled = abap_false
- )->button( text = 'post'
- press = client->_event( 'BUTTON_POST' )
- )->get_root( )->xml_get( ) ).
+* WHEN 'TEST_TIMER'.
+* client->timer_set( event_finished = 'TIMER_FINISHED'
+* interval_ms = `500` ).
+*
+* client->view_display( z2ui5_cl_xml_view=>factory( client )->shell(
+* )->page( title = 'abap2UI5 - First Example'
+* navbuttonpress = client->_event( 'BACK' )
+* shownavbutton = abap_true
+* )->simple_form( title = 'Form Title'
+* editable = abap_true
+* )->content( 'form'
+* )->title( 'Input'
+* )->label( 'quantity'
+* )->input( client->_bind( quantity )
+* )->label( 'product'
+* )->input( value = product
+* enabled = abap_false
+* )->button( text = 'post'
+* press = client->_event( 'BUTTON_POST' )
+* )->get_root( )->xml_get( ) ).
WHEN OTHERS.
client->view_display( z2ui5_cl_xml_view=>factory( client )->shell(
diff --git a/src/00/z2ui5_cl_fw_integration_test.clas.testclasses.abap b/src/01/z2ui5_cl_fw_integration_test.clas.testclasses.abap
similarity index 92%
rename from src/00/z2ui5_cl_fw_integration_test.clas.testclasses.abap
rename to src/01/z2ui5_cl_fw_integration_test.clas.testclasses.abap
index 2286d41c..a0472df9 100644
--- a/src/00/z2ui5_cl_fw_integration_test.clas.testclasses.abap
+++ b/src/01/z2ui5_cl_fw_integration_test.clas.testclasses.abap
@@ -176,31 +176,31 @@ CLASS ltcl_integration_test IMPLEMENTATION.
METHOD test_timer.
- z2ui5_cl_fw_integration_test=>sv_state = `TEST_TIMER`.
- DATA(lv_response) = z2ui5_cl_fw_http_handler=>http_post(
- `{ "OLOCATION" : { "SEARCH" : "app_start=z2ui5_cl_fw_integration_test"}}` ).
-
- DATA lo_data TYPE REF TO data.
- /ui2/cl_json=>deserialize( EXPORTING json = lv_response
- CHANGING data = lo_data ).
-
- FIELD-SYMBOLS TYPE any.
-
- UNASSIGN .
- DATA(lv_assign) = `PARAMS->S_TIMER->EVENT_FINISHED->*`.
- ASSIGN lo_data->(lv_assign) TO .
- IF <> `TIMER_FINISHED`.
- cl_abap_unit_assert=>fail( msg = 'timer - event wrong'
- quit = 5 ).
- ENDIF.
-
- UNASSIGN .
- lv_assign = `PARAMS->S_TIMER->INTERVAL_MS->*`.
- ASSIGN lo_data->(lv_assign) TO .
- IF <> `500`.
- cl_abap_unit_assert=>fail( msg = 'timer - ms wrong'
- quit = 5 ).
- ENDIF.
+* z2ui5_cl_fw_integration_test=>sv_state = `TEST_TIMER`.
+* DATA(lv_response) = z2ui5_cl_fw_http_handler=>http_post(
+* `{ "OLOCATION" : { "SEARCH" : "app_start=z2ui5_cl_fw_integration_test"}}` ).
+*
+* DATA lo_data TYPE REF TO data.
+* /ui2/cl_json=>deserialize( EXPORTING json = lv_response
+* CHANGING data = lo_data ).
+*
+* FIELD-SYMBOLS TYPE any.
+*
+* UNASSIGN .
+* DATA(lv_assign) = `PARAMS->S_TIMER->EVENT_FINISHED->*`.
+* ASSIGN lo_data->(lv_assign) TO .
+* IF <> `TIMER_FINISHED`.
+* cl_abap_unit_assert=>fail( msg = 'timer - event wrong'
+* quit = 5 ).
+* ENDIF.
+*
+* UNASSIGN .
+* lv_assign = `PARAMS->S_TIMER->INTERVAL_MS->*`.
+* ASSIGN lo_data->(lv_assign) TO .
+* IF <> `500`.
+* cl_abap_unit_assert=>fail( msg = 'timer - ms wrong'
+* quit = 5 ).
+* ENDIF.
ENDMETHOD.
METHOD test_xml_popup.
diff --git a/src/00/z2ui5_cl_fw_integration_test.clas.xml b/src/01/z2ui5_cl_fw_integration_test.clas.xml
similarity index 100%
rename from src/00/z2ui5_cl_fw_integration_test.clas.xml
rename to src/01/z2ui5_cl_fw_integration_test.clas.xml
diff --git a/src/00/z2ui5_cl_fw_model.clas.abap b/src/01/z2ui5_cl_fw_model.clas.abap
similarity index 100%
rename from src/00/z2ui5_cl_fw_model.clas.abap
rename to src/01/z2ui5_cl_fw_model.clas.abap
diff --git a/src/00/z2ui5_cl_fw_model.clas.testclasses.abap b/src/01/z2ui5_cl_fw_model.clas.testclasses.abap
similarity index 100%
rename from src/00/z2ui5_cl_fw_model.clas.testclasses.abap
rename to src/01/z2ui5_cl_fw_model.clas.testclasses.abap
diff --git a/src/00/z2ui5_cl_fw_model.clas.xml b/src/01/z2ui5_cl_fw_model.clas.xml
similarity index 100%
rename from src/00/z2ui5_cl_fw_model.clas.xml
rename to src/01/z2ui5_cl_fw_model.clas.xml
diff --git a/src/00/z2ui5_cl_fw_utility.clas.abap b/src/01/z2ui5_cl_fw_utility.clas.abap
similarity index 100%
rename from src/00/z2ui5_cl_fw_utility.clas.abap
rename to src/01/z2ui5_cl_fw_utility.clas.abap
diff --git a/src/00/z2ui5_cl_fw_utility.clas.testclasses.abap b/src/01/z2ui5_cl_fw_utility.clas.testclasses.abap
similarity index 100%
rename from src/00/z2ui5_cl_fw_utility.clas.testclasses.abap
rename to src/01/z2ui5_cl_fw_utility.clas.testclasses.abap
diff --git a/src/00/z2ui5_cl_fw_utility.clas.xml b/src/01/z2ui5_cl_fw_utility.clas.xml
similarity index 100%
rename from src/00/z2ui5_cl_fw_utility.clas.xml
rename to src/01/z2ui5_cl_fw_utility.clas.xml
diff --git a/src/00/z2ui5_cl_fw_utility_json.clas.abap b/src/01/z2ui5_cl_fw_utility_json.clas.abap
similarity index 100%
rename from src/00/z2ui5_cl_fw_utility_json.clas.abap
rename to src/01/z2ui5_cl_fw_utility_json.clas.abap
diff --git a/src/00/z2ui5_cl_fw_utility_json.clas.testclasses.abap b/src/01/z2ui5_cl_fw_utility_json.clas.testclasses.abap
similarity index 100%
rename from src/00/z2ui5_cl_fw_utility_json.clas.testclasses.abap
rename to src/01/z2ui5_cl_fw_utility_json.clas.testclasses.abap
diff --git a/src/00/z2ui5_cl_fw_utility_json.clas.xml b/src/01/z2ui5_cl_fw_utility_json.clas.xml
similarity index 100%
rename from src/00/z2ui5_cl_fw_utility_json.clas.xml
rename to src/01/z2ui5_cl_fw_utility_json.clas.xml
diff --git a/src/01/z2ui5_cl_fw_utility_xml.clas.abap b/src/01/z2ui5_cl_fw_utility_xml.clas.abap
new file mode 100644
index 00000000..70b533e5
--- /dev/null
+++ b/src/01/z2ui5_cl_fw_utility_xml.clas.abap
@@ -0,0 +1,19 @@
+CLASS z2ui5_cl_fw_utility_xml DEFINITION
+ PUBLIC
+ FINAL
+ CREATE PUBLIC.
+
+ PUBLIC SECTION.
+ DATA mt_prop TYPE z2ui5_if_client=>ty_t_name_value.
+ DATA mt_ns TYPE SORTED TABLE OF string WITH UNIQUE KEY table_line.
+ DATA mv_name TYPE string.
+ DATA mv_ns TYPE string.
+ DATA mo_root TYPE REF TO z2ui5_cl_fw_utility_xml.
+ DATA mo_previous TYPE REF TO z2ui5_cl_fw_utility_xml.
+ DATA mo_parent TYPE REF TO z2ui5_cl_fw_utility_xml.
+ DATA mt_child TYPE STANDARD TABLE OF REF TO z2ui5_cl_fw_utility_xml WITH EMPTY KEY.
+ENDCLASS.
+
+
+CLASS z2ui5_cl_fw_utility_xml IMPLEMENTATION.
+ENDCLASS.
diff --git a/src/01/z2ui5_cl_fw_utility_xml.clas.xml b/src/01/z2ui5_cl_fw_utility_xml.clas.xml
new file mode 100644
index 00000000..41d9419c
--- /dev/null
+++ b/src/01/z2ui5_cl_fw_utility_xml.clas.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+ Z2UI5_CL_FW_UTILITY_XML
+ E
+ abap2UI5 - utility xml
+ 1
+ X
+ X
+ X
+
+
+
+
diff --git a/src/00/z2ui5_cx_fw_error.clas.abap b/src/01/z2ui5_cx_fw_error.clas.abap
similarity index 100%
rename from src/00/z2ui5_cx_fw_error.clas.abap
rename to src/01/z2ui5_cx_fw_error.clas.abap
diff --git a/src/00/z2ui5_cx_fw_error.clas.testclasses.abap b/src/01/z2ui5_cx_fw_error.clas.testclasses.abap
similarity index 100%
rename from src/00/z2ui5_cx_fw_error.clas.testclasses.abap
rename to src/01/z2ui5_cx_fw_error.clas.testclasses.abap
diff --git a/src/00/z2ui5_cx_fw_error.clas.xml b/src/01/z2ui5_cx_fw_error.clas.xml
similarity index 100%
rename from src/00/z2ui5_cx_fw_error.clas.xml
rename to src/01/z2ui5_cx_fw_error.clas.xml
diff --git a/src/00/z2ui5_t_draft.tabl.xml b/src/01/z2ui5_t_draft.tabl.xml
similarity index 100%
rename from src/00/z2ui5_t_draft.tabl.xml
rename to src/01/z2ui5_t_draft.tabl.xml
diff --git a/src/01/00/package.devc.xml b/src/02/package.devc.xml
similarity index 85%
rename from src/01/00/package.devc.xml
rename to src/02/package.devc.xml
index 9bd9bf7f..eddb85f6 100644
--- a/src/01/00/package.devc.xml
+++ b/src/02/package.devc.xml
@@ -3,7 +3,7 @@
- test
+ abap2UI5 - ui5 api (ui5)
diff --git a/src/02/z2ui5_cl_ui5.clas.abap b/src/02/z2ui5_cl_ui5.clas.abap
new file mode 100644
index 00000000..f38f1a2c
--- /dev/null
+++ b/src/02/z2ui5_cl_ui5.clas.abap
@@ -0,0 +1,250 @@
+CLASS z2ui5_cl_ui5 DEFINITION
+ PUBLIC
+ CREATE PUBLIC.
+
+ PUBLIC SECTION.
+ CLASS-METHODS _factory
+ IMPORTING check_popup TYPE abap_bool DEFAULT abap_false
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5.
+
+ METHODS _go_up
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5.
+
+ METHODS _go_root
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5.
+
+ METHODS _go_new
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5.
+
+ METHODS _add
+ IMPORTING n TYPE clike
+ ns TYPE clike OPTIONAL
+ t_p TYPE z2ui5_if_client=>ty_t_name_value OPTIONAL
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5.
+
+ METHODS _add_p
+ IMPORTING n TYPE clike
+ v TYPE clike
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5.
+
+ METHODS _ns_ndc
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_ndc.
+
+ METHODS _ns_m
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_m.
+
+ METHODS _ns_ui
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_ui.
+
+ METHODS _ns_suite
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_suite.
+
+ METHODS _ns_zcc
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_ui.
+
+ METHODS constructor
+ IMPORTING node TYPE REF TO z2ui5_cl_fw_utility_xml OPTIONAL.
+
+ METHODS _stringify
+ RETURNING VALUE(result) TYPE string.
+
+ PROTECTED SECTION.
+ DATA _node TYPE REF TO z2ui5_cl_fw_utility_xml.
+
+ CLASS-METHODS _2xml
+ IMPORTING obj TYPE REF TO z2ui5_cl_ui5
+ RETURNING VALUE(result) TYPE string.
+
+ CLASS-METHODS _2bool
+ IMPORTING val TYPE any
+ RETURNING VALUE(result) TYPE string.
+
+ PRIVATE SECTION.
+ENDCLASS.
+
+
+CLASS z2ui5_cl_ui5 IMPLEMENTATION.
+ METHOD constructor.
+ IF node IS NOT BOUND.
+ _node = NEW #( ).
+ _node->mo_root = _node.
+ ELSE.
+ _node = node.
+ ENDIF.
+ ENDMETHOD.
+
+ METHOD _2bool.
+ result = z2ui5_cl_fw_utility=>boolean_abap_2_json( val ).
+ ENDMETHOD.
+
+ METHOD _2xml.
+ IF obj->_node->mv_name = `ZZPLAIN`.
+ result = obj->_node->mt_prop[ n = `VALUE` ]-v.
+ RETURN.
+ ENDIF.
+
+ DATA lt_prop TYPE z2ui5_if_client=>ty_t_name_value.
+ lt_prop = VALUE #( ( n = `` v = `sap.m` )
+ ( n = `f` v = `sap.f` )
+ ( n = `ndc` v = `sap.ndc` )
+ ( n = `tnt` v = `sap.tnt` )
+ ( n = `mvc` v = `sap.ui.core.mvc` )
+ ( n = `core` v = `sap.ui.core` )
+ ( n = `form` v = `sap.ui.layout.form` )
+ ( n = `l` v = `sap.ui.layout` )
+ ( n = `t` v = `sap.ui.table` )
+ ( n = `webc` v = `sap.ui.webc.main` )
+ ( n = `fl` v = `sap.ui.fl` )
+ ( n = `vk` v = `sap.ui.vk` )
+ ( n = `vbm` v = `sap.ui.vbm` )
+ ( n = `z2ui5` v = `z2ui5` )
+ ( n = `mchart` v = `sap.suite.ui.microchart` )
+ ( n = `editor` v = `sap.ui.codeeditor` )
+* ( n = `core:require` v = `{ MessageToast: 'sap/m/MessageToast' }` )
+* ( n = `core:require` v = `{ URLHelper: 'sap/m/library/URLHelper' }` )
+ ( n = `xmlns:webc` v = `sap.ui.webc.main` )
+ ( n = `xmlns:uxap` v = `sap.uxap` )
+ ( n = `xmlns:text` v = `sap.ui.richtexteditor` )
+ ( n = `xmlns:html` v = `http://www.w3.org/1999/xhtml` )
+ ( n = `xmlns:fb` v = `sap.ui.comp.filterbar` )
+ ( n = `xmlns:u` v = `sap.ui.unified` )
+ ( n = `xmlns:gantt` v = `sap.gantt.simple` )
+ ( n = `xmlns:axistime` v = `sap.gantt.axistime` )
+ ( n = `xmlns:config` v = `sap.gantt.config` )
+ ( n = `xmlns:shapes` v = `sap.gantt.simple.shapes` )
+ ( n = `xmlns:commons` v = `sap.suite.ui.commons` )
+ ( n = `xmlns:vm` v = `sap.ui.comp.variants` )
+ ( n = `xmlns:viz` v = `sap.viz.ui5.controls` )
+ ( n = `xmlns:svm` v = `sap.ui.comp.smartvariants` )
+ ( n = `xmlns:flvm` v = `sap.ui.fl.variants` )
+ ( n = `xmlns:p13n` v = `sap.m.p13n` )
+ ( n = `xmlns:upload` v = `sap.m.upload` ) ).
+
+ IF obj->_node = obj->_node->mo_root.
+
+ LOOP AT obj->_node->mt_ns INTO DATA(lv_ns_tmp).
+ TRY.
+ DATA(ls_prop) = lt_prop[ v = lv_ns_tmp ].
+ ls_prop-n = `xmlns` && COND #( WHEN ls_prop-n IS NOT INITIAL THEN `:` && ls_prop-n ).
+ INSERT ls_prop INTO TABLE obj->_node->mt_prop.
+
+ CATCH cx_root.
+
+ data(lv_text) = cond #( when lv_ns_tmp is initial then `XML_VIEW_NOT_VALID_NAMESPACE_EMPTY`
+ else `XML_VIEW_NOT_VALID_NAMESPACE_NOT_FOUND failure: ` && lv_ns_tmp ).
+
+ RAISE EXCEPTION TYPE z2ui5_cx_fw_error
+ EXPORTING
+ val = lv_text.
+ ENDTRY.
+ ENDLOOP.
+
+ ENDIF.
+
+ DATA(lv_ns) = lt_prop[ v = obj->_node->mv_ns ]-n.
+ lv_ns = COND #( WHEN lv_ns <> `` THEN |{ lv_ns }:| ).
+
+ DATA(lv_element) = obj->_node->mv_name.
+ DATA(lv_prop) = REDUCE #( INIT val = `` FOR row IN obj->_node->mt_prop
+ NEXT val = |{ val } { row-n }="{ escape(
+ val = COND #( WHEN row-v = abap_true
+ THEN `true`
+ ELSE row-v )
+ format = cl_abap_format=>e_xml_attr ) }"| ).
+
+ result = |{ result }<{ lv_ns }{ lv_element }{ lv_prop }|.
+
+ IF obj->_node->mt_child IS INITIAL.
+ result = |{ result }/>|.
+ RETURN.
+ ENDIF.
+
+ result = |{ result }>|.
+
+ LOOP AT obj->_node->mt_child INTO DATA(lr_child).
+ DATA(lo_child) = NEW z2ui5_cl_ui5( lr_child ).
+ result = result && _2xml( lo_child ).
+ ENDLOOP.
+
+ result = |{ result }{ lv_ns }{ lv_element }>|.
+ ENDMETHOD.
+
+ METHOD _add.
+ TRY.
+ INSERT CONV #( ns ) INTO TABLE _node->mo_root->mt_ns.
+ CATCH cx_root.
+ ENDTRY.
+
+ DATA(lo_node) = NEW z2ui5_cl_fw_utility_xml( ).
+ DATA(result2) = NEW z2ui5_cl_ui5( lo_node ).
+ result2->_node->mv_name = n.
+ result2->_node->mv_ns = ns.
+ result2->_node->mt_prop = t_p.
+ DELETE result2->_node->mt_prop WHERE v = ``.
+ result2->_node->mo_parent = _node.
+ result2->_node->mo_root = _node->mo_root.
+ INSERT result2->_node INTO TABLE _node->mt_child.
+
+ _node->mo_root->mo_previous = result2->_node.
+ result = result2.
+ ENDMETHOD.
+
+ METHOD _add_p.
+ INSERT VALUE #( n = n v = v ) INTO TABLE _node->mt_prop.
+ result = me.
+ ENDMETHOD.
+
+ METHOD _factory.
+ result = NEW #( ).
+
+ DATA(lv_n) = COND #( WHEN check_popup = abap_true THEN `FragmentDefinition` ELSE `View` ).
+ DATA(lv_ns) = COND #( WHEN check_popup = abap_true THEN `sap.ui.core` ELSE `sap.ui.core.mvc` ).
+
+ result = result->_add( n = lv_n ns = lv_ns ).
+
+ IF check_popup = abap_false.
+ result->_add_p( n = `displayBlock` v = `true` ).
+ result->_add_p( n = `height` v = `100%` ).
+ ENDIF.
+
+ result->_node->mt_ns = result->_node->mo_root->mt_ns.
+ result->_node->mo_root = result->_node.
+ ENDMETHOD.
+
+ METHOD _go_new.
+ result = NEW #( _node->mo_root->mo_previous ).
+ ENDMETHOD.
+
+ METHOD _go_root.
+ result = NEW #( _node->mo_root ).
+ ENDMETHOD.
+
+ METHOD _go_up.
+ result = NEW #( _node->mo_parent ).
+ ENDMETHOD.
+
+ METHOD _ns_ndc.
+ result = NEW #( _node ).
+ ENDMETHOD.
+
+ METHOD _ns_m.
+ result = NEW #( _node ).
+ ENDMETHOD.
+
+ METHOD _ns_ui.
+ result = NEW #( _node ).
+ ENDMETHOD.
+
+ METHOD _ns_zcc.
+ result = NEW #( _node ).
+ ENDMETHOD.
+
+ METHOD _stringify.
+ DATA(lo_node) = NEW z2ui5_cl_ui5( _node->mo_root ).
+ result = _2xml( lo_node ).
+ ENDMETHOD.
+
+ METHOD _ns_suite.
+ result = NEW #( _node ).
+ ENDMETHOD.
+ENDCLASS.
diff --git a/src/01/00/z2ui5_cl_view.clas.xml b/src/02/z2ui5_cl_ui5.clas.xml
similarity index 83%
rename from src/01/00/z2ui5_cl_view.clas.xml
rename to src/02/z2ui5_cl_ui5.clas.xml
index a05c0021..46e43899 100644
--- a/src/01/00/z2ui5_cl_view.clas.xml
+++ b/src/02/z2ui5_cl_ui5.clas.xml
@@ -3,9 +3,9 @@
- Z2UI5_CL_VIEW
+ Z2UI5_CL_UI5
E
- sap ui5 library
+ ui5 api
1
X
X
diff --git a/src/02/z2ui5_cl_ui5_m.clas.abap b/src/02/z2ui5_cl_ui5_m.clas.abap
new file mode 100644
index 00000000..b121df9c
--- /dev/null
+++ b/src/02/z2ui5_cl_ui5_m.clas.abap
@@ -0,0 +1,462 @@
+CLASS z2ui5_cl_ui5_m DEFINITION
+ PUBLIC
+ FINAL
+ CREATE PUBLIC INHERITING FROM z2ui5_cl_ui5.
+
+ PUBLIC SECTION.
+ METHODS suggestionitems
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_m.
+
+ METHODS toolbarspacer
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_m.
+
+ METHODS input
+ IMPORTING id TYPE clike OPTIONAL
+ value TYPE clike OPTIONAL
+ placeholder TYPE clike OPTIONAL
+ type TYPE clike OPTIONAL
+ showclearicon TYPE clike OPTIONAL
+ valuestate TYPE clike OPTIONAL
+ valuestatetext TYPE clike OPTIONAL
+ showtablesuggestionvaluehelp TYPE clike OPTIONAL
+ description TYPE clike OPTIONAL
+ editable TYPE clike OPTIONAL
+ enabled TYPE clike OPTIONAL
+ suggestionitems TYPE clike OPTIONAL
+ suggestionrows TYPE clike OPTIONAL
+ showsuggestion TYPE clike OPTIONAL
+ showvaluehelp TYPE clike OPTIONAL
+ valuehelprequest TYPE clike OPTIONAL
+ required TYPE clike OPTIONAL
+ suggest TYPE clike OPTIONAL
+ class TYPE clike OPTIONAL
+ visible TYPE clike OPTIONAL
+ submit TYPE clike OPTIONAL
+ valueliveupdate TYPE clike OPTIONAL
+ autocomplete TYPE clike OPTIONAL
+ maxsuggestionwidth TYPE clike OPTIONAL
+ fieldwidth TYPE clike OPTIONAL
+ valuehelponly TYPE clike OPTIONAL
+ width TYPE clike OPTIONAL
+ change TYPE clike OPTIONAL
+ valuehelpiconsrc TYPE clike OPTIONAL
+ textformatter TYPE clike OPTIONAL
+ textformatmode TYPE clike OPTIONAL
+ maxlength TYPE clike OPTIONAL
+ startsuggestion TYPE clike OPTIONAL
+ enablesuggestionshighlighting TYPE clike OPTIONAL
+ enabletableautopopinmode TYPE clike OPTIONAL
+ PREFERRED PARAMETER value
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_m.
+
+ METHODS page
+ IMPORTING title TYPE clike OPTIONAL
+ navbuttonpress TYPE clike OPTIONAL
+ shownavbutton TYPE clike OPTIONAL
+ showheader TYPE clike OPTIONAL
+ id TYPE clike OPTIONAL
+ class TYPE clike OPTIONAL
+ backgrounddesign TYPE clike OPTIONAL
+ contentonlybusy TYPE clike OPTIONAL
+ enablescrolling TYPE clike OPTIONAL
+ navbuttontooltip TYPE clike OPTIONAL
+ floatingfooter TYPE clike OPTIONAL
+ showfooter TYPE clike OPTIONAL
+ showsubheader TYPE clike OPTIONAL
+ titlealignment TYPE clike OPTIONAL
+ titlelevel TYPE clike OPTIONAL
+ PREFERRED PARAMETER title
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_m.
+
+ METHODS shell
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_m.
+
+ METHODS title
+ IMPORTING text TYPE clike OPTIONAL
+ wrapping TYPE clike OPTIONAL
+ level TYPE clike OPTIONAL
+ PREFERRED PARAMETER text
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_m.
+
+ METHODS button
+ IMPORTING text TYPE clike OPTIONAL
+ icon TYPE clike OPTIONAL
+ type TYPE clike OPTIONAL
+ enabled TYPE clike OPTIONAL
+ visible TYPE clike OPTIONAL
+ press TYPE clike OPTIONAL
+ class TYPE clike OPTIONAL
+ id TYPE clike OPTIONAL
+ tooltip TYPE clike OPTIONAL
+ width TYPE clike OPTIONAL
+ iconfirst TYPE clike OPTIONAL
+ icondensityaware TYPE clike OPTIONAL
+ ariahaspopup TYPE clike OPTIONAL
+ activeicon TYPE clike OPTIONAL
+ accessiblerole TYPE clike OPTIONAL
+ textdirection TYPE clike OPTIONAL
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_m.
+
+ METHODS label
+ IMPORTING text TYPE clike OPTIONAL
+ labelfor TYPE clike OPTIONAL
+ design TYPE clike OPTIONAL
+ displayonly TYPE clike OPTIONAL
+ required TYPE clike OPTIONAL
+ showcolon TYPE clike OPTIONAL
+ textalign TYPE clike OPTIONAL
+ textdirection TYPE clike OPTIONAL
+ valign TYPE clike OPTIONAL
+ width TYPE clike OPTIONAL
+ wrapping TYPE clike OPTIONAL
+ wrappingtype TYPE clike OPTIONAL
+ id TYPE clike OPTIONAL
+ class TYPE clike OPTIONAL
+ PREFERRED PARAMETER text
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_m.
+
+ METHODS link
+ IMPORTING text TYPE clike OPTIONAL
+ href TYPE clike OPTIONAL
+ target TYPE clike OPTIONAL
+ enabled TYPE clike OPTIONAL
+ press TYPE clike OPTIONAL
+ id TYPE clike OPTIONAL
+ wrapping TYPE clike OPTIONAL
+ width TYPE clike OPTIONAL
+ validateurl TYPE clike OPTIONAL
+ textdirection TYPE clike OPTIONAL
+ textalign TYPE clike OPTIONAL
+ subtle TYPE clike OPTIONAL
+ rel TYPE clike OPTIONAL
+ emptyindicatormode TYPE clike OPTIONAL
+ emphasized TYPE clike OPTIONAL
+ ariahaspopup TYPE clike OPTIONAL
+ accessiblerole TYPE clike OPTIONAL
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_m.
+
+ METHODS headercontent
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_m.
+
+ METHODS text
+ IMPORTING text TYPE clike OPTIONAL
+ class TYPE clike OPTIONAL
+ emptyindicatormode TYPE clike OPTIONAL
+ maxlines TYPE clike OPTIONAL
+ renderwhitespace TYPE clike OPTIONAL
+ textalign TYPE clike OPTIONAL
+ textdirection TYPE clike OPTIONAL
+ width TYPE clike OPTIONAL
+ wrapping TYPE clike OPTIONAL
+ wrappingtype TYPE clike OPTIONAL
+ id TYPE clike OPTIONAL
+ PREFERRED PARAMETER text
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_m.
+
+ METHODS layoutdata
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_m.
+
+ METHODS items
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_m.
+
+ METHODS flexbox
+ IMPORTING class TYPE clike OPTIONAL
+ rendertype TYPE clike OPTIONAL
+ width TYPE clike OPTIONAL
+ fitcontainer TYPE clike OPTIONAL
+ height TYPE clike OPTIONAL
+ alignitems TYPE clike OPTIONAL
+ justifycontent TYPE clike OPTIONAL
+ wrap TYPE clike OPTIONAL
+ visible TYPE clike OPTIONAL
+ direction TYPE clike OPTIONAL
+ displayinline TYPE clike OPTIONAL
+ backgrounddesign TYPE clike OPTIONAL
+ aligncontent TYPE clike OPTIONAL
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_m.
+
+ METHODS footer
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_m.
+
+ METHODS overflowtoolbar
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_m.
+
+ METHODS overflowtoolbartogglebutton
+ IMPORTING text TYPE clike OPTIONAL
+ icon TYPE clike OPTIONAL
+ type TYPE clike OPTIONAL
+ enabled TYPE clike OPTIONAL
+ press TYPE clike OPTIONAL
+ tooltip TYPE clike OPTIONAL
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_m.
+
+ METHODS overflowtoolbarbutton
+ IMPORTING text TYPE clike OPTIONAL
+ icon TYPE clike OPTIONAL
+ type TYPE clike OPTIONAL
+ enabled TYPE clike OPTIONAL
+ press TYPE clike OPTIONAL
+ tooltip TYPE clike OPTIONAL
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_m.
+
+ METHODS overflowtoolbarmenubutton
+ IMPORTING text TYPE clike OPTIONAL
+ icon TYPE clike OPTIONAL
+ buttonmode TYPE clike OPTIONAL
+ type TYPE clike OPTIONAL
+ enabled TYPE clike OPTIONAL
+ tooltip TYPE clike OPTIONAL
+ defaultaction TYPE clike OPTIONAL
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_m.
+
+ PROTECTED SECTION.
+
+ PRIVATE SECTION.
+ENDCLASS.
+
+
+CLASS z2ui5_cl_ui5_m IMPLEMENTATION.
+ METHOD toolbarspacer.
+ result = me.
+ _add( n = `ToolbarSpacer`
+ ns = `sap.m` )->_ns_m( ).
+ ENDMETHOD.
+
+ METHOD overflowtoolbar.
+ result = _add( n = `OverflowToolbar` ns = `sap.m` )->_ns_m( ).
+ ENDMETHOD.
+
+ METHOD overflowtoolbarbutton.
+ result = me.
+ _add( n = `OverflowToolbarButton`
+ ns = `sap.m`
+ t_p = VALUE #( ( n = `press` v = press )
+ ( n = `text` v = text )
+ ( n = `enabled` v = z2ui5_cl_fw_utility=>boolean_abap_2_json( enabled ) )
+ ( n = `icon` v = icon )
+ ( n = `type` v = type )
+ ( n = `tooltip` v = tooltip ) ) ).
+ ENDMETHOD.
+
+ METHOD overflowtoolbarmenubutton.
+ result = _add( n = `OverflowToolbarMenuButton`
+ ns = `sap.m`
+ t_p = VALUE #( ( n = `buttonMode` v = buttonmode )
+ ( n = `defaultAction` v = defaultaction )
+ ( n = `text` v = text )
+ ( n = `enabled` v = z2ui5_cl_fw_utility=>boolean_abap_2_json( enabled ) )
+ ( n = `icon` v = icon )
+ ( n = `type` v = type )
+ ( n = `tooltip` v = tooltip ) ) )->_ns_m( ).
+ ENDMETHOD.
+
+ METHOD overflowtoolbartogglebutton.
+ result = me.
+ _add( n = `OverflowToolbarToggleButton`
+ ns = `sap.m`
+ t_p = VALUE #( ( n = `press` v = press )
+ ( n = `text` v = text )
+ ( n = `enabled` v = z2ui5_cl_fw_utility=>boolean_abap_2_json( enabled ) )
+ ( n = `icon` v = icon )
+ ( n = `type` v = type )
+ ( n = `tooltip` v = tooltip ) ) ).
+ ENDMETHOD.
+
+ METHOD footer.
+ result = _add( ns = `sap.m`
+ n = `footer` )->_ns_m( ).
+ ENDMETHOD.
+
+ METHOD suggestionitems.
+ result = _add( ns = `sap.m` n = `suggestionItems` )->_ns_m( ).
+ ENDMETHOD.
+
+ METHOD items.
+ result = _add( n = `items` ns = `sap.m` )->_ns_m( ).
+ ENDMETHOD.
+
+ METHOD flexbox.
+ result = _add( n = `FlexBox`
+ ns = `sap.m`
+ t_p = VALUE #( ( n = `class` v = class )
+ ( n = `renderType` v = rendertype )
+ ( n = `width` v = width )
+ ( n = `height` v = height )
+ ( n = `alignItems` v = alignitems )
+ ( n = `fitContainer` v = z2ui5_cl_fw_utility=>boolean_abap_2_json( fitcontainer ) )
+ ( n = `justifyContent` v = justifycontent )
+ ( n = `wrap` v = wrap )
+ ( n = `direction` v = direction )
+ ( n = `alignContent` v = aligncontent )
+ ( n = `backgroundDesign` v = backgrounddesign )
+ ( n = `displayInline` v = z2ui5_cl_fw_utility=>boolean_abap_2_json( displayinline ) )
+ ( n = `visible` v = visible ) ) )->_ns_m( ).
+ ENDMETHOD.
+
+ METHOD text.
+ result = me.
+ _add( n = `Text`
+ ns = `sap.m`
+ t_p = VALUE #( ( n = `text` v = text )
+ ( n = `emptyIndicatorMode` v = emptyindicatormode )
+ ( n = `maxLines` v = maxlines )
+ ( n = `renderWhitespace` v = renderwhitespace )
+ ( n = `textAlign` v = textalign )
+ ( n = `textDirection` v = textdirection )
+ ( n = `width` v = width )
+ ( n = `id` v = id )
+ ( n = `wrapping` v = z2ui5_cl_fw_utility=>boolean_abap_2_json( wrapping ) )
+ ( n = `wrappingType` v = wrappingtype )
+ ( n = `class` v = class ) ) ).
+ ENDMETHOD.
+
+ METHOD headercontent.
+ result = _add( n = `headerContent`
+ ns = `sap.m` )->_ns_m( ).
+ ENDMETHOD.
+
+ METHOD link.
+ result = me.
+
+ _add( n = `Link`
+ ns = `sap.m`
+ t_p = VALUE #( ( n = `text` v = text )
+ ( n = `target` v = target )
+ ( n = `href` v = href )
+ ( n = `press` v = press )
+ ( n = `id` v = id )
+ ( n = `accessibleRole` v = accessiblerole )
+ ( n = `ariaHasPopup` v = ariahaspopup )
+ ( n = `emptyIndicatorMode` v = emptyindicatormode )
+ ( n = `rel` v = rel )
+ ( n = `subtle` v = _2bool( subtle ) )
+ ( n = `textAlign` v = textalign )
+ ( n = `textDirection` v = textdirection )
+ ( n = `validateUrl` v = _2bool( validateurl ) )
+ ( n = `width` v = width )
+ ( n = `wrapping` v = _2bool( wrapping ) )
+ ( n = `emphasized` v = _2bool( emphasized ) )
+ ( n = `enabled` v = _2bool( enabled ) ) ) ).
+ ENDMETHOD.
+
+ METHOD button.
+ result = me.
+ _add( n = `Button`
+ ns = `sap.m`
+ t_p = VALUE #( ( n = `press` v = press )
+ ( n = `text` v = text )
+ ( n = `enabled` v = _2bool( enabled ) )
+ ( n = `visible` v = _2bool( visible ) )
+ ( n = `iconDensityAware` v = _2bool( icondensityaware ) )
+ ( n = `iconFirst` v = _2bool( iconfirst ) )
+ ( n = `icon` v = icon )
+ ( n = `type` v = type )
+ ( n = `id` v = id )
+ ( n = `width` v = width )
+ ( n = `tooltip` v = tooltip )
+ ( n = `textDirection` v = textdirection )
+ ( n = `accessibleRole` v = accessiblerole )
+ ( n = `activeIcon` v = activeicon )
+ ( n = `ariaHasPopup` v = ariahaspopup )
+ ( n = `class` v = class ) ) ).
+ ENDMETHOD.
+
+ METHOD layoutdata.
+ result = _add( n = `layoutData` ns = `sap.m`
+ )->_ns_m( ).
+ ENDMETHOD.
+
+ METHOD label.
+ result = me.
+ _add( n = `Label`
+ ns = `sap.m`
+ t_p = VALUE #( ( n = `text` v = text )
+ ( n = `displayOnly` v = _2bool( displayonly ) )
+ ( n = `required` v = _2bool( required ) )
+ ( n = `showColon` v = _2bool( showcolon ) )
+ ( n = `textAlign` v = textalign )
+ ( n = `textDirection` v = textdirection )
+ ( n = `vAlign` v = valign )
+ ( n = `width` v = width )
+ ( n = `wrapping` v = _2bool( wrapping ) )
+ ( n = `wrappingType` v = wrappingtype )
+ ( n = `design` v = design )
+ ( n = `id` v = id )
+ ( n = `class` v = class )
+ ( n = `labelFor` v = labelfor ) ) ).
+ ENDMETHOD.
+
+ METHOD title.
+ result = me.
+ _add( n = `Title`
+ ns = `sap.m`
+ t_p = VALUE #( ( n = `text` v = text )
+ ( n = `wrapping` v = _2bool( wrapping ) )
+ ( n = `level` v = level ) ) ).
+ ENDMETHOD.
+
+ METHOD page.
+ result = _add( n = `Page`
+ ns = `sap.m`
+ t_p = VALUE #( ( n = `title` v = title )
+ ( n = `showNavButton` v = _2bool( shownavbutton ) )
+ ( n = `navButtonPress` v = navbuttonpress )
+ ( n = `showHeader` v = _2bool( showheader ) )
+ ( n = `class` v = class )
+ ( n = `backgroundDesign` v = backgrounddesign )
+ ( n = `navButtonTooltip` v = navbuttontooltip )
+ ( n = `titleAlignment` v = titlealignment )
+ ( n = `titleLevel` v = titlelevel )
+ ( n = `contentOnlyBusy` v = _2bool( contentonlybusy ) )
+ ( n = `enableScrolling` v = _2bool( enablescrolling ) )
+ ( n = `floatingFooter` v = _2bool( floatingfooter ) )
+ ( n = `showFooter` v = _2bool( showfooter ) )
+ ( n = `showSubHeader` v = _2bool( showsubheader ) )
+ ( n = `id` v = id ) ) )->_ns_m( ).
+ ENDMETHOD.
+
+ METHOD shell.
+ result = _add( n = `Shell` ns = `sap.m` )->_ns_m( ).
+ ENDMETHOD.
+
+ METHOD input.
+ result = me.
+ _add( n = `Input`
+ ns = `sap.m`
+ t_p = VALUE #( ( n = `id` v = id )
+ ( n = `placeholder` v = placeholder )
+ ( n = `type` v = type )
+ ( n = `maxLength` v = maxlength )
+ ( n = `showClearIcon` v = _2bool( showclearicon ) )
+ ( n = `description` v = description )
+ ( n = `editable` v = _2bool( editable ) )
+ ( n = `enabled` v = _2bool( enabled ) )
+ ( n = `visible` v = _2bool( visible ) )
+ ( n = `enableTableAutoPopinMode` v = _2bool( enabletableautopopinmode ) )
+ ( n = `enableSuggestionsHighlighting` v = _2bool( enablesuggestionshighlighting ) )
+ ( n = `showTableSuggestionValueHelp` v = _2bool( showtablesuggestionvaluehelp ) )
+ ( n = `valueState` v = valuestate )
+ ( n = `valueStateText` v = valuestatetext )
+ ( n = `value` v = value )
+ ( n = `required` v = _2bool( required ) )
+ ( n = `suggest` v = suggest )
+ ( n = `suggestionItems` v = suggestionitems )
+ ( n = `suggestionRows` v = suggestionrows )
+ ( n = `showSuggestion` v = _2bool( showsuggestion ) )
+ ( n = `valueHelpRequest` v = valuehelprequest )
+ ( n = `autocomplete` v = _2bool( autocomplete ) )
+ ( n = `valueLiveUpdate` v = _2bool( valueliveupdate ) )
+ ( n = `submit` v = _2bool( submit ) )
+ ( n = `showValueHelp` v = _2bool( showvaluehelp ) )
+ ( n = `valueHelpOnly` v = _2bool( valuehelponly ) )
+ ( n = `class` v = class )
+ ( n = `change` v = change )
+ ( n = `maxSuggestionWidth` v = maxsuggestionwidth )
+ ( n = `width` v = width )
+ ( n = `textFormatter` v = textformatter )
+ ( n = `startSuggestion` v = startsuggestion )
+ ( n = `valueHelpIconSrc` v = valuehelpiconsrc )
+ ( n = `textFormatMode` v = textformatmode )
+ ( n = `fieldWidth` v = fieldwidth ) ) ).
+ ENDMETHOD.
+ENDCLASS.
diff --git a/src/01/00/z2ui5_cl_view_m.clas.xml b/src/02/z2ui5_cl_ui5_m.clas.xml
similarity index 83%
rename from src/01/00/z2ui5_cl_view_m.clas.xml
rename to src/02/z2ui5_cl_ui5_m.clas.xml
index 51c017c2..d9dc1c29 100644
--- a/src/01/00/z2ui5_cl_view_m.clas.xml
+++ b/src/02/z2ui5_cl_ui5_m.clas.xml
@@ -3,9 +3,9 @@
- Z2UI5_CL_VIEW_M
+ Z2UI5_CL_UI5_M
E
- namespace sap.m
+ ns - sap.m
1
X
X
diff --git a/src/02/z2ui5_cl_ui5_ndc.clas.abap b/src/02/z2ui5_cl_ui5_ndc.clas.abap
new file mode 100644
index 00000000..98ceedb1
--- /dev/null
+++ b/src/02/z2ui5_cl_ui5_ndc.clas.abap
@@ -0,0 +1,31 @@
+CLASS z2ui5_cl_ui5_ndc DEFINITION
+ PUBLIC
+ FINAL
+ CREATE PUBLIC INHERITING FROM z2ui5_cl_ui5.
+
+ PUBLIC SECTION.
+ METHODS barcodescannerbutton
+ IMPORTING id TYPE clike OPTIONAL
+ scansuccess TYPE clike OPTIONAL
+ scanfail TYPE clike OPTIONAL
+ inputliveupdate TYPE clike OPTIONAL
+ dialogtitle TYPE clike OPTIONAL
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_ndc.
+
+ PROTECTED SECTION.
+
+ PRIVATE SECTION.
+ENDCLASS.
+
+
+CLASS z2ui5_cl_ui5_ndc IMPLEMENTATION.
+ METHOD barcodescannerbutton.
+ result = _add( n = `BarcodeScannerButton`
+ ns = 'sap.ndc'
+ t_p = VALUE #( ( n = `id` v = id )
+ ( n = `scanSuccess` v = scansuccess )
+ ( n = `scanFail` v = scanfail )
+ ( n = `inputLiveUpdate` v = inputliveupdate )
+ ( n = `dialogTitle` v = dialogtitle ) ) )->_ns_ndc( ).
+ ENDMETHOD.
+ENDCLASS.
diff --git a/src/01/00/z2ui5_cl_view_ui.clas.xml b/src/02/z2ui5_cl_ui5_ndc.clas.xml
similarity index 82%
rename from src/01/00/z2ui5_cl_view_ui.clas.xml
rename to src/02/z2ui5_cl_ui5_ndc.clas.xml
index 56e052a4..db7b45f1 100644
--- a/src/01/00/z2ui5_cl_view_ui.clas.xml
+++ b/src/02/z2ui5_cl_ui5_ndc.clas.xml
@@ -3,9 +3,9 @@
- Z2UI5_CL_VIEW_UI
+ Z2UI5_CL_UI5_NDC
E
- namespace sap.ui
+ ns - sap.ndc
1
X
X
diff --git a/src/02/z2ui5_cl_ui5_suite.clas.abap b/src/02/z2ui5_cl_ui5_suite.clas.abap
new file mode 100644
index 00000000..dda96f7b
--- /dev/null
+++ b/src/02/z2ui5_cl_ui5_suite.clas.abap
@@ -0,0 +1,56 @@
+CLASS z2ui5_cl_ui5_suite DEFINITION
+ PUBLIC
+ FINAL
+ CREATE PUBLIC INHERITING FROM z2ui5_cl_ui5.
+
+ PUBLIC SECTION.
+ METHODS interactdonutchart
+ IMPORTING selectionchanged TYPE clike OPTIONAL
+ errormessage TYPE clike OPTIONAL
+ errormessagetitle TYPE clike OPTIONAL
+ showerror TYPE clike OPTIONAL
+ displayedsegments TYPE clike OPTIONAL
+ press TYPE clike OPTIONAL
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_suite.
+
+ METHODS segments
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_suite.
+
+ METHODS interactdonutchartsegment
+ IMPORTING label TYPE clike OPTIONAL
+ value TYPE clike OPTIONAL
+ displayedvalue TYPE clike OPTIONAL
+ selected TYPE clike OPTIONAL
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_suite.
+
+ PROTECTED SECTION.
+
+ PRIVATE SECTION.
+ENDCLASS.
+
+
+CLASS z2ui5_cl_ui5_suite IMPLEMENTATION.
+ METHOD interactdonutchartsegment.
+ result = _add( n = `InteractiveDonutChartSegment`
+ ns = `sap.suite.ui.microchart`
+ t_p = VALUE #( ( n = `label` v = label )
+ ( n = `displayedValue` v = displayedvalue )
+ ( n = `value` v = value )
+ ( n = `selected` v = selected ) ) )->_ns_suite( ).
+ ENDMETHOD.
+
+ METHOD segments.
+ result = _add( n = `segments` ns = `sap.suite.ui.microchart` )->_ns_suite( ).
+ ENDMETHOD.
+
+ METHOD interactdonutchart.
+ result = _add( n = `InteractiveDonutChart`
+ ns = `sap.suite.ui.microchart`
+ t_p = VALUE #( ( n = `selectionChanged` v = selectionchanged )
+ ( n = `showError` v = z2ui5_cl_fw_utility=>boolean_abap_2_json( showerror ) )
+ ( n = `errorMessageTitle` v = errormessagetitle )
+ ( n = `errorMessage` v = errormessage )
+ ( n = `displayedSegments` v = displayedsegments )
+ ( n = `press` v = press ) ) )->_ns_suite( ).
+ ENDMETHOD.
+ENDCLASS.
diff --git a/src/01/00/z2ui5_cl_view_suite.clas.xml b/src/02/z2ui5_cl_ui5_suite.clas.xml
similarity index 81%
rename from src/01/00/z2ui5_cl_view_suite.clas.xml
rename to src/02/z2ui5_cl_ui5_suite.clas.xml
index fa5d1921..010da166 100644
--- a/src/01/00/z2ui5_cl_view_suite.clas.xml
+++ b/src/02/z2ui5_cl_ui5_suite.clas.xml
@@ -3,9 +3,9 @@
- Z2UI5_CL_VIEW_SUITE
+ Z2UI5_CL_UI5_SUITE
E
- namespace sap.suite
+ ns - sap.suite
1
X
X
diff --git a/src/02/z2ui5_cl_ui5_ui.clas.abap b/src/02/z2ui5_cl_ui5_ui.clas.abap
new file mode 100644
index 00000000..314b91f7
--- /dev/null
+++ b/src/02/z2ui5_cl_ui5_ui.clas.abap
@@ -0,0 +1,134 @@
+CLASS z2ui5_cl_ui5_ui DEFINITION
+ PUBLIC
+ FINAL
+ CREATE PUBLIC INHERITING FROM z2ui5_cl_ui5.
+
+ PUBLIC SECTION.
+ METHODS simpleform
+ IMPORTING title TYPE clike OPTIONAL
+ layout TYPE clike OPTIONAL
+ editable TYPE clike OPTIONAL
+ columnsxl TYPE clike OPTIONAL
+ columnsl TYPE clike OPTIONAL
+ columnsm TYPE clike OPTIONAL
+ id TYPE clike OPTIONAL
+ PREFERRED PARAMETER title
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_ui.
+
+ METHODS content
+ IMPORTING
+ ns TYPE clike DEFAULT `sap.ui.layout.form`
+ RETURNING
+ VALUE(result) TYPE REF TO z2ui5_cl_ui5_ui.
+
+ METHODS tabcontainer
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_ui.
+
+ METHODS tab
+ IMPORTING text TYPE clike OPTIONAL
+ selected TYPE clike OPTIONAL
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_ui.
+
+ METHODS grid
+ IMPORTING class TYPE clike OPTIONAL
+ default_span TYPE clike OPTIONAL
+ PREFERRED PARAMETER default_span
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_ui.
+
+ METHODS griddata
+ IMPORTING span TYPE clike OPTIONAL
+ PREFERRED PARAMETER span
+ RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_ui.
+
+ METHODS codeeditor
+ IMPORTING
+ !value TYPE clike OPTIONAL
+ !type TYPE clike OPTIONAL
+ !height TYPE clike OPTIONAL
+ !width TYPE clike OPTIONAL
+ !editable TYPE clike OPTIONAL
+ RETURNING
+ VALUE(result) TYPE REF TO z2ui5_cl_ui5_ui .
+ METHODS listitem
+ IMPORTING
+ !text TYPE clike OPTIONAL
+ !additionaltext TYPE clike OPTIONAL
+ !key TYPE clike OPTIONAL
+ !icon TYPE clike OPTIONAL
+ !enabled TYPE clike OPTIONAL
+ !textdirection TYPE clike OPTIONAL
+ RETURNING
+ VALUE(result) TYPE REF TO z2ui5_cl_ui5_ui.
+ PROTECTED SECTION.
+
+ PRIVATE SECTION.
+ENDCLASS.
+
+
+CLASS z2ui5_cl_ui5_ui IMPLEMENTATION.
+
+ METHOD listitem.
+ result = me.
+ _add( n = `ListItem`
+ ns = `sap.ui.core`
+ t_p = VALUE #( ( n = `text` v = text )
+ ( n = `icon` v = icon )
+ ( n = `key` v = key )
+ ( n = `textDirection` v = textdirection )
+ ( n = `enabled` v = z2ui5_cl_fw_utility=>boolean_abap_2_json( enabled ) )
+ ( n = `additionalText` v = additionaltext ) ) ).
+ ENDMETHOD.
+
+ METHOD codeeditor.
+ result = me.
+ _add( n = `CodeEditor`
+ ns = `sap.ui.codeeditor`
+ t_p = VALUE #( ( n = `value` v = value )
+ ( n = `type` v = type )
+ ( n = `editable` v = z2ui5_cl_fw_utility=>boolean_abap_2_json( editable ) )
+ ( n = `height` v = height )
+ ( n = `width` v = width ) ) )->_ns_ui( ).
+ ENDMETHOD.
+
+ METHOD griddata.
+ result = me.
+ _add( n = `GridData`
+ ns = `sap.ui.layout`
+ t_p = VALUE #( ( n = `span` v = span ) ) ).
+ ENDMETHOD.
+
+ METHOD grid.
+ result = _add( n = `Grid`
+ ns = `sap.ui.layout`
+ t_p = VALUE #( ( n = `defaultSpan` v = default_span )
+ ( n = `class` v = class ) ) )->_ns_ui( ).
+ ENDMETHOD.
+
+ METHOD tab.
+ result = _add( n = `Tab`
+ ns = `sap.ui.webc.main`
+ t_p = VALUE #( ( n = `text` v = text )
+ ( n = `selected` v = selected ) ) )->_ns_ui( ).
+ ENDMETHOD.
+
+ METHOD tabcontainer.
+ result = _add( n = `TabContainer` ns = `sap.ui.webc.main` )->_ns_ui( ).
+ ENDMETHOD.
+
+ METHOD content.
+ result = _add( ns = ns
+ n = `content` )->_ns_ui( ).
+ ENDMETHOD.
+
+ METHOD simpleform.
+ result = _add( n = `SimpleForm`
+ ns = `sap.ui.layout.form`
+ t_p = VALUE #( ( n = `title` v = title )
+ ( n = `layout` v = layout )
+ ( n = `id` v = id )
+ ( n = `columnsXL` v = columnsxl )
+ ( n = `columnsL` v = columnsl )
+ ( n = `columnsM` v = columnsm )
+ ( n = `editable` v = _2bool( editable ) ) ) )->_ns_ui( ).
+ ENDMETHOD.
+ENDCLASS.
diff --git a/src/02/z2ui5_cl_ui5_ui.clas.xml b/src/02/z2ui5_cl_ui5_ui.clas.xml
new file mode 100644
index 00000000..c16f47e0
--- /dev/null
+++ b/src/02/z2ui5_cl_ui5_ui.clas.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+ Z2UI5_CL_UI5_UI
+ E
+ ns - sap.ui
+ 1
+ X
+ X
+ X
+
+
+
+
diff --git a/src/02/z2ui5_cl_ui5_zcc.clas.abap b/src/02/z2ui5_cl_ui5_zcc.clas.abap
new file mode 100644
index 00000000..ba60e7cc
--- /dev/null
+++ b/src/02/z2ui5_cl_ui5_zcc.clas.abap
@@ -0,0 +1,16 @@
+CLASS z2ui5_cl_ui5_zcc DEFINITION
+ PUBLIC
+ FINAL
+ CREATE PUBLIC INHERITING FROM z2ui5_cl_ui5.
+
+ PUBLIC SECTION.
+
+
+ PROTECTED SECTION.
+ PRIVATE SECTION.
+ENDCLASS.
+
+
+
+CLASS Z2UI5_CL_UI5_ZCC IMPLEMENTATION.
+ENDCLASS.
diff --git a/src/02/z2ui5_cl_ui5_zcc.clas.xml b/src/02/z2ui5_cl_ui5_zcc.clas.xml
new file mode 100644
index 00000000..0e395077
--- /dev/null
+++ b/src/02/z2ui5_cl_ui5_zcc.clas.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+ Z2UI5_CL_UI5_ZCC
+ E
+ ns - z2ui5 (custom)
+ 1
+ X
+ X
+ X
+
+
+
+
diff --git a/src/03/package.devc.xml b/src/03/package.devc.xml
new file mode 100644
index 00000000..ace9c349
--- /dev/null
+++ b/src/03/package.devc.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ abap2UI5 - custom controls (cc)
+
+
+
+
diff --git a/src/01/z2ui5_cl_cc_bwipjs.clas.abap b/src/03/z2ui5_cl_cc_bwipjs.clas.abap
similarity index 100%
rename from src/01/z2ui5_cl_cc_bwipjs.clas.abap
rename to src/03/z2ui5_cl_cc_bwipjs.clas.abap
diff --git a/src/01/z2ui5_cl_cc_bwipjs.clas.xml b/src/03/z2ui5_cl_cc_bwipjs.clas.xml
similarity index 100%
rename from src/01/z2ui5_cl_cc_bwipjs.clas.xml
rename to src/03/z2ui5_cl_cc_bwipjs.clas.xml
diff --git a/src/01/z2ui5_cl_cc_demo_output.clas.abap b/src/03/z2ui5_cl_cc_demo_output.clas.abap
similarity index 100%
rename from src/01/z2ui5_cl_cc_demo_output.clas.abap
rename to src/03/z2ui5_cl_cc_demo_output.clas.abap
diff --git a/src/01/z2ui5_cl_cc_demo_output.clas.xml b/src/03/z2ui5_cl_cc_demo_output.clas.xml
similarity index 100%
rename from src/01/z2ui5_cl_cc_demo_output.clas.xml
rename to src/03/z2ui5_cl_cc_demo_output.clas.xml
diff --git a/src/01/z2ui5_cl_cc_driver_js.clas.abap b/src/03/z2ui5_cl_cc_driver_js.clas.abap
similarity index 100%
rename from src/01/z2ui5_cl_cc_driver_js.clas.abap
rename to src/03/z2ui5_cl_cc_driver_js.clas.abap
diff --git a/src/01/z2ui5_cl_cc_driver_js.clas.xml b/src/03/z2ui5_cl_cc_driver_js.clas.xml
similarity index 100%
rename from src/01/z2ui5_cl_cc_driver_js.clas.xml
rename to src/03/z2ui5_cl_cc_driver_js.clas.xml
diff --git a/src/01/z2ui5_cl_cc_factory.clas.abap b/src/03/z2ui5_cl_cc_factory.clas.abap
similarity index 90%
rename from src/01/z2ui5_cl_cc_factory.clas.abap
rename to src/03/z2ui5_cl_cc_factory.clas.abap
index 485d93fa..4f41b17c 100644
--- a/src/01/z2ui5_cl_cc_factory.clas.abap
+++ b/src/03/z2ui5_cl_cc_factory.clas.abap
@@ -17,7 +17,7 @@ CLASS z2ui5_cl_cc_factory DEFINITION
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_cc_demo_output.
- METHODS load_font_awesome
+ METHODS font_awesome
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_cc_font_awesome_icons.
@@ -37,6 +37,10 @@ CLASS z2ui5_cl_cc_factory DEFINITION
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_cc_timer.
+ METHODS title
+ RETURNING
+ VALUE(result) TYPE REF TO z2ui5_cl_cc_title.
+
METHODS info
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_cc_info.
@@ -67,6 +71,12 @@ CLASS Z2UI5_CL_CC_FACTORY IMPLEMENTATION.
ENDMETHOD.
+ METHOD title.
+
+ result = NEW #( mo_view ).
+
+ ENDMETHOD.
+
METHOD bwip_js.
result = NEW #( mo_view ).
@@ -95,7 +105,7 @@ CLASS Z2UI5_CL_CC_FACTORY IMPLEMENTATION.
ENDMETHOD.
- METHOD load_font_awesome.
+ METHOD font_awesome.
result = NEW #( mo_view ).
diff --git a/src/01/z2ui5_cl_cc_factory.clas.xml b/src/03/z2ui5_cl_cc_factory.clas.xml
similarity index 100%
rename from src/01/z2ui5_cl_cc_factory.clas.xml
rename to src/03/z2ui5_cl_cc_factory.clas.xml
diff --git a/src/01/z2ui5_cl_cc_file_uploader.clas.abap b/src/03/z2ui5_cl_cc_file_uploader.clas.abap
similarity index 99%
rename from src/01/z2ui5_cl_cc_file_uploader.clas.abap
rename to src/03/z2ui5_cl_cc_file_uploader.clas.abap
index 9079c3cb..eebea9ef 100644
--- a/src/01/z2ui5_cl_cc_file_uploader.clas.abap
+++ b/src/03/z2ui5_cl_cc_file_uploader.clas.abap
@@ -215,8 +215,7 @@ CLASS Z2UI5_CL_CC_FILE_UPLOADER IMPLEMENTATION.
` });` && |\n| &&
` });`.
-* result = mo_view->_cc_plain_xml( `` && js && `` ).
- result = mo_view->_generic( ns = `html` name = `script` )->_cc_plain_xml( js ).
+ result = mo_view->_generic( ns = `html` name = `script` )->_cc_plain_xml( js )->get_parent( ).
ENDMETHOD.
ENDCLASS.
diff --git a/src/01/z2ui5_cl_cc_file_uploader.clas.xml b/src/03/z2ui5_cl_cc_file_uploader.clas.xml
similarity index 100%
rename from src/01/z2ui5_cl_cc_file_uploader.clas.xml
rename to src/03/z2ui5_cl_cc_file_uploader.clas.xml
diff --git a/src/01/z2ui5_cl_cc_font_awesome_icons.clas.abap b/src/03/z2ui5_cl_cc_font_awesome_icons.clas.abap
similarity index 95%
rename from src/01/z2ui5_cl_cc_font_awesome_icons.clas.abap
rename to src/03/z2ui5_cl_cc_font_awesome_icons.clas.abap
index 5247beda..888349f3 100644
--- a/src/01/z2ui5_cl_cc_font_awesome_icons.clas.abap
+++ b/src/03/z2ui5_cl_cc_font_awesome_icons.clas.abap
@@ -40,7 +40,7 @@ CLASS Z2UI5_CL_CC_FONT_AWESOME_ICONS IMPLEMENTATION.
METHOD LOAD_ANIMATION_JS.
* result = mo_view->_cc_plain_xml( `` ).
- result = mo_view->_generic( ns = `html` name = `script` t_prop = value #( ( n = `src` v = faw_js_url ) ) ).
+ result = mo_view->_generic( ns = `html` name = `script` t_prop = value #( ( n = `src` v = faw_js_url ) ) )->get_parent( ).
enDMETHOD.
@@ -125,7 +125,8 @@ CLASS Z2UI5_CL_CC_FONT_AWESOME_ICONS IMPLEMENTATION.
` }))` && |\n| &&
`})`.
- result = mo_view->_cc_plain_xml( `` && js && `` ).
+* result = mo_view->_cc_plain_xml( `` && js && `` )->get_parent( ).
+ result = mo_view->_generic( ns = `html` name = `script` )->_cc_plain_xml( js )->get_parent( ).
ENDMETHOD.
ENDCLASS.
diff --git a/src/01/z2ui5_cl_cc_font_awesome_icons.clas.xml b/src/03/z2ui5_cl_cc_font_awesome_icons.clas.xml
similarity index 100%
rename from src/01/z2ui5_cl_cc_font_awesome_icons.clas.xml
rename to src/03/z2ui5_cl_cc_font_awesome_icons.clas.xml
diff --git a/src/01/z2ui5_cl_cc_geolocation.clas.abap b/src/03/z2ui5_cl_cc_geolocation.clas.abap
similarity index 99%
rename from src/01/z2ui5_cl_cc_geolocation.clas.abap
rename to src/03/z2ui5_cl_cc_geolocation.clas.abap
index 08595fde..c9a97eb5 100644
--- a/src/01/z2ui5_cl_cc_geolocation.clas.abap
+++ b/src/03/z2ui5_cl_cc_geolocation.clas.abap
@@ -158,7 +158,7 @@ CLASS z2ui5_cl_cc_geolocation IMPLEMENTATION.
`});`.
* result = mo_view->_cc_plain_xml( `` && js && `` ).
- result = mo_view->_generic( ns = `html` name = `script` )->_cc_plain_xml( js ).
+ result = mo_view->_generic( ns = `html` name = `script` )->_cc_plain_xml( js )->get_parent( ).
ENDMETHOD.
ENDCLASS.
diff --git a/src/01/z2ui5_cl_cc_geolocation.clas.xml b/src/03/z2ui5_cl_cc_geolocation.clas.xml
similarity index 100%
rename from src/01/z2ui5_cl_cc_geolocation.clas.xml
rename to src/03/z2ui5_cl_cc_geolocation.clas.xml
diff --git a/src/01/z2ui5_cl_cc_info.clas.abap b/src/03/z2ui5_cl_cc_info.clas.abap
similarity index 99%
rename from src/01/z2ui5_cl_cc_info.clas.abap
rename to src/03/z2ui5_cl_cc_info.clas.abap
index 7d269ad6..ec830226 100644
--- a/src/01/z2ui5_cl_cc_info.clas.abap
+++ b/src/03/z2ui5_cl_cc_info.clas.abap
@@ -118,7 +118,7 @@ ENDMETHOD.
`});`.
* result = mo_view->_cc_plain_xml( `` && js && `` ).
- result = mo_view->_generic( ns = `html` name = `script` )->_cc_plain_xml( js ).
+ result = mo_view->_generic( ns = `html` name = `script` )->_cc_plain_xml( js )->get_parent( ).
ENDMETHOD.
ENDCLASS.
diff --git a/src/01/z2ui5_cl_cc_info.clas.xml b/src/03/z2ui5_cl_cc_info.clas.xml
similarity index 100%
rename from src/01/z2ui5_cl_cc_info.clas.xml
rename to src/03/z2ui5_cl_cc_info.clas.xml
diff --git a/src/01/z2ui5_cl_cc_spreadsheet.clas.abap b/src/03/z2ui5_cl_cc_spreadsheet.clas.abap
similarity index 100%
rename from src/01/z2ui5_cl_cc_spreadsheet.clas.abap
rename to src/03/z2ui5_cl_cc_spreadsheet.clas.abap
diff --git a/src/01/z2ui5_cl_cc_spreadsheet.clas.xml b/src/03/z2ui5_cl_cc_spreadsheet.clas.xml
similarity index 100%
rename from src/01/z2ui5_cl_cc_spreadsheet.clas.xml
rename to src/03/z2ui5_cl_cc_spreadsheet.clas.xml
diff --git a/src/01/z2ui5_cl_cc_timer.clas.abap b/src/03/z2ui5_cl_cc_timer.clas.abap
similarity index 65%
rename from src/01/z2ui5_cl_cc_timer.clas.abap
rename to src/03/z2ui5_cl_cc_timer.clas.abap
index 0754828d..6cda65d2 100644
--- a/src/01/z2ui5_cl_cc_timer.clas.abap
+++ b/src/03/z2ui5_cl_cc_timer.clas.abap
@@ -11,8 +11,10 @@ CLASS z2ui5_cl_cc_timer DEFINITION
METHODS control
IMPORTING
- finished TYPE clike OPTIONAL
- delayMS TYPE clike OPTIONAL
+ finished TYPE clike OPTIONAL
+ delayms TYPE clike OPTIONAL
+ checkrepeat TYPE clike OPTIONAL
+ PREFERRED PARAMETER finished
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
@@ -20,8 +22,12 @@ CLASS z2ui5_cl_cc_timer DEFINITION
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
+ class-METHODS get_js
+ RETURNING
+ VALUE(result) TYPE string.
+
PROTECTED SECTION.
- DATA mo_view TYPE REF TO z2ui5_cl_xml_view.
+ DATA mo_view TYPE REF TO z2ui5_cl_xml_view.
PRIVATE SECTION.
ENDCLASS.
@@ -36,20 +42,27 @@ CLASS z2ui5_cl_cc_timer IMPLEMENTATION.
ENDMETHOD.
-method control.
+ METHOD control.
- result = mo_view.
+ result = mo_view.
mo_view->_generic( name = `CCTimer`
ns = `z2ui5`
- t_prop = VALUE #( ( n = `delayMS` v = delayMS )
+ t_prop = VALUE #( ( n = `delayMS` v = delayms )
( n = `finished` v = finished )
+ ( n = `checkRepeat` v = z2ui5_cl_fw_utility=>boolean_abap_2_json( checkrepeat ) )
) ).
-ENDMETHOD.
+ ENDMETHOD.
METHOD load_cc.
- DATA(js) = ` jQuery.sap.declare("z2ui5.CCTimer");` && |\n| &&
+ result = mo_view->_generic( ns = `html` name = `script` )->_cc_plain_xml( get_js( ) )->get_parent( ).
+
+ ENDMETHOD.
+
+ METHOD get_js.
+
+ result = ` jQuery.sap.declare("z2ui5.CCTimer");` && |\n| &&
`sap.ui.require([` && |\n| &&
` "sap/ui/core/Control"` && |\n| &&
`], (Control) => {` && |\n| &&
@@ -62,6 +75,10 @@ ENDMETHOD.
` type: "string",` && |\n| &&
` defaultValue: ""` && |\n| &&
` },` && |\n| &&
+ ` checkRepeat: {` && |\n| &&
+ ` type: "boolean",` && |\n| &&
+ ` defaultValue: false` && |\n| &&
+ ` },` && |\n| &&
` },` && |\n| &&
` events: {` && |\n| &&
` "finished": { ` && |\n| &&
@@ -78,18 +95,20 @@ ENDMETHOD.
` onAfterRendering() {` && |\n| &&
|\n| &&
` },` && |\n| &&
- ` ` && |\n| &&
- ` renderer(oRm, oControl) {` && |\n| &&
- |\n| &&
+ ` delayedCall( oControl){` && |\n| &&
+ ` ` && |\n| &&
` setTimeout((oControl) => {` && |\n| &&
` oControl.fireFinished();` && |\n| &&
+ ` if ( oControl.getProperty( "checkRepeat" ) ) { oControl.delayedCall( oControl ); } ` && |\n| &&
` }, parseInt( oControl.getProperty("delayMS") ), oControl );` && |\n| &&
+ ` },` && |\n| &&
+ ` renderer(oRm, oControl) {` && |\n| &&
+ |\n| &&
+ ` oControl.delayedCall( oControl );` && |\n| &&
` }` && |\n| &&
` });` && |\n| &&
`});`.
-* result = mo_view->_cc_plain_xml( `` && js && `` ).
- result = mo_view->_generic( ns = `html` name = `script` )->_cc_plain_xml( js ).
ENDMETHOD.
ENDCLASS.
diff --git a/src/01/z2ui5_cl_cc_timer.clas.xml b/src/03/z2ui5_cl_cc_timer.clas.xml
similarity index 90%
rename from src/01/z2ui5_cl_cc_timer.clas.xml
rename to src/03/z2ui5_cl_cc_timer.clas.xml
index fbeab7ed..898ee967 100644
--- a/src/01/z2ui5_cl_cc_timer.clas.xml
+++ b/src/03/z2ui5_cl_cc_timer.clas.xml
@@ -5,7 +5,7 @@
Z2UI5_CL_CC_TIMER
E
- sap gui - cl_gui_timer
+ cc - setTimeout
1
X
X
diff --git a/src/03/z2ui5_cl_cc_title.clas.abap b/src/03/z2ui5_cl_cc_title.clas.abap
new file mode 100644
index 00000000..163e5821
--- /dev/null
+++ b/src/03/z2ui5_cl_cc_title.clas.abap
@@ -0,0 +1,91 @@
+CLASS z2ui5_cl_cc_title DEFINITION
+ PUBLIC
+ FINAL
+ CREATE PUBLIC .
+
+ PUBLIC SECTION.
+
+ METHODS constructor
+ IMPORTING
+ view TYPE REF TO z2ui5_cl_xml_view.
+
+ METHODS control
+ IMPORTING
+ title TYPE clike OPTIONAL
+ RETURNING
+ VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
+
+ METHODS load_cc
+ RETURNING
+ VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
+
+ CLASS-METHODS get_js
+ RETURNING
+ VALUE(result) TYPE string.
+
+ PROTECTED SECTION.
+ DATA mo_view TYPE REF TO z2ui5_cl_xml_view.
+
+ PRIVATE SECTION.
+ENDCLASS.
+
+
+
+CLASS z2ui5_cl_cc_title IMPLEMENTATION.
+
+ METHOD constructor.
+
+ me->mo_view = view.
+
+ ENDMETHOD.
+
+ METHOD control.
+
+ result = mo_view.
+ mo_view->_generic( name = `CCTitle`
+ ns = `z2ui5`
+ t_prop = VALUE #( ( n = `title` v = title ) ) ).
+
+ ENDMETHOD.
+
+ METHOD load_cc.
+
+ result = mo_view->_generic( ns = `html` name = `script` )->_cc_plain_xml( get_js( ) )->get_parent( ).
+
+ ENDMETHOD.
+
+ METHOD get_js.
+
+ result = `debugger; jQuery.sap.declare("z2ui5.CCTitle");` && |\n| &&
+ `sap.ui.require([` && |\n| &&
+ ` "sap/ui/core/Control"` && |\n| &&
+ `], (Control) => {` && |\n| &&
+ ` "use strict";` && |\n| &&
+ |\n| &&
+ ` return Control.extend("z2ui5.CCTitle", {` && |\n| &&
+ ` metadata : {` && |\n| &&
+ ` properties: {` && |\n| &&
+ ` title: {` && |\n| &&
+ ` type: "string",` && |\n| &&
+ ` defaultValue: ""` && |\n| &&
+ ` },` && |\n| &&
+ ` }` && |\n| &&
+ ` },` && |\n| &&
+ |\n| &&
+ ` init () {` && |\n| &&
+ |\n| &&
+ ` },` && |\n| &&
+ |\n| &&
+ ` onAfterRendering() {` && |\n| &&
+ |\n| &&
+ ` },` && |\n| &&
+ ` renderer(oRm, oControl) {` && |\n| &&
+ |\n| &&
+ ` debugger; document.title = oControl.getProperty( "title" );` && |\n| &&
+ ` }` && |\n| &&
+ ` });` && |\n| &&
+ `});`.
+
+ ENDMETHOD.
+
+ENDCLASS.
diff --git a/src/03/z2ui5_cl_cc_title.clas.xml b/src/03/z2ui5_cl_cc_title.clas.xml
new file mode 100644
index 00000000..7a6ed449
--- /dev/null
+++ b/src/03/z2ui5_cl_cc_title.clas.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+ Z2UI5_CL_CC_TITLE
+ E
+ cc - document.title
+ 1
+ X
+ X
+ X
+
+
+
+
diff --git a/src/01/00/00/package.devc.xml b/src/99/package.devc.xml
similarity index 86%
rename from src/01/00/00/package.devc.xml
rename to src/99/package.devc.xml
index 9bd9bf7f..dab01f98 100644
--- a/src/01/00/00/package.devc.xml
+++ b/src/99/package.devc.xml
@@ -3,7 +3,7 @@
- test
+ abap2UI5 - test (test)
diff --git a/src/01/00/00/z2ui5_cl_app_hello_world_test.clas.abap b/src/99/z2ui5_cl_test_app_hello_world.clas.abap
similarity index 82%
rename from src/01/00/00/z2ui5_cl_app_hello_world_test.clas.abap
rename to src/99/z2ui5_cl_test_app_hello_world.clas.abap
index dbecb7a9..f769beb8 100644
--- a/src/01/00/00/z2ui5_cl_app_hello_world_test.clas.abap
+++ b/src/99/z2ui5_cl_test_app_hello_world.clas.abap
@@ -1,4 +1,4 @@
-CLASS z2ui5_cl_app_hello_world_test DEFINITION PUBLIC.
+CLASS z2ui5_cl_test_app_hello_world DEFINITION PUBLIC.
PUBLIC SECTION.
INTERFACES z2ui5_if_app.
@@ -13,7 +13,7 @@ ENDCLASS.
-CLASS z2ui5_cl_app_hello_world_test IMPLEMENTATION.
+CLASS z2ui5_cl_test_app_hello_world IMPLEMENTATION.
METHOD z2ui5_if_app~main.
@@ -29,18 +29,18 @@ CLASS z2ui5_cl_app_hello_world_test IMPLEMENTATION.
client->message_toast_display( |{ product } { quantity } - send to the server| ).
ENDCASE.
- client->view_display( client->factory_view( )->ns_m(
+ client->view_display( client->factory_view( )->_ns_m(
)->shell(
- )->page( title = 'abap2UI5 - z2ui5_cl_app_hello_world' )->ns_ui(
+ )->page( title = 'abap2UI5 - z2ui5_cl_app_hello_world' )->_ns_ui(
)->simpleform( title = 'Hello World' editable = abap_true
- )->content( )->ns_m(
+ )->content( )->_ns_m(
)->title( 'Make an input here and send it to the server...'
)->label( 'quantity'
)->input( client->_bind_edit( quantity )
)->label( 'product'
)->input( value = product enabled = abap_false
)->button( text = 'post' press = client->_event( 'BUTTON_POST' )
- )->stringify( ) ).
+ )->_stringify( ) ).
ENDMETHOD.
ENDCLASS.
diff --git a/src/99/z2ui5_cl_test_app_hello_world.clas.xml b/src/99/z2ui5_cl_test_app_hello_world.clas.xml
new file mode 100644
index 00000000..d029df1a
--- /dev/null
+++ b/src/99/z2ui5_cl_test_app_hello_world.clas.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+ Z2UI5_CL_TEST_APP_HELLO_WORLD
+ E
+ test app
+ 1
+ X
+ X
+ X
+
+
+
+
diff --git a/src/z2ui5_cl_fw_app_hello_world.clas.abap b/src/z2ui5_cl_fw_app_hello_world.clas.abap
index ba4e9874..419ca602 100644
--- a/src/z2ui5_cl_fw_app_hello_world.clas.abap
+++ b/src/z2ui5_cl_fw_app_hello_world.clas.abap
@@ -30,20 +30,17 @@ CLASS z2ui5_cl_fw_app_hello_world IMPLEMENTATION.
client->message_toast_display( |{ product } { quantity } - send to the server| ).
ENDCASE.
- client->view_display( z2ui5_cl_xml_view=>factory( client
+ client->view_display( z2ui5_cl_xml_view=>factory(
)->shell(
)->page( title = 'abap2UI5 - z2ui5_cl_app_hello_world'
- )->simple_form( title = 'Hello World'
- editable = abap_true
+ )->simple_form( title = 'Hello World' editable = abap_true
)->content( ns = `form`
)->title( 'Make an input here and send it to the server...'
)->label( 'quantity'
- )->input( value = client->_bind_edit( quantity )
+ )->input( client->_bind_edit( quantity )
)->label( 'product'
- )->input( value = product
- enabled = abap_false
- )->button( text = 'post'
- press = client->_event( 'BUTTON_POST' )
+ )->input( value = product enabled = abap_false
+ )->button( text = 'post' press = client->_event( 'BUTTON_POST' )
)->stringify( ) ).
ENDMETHOD.
diff --git a/src/z2ui5_cl_fw_http_handler.clas.abap b/src/z2ui5_cl_fw_http_handler.clas.abap
index 86697c0b..528f11f1 100644
--- a/src/z2ui5_cl_fw_http_handler.clas.abap
+++ b/src/z2ui5_cl_fw_http_handler.clas.abap
@@ -545,7 +545,8 @@ CLASS Z2UI5_CL_FW_HTTP_HANDLER IMPLEMENTATION.
`sap.z2ui5.Helper.DateAbapTimestampToDate = (sTimestamp => new sap.gantt.misc.Format.abapTimestampToDate(sTimestamp));` && |\n| &&
`sap.z2ui5.Helper.DateAbapDateToDateObject = (d => new Date(d.slice(0,4), (d[4]+d[5])-1, d[6]+d[7]));` && |\n| &&
`sap.z2ui5.Helper.DateAbapDateTimeToDateObject = ((d,t = '000000') => new Date(d.slice(0,4), (d[4]+d[5])-1, d[6]+d[7],t.slice(0,2),t.slice(2,4),t.slice(4,6)));` && |\n| &&
- custom_js &&
+ custom_js && |\n| &&
+ z2ui5_cl_cc_timer=>get_js( ) && |\n| &&
` });` && |\n| &&
`` && |\n| &&
`