Class: TE3270::Emulators::Extra
- Inherits:
-
Object
- Object
- TE3270::Emulators::Extra
- Defined in:
- lib/te3270/emulators/extra.rb
Overview
This class has the code necessary to communicate with the terminal emulator called EXTRA! X-treme. You can use this emulator by providing the :extra parameter to the constructor of your screen object or by passing the same value to the emulator_for method on the TE3270 module.
Instance Attribute Summary collapse
-
#max_wait_time ⇒ Object
writeonly
Sets the attribute max_wait_time.
-
#session_file ⇒ Object
writeonly
Sets the attribute session_file.
-
#visible ⇒ Object
writeonly
Sets the attribute visible.
-
#window_state ⇒ Object
writeonly
Sets the attribute window_state.
Instance Method Summary collapse
-
#connect {|_self| ... } ⇒ Object
Creates a method to connect to Extra System.
-
#disconnect ⇒ Object
Disconnects the Extra System connection.
-
#get_string(row, column, length) ⇒ String
Extracts text of specified length from a start point.
-
#put_string(str, row, column) ⇒ Object
Puts string at the coordinates specified.
-
#screenshot(filename) ⇒ Object
Creates a method to take screenshot of the active screen.
-
#send_keys(keys) ⇒ Object
Sends keystrokes to the host, including function keys.
-
#text ⇒ String
Returns the text of the active screen.
-
#wait_for_host(seconds) ⇒ Object
Waits for the host to not send data for a specified number of seconds.
-
#wait_for_string(str, row, column) ⇒ Object
Wait for the string to appear at the specified location.
-
#wait_until_cursor_at(row, column) ⇒ Object
Waits until the cursor is at the specified location.
Instance Attribute Details
#max_wait_time=(value) ⇒ Object
Sets the attribute max_wait_time
21 22 23 |
# File 'lib/te3270/emulators/extra.rb', line 21 def max_wait_time=(value) @max_wait_time = value end |
#session_file=(value) ⇒ Object (writeonly)
Sets the attribute session_file
21 22 23 |
# File 'lib/te3270/emulators/extra.rb', line 21 def session_file=(value) @session_file = value end |
#visible=(value) ⇒ Object
Sets the attribute visible
21 22 23 |
# File 'lib/te3270/emulators/extra.rb', line 21 def visible=(value) @visible = value end |
#window_state=(value) ⇒ Object
Sets the attribute window_state
21 22 23 |
# File 'lib/te3270/emulators/extra.rb', line 21 def window_state=(value) @window_state = value end |
Instance Method Details
#connect {|_self| ... } ⇒ Object
Creates a method to connect to Extra System. This method expects a block in which certain platform specific values can be set. Extra can take the following parameters.
-
session_file - this value is required and should be the filename of the session.
-
visible - determines if the emulator is visible or not. If not set it will default to
true. -
window_state - determines the state of the session window. Valid values are
:minimized,:normal, and:maximized. If not set it will default to:normal.
41 42 43 44 45 46 47 48 49 |
# File 'lib/te3270/emulators/extra.rb', line 41 def connect start_extra_system yield self if block_given? raise 'The session file must be set in a block when calling connect with the Extra emulator.' if @session_file.nil? open_session @screen = session.Screen @area = screen.SelectAll end |
#disconnect ⇒ Object
Disconnects the Extra System connection
54 55 56 |
# File 'lib/te3270/emulators/extra.rb', line 54 def disconnect system.Quit end |
#get_string(row, column, length) ⇒ String
Extracts text of specified length from a start point.
66 67 68 |
# File 'lib/te3270/emulators/extra.rb', line 66 def get_string(row, column, length) screen.GetString(row, column, length) end |
#put_string(str, row, column) ⇒ Object
Puts string at the coordinates specified.
77 78 79 80 |
# File 'lib/te3270/emulators/extra.rb', line 77 def put_string(str, row, column) screen.PutString(str, row, column) quiet_period end |
#screenshot(filename) ⇒ Object
Creates a method to take screenshot of the active screen. If you have set the :visible property to false it will be made visible prior to taking the screenshot and then changed to invisible after.
135 136 137 138 139 140 141 142 143 144 145 146 147 148 |
# File 'lib/te3270/emulators/extra.rb', line 135 def screenshot(filename) File.delete(filename) if File.exists?(filename) session.Visible = true unless visible toolkit = Toolkit::getDefaultToolkit() screen_size = toolkit.getScreenSize() rect = Rectangle.new(screen_size) robot = Robot.new image = robot.createScreenCapture(rect) f = java::io::File.new(filename) ImageIO::write(image, "png", f) session.Visible = false unless visible end |
#send_keys(keys) ⇒ Object
Sends keystrokes to the host, including function keys.
87 88 89 90 |
# File 'lib/te3270/emulators/extra.rb', line 87 def send_keys(keys) screen.SendKeys(keys) quiet_period end |
#text ⇒ String
Returns the text of the active screen
155 156 157 |
# File 'lib/te3270/emulators/extra.rb', line 155 def text area.Value end |
#wait_for_host(seconds) ⇒ Object
Waits for the host to not send data for a specified number of seconds
110 111 112 113 114 |
# File 'lib/te3270/emulators/extra.rb', line 110 def wait_for_host(seconds) wait_for(seconds) do screen.WaitHostQuiet end end |
#wait_for_string(str, row, column) ⇒ Object
Wait for the string to appear at the specified location
99 100 101 102 103 |
# File 'lib/te3270/emulators/extra.rb', line 99 def wait_for_string(str, row, column) wait_for do screen.WaitForString(str, row, column) end end |
#wait_until_cursor_at(row, column) ⇒ Object
Waits until the cursor is at the specified location.
122 123 124 125 126 |
# File 'lib/te3270/emulators/extra.rb', line 122 def wait_until_cursor_at(row, column) wait_for do screen.WaitForCursor(row, column) end end |