Class: TE3270::Emulators::Quick3270
- Inherits:
-
Object
- Object
- TE3270::Emulators::Quick3270
- Defined in:
- lib/te3270/emulators/quick3270.rb
Overview
This class has the code necessary to communicate with the terminal emulator called Quick3270. You can use this emulator by providing the :quick 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.
Instance Method Summary collapse
-
#connect {|_self| ... } ⇒ Object
Creates a method to connect to Quick System.
-
#disconnect ⇒ Object
Disconnects the Quick 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
23 24 25 |
# File 'lib/te3270/emulators/quick3270.rb', line 23 def max_wait_time=(value) @max_wait_time = value end |
#session_file=(value) ⇒ Object (writeonly)
Sets the attribute session_file
23 24 25 |
# File 'lib/te3270/emulators/quick3270.rb', line 23 def session_file=(value) @session_file = value end |
#visible=(value) ⇒ Object
Sets the attribute visible
23 24 25 |
# File 'lib/te3270/emulators/quick3270.rb', line 23 def visible=(value) @visible = value end |
Instance Method Details
#connect {|_self| ... } ⇒ Object
Creates a method to connect to Quick System. This method expects a block in which certain platform specific values can be set. Quick 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.
39 40 41 42 43 44 |
# File 'lib/te3270/emulators/quick3270.rb', line 39 def connect start_quick_system yield self if block_given? raise "The session file must be set in a block when calling connect with the Quick3270 emulator." if @session_file.nil? establish_session end |
#disconnect ⇒ Object
Disconnects the Quick System connection
49 50 51 52 |
# File 'lib/te3270/emulators/quick3270.rb', line 49 def disconnect session.Disconnect system.Application.Quit end |
#get_string(row, column, length) ⇒ String
Extracts text of specified length from a start point.
62 63 64 |
# File 'lib/te3270/emulators/quick3270.rb', line 62 def get_string(row, column, length) screen.GetString(row, column, length) end |
#put_string(str, row, column) ⇒ Object
Puts string at the coordinates specified.
73 74 75 76 77 |
# File 'lib/te3270/emulators/quick3270.rb', line 73 def put_string(str, row, column) screen.MoveTo(row, column) screen.PutString(str) 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.
126 127 128 129 130 131 132 133 134 135 136 137 |
# File 'lib/te3270/emulators/quick3270.rb', line 126 def screenshot(filename) File.delete(filename) if File.exists?(filename) system.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) system.Visible = false unless visible end |
#send_keys(keys) ⇒ Object
Sends keystrokes to the host, including function keys.
84 85 86 87 |
# File 'lib/te3270/emulators/quick3270.rb', line 84 def send_keys(keys) screen.SendKeys(keys) quiet_period end |
#text ⇒ String
Returns the text of the active screen
144 145 146 147 148 149 150 |
# File 'lib/te3270/emulators/quick3270.rb', line 144 def text rows = screen.Rows columns = screen.Cols result = '' rows.times { |row| result += "#{screen.GetString(row+1, 1, columns)}\\n" } result end |
#wait_for_host(seconds) ⇒ Object
Waits for the host to not send data for a specified number of seconds
105 106 107 |
# File 'lib/te3270/emulators/quick3270.rb', line 105 def wait_for_host(seconds) screen.WaitHostQuiet(seconds * 1000) end |
#wait_for_string(str, row, column) ⇒ Object
Wait for the string to appear at the specified location
96 97 98 |
# File 'lib/te3270/emulators/quick3270.rb', line 96 def wait_for_string(str, row, column) screen.WaitForString(str, row, column) end |
#wait_until_cursor_at(row, column) ⇒ Object
Waits until the cursor is at the specified location.
115 116 117 |
# File 'lib/te3270/emulators/quick3270.rb', line 115 def wait_until_cursor_at(row, column) screen.WaitForCursor(row, column) end |