BookmarkLink Class
BookmarkLink class.
Steps for making the bookmark link update with an event
- Subscribe to the event of interest (e.g. map extent-change)
Create an object containing fields that will contain the necessary information for reconstructing the map to the same state. (e.g. for map extent-change, a useful object might be one that represents the current extent of the map:
{ xmin : 123, xmax : 456, ymin : 789, ymax : 000}).
IMPORTANT: the object must be serializable since it will be added to the URL and should serialize to a reasonable length String. If the fields contain non-primatives, e.g. array, object, one must manually serialize the field first. Also only use anonymous objects with custom fields, do not use class objects (e.g. use an anonymous { } object to store map extent instead of ESRI's map Esri/geometry/Extent object, since it will contain other fields and methods that will also be serialized).
Call updateURL, passing it a name (e.g. "newExtent") and the object (a name is required for efficiency, this way the URL will only need to serialize and update the given object instead of all objects).
Item Index
Properties
Attributes
Methods
addparameter
-
paramKey
-
paramObj
Update the parameter dictionary with the new values for the parameter. If paramObj is set to null, essentially removes the given paramKey from the URL.
init
()
private
Initiates additional UI components of the widget, setting listeners and other stuff.
init
-
homePage
Instantiates a BookmarkLink. Subscribes to all the events that causes the bookmark link to update (e.g. map extent change or feature layer visibility change).
Parameters:
-
homePage
Stringa string denoting the name of the homePage (e.g. usually "Default.aspx" or "index.html")
newPopup
-
popupAttr
Create a new PopupBase object from the settings provided.
Parameters:
-
popupAttr
PopupBaseSettingsPopup settings
Returns:
popup
subscribeAndUpdate
()
private
Subscribe to map state changes so the URL displayed can be changed accordingly. SUBSCRIBES TO: map "extent-change" Updates URL when map extent changes
EventManager.GUI.FULLSCREEN_CHANGE Updates URL when map goes into fullscreen mode
EventManager.GUI.TAB_SELECTED Updates URL when tabs are selected
EventManager.GUI.PANEL_CHANGE Updates URL when panel opens/closes
EventManager.BasemapSelector.BASEMAP_CHANGED Updates URL when basemap changed
- ================================================================
Subscribe to updates
To include more information into the query string, do not get the information directly from the object/module of interest, but rather make it publish an event with data to include and subscribe to this event here.
toggleShortLinkMode
-
value
Toggle the short/long link mode and change the label accordingly
Parameters:
-
value
Object
updateMap
()
Publish events based on the query parameter (if any) in the URL.
updateURL
()
private
Updates the link displayed in the textbox. This function should be called whenever one of the objects that are in the URL query is modified.
Properties
anchors
Object
private
A dictionary mapping names (String) to anchors (String) used at the end of the URL.
parameters
Object
private
A dictionary mapping names (String) to query parameter (String) of the URL. The query parameter is what ends up in the url. The key can be any arbitrary name (best to name them to describe the query parameter).
visibleBoxes
Object
private
A set containing the names of all the layers that currently have their bounding boxes toggled on (the key is the name and the value is arbitrary, currently set to "true").
visibleLayers
Object
private
A dictionary mapping layer id (String) to layer objects (FeatureLayer) that are currently visible on the map.