import com.keywords.KeywordSelectionSystem; import com.events.EventBroadcaster; import com.tubes.BuckyFileTube; import com.services.BuckyServices; class com.threads.ThreadSelectionSystem extends KeywordSelectionSystem { private var itemsPerRow:Number = 1; private var vertSpace:Number = 1; private var tube:BuckyFileTube; private function doAction():Void { eraseExistingSpinners(); BuckyServices.setActiveThread( selectedData() ); EventBroadcaster.getInstance().addEventListener("fileListMade", this); tube = new BuckyFileTube ( BuckyServices.files + selectedData().id ); startButtonSpinner(); } private function showSelectedFeedback():Void { for (var i:Number = listItems.length ; i >= 0 ; i--) { var t:MovieClip = listItems[i]; t.overlay._visible = ( currentSelection == i) ? true : false; } } private function eraseExistingSpinners():Void { for (var i:Number = 0 ; i < listItems.length ; i++) { var t:MovieClip = listItems[i]; t.alphabet_mc._visible = true; t.username_mc.username_txt.text = systemData[i].user; t["spinnerHolder"].removeMovieClip(); // kill if exists .. fail silently if not } EventBroadcaster.getInstance().removeEventListener("threadListMade", this); } private function startButtonSpinner():Void { var t:MovieClip = listItems[currentSelection]; t.alphabet_mc._visible = false; t.username_mc.username_txt.text = "loading!!!"; t.createEmptyMovieClip ("spinnerHolder", t.getNextHighestDepth()); t["spinnerHolder"].attachMovie ("Spinner", "spinner" , 100, {_x:196, _y:15, _width:18, _height:18}); } private function fileListMade (_evt:Object):Void { eraseExistingSpinners(); _root.debug.text = tube.articles.length; if (( tube.articles.length != undefined) && ( tube.articles.length != 0 )) { BuckyServices.setActiveThread ( selectedData() ); setCurrentSelection ( currentSelection ); showSelectedFeedback(); BuckyServices.filesMC.doLoad( tube.articles , "FileButton" ); EventBroadcaster.getInstance().broadcastEvent("switchToFilesView", null); } else if ( tube.articles.length == 0 ) { _root.switcher.handleOpenThreadBtn(); var t:MovieClip = listItems[currentSelection]; t.username_mc.username_txt.text = "opening " + selectedData().user + "'s thread.."; } } };