Removing the "Add Bookmark" icon in the Bookmark widget

1531
2
01-31-2011 11:57 AM
JustinRiggs
New Contributor
My client wants his employees to be able to view bookmarks, but not add them. I've dug around the mxml files, but can't figure out how to remove the icon.

Thanks for the help.

Justin
Tags (2)
0 Kudos
2 Replies
MehulChoksey
Esri Contributor
Below is the BookMarksWidget.mxml minus the "Add Bookmark" functionality

<?xml version="1.0" encoding="utf-8"?>
<!--
     ////////////////////////////////////////////////////////////////////////////////
     //
     // Copyright (c) 2010 ESRI
     //
     // All rights reserved under the copyright laws of the United States.
     // You may freely redistribute and use this software, with or
     // without modification, provided you include the original copyright
     // and use restrictions.  See use restrictions in the file:
     // <install location>/License.txt
     //
     ////////////////////////////////////////////////////////////////////////////////
-->
<viewer:BaseWidget xmlns:fx="http://ns.adobe.com/mxml/2009"
                   xmlns:s="library://ns.adobe.com/flex/spark"
                   xmlns:mx="library://ns.adobe.com/flex/mx"
                   xmlns:viewer="com.esri.viewer.*"
                   xmlns:Bookmark="widgets.Bookmark.*"
                   x="600" y="300"
                   layout="absolute"
                   widgetConfigLoaded="init()">

    <viewer:states>
        <s:State name="bkmList"/>
    </viewer:states>
  
    <fx:Script>
        <![CDATA[
            import com.esri.ags.geometry.Extent;

            import mx.collections.ArrayList;
            import mx.controls.Alert;
            import mx.events.EffectEvent;

            import spark.components.supportClasses.ItemRenderer;
            import spark.core.NavigationUnit;

            private const BOOKMARKS:String = "bookmarks";

            private const ICON_URL:String = "assets/images/";

            //labels
            private var bookmarksLabel:String;
            private var addbookmarksLabel:String;
            [Bindable]
            private var addLabel:String;
            [Bindable]
            private var submitLabel:String;
            private var errorLabel:String;

            [Bindable]
            private var bookmarkAL:ArrayList; // used by BookmarkDataGroup
            private var bookmarkSO:SharedObject;
            private var bookmarkSOAL:ArrayList; // stored in bookmarkSO

            private var selectedindex:int = 0;

            private function init():void
            {
                if (configXML)
                {
                    //labels
                    bookmarksLabel = configXML.labels.bookmarkslabel || getDefaultString("bookmarksLabel");
                    addbookmarksLabel = configXML.labels.addbookmarkslabel || getDefaultString("addbookmarksLabel");
                    addLabel = configXML.labels.addlabel || getDefaultString("addLabel");
                    submitLabel = configXML.labels.submitlabel || getDefaultString("bookmarkSubmitLabel");
                    errorLabel = configXML.labels.errorlabel || getDefaultString("errorLabel");
                }

                wTemplate.addTitlebarButton(ICON_URL + "i_bookmark.png", bookmarksLabel, showBookmarksList);

                bookmarkAL = new ArrayList();
                try
                {
                    bookmarkSO = SharedObject.getLocal(BOOKMARKS);
                }
                catch (err:Error)
                {
                    trace(err);
                }
                loadBookmarks();
            }

            private function showBookmarksList():void
            {
                this.currentState = "bkmList";
                wTemplate.selectedTitlebarButtonIndex = 0; // used to indicate selected titlebar button when automatically switching state
            }

            private function loadBookmarks():void
            {
                if (configXML)
                {
                    var bookmarkList:XMLList = configXML..bookmark;
                    for (var i:int = 0; i < bookmarkList.length(); i++)
                    {
                        var name:String = bookmarkList.@name;
                        var icon:String = bookmarkList.@icon;
                        var extent:String = bookmarkList;
                        var extArray:Array = extent.split(" ");
                        var bookmark:Bookmark = new Bookmark();
                        bookmark.name = name;
                        bookmark.icon = icon;
                        bookmark.xmin = Number(extArray[0]);
                        bookmark.ymin = Number(extArray[1]);
                        bookmark.xmax = Number(extArray[2]);
                        bookmark.ymax = Number(extArray[3]);
                        bookmarkAL.addItem(bookmark);
                    }
                }
                if (bookmarkSO)
                {
                    bookmarkSOAL = bookmarkSO.data[BOOKMARKS] as ArrayList;
                    if (!bookmarkSOAL)
                    {
                        bookmarkSOAL = new ArrayList();
                        bookmarkSO.data[BOOKMARKS] = bookmarkSOAL;
                    }
                    else
                    {
                        bookmarkAL.addAll(bookmarkSOAL);
                    }
                }
            }

         
            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;
            }
        ]]>
    </fx:Script>

    <viewer:WidgetTemplate id="wTemplate"
                           width="300" height="300">
        <s:Group id="bkmList"
                 width="100%" height="100%"
                 visible="false"
                 visible.bkmList="true">
            <s:Scroller width="100%" height="100%">
                <Bookmark:BookmarkDataGroup id="bookmarkDG"
                                            bookmarkClick="showBookmark(event)"
                                            dataProvider="{bookmarkAL}">
                    <Bookmark:layout>
                        <s:VerticalLayout gap="2"
                                          horizontalAlign="justify"
                                          useVirtualLayout="true"/>
                    </Bookmark:layout>
                </Bookmark:BookmarkDataGroup>
            </s:Scroller>
        </s:Group>
    </viewer:WidgetTemplate>

</viewer:BaseWidget>

0 Kudos
JustinRiggs
New Contributor
Mehul,

Wow, that was fast. And it worked perfectly. Thanks for the great service!
0 Kudos