def init_doc_args
@argument = nil
@arg_index = nil
@doc_args = Array.new
@arg_pos_map = Hash.new
@call_index_map = Hash.new
@arg_checked_alist = Array.new
@arg_check_call_index = nil
@arg_radio_alist = Array.new
@arg_radio_item_call_index = nil
arg_alist = @src.doc_args(@doc_type)
document_list = @src.document_list
radio_count = 0
if (@doc_pos < document_list.length && @doc_type == document_list[@doc_pos][@src.doc_tag]) then
arg_values = document_list[@doc_pos]['arguments']
arg_alist.each_with_index do |(arg_name, arg_type, arg_default), i|
arg_info = {
:name => arg_name,
:type => arg_type,
:default => arg_default,
:clear => false
}
case (arg_type)
when :checkset
arg_info[:value] = arg_values[i]
for check_name, checked in arg_default
@arg_checked_alist.push([ check_name, arg_info ])
end
when :radio
arg_info[:value] = arg_values[i]
radio_name = "RadioGroup#{radio_count}"
for radio_value in arg_default
@arg_radio_alist.push([ radio_name, radio_value, arg_info ])
end
radio_count += 1
else
arg_info[:value] = arg_values[i]
end
@doc_args.push(arg_info)
end
else
arg_alist.each_with_index do |(arg_name, arg_type, arg_default), i|
arg_info = {
:name => arg_name,
:type => arg_type,
:default => arg_default
}
case (arg_type)
when :select
arg_info[:value] = arg_default[0]
when :checkset
arg_checkset = Hash.new
arg_info[:value] = arg_checkset
for check_name, checked in arg_default
arg_checkset[check_name] = checked
@arg_checked_alist.push([ check_name, arg_info ])
end
when :radio
arg_info[:value] = arg_default[0]
radio_name = "RadioGroup#{radio_count}"
for radio_value in arg_default
@arg_radio_alist.push([ radio_name, radio_value, arg_info ])
end
radio_count += 1
else
arg_info[:value] = arg_default
end
@doc_args.push(arg_info)
end
end
@doc_args.each_with_index do |arg_info, i|
arg_type = arg_info[:type]
@arg_pos_map[arg_type] = Array.new unless (@arg_pos_map.include? arg_type)
@arg_pos_map[arg_type].push(i)
end
nil
end