cheri 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/MIT-LICENSE +20 -0
- data/README +98 -0
- data/Rakefile +121 -0
- data/examples/hello_world_1.rb +28 -0
- data/examples/table_1.rb +44 -0
- data/lib/cheri/awt.rb +41 -0
- data/lib/cheri/builder.rb +31 -0
- data/lib/cheri/builder/awt/connecter.rb +63 -0
- data/lib/cheri/builder/awt/constants.rb +1003 -0
- data/lib/cheri/builder/awt/main.rb +191 -0
- data/lib/cheri/builder/awt/types.rb +220 -0
- data/lib/cheri/builder/base.rb +533 -0
- data/lib/cheri/builder/config.rb +187 -0
- data/lib/cheri/builder/connecter.rb +386 -0
- data/lib/cheri/builder/context.rb +655 -0
- data/lib/cheri/builder/generator.rb +425 -0
- data/lib/cheri/builder/html/charsets.rb +154 -0
- data/lib/cheri/builder/html/common.rb +32 -0
- data/lib/cheri/builder/html/connecter.rb +57 -0
- data/lib/cheri/builder/html/element.rb +156 -0
- data/lib/cheri/builder/html/main.rb +116 -0
- data/lib/cheri/builder/html/types.rb +123 -0
- data/lib/cheri/builder/main.rb +483 -0
- data/lib/cheri/builder/swing/connecter.rb +141 -0
- data/lib/cheri/builder/swing/constants.rb +420 -0
- data/lib/cheri/builder/swing/main.rb +446 -0
- data/lib/cheri/builder/swing/types.rb +270 -0
- data/lib/cheri/builder/xml/charsets.rb +154 -0
- data/lib/cheri/builder/xml/common.rb +32 -0
- data/lib/cheri/builder/xml/connecter.rb +42 -0
- data/lib/cheri/builder/xml/element.rb +189 -0
- data/lib/cheri/builder/xml/main.rb +130 -0
- data/lib/cheri/builder/xml/types.rb +36 -0
- data/lib/cheri/cheri.rb +70 -0
- data/lib/cheri/cjx.rb +3 -0
- data/lib/cheri/explorer.rb +32 -0
- data/lib/cheri/explorer/explorer.rb +560 -0
- data/lib/cheri/html.rb +31 -0
- data/lib/cheri/image/Delete24.gif +0 -0
- data/lib/cheri/image/Find24.gif +0 -0
- data/lib/cheri/image/FindAgain24.gif +0 -0
- data/lib/cheri/image/Refresh24.gif +0 -0
- data/lib/cheri/image/Search24.gif +0 -0
- data/lib/cheri/image/Thumbs.db +0 -0
- data/lib/cheri/image/cheri_icon_16x16.png +0 -0
- data/lib/cheri/image/cheri_icon_24x24.png +0 -0
- data/lib/cheri/image/cheri_logo_medium.png +0 -0
- data/lib/cheri/image/close_10x10.png +0 -0
- data/lib/cheri/image/close_10x10s.png +0 -0
- data/lib/cheri/image/close_12x12.png +0 -0
- data/lib/cheri/image/close_14x14.png +0 -0
- data/lib/cheri/image/close_24x24.png +0 -0
- data/lib/cheri/image/close_dim2_12x12.png +0 -0
- data/lib/cheri/image/close_dim_12x12.png +0 -0
- data/lib/cheri/image/cls_tree.png +0 -0
- data/lib/cheri/image/con_tree.png +0 -0
- data/lib/cheri/image/jruby_14x16.png +0 -0
- data/lib/cheri/image/jruby_logo.png +0 -0
- data/lib/cheri/image/mod_tree.png +0 -0
- data/lib/cheri/image/obj_tree.png +0 -0
- data/lib/cheri/image/ruby_16x16.png +0 -0
- data/lib/cheri/image/vars_tree.png +0 -0
- data/lib/cheri/java.rb +26 -0
- data/lib/cheri/java/builder.rb +28 -0
- data/lib/cheri/java/builder/main.rb +407 -0
- data/lib/cheri/java/builder/util.rb +480 -0
- data/lib/cheri/java/java.rb +56 -0
- data/lib/cheri/jruby.rb +32 -0
- data/lib/cheri/jruby/explorer.rb +43 -0
- data/lib/cheri/jruby/explorer/common.rb +38 -0
- data/lib/cheri/jruby/explorer/dialogs.rb +383 -0
- data/lib/cheri/jruby/explorer/explorer.rb +904 -0
- data/lib/cheri/jruby/explorer/splash.rb +80 -0
- data/lib/cheri/jruby/explorer/viewer.rb +619 -0
- data/lib/cheri/jruby/explorer/viewers.rb +1057 -0
- data/lib/cheri/jruby/jruby.rb +59 -0
- data/lib/cheri/swing.rb +41 -0
- data/lib/cheri/xml.rb +31 -0
- metadata +135 -0
@@ -0,0 +1,1057 @@
|
|
1
|
+
#--
|
2
|
+
# Copyright (C) 2007 William N Dortch <bill.dortch@gmail.com>
|
3
|
+
#
|
4
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
5
|
+
# a copy of this software and associated documentation files (the
|
6
|
+
# "Software"), to deal in the Software without restriction, including
|
7
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
8
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
9
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
10
|
+
# the following conditions:
|
11
|
+
#
|
12
|
+
# The above copyright notice and this permission notice shall be
|
13
|
+
# included in all copies or substantial portions of the Software.
|
14
|
+
#
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
17
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
18
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
19
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
20
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
21
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
|
+
#++
|
23
|
+
#
|
24
|
+
|
25
|
+
module Cheri
|
26
|
+
module JRuby
|
27
|
+
module Explorer
|
28
|
+
|
29
|
+
class RootNodeViewer < HtmlNameValueListViewer
|
30
|
+
include InstanceListener
|
31
|
+
|
32
|
+
def initialize(*r,&k)
|
33
|
+
super
|
34
|
+
main.add_instance_listener(self)
|
35
|
+
end
|
36
|
+
|
37
|
+
def title
|
38
|
+
'Instances'
|
39
|
+
end
|
40
|
+
def icon
|
41
|
+
CheriIcon
|
42
|
+
end
|
43
|
+
def table_rows
|
44
|
+
main.instance_list.each do |inst|
|
45
|
+
name_value_row(inst.name,inst.address)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
def instance_added(instance)
|
49
|
+
refresh
|
50
|
+
end
|
51
|
+
def instance_removed(instance)
|
52
|
+
refresh
|
53
|
+
end
|
54
|
+
end #RootNodeViewer
|
55
|
+
|
56
|
+
class RubyInstanceViewer < HtmlNameValueListViewer
|
57
|
+
def title
|
58
|
+
@instance.name
|
59
|
+
end
|
60
|
+
|
61
|
+
def icon
|
62
|
+
@instance.icon
|
63
|
+
end
|
64
|
+
|
65
|
+
def table_rows
|
66
|
+
name_value_row('RUBY_PLATFORM',proxy.ruby_platform)
|
67
|
+
name_value_row('RUBY_VERSION',proxy.ruby_version)
|
68
|
+
name_value_row('RUBY_RELEASE_DATE',proxy.ruby_release_date)
|
69
|
+
nil
|
70
|
+
end
|
71
|
+
end #RubyInstanceViewer
|
72
|
+
|
73
|
+
class JRubyInstanceViewer < RubyInstanceViewer
|
74
|
+
JVersion = 'java.version'.freeze
|
75
|
+
JVendor = 'java.vendor'.freeze
|
76
|
+
RtName = 'java.runtime.name'.freeze
|
77
|
+
RtVersion = 'java.runtime.version'.freeze
|
78
|
+
VmName = 'java.vm.name'.freeze
|
79
|
+
VmVersion = 'java.vm.version'.freeze
|
80
|
+
VmVendor = 'java.vm.vendor'.freeze
|
81
|
+
|
82
|
+
def table_rows
|
83
|
+
super
|
84
|
+
env = proxy.env_java_brief
|
85
|
+
name_value_row('JRUBY_VERSION',proxy.jruby_version)
|
86
|
+
name_value_row('Java version',env[JVersion])
|
87
|
+
name_value_row('Java vendor',env[JVendor])
|
88
|
+
name_value_row('Runtime name',env[RtName])
|
89
|
+
name_value_row('Runtime version',env[RtVersion])
|
90
|
+
name_value_row('VM name',env[VmName])
|
91
|
+
name_value_row('VM version',env[VmVersion])
|
92
|
+
name_value_row('VM vendor',env[VmVendor])
|
93
|
+
name_value_row('SecurityManager',proxy.security_manager)
|
94
|
+
name_value_row('Available processors',proxy.available_processors)
|
95
|
+
name_value_row('Total memory',"#{(proxy.total_memory/1000.0).round}K")
|
96
|
+
name_value_row('Free memory',"#{(proxy.free_memory/1000.0).round}K")
|
97
|
+
name_value_row('Maximum memory',"#{(proxy.max_memory/1000.0).round}K")
|
98
|
+
name_value_row('ObjectSpace enabled',proxy.object_space?)
|
99
|
+
name_value_row('JRuby start time',proxy.jruby_start_time)
|
100
|
+
nil
|
101
|
+
end
|
102
|
+
|
103
|
+
end #JRubyInstanceViewer
|
104
|
+
|
105
|
+
class LocalJRubyInstanceViewer < JRubyInstanceViewer
|
106
|
+
def title
|
107
|
+
'Local JRuby'
|
108
|
+
end
|
109
|
+
def title_tab
|
110
|
+
'Local'
|
111
|
+
end
|
112
|
+
end #LocalJRubyInstanceViewer
|
113
|
+
|
114
|
+
#class NameValueListViewer < HtmlNameValueListViewer
|
115
|
+
#
|
116
|
+
#end
|
117
|
+
|
118
|
+
class EnvViewer < HtmlNameValueListViewer
|
119
|
+
def title
|
120
|
+
"#{@instance.name}: ENV"
|
121
|
+
end
|
122
|
+
def title_tree
|
123
|
+
'ENV'
|
124
|
+
end
|
125
|
+
def icon
|
126
|
+
VariablesIcon
|
127
|
+
end
|
128
|
+
def leaf?
|
129
|
+
true
|
130
|
+
end
|
131
|
+
def table_rows
|
132
|
+
env = proxy.env.sort
|
133
|
+
env.each do |name,value|
|
134
|
+
if Array === value
|
135
|
+
value = value.sort rescue value
|
136
|
+
name_value_row(name,value_list(value))
|
137
|
+
else
|
138
|
+
name_value_row(name,esc(value));
|
139
|
+
end
|
140
|
+
end
|
141
|
+
nil
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
145
|
+
class JavaEnvViewer < HtmlNameValueListViewer
|
146
|
+
def title
|
147
|
+
"#{@instance.name}: ENV_JAVA"
|
148
|
+
end
|
149
|
+
def title_tree
|
150
|
+
'ENV_JAVA'
|
151
|
+
end
|
152
|
+
def icon
|
153
|
+
VariablesIcon
|
154
|
+
end
|
155
|
+
def leaf?
|
156
|
+
true
|
157
|
+
end
|
158
|
+
def table_rows
|
159
|
+
env = proxy.env_java.sort
|
160
|
+
env.each do |name,value|
|
161
|
+
if Array === value
|
162
|
+
value = value.sort rescue value
|
163
|
+
name_value_row(name,value_list(value))
|
164
|
+
else
|
165
|
+
name_value_row(name,esc(value));
|
166
|
+
end
|
167
|
+
end
|
168
|
+
nil
|
169
|
+
end
|
170
|
+
end
|
171
|
+
|
172
|
+
class GlobalVariablesViewer < HtmlNameValueListViewer
|
173
|
+
def title
|
174
|
+
"#{@instance.name}: global_variables"
|
175
|
+
end
|
176
|
+
def title_tree
|
177
|
+
'global_vars'
|
178
|
+
end
|
179
|
+
def title_tab
|
180
|
+
"#{@instance.name}: global"
|
181
|
+
end
|
182
|
+
def icon
|
183
|
+
VariablesIcon
|
184
|
+
end
|
185
|
+
def leaf?
|
186
|
+
true
|
187
|
+
end
|
188
|
+
def table_rows
|
189
|
+
vars = proxy.global_vars.sort
|
190
|
+
vars.each do |name,value|
|
191
|
+
if Array === value
|
192
|
+
value = value.sort rescue value
|
193
|
+
name_value_row(@esc = esc(name),value_list(value))
|
194
|
+
else
|
195
|
+
name_value_row(@esc = esc(name),esc(value))
|
196
|
+
end
|
197
|
+
end
|
198
|
+
nil
|
199
|
+
end
|
200
|
+
end #GlobalVariablesViewer
|
201
|
+
|
202
|
+
|
203
|
+
class ConstantsViewer < HtmlNameValueListViewer
|
204
|
+
include ParentViewerInterface
|
205
|
+
include DRbHelper
|
206
|
+
|
207
|
+
def title
|
208
|
+
"#{@instance.name}: Module.constants"
|
209
|
+
end
|
210
|
+
def title_tree
|
211
|
+
'constants'
|
212
|
+
end
|
213
|
+
def title_tab
|
214
|
+
"#{@instance.name}: const"
|
215
|
+
end
|
216
|
+
def icon
|
217
|
+
ConstantIcon
|
218
|
+
end
|
219
|
+
|
220
|
+
def table_rows
|
221
|
+
consts = proxy.constants.sort
|
222
|
+
consts.each do |name,type,value|
|
223
|
+
# TODO: screen this in proxy?
|
224
|
+
value = '' if value == name
|
225
|
+
if Array === value
|
226
|
+
value = value.sort rescue value
|
227
|
+
name_type_value_row(name,type,value_list(value))
|
228
|
+
else
|
229
|
+
name_type_value_row(name,type,esc(value))
|
230
|
+
end
|
231
|
+
end
|
232
|
+
nil
|
233
|
+
end
|
234
|
+
|
235
|
+
def load_children
|
236
|
+
recs = drb_to_array(proxy.const_recs).sort
|
237
|
+
children = []
|
238
|
+
recs.each do |rec|
|
239
|
+
ntv = case rec.clazz
|
240
|
+
when 'Class' : NodeTypeValue.new(Class,rec.value,rec)
|
241
|
+
when 'Module' : NodeTypeValue.new(Module,rec.value,rec)
|
242
|
+
else NodeTypeValue.new(:constant,rec.clazz,rec)
|
243
|
+
end
|
244
|
+
children << ntv
|
245
|
+
end
|
246
|
+
@children = children
|
247
|
+
end
|
248
|
+
|
249
|
+
def children_loaded?
|
250
|
+
@children
|
251
|
+
end
|
252
|
+
|
253
|
+
end #ConstantsViewer
|
254
|
+
|
255
|
+
class ConfigViewer < HtmlNameValueListViewer
|
256
|
+
def title
|
257
|
+
"#{@instance.name}: Config::CONFIG"
|
258
|
+
end
|
259
|
+
def title_tree
|
260
|
+
'CONFIG'
|
261
|
+
end
|
262
|
+
def title_tab
|
263
|
+
"#{@instance.name}: CONFIG"
|
264
|
+
end
|
265
|
+
def icon
|
266
|
+
VariablesIcon
|
267
|
+
end
|
268
|
+
def leaf?
|
269
|
+
true
|
270
|
+
end
|
271
|
+
def table_rows
|
272
|
+
cfg = proxy.config.sort
|
273
|
+
cfg.each do |name,value|
|
274
|
+
if Array === value
|
275
|
+
value = value.sort rescue value
|
276
|
+
name_value_row(name,value_list(value))
|
277
|
+
else
|
278
|
+
name_value_row(name,esc(value));
|
279
|
+
end
|
280
|
+
end
|
281
|
+
nil
|
282
|
+
end
|
283
|
+
end
|
284
|
+
|
285
|
+
|
286
|
+
# TODO: factor/generalize the header row code
|
287
|
+
|
288
|
+
class ObjectViewer < HtmlNameValueListViewer
|
289
|
+
include ValueViewerInterface
|
290
|
+
|
291
|
+
#:stopdoc:
|
292
|
+
HdrInstVars = 'Instance variables'.freeze
|
293
|
+
HdrInstVarName = 'Variable name'.freeze
|
294
|
+
HdrName = 'Name'.freeze
|
295
|
+
HdrType = 'Type'.freeze
|
296
|
+
HdrId = 'Id'.freeze
|
297
|
+
HdrValue = 'Value'.freeze
|
298
|
+
Center = 'center'.freeze
|
299
|
+
Left = 'left'.freeze
|
300
|
+
Right = 'right'.freeze
|
301
|
+
#:startdoc:
|
302
|
+
|
303
|
+
def title
|
304
|
+
"#{@instance.name}: #{@value.clazz}"
|
305
|
+
end
|
306
|
+
def title_tree
|
307
|
+
"#{@value.clazz}"
|
308
|
+
end
|
309
|
+
def title_tab
|
310
|
+
"#{@instance.name}: #{@value.clazz}"
|
311
|
+
end
|
312
|
+
def icon
|
313
|
+
ObjectIcon
|
314
|
+
end
|
315
|
+
def leaf?
|
316
|
+
true
|
317
|
+
end
|
318
|
+
|
319
|
+
def table_rows
|
320
|
+
value_header_row
|
321
|
+
type_id_value_row(esc(@value.clazz),@value.id,esc(@value.value))
|
322
|
+
instance_var_rows if value.vars
|
323
|
+
end
|
324
|
+
|
325
|
+
def instance_var_rows
|
326
|
+
if (vars = value.vars)
|
327
|
+
col_header_row HdrInstVarName
|
328
|
+
vars.each do |name,type,value,id|
|
329
|
+
if Array === value
|
330
|
+
name_type_id_value_row(name,esc(type),id,value_list(value))
|
331
|
+
else
|
332
|
+
name_type_id_value_row(name,esc(type),id,esc(value))
|
333
|
+
end
|
334
|
+
end
|
335
|
+
empty_row
|
336
|
+
end
|
337
|
+
end
|
338
|
+
|
339
|
+
def header_row(hdr,cols=4)
|
340
|
+
tr do
|
341
|
+
th hdr, :bgcolor => NColor, :colspan => cols, :align => Left
|
342
|
+
end
|
343
|
+
end
|
344
|
+
|
345
|
+
def value_header_row
|
346
|
+
tr do
|
347
|
+
th HdrType, :bgcolor => NColor, :align => Left
|
348
|
+
th HdrId, :bgcolor => NColor, :align => Right
|
349
|
+
th HdrValue, :bgcolor => NColor, :align => Left
|
350
|
+
end
|
351
|
+
end
|
352
|
+
|
353
|
+
def col_header_row(name = HdrName)
|
354
|
+
tr do
|
355
|
+
th name, :bgcolor => NColor, :align => Left
|
356
|
+
th HdrType, :bgcolor => NColor, :align => Left
|
357
|
+
th HdrId, :bgcolor => NColor, :align => Right
|
358
|
+
th HdrValue, :bgcolor => NColor, :align => Left
|
359
|
+
end
|
360
|
+
end
|
361
|
+
end
|
362
|
+
|
363
|
+
class ConstantViewer < ObjectViewer
|
364
|
+
HdrConstName = 'Constant name'.freeze
|
365
|
+
def title
|
366
|
+
"#{@instance.name}: #{@value.qname}"
|
367
|
+
end
|
368
|
+
def title_tree
|
369
|
+
"#{@value.name}"
|
370
|
+
end
|
371
|
+
def title_tab
|
372
|
+
"#{@instance.name}: #{@value.name}"
|
373
|
+
end
|
374
|
+
def icon
|
375
|
+
ConstantIcon
|
376
|
+
end
|
377
|
+
|
378
|
+
def table_rows
|
379
|
+
col_header_row HdrConstName
|
380
|
+
name_type_id_value_row(@value.name,esc(@value.clazz),@value.id,esc(@value.value))
|
381
|
+
instance_var_rows if @value.vars
|
382
|
+
end
|
383
|
+
|
384
|
+
end
|
385
|
+
|
386
|
+
class ModuleViewer < ConstantViewer
|
387
|
+
include ParentViewerInterface
|
388
|
+
include DRbHelper
|
389
|
+
#:stopdoc:
|
390
|
+
SuperClazz = 'Superclass'.freeze
|
391
|
+
Ancestors = 'Ancestors'.freeze
|
392
|
+
HdrAncName = 'Ancestor name'.freeze
|
393
|
+
#:startdoc:
|
394
|
+
|
395
|
+
def title
|
396
|
+
"#{@instance.name}: #{@value.qname.empty? ? @value.value : @value.qname}"
|
397
|
+
end
|
398
|
+
def title_tree
|
399
|
+
"#{@value.name}"
|
400
|
+
end
|
401
|
+
def title_tab
|
402
|
+
"#{@instance.name}: #{@value.name.empty? ? @value.value : @value.name}"
|
403
|
+
end
|
404
|
+
def icon
|
405
|
+
ModuleIcon
|
406
|
+
end
|
407
|
+
def leaf?
|
408
|
+
false
|
409
|
+
end
|
410
|
+
|
411
|
+
def html_heading
|
412
|
+
val = @value
|
413
|
+
div :align => :left do
|
414
|
+
table :width => TblWidth, :cellspacing => 2, :cellpadding => 2, :border => 0 do
|
415
|
+
tr do
|
416
|
+
td esc(title), :class => :hdr, :align => :left, :colspan=> 2
|
417
|
+
end
|
418
|
+
tr do
|
419
|
+
th val.clazz, :align => :left, :bgcolor => NColor, :width => 120
|
420
|
+
td esc(val.qname.empty? ? val.value : val.qname), :align => :left, :bgcolor => VColor
|
421
|
+
end
|
422
|
+
tr do
|
423
|
+
th HdrId, :align => :left, :bgcolor => NColor, :width => 120
|
424
|
+
td val.id, :align => :left, :bgcolor => VColor
|
425
|
+
end
|
426
|
+
if (sc = val.superclazz)
|
427
|
+
tr do
|
428
|
+
th SuperClazz, :align => :left, :bgcolor => NColor, :width => 120
|
429
|
+
td esc(sc), :align => :left, :bgcolor => VColor
|
430
|
+
end
|
431
|
+
end
|
432
|
+
empty_row
|
433
|
+
end
|
434
|
+
if (anc = val.ancestors) && (first = anc.first)
|
435
|
+
anc.shift if first.id == val.id && first.value == val.qname
|
436
|
+
end
|
437
|
+
if anc && !anc.empty?
|
438
|
+
table :width => TblWidth, :cellspacing => 2, :cellpadding => 2, :border => 0 do
|
439
|
+
tr do
|
440
|
+
th HdrAncName, :bgcolor => NColor, :align => Left
|
441
|
+
th HdrType, :bgcolor => NColor, :align => Left, :width => '20%'
|
442
|
+
th HdrId, :bgcolor => NColor, :align => Right, :width => '10%'
|
443
|
+
end
|
444
|
+
anc.each do |name,type,id|
|
445
|
+
tr do
|
446
|
+
td esc(name), :bgcolor => VColor
|
447
|
+
td type, :width => '20%', :bgcolor => VColor
|
448
|
+
td id, :width => '10%', :bgcolor => VColor, :align => Right, :class => :oid
|
449
|
+
end
|
450
|
+
end
|
451
|
+
empty_row
|
452
|
+
end
|
453
|
+
end
|
454
|
+
end #div
|
455
|
+
end
|
456
|
+
|
457
|
+
def table_rows
|
458
|
+
instance_var_rows if value.vars
|
459
|
+
method_rows
|
460
|
+
end
|
461
|
+
|
462
|
+
#:stopdoc:
|
463
|
+
HdrPubClsMeth = 'Public class methods'.freeze
|
464
|
+
HdrPubInsMeth = 'Public instance methods'.freeze
|
465
|
+
HdrProClsMeth = 'Protected class methods'.freeze
|
466
|
+
HdrProInsMeth = 'Protected instance methods'.freeze
|
467
|
+
HdrPriClsMeth = 'Private class methods'.freeze
|
468
|
+
HdrPriInsMeth = 'Private instance methods'.freeze
|
469
|
+
#:startdoc:
|
470
|
+
|
471
|
+
def method_rows
|
472
|
+
if (meths = @methods ||= proxy.module_methods(@value.qname,@value.id))
|
473
|
+
if (ms = meths.pub) && !ms.empty?
|
474
|
+
method_header_row HdrPubClsMeth
|
475
|
+
ms.sort.each do |m| method_row(m); end
|
476
|
+
empty_row
|
477
|
+
end
|
478
|
+
if (ms = meths.pub_inst) && !ms.empty?
|
479
|
+
method_header_row HdrPubInsMeth
|
480
|
+
ms.sort.each do |m| method_row(m); end
|
481
|
+
empty_row
|
482
|
+
end
|
483
|
+
if (ms = meths.pro) && !ms.empty?
|
484
|
+
method_header_row HdrProClsMeth
|
485
|
+
ms.sort.each do |m| method_row(m); end
|
486
|
+
empty_row
|
487
|
+
end
|
488
|
+
if (ms = meths.pro_inst) && !ms.empty?
|
489
|
+
method_header_row HdrProInsMeth
|
490
|
+
ms.sort.each do |m| method_row(m); end
|
491
|
+
empty_row
|
492
|
+
end
|
493
|
+
if (ms = meths.pri) && !ms.empty?
|
494
|
+
method_header_row HdrPriClsMeth
|
495
|
+
ms.sort.each do |m| method_row(m); end
|
496
|
+
empty_row
|
497
|
+
end
|
498
|
+
if (ms = meths.pri_inst) && !ms.empty?
|
499
|
+
method_header_row HdrPriInsMeth
|
500
|
+
ms.sort.each do |m| method_row(m); end
|
501
|
+
empty_row
|
502
|
+
end
|
503
|
+
end
|
504
|
+
end
|
505
|
+
|
506
|
+
def method_header_row(hdr,cols=4)
|
507
|
+
tr do
|
508
|
+
td b(hdr), :bgcolor => NColor, :colspan => cols
|
509
|
+
end
|
510
|
+
end
|
511
|
+
|
512
|
+
def method_row(meth,cols=4)
|
513
|
+
tr td(esc(meth), :class => :method, :bgcolor => VColor, :colspan => cols)
|
514
|
+
end
|
515
|
+
|
516
|
+
Cls = 'Class'.freeze #:nodoc:
|
517
|
+
Mod = 'Module'.freeze #:nodoc:
|
518
|
+
def load_children
|
519
|
+
recs = drb_to_array(proxy.const_recs(value.qname)).sort
|
520
|
+
children = []
|
521
|
+
recs.each do |rec|
|
522
|
+
ntv = case rec.clazz
|
523
|
+
when Cls : NodeTypeValue.new(Class,rec.value,rec)
|
524
|
+
when Mod : NodeTypeValue.new(Module,rec.value,rec)
|
525
|
+
else NodeTypeValue.new(:constant,rec.clazz,rec)
|
526
|
+
end
|
527
|
+
children << ntv
|
528
|
+
end
|
529
|
+
@children = children
|
530
|
+
end
|
531
|
+
|
532
|
+
def children_loaded?
|
533
|
+
@children
|
534
|
+
end
|
535
|
+
|
536
|
+
def refresh
|
537
|
+
@methods = nil
|
538
|
+
super
|
539
|
+
end
|
540
|
+
|
541
|
+
end
|
542
|
+
|
543
|
+
class ClassViewer < ModuleViewer
|
544
|
+
def icon
|
545
|
+
ClassIcon
|
546
|
+
end
|
547
|
+
|
548
|
+
end
|
549
|
+
|
550
|
+
class ResultListViewer < Viewer
|
551
|
+
include ValueViewerInterface
|
552
|
+
include NavViewerConstants
|
553
|
+
|
554
|
+
class ResultListItem
|
555
|
+
def initialize(id,viewer)
|
556
|
+
#puts "RLI init, id = #{id}"
|
557
|
+
@i = id
|
558
|
+
@w = viewer
|
559
|
+
end
|
560
|
+
def value
|
561
|
+
unless @v
|
562
|
+
@v = @w.item_value(@i)
|
563
|
+
#@v = @v.to_s unless String === @v
|
564
|
+
#puts "RLI set value [#{@v}] class #{@v.class}"
|
565
|
+
end
|
566
|
+
@v
|
567
|
+
end
|
568
|
+
def to_s
|
569
|
+
value || 'Unavailable'
|
570
|
+
end
|
571
|
+
alias_method :to_str,:to_s
|
572
|
+
end
|
573
|
+
|
574
|
+
def item_value(id)
|
575
|
+
#@count += 1
|
576
|
+
v = @main.simple_value(@instance,id)
|
577
|
+
#puts "#{@count} val [#{v}]"
|
578
|
+
#v
|
579
|
+
end
|
580
|
+
|
581
|
+
def initialize(*r,&k)
|
582
|
+
super
|
583
|
+
create_object_list
|
584
|
+
end
|
585
|
+
|
586
|
+
def create_object_list
|
587
|
+
res = @value.results
|
588
|
+
#puts "results.length = #{res.length}"
|
589
|
+
arr = Array.new(res.length) {|i| ResultListItem.new(res[i],self)}
|
590
|
+
@obj_list = arr.to_java
|
591
|
+
#puts "list.length = #{@obj_list.length}"
|
592
|
+
#@count = 0
|
593
|
+
end
|
594
|
+
|
595
|
+
def title
|
596
|
+
"#{@instance.name}: Search Results"
|
597
|
+
end
|
598
|
+
def title_tree
|
599
|
+
"Results"
|
600
|
+
end
|
601
|
+
def title_tab
|
602
|
+
"#{@instance.name}: Results"
|
603
|
+
end
|
604
|
+
def icon
|
605
|
+
VariablesIcon
|
606
|
+
end
|
607
|
+
|
608
|
+
# not expecting this to appear in trees, but if it does, it's a leaf
|
609
|
+
def leaf?
|
610
|
+
true
|
611
|
+
end
|
612
|
+
|
613
|
+
def view(&block)
|
614
|
+
@view ||= scroll_pane do
|
615
|
+
align :LEFT
|
616
|
+
@top_view = y_panel do
|
617
|
+
align :LEFT
|
618
|
+
empty_border 4,4,4,4
|
619
|
+
background :WHITE
|
620
|
+
x_box do
|
621
|
+
align :LEFT
|
622
|
+
background :WHITE
|
623
|
+
label title do
|
624
|
+
align :LEFT
|
625
|
+
set_font TFont
|
626
|
+
foreground TColor
|
627
|
+
end
|
628
|
+
x_glue
|
629
|
+
end
|
630
|
+
@header = x_box do
|
631
|
+
align :LEFT
|
632
|
+
@cnames = y_panel do
|
633
|
+
align :LEFT
|
634
|
+
opaque false
|
635
|
+
#background NColor
|
636
|
+
end
|
637
|
+
x_spacer 2
|
638
|
+
@cvals = y_panel do
|
639
|
+
align :LEFT
|
640
|
+
opaque false
|
641
|
+
end
|
642
|
+
end
|
643
|
+
name_value_row('Class/Module',@value.args.clazz,CFont)
|
644
|
+
if (vars = @value.args.vars) && !vars.empty?
|
645
|
+
vname = vars[0].name.to_s
|
646
|
+
vval = vars[0].value || ''
|
647
|
+
vval = vval.inspect if Regexp === vval
|
648
|
+
name_value_row('Variable',vname)
|
649
|
+
name_value_row('Value',vval)
|
650
|
+
end
|
651
|
+
last_row
|
652
|
+
y_spacer 5
|
653
|
+
x_box do
|
654
|
+
align :LEFT
|
655
|
+
label "=== found #{@value.length} objects ===" do
|
656
|
+
align :LEFT
|
657
|
+
foreground TColor
|
658
|
+
end
|
659
|
+
end
|
660
|
+
y_spacer 3
|
661
|
+
result_list
|
662
|
+
y_spacer 3
|
663
|
+
x_box do
|
664
|
+
align :LEFT
|
665
|
+
label '=== end of results ===' do
|
666
|
+
align :LEFT
|
667
|
+
foreground TColor
|
668
|
+
end
|
669
|
+
end
|
670
|
+
# trying to get everything else pushed up
|
671
|
+
y_glue
|
672
|
+
y_panel do
|
673
|
+
opaque false
|
674
|
+
end
|
675
|
+
y_glue
|
676
|
+
end
|
677
|
+
end
|
678
|
+
super
|
679
|
+
end
|
680
|
+
|
681
|
+
def item_selected
|
682
|
+
if (ix = @list.selected_index) >= 0
|
683
|
+
@main.new_find(@instance,@value.results[ix])
|
684
|
+
end
|
685
|
+
end
|
686
|
+
|
687
|
+
def result_list
|
688
|
+
@list = list @obj_list do
|
689
|
+
align :LEFT
|
690
|
+
set_font ResFont
|
691
|
+
foreground TColor
|
692
|
+
selection_mode :SINGLE_SELECTION
|
693
|
+
on_value_changed do |e|
|
694
|
+
unless e.value_is_adjusting
|
695
|
+
item_selected
|
696
|
+
end
|
697
|
+
end
|
698
|
+
end
|
699
|
+
end
|
700
|
+
|
701
|
+
def name_value_row(name,value,vfont=VFont)
|
702
|
+
cheri_yield @cnames do
|
703
|
+
x_panel do
|
704
|
+
align :LEFT
|
705
|
+
background NColor
|
706
|
+
maximum_size 200,28
|
707
|
+
on_mouse_entered do |e|
|
708
|
+
e.source.background = HColor
|
709
|
+
end
|
710
|
+
on_mouse_exited do |e|
|
711
|
+
e.source.background = NColor
|
712
|
+
end
|
713
|
+
x_spacer 2
|
714
|
+
label name do
|
715
|
+
align :LEFT,:CENTER
|
716
|
+
set_font NFont
|
717
|
+
end
|
718
|
+
#x_glue
|
719
|
+
end
|
720
|
+
y_spacer 2
|
721
|
+
end
|
722
|
+
cheri_yield @cvals do
|
723
|
+
x_panel do
|
724
|
+
align :LEFT
|
725
|
+
background VColor
|
726
|
+
x_spacer 2
|
727
|
+
label value do
|
728
|
+
align :LEFT,:CENTER
|
729
|
+
set_font vfont
|
730
|
+
end
|
731
|
+
x_glue
|
732
|
+
end
|
733
|
+
y_spacer 2
|
734
|
+
end
|
735
|
+
end
|
736
|
+
|
737
|
+
def last_row
|
738
|
+
cheri_yield @cnames do y_glue; end
|
739
|
+
cheri_yield @cvals do y_glue; end
|
740
|
+
end
|
741
|
+
|
742
|
+
def close_view
|
743
|
+
@main.close_search_view(self)
|
744
|
+
end
|
745
|
+
end
|
746
|
+
|
747
|
+
|
748
|
+
class NavObjectViewer
|
749
|
+
include ViewerInterface
|
750
|
+
include ValueViewerInterface
|
751
|
+
include NavViewer
|
752
|
+
include Cheri::Swing
|
753
|
+
|
754
|
+
def title
|
755
|
+
"#{@instance.name}: #{@value.clazz}"
|
756
|
+
end
|
757
|
+
def title_tree
|
758
|
+
"#{@value.clazz}"
|
759
|
+
end
|
760
|
+
def title_tab
|
761
|
+
"#{@instance.name}: #{@value.clazz}"
|
762
|
+
end
|
763
|
+
def icon
|
764
|
+
ObjectIcon
|
765
|
+
end
|
766
|
+
def leaf?
|
767
|
+
true
|
768
|
+
end
|
769
|
+
|
770
|
+
def content_section
|
771
|
+
empty_row
|
772
|
+
value_section
|
773
|
+
if @value.vars
|
774
|
+
empty_row
|
775
|
+
variables_section
|
776
|
+
last_row(@icols)
|
777
|
+
else
|
778
|
+
last_row(@vcols)
|
779
|
+
end
|
780
|
+
empty_row true
|
781
|
+
end
|
782
|
+
|
783
|
+
def value_section
|
784
|
+
idcol = ColDef.new(NColor,nil,NFont,VColor,nil,CFont)
|
785
|
+
typecol = ColDef.new(NColor,nil,NFont,VColor,nil,CFont)
|
786
|
+
valcol = ColDef.new(NColor,nil,NFont,VColor,TColor,VFont,true,10000)
|
787
|
+
|
788
|
+
@vcols = [idcol,typecol,valcol]
|
789
|
+
@vsec = x_box do
|
790
|
+
init_cols(*@vcols)
|
791
|
+
align :LEFT,:TOP
|
792
|
+
end
|
793
|
+
header_row(@vcols,HdrId,HdrType,HdrValue)
|
794
|
+
value_row(@vcols,@value.id.to_s,@value.clazz,@value.value)
|
795
|
+
end
|
796
|
+
|
797
|
+
def variables_section
|
798
|
+
return unless (vars = value.vars)
|
799
|
+
idcol = ColDef.new(NColor,nil,NFont,VColor,nil,CFont)
|
800
|
+
namecol = ColDef.new(NColor,nil,NFont,VColor,nil,IFont)
|
801
|
+
typecol = ColDef.new(NColor,nil,NFont,VColor,nil,CFont)
|
802
|
+
valcol = ColDef.new(NColor,nil,NFont,VColor,TColor,VFont)
|
803
|
+
|
804
|
+
@icols = [idcol,namecol,typecol,valcol]
|
805
|
+
@isec = x_box do
|
806
|
+
init_cols(*@icols)
|
807
|
+
align :LEFT,:TOP
|
808
|
+
end
|
809
|
+
header_row(@icols,HdrId,HdrVarName,HdrType,HdrValue)
|
810
|
+
vars.each do |name,type,value,id|
|
811
|
+
idcol.clk = id
|
812
|
+
namecol.clk = id
|
813
|
+
value_row(@icols,id.to_s,name,type,value)
|
814
|
+
end
|
815
|
+
end
|
816
|
+
|
817
|
+
def mouse_clicked(val)
|
818
|
+
@main.new_find(@instance,val)
|
819
|
+
end
|
820
|
+
|
821
|
+
|
822
|
+
def view(&block)
|
823
|
+
@view ||= scroll_pane do
|
824
|
+
align :LEFT
|
825
|
+
@top_view = y_panel do
|
826
|
+
align :LEFT
|
827
|
+
empty_border 4,4,4,4
|
828
|
+
background :WHITE
|
829
|
+
title_section title
|
830
|
+
content_section
|
831
|
+
end
|
832
|
+
end
|
833
|
+
end
|
834
|
+
|
835
|
+
end #NavObjectViewer
|
836
|
+
|
837
|
+
class NavModuleViewer
|
838
|
+
include ViewerInterface
|
839
|
+
include ValueViewerInterface
|
840
|
+
include ParentViewerInterface
|
841
|
+
include NavViewer
|
842
|
+
include Cheri::Swing
|
843
|
+
include DRbHelper
|
844
|
+
#:stopdoc:
|
845
|
+
SuperClazz = 'Superclass'.freeze
|
846
|
+
Ancestors = 'Ancestors'.freeze
|
847
|
+
HdrAncName = 'Ancestor name'.freeze
|
848
|
+
HdrPubClsMeth = 'Public class methods'.freeze
|
849
|
+
HdrPubInsMeth = 'Public instance methods'.freeze
|
850
|
+
HdrProClsMeth = 'Protected class methods'.freeze
|
851
|
+
HdrProInsMeth = 'Protected instance methods'.freeze
|
852
|
+
HdrPriClsMeth = 'Private class methods'.freeze
|
853
|
+
HdrPriInsMeth = 'Private instance methods'.freeze
|
854
|
+
#:startdoc:
|
855
|
+
|
856
|
+
|
857
|
+
def title
|
858
|
+
"#{@instance.name}: #{@value.qname.empty? ? @value.value : @value.qname}"
|
859
|
+
end
|
860
|
+
def title_tree
|
861
|
+
"#{@value.name}"
|
862
|
+
end
|
863
|
+
def title_tab
|
864
|
+
"#{@instance.name}: #{@value.name.empty? ? @value.value : @value.name}"
|
865
|
+
end
|
866
|
+
def icon
|
867
|
+
ModuleIcon
|
868
|
+
end
|
869
|
+
def leaf?
|
870
|
+
false
|
871
|
+
end
|
872
|
+
|
873
|
+
def content_section
|
874
|
+
val = @value
|
875
|
+
empty_row
|
876
|
+
header_section
|
877
|
+
if (anc = val.ancestors) && (first = anc.first)
|
878
|
+
anc.shift if first.id == val.id && first.value == val.qname
|
879
|
+
end
|
880
|
+
if anc && !anc.empty?
|
881
|
+
empty_row
|
882
|
+
ancestor_section
|
883
|
+
end
|
884
|
+
if val.vars
|
885
|
+
empty_row
|
886
|
+
variables_section
|
887
|
+
end
|
888
|
+
methods_section
|
889
|
+
last_row @last_cols
|
890
|
+
empty_row true
|
891
|
+
end
|
892
|
+
|
893
|
+
def header_section
|
894
|
+
namecol = ColDef.new(NColor,nil,NFont,NColor,nil,NFont)
|
895
|
+
valcol = ColDef.new(VColor,nil,CFont,VColor,nil,CFont)
|
896
|
+
|
897
|
+
@hcols = [namecol,valcol]
|
898
|
+
@hsec = x_box do
|
899
|
+
init_cols(*@hcols)
|
900
|
+
align :LEFT,:TOP
|
901
|
+
end
|
902
|
+
val = @value
|
903
|
+
header_row(@hcols,val.clazz, val.qname.empty? ? val.value : val.qname)
|
904
|
+
header_row(@hcols,HdrId,val.id.to_s)
|
905
|
+
if (sc = val.superclazz)
|
906
|
+
header_row(@hcols,SuperClazz,sc)
|
907
|
+
end
|
908
|
+
@last_cols = @hcols
|
909
|
+
end
|
910
|
+
|
911
|
+
def ancestor_section
|
912
|
+
idcol = ColDef.new(NColor,nil,NFont,VColor,nil,CFont)
|
913
|
+
namecol = ColDef.new(NColor,nil,NFont,VColor,nil,CFont)
|
914
|
+
typecol = ColDef.new(NColor,nil,NFont,VColor,nil,CFont)
|
915
|
+
|
916
|
+
@acols = [idcol,namecol,typecol]
|
917
|
+
@asec = x_box do
|
918
|
+
init_cols(*@acols)
|
919
|
+
align :LEFT,:TOP
|
920
|
+
end
|
921
|
+
header_row(@acols,HdrId,HdrAncName,HdrType)
|
922
|
+
@value.ancestors.each do |name,type,id|
|
923
|
+
idcol.clk = id
|
924
|
+
namecol.clk = id
|
925
|
+
value_row(@acols,id.to_s,name,type)
|
926
|
+
end
|
927
|
+
@last_cols = @acols
|
928
|
+
end
|
929
|
+
|
930
|
+
def variables_section
|
931
|
+
return unless (vars = value.vars)
|
932
|
+
idcol = ColDef.new(NColor,nil,NFont,VColor,nil,CFont)
|
933
|
+
namecol = ColDef.new(NColor,nil,NFont,VColor,nil,IFont)
|
934
|
+
typecol = ColDef.new(NColor,nil,NFont,VColor,nil,CFont)
|
935
|
+
valcol = ColDef.new(NColor,nil,NFont,VColor,TColor,VFont)
|
936
|
+
|
937
|
+
@icols = [idcol,namecol,typecol,valcol]
|
938
|
+
@isec = x_box do
|
939
|
+
init_cols(*@icols)
|
940
|
+
align :LEFT,:TOP
|
941
|
+
end
|
942
|
+
header_row(@icols,HdrId,HdrVarName,HdrType,HdrValue)
|
943
|
+
vars.each do |name,type,value,id|
|
944
|
+
idcol.clk = id
|
945
|
+
namecol.clk = id
|
946
|
+
value = value + '...' if value.length == 100
|
947
|
+
value_row(@icols,id.to_s,name,type,value)
|
948
|
+
end
|
949
|
+
@last_cols = @icols
|
950
|
+
end
|
951
|
+
|
952
|
+
def methods_section
|
953
|
+
return unless (meths = @methods ||= proxy.module_methods(@value.qname,@value.id))
|
954
|
+
empty_row
|
955
|
+
coldef = ColDef.new(NColor,nil,NFont,VColor,nil,VFont)
|
956
|
+
|
957
|
+
@mcols = [coldef]
|
958
|
+
@msec = x_box do
|
959
|
+
init_cols(*@mcols)
|
960
|
+
align :LEFT,:TOP
|
961
|
+
end
|
962
|
+
if (ms = meths.pub) && !ms.empty?
|
963
|
+
header_row(@mcols,HdrPubClsMeth)
|
964
|
+
ms.sort.each do |m| value_row(@mcols,m); end
|
965
|
+
end
|
966
|
+
if (ms = meths.pub_inst) && !ms.empty?
|
967
|
+
header_row(@mcols,HdrPubInsMeth)
|
968
|
+
ms.sort.each do |m| value_row(@mcols,m); end
|
969
|
+
end
|
970
|
+
if (ms = meths.pro) && !ms.empty?
|
971
|
+
header_row(@mcols,HdrProClsMeth)
|
972
|
+
ms.sort.each do |m| value_row(@mcols,m); end
|
973
|
+
end
|
974
|
+
if (ms = meths.pro_inst) && !ms.empty?
|
975
|
+
header_row(@mcols,HdrProInsMeth)
|
976
|
+
ms.sort.each do |m| value_row(@mcols,m); end
|
977
|
+
end
|
978
|
+
if (ms = meths.pri) && !ms.empty?
|
979
|
+
header_row(@mcols,HdrPriClsMeth)
|
980
|
+
ms.sort.each do |m| value_row(@mcols,m); end
|
981
|
+
end
|
982
|
+
if (ms = meths.pri_inst) && !ms.empty?
|
983
|
+
header_row(@mcols, HdrPriInsMeth)
|
984
|
+
ms.sort.each do |m| value_row(@mcols,m); end
|
985
|
+
end
|
986
|
+
@last_cols = @mcols
|
987
|
+
end
|
988
|
+
|
989
|
+
Cls = 'Class'.freeze #:nodoc:
|
990
|
+
Mod = 'Module'.freeze #:nodoc:
|
991
|
+
def load_children
|
992
|
+
recs = drb_to_array(proxy.const_recs(value.qname)).sort
|
993
|
+
children = []
|
994
|
+
recs.each do |rec|
|
995
|
+
ntv = case rec.clazz
|
996
|
+
when Cls : NodeTypeValue.new(Class,rec.value,rec)
|
997
|
+
when Mod : NodeTypeValue.new(Module,rec.value,rec)
|
998
|
+
else NodeTypeValue.new(:constant,rec.clazz,rec)
|
999
|
+
end
|
1000
|
+
children << ntv
|
1001
|
+
end
|
1002
|
+
@children = children
|
1003
|
+
end
|
1004
|
+
|
1005
|
+
def children_loaded?
|
1006
|
+
@children
|
1007
|
+
end
|
1008
|
+
|
1009
|
+
def mouse_clicked(val)
|
1010
|
+
@main.new_find(@instance,val)
|
1011
|
+
end
|
1012
|
+
|
1013
|
+
def view(&block)
|
1014
|
+
@view ||= scroll_pane do
|
1015
|
+
align :LEFT
|
1016
|
+
@top_view = y_panel do
|
1017
|
+
align :LEFT
|
1018
|
+
empty_border 4,4,4,4
|
1019
|
+
background :WHITE
|
1020
|
+
title_section title
|
1021
|
+
content_section
|
1022
|
+
end
|
1023
|
+
end
|
1024
|
+
end
|
1025
|
+
|
1026
|
+
end
|
1027
|
+
|
1028
|
+
class NavClassViewer < NavModuleViewer
|
1029
|
+
|
1030
|
+
def icon
|
1031
|
+
ClassIcon
|
1032
|
+
end
|
1033
|
+
|
1034
|
+
end
|
1035
|
+
|
1036
|
+
|
1037
|
+
register_viewer(:root_node,nil,RootNodeViewer)
|
1038
|
+
register_viewer(:ruby_instance,nil,RubyInstanceViewer)
|
1039
|
+
register_viewer(:jruby_instance,nil,JRubyInstanceViewer)
|
1040
|
+
register_viewer(:env,nil,EnvViewer)
|
1041
|
+
register_viewer(:env_java,nil,JavaEnvViewer)
|
1042
|
+
register_viewer(:global_vars,nil,GlobalVariablesViewer)
|
1043
|
+
register_viewer(:global_const,nil,ConstantsViewer)
|
1044
|
+
register_viewer(:config,nil,ConfigViewer)
|
1045
|
+
#register_viewer(:object,nil,ObjectViewer)
|
1046
|
+
register_viewer(:object,nil,NavObjectViewer)
|
1047
|
+
register_viewer(:constant,nil,ConstantViewer)
|
1048
|
+
#register_viewer(Class,nil,ClassViewer)
|
1049
|
+
#register_viewer(Module,nil,ModuleViewer)
|
1050
|
+
register_viewer(Class,nil,NavClassViewer)
|
1051
|
+
register_viewer(Module,nil,NavModuleViewer)
|
1052
|
+
register_viewer(:results,nil,ResultListViewer)
|
1053
|
+
|
1054
|
+
|
1055
|
+
end #Explorer
|
1056
|
+
end #JRuby
|
1057
|
+
end #Cheri
|