Sha256: 9366040c14360db751fd6ba83d23f8f494a7edd6e335787e00c8ad2c15f64c4d

Contents?: true

Size: 1.25 KB

Versions: 13

Compression:

Stored size: 1.25 KB

Contents

require 'omf-web/widget/abstract_widget'

module OMF::Web::Widget::Layout

  # Implements a layout which displays only one of the widget it contains
  # but provides theme specific means to switch between them.
  #
  class StackedLayout < OMF::Web::Widget::AbstractWidget
    attr_reader :active_index
    
    def initialize(opts)
      super opts
      widgets = opts[:widgets]
      # if (widgets.is_a? Hash)
        # puts "ERROR>>>> #{widgets.inspect}"
        # raise  "NOT SURE WHY WE ARE COMING THROUGH HERE"
        # opts = widgets
        # #@wopts = opts[:wopts] || {}
        # #puts ">>>> #{widgets.inspect}"
        # widgets = @wopts[:widgets] || []
      # end
      @widgets = widgets.collect {|w| OMF::Web::Widget.create_widget(w) }
      @active_index = 0
      @active_widget = @widgets[0]
    end

    def content()
      OMF::Web::Theme.require 'stacked_renderer'
      OMF::Web::Theme::StackedRenderer.new(self, @widgets, @active_index, @opts)
    end
      

    def collect_data_sources(ds_set)
      @active_widget.collect_data_sources(ds_set)
      #@widgets.each {|w| w.collect_data_sources(ds_set) }
      ds_set
    end
    
    def name
      @opts[:name] || @active_widget.name
    end
    
    def layout?
      return true
    end
    
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
omf_web-1.2.4 lib/omf-web/widget/layout/stacked_layout.rb
omf_web-1.2.3 lib/omf-web/widget/layout/stacked_layout.rb
omf_web-1.2.2 lib/omf-web/widget/layout/stacked_layout.rb
omf_web-1.2.1 lib/omf-web/widget/layout/stacked_layout.rb
omf_web-1.2.0 lib/omf-web/widget/layout/stacked_layout.rb
omf_web-1.0.0 lib/omf-web/widget/layout/stacked_layout.rb
omf_web-0.9.9 lib/omf-web/widget/layout/stacked_layout.rb
omf_web-0.9.8 lib/omf-web/widget/layout/stacked_layout.rb
omf_web-0.9.7 lib/omf-web/widget/layout/stacked_layout.rb
omf_web-0.9.6 lib/omf-web/widget/layout/stacked_layout.rb
omf_web-0.9.5 lib/omf-web/widget/layout/stacked_layout.rb
omf_web-0.9.4 lib/omf-web/widget/layout/stacked_layout.rb
omf_web-0.9.3 lib/omf-web/widget/layout/stacked_layout.rb