From b7a6b9ba3979efbdfbbe97974fb74105b060f9e5 Mon Sep 17 00:00:00 2001 From: atsy Date: Sun, 22 May 2016 10:44:05 +0200 Subject: [PATCH] #221, refactor lcl_html_toolbar, move beta features to menu, improve header css --- zabapgit.prog.abap | 178 +++++++++++++++++++++++++++++---------------- 1 file changed, 115 insertions(+), 63 deletions(-) diff --git a/zabapgit.prog.abap b/zabapgit.prog.abap index 04250112c..459b2df88 100644 --- a/zabapgit.prog.abap +++ b/zabapgit.prog.abap @@ -376,16 +376,18 @@ ENDCLASS. "lcl_html_helper IMPLEMENTATION CLASS lcl_html_toolbar DEFINITION FINAL. PUBLIC SECTION. METHODS add IMPORTING iv_txt TYPE string - iv_cmd TYPE string. - METHODS render IMPORTING iv_tag TYPE string DEFAULT 'span' - ib_right TYPE abap_bool OPTIONAL + iv_sub TYPE REF TO lcl_html_toolbar OPTIONAL + iv_cmd TYPE string OPTIONAL. + METHODS render IMPORTING iv_as_droplist_with_label TYPE string OPTIONAL + ib_no_separator TYPE abap_bool OPTIONAL RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper. PRIVATE SECTION. - TYPES: BEGIN OF ty_item, - txt TYPE string, - cmd TYPE string, - END OF ty_item. + TYPES: BEGIN OF ty_item, + txt TYPE string, + cmd TYPE string, + sub TYPE REF TO lcl_html_toolbar, + END OF ty_item. TYPES: tt_items TYPE STANDARD TABLE OF ty_item. DATA mt_items TYPE tt_items. @@ -400,40 +402,60 @@ CLASS lcl_html_toolbar IMPLEMENTATION. METHOD add. DATA ls_item TYPE ty_item. + ASSERT iv_cmd IS INITIAL AND iv_sub IS NOT INITIAL + OR iv_cmd IS NOT INITIAL AND iv_sub IS INITIAL. " Only one supplied + ls_item-txt = iv_txt. ls_item-cmd = iv_cmd. + ls_item-sub = iv_sub. APPEND ls_item TO mt_items. ENDMETHOD. METHOD render. - DATA lo_html TYPE REF TO lcl_html_helper. - DATA lv_class TYPE string. - FIELD-SYMBOLS TYPE ty_item. + DATA lo_html TYPE REF TO lcl_html_helper. + DATA lv_class TYPE string. + DATA lb_last TYPE abap_bool. + FIELD-SYMBOLS TYPE ty_item. CREATE OBJECT lo_html. - IF iv_tag IS INITIAL. - RETURN. + IF iv_as_droplist_with_label IS INITIAL. + lv_class = 'menu'. + ELSE. + lv_class = 'dropdown'. + IF ib_no_separator = abap_true. + lv_class = lv_class && ' menu_end'. + ENDIF. ENDIF. - lv_class = 'menu'. - IF ib_right = abap_true. - lv_class = lv_class && ' right'. - ENDIF. + lo_html->add( |
| ). - lo_html->add( |<{ iv_tag } class="{ lv_class }">| ). + IF iv_as_droplist_with_label IS NOT INITIAL. + lo_html->add( || ). + lo_html->add( '' ). + ENDIF. + + lo_html->add( '
' ). ro_html = lo_html. ENDMETHOD. @@ -17732,17 +17754,18 @@ CLASS lcl_gui_page_super IMPLEMENTATION. CREATE OBJECT ro_html. ro_html->add( '