# File lib/json/editor.rb, line 596
596:       def sort(item)
597:         if current = selection.selected
598:           if current.type == 'Array'
599:             parent = current.parent
600:             ary = Editor.model2data(current)
601:             order, reverse = ask_for_order
602:             order or return
603:             begin
604:               block = eval "lambda { |x| #{order} }"
605:               if reverse
606:                 ary.sort! { |a,b| block[b] <=> block[a] }
607:               else
608:                 ary.sort! { |a,b| block[a] <=> block[b] }
609:               end
610:             rescue => e
611:               Editor.error_dialog(self, "Failed to sort Array with #{order}: #{e}!")
612:             else
613:               Editor.data2model(ary, model, parent) do |m|
614:                 m.insert_before(parent, current)
615:               end
616:               model.remove(current)
617:               expand_collapse(parent)
618:               window.change
619:               toplevel.display_status("Array has been sorted.")
620:             end
621:           else
622:             toplevel.display_status("Only Array nodes can be sorted!")
623:           end
624:         else
625:             toplevel.display_status("Select an Array to sort first!")
626:         end
627:       end