// mjk - Enhanced Bookmark /** * Parses bookmarks from the default widget config file or * a file loaded by the user. In the case of a user created * config file set isUserCreated to true so that they behave the * same as bookmarks added at run time. **/ private function parseBookmarkConfig(config:XML, isUserCreated:Boolean):void { if(config) { var bookmarkList:XMLList = config..bookmark; var length:int = bookmarkList.length(); if(length < 1) { Alert.show("Nenhuma marcação válida encontrada!", wTemplate.widgetTitle); return; } for (var i:int = 0; i < length; i++) { // mjk- Enhanced Bookmark var comment:String = bookmarkList.@comment; var name:String = bookmarkList.@name; var extent:String = bookmarkList; var extArray:Array = extent.split(" "); var bookmark:Bookmark = new Bookmark(); //mjk - Enhanced Bookmark bookmark.comment = comment; bookmark.userCreated = isUserCreated; bookmark.name = name; bookmark.xmin = Number(extArray[0]); bookmark.ymin = Number(extArray[1]); bookmark.xmax = Number(extArray[2]); bookmark.ymax = Number(extArray[3]); bookmarkAL.addItem(bookmark); // mjk - Enhanced Bookmark // Add user created bookmarks to bookmarkSOAL if(isUserCreated) { bookmarkSOAL.addItem(bookmark); } } } } private function addBookmark():void { var name:String = txtName.text; if (name) { var ext:Extent = map.extent; var bookmark:Bookmark = new Bookmark(); bookmark.name = name; // mjk - Enhanced Bookmark bookmark.comment = txtAreaComment.text; bookmark.userCreated = true; bookmark.xmin = Number(ext.xmin.toFixed(4)); bookmark.ymin = Number(ext.ymin.toFixed(4)); bookmark.xmax = Number(ext.xmax.toFixed(4)); bookmark.ymax = Number(ext.ymax.toFixed(4)); bookmarkAL.addItem(bookmark); bookmarkSOAL.addItem(bookmark); saveBookmarks(); txtName.text = ""; // mjk - Enhanced Bookmark txtAreaComment.text = ""; bkmList.addEventListener(EffectEvent.EFFECT_END, bkmList_effectEndHandler); showBookmarksList(); } else { Alert.show(errorLabel, wTemplate.widgetTitle); } } private function bkmList_effectEndHandler(event:EffectEvent):void { bkmList.removeEventListener(EffectEvent.EFFECT_END, bkmList_effectEndHandler); // scroll to the bottom bookmarkDG.verticalScrollPosition += bookmarkDG.layout.getVerticalScrollPositionDelta(NavigationUnit.END); } private function removeBookmark(event:Event):void { var bookmark:Bookmark = ItemRenderer(event.target).data as Bookmark; bookmarkAL.removeItem(bookmark); bookmarkSOAL.removeItem(bookmark); saveBookmarks(); } private function saveBookmarks():void { if (bookmarkSO) { try { bookmarkSO.flush(); } catch (err:Error) { trace(err); } } } private function showBookmark(event:Event):void { var bookmark:Bookmark = ItemRenderer(event.target).data as Bookmark; var ext:Extent = new Extent(bookmark.xmin, bookmark.ymin, bookmark.xmax, bookmark.ymax); map.extent = ext; } // mjk - Enhanced Bookmark /** * Saves user created bookmarks to a file. * The xml schema is the same as the widgets. **/ private function saveBooksMarksToFile():void { if(bookmarkSOAL) { var xml:XML = createBookmarksXML(); if(!xml) return; fileReference = new FileReference(); fileReference.save(xml, "LocaisWebSIG.txt"); } } Solved! Go to Solution.