class HtmlGrid::AbstractComposite
Constants
- CSS_CLASS
- CSS_ID
- CSS_ID_MAP
- CSS_MAP
- CSS_STYLE_MAP
- DEFAULT_CLASS
- LABELS
- LEGACY_INTERFACE
- LOOKANDFEEL_MAP
- SYMBOL_MAP
Public Class Methods
component(klass, key, name = nil)
click to toggle source
# File lib/htmlgrid/composite.rb, line 55 def self.component(klass, key, name = nil) methname = klass.to_s.downcase.gsub("::", "_") << "_" << key.to_s define_method(methname) { |*args| model, session = args args = [model.send(key), session || @session, self] if name args.unshift(name) lookandfeel_map.store(methname.to_sym, name.to_sym) end klass.new(*args) } methname.to_sym end
Public Instance Methods
create(component, model = @model)
click to toggle source
# File lib/htmlgrid/composite.rb, line 75 def create(component, model = @model) if component.is_a? Class component.new(model, @session, self) elsif component.is_a? Symbol if respond_to?(component, true) args = [model] if self.class::LEGACY_INTERFACE args.push(@session) end send(component, *args) elsif (klass = symbol_map[component]) klass.new(component, model, @session, self) else self.class::DEFAULT_CLASS.new(component, model, @session, self) end elsif component.is_a? String val = @lookandfeel.lookup(component) { component.to_s } val.gsub(@@nl2br_ptrn, "<br>") end rescue => exc exc.backtrace.push(sprintf("%s::COMPONENTS[%s] in create(%s)", self.class, components.key(component).inspect, component)) raise exc end
init()
click to toggle source
Calls superclass method
HtmlGrid::Component#init
# File lib/htmlgrid/composite.rb, line 69 def init super setup_grid compose end
Private Instance Methods
components()
click to toggle source
# File lib/htmlgrid/composite.rb, line 102 def components @components ||= self.class::COMPONENTS.dup end
css_id_map()
click to toggle source
# File lib/htmlgrid/composite.rb, line 106 def css_id_map @css_id_map ||= self.class::CSS_ID_MAP.dup end
css_map()
click to toggle source
# File lib/htmlgrid/composite.rb, line 110 def css_map @css_map ||= self.class::CSS_MAP.dup end
css_style_map()
click to toggle source
# File lib/htmlgrid/composite.rb, line 114 def css_style_map @css_style_map ||= self.class::CSS_STYLE_MAP.dup end
labels?()
click to toggle source
# File lib/htmlgrid/composite.rb, line 118 def labels? self.class::LABELS end
lookandfeel_map()
click to toggle source
# File lib/htmlgrid/composite.rb, line 122 def lookandfeel_map @lookandfeel_map ||= self.class::LOOKANDFEEL_MAP.dup end
symbol_map()
click to toggle source
# File lib/htmlgrid/composite.rb, line 126 def symbol_map @symbol_map ||= self.class::SYMBOL_MAP.dup end