def end_element(ns_uri, prefix, name)
if (ns_uri == XMLNS_MAP_URI) then
case (@depth)
when 1
if (name != 'map') then
raise WidgetMappingError, "invalid top level element: #{name.inspect}"
end
when 2
if (FACTORY_MAP.include? name) then
@curr_properties.check_mapping
@curr_properties = nil
else
raise WidgetMappingError, "unknown widget: #{name.inspect}"
end
when 3
@curr_properties.set_common_property(name, @curr_attr_map, @curr_value)
@curr_attr_map = nil
@curr_value = nil
else
raise WidgetMappingError, "too deep element: #{name.inspect}"
end
@depth -= 1
else
if (@depth >= 3) then
raise WidgetMappingError, "not allowed element: #{name.inspect}"
end
end
end