introducing mom view

rename source to vool
and instruction to risc
This commit is contained in:
Torsten Ruger 2018-04-17 19:08:10 +03:00
parent 88e49afb60
commit ce0bdc46a9
5 changed files with 62 additions and 16 deletions

View File

@ -15,20 +15,24 @@ body
.classes
@include span(12%)
.source_view
@include span(24%)
.vool_view
@include span(18%)
.mom_view
@include span(18%)
.instruction_view
@include span(30%)
.risc_view
@include span(18%)
.status_view
@include span(15%)
@include span(14%)
line-height : 1.25em
.header_state
color: #53a5ff
.vool_view , .mom_view , .risc_view , .status_view
margin-left: 0%
.labels_view
@include span(1)
margin-right: span(1)
@ -41,8 +45,6 @@ body
@include gallery(1)
margin-top: 10px
.field
@include span(5)

View File

@ -16,8 +16,9 @@ require "base/list_view"
# each seperate view is in it's own class.
require "views/left_view"
require "views/status_view"
require "views/source_view"
require "views/instruction_view"
require "views/vool_view"
require "views/mom_view"
require "views/risc_view"
require "views/registers_view"
class Bignum
end
@ -43,8 +44,9 @@ class MainView < ListView
Risc.machine.boot
@interpreter = Risc::Interpreter.new
super( [LeftView.new(@interpreter) ,
SourceView.new(@interpreter) ,
InstructionView.new(@interpreter) ,
VoolView.new(@interpreter) ,
MomView.new(@interpreter) ,
RiscView.new(@interpreter) ,
StatusView.new(@interpreter) ,
RegistersView.new(@interpreter) ] )
end

42
lib/views/mom_view.rb Normal file
View 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

View File

@ -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

View File

@ -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