knjrbfw 0.0.3

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 (208) hide show
  1. data/.document +5 -0
  2. data/.rspec +1 -0
  3. data/Gemfile +14 -0
  4. data/Gemfile.lock +32 -0
  5. data/LICENSE.txt +20 -0
  6. data/README.rdoc +19 -0
  7. data/Rakefile +49 -0
  8. data/VERSION +1 -0
  9. data/lib/knj/.gitignore +1 -0
  10. data/lib/knj/arrayext.rb +157 -0
  11. data/lib/knj/autoload/activesupport.rb +2 -0
  12. data/lib/knj/autoload/backups/facets_dictionary.rb +430 -0
  13. data/lib/knj/autoload/backups/parsedate.rb +53 -0
  14. data/lib/knj/autoload/backups/ping.rb +64 -0
  15. data/lib/knj/autoload/cinch.rb +2 -0
  16. data/lib/knj/autoload/erubis.rb +6 -0
  17. data/lib/knj/autoload/facebooker.rb +3 -0
  18. data/lib/knj/autoload/facets_dictionary.rb +7 -0
  19. data/lib/knj/autoload/gd2.rb +2 -0
  20. data/lib/knj/autoload/gettext.rb +9 -0
  21. data/lib/knj/autoload/gtk2.rb +5 -0
  22. data/lib/knj/autoload/json_autoload.rb +7 -0
  23. data/lib/knj/autoload/magick.rb +6 -0
  24. data/lib/knj/autoload/mysql.rb +6 -0
  25. data/lib/knj/autoload/parsedate.rb +1 -0
  26. data/lib/knj/autoload/ping.rb +64 -0
  27. data/lib/knj/autoload/rexml.rb +12 -0
  28. data/lib/knj/autoload/soap.rb +3 -0
  29. data/lib/knj/autoload/sqlite3.rb +6 -0
  30. data/lib/knj/autoload/tmail.rb +6 -0
  31. data/lib/knj/autoload/twitter.rb +2 -0
  32. data/lib/knj/autoload/xmlsimple.rb +6 -0
  33. data/lib/knj/autoload/zip.rb +6 -0
  34. data/lib/knj/autoload.rb +136 -0
  35. data/lib/knj/compiler.rb +53 -0
  36. data/lib/knj/cpufreq.rb +40 -0
  37. data/lib/knj/datarow.rb +256 -0
  38. data/lib/knj/datestamp.rb +91 -0
  39. data/lib/knj/datet.rb +448 -0
  40. data/lib/knj/degulesider.rb +46 -0
  41. data/lib/knj/erb/apache_knjerb.conf +8 -0
  42. data/lib/knj/erb/cache/README +1 -0
  43. data/lib/knj/erb/erb.rb +21 -0
  44. data/lib/knj/erb/erb_1.9.rb +13 -0
  45. data/lib/knj/erb/erb_cache_clean.rb +20 -0
  46. data/lib/knj/erb/erb_fcgi.rb +44 -0
  47. data/lib/knj/erb/erb_fcgi_1.9.rb +44 -0
  48. data/lib/knj/erb/erb_fcgi_jruby.rb +7 -0
  49. data/lib/knj/erb/erb_jruby.rb +22 -0
  50. data/lib/knj/erb/include.rb +248 -0
  51. data/lib/knj/errors.rb +19 -0
  52. data/lib/knj/eruby.rb +224 -0
  53. data/lib/knj/event_filemod.rb +53 -0
  54. data/lib/knj/event_handler.rb +69 -0
  55. data/lib/knj/exchangerates.rb +39 -0
  56. data/lib/knj/ext/webrick.rb +31 -0
  57. data/lib/knj/filesystem.rb +8 -0
  58. data/lib/knj/fs/drivers/filesystem.rb +14 -0
  59. data/lib/knj/fs/drivers/ftp.rb +33 -0
  60. data/lib/knj/fs/drivers/ssh.rb +28 -0
  61. data/lib/knj/fs/fs.rb +36 -0
  62. data/lib/knj/gettext_fallback.rb +17 -0
  63. data/lib/knj/gettext_threadded.rb +77 -0
  64. data/lib/knj/google_sitemap.rb +59 -0
  65. data/lib/knj/gtk2.rb +277 -0
  66. data/lib/knj/gtk2_cb.rb +85 -0
  67. data/lib/knj/gtk2_menu.rb +57 -0
  68. data/lib/knj/gtk2_statuswindow.rb +64 -0
  69. data/lib/knj/gtk2_tv.rb +63 -0
  70. data/lib/knj/hash_methods.rb +37 -0
  71. data/lib/knj/http.rb +190 -0
  72. data/lib/knj/includes/appserver_cli.rb +39 -0
  73. data/lib/knj/ip2location.rb +22 -0
  74. data/lib/knj/ironruby-gtk2/button.rb +19 -0
  75. data/lib/knj/ironruby-gtk2/dialog.rb +44 -0
  76. data/lib/knj/ironruby-gtk2/entry.rb +9 -0
  77. data/lib/knj/ironruby-gtk2/gdk_event.rb +3 -0
  78. data/lib/knj/ironruby-gtk2/gdk_eventbutton.rb +13 -0
  79. data/lib/knj/ironruby-gtk2/gdk_pixbuf.rb +11 -0
  80. data/lib/knj/ironruby-gtk2/gladexml.rb +104 -0
  81. data/lib/knj/ironruby-gtk2/glib.rb +15 -0
  82. data/lib/knj/ironruby-gtk2/gtk2.rb +148 -0
  83. data/lib/knj/ironruby-gtk2/gtk_builder.rb +31 -0
  84. data/lib/knj/ironruby-gtk2/gtk_cellrenderertext.rb +5 -0
  85. data/lib/knj/ironruby-gtk2/gtk_combobox.rb +19 -0
  86. data/lib/knj/ironruby-gtk2/gtk_filechooserbutton.rb +5 -0
  87. data/lib/knj/ironruby-gtk2/gtk_liststore.rb +18 -0
  88. data/lib/knj/ironruby-gtk2/gtk_menu.rb +5 -0
  89. data/lib/knj/ironruby-gtk2/gtk_menuitem.rb +7 -0
  90. data/lib/knj/ironruby-gtk2/gtk_statusicon.rb +8 -0
  91. data/lib/knj/ironruby-gtk2/gtk_treeiter.rb +24 -0
  92. data/lib/knj/ironruby-gtk2/gtk_treeselection.rb +16 -0
  93. data/lib/knj/ironruby-gtk2/gtk_treeview.rb +19 -0
  94. data/lib/knj/ironruby-gtk2/gtk_treeviewcolumn.rb +32 -0
  95. data/lib/knj/ironruby-gtk2/iconsize.rb +3 -0
  96. data/lib/knj/ironruby-gtk2/image.rb +15 -0
  97. data/lib/knj/ironruby-gtk2/label.rb +19 -0
  98. data/lib/knj/ironruby-gtk2/stock.rb +4 -0
  99. data/lib/knj/ironruby-gtk2/tests/test.glade +15 -0
  100. data/lib/knj/ironruby-gtk2/tests/test_2.rb +22 -0
  101. data/lib/knj/ironruby-gtk2/tests/test_ironruby_window.rb +47 -0
  102. data/lib/knj/ironruby-gtk2/vbox.rb +5 -0
  103. data/lib/knj/ironruby-gtk2/window.rb +23 -0
  104. data/lib/knj/jruby-gtk2/builder/test_builder.glade +43 -0
  105. data/lib/knj/jruby-gtk2/builder/test_builder.rb +19 -0
  106. data/lib/knj/jruby-gtk2/builder/test_builder.ui +43 -0
  107. data/lib/knj/jruby-gtk2/builder.rb +27 -0
  108. data/lib/knj/jruby-gtk2/cellrenderertext.rb +12 -0
  109. data/lib/knj/jruby-gtk2/checkbutton.rb +3 -0
  110. data/lib/knj/jruby-gtk2/combobox.rb +29 -0
  111. data/lib/knj/jruby-gtk2/dialog.rb +44 -0
  112. data/lib/knj/jruby-gtk2/eventbutton.rb +21 -0
  113. data/lib/knj/jruby-gtk2/gladexml.rb +99 -0
  114. data/lib/knj/jruby-gtk2/gtk-4.0.jar +0 -0
  115. data/lib/knj/jruby-gtk2/gtk2.rb +246 -0
  116. data/lib/knj/jruby-gtk2/hbox.rb +10 -0
  117. data/lib/knj/jruby-gtk2/iconsize.rb +5 -0
  118. data/lib/knj/jruby-gtk2/image.rb +10 -0
  119. data/lib/knj/jruby-gtk2/liststore.rb +56 -0
  120. data/lib/knj/jruby-gtk2/menu.rb +40 -0
  121. data/lib/knj/jruby-gtk2/progressbar.rb +12 -0
  122. data/lib/knj/jruby-gtk2/statusicon.rb +8 -0
  123. data/lib/knj/jruby-gtk2/stock.rb +8 -0
  124. data/lib/knj/jruby-gtk2/tests/test_glade_window.glade +163 -0
  125. data/lib/knj/jruby-gtk2/tests/test_glade_window.rb +47 -0
  126. data/lib/knj/jruby-gtk2/tests/test_normal_window.rb +17 -0
  127. data/lib/knj/jruby-gtk2/tests/test_trayicon.png +0 -0
  128. data/lib/knj/jruby-gtk2/tests/test_trayicon.rb +18 -0
  129. data/lib/knj/jruby-gtk2/treeview.rb +105 -0
  130. data/lib/knj/jruby-gtk2/vbox.rb +12 -0
  131. data/lib/knj/jruby-gtk2/window.rb +11 -0
  132. data/lib/knj/jruby_compiler.rb +14 -0
  133. data/lib/knj/knj.rb +19 -0
  134. data/lib/knj/knj_controller.rb +13 -0
  135. data/lib/knj/knjdb/dbtime.rb +30 -0
  136. data/lib/knj/knjdb/drivers/mysql/knjdb_mysql.rb +327 -0
  137. data/lib/knj/knjdb/drivers/mysql/knjdb_mysql_columns.rb +130 -0
  138. data/lib/knj/knjdb/drivers/mysql/knjdb_mysql_indexes.rb +30 -0
  139. data/lib/knj/knjdb/drivers/mysql/knjdb_mysql_tables.rb +255 -0
  140. data/lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3.rb +93 -0
  141. data/lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3_columns.rb +151 -0
  142. data/lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3_indexes.rb +29 -0
  143. data/lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3_tables.rb +300 -0
  144. data/lib/knj/knjdb/libknjdb.rb +438 -0
  145. data/lib/knj/knjdb/libknjdb_java_sqlite3.rb +83 -0
  146. data/lib/knj/knjdb/libknjdb_row.rb +149 -0
  147. data/lib/knj/knjdb/libknjdb_sqlite3_ironruby.rb +69 -0
  148. data/lib/knj/knjdb/mysql-connector-java-5.1.13-bin.jar +0 -0
  149. data/lib/knj/knjdb/sqlitejdbc-v056.jar +0 -0
  150. data/lib/knj/libqt.rb +75 -0
  151. data/lib/knj/libqt_window.rb +10 -0
  152. data/lib/knj/locale_strings.rb +3 -0
  153. data/lib/knj/locales.rb +54 -0
  154. data/lib/knj/maemo/fremantle-calendar/fremantle-calendar.rb +56 -0
  155. data/lib/knj/mail.rb +75 -0
  156. data/lib/knj/mailobj.rb +82 -0
  157. data/lib/knj/mount.rb +115 -0
  158. data/lib/knj/notify.rb +13 -0
  159. data/lib/knj/nvidia_settings.rb +45 -0
  160. data/lib/knj/objects.rb +731 -0
  161. data/lib/knj/opts.rb +38 -0
  162. data/lib/knj/os.rb +158 -0
  163. data/lib/knj/php.rb +717 -0
  164. data/lib/knj/php_parser/arguments.rb +5 -0
  165. data/lib/knj/php_parser/functions.rb +97 -0
  166. data/lib/knj/php_parser/php_parser.rb +99 -0
  167. data/lib/knj/php_parser/tests/test.rb +12 -0
  168. data/lib/knj/php_parser/tests/test_function.php +8 -0
  169. data/lib/knj/php_parser/tests/test_function_run.rb +19 -0
  170. data/lib/knj/power_manager.rb +31 -0
  171. data/lib/knj/rand.rb +10 -0
  172. data/lib/knj/retry.rb +71 -0
  173. data/lib/knj/rhodes/mutex.rb +11 -0
  174. data/lib/knj/rhodes/rhodes.js +3 -0
  175. data/lib/knj/rhodes/rhodes.rb +11 -0
  176. data/lib/knj/rsvgbin.rb +20 -0
  177. data/lib/knj/scripts/degulesider.rb +12 -0
  178. data/lib/knj/scripts/filesearch.rb +51 -0
  179. data/lib/knj/scripts/ip2location.rb +12 -0
  180. data/lib/knj/scripts/keepalive.rb +6 -0
  181. data/lib/knj/scripts/svn_merge.rb +29 -0
  182. data/lib/knj/scripts/upgrade_knjrbfw_checker.rb +41 -0
  183. data/lib/knj/sms.rb +54 -0
  184. data/lib/knj/sshrobot/sshrobot.rb +93 -0
  185. data/lib/knj/strings.rb +65 -0
  186. data/lib/knj/sysuser.rb +27 -0
  187. data/lib/knj/tests/compiler/compiler_test.rb +13 -0
  188. data/lib/knj/tests/compiler/compiler_test_file.rb +62 -0
  189. data/lib/knj/tests/test_degulesider.rb +11 -0
  190. data/lib/knj/tests/test_mount.rb +30 -0
  191. data/lib/knj/tests/test_retry.rb +30 -0
  192. data/lib/knj/thread.rb +32 -0
  193. data/lib/knj/thread2.rb +47 -0
  194. data/lib/knj/threadhandler.rb +130 -0
  195. data/lib/knj/threadpool.rb +177 -0
  196. data/lib/knj/translations.rb +139 -0
  197. data/lib/knj/unix_proc.rb +82 -0
  198. data/lib/knj/web.rb +932 -0
  199. data/lib/knj/webscripts/image.rhtml +82 -0
  200. data/lib/knj/win.rb +4 -0
  201. data/lib/knj/win_registry.rb +60 -0
  202. data/lib/knj/win_tightvnc.rb +127 -0
  203. data/lib/knj/x11vnc.rb +48 -0
  204. data/lib/knj/youtube.rb +38 -0
  205. data/lib/knjrbfw.rb +4 -0
  206. data/spec/knjrbfw_spec.rb +269 -0
  207. data/spec/spec_helper.rb +12 -0
  208. metadata +336 -0
@@ -0,0 +1,163 @@
1
+ <?xml version="1.0"?>
2
+ <glade-interface>
3
+ <!-- interface-requires gtk+ 2.16 -->
4
+ <!-- interface-naming-policy project-wide -->
5
+ <widget class="GtkWindow" id="window">
6
+ <property name="title" translatable="yes">Edit application</property>
7
+ <property name="window_position">center</property>
8
+ <property name="default_width">640</property>
9
+ <property name="default_height">480</property>
10
+ <signal name="destroy" handler="on_window_destroy"/>
11
+ <child>
12
+ <widget class="GtkVBox" id="vbox1">
13
+ <property name="visible">True</property>
14
+ <child>
15
+ <widget class="GtkFrame" id="frame1">
16
+ <property name="visible">True</property>
17
+ <property name="label_xalign">0</property>
18
+ <property name="shadow_type">none</property>
19
+ <child>
20
+ <widget class="GtkAlignment" id="alignment1">
21
+ <property name="visible">True</property>
22
+ <property name="left_padding">12</property>
23
+ <child>
24
+ <widget class="GtkTable" id="table1">
25
+ <property name="visible">True</property>
26
+ <property name="n_columns">2</property>
27
+ <property name="column_spacing">3</property>
28
+ <property name="row_spacing">3</property>
29
+ <child>
30
+ <widget class="GtkLabel" id="label2">
31
+ <property name="visible">True</property>
32
+ <property name="xalign">0</property>
33
+ <property name="label" translatable="yes">Title</property>
34
+ </widget>
35
+ <packing>
36
+ <property name="x_options">GTK_FILL</property>
37
+ <property name="y_options">GTK_FILL</property>
38
+ </packing>
39
+ </child>
40
+ <child>
41
+ <widget class="GtkEntry" id="txtTitle">
42
+ <property name="visible">True</property>
43
+ <property name="can_focus">True</property>
44
+ <property name="invisible_char">&#x25CF;</property>
45
+ </widget>
46
+ <packing>
47
+ <property name="left_attach">1</property>
48
+ <property name="right_attach">2</property>
49
+ </packing>
50
+ </child>
51
+ </widget>
52
+ </child>
53
+ </widget>
54
+ </child>
55
+ <child>
56
+ <widget class="GtkLabel" id="label1">
57
+ <property name="visible">True</property>
58
+ <property name="label" translatable="yes">&lt;b&gt;Enter information and save&lt;/b&gt;</property>
59
+ <property name="use_markup">True</property>
60
+ </widget>
61
+ <packing>
62
+ <property name="type">label_item</property>
63
+ </packing>
64
+ </child>
65
+ </widget>
66
+ <packing>
67
+ <property name="expand">False</property>
68
+ <property name="position">0</property>
69
+ </packing>
70
+ </child>
71
+ <child>
72
+ <widget class="GtkHButtonBox" id="hbuttonbox1">
73
+ <property name="visible">True</property>
74
+ <property name="spacing">4</property>
75
+ <property name="layout_style">end</property>
76
+ <child>
77
+ <widget class="GtkButton" id="btnSave">
78
+ <property name="label">gtk-save</property>
79
+ <property name="visible">True</property>
80
+ <property name="can_focus">True</property>
81
+ <property name="receives_default">True</property>
82
+ <property name="use_stock">True</property>
83
+ <signal name="clicked" handler="on_btnSave_clicked"/>
84
+ </widget>
85
+ <packing>
86
+ <property name="expand">False</property>
87
+ <property name="fill">False</property>
88
+ <property name="position">0</property>
89
+ </packing>
90
+ </child>
91
+ <child>
92
+ <widget class="GtkButton" id="btnCancel">
93
+ <property name="label">gtk-cancel</property>
94
+ <property name="visible">True</property>
95
+ <property name="can_focus">True</property>
96
+ <property name="receives_default">True</property>
97
+ <property name="use_stock">True</property>
98
+ <signal name="clicked" handler="on_btnCancel_clicked"/>
99
+ </widget>
100
+ <packing>
101
+ <property name="expand">False</property>
102
+ <property name="fill">False</property>
103
+ <property name="position">1</property>
104
+ </packing>
105
+ </child>
106
+ </widget>
107
+ <packing>
108
+ <property name="expand">False</property>
109
+ <property name="padding">4</property>
110
+ <property name="position">1</property>
111
+ </packing>
112
+ </child>
113
+ <child>
114
+ <widget class="GtkFrame" id="frame2">
115
+ <property name="visible">True</property>
116
+ <property name="label_xalign">0</property>
117
+ <property name="shadow_type">none</property>
118
+ <child>
119
+ <widget class="GtkAlignment" id="alignment2">
120
+ <property name="visible">True</property>
121
+ <property name="left_padding">12</property>
122
+ <child>
123
+ <widget class="GtkViewport" id="viewport1">
124
+ <property name="visible">True</property>
125
+ <property name="resize_mode">queue</property>
126
+ <child>
127
+ <widget class="GtkScrolledWindow" id="scrolledwindow1">
128
+ <property name="visible">True</property>
129
+ <property name="can_focus">True</property>
130
+ <property name="hscrollbar_policy">automatic</property>
131
+ <property name="vscrollbar_policy">automatic</property>
132
+ <child>
133
+ <widget class="GtkTreeView" id="tvTest">
134
+ <property name="visible">True</property>
135
+ <property name="can_focus">True</property>
136
+ <signal name="row_activated" handler="on_tvTest_row_activated"/>
137
+ </widget>
138
+ </child>
139
+ </widget>
140
+ </child>
141
+ </widget>
142
+ </child>
143
+ </widget>
144
+ </child>
145
+ <child>
146
+ <widget class="GtkLabel" id="label3">
147
+ <property name="visible">True</property>
148
+ <property name="label" translatable="yes">&lt;b&gt;TreeView test&lt;/b&gt;</property>
149
+ <property name="use_markup">True</property>
150
+ </widget>
151
+ <packing>
152
+ <property name="type">label_item</property>
153
+ </packing>
154
+ </child>
155
+ </widget>
156
+ <packing>
157
+ <property name="position">2</property>
158
+ </packing>
159
+ </child>
160
+ </widget>
161
+ </child>
162
+ </widget>
163
+ </glade-interface>
@@ -0,0 +1,47 @@
1
+ #!/usr/bin/jruby
2
+
3
+ require "knj/autoload"
4
+ require "knj/gtk2_tv"
5
+
6
+ class WinAppEdit
7
+ def initialize
8
+ print "Loading Glade.\n"
9
+ @glade = GladeXML.new("test_glade_window.glade"){|h|method(h)}
10
+ print "Done loading glade.\n"
11
+
12
+ @glade["tvTest"].selection.signal_connect("changed") do
13
+ print "test\n"
14
+ end
15
+
16
+ @glade["tvTest"].init(["ID", "Title"])
17
+ @glade["tvTest"].append(["Test1", "Test2"])
18
+
19
+ @glade["window"].show_all
20
+ end
21
+
22
+ def on_tvTest_row_activated
23
+ #print "Test\n"
24
+ end
25
+
26
+ def on_btnSave_clicked(arg1)
27
+ print arg1.to_s + "\n"
28
+ print "Save clicked.\n"
29
+
30
+ val = @glade["tvTest"].sel
31
+ Knj::Php.print_r(val)
32
+ end
33
+
34
+ def on_btnCancel_clicked
35
+ print "Cancel clicked.\n"
36
+ end
37
+
38
+ def on_window_destroy
39
+ print "Destroyed!\n"
40
+ Gtk.main_quit
41
+ end
42
+ end
43
+
44
+ print "Starting app.\n"
45
+ WinAppEdit.new
46
+
47
+ Gtk.main
@@ -0,0 +1,17 @@
1
+ require "knj/autoload"
2
+
3
+ button = Gtk::Button.new("Test")
4
+ button.signal_connect("clicked") do
5
+ print "Clicked!\n"
6
+ end
7
+
8
+ win = Gtk::Window.new("Trala")
9
+ win.add(button)
10
+ win.show_all
11
+
12
+ win.signal_connect("destroy") do
13
+ print "Destroy!\n"
14
+ Gtk.main_quit
15
+ end
16
+
17
+ Gtk.main
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/jruby
2
+
3
+ require "knj/autoload"
4
+
5
+ pixbuf = Gdk::Pixbuf.new("test_trayicon.png")
6
+
7
+ icon = Gtk::StatusIcon.new
8
+ icon.pixbuf = pixbuf
9
+
10
+ icon.signal_connect("activate") do
11
+ print "Activate\n"
12
+ end
13
+
14
+ icon.signal_connect("popup-menu") do
15
+ print "Popup-menu\n"
16
+ end
17
+
18
+ Gtk.main
@@ -0,0 +1,105 @@
1
+ Gtk.events << ["TreeView", "row_activated", org.gnome.gtk.TreeView::RowActivated, :onRowActivated, nil]
2
+ Gtk.events << ["TreeSelection", "changed", org.gnome.gtk.TreeSelection::Changed, :onChanged, nil]
3
+
4
+ class Gtk::TreeView
5
+ def set_model(newmodel)
6
+ @knj_model = newmodel
7
+ @ob.model = newmodel.ob
8
+ newmodel.tv = self
9
+
10
+ $knj_jruby_gtk_last_treeview = self
11
+ end
12
+
13
+ alias :model= :set_model
14
+
15
+ def append_column(column)
16
+ #do nothing - the Java mode should already have done this.
17
+ end
18
+
19
+ def model
20
+ return @knj_model
21
+ end
22
+
23
+ def columns
24
+ return TreeViewColumns.new(self)
25
+ end
26
+
27
+ def selection
28
+ if !@tsel
29
+ Gtk.takeob = @ob.selection
30
+ @tsel = Gtk::TreeSelection.new
31
+ end
32
+
33
+ return @tsel
34
+ end
35
+ end
36
+
37
+ class TreeViewColumns < Array
38
+ def initialize(treeview)
39
+ @treeview = treeview
40
+ @treeview.ob.columns.each do |column|
41
+ Gtk.takeob = column
42
+ self << Gtk::TreeViewColumn.new(nil, nil)
43
+ end
44
+ end
45
+ end
46
+
47
+ class Gtk::TreeSelection
48
+ def initialize(val1 = nil)
49
+ if Gtk.takeob
50
+ @ob = Gtk.takeob
51
+ Gtk.takeob = nil
52
+ else
53
+ @ob = @treeview.ob.append_column
54
+ @ob.title = title
55
+ renderer.init(self)
56
+ colstring = @treeview.model.dcol[@treeview.columns.length - 1]
57
+ renderer.text = colstring
58
+ end
59
+ end
60
+ end
61
+
62
+ class Gtk::TreeViewColumn
63
+ def initialize(title, renderer, last_args = {})
64
+ @treeview = $knj_jruby_gtk_last_treeview
65
+
66
+ if Gtk.takeob
67
+ @ob = Gtk.takeob
68
+ Gtk.takeob = nil
69
+ else
70
+ @ob = @treeview.ob.append_column
71
+ @ob.title = title
72
+ $knj_jruby_gtk_last_treeview_column = self
73
+ renderer.init(self)
74
+ colstring = @treeview.model.dcol[@treeview.columns.length - 1]
75
+ renderer.text = colstring
76
+ end
77
+ end
78
+
79
+ def set_visible(newval)
80
+ @treeview.remove_column(@ob)
81
+ end
82
+
83
+ alias visible= set_visible
84
+ end
85
+
86
+ class Gtk::TreeIter
87
+ def []=(key, value)
88
+ dcol = @knj_model.dcol[key]
89
+ @knj_model.ob.set_value(@ob, dcol, value)
90
+ end
91
+
92
+ def [](key)
93
+ tv = @knj_model.tv
94
+ selected = tv.ob.get_selection.get_selected_rows
95
+
96
+ iter = @knj_model.ob.get_iter(selected[0])
97
+ dcol = @knj_model.dcol[key]
98
+
99
+ return @knj_model.ob.get_value(iter, dcol)
100
+ end
101
+
102
+ def model=(newmodel)
103
+ @knj_model = newmodel
104
+ end
105
+ end
@@ -0,0 +1,12 @@
1
+ class Gtk::VBox
2
+ def initialize
3
+ if Gtk.takeob
4
+ @ob = Gtk.takeob
5
+ Gtk.takeob = nil
6
+ else
7
+ splitted = self.class.to_s.split("::")
8
+ javaname = "org.gnome." + splitted.first.downcase + "." + splitted.last
9
+ @ob = Gtk.evalob(javaname).new(false, 0)
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ Gtk.events << ["Window", "destroy", org.gnome.gtk.Window::DeleteEvent, :onDeleteEvent, false]
2
+
3
+ class Gtk::Window
4
+ def destroy
5
+ @ob.hide #destroy does not exist in the Java-version? - knj
6
+ end
7
+
8
+ def set_frame_dimensions(arg1, arg2, arg3, arg4)
9
+ @ob.border_width = arg1
10
+ end
11
+ end
@@ -0,0 +1,14 @@
1
+ class Knj::Jruby_compiler
2
+ def initialize(args = {})
3
+ @args = args
4
+
5
+ factory = javax.script.ScriptEngineManager.new
6
+ engine = factory.getEngineByName("jruby")
7
+ code = File.read(args[:path])
8
+ @script = engine.compile(code)
9
+ end
10
+
11
+ def run
12
+ @script.eval
13
+ end
14
+ end
data/lib/knj/knj.rb ADDED
@@ -0,0 +1,19 @@
1
+ if $knjpath
2
+ autoload_path = "#{$knjpath}autoload.rb"
3
+ else
4
+ autoload_path = "#{File.dirname(__FILE__)}/autoload.rb"
5
+ end
6
+
7
+ require autoload_path
8
+
9
+ module Knj
10
+ def self.appserver_cli(filename)
11
+ Knj::Os.chdir_file(filename)
12
+ require "#{$knjpath}/includes/appserver_cli.rb"
13
+ end
14
+
15
+ def self.dirname(filepath)
16
+ raise "Filepath does not exist: #{filepath}" if !File.exists?(filepath)
17
+ return Knj::Php.realpath(File.dirname(filepath))
18
+ end
19
+ end
@@ -0,0 +1,13 @@
1
+ #This files makes the framework able to receive calls from the Rhodes framework from RhoMobile.
2
+ class KnjController < Rho::RhoController
3
+ include BrowserHelper
4
+
5
+ #GET /Server
6
+ def index
7
+ render
8
+ end
9
+
10
+ def html_links
11
+ System.open_url(@params["url"])
12
+ end
13
+ end
@@ -0,0 +1,30 @@
1
+ class Knj::Db::Dbtime
2
+ attr_reader :hours, :mins, :secs, :total_secs
3
+
4
+ def initialize(args)
5
+ args = {:time => args} if args.is_a?(String)
6
+
7
+ raise "Invalid arguments given." if !args.is_a?(Hash)
8
+ raise "No time given." if !args[:time]
9
+ raise "Invalid time given." if !args[:time].is_a?(String)
10
+
11
+ match = args[:time].match(/^(\d+):(\d+):(\d+)$/)
12
+ raise "Could not understand time format." if !match
13
+
14
+ @hours = match[1].to_i
15
+ @mins = match[2].to_i
16
+ @secs = match[3].to_i
17
+
18
+ @total_secs = @hours * 3600
19
+ @total_secs += @mins * 60
20
+ @total_secs += @secs
21
+ end
22
+
23
+ def hours_total
24
+ return (@total_secs.to_f / 3600)
25
+ end
26
+
27
+ def mins_total
28
+ return (@total_secs.to_f / 60)
29
+ end
30
+ end