# * George Moschovitis
# (c) 2004-2005 Navel, all rights reserved.
# $Id: form.rb 335 2005-03-31 14:02:02Z gmosx $
require 'glue/hash'
require 'nitro/markup'
module N
# FormBuilder.
module FormBuilderMixin
# Render a standard form for the given managed object.
# If show_all is false then apply field filtering.
#
# Example:
#
#
'
for p in obj.class.__props
unless show_all
next if :oid == p.symbol
end
if p.klass.ancestors.include?(Integer) or
p.klass.ancestors.include?(Float)
str << %{
}
if p.meta[:markup]
val = N::Markup.compact(obj.send(p.symbol))
else
val = obj.send(p.symbol)
end
if :textarea == p.meta[:ui]
str << %{
}
else
str << %{
}
end
str << %{
}
self << str
end
end
# Abstract class for the FormBuilderMixin.
class FormBuilder
include FormBuilderMixin
class << self
def build(obj, lc = nil, show_all = false)
FormBuilder.new.build_form(obj, lc, show_all)
end
end
end
end