[qooxdoo-commit] SF.net SVN: qooxdoo: [13605] trunk/qooxdoo/frontend/application/feedreader/ source
Brought to you by:
ecker,
martinwittemann
From: <wp...@us...> - 2008-05-17 23:16:55
|
Revision: 13605 http://qooxdoo.svn.sourceforge.net/qooxdoo/?rev=13605&view=rev Author: wpbasti Date: 2008-05-17 16:16:33 -0700 (Sat, 17 May 2008) Log Message: ----------- Major improvement of initial startup: Folder tree was recreated 8 times on load. Modified Paths: -------------- trunk/qooxdoo/frontend/application/feedreader/source/class/feedreader/model/FeedList.js trunk/qooxdoo/frontend/application/feedreader/source/class/feedreader/view/Tree.js Modified: trunk/qooxdoo/frontend/application/feedreader/source/class/feedreader/model/FeedList.js =================================================================== --- trunk/qooxdoo/frontend/application/feedreader/source/class/feedreader/model/FeedList.js 2008-05-17 22:51:30 UTC (rev 13604) +++ trunk/qooxdoo/frontend/application/feedreader/source/class/feedreader/model/FeedList.js 2008-05-17 23:16:33 UTC (rev 13605) @@ -54,10 +54,10 @@ events : { /** fired on addition of new feeds */ - "add" : "qx.event.type.Event", + "add" : "qx.event.type.DataEvent", /** fired on removal of feeds */ - "remove" : "qx.event.type.Event" + "remove" : "qx.event.type.DataEvent" }, @@ -110,7 +110,7 @@ addFeed : function(feed) { this.__feeds.push(feed); - this.fireEvent("add"); + this.fireDataEvent("add", feed); if (!this.getSelected()) { this.setSelected(feed); @@ -126,7 +126,7 @@ removeFeed : function(feed) { qx.lang.Array.remove(this.__feeds, feed); - this.fireEvent("remove"); + this.fireDataEvent("remove", feed); if (this.getSelected() == feed) { this.setSelected(null); Modified: trunk/qooxdoo/frontend/application/feedreader/source/class/feedreader/view/Tree.js =================================================================== --- trunk/qooxdoo/frontend/application/feedreader/source/class/feedreader/view/Tree.js 2008-05-17 22:51:30 UTC (rev 13604) +++ trunk/qooxdoo/frontend/application/feedreader/source/class/feedreader/view/Tree.js 2008-05-17 23:16:33 UTC (rev 13605) @@ -74,13 +74,10 @@ // Register the change listener this.addListener("change", this._onChangeSelectionView, this); - // Refresh the tree view - this._refresh(); - // Listen for model changes - feedList.addListener("add", this._refresh, this); - feedList.addListener("remove", this._refresh, this); - feedList.addListener("change", this._onSelectFeed, this); + feedList.addListener("add", this._onFeedAdded, this); + feedList.addListener("remove", this._onFeedRemoved, this); + feedList.addListener("change", this._onFeedSelected, this); }, @@ -95,35 +92,39 @@ members : { /** - * Invokes a refresh of the tree. - * This includes getting the feeds of the controller and - * creation of a tree folder for every feed. + * Executed on addition of a feed from the list. + * + * @param e {qx.event.type.DataEvent} Incoming data event. Contains the added feed. */ - _refresh : function() + _onFeedAdded : function(e) { - // remove old folders - this._staticFeedsFolder.removeAll(); - this._userFeedsFolder.removeAll(); + this.debug("E: " + e) + var feed = e.getData(); + feed.addListener("stateModified", this._onFeedStateModified, this); - var feeds = this._feedList.getFeeds(); + // create and add a folder for every feed + var folder = new qx.ui.tree.TreeFolder(feed.getTitle()); + + this._updateFolderState(folder, feed.getState()); + folder.setUserData("feed", feed); + + if (feed.getCategory() == "static") { + this._staticFeedsFolder.add(folder); + } else { + this._userFeedsFolder.add(folder); + } + }, + - // go threw all feeds - for (var i=0; i<feeds.length; i++) - { - var feed = feeds[i]; - - feed.addListener("stateModified", this._onFeedStateModified, this); - - // create and add a folder for every feed - var folder = new qx.ui.tree.TreeFolder(feed.getTitle()); - this._updateFolderState(folder, feed.getState()); - folder.setUserData("feed", feed); - if (feed.getCategory() == "static") { - this._staticFeedsFolder.add(folder); - } else { - this._userFeedsFolder.add(folder); - } - } + /** + * Executed on removal of a feed from the list. + * + * @param e {qx.event.type.DataEvent} Incoming data event. Contains the remove feed. + */ + _onFeedRemoved : function(e) + { + var feed = e.getData(); + this.getFolder(feed).destroy(); }, @@ -181,6 +182,7 @@ return folders[i]; } } + return null; }, @@ -210,7 +212,7 @@ * * @param e {qx.event.type.Data} The data event of the feed list change. */ - _onSelectFeed : function(e) + _onFeedSelected : function(e) { var feed = e.getValue(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |