Sha256: b22992f3be543cc12167aadeb7f2f2321402e28cd831e0f14bd06816b577aa32

Contents?: true

Size: 1.07 KB

Versions: 1

Compression:

Stored size: 1.07 KB

Contents

module Netzke
  module Basepack
    # = TabPanel
    # 
    # Features:
    # * Dynamically loads components for the tabs that get activated for the first time
    # * Is loaded along with the active component - saves a request to the server
    # * (TODO) Provides the method markTabsOutdated to mark all inactive tabs as 'outdated', and calls "update" method on components in tabs when they get activated
    # * (TODO) Stores the last active tab in persistent_config
    # 
    # ToDo:
    # * Introduce a second or two delay before informing the server about a tab switched
    class TabPanel < Netzke::Base
      
      include WrapLazyLoaded
      
      js_base_class "Ext.TabPanel"
      
      js_method :init_component, <<-JS
        function(params){
          #{js_full_class_name}.superclass.initComponent.call(this);
          this.on('tabchange', function(self, i){
            if (i.wrappedComponent && !i.items.first()) {
              this.loadComponent({name: i.wrappedComponent, container: i.id});
            }
          }, this);
        }
      JS
      
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
netzke-basepack-0.6.0 app/components/netzke/basepack/tab_panel.rb