fix blocks to change
This commit is contained in:
parent
b43bffc940
commit
b8a0e5f8a3
@ -14,7 +14,7 @@ class ListView < ElementView
|
|||||||
end
|
end
|
||||||
|
|
||||||
# create a root node acording to the "root" function (default div)
|
# create a root node acording to the "root" function (default div)
|
||||||
# draw all chilren and keep the elements as @elements
|
# draw all children and keep the elements as @elements
|
||||||
# return (as per base class) the single root of the collection
|
# return (as per base class) the single root of the collection
|
||||||
def draw
|
def draw
|
||||||
@element = div(self.root)
|
@element = div(self.root)
|
||||||
@ -34,4 +34,11 @@ class ListView < ElementView
|
|||||||
@elements[index] = rendered
|
@elements[index] = rendered
|
||||||
old.replace_with rendered
|
old.replace_with rendered
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def append view
|
||||||
|
@children << view
|
||||||
|
rendered = view.draw
|
||||||
|
@elements << rendered
|
||||||
|
@element << rendered
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
12
lib/block_view.rb
Normal file
12
lib/block_view.rb
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
class BlockView < ElementView
|
||||||
|
|
||||||
|
def initialize block
|
||||||
|
@block = block
|
||||||
|
end
|
||||||
|
attr_reader :block
|
||||||
|
|
||||||
|
def draw
|
||||||
|
@element = div("div") << div("span.bright" , @block.name )
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
@ -1,36 +1,35 @@
|
|||||||
#require_relative "block_view"
|
require_relative "block_view"
|
||||||
require_relative "base/constant_view"
|
|
||||||
|
|
||||||
class BlocksView < ListView
|
class BlocksView < ListView
|
||||||
|
|
||||||
def initialize interpreter
|
def initialize interpreter
|
||||||
@interpreter = interpreter
|
@interpreter = interpreter
|
||||||
@interpreter.register_event(:instruction_changed, self)
|
@interpreter.register_event(:instruction_changed, self)
|
||||||
super([ConstantView.new("div" , "Block name1") , ConstantView.new("div" , "Block name2")])
|
super([BlockView.new(@interpreter.block)])
|
||||||
end
|
end
|
||||||
|
|
||||||
def draw
|
def draw
|
||||||
super()
|
super()
|
||||||
wrap_element div("div.block_view") << div("h4" , "Method #{method_name}") << div("h4" , "Block:#{block_name}" )
|
wrap_element div("div.block_view") << div("h4" , "Method #{method_name}") << div("h4" , "Block" )
|
||||||
return @element
|
return @element
|
||||||
end
|
end
|
||||||
|
|
||||||
def blocks
|
def instruction_changed
|
||||||
return [] unless @interpreter.instruction
|
return if @interpreter.block.name == active_block_name
|
||||||
codes = @interpreter.block.codes.dup
|
puts "blocks changed to #{@interpreter.block.name}"
|
||||||
slice = codes.index(@interpreter.instruction) #- 1
|
@elements.last.at_css(".bright").remove_class("bright")
|
||||||
codes.shift( slice ) if slice >= 0
|
append( BlockView.new(@interpreter.block) )
|
||||||
codes.pop while(codes.length > 4)
|
remove_first if( @elements.length > 5)
|
||||||
codes
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def instruction_changed
|
def active_block_name
|
||||||
puts "Should have done something here to redraw (blocks)"
|
@children.last.block.name
|
||||||
end
|
end
|
||||||
|
|
||||||
def block_name
|
def block_name
|
||||||
@interpreter.block ? @interpreter.block.name : ""
|
@interpreter.block ? @interpreter.block.name : ""
|
||||||
end
|
end
|
||||||
|
|
||||||
def method_name
|
def method_name
|
||||||
bl = @interpreter.block
|
bl = @interpreter.block
|
||||||
return "" unless bl
|
return "" unless bl
|
||||||
@ -38,13 +37,3 @@ class BlocksView < ListView
|
|||||||
"#{bl.method.for_class.name}.#{bl.method.name}"
|
"#{bl.method.for_class.name}.#{bl.method.name}"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
class BlocksModel #< Volt::ArrayModel
|
|
||||||
|
|
||||||
def instruction_changed old , ins
|
|
||||||
self.last._class_name = "inactive" if( self.length > 0)
|
|
||||||
self << { :name => ins.to_s , :class_name => "bright" }
|
|
||||||
#puts "block #{self.length}"
|
|
||||||
self.delete_at(0) if( self.length > 5)
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
|
@ -8,7 +8,6 @@ class ObjectView < ElementView
|
|||||||
end
|
end
|
||||||
|
|
||||||
def draw
|
def draw
|
||||||
# todo, remove the DOM use
|
|
||||||
@element = div("ul.nav!")
|
@element = div("ul.nav!")
|
||||||
add( "li" ) << div("span" , class_header(@object_id) )
|
add( "li" ) << div("span" , class_header(@object_id) )
|
||||||
@element << div("li" , "-------------------------")
|
@element << div("li" , "-------------------------")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user