Sha256: e1d52eb10d995d5847e37d41cad3a129c2ec9d9f4a52c84ba16ef7f83856a76a

Contents?: true

Size: 1.67 KB

Versions: 9

Compression:

Stored size: 1.67 KB

Contents

module Netzke
  module Basepack
    # Panel with border layout.
    #
    # == Features
    #   * When persistence enabled, remembers the sizes and collapsed/expanded states of its regions.
    #
    # == Example configuration:
    #
    #     :items => [
    #       {:title => "Item One", :class_name => "Basepack::Panel", :region => :center},
    #       {:title => "Item Two", :class_name => "Basepack::Panel", :region => :west, :width => 300, :split => true}
    #     ]
    class BorderLayoutPanel < Netzke::Base
      js_mixin :border_layout_panel

      def items
        @border_layout_items ||= begin
          updated_items = super

          if config[:persistence]
            updated_items.each do |item|
              region = item[:region] || components[item[:netzke_component]][:region]
              item.merge!({
                :width => state[:"#{region}_region_width"],
                :height => state[:"#{region}_region_height"],
                :collapsed => state[:"#{region}_region_collapsed"]
              })
            end
          end

          updated_items
        end
      end

      endpoint :region_resized do |params|
        size_state_hash = {}
        size_state_hash[:"#{params[:region]}_region_width"] = params[:width].to_i if params[:width]
        size_state_hash[:"#{params[:region]}_region_height"] = params[:height].to_i if params[:height]
        update_state(size_state_hash)
      end

      endpoint :region_collapsed do |params|
        update_state(:"#{params[:region]}_region_collapsed" => true)
      end

      endpoint :region_expanded do |params|
        update_state(:"#{params[:region]}_region_collapsed" => false)
      end

    end
  end
end

Version data entries

9 entries across 9 versions & 2 rubygems

Version Path
netzke-basepack-0.7.7 lib/netzke/basepack/border_layout_panel.rb
netzke-basepack-zh-0.7.6 lib/netzke/basepack/border_layout_panel.rb
netzke-basepack-0.7.6 lib/netzke/basepack/border_layout_panel.rb
netzke-basepack-0.7.5 lib/netzke/basepack/border_layout_panel.rb
netzke-basepack-0.7.4 lib/netzke/basepack/border_layout_panel.rb
netzke-basepack-0.7.3 lib/netzke/basepack/border_layout_panel.rb
netzke-basepack-0.7.2 lib/netzke/basepack/border_layout_panel.rb
netzke-basepack-0.7.1 lib/netzke/basepack/border_layout_panel.rb
netzke-basepack-0.7.0 lib/netzke/basepack/border_layout_panel.rb