Sha256: fc2eacfd63900f037ab93748bde2d7aced2b97e88937cb759112ba8854877ed8

Contents?: true

Size: 1.4 KB

Versions: 14

Compression:

Stored size: 1.4 KB

Contents

require 'omf-web/theme/bright/layout_renderer'

module OMF::Web::Theme
  
  class TwoColumnsRenderer < LayoutRenderer

    DEFAULT_LAYOUT = '66_33'
    
    @@layout2class = {
      '50_50' => "yui-g",
      '66_33' => "yui-gc",
      '33_66' => "yui-gd",
      '75_25' => "yui-ge",
      '25_75' => "yui-gf"
    }
      
    def initialize(lwidgets, rwidgets, opts)
      super opts
      # looking for something like: 'layout/two_columns/50_50'
      layout = (opts[:type].split('/')[2] || DEFAULT_LAYOUT).to_s
      unless @layout_class = @@layout2class[layout]
        warn "Unknown layout '#{layout}'"
        @layout_class = @@layout2class[DEFAULT_LAYOUT]
      end
      
      @lwidgets = lwidgets || []
      @rwidgets = rwidgets || []
      @opts = opts
    end
    
    def content

      div :class => @layout_class do
        div :class => "yui-u first column column-left" do
          render_left
        end
        div :class => "yui-u column column-right" do
          render_right
        end
      end
    end
    
    def render_left
      @lwidgets.each do |w|
        render_widget w
      end
    end

    def render_right
      @rwidgets.each do |w|
        render_widget w
      end
    end
    
    def render_widget(w)
      r = w.content
      unless w.layout?
        r = WidgetChrome.new(w, r, @opts)
      end
      rawtext r.to_html      
    end    

  end # TwoColumnPage

end # OMF::Web::Theme

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
omf_web-1.2.9 lib/omf-web/theme/bright/two_columns_renderer.rb
omf_web-1.2.8 lib/omf-web/theme/bright/two_columns_renderer.rb
omf_web-1.2.7 lib/omf-web/theme/bright/two_columns_renderer.rb
omf_web-1.2.6 lib/omf-web/theme/bright/two_columns_renderer.rb
omf_web-1.2.5 lib/omf-web/theme/bright/two_columns_renderer.rb
omf_web-1.2.4 lib/omf-web/theme/bright/two_columns_renderer.rb
omf_web-1.2.3 lib/omf-web/theme/bright/two_columns_renderer.rb
omf_web-1.2.2 lib/omf-web/theme/bright/two_columns_renderer.rb
omf_web-1.2.1 lib/omf-web/theme/bright/two_columns_renderer.rb
omf_web-1.2.0 lib/omf-web/theme/bright/two_columns_renderer.rb
omf_web-1.0.0 lib/omf-web/theme/bright/two_columns_renderer.rb
omf_web-0.9.9 lib/omf-web/theme/bright/two_columns_renderer.rb
omf_web-0.9.8 lib/omf-web/theme/bright/two_columns_renderer.rb
omf_web-0.9.7 lib/omf-web/theme/bright/two_columns_renderer.rb