Pretty Print

This commit is contained in:
YNH Webdev
2013-08-27 16:00:24 +02:00
parent 74995101d1
commit 850a05d6bb
3 changed files with 90 additions and 81 deletions

View File

@@ -8,44 +8,52 @@ class
WSF_BUTTON_CONTROL
inherit
WSF_CONTROL
create
make
feature {NONE}
make (n:STRING; v:STRING)
do
make_control
control_name:=n
text:=v
click_event:= agent donothing
end
feature
--UGLY HACK MUST BE REMOVED
donothing(p:WSF_PAGE_CONTROL)
do
end
handle_callback(event: STRING ; cname: STRING ; page: WSF_PAGE_CONTROL)
do
if Current.control_name = cname and attached click_event then
click_event.call([page])
make (n: STRING; v: STRING)
do
make_control
control_name := n
text := v
click_event := agent donothing
end
end
render:STRING
do
Result:="<button>"+text+"</button>"
end
state:JSON_OBJECT
do
create Result.make
Result.put (create {JSON_STRING}.make_json(text), create {JSON_STRING}.make_json("text"))
end
feature
--UGLY HACK MUST BE REMOVED
donothing (p: WSF_PAGE_CONTROL)
do
end
handle_callback (event: STRING; cname: STRING; page: WSF_PAGE_CONTROL)
do
if Current.control_name = cname and attached click_event then
click_event.call ([page])
end
end
render: STRING
do
Result := "<button>" + text + "</button>"
end
state: JSON_OBJECT
do
create Result.make
Result.put (create {JSON_STRING}.make_json (text), create {JSON_STRING}.make_json ("text"))
end
feature
text: STRING
click_event: PROCEDURE [ANY, TUPLE [WSF_PAGE_CONTROL]]
end

View File

@@ -6,32 +6,35 @@ note
deferred class
WSF_CONTROL
feature {NONE}
make_control
do
control_name:=""
end
do
control_name := ""
end
feature
control_name: STRING
feature {WSF_PAGE_CONTROL}
handle_callback(event: STRING ; cname: STRING ; page: WSF_PAGE_CONTROL)
deferred
end
handle_callback (event: STRING; cname: STRING; page: WSF_PAGE_CONTROL)
deferred
end
render: STRING
deferred
end
deferred
end
state: JSON_OBJECT
deferred
end
deferred
end
read_state(states:JSON_OBJECT)
do
states.put (state, create {JSON_STRING}.make_json(control_name))
end
read_state (states: JSON_OBJECT)
do
states.put (state, create {JSON_STRING}.make_json (control_name))
end
end

View File

@@ -24,57 +24,55 @@ feature -- Access
feature
initialize_controls
deferred
end
deferred
end
process
deferred
end
deferred
end
feature
execute
local
event: detachable STRING
control_name: detachable STRING
states:JSON_OBJECT
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)
local
event: detachable STRING
control_name: detachable STRING
states: JSON_OBJECT
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)
create states.make
control.read_state(states)
control.read_state (states)
response.put_header ({HTTP_STATUS_CODE}.ok, <<["Content-Type", "application/json"]>>)
response.put_string (states.representation)
else
process
render
else
process
render
end
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
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
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}