rubeus 0.0.2-java → 0.0.3-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.
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