Upgrade to ExtJS 3.0.3 - Released 10/11/2009
[extjs.git] / examples / feed-viewer / FeedViewer.js
1 /*!
2  * Ext JS Library 3.0.3
3  * Copyright(c) 2006-2009 Ext JS, LLC
4  * licensing@extjs.com
5  * http://www.extjs.com/license
6  */
7 FeedViewer = {};\r
8 \r
9 Ext.onReady(function(){\r
10     Ext.QuickTips.init();\r
11 \r
12     Ext.state.Manager.setProvider(new Ext.state.SessionProvider({state: Ext.appState}));\r
13 \r
14     var tpl = Ext.Template.from('preview-tpl', {\r
15         compiled:true,\r
16         getBody : function(v, all){\r
17             return Ext.util.Format.stripScripts(v || all.description);\r
18         }\r
19     });\r
20     FeedViewer.getTemplate = function(){\r
21         return tpl;\r
22     }\r
23 \r
24     var feeds = new FeedPanel();\r
25     var mainPanel = new MainPanel();\r
26 \r
27     feeds.on('feedselect', function(feed){\r
28         mainPanel.loadFeed(feed);\r
29     });\r
30     \r
31     var viewport = new Ext.Viewport({\r
32         layout:'border',\r
33         items:[\r
34             new Ext.BoxComponent({ // raw element\r
35                 region:'north',\r
36                 el: 'header',\r
37                 height:32\r
38             }),\r
39             feeds,\r
40             mainPanel\r
41          ]\r
42     });\r
43 \r
44     // add some default feeds\r
45     feeds.addFeed({\r
46         url:'http://feeds.feedburner.com/extblog',\r
47         text: 'ExtJS.com Blog'\r
48     }, false, true);\r
49 \r
50     feeds.addFeed({\r
51         url:'http://extjs.com/forum/external.php?type=RSS2',\r
52         text: 'ExtJS.com Forums'\r
53     }, true);\r
54 \r
55     feeds.addFeed({\r
56         url:'http://feeds.feedburner.com/ajaxian',\r
57         text: 'Ajaxian'\r
58     }, true);\r
59     \r
60     Ext.get('header').on('click', function() {\r
61         viewport.focus();\r
62     });\r
63     \r
64     feeds.focus();\r
65 });\r
66 \r
67 // This is a custom event handler passed to preview panels so link open in a new windw\r
68 FeedViewer.LinkInterceptor = {\r
69     render: function(p){\r
70         p.body.on({\r
71             'mousedown': function(e, t){ // try to intercept the easy way\r
72                 t.target = '_blank';\r
73             },\r
74             'click': function(e, t){ // if they tab + enter a link, need to do it old fashioned way\r
75                 if(String(t.target).toLowerCase() != '_blank'){\r
76                     e.stopEvent();\r
77                     window.open(t.href);\r
78                 }\r
79             },\r
80             delegate:'a'\r
81         });\r
82     }\r
83 };