From 9f7e72f0a48c0095dce04a4b08c896437578acc2 Mon Sep 17 00:00:00 2001 From: YNH Webdev Date: Tue, 27 Aug 2013 14:47:43 +0200 Subject: [PATCH] Page structure --- .../server/wsf_html/webcontrol/wsf_control.e | 21 +++++ .../wsf_html/webcontrol/wsf_page_control.e | 78 +++++++++++++++++++ library/server/wsf_html/wsf_html-safe.ecf | 4 +- 3 files changed, 102 insertions(+), 1 deletion(-) create mode 100644 library/server/wsf_html/webcontrol/wsf_control.e create mode 100644 library/server/wsf_html/webcontrol/wsf_page_control.e diff --git a/library/server/wsf_html/webcontrol/wsf_control.e b/library/server/wsf_html/webcontrol/wsf_control.e new file mode 100644 index 00000000..6e7a01ea --- /dev/null +++ b/library/server/wsf_html/webcontrol/wsf_control.e @@ -0,0 +1,21 @@ +note + description: "Summary description for {WSF_CONTROL}." + author: "" + date: "$Date$" + revision: "$Revision$" + +deferred class + WSF_CONTROL +feature + name: STRING + +feature {WSF_PAGE_CONTROL} + + handle_callback(event: STRING ; control_name: STRING ; page: WSF_PAGE_CONTROL) + deferred + end + + render:STRING + deferred + end +end diff --git a/library/server/wsf_html/webcontrol/wsf_page_control.e b/library/server/wsf_html/webcontrol/wsf_page_control.e new file mode 100644 index 00000000..f4ed32f3 --- /dev/null +++ b/library/server/wsf_html/webcontrol/wsf_page_control.e @@ -0,0 +1,78 @@ +note + description: "Summary description for {WSF_PAGE_CONTROL}." + author: "" + date: "$Date$" + revision: "$Revision$" + +deferred class + WSF_PAGE_CONTROL + +feature {NONE} -- Initialization + + make (req: WSF_REQUEST; res: WSF_RESPONSE) + do + request := req + response := res + end + +feature -- Access + + request: WSF_REQUEST + + response: WSF_RESPONSE + +feature + + initialize_controls + deferred + end + + process + deferred + end + +feature + + + execute + local + event: detachable STRING + control_name: detachable STRING + do + initialize_controls + control_name := get_parameter("control_name") + event := get_parameter("event") + if attached event and attached control_name and attached control then + control.handle_callback (control_name,event, Current) + else + process + render + end + end + + render + local + data: STRING + do + data := control.render + response.put_header ({HTTP_STATUS_CODE}.ok, <<["Content-Type", "text/plain"], ["Content-Length", data.count.out]>>) + response.put_string (data) + end + + get_parameter(key: STRING) : detachable STRING + local + value: detachable WSF_VALUE + do + Result := VOID + value := request.query_parameter (key) + if attached value then + Result := value.as_string.value + end + + end + +feature {NONE} + + control: WSF_CONTROL + +end diff --git a/library/server/wsf_html/wsf_html-safe.ecf b/library/server/wsf_html/wsf_html-safe.ecf index e1b2baca..7c26d2e7 100644 --- a/library/server/wsf_html/wsf_html-safe.ecf +++ b/library/server/wsf_html/wsf_html-safe.ecf @@ -1,5 +1,5 @@ - + @@ -11,11 +11,13 @@ + +