418: def insert_new_node(item)
419: if current = selection.selected
420: parent = current.parent or return
421: parent_parent = parent.parent
422: parent_type = parent.type
423: if parent_type == 'Array'
424: selected_index = parent.each_with_index do |c, i|
425: break i if c == current
426: end
427: type, content = ask_for_element(parent)
428: type or return
429: iter = model.insert_before(parent, current)
430: iter.type, iter.content = type, content
431: toplevel.display_status("Inserted an element to " +
432: "'#{parent_type}' before index #{selected_index}.")
433: window.change
434: else
435: toplevel.display_status(
436: "Cannot insert node below '#{parent_type}'!")
437: end
438: else
439: toplevel.display_status("Append a node into the root first!")
440: end
441: end