added separate class view and made classes view a listview
This commit is contained in:
parent
5f2f35cbcf
commit
0d4813df13
@ -32,13 +32,19 @@ class ElementView
|
|||||||
element
|
element
|
||||||
end
|
end
|
||||||
|
|
||||||
def wrap_node_with node , wrapper
|
# wrap the @element variable with the given element
|
||||||
node.replace_with wrapper
|
# so if wrapper == <h4/> the new @element will be <h4> old @element </h4>
|
||||||
node.append_to wrapper
|
# return the new @element, which is wrapper
|
||||||
|
def wrap_element wrapper
|
||||||
|
@element = wrap_node_with @element , wrapper
|
||||||
end
|
end
|
||||||
|
|
||||||
def create_element class_or_id , text = nil
|
#wrap the given node with the wappper, so for a div wrapper and a button node
|
||||||
@element = div( class_or_id , text)
|
# the result will be <div> <button>hwatever was in there</button> <div>
|
||||||
|
def wrap_node_with node , wrapper
|
||||||
|
puts "wraps parent #{node.parent}"
|
||||||
|
node.replace_with(wrapper) if node.parent
|
||||||
|
wrapper << node
|
||||||
end
|
end
|
||||||
|
|
||||||
def add class_or_id , tex = nil
|
def add class_or_id , tex = nil
|
||||||
|
@ -1,48 +1,14 @@
|
|||||||
class ClassView < ListView
|
class ClassView < ElementView
|
||||||
|
def initialize clazz
|
||||||
def initialize interpreter
|
@clazz = clazz
|
||||||
@interpreter = interpreter
|
|
||||||
@classes = []
|
|
||||||
Virtual.machine.space.classes.each do |name , claz|
|
|
||||||
next if [:Kernel,:Module,:MetaClass,:BinaryCode].index name
|
|
||||||
@classes << claz
|
|
||||||
end
|
|
||||||
@classes.sort! {|a,b| a.name <=> b.name }
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def draw
|
def draw
|
||||||
create_element(".classes") << div("h4" , "Classes")
|
@element = div("li")
|
||||||
list = add("ul.nav!")
|
add( "a" , @clazz.name ) << (ul = div("ul"))
|
||||||
|
@clazz.object_layout.object_instance_names.each do |name|
|
||||||
@classes.each do |cl|
|
ul << (div("li") << div("a", name ))
|
||||||
list << (div("li") <<
|
|
||||||
(div( "a" , cl.name ) <<
|
|
||||||
(ul = div("ul"))))
|
|
||||||
cl.object_layout.object_instance_names.each do |name|
|
|
||||||
ul << (div("li") << div("a", name ))
|
|
||||||
end
|
|
||||||
end
|
|
||||||
return @element
|
|
||||||
|
|
||||||
DOM do |dom|
|
|
||||||
dom.div.classes do
|
|
||||||
dom.h4 {"Classes"}
|
|
||||||
dom.ul.nav! do
|
|
||||||
@classes.each do |cl|
|
|
||||||
dom.li do
|
|
||||||
dom.a { cl.name }
|
|
||||||
dom.ul do
|
|
||||||
cl.object_layout.object_instance_names.each do |name|
|
|
||||||
dom.li do
|
|
||||||
dom.a{ name }
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
@element
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
43
lib/classes_view.rb
Normal file
43
lib/classes_view.rb
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
require_relative "class_view"
|
||||||
|
|
||||||
|
class ClassesView < ListView
|
||||||
|
|
||||||
|
def initialize interpreter
|
||||||
|
@interpreter = interpreter
|
||||||
|
classes = []
|
||||||
|
Virtual.machine.space.classes.each do |name , claz|
|
||||||
|
next if [:Kernel,:Module,:MetaClass,:BinaryCode].index name
|
||||||
|
classes << claz
|
||||||
|
end
|
||||||
|
classes.sort! {|a,b| a.name <=> b.name }
|
||||||
|
super( classes.collect{|c| ClassView.new(c)})
|
||||||
|
end
|
||||||
|
|
||||||
|
def draw
|
||||||
|
super()
|
||||||
|
wrap_element div("ul.nav!")
|
||||||
|
wrap_element( div(".classes") << div("h4" , "Classes") )
|
||||||
|
return @element
|
||||||
|
|
||||||
|
DOM do |dom|
|
||||||
|
dom.div.classes do
|
||||||
|
dom.h4 {"Classes"}
|
||||||
|
dom.ul.nav! do
|
||||||
|
@classes.each do |cl|
|
||||||
|
dom.li do
|
||||||
|
dom.a { cl.name }
|
||||||
|
dom.ul do
|
||||||
|
cl.object_layout.object_instance_names.each do |name|
|
||||||
|
dom.li do
|
||||||
|
dom.a{ name }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
@ -4,7 +4,7 @@ require 'native'
|
|||||||
require "salama"
|
require "salama"
|
||||||
require "interpreter/interpreter"
|
require "interpreter/interpreter"
|
||||||
require "base/list_view"
|
require "base/list_view"
|
||||||
require_relative "class_view"
|
require_relative "classes_view"
|
||||||
require_relative "status_view"
|
require_relative "status_view"
|
||||||
require_relative "file_view"
|
require_relative "file_view"
|
||||||
require_relative "blocks_view"
|
require_relative "blocks_view"
|
||||||
@ -27,7 +27,7 @@ class MainView < ListView
|
|||||||
|
|
||||||
machine.run_before "Register::CallImplementation"
|
machine.run_before "Register::CallImplementation"
|
||||||
@interpreter = Interpreter::Interpreter.new
|
@interpreter = Interpreter::Interpreter.new
|
||||||
super( [ClassView.new(@interpreter) ,
|
super( [ClassesView.new(@interpreter) ,
|
||||||
FileView.new ,
|
FileView.new ,
|
||||||
BlocksView.new(@interpreter) ,
|
BlocksView.new(@interpreter) ,
|
||||||
StatusView.new(@interpreter) ,
|
StatusView.new(@interpreter) ,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user