# File lib_wpm/wpm.rb, line 2277
    def view
      @new_call_range = Hash.new
      make_attr_desc{ |attr_desc|
        http_method = @properties.http_method
        attr_desc += ' id="' + escapeHTML(action_id) + '"'
        attr_desc += ' method="' + escapeHTML(http_method) + '"'
        attr_desc += ' enctype="' + escapeHTML(@properties.enctype) + '"' if (http_method == 'post')
        yield('<form' + attr_desc + '>')

        for component in @child_components
          component.make_page do |page_text|
            yield(page_text)
          end
        end

        unless (@new_call_range.empty?) then
          yield('<div>')
          for call_name, (call_first, call_last) in @new_call_range
            hidden_param = '<input type="hidden"'
            hidden_param += ' name="' + escapeHTML("call-range:#{call_name}") + '"'
            hidden_param += ' value="' + escapeHTML("#{call_first}-#{call_last}") + '"'
            hidden_param += ' />'
            yield(hidden_param)
          end
          yield('</div>')
        end

        yield('</form>')
      }

      nil
    end