playground page userexit #350

This commit is contained in:
sbcgua 2016-09-21 20:29:18 +03:00
parent e9690b3239
commit 2db16f281b
5 changed files with 69 additions and 0 deletions

View File

@ -68,6 +68,7 @@ INCLUDE zabapgit_transport.
INCLUDE zabapgit_services. " All services here
INCLUDE zabapgit_gui_pages. " All GUI pages here
INCLUDE zabapgit_gui_pages_userexit IF FOUND.
INCLUDE zabapgit_gui_router.
INCLUDE zabapgit_gui.

View File

@ -177,5 +177,6 @@ CONSTANTS: BEGIN OF gc_action,
go_stage TYPE string VALUE 'go_stage',
go_commit TYPE string VALUE 'go_commit',
go_branch_overview TYPE string VALUE 'go_branch_overview',
go_playground TYPE string VALUE 'go_playground',
jump TYPE string VALUE 'jump',
END OF gc_action.

View File

@ -50,6 +50,10 @@ CLASS lcl_gui_router DEFINITION FINAL.
RETURNING VALUE(ri_page) TYPE REF TO lif_gui_page
RAISING lcx_exception.
METHODS get_page_playground
RETURNING VALUE(ri_page) TYPE REF TO lif_gui_page
RAISING lcx_exception lcx_cancel.
ENDCLASS.
*----------------------------------------------------------------------*
@ -88,6 +92,9 @@ CLASS lcl_gui_router IMPLEMENTATION.
WHEN gc_action-go_branch_overview. " Go repo branch overview
ei_page = get_page_branch_overview( iv_getdata ).
ev_state = gc_event_state-new_page.
WHEN gc_action-go_playground. " Create playground page
ei_page = get_page_playground( ).
ev_state = gc_event_state-new_page.
" SAP GUI actions
WHEN gc_action-jump.
@ -286,4 +293,22 @@ CLASS lcl_gui_router IMPLEMENTATION.
ENDMETHOD. "get_page_background
METHOD get_page_playground.
DATA: lv_class_name TYPE string,
lv_cancel TYPE abap_bool.
lcl_popups=>run_page_class_popup( IMPORTING ev_name = lv_class_name
ev_cancel = lv_cancel ).
IF lv_cancel = abap_true.
RAISE EXCEPTION TYPE lcx_cancel.
ENDIF.
TRY.
CREATE OBJECT ri_page TYPE (lv_class_name).
CATCH cx_sy_create_object_error.
lcx_exception=>raise( |Cannot create page class { lv_class_name }| ).
ENDTRY.
ENDMETHOD. "get_page_playground
ENDCLASS. " lcl_gui_router

View File

@ -144,6 +144,7 @@ CLASS lcl_gui_page_main IMPLEMENTATION.
lo_betasub->add( iv_txt = 'Database util' iv_act = gc_action-go_db ) ##NO_TEXT.
lo_betasub->add( iv_txt = 'Package to zip' iv_act = gc_action-zip_package ) ##NO_TEXT.
lo_betasub->add( iv_txt = 'Transport to zip' iv_act = gc_action-zip_transport ) ##NO_TEXT.
lo_betasub->add( iv_txt = 'Page playground' iv_act = gc_action-go_playground ) ##NO_TEXT.
ro_menu->add( iv_txt = 'Clone' iv_act = gc_action-repo_clone ) ##NO_TEXT.
ro_menu->add( iv_txt = 'Explore' iv_act = gc_action-go_explore ) ##NO_TEXT.

View File

@ -23,6 +23,10 @@ CLASS lcl_popups DEFINITION.
EXPORTING ev_name TYPE string
ev_cancel TYPE abap_bool
RAISING lcx_exception,
run_page_class_popup
EXPORTING ev_name TYPE string
ev_cancel TYPE abap_bool
RAISING lcx_exception,
repo_new_offline
RETURNING VALUE(rs_popup) TYPE ty_popup
RAISING lcx_exception,
@ -142,6 +146,43 @@ CLASS lcl_popups IMPLEMENTATION.
ENDMETHOD.
METHOD run_page_class_popup.
DATA: lv_answer TYPE c LENGTH 1,
lt_fields TYPE TABLE OF sval.
FIELD-SYMBOLS: <ls_field> LIKE LINE OF lt_fields.
CLEAR: ev_name, ev_cancel.
* TAB FLD LABEL DEF ATTR
_add_dialog_fld 'TEXTL' 'LINE' 'Name' 'lcl_gui_page_' ''.
CALL FUNCTION 'POPUP_GET_VALUES'
EXPORTING
popup_title = 'Run page manually'
IMPORTING
returncode = lv_answer
TABLES
fields = lt_fields
EXCEPTIONS
error_in_fields = 1
OTHERS = 2 ##NO_TEXT.
IF sy-subrc <> 0.
lcx_exception=>raise( 'error from POPUP_GET_VALUES' ).
ENDIF.
IF lv_answer = 'A'.
ev_cancel = abap_true.
ELSE.
READ TABLE lt_fields INDEX 1 ASSIGNING <ls_field>.
ASSERT sy-subrc = 0.
ev_name = to_upper( <ls_field>-value ).
ENDIF.
ENDMETHOD. "run_page_class_popup
METHOD repo_new_offline.
DATA: lv_returncode TYPE c,