anchor.diff:  
       METHODS repo_pull
         IMPORTING iv_key TYPE lcl_persistence_repo=>ty_repo-key
  +      RAISING   lcx_exception.
  +
  +    METHODS db_delete
  +      IMPORTING iv_getdata     TYPE clike
         RAISING   lcx_exception.
   
   ENDCLASS.
  
positive.code: 
  CLASS lcl_gui_page_db IMPLEMENTATION.
  
    METHOD delete.
  
      DATA: lo_db       TYPE REF TO lcl_persistence_db,
            lv_continue TYPE abap_bool.
  
  
      lv_continue = delete_popup( ).
      IF lv_continue = abap_false.
        RETURN.
      ENDIF.
  
      CREATE OBJECT lo_db.
  
      lo_db->delete( iv_type  = is_key-type
                     iv_value = is_key-value ).
  
      COMMIT WORK.
  
    ENDMETHOD.
  
    METHOD delete_popup.
  
      DATA: lv_answer TYPE c LENGTH 1.
  
  
      CALL FUNCTION 'POPUP_TO_CONFIRM'
        EXPORTING
          titlebar              = 'Warning'
          text_question         = 'Delete?'
          text_button_1         = 'Ok'
          icon_button_1         = 'ICON_DELETE'
          text_button_2         = 'Cancel'
          icon_button_2         = 'ICON_CANCEL'
          default_button        = '2'
          display_cancel_button = abap_false
        IMPORTING
          answer                = lv_answer
        EXCEPTIONS
          text_not_found        = 1
          OTHERS                = 2.                        "#EC NOTEXT
      IF sy-subrc <> 0.
        _raise 'error from POPUP_TO_CONFIRM'.
      ENDIF.
  
      IF lv_answer <> '2'.
        rv_continue = abap_true.
      ELSE.
        rv_continue = abap_false.
      ENDIF.
  
    ENDMETHOD.
  
    METHOD key_encode.
  
      DATA: lt_fields TYPE tihttpnvp,
            ls_field  LIKE LINE OF lt_fields.
  
  
      ls_field-name = 'TYPE'.
      ls_field-value = is_key-type.
      APPEND ls_field TO lt_fields.
  
      ls_field-name = 'VALUE'.
      ls_field-value = is_key-value.
      APPEND ls_field TO lt_fields.
  
      rv_string = cl_http_utility=>if_http_utility~fields_to_string( lt_fields ).
  
    ENDMETHOD.
  
    METHOD key_decode.
  
      DATA: lt_fields TYPE tihttpnvp,
            lv_string TYPE string.
  
      FIELD-SYMBOLS: <ls_field> LIKE LINE OF lt_fields.
  
  
      lv_string = iv_string.     " type conversion
      lt_fields = cl_http_utility=>if_http_utility~string_to_fields( lv_string ).
  
      READ TABLE lt_fields ASSIGNING <ls_field> WITH KEY name = 'TYPE'.
      IF sy-subrc = 0.
        rs_key-type = <ls_field>-value.
      ENDIF.
  
      READ TABLE lt_fields ASSIGNING <ls_field> WITH KEY name = 'VALUE'.
      IF sy-subrc = 0.
        rs_key-value = <ls_field>-value.
      ENDIF.
  
    ENDMETHOD.
  
    METHOD lif_gui_page~on_event.
  
      DATA: lo_display TYPE REF TO lcl_gui_page_db_display,
            lo_edit    TYPE REF TO lcl_gui_page_db_edit,
            ls_key     TYPE lcl_persistence_db=>ty_content.
  
  
      ls_key = key_decode( iv_getdata ).
  
      CASE iv_action.
        WHEN 'display'.
          CREATE OBJECT lo_display
            EXPORTING
              is_key = ls_key.
          lcl_gui=>get( )->call_page( lo_display ).
          rv_state = gc_event_state-no_more_act.
        WHEN 'edit'.
          CREATE OBJECT lo_edit
            EXPORTING
              is_key = ls_key.
          lcl_gui=>get( )->call_page( lo_edit ).
          rv_state = gc_event_state-no_more_act.
        WHEN 'delete'.
          delete( ls_key ).
          rv_state = gc_event_state-re_render.
      ENDCASE.
  
    ENDMETHOD.
  
    METHOD lif_gui_page~render.
  
      DATA: lt_data    TYPE lcl_persistence_db=>tt_content,
  
negative.code: CLASS lcl_gui_page_db DEFINITION FINAL INHERITING FROM lcl_gui_page_super.
  
    PUBLIC SECTION.
      METHODS lif_gui_page~render   REDEFINITION.
  
  ENDCLASS.
  
  