ABAP—splitter与docking联合使用
METHOD constructor.
DATA: l_event_tab TYPE cntl_simple_events,
l_event LIKE LINE OF l_event_tab,
l_docking TYPE REF TO cl_gui_docking_container,
l_splitter TYPE REF TO cl_gui_splitter_container,
l_container_screen TYPE REF TO cl_gui_custom_container,
l_container_top TYPE REF TO cl_gui_container,
l_container_bottom TYPE REF TO cl_gui_container.
CREATE OBJECT container_html
EXPORTING container_name = 'CUSTOM_CONTROL'.
CREATE OBJECT l_docking
EXPORTING side = cl_gui_docking_container=>dock_at_left
extension = 135.
CREATE OBJECT l_splitter
EXPORTING parent = l_docking
rows = 2
columns = 1.
l_splitter->set_border(
EXPORTING border = cl_gui_cfw=>false ).
l_splitter->set_row_mode(
EXPORTING mode = l_splitter->mode_absolute ).
l_splitter->set_row_height(
EXPORTING id = 1
height = 180 ).
l_container_top =
l_splitter->get_container( row = 1 column = 1 ).
l_container_bottom =
l_splitter->get_container( row = 2 column = 1 ).
CREATE OBJECT picture
EXPORTING parent = l_container_top.
CREATE OBJECT tree
EXPORTING parent = l_container_bottom
node_selection_mode =
cl_gui_simple_tree=>node_sel_mode_single.
l_event-eventid = cl_gui_simple_tree=>eventid_node_double_click.
l_event-appl_event = ' '. "system event, does not trigger PAI
APPEND l_event TO l_event_tab.
tree->set_registered_events(
EXPORTING events = l_event_tab ).
SET HANDLER me->handle_node_double_click FOR tree.
me->fill_picture( ).
me->fill_tree( ).
ENDMETHOD. "constructor
这种用法回避了splitter container只能分割成偶数块的尴尬
效果展示: