BrowserHistoryManager.as

Go to the documentation of this file.
00001 import mx.utils.Delegate;
00002 
00003 import gugga.browser.BrowserHistory;
00004 import gugga.commands.CommandManager;
00005 import gugga.common.DeepLinksSerializer;
00009 class gugga.browser.BrowserHistoryManager 
00010 {
00011         private static var COMMAND_INDEX_KEY : String = "commandIndex";
00012         
00013         private static var mInstance : BrowserHistoryManager = null;
00014         
00015         private function BrowserHistoryManager()
00016         {
00017                 super();
00018                 
00019                 BrowserHistory.Instance.addEventListener("changed", 
00020                         Delegate.create(this, onBrowserHistoryChanged));
00021                 CommandManager.Instance.addEventListener("commandBufferContentChanged", 
00022                         Delegate.create(this, onCommandBufferContentChanged));  
00023         }
00024         
00025         public static function initialize() : Void
00026         {
00027                 if(available)
00028                 {
00029                         if(mInstance == null)
00030                         {
00031                                 mInstance = new BrowserHistoryManager();
00032                         }
00033                 }
00034         }
00035         
00036         public static function get available() : Boolean
00037         {
00038                 return BrowserHistory.available;
00039         }
00040         
00041         private function onBrowserHistoryChanged(ev) : Void 
00042         {
00043                 var commandIndex : Number = parseInt(String(ev.record[COMMAND_INDEX_KEY]), 10);
00044                 if(isNaN(commandIndex))
00045                 {
00046                         commandIndex = -1;
00047                 }
00048                 CommandManager.Instance.navigate(commandIndex);
00049         }
00050         
00057         private function onCommandBufferContentChanged(ev) : Void 
00058         {
00059                 var recordObject : Object = new Object();
00060                 
00061                 recordObject[COMMAND_INDEX_KEY] = ev.currentCommandIndex;
00062                 DeepLinksSerializer.serializeCurrentNavigationPath(recordObject);
00063                 
00064                 BrowserHistory.Instance.addHistory(recordObject);       
00065         }
00066 }

Generated on Fri May 11 17:12:42 2007 for GuggaFramework by  doxygen 1.5.2