From dc2a778baca4f0ab0073fb86f5610dd424486e08 Mon Sep 17 00:00:00 2001 From: atsy Date: Sat, 4 Jun 2016 18:12:04 +0300 Subject: [PATCH] #238, router wireframe, home page handling, TEMP CODE --- zabapgit.prog.abap | 74 ++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 68 insertions(+), 6 deletions(-) diff --git a/zabapgit.prog.abap b/zabapgit.prog.abap index 57249d61c..5e035a8d9 100644 --- a/zabapgit.prog.abap +++ b/zabapgit.prog.abap @@ -15988,9 +15988,31 @@ INTERFACE lif_gui_page. ENDINTERFACE. *----------------------------------------------------------------------* -* CLASS lcl_view DEFINITION +* CLASS lcl_gui_router DEFINITION *----------------------------------------------------------------------* -* +CLASS lcl_gui_router DEFINITION FINAL. + PUBLIC SECTION. + CONSTANTS: c_not_handled VALUE 0, + c_re_render VALUE 1, + c_new_page VALUE 2. + + METHODS on_event + IMPORTING iv_action TYPE clike + iv_frame TYPE clike OPTIONAL + iv_getdata TYPE clike OPTIONAL + it_postdata TYPE cnht_post_data_tab OPTIONAL + it_query_table TYPE cnht_query_table OPTIONAL + EXPORTING + eo_page TYPE REF TO lif_gui_page + ev_result TYPE i + RAISING lcx_exception. + + PRIVATE SECTION. + METHODS get_home_page RETURNING VALUE(ro_page) TYPE REF TO lif_gui_page. +ENDCLASS. + +*----------------------------------------------------------------------* +* CLASS lcl_gui DEFINITION *----------------------------------------------------------------------* CLASS lcl_gui DEFINITION FINAL. @@ -16003,6 +16025,9 @@ CLASS lcl_gui DEFINITION FINAL. RETURNING VALUE(rv_exit) TYPE xfeld RAISING lcx_exception. + CLASS-METHODS go_home + RAISING lcx_exception. + CLASS-METHODS call_page IMPORTING ii_page TYPE REF TO lif_gui_page RAISING lcx_exception. @@ -16029,6 +16054,7 @@ CLASS lcl_gui DEFINITION FINAL. CLASS-DATA: gi_page TYPE REF TO lif_gui_page, gt_stack TYPE TABLE OF REF TO lif_gui_page, gt_assets TYPE char40_t, + go_router TYPE REF TO lcl_gui_router, go_html_viewer TYPE REF TO cl_gui_html_viewer. CLASS-METHODS view @@ -18243,6 +18269,20 @@ CLASS lcl_gui IMPLEMENTATION. ENDMETHOD. + METHOD go_home. + " REDO ALL + + DATA li_page TYPE REF TO lif_gui_page. + CREATE OBJECT go_router. + + go_router->on_event( EXPORTING iv_action = 'home' + IMPORTING eo_page = li_page ). + + call_page( li_page ). + + ENDMETHOD. + + METHOD startup. DATA: lt_events TYPE cntl_simple_events, @@ -21294,7 +21334,6 @@ ENDCLASS. FORM run. DATA: lx_exception TYPE REF TO lcx_exception, - lo_main TYPE REF TO lcl_gui_page_main, lv_ind TYPE t000-ccnocliind. @@ -21314,9 +21353,7 @@ FORM run. lcl_background=>run( ). ELSE. lcl_gui=>startup( ). " TODO: refactor, probably make it class constructor - - CREATE OBJECT lo_main. - lcl_gui=>call_page( lo_main ). + lcl_gui=>go_home( ). CALL SELECTION-SCREEN 1001. " trigger screen ENDIF. @@ -23692,6 +23729,31 @@ CLASS lcl_gui_page_db IMPLEMENTATION. ENDCLASS. + +*----------------------------------------------------------------------* +* CLASS lcl_gui_router IMPLEMENTATION +*----------------------------------------------------------------------* +CLASS lcl_gui_router IMPLEMENTATION. + + METHOD on_event. + CASE iv_action. + WHEN 'home'. + eo_page = get_home_page( ). + ev_result = c_new_page. + WHEN OTHERS. + ev_result = c_not_handled. + ENDCASE. + ENDMETHOD. " on_event + + METHOD get_home_page. + DATA lo_home TYPE REF TO lcl_gui_page_main. + CREATE OBJECT lo_home. + ro_page = lo_home. + ENDMETHOD. " get_home_page + +ENDCLASS. " lcl_gui_router + + CLASS ltcl_git_porcelain DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT FINAL. PRIVATE SECTION.