mirror of
https://github.com/abap2xlsx/abap2xlsx.git
synced 2025-05-05 19:38:15 +08:00
81 lines
2.6 KiB
ABAP
81 lines
2.6 KiB
ABAP
class ZCL_EXCEL_THEME_ELEMENTS definition
|
|
public
|
|
final
|
|
create public
|
|
|
|
global friends ZCL_EXCEL_THEME .
|
|
|
|
public section.
|
|
|
|
constants C_COLOR_SCHEME type STRING value 'clrScheme'. "#EC NOTEXT
|
|
constants C_FONT_SCHEME type STRING value 'fontScheme'. "#EC NOTEXT
|
|
constants C_FMT_SCHEME type STRING value 'fmtScheme'. "#EC NOTEXT
|
|
constants C_THEME_ELEMENTS type STRING value 'themeElements'. "#EC NOTEXT
|
|
|
|
methods CONSTRUCTOR .
|
|
methods LOAD
|
|
importing
|
|
!IO_ELEMENTS type ref to IF_IXML_ELEMENT .
|
|
methods BUILD_XML
|
|
importing
|
|
!IO_DOCUMENT type ref to IF_IXML_DOCUMENT .
|
|
protected section.
|
|
|
|
data COLOR_SCHEME type ref to ZCL_EXCEL_THEME_COLOR_SCHEME .
|
|
data FONT_SCHEME type ref to ZCL_EXCEL_THEME_FONT_SCHEME .
|
|
data FMT_SCHEME type ref to ZCL_EXCEL_THEME_FMT_SCHEME .
|
|
private section.
|
|
ENDCLASS.
|
|
|
|
|
|
|
|
CLASS ZCL_EXCEL_THEME_ELEMENTS IMPLEMENTATION.
|
|
|
|
|
|
method build_xml.
|
|
data: lo_theme_element type ref to if_ixml_element.
|
|
data: lo_theme type ref to if_ixml_element.
|
|
check io_document is bound.
|
|
lo_theme ?= io_document->get_root_element( ).
|
|
if lo_theme is bound.
|
|
lo_theme_element ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix
|
|
name = c_theme_elements
|
|
parent = lo_theme ).
|
|
|
|
color_scheme->build_xml( io_document = io_document ).
|
|
font_scheme->build_xml( io_document = io_document ).
|
|
fmt_scheme->build_xml( io_document = io_document ).
|
|
endif.
|
|
endmethod.
|
|
|
|
|
|
method constructor.
|
|
create object color_scheme.
|
|
create object font_scheme.
|
|
create object fmt_scheme.
|
|
endmethod. "constructor
|
|
|
|
|
|
method load.
|
|
data: lo_elements_children type ref to if_ixml_node_list.
|
|
data: lo_elements_iterator type ref to if_ixml_node_iterator.
|
|
data: lo_elements_element type ref to if_ixml_element.
|
|
check io_elements is not initial.
|
|
|
|
lo_elements_children = io_elements->get_children( ).
|
|
lo_elements_iterator = lo_elements_children->create_iterator( ).
|
|
lo_elements_element ?= lo_elements_iterator->get_next( ).
|
|
while lo_elements_element is bound.
|
|
case lo_elements_element->get_name( ).
|
|
when c_color_scheme.
|
|
color_scheme->load( io_color_scheme = lo_elements_element ).
|
|
when c_font_scheme.
|
|
font_scheme->load( io_font_scheme = lo_elements_element ).
|
|
when c_fmt_scheme.
|
|
fmt_scheme->load( io_fmt_scheme = lo_elements_element ).
|
|
endcase.
|
|
lo_elements_element ?= lo_elements_iterator->get_next( ).
|
|
endwhile.
|
|
endmethod. "load
|
|
ENDCLASS.
|