rubeus 0.0.6-java → 0.0.7-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +26 -0
- data/examples/jdbc_example.rb +5 -24
- data/lib/rubeus.jar +0 -0
- data/lib/rubeus.rb +18 -2
- data/lib/rubeus/component_loader.rb +25 -20
- data/lib/rubeus/extensions.rb +44 -4
- data/lib/rubeus/extensions/java/awt/dimension.rb +8 -2
- data/lib/rubeus/extensions/java/sql/driver_manager.rb +240 -1
- data/lib/rubeus/extensions/javax/swing/j_table.rb +7 -23
- data/lib/rubeus/extensions/javax/swing/table/default_table_model.rb +7 -0
- data/lib/rubeus/extensions/javax/swing/table/readonlyable_table_model.rb +10 -0
- data/lib/rubeus/jdbc.rb +5 -0
- data/lib/rubeus/swing.rb +9 -6
- data/lib/rubeus/verboseable.rb +41 -0
- data/rmaven.yml +6 -0
- data/test/rubeus/awt/test_attributes.rb +58 -0
- data/test/rubeus/awt/test_event.rb +216 -0
- data/test/rubeus/awt/test_nestable.rb +92 -0
- data/test/rubeus/awt/test_setter.rb +42 -0
- data/test/rubeus/extensions/java/awt/test_dimension.rb +67 -0
- data/test/rubeus/extensions/java/sql/test_connection.rb +50 -0
- data/test/rubeus/extensions/java/sql/test_driver_manager.rb +37 -0
- data/test/rubeus/extensions/java/sql/test_result_set.rb +67 -0
- data/test/rubeus/extensions/java/sql/test_result_set_meta_data.rb +121 -0
- data/test/rubeus/extensions/java/sql/test_statement.rb +43 -0
- data/test/rubeus/extensions/javax/swing/table/test_default_table_model.rb +359 -0
- data/test/rubeus/extensions/javax/swing/table/test_default_table_model/nhk_words.xml +15 -0
- data/test/rubeus/extensions/javax/swing/test_box_layout.rb +56 -0
- data/test/rubeus/extensions/javax/swing/test_j_component.rb +30 -0
- data/test/rubeus/extensions/javax/swing/test_j_frame.rb +42 -0
- data/test/rubeus/extensions/javax/swing/test_j_panel.rb +23 -0
- data/test/rubeus/extensions/javax/swing/test_j_scroll_pane.rb +24 -0
- data/test/rubeus/extensions/javax/swing/test_j_split_pane.rb +54 -0
- data/test/rubeus/extensions/javax/swing/test_j_tabbed_pane.rb +204 -0
- data/test/rubeus/extensions/javax/swing/test_j_table.rb +71 -0
- data/test/rubeus/extensions/javax/swing/test_j_text_field.rb +48 -0
- data/test/rubeus/extensions/javax/swing/test_timer.rb +28 -0
- data/test/rubeus/test_extensions.rb +44 -0
- data/test/test_all.rb +2 -0
- metadata +50 -16
@@ -1,6 +1,7 @@
|
|
1
1
|
Rubeus::Swing.depend_on('JComponent')
|
2
|
+
Rubeus::Swing.depend_on('TableModel')
|
3
|
+
Rubeus::Swing.depend_on('ReadonlyableTableModel')
|
2
4
|
Rubeus::Swing.depend_on('DefaultTableModel')
|
3
|
-
require 'delegate'
|
4
5
|
|
5
6
|
module Rubeus::Extensions::Javax::Swing
|
6
7
|
module JTable
|
@@ -24,29 +25,12 @@ module Rubeus::Extensions::Javax::Swing
|
|
24
25
|
end
|
25
26
|
|
26
27
|
def set_model_with_rubeus(model, *args)
|
27
|
-
unless model.is_a?(
|
28
|
-
model =
|
29
|
-
end
|
30
|
-
delegator = DelegatableTableModel.new(model)
|
31
|
-
set_model_without_rubeus(@model = delegator)
|
32
|
-
end
|
33
|
-
|
34
|
-
class DelegatableTableModel
|
35
|
-
# include javax.swing.table.TableModel
|
36
|
-
|
37
|
-
attr_accessor :readonly
|
38
|
-
|
39
|
-
def initialize(source)
|
40
|
-
@source = source
|
41
|
-
end
|
42
|
-
|
43
|
-
def method_missing(method, *args, &block)
|
44
|
-
@source.__send__(method, *args, &block)
|
45
|
-
end
|
46
|
-
|
47
|
-
def isCellEditable(row, col)
|
48
|
-
!readonly
|
28
|
+
unless model.is_a?(Rubeus::Swing::TableModel)
|
29
|
+
model = Rubeus::Swing::DefaultTableModel.new(model, *args)
|
49
30
|
end
|
31
|
+
delegator = Rubeus::Swing::ReadonlyableTableModel.new(model)
|
32
|
+
@model = delegator
|
33
|
+
set_model_without_rubeus(@model)
|
50
34
|
end
|
51
35
|
end
|
52
36
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
Rubeus::Swing.depend_on('TableModel')
|
1
2
|
Rubeus::Swing.depend_on('AbstractTableModel')
|
2
3
|
|
3
4
|
module Rubeus::Extensions::Javax::Swing::Table
|
@@ -52,7 +53,13 @@ module Rubeus::Extensions::Javax::Swing::Table
|
|
52
53
|
return new_without_rubeus(*args)
|
53
54
|
end
|
54
55
|
end
|
56
|
+
|
57
|
+
attr_accessor :readonly
|
55
58
|
|
59
|
+
def isCellEditable(row, col)
|
60
|
+
!readonly
|
61
|
+
end
|
62
|
+
|
56
63
|
def vectorize_if_array(value)
|
57
64
|
self.class.vectorize_if_array(value)
|
58
65
|
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
Rubeus::Swing.depend_on('TableModel')
|
2
|
+
Rubeus::Swing.depend_on('DelegatableTableModel')
|
3
|
+
|
4
|
+
module Rubeus::Extensions::Javax::Swing::Table
|
5
|
+
module ReadonlyableTableModel
|
6
|
+
def method_missing(method, *args, &block)
|
7
|
+
self.source.send(method, *args, &block)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
data/lib/rubeus/jdbc.rb
CHANGED
data/lib/rubeus/swing.rb
CHANGED
@@ -1,15 +1,18 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
1
2
|
require "rubeus/component_loader"
|
2
3
|
require "rubeus/awt"
|
3
4
|
|
4
5
|
module Rubeus
|
5
6
|
Swing = ComponentLoader.new("javax.swing") do
|
6
|
-
class_to_package.update(
|
7
|
+
class_to_package.update({
|
7
8
|
# $JAVA_HOME/lib/classlistにないものリスト
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
9
|
+
'JTextPane' => 'javax.swing',
|
10
|
+
'RTFEditorKit' => 'javax.swing.text.rtf',
|
11
|
+
'DefaultTableModel' => 'javax.swing.table',
|
12
|
+
'DelegatableTableModel' => 'jp.rubybizcommons.rubeus.extensions.javax.swing.table',
|
13
|
+
'ReadonlyableTableModel' => 'jp.rubybizcommons.rubeus.extensions.javax.swing.table',
|
14
|
+
})
|
15
|
+
class_to_package['DefaultStyledDocument'] ||= 'javax.swing.text' # Windowsにない?
|
13
16
|
|
14
17
|
def self.irb
|
15
18
|
Rubeus::Awt.extend_with
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module Rubeus
|
2
|
+
module Verboseable
|
3
|
+
class << self
|
4
|
+
def out
|
5
|
+
@out || $stderr
|
6
|
+
end
|
7
|
+
|
8
|
+
def out=(value)
|
9
|
+
@out = value
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def log_if_verbose(*messages)
|
14
|
+
return(block_given? ? yield : nil) unless self.verbose
|
15
|
+
name = is_a?(Module) ? self.name : self.class.name
|
16
|
+
msg = "#{name} %s" %
|
17
|
+
messages.map{|m| m.is_a?(Exception) ? ("#{m.to_s}\n%s" % m.backtrace.join("\n ")) : m }.
|
18
|
+
join("\n")
|
19
|
+
@@indent ||= 0
|
20
|
+
if @@indent > 0
|
21
|
+
msg.gsub!(/^/, ' ' * @@indent)
|
22
|
+
end
|
23
|
+
if block_given?
|
24
|
+
indent_backup = @@indent
|
25
|
+
@@indent += 1
|
26
|
+
Verboseable.out.puts("#{msg} {")
|
27
|
+
begin
|
28
|
+
return yield
|
29
|
+
rescue Exception => err
|
30
|
+
Verboseable.out.puts("#{' ' * @@indent} RAISED: #{err.inspect}")
|
31
|
+
raise
|
32
|
+
ensure
|
33
|
+
@@indent = indent_backup
|
34
|
+
Verboseable.out.puts("#{' ' * @@indent}}")
|
35
|
+
end
|
36
|
+
else
|
37
|
+
Verboseable.out.puts(msg)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
data/rmaven.yml
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'rubygems'
|
3
|
+
require 'rubeus'
|
4
|
+
|
5
|
+
# Test for attributes.rb
|
6
|
+
class TestAttributes < Test::Unit::TestCase
|
7
|
+
include Rubeus::Swing
|
8
|
+
|
9
|
+
# setup method
|
10
|
+
def setup
|
11
|
+
end
|
12
|
+
|
13
|
+
# new with no argument
|
14
|
+
def test_default_attributes=
|
15
|
+
JFrame.new do |f|
|
16
|
+
assert_equal(JFrame.const_get(:EXIT_ON_CLOSE), f.default_close_operation)
|
17
|
+
assert_equal(400, f.size.width)
|
18
|
+
assert_equal(300, f.size.height)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
# new with argument
|
23
|
+
def test_new
|
24
|
+
JFrame.new(:title => 'test') do |f|
|
25
|
+
assert_equal(JFrame.const_get(:EXIT_ON_CLOSE), f.default_close_operation)
|
26
|
+
assert_equal(400, f.size.width)
|
27
|
+
assert_equal(300, f.size.height)
|
28
|
+
assert_equal('test', f.title)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
# new with argument that overrides default attributes
|
33
|
+
def test_new_override
|
34
|
+
JFrame.new(:size => "500 x 400") do |f|
|
35
|
+
assert_equal(JFrame.const_get(:EXIT_ON_CLOSE), f.default_close_operation)
|
36
|
+
assert_equal(500, f.size.width)
|
37
|
+
assert_equal(400, f.size.height)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
# new with argument that value is symbol
|
42
|
+
def test_new_with_symbol_value
|
43
|
+
JFrame.new(:default_close_operation => :DO_NOTHING_ON_CLOSE) do |f|
|
44
|
+
assert_equal(JFrame.const_get(:DO_NOTHING_ON_CLOSE), f.default_close_operation)
|
45
|
+
assert_equal(400, f.size.width)
|
46
|
+
assert_equal(300, f.size.height)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
# new with argument with error
|
51
|
+
def test_new_with_attribute_does_not_exist
|
52
|
+
assert_raise(ArgumentError) do
|
53
|
+
JFrame.new(:illegal_param => "illegal_value") do |f|
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
@@ -0,0 +1,216 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'rubygems'
|
3
|
+
require 'rubeus'
|
4
|
+
|
5
|
+
# Test for event.rb
|
6
|
+
class TestEvent < Test::Unit::TestCase
|
7
|
+
include Rubeus::Swing
|
8
|
+
|
9
|
+
class TestClass
|
10
|
+
include Rubeus::Awt::Event
|
11
|
+
end
|
12
|
+
|
13
|
+
# setup method
|
14
|
+
def setup
|
15
|
+
end
|
16
|
+
|
17
|
+
# test uncapitalize
|
18
|
+
def test_uncapitalize
|
19
|
+
assert_equal("aBC", TestClass.uncapitalize("ABC"))
|
20
|
+
|
21
|
+
assert_raise(TypeError) do
|
22
|
+
TestClass.uncapitalize("")
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
# test find_java_method
|
27
|
+
def test_find_java_method
|
28
|
+
JFrame.new do |f|
|
29
|
+
assert_equal("getContentPane", f.find_java_method("getContentPane").name)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
# test find_java_method with parent class's method
|
34
|
+
def test_find_java_method_with_parent_class_method
|
35
|
+
JFrame.new do |f|
|
36
|
+
assert_equal("getTitle", f.find_java_method("getTitle").name)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
# test find_java_method with method not exists
|
41
|
+
def test_find_java_method_with_method_not_exists
|
42
|
+
JFrame.new do |f|
|
43
|
+
assert_nil(f.find_java_method("addActionListener"))
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
# test events
|
48
|
+
def test_events
|
49
|
+
expectedHash = {
|
50
|
+
"component"=>["component_hidden", "component_moved", "component_resized", "component_shown"],
|
51
|
+
"container"=>["component_added", "component_removed"],
|
52
|
+
"focus"=>["focus_gained", "focus_lost"],
|
53
|
+
"hierarchy"=>["hierarchy_changed"],
|
54
|
+
"hierarchy_bounds"=>["ancestor_moved", "ancestor_resized"],
|
55
|
+
"input_method"=>["caret_position_changed", "input_method_text_changed"],
|
56
|
+
"key"=>["key_pressed", "key_released", "key_typed"],
|
57
|
+
"mouse"=>["mouse_clicked", "mouse_entered", "mouse_exited", "mouse_pressed", "mouse_released"],
|
58
|
+
"mouse_motion"=>["mouse_dragged", "mouse_moved"],
|
59
|
+
"mouse_wheel"=>["mouse_wheel_moved"],
|
60
|
+
"property_change"=>["property_change"],
|
61
|
+
"window"=>["window_activated", "window_closed", "window_closing", "window_deactivated", "window_deiconified", "window_iconified", "window_opened"],
|
62
|
+
"window_focus"=>["window_gained_focus", "window_lost_focus"],
|
63
|
+
"window_state"=>["window_state_changed"]
|
64
|
+
}
|
65
|
+
JFrame.new do |f|
|
66
|
+
expectedHash.keys.each do |key|
|
67
|
+
assert_equal(expectedHash[key].sort, f.events[key].sort)
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
# test event_types
|
73
|
+
def test_event_types
|
74
|
+
expectedArray = ["component", "container", "focus", "hierarchy", "hierarchy_bounds", "input_method", "key", "mouse", "mouse_motion", "mouse_wheel", "property_change", "window", "window_focus", "window_state"]
|
75
|
+
JFrame.new do |f|
|
76
|
+
assert_equal(expectedArray, f.event_types)
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
# test listen
|
81
|
+
def test_listen
|
82
|
+
@mouse_event_processed = false
|
83
|
+
|
84
|
+
jf = JFrame.new do |f|
|
85
|
+
f.listen(:mouse, :mouse_clicked) do |mouse_event|
|
86
|
+
assert_equal(java.awt.event.MouseEvent::MOUSE_CLICKED, mouse_event.get_id)
|
87
|
+
assert_equal(100, mouse_event.x)
|
88
|
+
assert_equal(250, mouse_event.y)
|
89
|
+
assert_equal(1, mouse_event.click_count)
|
90
|
+
assert_equal(false, mouse_event.popup_trigger?)
|
91
|
+
assert_equal(0, mouse_event.get_modifiers)
|
92
|
+
|
93
|
+
@mouse_event_processed = true
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
jf.visible = true
|
98
|
+
|
99
|
+
# Send mouse clicked event to JFrame
|
100
|
+
jf.dispatch_event(
|
101
|
+
java.awt.event.MouseEvent.new(
|
102
|
+
jf,
|
103
|
+
java.awt.event.MouseEvent::MOUSE_CLICKED,
|
104
|
+
java.lang.System.current_time_millis,
|
105
|
+
0,
|
106
|
+
100,
|
107
|
+
250,
|
108
|
+
1,
|
109
|
+
false
|
110
|
+
)
|
111
|
+
)
|
112
|
+
|
113
|
+
jf.dispose
|
114
|
+
jf.visible = false
|
115
|
+
|
116
|
+
assert_equal(true, @mouse_event_processed)
|
117
|
+
end
|
118
|
+
|
119
|
+
# test listen with filters
|
120
|
+
def test_listen_with_filters
|
121
|
+
@mouse_event_processed_count = 0
|
122
|
+
|
123
|
+
jf = JFrame.new do |f|
|
124
|
+
f.listen(:mouse, :mouse_clicked, :click_count => 2) do |mouse_event|
|
125
|
+
assert_equal(java.awt.event.MouseEvent::MOUSE_CLICKED, mouse_event.get_id)
|
126
|
+
assert_equal(100, mouse_event.x)
|
127
|
+
assert_equal(250, mouse_event.y)
|
128
|
+
assert_equal(2, mouse_event.click_count)
|
129
|
+
assert_equal(false, mouse_event.popup_trigger?)
|
130
|
+
assert_equal(0, mouse_event.get_modifiers)
|
131
|
+
|
132
|
+
@mouse_event_processed_count = @mouse_event_processed_count + 1
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
jf.visible = true
|
137
|
+
|
138
|
+
# Send mouse clicked event to JFrame
|
139
|
+
3.times do |i|
|
140
|
+
jf.dispatch_event(
|
141
|
+
java.awt.event.MouseEvent.new(
|
142
|
+
jf,
|
143
|
+
java.awt.event.MouseEvent::MOUSE_CLICKED,
|
144
|
+
java.lang.System.current_time_millis,
|
145
|
+
0,
|
146
|
+
100,
|
147
|
+
250,
|
148
|
+
(i+1), # click_count (1..3)
|
149
|
+
false
|
150
|
+
)
|
151
|
+
)
|
152
|
+
end
|
153
|
+
|
154
|
+
jf.dispose
|
155
|
+
jf.visible = false
|
156
|
+
|
157
|
+
assert_equal(1, @mouse_event_processed_count)
|
158
|
+
end
|
159
|
+
|
160
|
+
# test listen with two filters
|
161
|
+
def test_listen_with_two_filters
|
162
|
+
@mouse_event_processed_count = 0
|
163
|
+
|
164
|
+
jf = JFrame.new do |f|
|
165
|
+
# left button double clicked
|
166
|
+
f.listen(:mouse, :mouse_clicked, :click_count => 2, :button => java.awt.event.MouseEvent::BUTTON1) do |mouse_event|
|
167
|
+
assert_equal(java.awt.event.MouseEvent::MOUSE_CLICKED, mouse_event.get_id)
|
168
|
+
assert_equal(100, mouse_event.x)
|
169
|
+
assert_equal(250, mouse_event.y)
|
170
|
+
assert_equal(2, mouse_event.click_count)
|
171
|
+
assert_equal(false, mouse_event.popup_trigger?)
|
172
|
+
assert_equal(java.awt.event.InputEvent::BUTTON1_MASK, mouse_event.get_modifiers)
|
173
|
+
assert_equal(java.awt.event.MouseEvent::BUTTON1, mouse_event.get_button)
|
174
|
+
|
175
|
+
@mouse_event_processed_count = @mouse_event_processed_count + 1
|
176
|
+
end
|
177
|
+
end
|
178
|
+
|
179
|
+
jf.visible = true
|
180
|
+
|
181
|
+
# Send mouse clicked event to JFrame
|
182
|
+
jf.dispatch_event(
|
183
|
+
java.awt.event.MouseEvent.new(
|
184
|
+
jf,
|
185
|
+
java.awt.event.MouseEvent::MOUSE_CLICKED,
|
186
|
+
java.lang.System.current_time_millis,
|
187
|
+
java.awt.event.InputEvent::BUTTON1_MASK,
|
188
|
+
100,
|
189
|
+
250,
|
190
|
+
2,
|
191
|
+
false,
|
192
|
+
java.awt.event.MouseEvent::BUTTON1
|
193
|
+
)
|
194
|
+
)
|
195
|
+
|
196
|
+
jf.dispatch_event(
|
197
|
+
java.awt.event.MouseEvent.new(
|
198
|
+
jf,
|
199
|
+
java.awt.event.MouseEvent::MOUSE_CLICKED,
|
200
|
+
java.lang.System.current_time_millis,
|
201
|
+
java.awt.event.InputEvent::BUTTON2_MASK,
|
202
|
+
100,
|
203
|
+
250,
|
204
|
+
2,
|
205
|
+
false,
|
206
|
+
java.awt.event.MouseEvent::BUTTON2
|
207
|
+
)
|
208
|
+
)
|
209
|
+
|
210
|
+
jf.dispose
|
211
|
+
jf.visible = false
|
212
|
+
|
213
|
+
assert_equal(1, @mouse_event_processed_count)
|
214
|
+
end
|
215
|
+
end
|
216
|
+
|
@@ -0,0 +1,92 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'rubygems'
|
3
|
+
require 'rubeus'
|
4
|
+
|
5
|
+
# Test for nestable.rb
|
6
|
+
class TestNestable < Test::Unit::TestCase
|
7
|
+
include Rubeus::Swing
|
8
|
+
|
9
|
+
class TestClass
|
10
|
+
include Rubeus::Awt::Nestable
|
11
|
+
end
|
12
|
+
|
13
|
+
# setup method
|
14
|
+
def setup
|
15
|
+
end
|
16
|
+
|
17
|
+
# test for Nestable::Context#container_class_names=, register_as_container
|
18
|
+
def atest_container_class_names=
|
19
|
+
original_container_class_names = Rubeus::Awt::Nestable::Context.container_class_names
|
20
|
+
|
21
|
+
Rubeus::Awt::Nestable::Context.container_class_names = "javax.swing.JTabbedPane"
|
22
|
+
assert_equal(["javax.swing.JTabbedPane"], Rubeus::Awt::Nestable::Context.container_class_names)
|
23
|
+
|
24
|
+
Rubeus::Awt::Nestable::Context.register_as_container "javax.swing.JPanel"
|
25
|
+
assert_equal(["javax.swing.JTabbedPane", "javax.swing.JPanel"], Rubeus::Awt::Nestable::Context.container_class_names)
|
26
|
+
|
27
|
+
Rubeus::Awt::Nestable::Context.container_class_names = *original_container_class_names
|
28
|
+
end
|
29
|
+
|
30
|
+
# test new with component
|
31
|
+
def test_new_component
|
32
|
+
assert_nothing_raised do
|
33
|
+
JTextField.new
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
# test new with block given component
|
38
|
+
def test_new_block_given_component
|
39
|
+
assert_nothing_raised do
|
40
|
+
JTextField.new do |txt|
|
41
|
+
# this block will ignore
|
42
|
+
flunk "this statement does not executed"
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
# test new with container
|
48
|
+
def test_new_container
|
49
|
+
assert_nothing_raised do
|
50
|
+
JPanel.new
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
# test new with block given container
|
55
|
+
def test_new_block_given_container
|
56
|
+
is_block_executed = false
|
57
|
+
|
58
|
+
JPanel.new do |p|
|
59
|
+
is_block_executed = true
|
60
|
+
end
|
61
|
+
|
62
|
+
assert_equal(true, is_block_executed)
|
63
|
+
end
|
64
|
+
|
65
|
+
# test new container with component
|
66
|
+
def test_new_container_with_component
|
67
|
+
assert_nothing_raised do
|
68
|
+
JPanel.new do |p|
|
69
|
+
txt = JTextField.new
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
# test new nested container with component
|
75
|
+
def test_new_nested_container_with_component
|
76
|
+
assert_nothing_raised do
|
77
|
+
JPanel.new do |p|
|
78
|
+
JScrollPane.new do |jsp|
|
79
|
+
txt = JTextField.new
|
80
|
+
end
|
81
|
+
JLabel.new("test")
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
# test container?
|
87
|
+
def test_container?
|
88
|
+
assert_equal(true, JPanel.container?)
|
89
|
+
assert_equal(false, JTextField.container?)
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|