From b543a6b6f23ddf2bcc89df8017c524e7b347fe80 Mon Sep 17 00:00:00 2001 From: Jocelyn Fiat Date: Thu, 21 Feb 2013 19:08:26 +0100 Subject: [PATCH] Added functionalities to CMS_FORM_.. classes --- .../cms/src/kernel/form/cms_form.e | 43 +++++++++++++++++++ .../cms/src/kernel/form/cms_form_div.e | 11 +++++ .../cms/src/kernel/form/cms_form_field_set.e | 5 +++ 3 files changed, 59 insertions(+) diff --git a/draft/application/cms/src/kernel/form/cms_form.e b/draft/application/cms/src/kernel/form/cms_form.e index a40c9a15..c6fb0354 100644 --- a/draft/application/cms/src/kernel/form/cms_form.e +++ b/draft/application/cms/src/kernel/form/cms_form.e @@ -102,6 +102,20 @@ feature -- Items Result := fields_by_name_from (Current, a_name) end + items_by_css_id (a_id: READABLE_STRING_GENERAL): detachable LIST [CMS_FORM_ITEM] + do + Result := items_by_css_id_from (Current, a_id) + end + + first_item_by_css_id (a_id: READABLE_STRING_GENERAL): detachable CMS_FORM_ITEM + do + if attached items_by_css_id_from (Current, a_id) as lst then + if not lst.is_empty then + Result := lst.first + end + end + end + feature {NONE} -- Implementation: Items container_has_field (a_container: ITERABLE [CMS_FORM_ITEM]; a_name: READABLE_STRING_GENERAL): BOOLEAN @@ -144,6 +158,35 @@ feature {NONE} -- Implementation: Items Result := res end + items_by_css_id_from (a_container: ITERABLE [CMS_FORM_ITEM]; a_id: READABLE_STRING_GENERAL): detachable ARRAYED_LIST [CMS_FORM_ITEM] + local + res: detachable ARRAYED_LIST [CMS_FORM_ITEM] + do + across + a_container as i + loop + if + attached {WITH_CSS_ID} i.item as l_with_css_id and then + attached l_with_css_id.css_id as l_css_id and then + l_css_id.same_string_general (a_id) + then + if res = Void then + create res.make (1) + end + res.force (i.item) + elseif attached {ITERABLE [CMS_FORM_ITEM]} i.item as l_cont then + if attached items_by_css_id_from (l_cont, a_id) as lst then + if res = Void then + res := lst + else + res.append (lst) + end + end + end + end + Result := res + end + feature -- Change extend (i: CMS_FORM_ITEM) diff --git a/draft/application/cms/src/kernel/form/cms_form_div.e b/draft/application/cms/src/kernel/form/cms_form_div.e index e10aee74..ead7d3aa 100644 --- a/draft/application/cms/src/kernel/form/cms_form_div.e +++ b/draft/application/cms/src/kernel/form/cms_form_div.e @@ -17,6 +17,7 @@ inherit create make, make_with_item, + make_with_items, make_with_text feature {NONE} -- Initialization @@ -38,6 +39,16 @@ feature {NONE} -- Initialization extend (i) end + make_with_items (it: ITERABLE [CMS_FORM_ITEM]) + do + create items.make (2) + across + it as c + loop + extend (c.item) + end + end + feature -- Access new_cursor: ITERATION_CURSOR [CMS_FORM_ITEM] diff --git a/draft/application/cms/src/kernel/form/cms_form_field_set.e b/draft/application/cms/src/kernel/form/cms_form_field_set.e index 78d2bee6..9e18693d 100644 --- a/draft/application/cms/src/kernel/form/cms_form_field_set.e +++ b/draft/application/cms/src/kernel/form/cms_form_field_set.e @@ -51,6 +51,11 @@ feature -- Change items.force (i) end + prepend (i: CMS_FORM_ITEM) + do + items.put_front (i) + end + extend_text (t: READABLE_STRING_8) do items.force (create {CMS_FORM_RAW_TEXT}.make (t))