diff --git a/src/ui/zcl_abapgit_gui_chunk_lib.clas.abap b/src/ui/zcl_abapgit_gui_chunk_lib.clas.abap index d6dbc4b63..5230639b5 100644 --- a/src/ui/zcl_abapgit_gui_chunk_lib.clas.abap +++ b/src/ui/zcl_abapgit_gui_chunk_lib.clas.abap @@ -5,6 +5,12 @@ CLASS zcl_abapgit_gui_chunk_lib DEFINITION PUBLIC SECTION. + TYPES: + BEGIN OF ty_event_signature, + method TYPE string, + name TYPE string, + END OF ty_event_signature. + CLASS-METHODS class_constructor. CLASS-METHODS render_error IMPORTING @@ -89,6 +95,11 @@ CLASS zcl_abapgit_gui_chunk_lib DEFINITION VALUE(ro_html) TYPE REF TO zcl_abapgit_html RAISING zcx_abapgit_exception . + CLASS-METHODS render_event_as_form + IMPORTING + is_event TYPE ty_event_signature + RETURNING + VALUE(ro_html) TYPE REF TO zcl_abapgit_html. PROTECTED SECTION. PRIVATE SECTION. @@ -332,6 +343,15 @@ CLASS ZCL_ABAPGIT_GUI_CHUNK_LIB IMPLEMENTATION. ENDMETHOD. + METHOD render_event_as_form. + + CREATE OBJECT ro_html. + ro_html->add( + |
| ). + + ENDMETHOD. + + METHOD render_infopanel. DATA lv_display TYPE string. diff --git a/src/ui/zcl_abapgit_gui_component.clas.abap b/src/ui/zcl_abapgit_gui_component.clas.abap index 45c9e43c2..010005829 100644 --- a/src/ui/zcl_abapgit_gui_component.clas.abap +++ b/src/ui/zcl_abapgit_gui_component.clas.abap @@ -7,12 +7,20 @@ CLASS zcl_abapgit_gui_component DEFINITION CONSTANTS: BEGIN OF c_html_parts, - scripts TYPE string VALUE 'scripts', + scripts TYPE string VALUE 'scripts', + hidden_forms TYPE string VALUE 'hidden_forms', END OF c_html_parts. METHODS constructor RAISING zcx_abapgit_exception. PROTECTED SECTION. DATA mi_gui_services TYPE REF TO zif_abapgit_gui_services. + + METHODS register_deferred_script + IMPORTING + ii_part TYPE REF TO zif_abapgit_html + RAISING + zcx_abapgit_exception. + PRIVATE SECTION. ENDCLASS. @@ -24,4 +32,12 @@ CLASS ZCL_ABAPGIT_GUI_COMPONENT IMPLEMENTATION. METHOD constructor. mi_gui_services = zcl_abapgit_ui_factory=>get_gui_services( ). ENDMETHOD. + + + METHOD register_deferred_script. + " TODO refactor to mi_gui_services getter ! + zcl_abapgit_ui_factory=>get_gui_services( )->get_html_parts( )->add_part( + iv_collection = c_html_parts-scripts + ii_part = ii_part ). + ENDMETHOD. ENDCLASS. diff --git a/src/ui/zcl_abapgit_gui_page.clas.abap b/src/ui/zcl_abapgit_gui_page.clas.abap index e2ae91ecb..3b34ecd1b 100644 --- a/src/ui/zcl_abapgit_gui_page.clas.abap +++ b/src/ui/zcl_abapgit_gui_page.clas.abap @@ -12,18 +12,13 @@ CLASS zcl_abapgit_gui_page DEFINITION PUBLIC ABSTRACT constructor RAISING zcx_abapgit_exception. PROTECTED SECTION. - TYPES: BEGIN OF ty_control, - redirect_url TYPE string, - page_title TYPE string, - page_menu TYPE REF TO zcl_abapgit_html_toolbar, - END OF ty_control. - TYPES: BEGIN OF ty_event, - method TYPE string, - name TYPE string, - END OF ty_event. - - TYPES: tt_events TYPE STANDARD TABLE OF ty_event WITH DEFAULT KEY. + TYPES: + BEGIN OF ty_control, + redirect_url TYPE string, + page_title TYPE string, + page_menu TYPE REF TO zcl_abapgit_html_toolbar, + END OF ty_control. DATA: ms_control TYPE ty_control. @@ -31,25 +26,17 @@ CLASS zcl_abapgit_gui_page DEFINITION PUBLIC ABSTRACT RETURNING VALUE(ro_html) TYPE REF TO zcl_abapgit_html RAISING zcx_abapgit_exception. - METHODS get_events - RETURNING VALUE(rt_events) TYPE tt_events - RAISING zcx_abapgit_exception. - - METHODS render_event_as_form - IMPORTING is_event TYPE ty_event - RETURNING VALUE(ro_html) TYPE REF TO zcl_abapgit_html - RAISING zcx_abapgit_exception. - - METHODS scripts - RETURNING - VALUE(ro_html) TYPE REF TO zcl_abapgit_html - RAISING - zcx_abapgit_exception. - PRIVATE SECTION. - DATA: mo_settings TYPE REF TO zcl_abapgit_settings, - mx_error TYPE REF TO zcx_abapgit_exception, - mo_exception_viewer TYPE REF TO zcl_abapgit_exception_viewer. + DATA: + mo_settings TYPE REF TO zcl_abapgit_settings, + mx_error TYPE REF TO zcx_abapgit_exception, + mo_exception_viewer TYPE REF TO zcl_abapgit_exception_viewer. + + METHODS render_deferred_parts + IMPORTING + ii_html TYPE REF TO zif_abapgit_html + iv_part_category TYPE string. + METHODS html_head RETURNING VALUE(ro_html) TYPE REF TO zcl_abapgit_html. @@ -62,7 +49,13 @@ CLASS zcl_abapgit_gui_page DEFINITION PUBLIC ABSTRACT METHODS redirect RETURNING VALUE(ro_html) TYPE REF TO zcl_abapgit_html. - METHODS link_hints + METHODS render_link_hints + IMPORTING + io_html TYPE REF TO zcl_abapgit_html + RAISING + zcx_abapgit_exception. + + METHODS render_command_palettes IMPORTING io_html TYPE REF TO zcl_abapgit_html RAISING @@ -86,6 +79,12 @@ CLASS zcl_abapgit_gui_page DEFINITION PUBLIC ABSTRACT RAISING zcx_abapgit_exception. + METHODS scripts + RETURNING + VALUE(ro_html) TYPE REF TO zcl_abapgit_html + RAISING + zcx_abapgit_exception. + ENDCLASS. @@ -146,13 +145,6 @@ CLASS ZCL_ABAPGIT_GUI_PAGE IMPLEMENTATION. ENDMETHOD. - METHOD get_events. - - " Return actions you need on your page. - - ENDMETHOD. - - METHOD html_head. CREATE OBJECT ro_html. @@ -189,23 +181,6 @@ CLASS ZCL_ABAPGIT_GUI_PAGE IMPLEMENTATION. ENDMETHOD. - METHOD link_hints. - - DATA: lv_link_hint_key TYPE char01. - - lv_link_hint_key = mo_settings->get_link_hint_key( ). - - IF mo_settings->get_link_hints_enabled( ) = abap_true AND lv_link_hint_key IS NOT INITIAL. - - io_html->add( |activateLinkHints("{ lv_link_hint_key }");| ). - io_html->add( |setInitialFocusWithQuerySelector('a span', true);| ). - io_html->add( |enableArrowListNavigation();| ). - - ENDIF. - - ENDMETHOD. - - METHOD redirect. CREATE OBJECT ro_html. @@ -220,6 +195,34 @@ CLASS ZCL_ABAPGIT_GUI_PAGE IMPLEMENTATION. ENDMETHOD. + METHOD render_command_palettes. + + io_html->add( 'var gGoRepoPalette = new CommandPalette(enumerateTocAllRepos, {' ). + io_html->add( ' toggleKey: "F2",' ). + io_html->add( ' hotkeyDescription: "Go to repo ..."' ). + io_html->add( '});' ). + + io_html->add( 'var gCommandPalette = new CommandPalette(enumerateToolbarActions, {' ). + io_html->add( ' toggleKey: "F1",' ). + io_html->add( ' hotkeyDescription: "Command ..."' ). + io_html->add( '});' ). + + ENDMETHOD. + + + METHOD render_deferred_parts. + + DATA lt_parts TYPE zif_abapgit_html=>tty_table_of. + DATA li_part LIKE LINE OF lt_parts. + + lt_parts = mi_gui_services->get_html_parts( )->get_parts( iv_part_category ). + LOOP AT lt_parts INTO li_part. + ii_html->add( li_part ). + ENDLOOP. + + ENDMETHOD. + + METHOD render_error_message_box. " You should remember that the we have to instantiate ro_html even @@ -249,15 +252,6 @@ CLASS ZCL_ABAPGIT_GUI_PAGE IMPLEMENTATION. ENDMETHOD. - METHOD render_event_as_form. - - CREATE OBJECT ro_html. - ro_html->add( - |