e?1:(f');var d=new Ext.XTemplate(' {name} ${price}',' ','{detail}');e.overwrite(c.el,a.data);d.overwrite(b.el,a.data);b.setHeight("auto");this.doLayout()}});Ext.define("Books.store.Books",{extend:"Ext.data.Store",model:"Books.model.Book",autoLoad:true,proxy:{type:"ajax",url:"resources/json/products.json"}});Ext.define("Books.store.Reviews",{extend:"Ext.data.Store",model:"Books.model.Review"});Ext.define("Ext.data.BelongsToAssociation",{extend:"Ext.data.Association",alias:"association.belongsto",constructor:function(c){this.callParent(arguments);var e=this,a=e.ownerModel.prototype,f=e.associatedName,d=e.getterName||"get"+f,b=e.setterName||"set"+f;Ext.applyIf(e,{name:f,foreignKey:f.toLowerCase()+"_id",instanceName:f+"BelongsToInstance",associationKey:f.toLowerCase()});a[d]=e.createGetter();a[b]=e.createSetter()},createSetter:function(){var c=this,d=c.ownerModel,e=c.associatedModel,b=c.foreignKey,a=c.primaryKey;return function(h,f,g){this.set(b,h);if(typeof f=="function"){f={callback:f,scope:g||this}}if(Ext.isObject(f)){return this.save(f)}}},createGetter:function(){var d=this,f=d.ownerModel,e=d.associatedName,g=d.associatedModel,c=d.foreignKey,b=d.primaryKey,a=d.instanceName;return function(j,k){j=j||{};var l=this.get(c),h,i;if(this[a]===undefined){h=Ext.ModelManager.create({},e);h.set(b,l);if(typeof j=="function"){j={callback:j,scope:k||this}}g.load(l,j)}else{h=this[a];if(typeof j=="function"){j.call(k||this,h)}if(j.success){j.success.call(k||this,h)}if(j.callback){j.callback.call(k||this,h)}return h}}},read:function(b,a,c){b[this.instanceName]=a.read([c]).records[0]}});Ext.define("Ext.layout.container.AbstractCard",{extend:"Ext.layout.container.Fit",type:"card",sizeAllCards:false,hideInactive:true,deferredRender:false,beforeLayout:function(){var a=this;a.activeItem=a.getActiveItem();if(a.activeItem&&a.deferredRender){a.renderItems([a.activeItem],a.getRenderTarget());return true}else{return this.callParent(arguments)}},onLayout:function(){var f=this,g=f.activeItem,b=f.getVisibleItems(),e=b.length,a=f.getTargetBox(),c,d;for(c=0;c1){b.doSelect(a,false,false)}else{b.doSelect(a,false)}}}}break;case"SIMPLE":if(b.isSelected(a)){b.doDeselect(a)}else{b.doSelect(a,true)}break;case"SINGLE":if(b.allowDeselect&&b.isSelected(a)){b.doDeselect(a)}else{b.doSelect(a,false)}break}},selectRange:function(k,e,l,c){var h=this,j=h.store,d=0,g,f,a,b=[];if(h.isLocked()){return}if(!l){h.clearSelections()}if(!Ext.isNumber(k)){k=j.indexOf(k)}if(!Ext.isNumber(e)){e=j.indexOf(e)}if(k>e){f=e;e=k;k=f}for(g=k;g<=e;g++){if(h.isSelected(j.getAt(g))){d++}}if(!c){a=-1}else{a=(c=="up")?k:e}for(g=k;g<=e;g++){if(d==(e-k+1)){if(g!=a){h.doDeselect(g,true)}}else{b.push(j.getAt(g))}}h.doMultiSelect(b,true)},select:function(b,c,a){this.doSelect(b,c,a)},deselect:function(b,a){this.doDeselect(b,a)},doSelect:function(c,e,b){var d=this,a;if(d.locked){return}if(typeof c==="number"){c=[d.store.getAt(c)]}if(d.selectionMode=="SINGLE"&&c){a=c.length?c[0]:c;d.doSingleSelect(a,b)}else{d.doMultiSelect(c,e,b)}},doMultiSelect:function(a,j,h){var f=this,b=f.selected,g=false,c=0,e,d;if(f.locked){return}a=!Ext.isArray(a)?[a]:a;e=a.length;if(!j&&b.getCount()>0){g=true;f.doDeselect(f.getSelection(),h)}for(;c 0){d.doDeselect(d.lastSelected,b)}c.add(a);d.lastSelected=a;d.onSelectChange(a,true,b);if(!b){d.setLastFocused(a)}d.maybeFireSelectionChange(!b)},setLastFocused:function(c,b){var d=this,a=d.lastFocused;d.lastFocused=c;d.onLastFocusChanged(a,c,b)},isFocused:function(a){return a===this.getLastFocused()},maybeFireSelectionChange:function(a){var b=this;if(a&&!b.bulkChange){b.fireEvent("selectionchange",b,b.getSelection())}},getLastSelected:function(){return this.lastSelected},getLastFocused:function(){return this.lastFocused},getSelection:function(){return this.selected.getRange()},getSelectionMode:function(){return this.selectionMode},setSelectionMode:function(a){a=a?a.toUpperCase():"SINGLE";this.selectionMode=this.modes[a]?a:"SINGLE"},isLocked:function(){return this.locked},setLocked:function(a){this.locked=!!a},isSelected:function(a){a=Ext.isNumber(a)?this.store.getAt(a):a;return this.selected.indexOf(a)!==-1},hasSelection:function(){return this.selected.getCount()>0},refresh:function(){var g=this,b=[],f=g.getSelection(),a=f.length,e,h,d=0,c=this.getLastFocused();for(;d0){a.clear();b.lastSelected=null;b.setLastFocused(null);b.maybeFireSelectionChange(true)}},onStoreRemove:function(b,a){var d=this,c=d.selected;if(d.locked||!d.pruneRemoved){return}if(c.remove(a)){if(d.lastSelected==a){d.lastSelected=null}if(d.getLastFocused()==a){d.setLastFocused(null)}d.maybeFireSelectionChange(true)}},getCount:function(){return this.selected.getCount()},destroy:function(){},onStoreUpdate:function(){},onSelectChange:function(a,c,b){},onLastFocusChanged:function(b,a){},onEditorKey:function(b,a){},bindComponent:function(a){}});Ext.define("Ext.layout.container.Card",{alias:["layout.card"],alternateClassName:"Ext.layout.CardLayout",extend:"Ext.layout.container.AbstractCard",setActiveItem:function(b){var e=this,a=e.owner,d=e.activeItem,c;e.layoutBusy=true;b=e.parseActiveItem(b);c=a.items.indexOf(b);if(c==-1){c=a.items.items.length;a.add(b)}if(b&&d!=b){if(!b.rendered){e.renderItem(b,e.getRenderTarget(),a.items.length);e.configureItem(b,0)}e.activeItem=b;if(b.fireEvent("beforeactivate",b,d)===false){e.layoutBusy=false;return false}if(d&&d.fireEvent("beforedeactivate",d,b)===false){e.layoutBusy=false;return false}if(!e.sizeAllCards){e.setItemBox(b,e.getTargetBox())}else{e.onLayout()}if(d){if(e.hideInactive){d.hide()}d.fireEvent("deactivate",d,b)}if(b.hidden){b.show()}b.fireEvent("activate",b,d);e.layoutBusy=false;if(!e.sizeAllCards){if(!a.componentLayout.layoutBusy){e.onLayout()}}return b}e.layoutBusy=false;return false}});Ext.define("Books.view.review.List",{alias:"widget.reviewlist",extend:"Ext.panel.Panel",requires:["Ext.layout.container.Card"],initComponent:function(){this.dataview=Ext.create("Ext.view.View",{id:"reviews",border:false,cls:"review-list",autoScroll:true,store:"Books.store.Review",itemSelector:".review",tpl:new Ext.XTemplate(' ',' ",{stars:function(a){var c="";for(var b=0;b','","{title} {[this.stars(values)]}',' ','{comment}',"'}while(b<5){c+='';b++}return c}})});Ext.apply(this,{border:false,flex:1,id:"test",layout:"card",dockedItems:[Ext.create("Books.view.Header",{html:"Reviews"})],items:[this.dataview,Ext.create("widget.panel",{id:"test2",html:"asdasdsa"})]});this.callParent(arguments)},bind:function(a,b){b.loadData(a.data.reviews||[]);this.dataview.bindStore(b)}});Ext.define("Books.model.Review",{extend:"Ext.data.Model",fields:["product_id","author","rating","date","title","comment"],belongsTo:"Books.model.Book"});Ext.define("Ext.data.HasManyAssociation",{extend:"Ext.data.Association",requires:["Ext.util.Inflector"],alias:"association.hasmany",constructor:function(c){var d=this,a,b;d.callParent(arguments);d.name=d.name||Ext.util.Inflector.pluralize(d.associatedName.toLowerCase());a=d.ownerModel.prototype;b=d.name;Ext.applyIf(d,{storeName:b+"Store",foreignKey:d.ownerName.toLowerCase()+"_id"});a[b]=d.createStore()},createStore:function(){var g=this,h=g.associatedModel,c=g.storeName,d=g.foreignKey,a=g.primaryKey,f=g.filterProperty,b=g.autoLoad,e=g.storeConfig||{};return function(){var l=this,j,k,i={};if(l[c]===undefined){if(f){k={property:f,value:l.get(f),exactMatch:true}}else{k={property:d,value:l.get(a),exactMatch:true}}i[d]=l.get(a);j=Ext.apply({},e,{model:h,filters:[k],remoteFilter:false,modelDefaults:i});l[c]=Ext.create("Ext.data.Store",j);if(b){l[c].load()}}return l[c]}},read:function(c,a,e){var d=c[this.name](),b;d.add(a.read(e).records);b=this.associatedModel.prototype.associations.findBy(function(f){return f.type==="belongsTo"&&f.associatedName===c.$className});if(b){d.data.each(function(f){f[b.instanceName]=c})}}});Ext.define("Books.model.Book",{extend:"Ext.data.Model",requires:["Books.model.Review","Ext.data.HasManyAssociation","Ext.data.BelongsToAssociation"],fields:["id","name","author","detail","price","image"],hasMany:{model:"Books.model.Review",name:"reviews"}});Ext.define("Books.controller.Books",{extend:"Ext.app.Controller",models:["Book"],stores:["Books","Reviews"],refs:[{ref:"bookSideBar",selector:"booksidebar"},{ref:"bookView",selector:"bookview"},{ref:"reviewList",selector:"reviewlist"}],init:function(){var a=this;a.control({booksidebar:{selectionchange:a.onSideBarSelectionChange}});a.getBooksStore().on({scope:a,load:a.onBooksStoreLoad})},onLaunch:function(){this.getBookSideBar().bindStore(this.getBooksStore())},onSideBarSelectionChange:function(a,b){if(b.length){this.showBook(b[0])}},onBooksStoreLoad:function(b,a){Ext.defer(function(){if(a.length){var c=a[0],d=this;d.getBookSideBar().getSelectionModel().select(c)}},500,this)},showBook:function(a){var b=this;b.getBookView().bind(a);b.getReviewList().bind(a,b.getReviewsStore())}});Ext.define("Ext.selection.DataViewModel",{extend:"Ext.selection.Model",requires:["Ext.util.KeyNav"],deselectOnContainerClick:true,enableKeyNav:true,constructor:function(a){this.addEvents("deselect","select");this.callParent(arguments)},bindComponent:function(a){var b=this,c={refresh:b.refresh,scope:b};b.view=a;b.bind(a.getStore());a.on(a.triggerEvent,b.onItemClick,b);a.on(a.triggerCtEvent,b.onContainerClick,b);a.on(c);if(b.enableKeyNav){b.initKeyNav(a)}},onItemClick:function(b,a,d,c,f){this.selectWithEvent(a,f)},onContainerClick:function(){if(this.deselectOnContainerClick){this.deselectAll()}},initKeyNav:function(a){var b=this;if(!a.rendered){a.on("render",Ext.Function.bind(b.initKeyNav,b,[a],0),b,{single:true});return}a.el.set({tabIndex:-1});b.keyNav=Ext.create("Ext.util.KeyNav",a.el,{down:Ext.pass(b.onNavKey,[1],b),right:Ext.pass(b.onNavKey,[1],b),left:Ext.pass(b.onNavKey,[-1],b),up:Ext.pass(b.onNavKey,[-1],b),scope:b})},onNavKey:function(f){f=f||1;var e=this,b=e.view,d=e.getSelection()[0],c=e.view.store.getCount(),a;if(d){a=b.indexOf(b.getNode(d))+f}else{a=0}if(a<0){a=c-1}else{if(a>=c){a=0}}e.select(a)},onSelectChange:function(b,e,c){var f=this,a=f.view,d=true;if(e){if(!c){d=f.fireEvent("beforeselect",f,b)!==false}if(d){a.onItemSelect(b);if(!c){f.fireEvent("select",f,b)}}}else{a.onItemDeselect(b);if(!c){f.fireEvent("deselect",f,b)}}}});Ext.define("Ext.view.AbstractView",{extend:"Ext.Component",alternateClassName:"Ext.view.AbstractView",requires:["Ext.LoadMask","Ext.data.StoreManager","Ext.CompositeElementLite","Ext.DomQuery","Ext.selection.DataViewModel"],inheritableStatics:{getRecord:function(a){return this.getBoundView(a).getRecord(a)},getBoundView:function(a){return Ext.getCmp(a.boundView)}},itemCls:Ext.baseCSSPrefix+"dataview-item",loadingText:"Loading...",loadingUseMsg:true,selectedItemCls:Ext.baseCSSPrefix+"item-selected",emptyText:"",deferEmptyText:true,trackOver:false,blockRefresh:false,last:false,triggerEvent:"itemclick",triggerCtEvent:"containerclick",addCmpEvents:function(){},initComponent:function(){var c=this,a=Ext.isDefined,d=c.itemTpl,b={};if(d){if(Ext.isArray(d)){d=d.join("")}else{if(Ext.isObject(d)){b=Ext.apply(b,d.initialConfig);d=d.html}}if(!c.itemSelector){c.itemSelector="."+c.itemCls}d=Ext.String.format(' ',c.itemCls,d);c.tpl=Ext.create("Ext.XTemplate",d,b)}c.callParent();if(Ext.isString(c.tpl)||Ext.isArray(c.tpl)){c.tpl=Ext.create("Ext.XTemplate",c.tpl)}c.addEvents("beforerefresh","refresh","itemupdate","itemadd","itemremove");c.addCmpEvents();if(c.store){c.store=Ext.data.StoreManager.lookup(c.store)}c.all=new Ext.CompositeElementLite();c.getSelectionModel().bindComponent(c)},onRender:function(){var d=this,a=d.loadingText,c=d.loadingHeight,b;d.callParent(arguments);if(a){d.loadMask=Ext.create("Ext.LoadMask",d.floating?d:d.ownerCt||d,{msg:a,msgCls:d.loadingCls,useMsg:d.loadingUseMsg,listeners:{beforeshow:function(){d.getTargetEl().update("");d.getSelectionModel().deselectAll();d.all.clear();if(c){d.setCalculatedSize(b,c)}},hide:function(){if(c){d.setHeight(d.height)}}}})}},getSelectionModel:function(){var a=this,b="SINGLE";if(!a.selModel){a.selModel={}}if(a.simpleSelect){b="SIMPLE"}else{if(a.multiSelect){b="MULTI"}}Ext.applyIf(a.selModel,{allowDeselect:a.allowDeselect,mode:b});if(!a.selModel.events){a.selModel=Ext.create("Ext.selection.DataViewModel",a.selModel)}if(!a.selModel.hasRelaySetup){a.relayEvents(a.selModel,["selectionchange","beforeselect","select","deselect"]);a.selModel.hasRelaySetup=true}if(a.disableSelection){a.selModel.locked=true}return a.selModel},refresh:function(){var c=this,b,a;if(!c.rendered){return}c.fireEvent("beforerefresh",c);b=c.getTargetEl();a=c.store.getRange();b.update("");if(a.length<1){if(!c.deferEmptyText||c.hasSkippedEmptyText){b.update(c.emptyText)}c.all.clear()}else{c.tpl.overwrite(b,c.collectData(a,0));c.all.fill(Ext.query(c.getItemSelector(),b.dom));c.updateIndexes(0)}c.selModel.refresh();c.hasSkippedEmptyText=true;c.fireEvent("refresh",c)},prepareData:function(c,b,a){if(a){Ext.apply(c,a.getAssociatedData())}return c},collectData:function(b,e){var d=[],c=0,a=b.length;for(;c-1){c=e.all.elements[b];d=e.bufferRender([a],b)[0];e.all.replaceElement(b,d,true);e.updateIndexes(b,b);e.selModel.refresh();e.fireEvent("itemupdate",a,b,d)}},onAdd:function(e,b,c){var d=this,a;if(d.all.getCount()===0){d.refresh();return}a=d.bufferRender(b,c);d.doAdd(a,b,c);d.selModel.refresh();d.updateIndexes(c);d.fireEvent("itemadd",b,c,a)},doAdd:function(d,c,e){var f,b=this.all.elements;if(e {1}=a&&d[c];c--){b.push(d[c])}}return b},indexOf:function(a){a=this.getNode(a);if(Ext.isNumber(a.viewIndex)){return a.viewIndex}return this.all.indexOf(a)},onDestroy:function(){var a=this;a.all.clear();a.callParent();a.bindStore(null);a.selModel.destroy()},onItemSelect:function(a){var b=this.getNode(a);Ext.fly(b).addCls(this.selectedItemCls)},onItemDeselect:function(a){var b=this.getNode(a);Ext.fly(b).removeCls(this.selectedItemCls)},getItemSelector:function(){return this.itemSelector}},function(){Ext.deprecate("extjs","4.0",function(){Ext.view.AbstractView.override({getSelectionCount:function(){if(Ext.global.console){Ext.global.console.warn("DataView: getSelectionCount will be removed, please interact with the Ext.selection.DataViewModel")}return this.selModel.getSelection().length},getSelectedRecords:function(){if(Ext.global.console){Ext.global.console.warn("DataView: getSelectedRecords will be removed, please interact with the Ext.selection.DataViewModel")}return this.selModel.getSelection()},select:function(a,b,d){if(Ext.global.console){Ext.global.console.warn("DataView: select will be removed, please access select through a DataView's SelectionModel, ie: view.getSelectionModel().select()")}var c=this.getSelectionModel();return c.select.apply(c,arguments)},clearSelections:function(){if(Ext.global.console){Ext.global.console.warn("DataView: clearSelections will be removed, please access deselectAll through DataView's SelectionModel, ie: view.getSelectionModel().deselectAll()")}var a=this.getSelectionModel();return a.deselectAll()}})})});Ext.define("Ext.view.View",{extend:"Ext.view.AbstractView",alternateClassName:"Ext.view.View",alias:"widget.dataview",inheritableStatics:{EventMap:{mousedown:"MouseDown",mouseup:"MouseUp",click:"Click",dblclick:"DblClick",contextmenu:"ContextMenu",mouseover:"MouseOver",mouseout:"MouseOut",mouseenter:"MouseEnter",mouseleave:"MouseLeave",keydown:"KeyDown"}},addCmpEvents:function(){this.addEvents("beforeitemmousedown","beforeitemmouseup","beforeitemmouseenter","beforeitemmouseleave","beforeitemclick","beforeitemdblclick","beforeitemcontextmenu","beforeitemkeydown","itemmousedown","itemmouseup","itemmouseenter","itemmouseleave","itemclick","itemdblclick","itemcontextmenu","itemkeydown","beforecontainermousedown","beforecontainermouseup","beforecontainermouseover","beforecontainermouseout","beforecontainerclick","beforecontainerdblclick","beforecontainercontextmenu","beforecontainerkeydown","containermouseup","containermouseover","containermouseout","containerclick","containerdblclick","containercontextmenu","containerkeydown","selectionchange","beforeselect")},afterRender:function(){var b=this,a;b.callParent();a={scope:b,click:b.handleEvent,mousedown:b.handleEvent,mouseup:b.handleEvent,dblclick:b.handleEvent,contextmenu:b.handleEvent,mouseover:b.handleEvent,mouseout:b.handleEvent,keydown:b.handleEvent};b.mon(b.getTargetEl(),a);if(b.store){b.bindStore(b.store,true)}},handleEvent:function(a){if(this.processUIEvent(a)!==false){this.processSpecialEvent(a)}},processItemEvent:Ext.emptyFn,processContainerEvent:Ext.emptyFn,processSpecialEvent:Ext.emptyFn,stillOverItem:function(b,a){var c;if(a&&typeof(a.offsetParent)==="object"){c=(b.type=="mouseout")?b.getRelatedTarget():b.getTarget();return Ext.fly(a).contains(c)}return false},processUIEvent:function(g){var h=this,j=g.getTarget(h.getItemSelector(),h.getTargetEl()),a=this.statics().EventMap,f,c,i=g.type,d=h.mouseOverItem,b;if(!j){if(i=="mouseover"&&h.stillOverItem(g,d)){j=d}if(i=="keydown"){c=h.getSelectionModel().getLastSelected();if(c){j=h.getNode(c)}}}if(j){f=h.indexOf(j);if(!c){c=h.getRecord(j)}if(h.processItemEvent(c,j,f,g)===false){return false}b=h.isNewItemEvent(j,g);if(b===false){return false}if((h["onBeforeItem"+a[b]](c,j,f,g)===false)||(h.fireEvent("beforeitem"+b,h,c,j,f,g)===false)||(h["onItem"+a[b]](c,j,f,g)===false)){return false}h.fireEvent("item"+b,h,c,j,f,g)}else{if((h.processContainerEvent(g)===false)||(h["onBeforeContainer"+a[i]](g)===false)||(h.fireEvent("beforecontainer"+i,h,g)===false)||(h["onContainer"+a[i]](g)===false)){return false}h.fireEvent("container"+i,h,g)}return true},isNewItemEvent:function(d,f){var c=this,a=c.mouseOverItem,b=f.type;switch(b){case"mouseover":if(d===a){return false}c.mouseOverItem=d;return"mouseenter";case"mouseout":if(c.stillOverItem(f,a)){return false}c.mouseOverItem=null;return"mouseleave"}return b},onItemMouseEnter:function(a,c,b,d){if(this.trackOver){this.highlightItem(c)}},onItemMouseLeave:function(a,c,b,d){if(this.trackOver){this.clearHighlight()}},onItemMouseDown:Ext.emptyFn,onItemMouseUp:Ext.emptyFn,onItemClick:Ext.emptyFn,onItemDblClick:Ext.emptyFn,onItemContextMenu:Ext.emptyFn,onItemKeyDown:Ext.emptyFn,onBeforeItemMouseDown:Ext.emptyFn,onBeforeItemMouseUp:Ext.emptyFn,onBeforeItemMouseEnter:Ext.emptyFn,onBeforeItemMouseLeave:Ext.emptyFn,onBeforeItemClick:Ext.emptyFn,onBeforeItemDblClick:Ext.emptyFn,onBeforeItemContextMenu:Ext.emptyFn,onBeforeItemKeyDown:Ext.emptyFn,onContainerMouseDown:Ext.emptyFn,onContainerMouseUp:Ext.emptyFn,onContainerMouseOver:Ext.emptyFn,onContainerMouseOut:Ext.emptyFn,onContainerClick:Ext.emptyFn,onContainerDblClick:Ext.emptyFn,onContainerContextMenu:Ext.emptyFn,onContainerKeyDown:Ext.emptyFn,onBeforeContainerMouseDown:Ext.emptyFn,onBeforeContainerMouseUp:Ext.emptyFn,onBeforeContainerMouseOver:Ext.emptyFn,onBeforeContainerMouseOut:Ext.emptyFn,onBeforeContainerClick:Ext.emptyFn,onBeforeContainerDblClick:Ext.emptyFn,onBeforeContainerContextMenu:Ext.emptyFn,onBeforeContainerKeyDown:Ext.emptyFn,highlightItem:function(b){var a=this;a.clearHighlight();a.highlightedItem=b;Ext.fly(b).addCls(a.overItemCls)},clearHighlight:function(){var b=this,a=b.highlightedItem;if(a){Ext.fly(a).removeCls(b.overItemCls);delete b.highlightedItem}},refresh:function(){this.clearHighlight();this.callParent(arguments)}});Ext.define("Books.view.book.SideBar",{alias:"widget.booksidebar",extend:"Ext.view.View",initComponent:function(){Ext.apply(this,{id:"sidebar",dock:"left",width:180,border:false,cls:"sidebar-list",selModel:{deselectOnContainerClick:false},store:"",itemSelector:".product",tpl:new Ext.XTemplate(' ','',' ")});this.callParent(arguments)}});Ext.define("Books.view.Viewport",{extend:"Ext.Viewport",layout:"fit",requires:["Books.view.Header","Books.view.book.View","Books.view.book.SideBar","Books.view.review.List"],initComponent:function(){var a=this;Ext.apply(a,{items:[{xtype:"panel",border:false,id:"viewport",layout:{type:"vbox",align:"stretch"},dockedItems:[Ext.create("Books.view.Header"),Ext.create("Books.view.book.SideBar")],items:[Ext.create("Books.view.book.View"),Ext.create("Books.view.review.List")]}]});a.callParent(arguments)}});{name}',"