    class
    	EV_GRID_ROW

    General
    	cluster: interface
    	description: "Representation of a row of an EV_GRID"
    	create: default_create

    Ancestors
    	EV_DESELECTABLE*
    	EV_GRID_ROW_ACTION_SEQUENCES
    	REFACTORING_HELPER

    Action sequences
    	collapse_actions: EV_NOTIFY_ACTION_SEQUENCE
    	deselect_actions: EV_NOTIFY_ACTION_SEQUENCE
    	expand_actions: EV_NOTIFY_ACTION_SEQUENCE
    	select_actions: EV_NOTIFY_ACTION_SEQUENCE

    Queries
    	background_color: EV_COLOR
    	count: INTEGER_32
    	data: ANY
    	foreground_color: EV_COLOR
    	has_subrow (a_row: EV_GRID_ROW): BOOLEAN
    	height: INTEGER_32
    	index: INTEGER_32
    	index_of_first_item: INTEGER_32
    	is_destroyed: BOOLEAN
    	is_expandable: BOOLEAN
    	is_expanded: BOOLEAN
    	is_index_valid_for_item_removal_if_tree_node (a_index: INTEGER_32): BOOLEAN
    	is_index_valid_for_item_setting_if_tree_node (a_index: INTEGER_32): BOOLEAN
    	is_locked: BOOLEAN
    	is_part_of_tree_structure: BOOLEAN
    	is_selectable: BOOLEAN
    	is_selected: BOOLEAN
    	is_show_requested: BOOLEAN
    	item (i: INTEGER_32): EV_GRID_ITEM
    	locked_position: INTEGER_32
    	parent: EV_GRID
    	parent_row: EV_GRID_ROW
    	parent_row_root: EV_GRID_ROW
    	selected_items: ARRAYED_LIST [EV_GRID_ITEM]
    	subrow (i: INTEGER_32): EV_GRID_ROW
    	subrow_count: INTEGER_32
    	subrow_count_recursive: INTEGER_32
    	to_implement_assertion (comment: STRING_8): BOOLEAN
    	virtual_y_position: INTEGER_32
    	virtual_y_position_unlocked: INTEGER_32

    Commands
    	add_subrow (a_row: EV_GRID_ROW)
    	clear
    	collapse
    	copy (other: [like Current] EV_GRID_ROW)
    	destroy
    	disable_select
    	enable_select
    	ensure_expandable
    	ensure_non_expandable
    	ensure_visible
    	expand
    	fixme (comment: STRING_8)
    	hide
    	insert_subrow (subrow_index: INTEGER_32)
    	insert_subrows (rows_to_insert, subrow_index: INTEGER_32)
    	lock
    	lock_at_position (a_position: INTEGER_32)
    	redraw
    	remove_subrow (a_row: EV_GRID_ROW)
    	set_background_color (a_color: EV_COLOR)
    	set_data (some_data: [like data] ANY)
    	set_foreground_color (a_color: EV_COLOR)
    	set_height (a_height: INTEGER_32)
    	set_item (i: INTEGER_32; a_item: EV_GRID_ITEM)
    	show
    	to_implement (comment: STRING_8)
    	toggle
    	unlock

    Constraints
    	no subrows implies not expanded
    	tree disabled in parent implies no subrows
    	virtual position and virtual position unlocked equal when not locked