Class: JSON::Editor::FileMenu

Inherits:
Object
  • Object
show all
Includes:
MenuExtension
Defined in:
lib/json/editor.rb

Overview

This class creates the File pulldown menu.

Instance Attribute Summary

Attributes included from MenuExtension

#menu, #treeview

Instance Method Summary collapse

Methods included from MenuExtension

#add_item, #add_separator, #initialize, #method_missing

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class JSON::Editor::MenuExtension

Instance Method Details

#createObject

Create the menu.



527
528
529
530
531
532
533
534
535
536
537
538
539
540
# File 'lib/json/editor.rb', line 527

def create
  title = MenuItem.new('File')
  title.submenu = menu
  add_item('New', &method(:new))
  add_item('Open', ?o, &method(:open))
  add_item('Open location', ?l, &method(:open_location))
  add_item('Revert', &method(:revert))
  add_separator
  add_item('Save', ?s, &method(:save))
  add_item('Save As', ?S, &method(:save_as))
  add_separator
  add_item('Quit', ?q, &method(:quit))
  title
end

#new(item) ⇒ Object

Clear the model and filename, but ask to save the JSON document, if unsaved changes have occured.



490
491
492
# File 'lib/json/editor.rb', line 490

def new(item)
  window.clear
end

#open(item) ⇒ Object

Open a file and load it into the editor. Ask to save the JSON document first, if unsaved changes have occured.



496
497
498
# File 'lib/json/editor.rb', line 496

def open(item)
  window.file_open
end

#open_location(item) ⇒ Object



500
501
502
# File 'lib/json/editor.rb', line 500

def open_location(item)
  window.location_open
end

#quit(item) ⇒ Object

Quit the editor, after asking to save any unsaved changes first.



522
523
524
# File 'lib/json/editor.rb', line 522

def quit(item)
  window.quit
end

#revert(item) ⇒ Object

Revert the current JSON document in the editor to the saved version.



505
506
507
508
509
# File 'lib/json/editor.rb', line 505

def revert(item)
  window.instance_eval do
    @filename and file_open(@filename) 
  end
end

#save(item) ⇒ Object

Save the current JSON document.



512
513
514
# File 'lib/json/editor.rb', line 512

def save(item)
  window.file_save
end

#save_as(item) ⇒ Object

Save the current JSON document under the given filename.



517
518
519
# File 'lib/json/editor.rb', line 517

def save_as(item)
  window.file_save_as
end