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.



336
337
338
339
# File 'app/helpers/glib/json_ui/view_builder/panels.rb', line 336

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.



330
331
332
# File 'app/helpers/glib/json_ui/view_builder/panels.rb', line 330

def template
  @template
end

Instance Method Details

#header(options = {}) ⇒ Object



341
342
343
344
345
346
347
348
349
350
351
352
# File 'app/helpers/glib/json_ui/view_builder/panels.rb', line 341

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



354
355
356
357
358
359
360
361
362
363
364
365
366
367
# File 'app/helpers/glib/json_ui/view_builder/panels.rb', line 354

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