Class: Osaka::Pages

Inherits:
TypicalApplication show all
Defined in:
lib/osaka/pages.rb

Instance Attribute Summary

Attributes inherited from TypicalApplication

#control

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from TypicalApplication

#activate, #close, #close_dialog_sheet_with_dont_save, #copy, #create_dialog, #create_document, #cut, #do_and_wait_for_new_window, #duplicate, #duplicate_and_close_original, #duplicate_available?, #focus, #get_info, #initialize_copy, #open, #paste, #print_dialog, #quit, #raise_error_on_open_standard_windows, #running?, #save, #save_as, #save_pops_up_dialog?, #select_all, #select_file_from_open_dialog, #wait_for_application_to_quit, #wait_for_save_dialog_and_save_file, #wait_for_window_and_dialogs_to_close

Constructor Details

#initializePages

Returns a new instance of Pages.



77
78
79
# File 'lib/osaka/pages.rb', line 77

def initialize
  super "Pages"
end

Class Method Details

.create_document(filename, &block) ⇒ Object



85
86
87
88
# File 'lib/osaka/pages.rb', line 85

def self.create_document(filename, &block)
  pages = Osaka::Pages.new
  pages.create_document(filename, &block)
end

Instance Method Details

#inspectorObject



129
130
131
132
133
134
135
136
137
138
139
# File 'lib/osaka/pages.rb', line 129

def inspector
  if !control.exists?(at.menu_item("Show Inspector").menu(1).menu_bar_item("View").menu_bar(1))
    control.click_menu_bar(at.menu_item("Hide Inspector"), "View")
    control.wait_until_exists(at.menu_item("Show Inspector").menu(1).menu_bar_item("View").menu_bar(1))
  end

  window_name = do_and_wait_for_new_window {
    control.click_menu_bar(at.menu_item("Show Inspector"), "View")
  }
  PagesInspector.new(control.name, at.window(window_name))
end

#mail_mergeObject



116
117
118
119
120
# File 'lib/osaka/pages.rb', line 116

def mail_merge
  control.click_menu_bar(at.menu_item(20), "Edit")
  control.wait_until_exists(at.button("Merge").sheet(1))
  PagesMailMergeDialog.new(at.sheet(1), control)
end

#mail_merge_field(field_name) ⇒ Object



112
113
114
# File 'lib/osaka/pages.rb', line 112

def mail_merge_field(field_name)
  control.click_menu_bar(at.menu_item(field_name).menu(1).menu_item("Merge Field"), "Insert")
end

#mail_merge_to_pdf(filename) ⇒ Object



122
123
124
125
126
127
# File 'lib/osaka/pages.rb', line 122

def mail_merge_to_pdf(filename)
  mail_merge_dialog = mail_merge
  mail_merge_dialog.set_merge_to_printer
  print_dialog = mail_merge_dialog.merge
  print_dialog.save_as_pdf(filename)
end

#new_documentObject



90
91
92
93
94
95
96
97
# File 'lib/osaka/pages.rb', line 90

def new_document
  super
  if control.current_window_name == "Template Chooser"
    control.set_current_window(do_and_wait_for_new_window {
      control.click(at.button("Choose").window("Template Chooser"))
    })
  end
end

#set_mail_merge_document(filename) ⇒ Object



99
100
101
102
103
104
105
106
107
108
109
110
# File 'lib/osaka/pages.rb', line 99

def set_mail_merge_document(filename)
  inspector.change_mail_merge_source
  control.wait_until_exists(at.sheet(1))
  open_dialog = do_and_wait_for_new_window {
    control.click(at.radio_button("Numbers Document:").radio_group(1).sheet(1))
  }
  select_file_from_open_dialog(filename, at.window(open_dialog))
  if (control.exists?(at.sheet(1).sheet(1)))
    raise(PagesError, "Setting Mail Merge numbers file failed")
  end
  control.click(at.button("OK").sheet(1))
end

#type(text) ⇒ Object



81
82
83
# File 'lib/osaka/pages.rb', line 81

def type(text)
  control.keystroke(text)
end