mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 20:03:20 +08:00
Gui internals refactoring (#2180)
* GUI internals refactoring * unify string conversion calls part1
This commit is contained in:
parent
746b114223
commit
4dee27fc1e
|
@ -1,14 +1,9 @@
|
|||
CLASS zcl_abapgit_gui DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PRIVATE .
|
||||
FINAL .
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
CLASS-METHODS: get_instance
|
||||
RETURNING VALUE(ro_gui) TYPE REF TO zcl_abapgit_gui
|
||||
RAISING zcx_abapgit_exception.
|
||||
|
||||
METHODS go_home
|
||||
RAISING zcx_abapgit_exception.
|
||||
|
||||
|
@ -20,9 +15,14 @@ CLASS zcl_abapgit_gui DEFINITION
|
|||
METHODS on_event FOR EVENT sapevent OF cl_gui_html_viewer
|
||||
IMPORTING action frame getdata postdata query_table.
|
||||
|
||||
PRIVATE SECTION.
|
||||
METHODS constructor
|
||||
IMPORTING
|
||||
ii_router TYPE REF TO zif_abapgit_gui_router
|
||||
ii_asset_man TYPE REF TO zif_abapgit_gui_asset_manager
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
|
||||
CLASS-DATA: go_gui TYPE REF TO zcl_abapgit_gui.
|
||||
PRIVATE SECTION.
|
||||
|
||||
TYPES: BEGIN OF ty_page_stack,
|
||||
page TYPE REF TO zif_abapgit_gui_page,
|
||||
|
@ -31,13 +31,10 @@ CLASS zcl_abapgit_gui DEFINITION
|
|||
|
||||
DATA: mi_cur_page TYPE REF TO zif_abapgit_gui_page,
|
||||
mt_stack TYPE STANDARD TABLE OF ty_page_stack,
|
||||
mo_router TYPE REF TO zcl_abapgit_gui_router,
|
||||
mo_asset_man TYPE REF TO zcl_abapgit_gui_asset_manager,
|
||||
mi_router TYPE REF TO zif_abapgit_gui_router,
|
||||
mi_asset_man TYPE REF TO zif_abapgit_gui_asset_manager,
|
||||
mo_html_viewer TYPE REF TO cl_gui_html_viewer.
|
||||
|
||||
METHODS constructor
|
||||
RAISING zcx_abapgit_exception.
|
||||
|
||||
METHODS startup
|
||||
RAISING zcx_abapgit_exception.
|
||||
|
||||
|
@ -114,33 +111,23 @@ CLASS ZCL_ABAPGIT_GUI IMPLEMENTATION.
|
|||
METHOD cache_asset.
|
||||
|
||||
DATA: lv_xstr TYPE xstring,
|
||||
lt_xdata TYPE TABLE OF w3_mime, " RAW255
|
||||
lt_xdata TYPE lvc_t_mime,
|
||||
lv_size TYPE int4.
|
||||
|
||||
ASSERT iv_text IS SUPPLIED OR iv_xdata IS SUPPLIED.
|
||||
|
||||
IF iv_text IS SUPPLIED. " String input
|
||||
|
||||
CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
|
||||
EXPORTING
|
||||
text = iv_text
|
||||
IMPORTING
|
||||
buffer = lv_xstr
|
||||
EXCEPTIONS
|
||||
OTHERS = 1.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
lv_xstr = zcl_abapgit_gui_asset_manager=>string_to_xstring( iv_text ).
|
||||
ELSE. " Raw input
|
||||
lv_xstr = iv_xdata.
|
||||
ENDIF.
|
||||
|
||||
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
|
||||
zcl_abapgit_gui_asset_manager=>xstring_to_bintab(
|
||||
EXPORTING
|
||||
buffer = lv_xstr
|
||||
iv_xstr = lv_xstr
|
||||
IMPORTING
|
||||
output_length = lv_size
|
||||
TABLES
|
||||
binary_tab = lt_xdata.
|
||||
ev_size = lv_size
|
||||
et_bintab = lt_xdata ).
|
||||
|
||||
mo_html_viewer->load_data(
|
||||
EXPORTING
|
||||
|
@ -187,6 +174,8 @@ CLASS ZCL_ABAPGIT_GUI IMPLEMENTATION.
|
|||
|
||||
METHOD constructor.
|
||||
|
||||
mi_router = ii_router.
|
||||
mi_asset_man = ii_asset_man.
|
||||
startup( ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
@ -196,20 +185,11 @@ CLASS ZCL_ABAPGIT_GUI IMPLEMENTATION.
|
|||
rv_page_name =
|
||||
cl_abap_classdescr=>describe_by_object_ref( mi_cur_page
|
||||
)->get_relative_name( ).
|
||||
SHIFT rv_page_name LEFT DELETING LEADING 'LCL_GUI_'.
|
||||
ENDIF." ELSE - return is empty => initial page
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_instance.
|
||||
IF go_gui IS INITIAL.
|
||||
CREATE OBJECT go_gui.
|
||||
ENDIF.
|
||||
ro_gui = go_gui.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD go_home.
|
||||
|
||||
on_event( action = |{ zif_abapgit_definitions=>c_action-go_main }| ). " doesn't accept strings directly
|
||||
|
@ -237,7 +217,7 @@ CLASS ZCL_ABAPGIT_GUI IMPLEMENTATION.
|
|||
ENDIF.
|
||||
|
||||
IF lv_state IS INITIAL.
|
||||
mo_router->on_event(
|
||||
mi_router->on_event(
|
||||
EXPORTING
|
||||
iv_action = iv_action
|
||||
iv_prev_page = get_current_page_name( )
|
||||
|
@ -306,36 +286,22 @@ CLASS ZCL_ABAPGIT_GUI IMPLEMENTATION.
|
|||
|
||||
DATA: lt_events TYPE cntl_simple_events,
|
||||
ls_event LIKE LINE OF lt_events,
|
||||
lt_assets TYPE zif_abapgit_definitions=>tt_web_assets.
|
||||
lt_assets TYPE zif_abapgit_gui_asset_manager=>tt_web_assets.
|
||||
|
||||
FIELD-SYMBOLS <ls_asset> LIKE LINE OF lt_assets.
|
||||
|
||||
CREATE OBJECT mo_router.
|
||||
CREATE OBJECT mo_asset_man.
|
||||
CREATE OBJECT mo_html_viewer
|
||||
EXPORTING
|
||||
query_table_disabled = abap_true
|
||||
parent = cl_gui_container=>screen0.
|
||||
|
||||
cache_asset( iv_xdata = mo_asset_man->get_asset( 'css_common' )
|
||||
iv_url = 'css/common.css'
|
||||
iv_type = 'text'
|
||||
iv_subtype = 'css' ).
|
||||
|
||||
cache_asset( iv_xdata = mo_asset_man->get_asset( 'js_common' )
|
||||
iv_url = 'js/common.js'
|
||||
iv_type = 'text'
|
||||
iv_subtype = 'javascript' ).
|
||||
|
||||
lt_assets = mo_asset_man->get_images( ).
|
||||
IF lines( lt_assets ) > 0.
|
||||
LOOP AT lt_assets ASSIGNING <ls_asset>.
|
||||
cache_asset( iv_xdata = <ls_asset>-content
|
||||
iv_url = <ls_asset>-url
|
||||
iv_type = 'image'
|
||||
iv_subtype = 'png' ).
|
||||
ENDLOOP.
|
||||
ENDIF.
|
||||
lt_assets = mi_asset_man->get_all_assets( ).
|
||||
LOOP AT lt_assets ASSIGNING <ls_asset>.
|
||||
cache_asset( iv_xdata = <ls_asset>-content
|
||||
iv_url = <ls_asset>-url
|
||||
iv_type = <ls_asset>-type
|
||||
iv_subtype = <ls_asset>-subtype ).
|
||||
ENDLOOP.
|
||||
|
||||
ls_event-eventid = mo_html_viewer->m_id_sapevent.
|
||||
ls_event-appl_event = abap_true.
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
<VERSION>1</VERSION>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>GUI</DESCRIPT>
|
||||
<EXPOSURE>2</EXPOSURE>
|
||||
<STATE>1</STATE>
|
||||
<CLSFINAL>X</CLSFINAL>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
|
|
|
@ -2,31 +2,54 @@ CLASS zcl_abapgit_gui_asset_manager DEFINITION PUBLIC FINAL CREATE PUBLIC .
|
|||
|
||||
PUBLIC SECTION.
|
||||
|
||||
METHODS get_asset
|
||||
IMPORTING iv_asset_name TYPE string
|
||||
RETURNING VALUE(rv_data) TYPE xstring
|
||||
RAISING zcx_abapgit_exception.
|
||||
INTERFACES zif_abapgit_gui_asset_manager.
|
||||
|
||||
METHODS get_images
|
||||
RETURNING VALUE(rt_images) TYPE zif_abapgit_definitions=>tt_web_assets.
|
||||
CLASS-METHODS string_to_xstring
|
||||
IMPORTING
|
||||
iv_str TYPE string
|
||||
RETURNING
|
||||
VALUE(rv_xstr) TYPE xstring.
|
||||
|
||||
CLASS-METHODS get_webfont_link
|
||||
RETURNING VALUE(rv_link) TYPE string.
|
||||
CLASS-METHODS base64_to_xstring
|
||||
IMPORTING
|
||||
iv_base64 TYPE string
|
||||
RETURNING
|
||||
VALUE(rv_xstr) TYPE xstring.
|
||||
|
||||
CLASS-METHODS bintab_to_xstring
|
||||
IMPORTING
|
||||
it_bintab TYPE lvc_t_mime
|
||||
iv_size TYPE i
|
||||
RETURNING
|
||||
VALUE(rv_xstr) TYPE xstring.
|
||||
|
||||
CLASS-METHODS xstring_to_bintab
|
||||
IMPORTING
|
||||
iv_xstr TYPE xstring
|
||||
EXPORTING
|
||||
ev_size TYPE i
|
||||
et_bintab TYPE lvc_t_mime.
|
||||
|
||||
PRIVATE SECTION.
|
||||
|
||||
METHODS get_inline_asset
|
||||
IMPORTING iv_asset_name TYPE string
|
||||
RETURNING VALUE(rv_data) TYPE xstring
|
||||
RAISING zcx_abapgit_exception.
|
||||
METHODS get_textlike_asset
|
||||
IMPORTING
|
||||
iv_asset_url TYPE string
|
||||
RETURNING
|
||||
VALUE(rs_asset) TYPE zif_abapgit_gui_asset_manager=>ty_web_asset
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
|
||||
METHODS get_mime_asset
|
||||
IMPORTING iv_asset_name TYPE c
|
||||
RETURNING VALUE(rv_data) TYPE xstring
|
||||
RAISING zcx_abapgit_exception.
|
||||
IMPORTING
|
||||
iv_mime_name TYPE c
|
||||
RETURNING
|
||||
VALUE(rv_xdata) TYPE xstring
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
|
||||
METHODS get_inline_images
|
||||
RETURNING VALUE(rt_images) TYPE zif_abapgit_definitions=>tt_web_assets.
|
||||
RETURNING VALUE(rt_images) TYPE zif_abapgit_gui_asset_manager=>tt_web_assets.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
@ -34,97 +57,77 @@ ENDCLASS.
|
|||
|
||||
CLASS ZCL_ABAPGIT_GUI_ASSET_MANAGER IMPLEMENTATION.
|
||||
|
||||
METHOD zif_abapgit_gui_asset_manager~get_all_assets.
|
||||
|
||||
METHOD get_asset.
|
||||
DATA:
|
||||
lt_assets TYPE zif_abapgit_gui_asset_manager=>tt_web_assets,
|
||||
ls_asset LIKE LINE OF lt_assets.
|
||||
|
||||
DATA: lv_asset_name TYPE string,
|
||||
lv_mime_name TYPE wwwdatatab-objid.
|
||||
ls_asset = get_textlike_asset( 'css/common.css' ).
|
||||
APPEND ls_asset TO rt_assets.
|
||||
ls_asset = get_textlike_asset( 'js/common.js' ).
|
||||
APPEND ls_asset TO rt_assets.
|
||||
|
||||
lv_asset_name = to_upper( iv_asset_name ).
|
||||
|
||||
CASE lv_asset_name.
|
||||
WHEN 'CSS_COMMON'.
|
||||
lv_mime_name = 'ZABAPGIT_CSS_COMMON'.
|
||||
WHEN 'JS_COMMON'.
|
||||
lv_mime_name = 'ZABAPGIT_JS_COMMON'.
|
||||
WHEN OTHERS.
|
||||
zcx_abapgit_exception=>raise( |Improper resource name: { iv_asset_name }| ).
|
||||
ENDCASE.
|
||||
|
||||
" Inline is default (for older AG snapshots to work)
|
||||
rv_data = get_inline_asset( lv_asset_name ).
|
||||
IF rv_data IS INITIAL.
|
||||
rv_data = get_mime_asset( lv_mime_name ). " Get MIME object
|
||||
ENDIF.
|
||||
|
||||
IF rv_data IS INITIAL.
|
||||
zcx_abapgit_exception=>raise( |Failed to get GUI resource: { iv_asset_name }| ).
|
||||
ENDIF.
|
||||
lt_assets = get_inline_images( ).
|
||||
APPEND LINES OF lt_assets TO rt_assets.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_images.
|
||||
|
||||
FIELD-SYMBOLS <ls_image> LIKE LINE OF rt_images.
|
||||
|
||||
rt_images = get_inline_images( ).
|
||||
|
||||
" Convert to xstring
|
||||
LOOP AT rt_images ASSIGNING <ls_image>.
|
||||
CALL FUNCTION 'SSFC_BASE64_DECODE'
|
||||
EXPORTING
|
||||
b64data = <ls_image>-base64
|
||||
IMPORTING
|
||||
bindata = <ls_image>-content
|
||||
EXCEPTIONS
|
||||
OTHERS = 1.
|
||||
ASSERT sy-subrc = 0. " Image data error
|
||||
ENDLOOP.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_inline_asset.
|
||||
METHOD get_textlike_asset.
|
||||
|
||||
* used by abapmerge
|
||||
DEFINE _inline.
|
||||
APPEND &1 TO lt_data.
|
||||
END-OF-DEFINITION.
|
||||
|
||||
DATA: lt_data TYPE zif_abapgit_definitions=>ty_string_tt,
|
||||
lv_str TYPE string.
|
||||
DATA:
|
||||
lt_data TYPE string_table,
|
||||
lv_mime_name TYPE wwwdatatab-objid,
|
||||
lv_str TYPE string.
|
||||
|
||||
CASE iv_asset_name.
|
||||
WHEN 'CSS_COMMON'.
|
||||
CASE iv_asset_url.
|
||||
WHEN 'css/common.css'.
|
||||
rs_asset-url = iv_asset_url.
|
||||
rs_asset-type = 'text'.
|
||||
rs_asset-subtype = 'css'.
|
||||
lv_mime_name = 'ZABAPGIT_CSS_COMMON'.
|
||||
" @@abapmerge include zabapgit_css_common.w3mi.data.css > _inline '$$'.
|
||||
WHEN 'JS_COMMON'.
|
||||
WHEN 'js/common.js'.
|
||||
rs_asset-url = iv_asset_url.
|
||||
rs_asset-type = 'text'.
|
||||
rs_asset-subtype = 'javascript'.
|
||||
lv_mime_name = 'ZABAPGIT_JS_COMMON'.
|
||||
" @@abapmerge include zabapgit_js_common.w3mi.data.js > _inline '$$'.
|
||||
WHEN OTHERS.
|
||||
zcx_abapgit_exception=>raise( |No inline resource: { iv_asset_name }| ).
|
||||
zcx_abapgit_exception=>raise( |No inline resource: { iv_asset_url }| ).
|
||||
ENDCASE.
|
||||
|
||||
CONCATENATE LINES OF lt_data INTO lv_str SEPARATED BY zif_abapgit_definitions=>c_newline.
|
||||
IF lt_data IS NOT INITIAL.
|
||||
CONCATENATE LINES OF lt_data INTO lv_str SEPARATED BY zif_abapgit_definitions=>c_newline.
|
||||
rs_asset-content = string_to_xstring( lv_str ).
|
||||
ELSE.
|
||||
rs_asset-content = get_mime_asset( lv_mime_name ).
|
||||
ENDIF.
|
||||
|
||||
CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
|
||||
EXPORTING
|
||||
text = lv_str
|
||||
IMPORTING
|
||||
buffer = rv_data
|
||||
EXCEPTIONS
|
||||
OTHERS = 1.
|
||||
ASSERT sy-subrc = 0.
|
||||
IF rs_asset-content IS INITIAL.
|
||||
zcx_abapgit_exception=>raise( |Failed to get GUI resource: { iv_asset_url }| ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_inline_images.
|
||||
|
||||
DATA ls_image TYPE zif_abapgit_definitions=>ty_web_asset.
|
||||
DATA:
|
||||
lv_base64 TYPE string,
|
||||
ls_image LIKE LINE OF rt_images.
|
||||
|
||||
* see https://github.com/larshp/abapGit/issues/201 for source SVG
|
||||
ls_image-url = 'img/logo' ##NO_TEXT.
|
||||
ls_image-base64 =
|
||||
ls_image-type = 'image'.
|
||||
ls_image-subtype = 'pmg'.
|
||||
lv_base64 =
|
||||
'iVBORw0KGgoAAAANSUhEUgAAAKMAAAAoCAYAAACSG0qbAAAABHNCSVQICAgIfAhkiAAA'
|
||||
&& 'AAlwSFlzAAAEJQAABCUBprHeCQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9y'
|
||||
&& 'Z5vuPBoAAA8VSURBVHic7Zx7cJzVeYef31nJAtvYko1JjM3FYHlXimwZkLWyLEMcwIGQ'
|
||||
|
@ -204,6 +207,7 @@ CLASS ZCL_ABAPGIT_GUI_ASSET_MANAGER IMPLEMENTATION.
|
|||
&& 'X9K+ygQTFGDcHhaaoGJyouDNV7JH+eGj4mF6gspoC+tzJt1ObsT4MDsF2zxs886+Ml5v'
|
||||
&& '/PogUvEwPUGFiE+SX4gAtQa1gkhV7onQR4oJMR5oxC6stDeghd7Dh6E+CPw/HL4vVO2f'
|
||||
&& 'cpUAAAAASUVORK5CYII='.
|
||||
ls_image-content = base64_to_xstring( lv_base64 ).
|
||||
APPEND ls_image TO rt_images.
|
||||
|
||||
ENDMETHOD.
|
||||
|
@ -217,7 +221,7 @@ CLASS ZCL_ABAPGIT_GUI_ASSET_MANAGER IMPLEMENTATION.
|
|||
lt_w3mime TYPE STANDARD TABLE OF w3mime.
|
||||
|
||||
ls_key-relid = 'MI'.
|
||||
ls_key-objid = iv_asset_name.
|
||||
ls_key-objid = iv_mime_name.
|
||||
|
||||
" Get exact file size
|
||||
CALL FUNCTION 'WWWPARAMS_READ'
|
||||
|
@ -250,25 +254,64 @@ CLASS ZCL_ABAPGIT_GUI_ASSET_MANAGER IMPLEMENTATION.
|
|||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
rv_xdata = bintab_to_xstring(
|
||||
iv_size = lv_size
|
||||
it_bintab = lt_w3mime ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD string_to_xstring.
|
||||
|
||||
CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
|
||||
EXPORTING
|
||||
text = iv_str
|
||||
IMPORTING
|
||||
buffer = rv_xstr
|
||||
EXCEPTIONS
|
||||
OTHERS = 1.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD base64_to_xstring.
|
||||
|
||||
CALL FUNCTION 'SSFC_BASE64_DECODE'
|
||||
EXPORTING
|
||||
b64data = iv_base64
|
||||
IMPORTING
|
||||
bindata = rv_xstr
|
||||
EXCEPTIONS
|
||||
OTHERS = 1.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD bintab_to_xstring.
|
||||
|
||||
CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
|
||||
EXPORTING
|
||||
input_length = lv_size
|
||||
input_length = iv_size
|
||||
IMPORTING
|
||||
buffer = rv_data
|
||||
buffer = rv_xstr
|
||||
TABLES
|
||||
binary_tab = lt_w3mime
|
||||
binary_tab = it_bintab
|
||||
EXCEPTIONS
|
||||
failed = 1 ##FM_SUBRC_OK.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD xstring_to_bintab.
|
||||
|
||||
METHOD get_webfont_link.
|
||||
|
||||
rv_link = '<link rel="stylesheet"'
|
||||
&& ' type="text/css" href="'
|
||||
&& 'https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/font/octicons.min.css'
|
||||
&& '">'. "#EC NOTEXT
|
||||
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
|
||||
EXPORTING
|
||||
buffer = iv_xstr
|
||||
IMPORTING
|
||||
output_length = ev_size
|
||||
TABLES
|
||||
binary_tab = et_bintab.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -163,6 +163,8 @@ CLASS ZCL_ABAPGIT_GUI_PAGE IMPLEMENTATION.
|
|||
|
||||
METHOD html_head.
|
||||
|
||||
DATA lv_font TYPE string.
|
||||
|
||||
CREATE OBJECT ro_html.
|
||||
|
||||
ro_html->add( '<head>' ). "#EC NOTEXT
|
||||
|
@ -174,7 +176,10 @@ CLASS ZCL_ABAPGIT_GUI_PAGE IMPLEMENTATION.
|
|||
ro_html->add( '<link rel="stylesheet" type="text/css" href="css/common.css">' ).
|
||||
ro_html->add( '<script type="text/javascript" src="js/common.js"></script>' ). "#EC NOTEXT
|
||||
|
||||
ro_html->add( zcl_abapgit_gui_asset_manager=>get_webfont_link( ) ). " Web fonts
|
||||
lv_font = |<link rel="stylesheet" type="text/css" href="|
|
||||
&& 'https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/font/octicons.min.css'
|
||||
&& '">'. "#EC NOTEXT
|
||||
ro_html->add( lv_font ). " Web fonts
|
||||
|
||||
ro_html->add( '</head>' ). "#EC NOTEXT
|
||||
|
||||
|
|
|
@ -5,14 +5,7 @@ CLASS zcl_abapgit_gui_router DEFINITION
|
|||
|
||||
PUBLIC SECTION.
|
||||
|
||||
METHODS on_event
|
||||
IMPORTING iv_action TYPE clike
|
||||
iv_prev_page TYPE clike
|
||||
iv_getdata TYPE clike OPTIONAL
|
||||
it_postdata TYPE cnht_post_data_tab OPTIONAL
|
||||
EXPORTING ei_page TYPE REF TO zif_abapgit_gui_page
|
||||
ev_state TYPE i
|
||||
RAISING zcx_abapgit_exception zcx_abapgit_cancel.
|
||||
INTERFACES zif_abapgit_gui_router.
|
||||
|
||||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
|
@ -417,7 +410,7 @@ CLASS ZCL_ABAPGIT_GUI_ROUTER IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD on_event.
|
||||
METHOD zif_abapgit_gui_router~on_event.
|
||||
|
||||
DATA: ls_event_data TYPE ty_event_data.
|
||||
|
||||
|
|
|
@ -17,11 +17,19 @@ CLASS zcl_abapgit_ui_factory DEFINITION
|
|||
RETURNING
|
||||
VALUE(ri_gui_functions) TYPE REF TO zif_abapgit_gui_functions.
|
||||
|
||||
CLASS-METHODS: get_gui
|
||||
RETURNING
|
||||
VALUE(ro_gui) TYPE REF TO zcl_abapgit_gui
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
|
||||
|
||||
PRIVATE SECTION.
|
||||
CLASS-DATA:
|
||||
gi_popups TYPE REF TO zif_abapgit_popups,
|
||||
gi_tag_popups TYPE REF TO zif_abapgit_tag_popups,
|
||||
gi_gui_functions TYPE REF TO zif_abapgit_gui_functions.
|
||||
gi_gui_functions TYPE REF TO zif_abapgit_gui_functions,
|
||||
go_gui TYPE REF TO zcl_abapgit_gui.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
@ -60,4 +68,22 @@ CLASS zcl_abapgit_ui_factory IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_gui.
|
||||
|
||||
DATA:
|
||||
li_router TYPE REF TO zif_abapgit_gui_router,
|
||||
li_asset_man TYPE REF TO zif_abapgit_gui_asset_manager.
|
||||
|
||||
IF go_gui IS INITIAL.
|
||||
CREATE OBJECT li_router TYPE zcl_abapgit_gui_router.
|
||||
CREATE OBJECT li_asset_man TYPE zcl_abapgit_gui_asset_manager.
|
||||
CREATE OBJECT go_gui
|
||||
EXPORTING
|
||||
ii_router = li_router
|
||||
ii_asset_man = li_asset_man.
|
||||
ENDIF.
|
||||
ro_gui = go_gui.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
20
src/ui/zif_abapgit_gui_asset_manager.intf.abap
Normal file
20
src/ui/zif_abapgit_gui_asset_manager.intf.abap
Normal file
|
@ -0,0 +1,20 @@
|
|||
INTERFACE zif_abapgit_gui_asset_manager
|
||||
PUBLIC .
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_web_asset,
|
||||
url TYPE w3url,
|
||||
type TYPE char50,
|
||||
subtype TYPE char50,
|
||||
content TYPE xstring,
|
||||
END OF ty_web_asset .
|
||||
TYPES:
|
||||
tt_web_assets TYPE STANDARD TABLE OF ty_web_asset WITH DEFAULT KEY .
|
||||
|
||||
METHODS get_all_assets
|
||||
RETURNING
|
||||
VALUE(rt_assets) TYPE tt_web_assets
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
|
||||
ENDINTERFACE.
|
16
src/ui/zif_abapgit_gui_asset_manager.intf.xml
Normal file
16
src/ui/zif_abapgit_gui_asset_manager.intf.xml
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_INTF" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<VSEOINTERF>
|
||||
<CLSNAME>ZIF_ABAPGIT_GUI_ASSET_MANAGER</CLSNAME>
|
||||
<VERSION>1</VERSION>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>Abapgit GUI asset manager</DESCRIPT>
|
||||
<EXPOSURE>2</EXPOSURE>
|
||||
<STATE>1</STATE>
|
||||
<UNICODE>X</UNICODE>
|
||||
</VSEOINTERF>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
17
src/ui/zif_abapgit_gui_router.intf.abap
Normal file
17
src/ui/zif_abapgit_gui_router.intf.abap
Normal file
|
@ -0,0 +1,17 @@
|
|||
INTERFACE zif_abapgit_gui_router
|
||||
PUBLIC .
|
||||
|
||||
METHODS on_event
|
||||
IMPORTING
|
||||
iv_action TYPE clike
|
||||
iv_prev_page TYPE clike
|
||||
iv_getdata TYPE clike OPTIONAL
|
||||
it_postdata TYPE cnht_post_data_tab OPTIONAL
|
||||
EXPORTING
|
||||
ei_page TYPE REF TO zif_abapgit_gui_page
|
||||
ev_state TYPE i
|
||||
RAISING
|
||||
zcx_abapgit_exception
|
||||
zcx_abapgit_cancel.
|
||||
|
||||
ENDINTERFACE.
|
16
src/ui/zif_abapgit_gui_router.intf.xml
Normal file
16
src/ui/zif_abapgit_gui_router.intf.xml
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_INTF" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<VSEOINTERF>
|
||||
<CLSNAME>ZIF_ABAPGIT_GUI_ROUTER</CLSNAME>
|
||||
<VERSION>1</VERSION>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>Abapgit GUI router</DESCRIPT>
|
||||
<EXPOSURE>2</EXPOSURE>
|
||||
<STATE>1</STATE>
|
||||
<UNICODE>X</UNICODE>
|
||||
</VSEOINTERF>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
|
@ -36,7 +36,7 @@ FORM open_gui RAISING zcx_abapgit_exception.
|
|||
ELSE.
|
||||
|
||||
zcl_abapgit_services_abapgit=>prepare_gui_startup( ).
|
||||
zcl_abapgit_gui=>get_instance( )->go_home( ).
|
||||
zcl_abapgit_ui_factory=>get_gui( )->go_home( ).
|
||||
CALL SELECTION-SCREEN 1001. " trigger screen
|
||||
|
||||
ENDIF.
|
||||
|
@ -127,7 +127,7 @@ ENDFORM.
|
|||
FORM exit RAISING zcx_abapgit_exception.
|
||||
CASE sy-ucomm.
|
||||
WHEN 'CBAC'. "Back
|
||||
IF zcl_abapgit_gui=>get_instance( )->back( ) IS INITIAL.
|
||||
IF zcl_abapgit_ui_factory=>get_gui( )->back( ) IS INITIAL.
|
||||
LEAVE TO SCREEN 1001.
|
||||
ENDIF.
|
||||
ENDCASE.
|
||||
|
|
|
@ -149,14 +149,6 @@ INTERFACE zif_abapgit_definitions PUBLIC.
|
|||
delete_tadir TYPE abap_bool,
|
||||
ddic TYPE abap_bool,
|
||||
END OF ty_metadata .
|
||||
TYPES:
|
||||
BEGIN OF ty_web_asset,
|
||||
url TYPE w3url,
|
||||
base64 TYPE string,
|
||||
content TYPE xstring,
|
||||
END OF ty_web_asset .
|
||||
TYPES:
|
||||
tt_web_assets TYPE STANDARD TABLE OF ty_web_asset WITH DEFAULT KEY .
|
||||
TYPES:
|
||||
BEGIN OF ty_repo_file,
|
||||
path TYPE string,
|
||||
|
|
|
@ -18,12 +18,6 @@
|
|||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>TT_REPO_FILES</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZIF_ABAPGIT_DEFINITIONS</CLSNAME>
|
||||
<CMPNAME>TT_WEB_ASSETS</CMPNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>TT_WEB_ASSETS</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZIF_ABAPGIT_DEFINITIONS</CLSNAME>
|
||||
<CMPNAME>TY_BITBYTE</CMPNAME>
|
||||
|
@ -222,12 +216,6 @@
|
|||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>TY_TYPE</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZIF_ABAPGIT_DEFINITIONS</CLSNAME>
|
||||
<CMPNAME>TY_WEB_ASSET</CMPNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>TY_WEB_ASSET</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
</DESCRIPTIONS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
|
|
Loading…
Reference in New Issue
Block a user