introducing mom view
rename source to vool and instruction to risc
This commit is contained in:
42
lib/views/mom_view.rb
Normal file
42
lib/views/mom_view.rb
Normal file
@ -0,0 +1,42 @@
|
||||
require "base/constant_view"
|
||||
require "base/list_view"
|
||||
|
||||
class MomView < ListView
|
||||
|
||||
def initialize interpreter
|
||||
@interpreter = interpreter
|
||||
@current = nil
|
||||
super([start_view])
|
||||
@interpreter.register_event(:instruction_changed, self)
|
||||
@interpreter.register_event(:state_changed, self)
|
||||
end
|
||||
|
||||
def start_view
|
||||
ConstantView.new( "span.bright" , "starting" )
|
||||
end
|
||||
|
||||
def instruction_changed
|
||||
i = @interpreter.instruction
|
||||
return unless i && i.source.is_a?(Mom::Instruction)
|
||||
@element.at_css(".mom_bright").remove_class("mom_bright")
|
||||
instruction_text = i.source.to_s
|
||||
instruction = append_view( ConstantView.new( "span.mom_bright" , instruction_text ) )
|
||||
wrap_node_with( instruction , div )
|
||||
remove_first if( @elements.length > 6)
|
||||
end
|
||||
|
||||
def draw
|
||||
super()
|
||||
wrap_node_with @elements.first , div
|
||||
wrap_element div(".mom_view") << div("h4" ,"Mom::Instruction")
|
||||
@element
|
||||
end
|
||||
|
||||
def state_changed(old , new_s)
|
||||
return unless new_s == :running
|
||||
clear_view
|
||||
@current = nil
|
||||
append_view start_view
|
||||
end
|
||||
|
||||
end
|
@ -1,7 +1,7 @@
|
||||
require "base/constant_view"
|
||||
require "base/list_view"
|
||||
|
||||
class InstructionView < ListView
|
||||
class RiscView < ListView
|
||||
|
||||
def initialize interpreter
|
||||
@interpreter = interpreter
|
||||
@ -24,7 +24,7 @@ class InstructionView < ListView
|
||||
def draw
|
||||
super()
|
||||
wrap_node_with @elements.first , div
|
||||
wrap_element div(".instruction_view") << div("h4" ,"Register Machine Instruction")
|
||||
wrap_element div(".risc_view") << div("h4" ,"Register Machine Instruction")
|
||||
@element
|
||||
end
|
||||
|
@ -1,6 +1,6 @@
|
||||
require_relative "html_converter"
|
||||
|
||||
class SourceView < ElementView
|
||||
class VoolView < ElementView
|
||||
|
||||
def initialize interpreter
|
||||
@interpreter = interpreter
|
||||
@ -10,7 +10,7 @@ class SourceView < ElementView
|
||||
def draw
|
||||
@text = div(".text")
|
||||
@ticker = div(".ticker")
|
||||
@element = div(".source_view") << div("h4.source" , "Class.Method") << @ticker << @text
|
||||
@element = div(".vool_view") << div("h4.source" , "Class.Method") << @ticker << @text
|
||||
@element
|
||||
end
|
||||
|
Reference in New Issue
Block a user