now very simple to get expanding objects

This commit is contained in:
Torsten Ruger 2015-08-22 21:17:32 +02:00
parent 7885ae93c4
commit 83e0c8a925
3 changed files with 29 additions and 7 deletions

View File

@ -2,15 +2,15 @@ require_relative "ref_view"
class ObjectView < ListView
def initialize interpreter , object_id
def initialize object_id , interpreter = nil
@object_id = object_id
@interpreter = interpreter
@interpreter.register_event(:object_changed, self)
@interpreter.register_event(:object_changed, self) if interpreter
super( content_elements )
end
def draw
@element = super("ul.nav!")
@element = super(@interpreter ? "ul.nav!" : "ul")
prepend_element div("li" , "-------------------------")
prepend_element div( "li" ) << div("span" , class_header(@object_id) )
return @element

View File

@ -1,16 +1,38 @@
class RefView < ElementView
class RefView < ListView
def initialize name , value
@name = name
@value = value
super []
end
attr_reader :value
def value= val
@value = val
add_hover
end
attr_accessor :value
def draw
@element = div("li") << div("a" , "#{@name} : #{marker(@value)}" )
add_hover
@element
end
def add_hover
@element.on("hover"){ hover } if is_object?(@value)
end
def is_object?( id )
Virtual.machine.objects[id] != nil
end
def hover
puts "hovering #{@name}"
append ObjectView.new(@value)
@element.off("hover")
end
def marker id
var = Virtual.machine.objects[id]
if var.is_a? String

View File

@ -26,7 +26,7 @@ class RegistersView < ListView
reg = reg.symbol unless reg.is_a? Symbol
index = reg.to_s[1 .. -1 ].to_i
if( is_object? value )
swap = ObjectView.new( @interpreter, value )
swap = ObjectView.new( value , @interpreter )
else
swap = ValueView.new value
end