Class: Glib::JsonUi::ViewBuilder::Panels::Table2

Inherits:
View show all
Defined in:
app/helpers/glib/json_ui/view_builder/panels.rb

Instance Attribute Summary collapse

Attributes inherited from JsonUiElement

#json, #page

Instance Method Summary collapse

Methods inherited from View

component_name

Methods inherited from JsonUiElement

#props

Constructor Details

#initialize(json, page) ⇒ Table2

Returns a new instance of Table2.



448
449
450
451
# File 'app/helpers/glib/json_ui/view_builder/panels.rb', line 448

def initialize(json, page)
  super
  @template = Glib::JsonUi::TableBuilders::Template.new(json, self)
end

Instance Attribute Details

#templateObject (readonly)

Returns the value of attribute template.



442
443
444
# File 'app/helpers/glib/json_ui/view_builder/panels.rb', line 442

def template
  @template
end

Instance Method Details

#header(options = {}) ⇒ Object



453
454
455
456
457
458
459
460
461
462
463
464
# File 'app/helpers/glib/json_ui/view_builder/panels.rb', line 453

def header(options = {})
  json.header do
    json.backgroundColor options.delete(:backgroundColor)
    json.cellViews do
      options.delete(:cellViews)&.call page.view_builder
    end

    json.colSpans options.delete(:colSpans)
  end

  raise "Invalid properties: #{options.keys}" if options.size > 0
end

#rows(options = {}) ⇒ Object



466
467
468
469
470
471
472
473
474
475
476
477
478
479
# File 'app/helpers/glib/json_ui/view_builder/panels.rb', line 466

def rows(options = {})
  block = options.delete(:builder)
  json.rows do
    if (objects = options.delete(:objects))
      objects.each_with_index do |object, index|
        block&.call template, object, index
      end
    else
      block&.call template
    end
  end

  raise "Invalid properties: #{options.keys}" if options.size > 0
end