abap2xlsx/src/zcl_excel_theme_elements.clas.abap
2017-05-18 16:44:58 +00:00

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.