rubeus 0.0.2-java → 0.0.3-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (28) hide show
  1. data/examples/notepad.rb +33 -0
  2. data/examples/notepad.rtf +39 -0
  3. data/examples/rubeus_swing_example01.rb +40 -0
  4. data/examples/rubeus_swing_example01_with_class.rb +45 -0
  5. data/lib/rubeus.rb +1 -0
  6. data/lib/rubeus/awt.rb +5 -9
  7. data/lib/rubeus/component_loader.rb +73 -52
  8. data/lib/rubeus/extensions.rb +6 -0
  9. data/lib/rubeus/extensions/java.rb +5 -0
  10. data/lib/rubeus/extensions/java/awt.rb +4 -0
  11. data/lib/rubeus/{awt/extensions → extensions/java/awt}/component.rb +1 -1
  12. data/lib/rubeus/{awt/extensions → extensions/java/awt}/container.rb +1 -1
  13. data/lib/rubeus/{awt/extensions → extensions/java/awt}/dimension.rb +1 -2
  14. data/lib/rubeus/extensions/javax.rb +5 -0
  15. data/lib/rubeus/extensions/javax/swing.rb +4 -0
  16. data/lib/rubeus/{swing/extensions → extensions/javax/swing}/box_layout.rb +1 -1
  17. data/lib/rubeus/{swing/extensions → extensions/javax/swing}/j_applet.rb +1 -1
  18. data/lib/rubeus/{swing/extensions → extensions/javax/swing}/j_component.rb +1 -1
  19. data/lib/rubeus/{swing/extensions → extensions/javax/swing}/j_frame.rb +1 -1
  20. data/lib/rubeus/{swing/extensions → extensions/javax/swing}/j_panel.rb +1 -1
  21. data/lib/rubeus/{swing/extensions → extensions/javax/swing}/j_scroll_pane.rb +0 -0
  22. data/lib/rubeus/{swing/extensions → extensions/javax/swing}/j_split_pane.rb +0 -0
  23. data/lib/rubeus/{swing/extensions → extensions/javax/swing}/j_text_field.rb +0 -0
  24. data/lib/rubeus/{swing/extensions → extensions/javax/swing}/j_window.rb +0 -0
  25. data/lib/rubeus/swing.rb +8 -8
  26. metadata +22 -20
  27. data/lib/rubeus/awt/extensions.rb +0 -4
  28. data/lib/rubeus/swing/extensions.rb +0 -4
@@ -0,0 +1,33 @@
1
+ include Java
2
+
3
+ require 'rubygems'
4
+ gem 'rubeus'
5
+ require 'rubeus'
6
+
7
+ Rubeus::Swing.irb
8
+
9
+ import 'java.io.FileInputStream'
10
+ import 'java.io.FileOutputStream'
11
+
12
+ rtf_editor_kit = RTFEditorKit.new
13
+
14
+ JFrame.new('Notepad') do |frame|
15
+ JScrollPane.new do |pane|
16
+ pane.vertical_scroll_bar_policy = ScrollPaneConstants::VERTICAL_SCROLLBAR_AS_NEEDED
17
+ pane.horizontal_scroll_bar_policy = ScrollPaneConstants::HORIZONTAL_SCROLLBAR_NEVER
18
+ @text_pane = JTextPane.new
19
+ @text_pane.document = DefaultStyledDocument.new StyleContext.new
20
+ end
21
+
22
+ file_path = File.join(File.dirname(__FILE__), 'notepad.rtf')
23
+ rtf_editor_kit.read FileInputStream.new(file_path), @text_pane.document, 0
24
+
25
+ @text_pane.listen(:key, :key_released) do |event|
26
+ rtf_editor_kit.write FileOutputStream.new(file_path), @text_pane.document, 0, @text_pane.document.length
27
+ end
28
+
29
+ frame.default_close_operation = JFrame::EXIT_ON_CLOSE
30
+ frame.set_size(300, 200)
31
+ frame.set_location_relative_to(nil)
32
+ frame.visible = true
33
+ end
@@ -0,0 +1,39 @@
1
+ {\rtf1\ansi\ansicpg932\cocoartf949\cocoasubrtf330
2
+ {\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;}
3
+ {\colortbl;\red255\green255\blue255;\red255\green6\blue12;\red12\green21\blue237;\red237\green9\blue17;
4
+ \red179\green176\blue39;\red237\green12\blue9;}
5
+ \margl1440\margr1440\margb1800\margt1800\vieww9000\viewh8400\viewkind0
6
+ \deftab708
7
+ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab708\ql\qnatural\pardirnatural
8
+
9
+ \f0\fs24 \cf0 \expnd0\expndtw0\kerning0
10
+ \
11
+ \
12
+
13
+ \b\fs36 \cf2 \kerning1\expnd0\expndtw0 Rubeus
14
+ \b0\fs24 \cf0 \expnd0\expndtw0\kerning0
15
+ provides you an easy access to
16
+ \b\fs36 \cf3 \kerning1\expnd0\expndtw0 Java
17
+ \b0\fs24 \cf0 \expnd0\expndtw0\kerning0
18
+ objects from
19
+ \b\fs36 \cf4 \kerning1\expnd0\expndtw0 Ruby
20
+ \b0\fs24 \cf0 \expnd0\expndtw0\kerning0
21
+ scripts on
22
+ \b\fs36 \cf5 \kerning1\expnd0\expndtw0 JRuby
23
+ \b0\fs24 \cf0 \expnd0\expndtw0\kerning0
24
+ . Currently, we're working on Swing libralies. With
25
+ \b\fs36 \cf6 \kerning1\expnd0\expndtw0 Rubeus
26
+ \b0\fs24 \cf0 \expnd0\expndtw0\kerning0
27
+ swing-extension, you'll be free from messy chank of codes. It makes everything about Swing surprisingly simple ! JDBC supports will come next !\
28
+ \
29
+ Google Group:
30
+ \fs28 http://groups.google.com/group/rubeus
31
+ \fs24 \
32
+ \
33
+ example_code01:\
34
+ \
35
+ with_rubeus: http://code.google.com/p/rubeus/source/browse/trunk/examples/rubeus_swing_example01.rb \
36
+ \
37
+ with_java: http://code.google.com/p/rubeus/source/browse/trunk/examples/JavaSwingExample01.java \
38
+ \
39
+ }
@@ -0,0 +1,40 @@
1
+ include Java
2
+
3
+ require 'rubygems'
4
+ gem "rubeus"
5
+ require "rubeus"
6
+
7
+ Rubeus::Swing.irb
8
+
9
+ # JFrameなどのコンテナのnewに渡されたブロックの中でnewされたコンポーネントは
10
+ # 自動的にaddされます。
11
+ JFrame.new("Rubeus Swing Example 01") do |frame|
12
+ frame.layout = BoxLayout.new(:Y_AXIS)
13
+ JSplitPane.new(JSplitPane::VERTICAL_SPLIT) do
14
+ JPanel.new do |panel|
15
+ panel.layout = BoxLayout.new(:X_AXIS)
16
+ # キーのイベントもメソッドを指定してハンドリングできます。
17
+ # newにブロックを渡すとlisten(:key, :pressed)が実行されます。
18
+ @text_field = JTextField.new do |event|
19
+ if event.key_code == 10 # RETURN
20
+ @textpane.text += @text_field.text + "\n"
21
+ @text_field.text = ''
22
+ end
23
+ end
24
+ # 以下のように書くこともできますです
25
+ # @text_field = JTextField.new
26
+ # @text_field.listen(:key, :key_pressed, :key_code => 10) do |event|
27
+ # @textpane.text += @text_field.text + "\n"
28
+ # @text_field.text = ''
29
+ # end
30
+ JButton.new("append") do
31
+ @textpane.text += @text_field.text
32
+ @text_field.text = ''
33
+ end
34
+ end
35
+ JScrollPane.new(:preferred_size => [400, 250]) do |pane|
36
+ @textpane = JTextPane.new
37
+ end
38
+ end
39
+ frame.visible = true
40
+ end
@@ -0,0 +1,45 @@
1
+ include Java
2
+
3
+ require 'rubygems'
4
+ gem "rubeus"
5
+ require "rubeus"
6
+
7
+ class Example01
8
+ extend Rubeus::Swing
9
+
10
+ def show
11
+ # JFrameなどのコンテナのnewに渡されたブロックの中でnewされたコンポーネントは
12
+ # 自動的にaddされます。
13
+ JFrame.new("Rubeus Swing Example 01") do |frame|
14
+ frame.layout = BoxLayout.new(:Y_AXIS)
15
+ JSplitPane.new(JSplitPane::VERTICAL_SPLIT) do
16
+ JPanel.new do |panel|
17
+ panel.layout = BoxLayout.new(:X_AXIS)
18
+ # キーのイベントもメソッドを指定してハンドリングできます。
19
+ # newにブロックを渡すとlisten(:key, :pressed)が実行されます。
20
+ @text_field = JTextField.new do |event|
21
+ if event.key_code == 10 # RETURN
22
+ @textpane.text += @text_field.text + "\n"
23
+ @text_field.text = ''
24
+ end
25
+ end
26
+ # 以下のように書くこともできますです
27
+ # @text_field = JTextField.new
28
+ # @text_field.listen(:key, :key_pressed, :key_code => 10) do |event|
29
+ # @textpane.text += @text_field.text + "\n"
30
+ # @text_field.text = ''
31
+ # end
32
+ JButton.new("append") do
33
+ @textpane.text += @text_field.text + "\n"
34
+ @text_field.text = ''
35
+ end
36
+ end
37
+ JScrollPane.new(:preferred_size => [400, 250]) do |pane|
38
+ @textpane = JTextPane.new
39
+ end
40
+ end
41
+ frame.visible = true
42
+ end
43
+ end
44
+ end
45
+ Example01.new.show
@@ -5,6 +5,7 @@ require "active_support/core_ext/string"
5
5
 
6
6
  module Rubeus
7
7
  VERSION = "0.0.2"
8
+ autoload :Extensions, "rubeus/extensions"
8
9
  autoload :Awt, "rubeus/awt"
9
10
  autoload :Swing, "rubeus/swing"
10
11
  end
@@ -1,14 +1,10 @@
1
1
  require "rubeus/component_loader"
2
2
 
3
3
  module Rubeus
4
- extensions_path = File.join(File.dirname(__FILE__), "awt", "extensions")
5
- Awt = ComponentLoader.new("java.awt", extensions_path) do
6
- base_path = File.expand_path(File.join(File.dirname(__FILE__), '..'))
7
- Dir.glob(File.join(base_path, 'rubeus', 'awt', '*.rb')) do |file|
8
- rel_path = file.gsub("#{base_path}/", '')
9
- autoload(File.basename(rel_path, '.*').camelize, rel_path.gsub(/\.rb$/, ''))
10
- end
11
- end
4
+ Awt = ComponentLoader.new("java.awt")
12
5
  end
13
6
 
14
- require "rubeus/awt/extensions"
7
+ require "rubeus/awt/attributes"
8
+ require "rubeus/awt/nestable"
9
+ require "rubeus/awt/event"
10
+ require "rubeus/awt/setters"
@@ -1,33 +1,50 @@
1
1
  module Rubeus
2
2
  class ComponentLoader < Module
3
- attr_reader :java_package, :ruby_module_path, :base_path
4
3
 
5
- def self.find_base_path(path)
6
- path = File.expand_path(path)
7
- $LOAD_PATH.detect{|load_path| path.include?(File.expand_path(load_path))}
4
+ def self.class_names(*package_names)
5
+ patterns = Regexp.union(
6
+ *package_names.map{|package_name|
7
+ Regexp.new(package_name.gsub(/\./, "/"))})
8
+ classlist = File.join(ENV_JAVA["java.home"], "lib", "classlist")
9
+ classes = []
10
+ open(classlist) do |f|
11
+ f.each do |line|
12
+ classes << line.gsub(/\//, '.').strip if patterns =~ line
13
+ end
14
+ end
15
+ classes
8
16
  end
9
17
 
10
- def initialize(java_package, ruby_module_path, base_path = nil, &block)
11
- @java_package, @ruby_module_path, @base_path =
12
- java_package, ruby_module_path, base_path
13
- @base_path ||= ComponentLoader.find_base_path(ruby_module_path)
14
- @ruby_module_holder_name = File.basename(ruby_module_path).camelize
18
+ attr_reader :java_package
19
+ attr_reader :class_to_package
20
+
21
+ def initialize(java_package, &block)
22
+ @java_package = java_package
23
+ build_class_to_package_table
15
24
  super(&block)
16
25
  end
17
26
 
18
- def ruby_module_holder
19
- @ruby_module_holder ||= (self.const_get(@ruby_module_holder_name) rescue nil)
20
- unless @ruby_module_holder
21
- self.const_set(@ruby_module_holder_name, Module.new)
22
- @ruby_module_holder = self.const_get(@ruby_module_holder_name)
27
+ def build_class_to_package_table
28
+ class_names = ::Rubeus::ComponentLoader.class_names(@java_package)
29
+ @class_to_package = {}
30
+ class_names.each do |fqn|
31
+ parts = fqn.split('.')
32
+ class_name = parts.pop
33
+ # インナークラスの拡張はその持ち主のクラスの責任とします。
34
+ # JVM上でも同じタイミングでロードされるし。
35
+ next if class_name.include?('$')
36
+ package = parts.join('.')
37
+ @class_to_package[class_name] = @class_to_package.key?(class_name) ?
38
+ [@class_to_package[class_name], package] : package
23
39
  end
24
- @ruby_module_holder
25
40
  end
26
-
41
+
27
42
  def extended(object)
28
43
  mod = Module.new do
29
44
  def const_missing(java_class_name)
30
45
  @loader.const_get(java_class_name)
46
+ rescue
47
+ super
31
48
  end
32
49
  end
33
50
  object.instance_variable_set("@loader", self)
@@ -48,56 +65,60 @@ module Rubeus
48
65
 
49
66
  def const_missing(java_class_name)
50
67
  if autoload?(java_class_name)
51
- feature = autolodings.delete(java_class_name.to_s)
68
+ feature = autolodings.delete(java_class_name.to_s)
52
69
  require(feature)
53
70
  return const_get(java_class_name)
54
71
  end
55
- if java_class_name.to_s == @ruby_module_holder_name.to_s
56
- raise NameError, java_class_name
72
+ package = @class_to_package[java_class_name.to_s]
73
+ raise NameError, java_class_name unless package
74
+ if package.is_a?(Array)
75
+ raise NameError, "cannot specified package name for #{java_class_name}: #{package.join(', ')}"
57
76
  end
58
- if java_class_name.to_s.include?('::')
59
- names = java_class_name.to_s.split('::', 2)
60
- package = names.first
61
- mod = ComponentLoader.new(
62
- [@java_package, package.underscore].join('.'),
63
- File.join(@ruby_module_path, package.underscore),
64
- @base_path)
65
- self.const_set(package.camelize, mod)
66
- mod.const_get(names.last)
67
- else
68
- begin
69
- require(File.join(@ruby_module_path, java_class_name.to_s.underscore))
70
- rescue LoadError => e
71
- # puts "warning: #{e}"
77
+ java_fqn = package.empty? ? java_class_name.to_s : "#{package}.#{java_class_name.to_s}"
78
+ extension = extension_for(java_fqn)
79
+ if extension
80
+ JavaUtilities.extend_proxy(java_fqn) do
81
+ include extension
72
82
  end
73
- java_fqn = to_java_fqn(java_class_name)
74
- extension = nil
75
- begin
76
- extension = self.ruby_module_holder.const_get(java_class_name)
77
- rescue
78
- # puts "warning: #{$!.inspect}"
79
- end
80
- if extension
81
- JavaUtilities.extend_proxy(java_fqn) do
82
- include extension
83
- end
84
- end
85
- result = instance_eval(java_fqn)
86
- self.const_set(java_class_name, result)
87
- result
88
83
  end
84
+ result = instance_eval(java_fqn)
85
+ self.const_set(java_class_name, result)
86
+ result
89
87
  rescue
90
88
  puts $!
91
89
  puts $!.backtrace.join("\n ")
92
90
  super
93
91
  end
94
92
 
95
- def to_java_fqn(java_class_name)
96
- "#{java_package}.#{java_class_name}"
97
- end
98
-
99
93
  def depend_on(*java_class_names)
100
94
  java_class_names.each{|java_class_name| self.const_get(java_class_name)}
101
95
  end
96
+
97
+ def extension_path_for(java_fqn_or_parts)
98
+ parts = java_fqn_or_parts.is_a?(Array) ? java_fqn_or_parts : java_fqn_or_parts.split('.')
99
+ "rubeus/extensions/%s" % parts.map{|part|part.underscore}.join('/')
100
+ end
101
+
102
+ def extension_class_name_for(java_fqn_or_parts)
103
+ parts = java_fqn_or_parts.is_a?(Array) ? java_fqn_or_parts : java_fqn_or_parts.split('.')
104
+ "Rubeus::Extensions::%s" % parts.map{|part|part.camelize}.join('::')
105
+ end
106
+
107
+ def extension_for(java_fqn)
108
+ parts = java_fqn.split('.')
109
+ extension_path = extension_path_for(parts)
110
+ begin
111
+ require(extension_path)
112
+ rescue LoadError => e
113
+ # puts "warning: #{e}"
114
+ return nil
115
+ end
116
+ begin
117
+ instance_eval(extension_class_name_for(parts))
118
+ rescue NameError => e
119
+ # puts "warning: #{e}"
120
+ return nil
121
+ end
122
+ end
102
123
  end
103
124
  end
@@ -0,0 +1,6 @@
1
+ module Rubeus
2
+ module Extensions
3
+ autoload :Java, 'rubeus/extensions/java'
4
+ autoload :Javax, 'rubeus/extensions/javax'
5
+ end
6
+ end
@@ -0,0 +1,5 @@
1
+ module Rubeus::Extensions
2
+ module Java
3
+ autoload :Awt, 'rubeus/extensions/java/awt'
4
+ end
5
+ end
@@ -0,0 +1,4 @@
1
+ module Rubeus::Extensions::Java
2
+ module Awt
3
+ end
4
+ end
@@ -1,6 +1,6 @@
1
1
  Rubeus::Awt.depend_on("Dimension")
2
2
 
3
- module Rubeus::Awt::Extensions
3
+ module Rubeus::Extensions::Java::Awt
4
4
  module Component
5
5
  def self.included(base)
6
6
  base.module_eval do
@@ -1,6 +1,6 @@
1
1
  Rubeus::Awt.depend_on("Component")
2
2
 
3
- module Rubeus::Awt::Extensions
3
+ module Rubeus::Extensions::Java::Awt
4
4
  module Container
5
5
  end
6
6
  end
@@ -1,4 +1,4 @@
1
- module Rubeus::Awt::Extensions
1
+ module Rubeus::Extensions::Java::Awt
2
2
  module Dimension
3
3
  def self.included(base)
4
4
  base.extend ClassMethods
@@ -21,4 +21,3 @@ module Rubeus::Awt::Extensions
21
21
  end
22
22
  end
23
23
  end
24
-
@@ -0,0 +1,5 @@
1
+ module Rubeus::Extensions
2
+ module Javax
3
+ autoload :Swing, 'rubeus/extensions/javax/swing'
4
+ end
5
+ end
@@ -0,0 +1,4 @@
1
+ module Rubeus::Extensions::Javax
2
+ module Swing
3
+ end
4
+ end
@@ -1,4 +1,4 @@
1
- module Rubeus::Swing::Extensions
1
+ module Rubeus::Extensions::Javax::Swing
2
2
  module BoxLayout
3
3
  def self.included(base)
4
4
  base.extend(ClassMethods)
@@ -1,4 +1,4 @@
1
- module Rubeus::Swing::Extensions
1
+ module Rubeus::Extensions::Javax::Swing
2
2
  module JApplet
3
3
  def self.included(klass)
4
4
  klass.perform_as_container
@@ -1,6 +1,6 @@
1
1
  Rubeus::Awt.depend_on("Container")
2
2
 
3
- module Rubeus::Swing::Extensions
3
+ module Rubeus::Extensions::Javax::Swing
4
4
  module JComponent
5
5
 
6
6
  def self.included(base)
@@ -1,7 +1,7 @@
1
1
  Rubeus::Awt.depend_on('Container', 'Window', 'Frame')
2
2
  Rubeus::Swing.depend_on('JPanel')
3
3
 
4
- module Rubeus::Swing::Extensions
4
+ module Rubeus::Extensions::Javax::Swing
5
5
  module JFrame
6
6
  def self.included(base)
7
7
  base.perform_as_container
@@ -1,6 +1,6 @@
1
1
  Rubeus::Swing.depend_on("JComponent")
2
2
 
3
- module Rubeus::Swing::Extensions
3
+ module Rubeus::Extensions::Javax::Swing
4
4
  module JPanel
5
5
  def self.included(base)
6
6
  base.perform_as_container
@@ -1,8 +1,14 @@
1
1
  require "rubeus/component_loader"
2
+ require "rubeus/awt"
2
3
 
3
4
  module Rubeus
4
- extensions_path = File.join(File.dirname(__FILE__), "swing", "extensions")
5
- Swing = ComponentLoader.new("javax.swing", extensions_path) do
5
+ Swing = ComponentLoader.new("javax.swing") do
6
+ class_to_package.update(
7
+ # $JAVA_HOME/lib/classlistにないものリスト
8
+ 'JTextPane' => 'javax.swing',
9
+ 'RTFEditorKit' => 'javax.swing.text.rtf'
10
+ )
11
+ class_to_package['DefaultStyledDocument'] ||= 'javax.swing.text' # Windowsにない
6
12
 
7
13
  def self.irb
8
14
  Object.send(:extend, self)
@@ -10,12 +16,6 @@ module Rubeus
10
16
  end
11
17
  end
12
18
 
13
- require "rubeus/swing/extensions"
14
-
15
- require "rubeus/awt/attributes"
16
- require "rubeus/awt/nestable"
17
- require "rubeus/awt/event"
18
-
19
19
 
20
20
  =begin
21
21
  import "javax.swing.JFrame"
metadata CHANGED
@@ -3,37 +3,39 @@ extensions: []
3
3
  homepage: http://code.google.com/p/rubeus/
4
4
  executables: []
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.0.2
6
+ version: 0.0.3
7
7
  post_install_message:
8
8
  date: 2008-06-28 15:00:00 +00:00
9
9
  files:
10
- - lib/rubeus
11
10
  - lib/rubeus.rb
12
- - lib/rubeus/awt
13
11
  - lib/rubeus/awt.rb
14
12
  - lib/rubeus/component_loader.rb
15
- - lib/rubeus/swing
13
+ - lib/rubeus/extensions.rb
16
14
  - lib/rubeus/swing.rb
17
15
  - lib/rubeus/awt/attributes.rb
18
16
  - lib/rubeus/awt/event.rb
19
- - lib/rubeus/awt/extensions
20
- - lib/rubeus/awt/extensions.rb
21
17
  - lib/rubeus/awt/nestable.rb
22
18
  - lib/rubeus/awt/setters.rb
23
- - lib/rubeus/awt/extensions/component.rb
24
- - lib/rubeus/awt/extensions/container.rb
25
- - lib/rubeus/awt/extensions/dimension.rb
26
- - lib/rubeus/swing/extensions
27
- - lib/rubeus/swing/extensions.rb
28
- - lib/rubeus/swing/extensions/box_layout.rb
29
- - lib/rubeus/swing/extensions/j_applet.rb
30
- - lib/rubeus/swing/extensions/j_component.rb
31
- - lib/rubeus/swing/extensions/j_frame.rb
32
- - lib/rubeus/swing/extensions/j_panel.rb
33
- - lib/rubeus/swing/extensions/j_scroll_pane.rb
34
- - lib/rubeus/swing/extensions/j_split_pane.rb
35
- - lib/rubeus/swing/extensions/j_text_field.rb
36
- - lib/rubeus/swing/extensions/j_window.rb
19
+ - lib/rubeus/extensions/java.rb
20
+ - lib/rubeus/extensions/javax.rb
21
+ - lib/rubeus/extensions/java/awt.rb
22
+ - lib/rubeus/extensions/java/awt/component.rb
23
+ - lib/rubeus/extensions/java/awt/container.rb
24
+ - lib/rubeus/extensions/java/awt/dimension.rb
25
+ - lib/rubeus/extensions/javax/swing.rb
26
+ - lib/rubeus/extensions/javax/swing/box_layout.rb
27
+ - lib/rubeus/extensions/javax/swing/j_applet.rb
28
+ - lib/rubeus/extensions/javax/swing/j_component.rb
29
+ - lib/rubeus/extensions/javax/swing/j_frame.rb
30
+ - lib/rubeus/extensions/javax/swing/j_panel.rb
31
+ - lib/rubeus/extensions/javax/swing/j_scroll_pane.rb
32
+ - lib/rubeus/extensions/javax/swing/j_split_pane.rb
33
+ - lib/rubeus/extensions/javax/swing/j_text_field.rb
34
+ - lib/rubeus/extensions/javax/swing/j_window.rb
35
+ - examples/notepad.rb
36
+ - examples/rubeus_swing_example01.rb
37
+ - examples/rubeus_swing_example01_with_class.rb
38
+ - examples/notepad.rtf
37
39
  rubygems_version: 1.1.1
38
40
  rdoc_options: []
39
41
  signing_key:
@@ -1,4 +0,0 @@
1
- module Rubeus::Awt
2
- module Extensions
3
- end
4
- end
@@ -1,4 +0,0 @@
1
- module Rubeus::Swing
2
- module Extensions
3
- end
4
- end