mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 20:03:20 +08:00
Template page (#6899)
This commit is contained in:
parent
ecdd17162a
commit
f60e92d9b9
137
src/test/zcl_abapgit_gui_page_template.clas.abap
Normal file
137
src/test/zcl_abapgit_gui_page_template.clas.abap
Normal file
|
@ -0,0 +1,137 @@
|
||||||
|
CLASS zcl_abapgit_gui_page_template DEFINITION
|
||||||
|
PUBLIC
|
||||||
|
FINAL
|
||||||
|
INHERITING FROM zcl_abapgit_gui_component
|
||||||
|
CREATE PUBLIC .
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
|
||||||
|
INTERFACES:
|
||||||
|
zif_abapgit_gui_page_title,
|
||||||
|
zif_abapgit_gui_event_handler,
|
||||||
|
zif_abapgit_gui_hotkeys,
|
||||||
|
zif_abapgit_gui_menu_provider,
|
||||||
|
zif_abapgit_gui_renderable,
|
||||||
|
" TODO: remove table interface if not used on the page
|
||||||
|
zif_abapgit_html_table.
|
||||||
|
|
||||||
|
CLASS-METHODS create
|
||||||
|
" TODO: page parameters, e.g. ref to repo
|
||||||
|
* IMPORTING
|
||||||
|
* ii_repo TYPE REF TO zif_abapgit_repo
|
||||||
|
RETURNING
|
||||||
|
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
|
METHODS constructor
|
||||||
|
* IMPORTING
|
||||||
|
* ii_repo TYPE REF TO zif_abapgit_repo
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
|
PROTECTED SECTION.
|
||||||
|
PRIVATE SECTION.
|
||||||
|
|
||||||
|
CONSTANTS:
|
||||||
|
BEGIN OF c_action,
|
||||||
|
" TODO: List of in-page actions
|
||||||
|
refresh TYPE string VALUE 'refresh',
|
||||||
|
END OF c_action.
|
||||||
|
|
||||||
|
CONSTANTS c_title TYPE string VALUE 'Page Template'. " TODO: define page title
|
||||||
|
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CLASS ZCL_ABAPGIT_GUI_PAGE_TEMPLATE IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD constructor.
|
||||||
|
super->constructor( ).
|
||||||
|
" ...
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD create.
|
||||||
|
|
||||||
|
" TODO: replace with name of class (self)
|
||||||
|
DATA lo_component TYPE REF TO zcl_abapgit_gui_page_template.
|
||||||
|
|
||||||
|
CREATE OBJECT lo_component.
|
||||||
|
|
||||||
|
ri_page = zcl_abapgit_gui_page_hoc=>create( lo_component ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_gui_event_handler~on_event.
|
||||||
|
|
||||||
|
CASE ii_event->mv_action.
|
||||||
|
" TODO: action handling, refresh is just an example
|
||||||
|
WHEN c_action-refresh.
|
||||||
|
rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render.
|
||||||
|
WHEN 'xyz'.
|
||||||
|
ASSERT 1 = 1.
|
||||||
|
ENDCASE.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_gui_hotkeys~get_hotkey_actions.
|
||||||
|
|
||||||
|
DATA ls_hotkey_action LIKE LINE OF rt_hotkey_actions.
|
||||||
|
|
||||||
|
ls_hotkey_action-ui_component = c_title.
|
||||||
|
|
||||||
|
" TODO: define hotkeys
|
||||||
|
|
||||||
|
ls_hotkey_action-description = 'Refresh'.
|
||||||
|
ls_hotkey_action-action = c_action-refresh.
|
||||||
|
ls_hotkey_action-hotkey = 'r'.
|
||||||
|
INSERT ls_hotkey_action INTO TABLE rt_hotkey_actions.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_gui_menu_provider~get_menu.
|
||||||
|
|
||||||
|
" TODO: top level menu
|
||||||
|
|
||||||
|
ro_toolbar = zcl_abapgit_html_toolbar=>create( )->add(
|
||||||
|
iv_txt = 'Refresh'
|
||||||
|
iv_act = c_action-refresh ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_gui_page_title~get_page_title.
|
||||||
|
rv_title = c_title. " Fixed title
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_gui_renderable~render.
|
||||||
|
|
||||||
|
register_handlers( ).
|
||||||
|
|
||||||
|
ri_html = zcl_abapgit_html=>create( ).
|
||||||
|
|
||||||
|
" TODO: do your rendering
|
||||||
|
|
||||||
|
ri_html->div(
|
||||||
|
iv_class = 'template'
|
||||||
|
iv_content = 'Hello!' ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_html_table~get_row_attrs.
|
||||||
|
" ... in case of table on the page, otherwise remove the interface at all
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_html_table~render_cell.
|
||||||
|
" ... in case of table on the page, otherwise remove the interface at all
|
||||||
|
ENDMETHOD.
|
||||||
|
ENDCLASS.
|
16
src/test/zcl_abapgit_gui_page_template.clas.xml
Normal file
16
src/test/zcl_abapgit_gui_page_template.clas.xml
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
||||||
|
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||||
|
<asx:values>
|
||||||
|
<VSEOCLASS>
|
||||||
|
<CLSNAME>ZCL_ABAPGIT_GUI_PAGE_TEMPLATE</CLSNAME>
|
||||||
|
<LANGU>E</LANGU>
|
||||||
|
<DESCRIPT>abapGit GUI page template (for copy/paste)</DESCRIPT>
|
||||||
|
<STATE>1</STATE>
|
||||||
|
<CLSCCINCL>X</CLSCCINCL>
|
||||||
|
<FIXPT>X</FIXPT>
|
||||||
|
<UNICODE>X</UNICODE>
|
||||||
|
</VSEOCLASS>
|
||||||
|
</asx:values>
|
||||||
|
</asx:abap>
|
||||||
|
</abapGit>
|
Loading…
Reference in New Issue
Block a user