CLASS zcl_abapgit_gui_page_db DEFINITION
PUBLIC
INHERITING FROM zcl_abapgit_gui_page
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES: zif_abapgit_gui_page_hotkey.
METHODS constructor .
METHODS zif_abapgit_gui_page~on_event
REDEFINITION .
PROTECTED SECTION.
METHODS render_content
REDEFINITION .
PRIVATE SECTION.
CONSTANTS:
BEGIN OF gc_action,
delete TYPE string VALUE 'delete',
END OF gc_action .
CLASS-METHODS delete
IMPORTING
!is_key TYPE zif_abapgit_persistence=>ty_content
RAISING
zcx_abapgit_exception
zcx_abapgit_cancel .
METHODS explain_content
IMPORTING
!is_data TYPE zif_abapgit_persistence=>ty_content
RETURNING
VALUE(rv_text) TYPE string
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS ZCL_ABAPGIT_GUI_PAGE_DB IMPLEMENTATION.
METHOD constructor.
super->constructor( ).
ms_control-page_title = 'DATABASE PERSISTENCY'.
ENDMETHOD. " constructor.
METHOD delete.
DATA: lv_answer TYPE c LENGTH 1.
ASSERT is_key-type IS NOT INITIAL.
lv_answer = zcl_abapgit_ui_factory=>get_popups( )->popup_to_confirm(
iv_titlebar = 'Warning'
iv_text_question = 'Delete?'
iv_text_button_1 = 'Ok'
iv_icon_button_1 = 'ICON_DELETE'
iv_text_button_2 = 'Cancel'
iv_icon_button_2 = 'ICON_CANCEL'
iv_default_button = '2'
iv_display_cancel_button = abap_false ). "#EC NOTEXT
IF lv_answer = '2'.
RAISE EXCEPTION TYPE zcx_abapgit_cancel.
ENDIF.
zcl_abapgit_persistence_db=>get_instance( )->delete(
iv_type = is_key-type
iv_value = is_key-value ).
COMMIT WORK.
ENDMETHOD. " delete
METHOD explain_content.
DATA: ls_result TYPE match_result,
ls_match TYPE submatch_result,
lv_cnt TYPE i.
CASE is_data-type.
WHEN 'REPO'.
FIND FIRST OCCURRENCE OF REGEX '
{ rv_text }|. ENDCASE. ENDMETHOD. "explain_content METHOD render_content. DATA: lt_data TYPE zif_abapgit_persistence=>tt_content, lv_action TYPE string, lv_trclass TYPE string, lo_toolbar TYPE REF TO zcl_abapgit_html_toolbar. FIELD-SYMBOLS:
Type | ' ). ro_html->add( 'Key | ' ). ro_html->add( 'Data | ' ). ro_html->add( '' ). ro_html->add( ' |
---|---|---|---|
{ | | ).
ro_html->add( |{ | | ).
ro_html->add( |{ explain_content( | | ).
ro_html->add( '' ). ro_html->add( lo_toolbar->render( ) ). ro_html->add( ' | ' ). ro_html->add( '