From 647beea2453e3af9095ebb62b30cbbf8fa0b87f4 Mon Sep 17 00:00:00 2001 From: YNH Webdev Date: Sun, 15 Sep 2013 15:25:13 +0200 Subject: [PATCH] Rearrange demo Add contact autocompletion --- .../autocompletion/contact_autocompletion.e | 50 +++++++++++++ .../flag_autocompletion.e | 0 .../google_autocompletion.e | 0 examples/widgetapp/demo_data.e | 50 ------------- examples/widgetapp/demo_datasource.e | 39 ---------- .../widgetapp/{ => googlenews}/google_news.e | 0 .../{ => googlenews}/google_news_datasource.e | 0 .../{ => googlenews}/google_news_repeater.e | 0 examples/widgetapp/sample_page.e | 74 ++++++++++++------- examples/widgetapp/widgetapp.ecf | 3 +- 10 files changed, 100 insertions(+), 116 deletions(-) create mode 100644 examples/widgetapp/autocompletion/contact_autocompletion.e rename examples/widgetapp/{ => autocompletion}/flag_autocompletion.e (100%) rename examples/widgetapp/{ => autocompletion}/google_autocompletion.e (100%) delete mode 100644 examples/widgetapp/demo_data.e delete mode 100644 examples/widgetapp/demo_datasource.e rename examples/widgetapp/{ => googlenews}/google_news.e (100%) rename examples/widgetapp/{ => googlenews}/google_news_datasource.e (100%) rename examples/widgetapp/{ => googlenews}/google_news_repeater.e (100%) diff --git a/examples/widgetapp/autocompletion/contact_autocompletion.e b/examples/widgetapp/autocompletion/contact_autocompletion.e new file mode 100644 index 00000000..62b494eb --- /dev/null +++ b/examples/widgetapp/autocompletion/contact_autocompletion.e @@ -0,0 +1,50 @@ +note + description: "Summary description for {CONTACT_AUTOCOMPLETION}." + author: "" + date: "$Date$" + revision: "$Revision$" + +class + CONTACT_AUTOCOMPLETION + +inherit + + WSF_AUTOCOMPLETION + +create + make + +feature {NONE} -- Initialization + + make () + do + template := "
{{=value}}
{{=company}}
"; + list := <<["Zelma Hays","Applideck","women/13"],["Little Dixon","Centregy","men/20"],["Marta Fuentes","Papricut","women/11"],["Aileen Dillon","Neteria","women/9"],["Noel Melendez","Corporana","men/19"],["Gutierrez Francis","Capscreen","men/3"],["Valerie Weiss","Zizzle","women/9"],["Mabel Hammond","Pyramax","women/19"],["Mckay Logan","Providco","men/17"],["Hazel Colon","Translink","women/14"],["Margery Whitney","Tropoli","women/21"],["Saundra Neal","Geekmosis","women/20"],["Meghan Pittman","Micronaut","women/16"],["Adrienne Woodward","Mixers","women/8"],["Harriett Macdonald","Anarco","women/4"],["Velasquez Curtis","Zensus","men/4"],["Victoria Greene","Zorromop","women/10"],["Hood Barron","Kangle","men/2"],["Mccullough Cross","Kindaloo","men/15"],["Porter Hart","Kongle","men/15"],["Fox Bryant","Columella","men/17"],["Singleton Knapp","Marketoid","men/10"],["Gracie Lane","Solgan","women/15"],["Randall Cobb","Barkarama","men/7"],["Miranda Brooks","Earwax","men/1"],["Teresa Taylor","Stockpost","women/6"]>> + + end + +feature -- Implementation + + autocompletion (input: STRING): JSON_ARRAY + local + o: JSON_OBJECT + do + create Result.make_array + across + list as c + loop + if attached {STRING} c.item.item (1) as value and attached {STRING} c.item.item (3) as img and attached {STRING} c.item.item (2) as company then + if value.as_lower.has_substring (input.as_lower) then + create o.make + o.put (create {JSON_STRING}.make_json (img), "img") + o.put (create {JSON_STRING}.make_json (value), "value") + o.put (create {JSON_STRING}.make_json (company), "company") + Result.add (o) + end + end + end + end + + list: ITERABLE [TUPLE [STRING, STRING]] + +end diff --git a/examples/widgetapp/flag_autocompletion.e b/examples/widgetapp/autocompletion/flag_autocompletion.e similarity index 100% rename from examples/widgetapp/flag_autocompletion.e rename to examples/widgetapp/autocompletion/flag_autocompletion.e diff --git a/examples/widgetapp/google_autocompletion.e b/examples/widgetapp/autocompletion/google_autocompletion.e similarity index 100% rename from examples/widgetapp/google_autocompletion.e rename to examples/widgetapp/autocompletion/google_autocompletion.e diff --git a/examples/widgetapp/demo_data.e b/examples/widgetapp/demo_data.e deleted file mode 100644 index 90171076..00000000 --- a/examples/widgetapp/demo_data.e +++ /dev/null @@ -1,50 +0,0 @@ -note - description: "Summary description for {DEMO_DATA}." - author: "" - date: "$Date$" - revision: "$Revision$" - -class - DEMO_DATA - -inherit - - WSF_ENTITY - -create - make - -feature {NONE} - - make (a_id: INTEGER; a_name, a_description: STRING) - do - id := a_id - name := a_name - description := a_description - image := "http://placehold.it/20x20&text=" + id.out - end - -feature - - id: INTEGER - - name: STRING - - description: STRING - - image: STRING - - get (field: STRING): detachable ANY - do - if field.is_equal ("id") then - Result := id - elseif field.is_equal ("name") then - Result := name - elseif field.is_equal ("description") then - Result := description - elseif field.is_equal ("image") then - Result := image - end - end - -end diff --git a/examples/widgetapp/demo_datasource.e b/examples/widgetapp/demo_datasource.e deleted file mode 100644 index c26f635e..00000000 --- a/examples/widgetapp/demo_datasource.e +++ /dev/null @@ -1,39 +0,0 @@ -note - description: "Summary description for {DEMO_DATASOURCE}." - author: "" - date: "$Date$" - revision: "$Revision$" - -class - DEMO_DATASOURCE - -inherit - - WSF_PAGABLE_DATASOURCE [DEMO_DATA] - -create - make_demo - -feature - - make_demo - do - page := 1 - page_size := 10 - end - - data: ITERABLE [DEMO_DATA] - local - list: LINKED_LIST [DEMO_DATA] - do - create list.make - across - ((page - 1) * page_size + 1) |..| (page * page_size).min (131) as c - loop - list.extend (create {DEMO_DATA}.make (c.item, "Name" + c.item.out, "desc " + c.item.out)) - end - Result := list - row_count := 132 - end - -end diff --git a/examples/widgetapp/google_news.e b/examples/widgetapp/googlenews/google_news.e similarity index 100% rename from examples/widgetapp/google_news.e rename to examples/widgetapp/googlenews/google_news.e diff --git a/examples/widgetapp/google_news_datasource.e b/examples/widgetapp/googlenews/google_news_datasource.e similarity index 100% rename from examples/widgetapp/google_news_datasource.e rename to examples/widgetapp/googlenews/google_news_datasource.e diff --git a/examples/widgetapp/google_news_repeater.e b/examples/widgetapp/googlenews/google_news_repeater.e similarity index 100% rename from examples/widgetapp/google_news_repeater.e rename to examples/widgetapp/googlenews/google_news_repeater.e diff --git a/examples/widgetapp/sample_page.e b/examples/widgetapp/sample_page.e index e234e5ea..5b2f6a58 100644 --- a/examples/widgetapp/sample_page.e +++ b/examples/widgetapp/sample_page.e @@ -10,9 +10,9 @@ class inherit BASE_PAGE - redefine - initialize_controls - end + redefine + initialize_controls + end create make @@ -24,43 +24,60 @@ feature n1_container: WSF_FORM_ELEMENT_CONTROL [STRING] n2_container: WSF_FORM_ELEMENT_CONTROL [STRING] n3_container: WSF_FORM_ELEMENT_CONTROL [STRING] + n4_container: WSF_FORM_ELEMENT_CONTROL [STRING] + n5_container: WSF_FORM_ELEMENT_CONTROL [STRING] cats_container: WSF_FORM_ELEMENT_CONTROL [LIST [STRING]] - s: FLAG_AUTOCOMPLETION do Precursor - create s.make (<<["dz", "Algeria"], ["be", "Belgium"], ["ca", "Canada"], ["de", "Deutschland"], ["england", "England"], ["fi", "Finland"], ["gr", "Greece"], ["hu", "Hungary"]>>) - - create textbox1.make_input ("txtBox1", "1") - create textbox2.make_input ("txtBox2", "2") - create autocompletion1.make_autocomplete ("autocompletion1", s) - create button1.make_button ("sample_button1", "SUM") - create textbox_result.make_html ("txtBox3", "p", "") - create progress.make_progress ("progress1") - button1.set_click_event (agent handle_click) - button1.add_class ("col-lg-offset-2") create form.make_form_control ("panel") form.add_class ("form-horizontal") - create cklist.make_checkbox_list_control ("categories") - cklist.add_control (create {WSF_CHECKBOX_CONTROL}.make_checkbox ("net", "Network", "net")) - cklist.add_control (create {WSF_CHECKBOX_CONTROL}.make_checkbox ("os", "Operating Systems", "os")) + --Number 1 + create textbox1.make_input ("txtBox1", "1") create n1_container.make_form_element ("Number1", textbox1) n1_container.add_validator (create {WSF_DECIMAL_VALIDATOR}.make_decimal_validator ("Invalid Number")) n1_container.add_validator (create {OWN_VALIDATOR}.make_own) + form.add_control (n1_container) + --Number 2 + create textbox2.make_input ("txtBox2", "2") create n2_container.make_form_element ("Number2", textbox2) n2_container.add_validator (create {WSF_DECIMAL_VALIDATOR}.make_decimal_validator ("Invalid Number")) - create n3_container.make_form_element ("Autoc1", autocompletion1) - form.add_control (n1_container) form.add_control (n2_container) + --Flag autocomplete + create s.make (<<["dz", "Algeria"], ["be", "Belgium"], ["ca", "Canada"], ["de", "Deutschland"], ["england", "England"], ["fi", "Finland"], ["gr", "Greece"], ["hu", "Hungary"]>>) + create autocompletion1.make_autocomplete ("autocompletion1", s) + create n3_container.make_form_element ("Flag Autocomplete", autocompletion1) form.add_control (n3_container) + --Contact autocomplete + create autocompletion2.make_autocomplete ("autocompletion2", create {CONTACT_AUTOCOMPLETION}.make) + create n4_container.make_form_element ("Contact Autocomplete", autocompletion2) + form.add_control (n4_container) + --Google autocomplete + create autocompletion3.make_autocomplete ("autocompletion4", create {GOOGLE_AUTOCOMPLETION}.make) + create n5_container.make_form_element ("Google Autocomplete", autocompletion3) + form.add_control (n5_container) + --Categories + create cklist.make_checkbox_list_control ("categories") + cklist.add_control (create {WSF_CHECKBOX_CONTROL}.make_checkbox ("net", "Network", "net")) + cklist.add_control (create {WSF_CHECKBOX_CONTROL}.make_checkbox ("os", "Operating Systems", "os")) + cklist.add_control (create {WSF_CHECKBOX_CONTROL}.make_checkbox ("fmfp", "Formal Methods and Functional Programming", "fmfp")) create cats_container.make_form_element ("Categories", cklist) cats_container.add_validator (create {WSF_MIN_VALIDATOR [STRING]}.make_min_validator (1, "Choose at least one category")) - cats_container.add_validator (create {WSF_MAX_VALIDATOR [STRING]}.make_max_validator (1, "Choose at most one category")) + cats_container.add_validator (create {WSF_MAX_VALIDATOR [STRING]}.make_max_validator (2, "Choose at most two category")) form.add_control (cats_container) + --Button 1 + create button1.make_button ("sample_button1", "Update") + button1.set_click_event (agent handle_click) + button1.add_class ("col-lg-offset-2") form.add_control (button1) - form.add_control (create {WSF_FORM_ELEMENT_CONTROL [STRING]}.make_form_element ("Result", textbox_result)) - + --Result + create result_html.make_html ("txtBox3", "p", "") + form.add_control (create {WSF_FORM_ELEMENT_CONTROL [STRING]}.make_form_element ("Result", result_html)) container.add_control (form) + + --Progress bar + container.add_control (create {WSF_BASIC_CONTROL}.make_with_body("h4","","Number1/Number2")) + create progress.make_progress ("progress1") container.add_control (progress) end @@ -70,7 +87,7 @@ feature do form.validate if form.is_valid then - progress.set_progress ((textbox1.text.to_integer_64 / textbox2.text.to_integer_64*100).ceiling) + progress.set_progress ((textbox1.text.to_integer_64 / textbox2.text.to_integer_64 * 100).ceiling) text := textbox1.text + " + " + textbox2.text + " = " + (textbox1.text.to_integer_64 + textbox2.text.to_integer_64).out text.append ("") - textbox_result.set_html (text) + result_html.set_html (text) else - textbox_result.set_html ("VALIDATION ERROR") + result_html.set_html ("VALIDATION ERROR") end end @@ -97,11 +114,16 @@ feature autocompletion1: WSF_AUTOCOMPLETE_CONTROL + autocompletion2: WSF_AUTOCOMPLETE_CONTROL + + autocompletion3: WSF_AUTOCOMPLETE_CONTROL + cklist: WSF_CHECKBOX_LIST_CONTROL - textbox_result: WSF_HTML_CONTROL + result_html: WSF_HTML_CONTROL form: WSF_FORM_CONTROL progress: WSF_PROGRESS_CONTROL + end diff --git a/examples/widgetapp/widgetapp.ecf b/examples/widgetapp/widgetapp.ecf index 983564b1..69cf01a3 100644 --- a/examples/widgetapp/widgetapp.ecf +++ b/examples/widgetapp/widgetapp.ecf @@ -22,7 +22,8 @@ - + +