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
|
||||
end
|
||||
|
||||
def wrap_node_with node , wrapper
|
||||
node.replace_with wrapper
|
||||
node.append_to wrapper
|
||||
# wrap the @element variable with the given element
|
||||
# so if wrapper == <h4/> the new @element will be <h4> old @element </h4>
|
||||
# return the new @element, which is wrapper
|
||||
def wrap_element wrapper
|
||||
@element = wrap_node_with @element , wrapper
|
||||
end
|
||||
|
||||
def create_element class_or_id , text = nil
|
||||
@element = div( class_or_id , text)
|
||||
#wrap the given node with the wappper, so for a div wrapper and a button node
|
||||
# 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
|
||||
|
||||
def add class_or_id , tex = nil
|
||||
|
@ -1,48 +1,14 @@
|
||||
class ClassView < 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 }
|
||||
class ClassView < ElementView
|
||||
def initialize clazz
|
||||
@clazz = clazz
|
||||
end
|
||||
|
||||
def draw
|
||||
create_element(".classes") << div("h4" , "Classes")
|
||||
list = add("ul.nav!")
|
||||
|
||||
@classes.each do |cl|
|
||||
list << (div("li") <<
|
||||
(div( "a" , cl.name ) <<
|
||||
(ul = div("ul"))))
|
||||
cl.object_layout.object_instance_names.each do |name|
|
||||
@element = div("li")
|
||||
add( "a" , @clazz.name ) << (ul = div("ul"))
|
||||
@clazz.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 }
|
||||
@element
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
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 "interpreter/interpreter"
|
||||
require "base/list_view"
|
||||
require_relative "class_view"
|
||||
require_relative "classes_view"
|
||||
require_relative "status_view"
|
||||
require_relative "file_view"
|
||||
require_relative "blocks_view"
|
||||
@ -27,7 +27,7 @@ class MainView < ListView
|
||||
|
||||
machine.run_before "Register::CallImplementation"
|
||||
@interpreter = Interpreter::Interpreter.new
|
||||
super( [ClassView.new(@interpreter) ,
|
||||
super( [ClassesView.new(@interpreter) ,
|
||||
FileView.new ,
|
||||
BlocksView.new(@interpreter) ,
|
||||
StatusView.new(@interpreter) ,
|
||||
|
Loading…
x
Reference in New Issue
Block a user