mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00
#332 gui/pages prev_page attr, replace action
This commit is contained in:
parent
3bc3763914
commit
0f3372b0bf
|
@ -111,6 +111,7 @@ CONSTANTS: BEGIN OF gc_event_state,
|
|||
no_more_act VALUE 4,
|
||||
new_page_w_bookmark VALUE 5,
|
||||
go_back_to_bookmark VALUE 6,
|
||||
new_page_replacing VALUE 7,
|
||||
END OF gc_event_state.
|
||||
|
||||
CONSTANTS: BEGIN OF gc_html_opt,
|
||||
|
|
|
@ -14,7 +14,7 @@ CLASS lcl_gui DEFINITION FINAL CREATE PRIVATE FRIENDS lcl_app.
|
|||
|
||||
METHODS back
|
||||
IMPORTING iv_to_bookmark TYPE abap_bool DEFAULT abap_false
|
||||
RETURNING VALUE(rv_exit) TYPE xfeld
|
||||
RETURNING value(rv_exit) TYPE xfeld
|
||||
RAISING lcx_exception.
|
||||
|
||||
METHODS on_event FOR EVENT sapevent OF cl_gui_html_viewer
|
||||
|
@ -45,14 +45,18 @@ CLASS lcl_gui DEFINITION FINAL CREATE PRIVATE FRIENDS lcl_app.
|
|||
|
||||
METHODS cache_html
|
||||
IMPORTING iv_html TYPE string
|
||||
RETURNING VALUE(rv_url) TYPE w3url.
|
||||
RETURNING value(rv_url) TYPE w3url.
|
||||
|
||||
METHODS render
|
||||
RAISING lcx_exception.
|
||||
|
||||
METHODS get_current_page_name
|
||||
RETURNING value(rv_page_name) TYPE string.
|
||||
|
||||
METHODS call_page
|
||||
IMPORTING ii_page TYPE REF TO lif_gui_page
|
||||
iv_with_bookmark TYPE abap_bool DEFAULT abap_false
|
||||
iv_replacing TYPE abap_bool DEFAULT abap_false
|
||||
RAISING lcx_exception.
|
||||
|
||||
ENDCLASS. "lcl_gui DEFINITION
|
||||
|
@ -78,23 +82,25 @@ CLASS lcl_gui IMPLEMENTATION.
|
|||
IF mi_cur_page IS BOUND.
|
||||
mi_cur_page->on_event(
|
||||
EXPORTING
|
||||
iv_action = action
|
||||
iv_getdata = getdata
|
||||
it_postdata = postdata
|
||||
iv_action = action
|
||||
iv_prev_page = get_current_page_name( )
|
||||
iv_getdata = getdata
|
||||
it_postdata = postdata
|
||||
IMPORTING
|
||||
ei_page = li_page
|
||||
ev_state = lv_state ).
|
||||
ei_page = li_page
|
||||
ev_state = lv_state ).
|
||||
ENDIF.
|
||||
|
||||
IF lv_state IS INITIAL.
|
||||
mo_router->on_event(
|
||||
EXPORTING
|
||||
iv_action = action
|
||||
iv_getdata = getdata
|
||||
it_postdata = postdata
|
||||
iv_action = action
|
||||
iv_prev_page = get_current_page_name( )
|
||||
iv_getdata = getdata
|
||||
it_postdata = postdata
|
||||
IMPORTING
|
||||
ei_page = li_page
|
||||
ev_state = lv_state ).
|
||||
ei_page = li_page
|
||||
ev_state = lv_state ).
|
||||
ENDIF.
|
||||
|
||||
CASE lv_state.
|
||||
|
@ -104,6 +110,8 @@ CLASS lcl_gui IMPLEMENTATION.
|
|||
call_page( li_page ).
|
||||
WHEN gc_event_state-new_page_w_bookmark.
|
||||
call_page( ii_page = li_page iv_with_bookmark = abap_true ).
|
||||
WHEN gc_event_state-new_page_replacing.
|
||||
call_page( ii_page = li_page iv_replacing = abap_true ).
|
||||
WHEN gc_event_state-go_back.
|
||||
back( ).
|
||||
WHEN gc_event_state-go_back_to_bookmark.
|
||||
|
@ -158,7 +166,7 @@ CLASS lcl_gui IMPLEMENTATION.
|
|||
ls_stack TYPE ty_page_stack.
|
||||
FIELD-SYMBOLS <ls_asset> LIKE LINE OF lt_assets.
|
||||
|
||||
IF NOT mi_cur_page IS INITIAL.
|
||||
IF iv_replacing = abap_false AND NOT mi_cur_page IS INITIAL.
|
||||
ls_stack-page = mi_cur_page.
|
||||
ls_stack-bookmark = iv_with_bookmark.
|
||||
APPEND ls_stack TO mt_stack.
|
||||
|
@ -270,4 +278,14 @@ CLASS lcl_gui IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD. "cache_image
|
||||
|
||||
METHOD get_current_page_name.
|
||||
IF mi_cur_page IS BOUND.
|
||||
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. "get_current_page_name
|
||||
|
||||
ENDCLASS. "lcl_gui IMPLEMENTATION
|
|
@ -9,11 +9,12 @@ CLASS lcl_gui_router DEFINITION FINAL.
|
|||
PUBLIC SECTION.
|
||||
|
||||
METHODS on_event
|
||||
IMPORTING iv_action TYPE clike
|
||||
iv_getdata TYPE clike OPTIONAL
|
||||
it_postdata TYPE cnht_post_data_tab OPTIONAL
|
||||
EXPORTING ei_page TYPE REF TO lif_gui_page
|
||||
ev_state TYPE i
|
||||
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 lif_gui_page
|
||||
ev_state TYPE i
|
||||
RAISING lcx_exception.
|
||||
|
||||
PRIVATE SECTION.
|
||||
|
|
|
@ -8,11 +8,12 @@
|
|||
INTERFACE lif_gui_page.
|
||||
|
||||
METHODS on_event
|
||||
IMPORTING iv_action TYPE clike
|
||||
iv_getdata TYPE clike OPTIONAL
|
||||
it_postdata TYPE cnht_post_data_tab OPTIONAL
|
||||
EXPORTING ei_page TYPE REF TO lif_gui_page
|
||||
ev_state TYPE i
|
||||
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 lif_gui_page
|
||||
ev_state TYPE i
|
||||
RAISING lcx_exception.
|
||||
|
||||
METHODS render
|
||||
|
|
Loading…
Reference in New Issue
Block a user