note
description:
"[
Displays a list of items from which the user may select.
Each item has an associated check box.
]"
legal: "See notice at end of class."
status: "See notice at end of class."
keywords: "list, check, checkable"
date: "$Date$"
revision: "$Revision$"
class
EV_CHECKABLE_LIST
inherit
EV_LIST
redefine
implementation,
create_implementation
end
EV_CHECKABLE_LIST_ACTION_SEQUENCES
create
default_create,
make_with_strings
feature -- Access
checked_items: DYNAMIC_LIST [EV_LIST_ITEM]
-- All items checked in `Current'.
require
not_destroyed: not is_destroyed
do
Result := implementation.checked_items
ensure
bridge_ok: lists_equal (Result, implementation.checked_items)
end
is_item_checked (list_item: EV_LIST_ITEM): BOOLEAN
-- Is `list_item' currently checked?
require
not_destroyed: not is_destroyed
has_an_item: has (list_item)
do
Result := implementation.is_item_checked (list_item)
end
feature -- Status setting
check_item (list_item: EV_LIST_ITEM)
-- Ensure check associated with `list_item' is
-- checked.
require
not_destroyed: not is_destroyed
has_an_item: has (list_item)
do
implementation.check_item (list_item)
ensure
item_is_checked: is_item_checked (list_item)
end
uncheck_item (list_item: EV_LIST_ITEM)
-- Ensure `list_item' is not checked.
require
not_destroyed: not is_destroyed
has_an_item: has (list_item)
do
implementation.uncheck_item (list_item)
ensure
item_is_not_checked: not is_item_checked (list_item)
end
feature {EV_ANY, EV_ANY_I} -- Implementation
implementation: EV_CHECKABLE_LIST_I
-- Responsible for interaction with native graphics toolkit.
feature {NONE} -- Implementation
create_implementation
-- See `{EV_ANY}.create_implementation'.
do
create {EV_CHECKABLE_LIST_IMP} implementation.make
end
invariant
checked_items_not_void: is_usable implies checked_items /= Void
checked_items_consistent: checked_items.for_all (agent is_item_checked)
checked_items_valid: checked_items.count >= 0 and checked_items.count <= count
--checked_items_ordered: checked_items.for_all (agent valid_position )
note
copyright: "Copyright (c) 1984-2014, Eiffel Software and others"
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
source: "[
Eiffel Software
5949 Hollister Ave., Goleta, CA 93117 USA
Telephone 805-685-1006, Fax 805-685-6869
Website http://www.eiffel.com
Customer support http://support.eiffel.com
]"
end -- class EV_CHECKABLE_LIST