swing_paradise 0.1.46

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.

Potentially problematic release.


This version of swing_paradise might be problematic. Click here for more details.

Files changed (67) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +1557 -0
  3. data/doc/README.gen +1510 -0
  4. data/lib/swing_paradise/autoinclude.rb +3 -0
  5. data/lib/swing_paradise/awt/README.md +1 -0
  6. data/lib/swing_paradise/awt/color.rb +45 -0
  7. data/lib/swing_paradise/base_module/base_module.rb +993 -0
  8. data/lib/swing_paradise/classes +1 -0
  9. data/lib/swing_paradise/examples/001_quit_button_example.rb +55 -0
  10. data/lib/swing_paradise/examples/002_text_area_example.rb +55 -0
  11. data/lib/swing_paradise/examples/003_combo_box_example.rb +57 -0
  12. data/lib/swing_paradise/examples/004_jpanel_left_bound_example.rb +41 -0
  13. data/lib/swing_paradise/examples/005_box_layout_example.rb +39 -0
  14. data/lib/swing_paradise/examples/006_frame_example.rb +33 -0
  15. data/lib/swing_paradise/examples/007_textarea_responding_to_enter_key_example.rb +28 -0
  16. data/lib/swing_paradise/examples/008_scrolled_window_example.rb +41 -0
  17. data/lib/swing_paradise/examples/009_font_size_example.rb +39 -0
  18. data/lib/swing_paradise/examples/010_counter_example.rb +183 -0
  19. data/lib/swing_paradise/examples/011_button_with_image_example.rb +58 -0
  20. data/lib/swing_paradise/examples/012_quit_on_escape_key_being_pressed.rb +37 -0
  21. data/lib/swing_paradise/examples/013_simple_box_example.rb +38 -0
  22. data/lib/swing_paradise/examples/014_mouse_events_example.rb +41 -0
  23. data/lib/swing_paradise/examples/015_menu_example.rb +77 -0
  24. data/lib/swing_paradise/examples/016_file_chooser_example.rb +96 -0
  25. data/lib/swing_paradise/examples/017_buttons_example.rb +56 -0
  26. data/lib/swing_paradise/examples/018_colour_chooser_example.rb +51 -0
  27. data/lib/swing_paradise/examples/019_jeditorpane_example.rb +61 -0
  28. data/lib/swing_paradise/examples/020_table_example.rb +77 -0
  29. data/lib/swing_paradise/examples/021_jsplitpane_example.rb +66 -0
  30. data/lib/swing_paradise/examples/022_drawing_oval_example.rb +51 -0
  31. data/lib/swing_paradise/examples/023_show_message_dialog_example.rb +57 -0
  32. data/lib/swing_paradise/java_classes/border_factory/border_factory.rb +19 -0
  33. data/lib/swing_paradise/java_classes/box/box.rb +72 -0
  34. data/lib/swing_paradise/java_classes/button +1 -0
  35. data/lib/swing_paradise/java_classes/checkbox +1 -0
  36. data/lib/swing_paradise/java_classes/combobox +1 -0
  37. data/lib/swing_paradise/java_classes/default_table_model/default_table_model.rb +18 -0
  38. data/lib/swing_paradise/java_classes/frame +1 -0
  39. data/lib/swing_paradise/java_classes/jbutton/jbutton.rb +199 -0
  40. data/lib/swing_paradise/java_classes/jcheckbox/jcheckbox.rb +28 -0
  41. data/lib/swing_paradise/java_classes/jcombobox/jcombobox.rb +31 -0
  42. data/lib/swing_paradise/java_classes/jcomponent/jcomponent.rb +253 -0
  43. data/lib/swing_paradise/java_classes/jeditorpane/jeditorpane.rb +23 -0
  44. data/lib/swing_paradise/java_classes/jfilechooser/jfilechooser.rb +22 -0
  45. data/lib/swing_paradise/java_classes/jframe/jframe.rb +319 -0
  46. data/lib/swing_paradise/java_classes/jlabel/jlabel.rb +171 -0
  47. data/lib/swing_paradise/java_classes/jmenu/jmenu.rb +13 -0
  48. data/lib/swing_paradise/java_classes/jmenubar/jmenubar.rb +13 -0
  49. data/lib/swing_paradise/java_classes/jpanel/jpanel.rb +115 -0
  50. data/lib/swing_paradise/java_classes/jscrollpane/jscrollpane.rb +84 -0
  51. data/lib/swing_paradise/java_classes/jspinner/jspinner.rb +17 -0
  52. data/lib/swing_paradise/java_classes/jtextarea/jtextarea.rb +120 -0
  53. data/lib/swing_paradise/java_classes/jtextfield/jtextfield.rb +314 -0
  54. data/lib/swing_paradise/java_classes/label +1 -0
  55. data/lib/swing_paradise/java_classes/panel +1 -0
  56. data/lib/swing_paradise/java_classes/spinner +1 -0
  57. data/lib/swing_paradise/java_classes/textarea +1 -0
  58. data/lib/swing_paradise/misc/misc.rb +57 -0
  59. data/lib/swing_paradise/prototype/prototype.rb +79 -0
  60. data/lib/swing_paradise/requires/require_the_project.rb +15 -0
  61. data/lib/swing_paradise/toplevel_methods/misc.rb +293 -0
  62. data/lib/swing_paradise/version/version.rb +17 -0
  63. data/lib/swing_paradise/widget_collection/README.md +2 -0
  64. data/lib/swing_paradise/widget_collection/text_viewer.rb +160 -0
  65. data/lib/swing_paradise.rb +1 -0
  66. data/swing_paradise.gemspec +42 -0
  67. metadata +120 -0
@@ -0,0 +1,15 @@
1
+ # =========================================================================== #
2
+ # require 'swing_paradise/requires/require_the_project.rb'
3
+ # =========================================================================== #
4
+ require 'swing_paradise/toplevel_methods/misc.rb'
5
+ require 'swing_paradise/java_classes/jbutton/jbutton.rb'
6
+ require 'swing_paradise/java_classes/jframe/jframe.rb'
7
+ require 'swing_paradise/java_classes/jlabel/jlabel.rb'
8
+ require 'swing_paradise/java_classes/jpanel/jpanel.rb'
9
+ require 'swing_paradise/java_classes/jspinner/jspinner.rb'
10
+ require 'swing_paradise/java_classes/jtextfield/jtextfield.rb'
11
+ require 'swing_paradise/java_classes/jtextarea/jtextarea.rb'
12
+ require 'swing_paradise/java_classes/jcombobox/jcombobox.rb'
13
+ require 'swing_paradise/java_classes/jscrollpane/jscrollpane.rb'
14
+ require 'swing_paradise/misc/misc.rb'
15
+ require 'swing_paradise/base_module/base_module.rb'
@@ -0,0 +1,293 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'swing_paradise/toplevel_methods/misc.rb'
6
+ # include SwingParadise
7
+ # =========================================================================== #
8
+ module SwingParadise
9
+
10
+ # ========================================================================= #
11
+ # === SwingParadise.set_global_font
12
+ # ========================================================================= #
13
+ def self.set_global_font(
14
+ font1 = Font.new('Hack', Font::PLAIN, 50)
15
+ )
16
+ UIManager.put('Button.font', font1)
17
+ UIManager.put('ToggleButton.font', font1)
18
+ UIManager.put('RadioButton.font', font1)
19
+ UIManager.put('CheckBox.font', font1)
20
+ UIManager.put('ColorChooser.font', font1)
21
+ UIManager.put('ComboBox.font', font1)
22
+ UIManager.put('Label.font', font1)
23
+ UIManager.put('List.font', font1)
24
+ UIManager.put('MenuBar.font', font1)
25
+ UIManager.put('MenuItem.font', font1)
26
+ UIManager.put('RadioButtonMenuItem.font', font1)
27
+ UIManager.put('CheckBoxMenuItem.font', font1)
28
+ UIManager.put('Menu.font', font1)
29
+ UIManager.put('PopupMenu.font', font1)
30
+ UIManager.put('OptionPane.font', font1)
31
+ UIManager.put('Panel.font', font1)
32
+ UIManager.put('ProgressBar.font', font1)
33
+ UIManager.put('ScrollPane.font', font1)
34
+ UIManager.put('Viewport.font', font1)
35
+ UIManager.put('TabbedPane.font', font1)
36
+ UIManager.put('Table.font', font1)
37
+ UIManager.put('TableHeader.font', font1)
38
+ UIManager.put('TextField.font', font1)
39
+ UIManager.put('PasswordField.font', font1)
40
+ UIManager.put('TextArea.font', font1)
41
+ UIManager.put('TextPane.font', font1)
42
+ UIManager.put('EditorPane.font', font1)
43
+ UIManager.put('TitledBorder.font', font1)
44
+ UIManager.put('ToolBar.font', font1)
45
+ UIManager.put('ToolTip.font', font1)
46
+ UIManager.put('Tree.font', font1)
47
+ end
48
+
49
+ # ========================================================================= #
50
+ # === SwingParadise.create_text_view
51
+ # ========================================================================= #
52
+ def self.create_text_view
53
+ return JTextArea.new
54
+ end
55
+
56
+ # ========================================================================= #
57
+ # === SwingParadise.is_left_mouse_button?
58
+ # ========================================================================= #
59
+ def self.is_left_mouse_button?(event)
60
+ javax.swing.SwingUtilities.isLeftMouseButton(event)
61
+ end
62
+
63
+ # ========================================================================= #
64
+ # === SwingParadise.create_image
65
+ #
66
+ # We can not use ImageIcon directly because this can then not be
67
+ # .add()-ed to a box, so we need to use a label, and then use
68
+ # .setIcon() on it instead.
69
+ # ========================================================================= #
70
+ def self.create_image(i)
71
+ label = JLabel.new
72
+ image_icon = ImageIcon.new(i)
73
+ label.setIcon(image_icon)
74
+ return label
75
+ end
76
+
77
+ # ========================================================================= #
78
+ # === SwingParadise.jruby_font
79
+ #
80
+ # This method should be equivalent to:
81
+ #
82
+ # Font.new('Sans serif', Font::PLAIN, 28)
83
+ #
84
+ # It must also be able to deal with Symbols, such as :hack_25.
85
+ #
86
+ # Usage example:
87
+ #
88
+ # LARGE_FONT = SwingParadise.jruby_font('Sans serif 28')
89
+ #
90
+ # ========================================================================= #
91
+ def self.jruby_font(
92
+ i = 'Sans serif 28',
93
+ type_variant = Font::PLAIN, # This is the default font type to be used.
94
+ font_size = 20
95
+ )
96
+ name_of_the_font = 'Sans serif'
97
+ if i.is_a? Symbol # Handle Symbols first.
98
+ splitted = i.to_s.split('_') # :hack_20 would now be ['hack','20'].
99
+ font_size = splitted.last.to_i # ['hack','20']
100
+ name_of_the_font = splitted.first.capitalize
101
+ i = nil # Short-circuit it here.
102
+ end
103
+ if i and i.respond_to?(:include?) and i.include?(' ')
104
+ splitted = i.split(' ') # i = 'Monospace 25'; splitted = i.split(' ')
105
+ font_size = splitted.last.to_i
106
+ name_of_the_font = splitted[0 .. -2].join(' ')
107
+ else
108
+ name_of_the_font = i
109
+ end
110
+ if i.is_a? Java::JavaAwt::Font
111
+ return i
112
+ end
113
+ return Font.new(name_of_the_font, type_variant, font_size)
114
+ end; self.instance_eval { alias font jruby_font } # === SwingParadise.font
115
+ self.instance_eval { alias convert_font jruby_font } # === SwingParadise.convert_font
116
+
117
+ # ========================================================================= #
118
+ # === SwingParadise.button
119
+ # ========================================================================= #
120
+ def self.button(i = '')
121
+ require 'swing_paradise/java_classes/jbutton/jbutton.rb'
122
+ _ = javax.swing.JButton.new(i)
123
+ return _
124
+ end; self.instance_eval { alias create_button button } # === SwingParadise.create_button
125
+
126
+ # ========================================================================= #
127
+ # === quit_button
128
+ #
129
+ # This method can be used to quickly create a quit-button.
130
+ # ========================================================================= #
131
+ def quit_button
132
+ _ = SwingParadise.button('Quit')
133
+ _.on_event {|event|
134
+ System.exit(0)
135
+ }
136
+ return _
137
+ end
138
+
139
+ # ========================================================================= #
140
+ # === SwingParadise.jscroll_pane
141
+ #
142
+ # A JScrollPane provides a scrollable view of another widget. The
143
+ # JScrollPane manages a viewport, optional vertical and horizontal
144
+ # scroll bars, and optional row and column heading viewports.
145
+ # ========================================================================= #
146
+ def self.jscroll_pane(
147
+ child_widget,
148
+ vertical_scrollbar_policy = :vertical_always,
149
+ horizontal_scrollbar_policy = :default
150
+ )
151
+ case vertical_scrollbar_policy
152
+ # ======================================================================= #
153
+ # === :vertical_always
154
+ # ======================================================================= #
155
+ when :vertical_always
156
+ vertical_scrollbar_policy = Java::JavaxSwing::ScrollPaneConstants::VERTICAL_SCROLLBAR_ALWAYS
157
+ end
158
+ case horizontal_scrollbar_policy
159
+ # ======================================================================= #
160
+ # === :default
161
+ # ======================================================================= #
162
+ when :default
163
+ horizontal_scrollbar_policy = Java::JavaxSwing::ScrollPaneConstants::HORIZONTAL_SCROLLBAR_ALWAYS
164
+ # ======================================================================= #
165
+ # === :horizontal_never
166
+ # ======================================================================= #
167
+ when :horizontal_never
168
+ horizontal_scrollbar_policy = Java::JavaxSwing::ScrollPaneConstants::HORIZONTAL_SCROLLBAR_NEVER
169
+ end
170
+ JScrollPane.new(
171
+ child_widget,
172
+ vertical_scrollbar_policy,
173
+ horizontal_scrollbar_policy
174
+ )
175
+ end; self.instance_eval { alias scroll_pane jscroll_pane } # === SwingParadise.scroll_pane
176
+ self.instance_eval { alias scrollpane jscroll_pane } # === SwingParadise.scrollpane
177
+ self.instance_eval { alias scrolled_window jscroll_pane } # === SwingParadise.scrolled_window
178
+ self.instance_eval { alias scrolling jscroll_pane } # === SwingParadise.scrolling
179
+ self.instance_eval { alias created_scrolled_window jscroll_pane } # === SwingParadise.created_scrolled_window
180
+ self.instance_eval { alias create_scrolled_window jscroll_pane } # === SwingParadise.create_scrolled_window
181
+
182
+ # ========================================================================= #
183
+ # === SwingParadise.entry
184
+ #
185
+ # Java Swing has two basic text components:
186
+ #
187
+ # (1) JTextField, and
188
+ # (2) JTextArea
189
+ #
190
+ # ========================================================================= #
191
+ def self.entry(
192
+ i = '',
193
+ optional_n_entries = nil
194
+ )
195
+ # require 'swing_paradise/java_classes/jtextarea/jtextarea.rb'
196
+ require 'swing_paradise/java_classes/jtextfield/jtextfield.rb'
197
+ if optional_n_entries
198
+ _ = javax.swing.JTextField.new(i, optional_n_entries) # JTextArea.new(i)
199
+ else
200
+ _ = javax.swing.JTextField.new(i) # JTextArea.new(i)
201
+ end
202
+ return _
203
+ end; self.instance_eval { alias create_entry entry } # === SwingParadise.create_entry
204
+
205
+ # ========================================================================= #
206
+ # === SwingParadise.vbox
207
+ #
208
+ # A vertical box.
209
+ # ========================================================================= #
210
+ def self.vbox
211
+ javax.swing.Box.createVerticalBox
212
+ end; self.instance_eval { alias create_vbox vbox } # === SwingParadise.create_vbox
213
+
214
+ # ========================================================================= #
215
+ # === SwingParadise.hbox
216
+ #
217
+ # A horizontal box.
218
+ # ========================================================================= #
219
+ def self.hbox(*optional_widgets)
220
+ optional_widgets.flatten!
221
+ _ = javax.swing.Box.createHorizontalBox
222
+ if optional_widgets and !optional_widgets.empty?
223
+ optional_widgets.each {|this_widget|
224
+ _.add(this_widget)
225
+ }
226
+ end
227
+ return _
228
+ end; self.instance_eval { alias create_hbox hbox } # === SwingParadise.create_hbox
229
+
230
+ # ========================================================================= #
231
+ # === SwingParadise.remove_html
232
+ #
233
+ # Usage example:
234
+ #
235
+ # SwingParadise.remove_html('<one>two</three>')
236
+ #
237
+ # ========================================================================= #
238
+ def self.remove_html(i)
239
+ i.gsub(
240
+ %r{<[^>]+>},
241
+ ''
242
+ )
243
+ end
244
+
245
+ # ========================================================================= #
246
+ # === SwingParadise.text
247
+ #
248
+ # This method will return a JLabel instance.
249
+ # ========================================================================= #
250
+ def self.text(i = '')
251
+ _ = javax.swing.JLabel.new(i)
252
+ return _
253
+ end; self.instance_eval { alias label text } # === SwingParadise.label
254
+
255
+ # ========================================================================= #
256
+ # === swing_dimension
257
+ #
258
+ # This is a slight wrapper over java.awt.Dimension.
259
+ # ========================================================================= #
260
+ def swing_dimension(new_width, new_height)
261
+ java.awt.Dimension.new(new_width, new_height)
262
+ end
263
+
264
+ # ========================================================================= #
265
+ # === jcombobox
266
+ # ========================================================================= #
267
+ def jcombobox(i = nil)
268
+ combo_box = JComboBox.new
269
+ if i and i.respond_to?(:each)
270
+ i.each {|this_exam_topic|
271
+ combo_box.addItem(this_exam_topic)
272
+ }
273
+ end
274
+ return combo_box
275
+ end
276
+
277
+ # ========================================================================= #
278
+ # === text
279
+ # ========================================================================= #
280
+ def text(i = '')
281
+ return JLabel.new(i)
282
+ end; alias jtext text # === jtext
283
+
284
+ # ========================================================================= #
285
+ # === show_message_dialog
286
+ # ========================================================================= #
287
+ def show_message_dialog(
288
+ text = ''
289
+ )
290
+ javax.swing.JOptionPane.showMessageDialog(nil, text)
291
+ end
292
+
293
+ end
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ module SwingParadise
6
+
7
+ # ========================================================================= #
8
+ # === VERSION
9
+ # ========================================================================= #
10
+ VERSION = '0.1.46'
11
+
12
+ # ========================================================================= #
13
+ # === LAST_UPDATE
14
+ # ========================================================================= #
15
+ LAST_UDPATE = '11.04.2024'
16
+
17
+ end
@@ -0,0 +1,2 @@
1
+ This directory may contain code that provides re-usable components,
2
+ in jruby+SWING.
@@ -0,0 +1,160 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # === TextViewer
6
+ #
7
+ # Usage example:
8
+ #
9
+ # TextViewer.new(ARGV)
10
+ #
11
+ # =========================================================================== #
12
+ # require 'text_viewer.rb'
13
+ # =========================================================================== #
14
+ require 'swing_paradise/base_module/base_module.rb'
15
+
16
+ module SwingParadise
17
+
18
+ class TextViewer < JFrame # === SwingParadise::TextViewer
19
+
20
+ include ::SwingParadise::BaseModule
21
+
22
+ # ========================================================================= #
23
+ # === WIDTH
24
+ # ========================================================================= #
25
+ WIDTH = 1400
26
+
27
+ # ========================================================================= #
28
+ # === HEIGHT
29
+ # ========================================================================= #
30
+ HEIGHT = 1024
31
+
32
+ # ========================================================================= #
33
+ # === initialize
34
+ # ========================================================================= #
35
+ def initialize(
36
+ commandline_arguments = nil,
37
+ run_already = true
38
+ )
39
+ super()
40
+ reset
41
+ set_commandline_arguments(
42
+ commandline_arguments
43
+ )
44
+ run if run_already
45
+ end
46
+
47
+ # ========================================================================= #
48
+ # === reset (reset tag)
49
+ # ========================================================================= #
50
+ def reset
51
+ super() if respond_to?(:super)
52
+ # infer_the_namespace
53
+ end
54
+
55
+ # ========================================================================= #
56
+ # === create_the_menu (menu tag)
57
+ # ========================================================================= #
58
+ def create_the_menu
59
+ @menu_bar = create_menu_bar
60
+ m1 = JMenu.new('Open a local file')
61
+ m1.use_this_font = :hack_28
62
+ m1.setMnemonic(KeyEvent::VK_A)
63
+
64
+ open_a_local_file_entrypoint = JMenuItem.new('Open a local file', KeyEvent::VK_T)
65
+ open_a_local_file_entrypoint.use_this_font = :hack_26
66
+ open_a_local_file_entrypoint.addActionListener {|event|
67
+ do_choose_a_local_file_then_read_it_in
68
+ }
69
+ m1 << open_a_local_file_entrypoint
70
+
71
+ @menu_bar << m1
72
+ m2 = JMenu.new('Help')
73
+ m2.use_this_font = :hack_28
74
+ @menu_bar.add(m2)
75
+ @menu_bar.use_this_font = :hack_30
76
+ end
77
+
78
+ # ========================================================================= #
79
+ # === run (run tag)
80
+ # ========================================================================= #
81
+ def run
82
+ create_the_menu
83
+
84
+ frame = frame('Viewing the content of a file:')
85
+ panel = create_panel # This is an instance of Java::JavaxSwing::JPanel.
86
+ panel.use_this_font = :hack_40
87
+ frame << panel
88
+ panel.setLayout(BoxLayout.new(panel, BoxLayout::PAGE_AXIS)) # FlowLayout.new)
89
+ panel.hint = 'Table example'
90
+
91
+ # ======================================================================= #
92
+ # Put the editor pane in a scroll pane.
93
+ # ======================================================================= #
94
+ button1 = create_button
95
+ @text_view = create_text_view
96
+ @text_view.use_this_font = :hack_30
97
+ scroll_pane = scroll_pane(@text_view)
98
+ scroll_pane.vertical_scrollbar_always
99
+ scroll_pane.min_size(WIDTH, HEIGHT)
100
+ scroll_pane.pad10px
101
+ panel << scroll_pane
102
+ qbutton = quit_button # quit tag
103
+ qbutton.use_this_font = :hack_32
104
+ panel << qbutton
105
+
106
+ frame.menubar(@menu_bar)
107
+ frame.use_this_font = :hack_30
108
+ frame.exit_on_close
109
+ frame.set_size(WIDTH+100, 800)
110
+ frame.setLocationRelativeTo(nil)
111
+ check_commandline_arguments
112
+ frame.show_all
113
+ end
114
+
115
+ # ========================================================================= #
116
+ # === do_choose_a_local_file_then_read_it_in
117
+ # ========================================================================= #
118
+ def do_choose_a_local_file_then_read_it_in
119
+ file_chooser = JFileChooser.new # dialog tag.
120
+ file_chooser.use_this_font = :hack_38
121
+ # file_chooser.setFileSelectionMode(JFileChooser::DIRECTORIES_ONLY)
122
+ result = file_chooser.showOpenDialog(nil)
123
+ case result
124
+ when JFileChooser::APPROVE_OPTION
125
+ this_file = file_chooser.getSelectedFile.getAbsoluteFile.to_s
126
+ this_file = File.absolute_path(this_file)
127
+ read_in_this_file(this_file)
128
+ end
129
+ end
130
+
131
+ # ========================================================================= #
132
+ # === read_in_this_file
133
+ # ========================================================================= #
134
+ def read_in_this_file(i)
135
+ @text_view.set_text(File.read(i))
136
+ end
137
+
138
+ # ========================================================================= #
139
+ # === check_commandline_arguments
140
+ # ========================================================================= #
141
+ def check_commandline_arguments
142
+ commandline_arguments?.each {|entry|
143
+ if entry and File.file?(entry)
144
+ read_in_this_file(entry)
145
+ end
146
+ }
147
+ end
148
+
149
+ # ========================================================================= #
150
+ # === TextViewer[]
151
+ # ========================================================================= #
152
+ def self.[](i = '')
153
+ new(i)
154
+ end
155
+
156
+ end; end
157
+
158
+ if __FILE__ == $PROGRAM_NAME
159
+ SwingParadise::TextViewer.new(ARGV)
160
+ end # text_viewer.rb
@@ -0,0 +1 @@
1
+ require 'swing_paradise/requires/require_the_project.rb'
@@ -0,0 +1,42 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ require 'yaml'
6
+ require 'swing_paradise/version/version.rb'
7
+ require 'roebe'
8
+
9
+ Gem::Specification.new { |s|
10
+
11
+ s.name = 'swing_paradise'
12
+ s.version = SwingParadise::VERSION
13
+ s.date = Time.now.strftime('%Y-%m-%d')
14
+
15
+ DESCRIPTION = <<-EOF
16
+
17
+ This gem is meant to be for jruby only.
18
+
19
+ It attempts to make the Swing bindings, available in Java,
20
+ more convenient to use from within Ruby code. In other
21
+ words: this gem is basically a helper-wrapper over Swing.
22
+ Naturally you need to use jruby, if you wish to make use
23
+ of this gem.
24
+
25
+ EOF
26
+
27
+ s.summary = DESCRIPTION
28
+ s.description = DESCRIPTION
29
+
30
+ s.authors = ['Robert A. Heiler']
31
+ s.email = Roebe.email?
32
+ s.files = Dir['**/*']
33
+
34
+ s.license = 'MIT'
35
+ s.homepage = 'https://www.rubydoc.info/gems/rbt/'
36
+ s.require_paths = ['lib']
37
+
38
+ s.required_ruby_version = '>= '+Roebe.third_most_stable_version_of_ruby
39
+ s.required_rubygems_version = '>= '+Gem::VERSION
40
+ s.rubygems_version = '>= '+Gem::VERSION
41
+
42
+ }
metadata ADDED
@@ -0,0 +1,120 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: swing_paradise
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.46
5
+ platform: ruby
6
+ authors:
7
+ - Robert A. Heiler
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2024-04-11 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: |2+
14
+
15
+ This gem is meant to be for jruby only.
16
+
17
+ It attempts to make the Swing bindings, available in Java,
18
+ more convenient to use from within Ruby code. In other
19
+ words: this gem is basically a helper-wrapper over Swing.
20
+ Naturally you need to use jruby, if you wish to make use
21
+ of this gem.
22
+
23
+ email: shevy@inbox.lt
24
+ executables: []
25
+ extensions: []
26
+ extra_rdoc_files: []
27
+ files:
28
+ - README.md
29
+ - doc/README.gen
30
+ - lib/swing_paradise.rb
31
+ - lib/swing_paradise/autoinclude.rb
32
+ - lib/swing_paradise/awt/README.md
33
+ - lib/swing_paradise/awt/color.rb
34
+ - lib/swing_paradise/base_module/base_module.rb
35
+ - lib/swing_paradise/classes
36
+ - lib/swing_paradise/examples/001_quit_button_example.rb
37
+ - lib/swing_paradise/examples/002_text_area_example.rb
38
+ - lib/swing_paradise/examples/003_combo_box_example.rb
39
+ - lib/swing_paradise/examples/004_jpanel_left_bound_example.rb
40
+ - lib/swing_paradise/examples/005_box_layout_example.rb
41
+ - lib/swing_paradise/examples/006_frame_example.rb
42
+ - lib/swing_paradise/examples/007_textarea_responding_to_enter_key_example.rb
43
+ - lib/swing_paradise/examples/008_scrolled_window_example.rb
44
+ - lib/swing_paradise/examples/009_font_size_example.rb
45
+ - lib/swing_paradise/examples/010_counter_example.rb
46
+ - lib/swing_paradise/examples/011_button_with_image_example.rb
47
+ - lib/swing_paradise/examples/012_quit_on_escape_key_being_pressed.rb
48
+ - lib/swing_paradise/examples/013_simple_box_example.rb
49
+ - lib/swing_paradise/examples/014_mouse_events_example.rb
50
+ - lib/swing_paradise/examples/015_menu_example.rb
51
+ - lib/swing_paradise/examples/016_file_chooser_example.rb
52
+ - lib/swing_paradise/examples/017_buttons_example.rb
53
+ - lib/swing_paradise/examples/018_colour_chooser_example.rb
54
+ - lib/swing_paradise/examples/019_jeditorpane_example.rb
55
+ - lib/swing_paradise/examples/020_table_example.rb
56
+ - lib/swing_paradise/examples/021_jsplitpane_example.rb
57
+ - lib/swing_paradise/examples/022_drawing_oval_example.rb
58
+ - lib/swing_paradise/examples/023_show_message_dialog_example.rb
59
+ - lib/swing_paradise/java_classes/border_factory/border_factory.rb
60
+ - lib/swing_paradise/java_classes/box/box.rb
61
+ - lib/swing_paradise/java_classes/button
62
+ - lib/swing_paradise/java_classes/checkbox
63
+ - lib/swing_paradise/java_classes/combobox
64
+ - lib/swing_paradise/java_classes/default_table_model/default_table_model.rb
65
+ - lib/swing_paradise/java_classes/frame
66
+ - lib/swing_paradise/java_classes/jbutton/jbutton.rb
67
+ - lib/swing_paradise/java_classes/jcheckbox/jcheckbox.rb
68
+ - lib/swing_paradise/java_classes/jcombobox/jcombobox.rb
69
+ - lib/swing_paradise/java_classes/jcomponent/jcomponent.rb
70
+ - lib/swing_paradise/java_classes/jeditorpane/jeditorpane.rb
71
+ - lib/swing_paradise/java_classes/jfilechooser/jfilechooser.rb
72
+ - lib/swing_paradise/java_classes/jframe/jframe.rb
73
+ - lib/swing_paradise/java_classes/jlabel/jlabel.rb
74
+ - lib/swing_paradise/java_classes/jmenu/jmenu.rb
75
+ - lib/swing_paradise/java_classes/jmenubar/jmenubar.rb
76
+ - lib/swing_paradise/java_classes/jpanel/jpanel.rb
77
+ - lib/swing_paradise/java_classes/jscrollpane/jscrollpane.rb
78
+ - lib/swing_paradise/java_classes/jspinner/jspinner.rb
79
+ - lib/swing_paradise/java_classes/jtextarea/jtextarea.rb
80
+ - lib/swing_paradise/java_classes/jtextfield/jtextfield.rb
81
+ - lib/swing_paradise/java_classes/label
82
+ - lib/swing_paradise/java_classes/panel
83
+ - lib/swing_paradise/java_classes/spinner
84
+ - lib/swing_paradise/java_classes/textarea
85
+ - lib/swing_paradise/misc/misc.rb
86
+ - lib/swing_paradise/prototype/prototype.rb
87
+ - lib/swing_paradise/requires/require_the_project.rb
88
+ - lib/swing_paradise/toplevel_methods/misc.rb
89
+ - lib/swing_paradise/version/version.rb
90
+ - lib/swing_paradise/widget_collection/README.md
91
+ - lib/swing_paradise/widget_collection/text_viewer.rb
92
+ - swing_paradise.gemspec
93
+ homepage: https://www.rubydoc.info/gems/rbt/
94
+ licenses:
95
+ - MIT
96
+ metadata: {}
97
+ post_install_message:
98
+ rdoc_options: []
99
+ require_paths:
100
+ - lib
101
+ required_ruby_version: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ version: 2.7.6
106
+ required_rubygems_version: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: 3.5.7
111
+ requirements: []
112
+ rubygems_version: 3.5.7
113
+ signing_key:
114
+ specification_version: 4
115
+ summary: 'This gem is meant to be for jruby only. It attempts to make the Swing bindings,
116
+ available in Java, more convenient to use from within Ruby code. In other words:
117
+ this gem is basically a helper-wrapper over Swing. Naturally you need to use jruby,
118
+ if you wish to make use of this gem.'
119
+ test_files: []
120
+ ...