Reusable Accessible Mapping Platform

API Docs for: 3.0.0
Show:

File: src\js\RAMP\Modules\eventManager.js

  1. /*global define */
  2.  
  3. /**
  4. *
  5. *
  6. * @module UI
  7. */
  8.  
  9. /**
  10. * EventManager class.
  11. * A dictionary containing the names of all the events published and subscribed by this module.
  12. * Users should publish and subscribe to events of this module using this dictionary instead of
  13. * typing the name of the event.
  14. *
  15. * @class EventManager
  16. * @static
  17. */
  18.  
  19. define([],
  20. function () {
  21. "use strict";
  22. return {
  23. FilterManager: {
  24. /**
  25. * Published whenever the "eye" button for a layer is clicked
  26. *
  27. * @event FilterManager.LAYER_VISIBILITY_TOGGLED
  28. * @for FilterManager
  29. * @param event {Object}
  30. * @param event.checked {boolean} true if the "eye" button is checked, false otherwise
  31. * @param event.node {Object} the input dom node that represents the checkbox
  32. */
  33. LAYER_VISIBILITY_TOGGLED: "filterManager/layer-visibility-toggled",
  34.  
  35. /**
  36. * Published each time the transparency of a layer is modified.
  37. *
  38. * @event FilterManager.LAYER_TRANSPARENCY_CHANGED
  39. * @for FilterManager
  40. * @param event {Object}
  41. * @param event.layerId {String} the id of the layer
  42. * @param event.value {int} the value of the slider
  43. */
  44. LAYER_TRANSPARENCY_CHANGED: "filterManager/layer-transparency-changed",
  45.  
  46. /**
  47. * Published whenever the "box" button for a layer is clicked
  48. *
  49. * @event FilterManager.BOX_VISIBILITY_TOGGLED
  50. * @for FilterManager
  51. * @param event {Object}
  52. * @param event.checked {Boolean} true if the "box" button is checked, false otherwise
  53. * @param event.node {Object} the input dom node that represents the checkbox
  54. */
  55. BOX_VISIBILITY_TOGGLED: "filterManager/box-visibility-toggled",
  56.  
  57. /**
  58. * Published whenever the layer list is rearranged
  59. *
  60. * @event FilterManager.SELECTION_CHANGED
  61. * @for FilterManager
  62. * @param event {Object}
  63. * @param event.id {String} the layer Id
  64. * @param event.index {Integer} index of the layer that moved. index is relative to the control,
  65. * not the layer stack in the map
  66. */
  67. SELECTION_CHANGED: "filtermanager/selection-changed",
  68.  
  69. /**
  70. * Published after the ui for the filter manager finishes initializing.
  71. *
  72. * @event FilterManager.UI_COMPLETE
  73. * @for FilterManager
  74. */
  75. UI_COMPLETE: "filterManager/UIComplete",
  76.  
  77. // SUBSCRIBED EVENTS
  78. /**
  79. * Tells the filter manager to toggle a layer on or off
  80. *
  81. * @event FilterManager.TOGGLE_LAYER_VISIBILITY [subscribed]
  82. * @for FilterManager
  83. * @param event {Object}
  84. * @param event.layerId {String} the name of the layer to toggle
  85. * @param event.state {boolean} true if the layer should be visible, false otherwise
  86. */
  87. TOGGLE_LAYER_VISIBILITY: "filterManager/toggle-layer-visibility",
  88.  
  89. /**
  90. * Tells the filter manager to toggle a layer on or off
  91. *
  92. * @event FilterManager.TOGGLE_BOX_VISIBILITY [subscribed]
  93. * @for FilterManager
  94. * @param event {Object}
  95. * @param event.layerId {String} the name of the layer to toggle
  96. * @param event.state {boolean} true if the layer should be visible, false otherwise
  97. */
  98. TOGGLE_BOX_VISIBILITY: "filterManager/toggle-box-visibility"
  99. },
  100.  
  101. GUI: {
  102. /**
  103. * Fires whenever the extended grid button is clicked
  104. *
  105. * @event GUI.DATAGRID_EXPAND
  106. * @for GUI
  107. */
  108. DATAGRID_EXPAND: "gui/datagrid-expand",
  109.  
  110. /**
  111. * Fires whenever a tab has been deselected in the main panel
  112. *
  113. * @event gui.TAB_DESELECTED
  114. * @for GUI
  115. * @param {Object} evt the event Object
  116. * @param {String} evt.id the id of the deselected tab
  117. * @param {String} evt.tabName the name of the deselected tab
  118. */
  119. TAB_DESELECTED: "gui/tab-deselected",
  120.  
  121. /**
  122. * Fires whenever a tab has been selected in the main panel
  123. *
  124. * @event gui.TAB_SELECTED
  125. * @for GUI
  126. * @param {Object} evt the event Object
  127. * @param {String} evt.id the id of the selected tab
  128. * @param {String} evt.tabName the name of the selected tab
  129. */
  130. TAB_SELECTED: "gui/tab-selected",
  131.  
  132. /**
  133. * Published each time the subpanel opens/closes
  134. *
  135. * @event gui.SUBPANEL_CHANGE
  136. * @for GUI
  137. * @param {Object} evt the event Object
  138. * @param {boolean} evt.visible true if the subpanel is opened, false otherwise
  139. * @param {String} evt.origin
  140. * @param {JObject} evt.container jQuery reference to the sub-panel container
  141. */
  142. SUBPANEL_CHANGE: "gui/subpanel-change",
  143.  
  144. /**
  145. * Published each time the panel opens/closes
  146. *
  147. * @event gui.PANEL_CHANGE
  148. * @for GUI
  149. * @param {Object} evt the event Object
  150. * @param {boolean} evt.visible true if the panel is opened, false otherwise
  151. */
  152. PANEL_CHANGE: "gui/panel-change",
  153.  
  154. /**
  155. * Published each time the help panel opens or closes.
  156. *
  157. * @event gui.HELP_PANEL_CHANGE
  158. * @for GUI
  159. * @param evt {Object} the event Object
  160. * @param evt.visible {boolean} true if the help panel is opened, false if the help panel is closed
  161. */
  162. HELP_PANEL_CHANGE: "gui/help-panel-change",
  163.  
  164. /**
  165. * Published each time fullscreen is toggled
  166. *
  167. * @event gui.FULLSCREEN_CHANGE
  168. * @for GUI
  169. * @param evt {Object} the event Object
  170. * @param evt.fullscreen {boolean} true if fullscreen is on, false if fullscreen is off.
  171. */
  172. FULLSCREEN_CHANGE: "gui/fullscreen-change",
  173.  
  174. /**
  175. * Published each time the layout changes.
  176. *
  177. * @event gui.LAYOUT_CHANGE
  178. * @for GUI
  179. */
  180. LAYOUT_CHANGE: "gui/layout-change",
  181.  
  182. // SUBSCRIBED EVENTS
  183. /**
  184. * Toggles the main panel (i.e. collapses it if was expanded, and expands it if it was collapsed)
  185. *
  186. * @event gui.PANEL_TOGGLE [subscribed]
  187. * @for GUI
  188. */
  189. PANEL_TOGGLE: "gui/panel-toggle",
  190.  
  191. /**
  192. * Opens the subpanel
  193. *
  194. * @event gui.SUBPANEL_OPEN [subscribed]
  195. * @for GUI
  196. * @param {SubPanelSettings} attr Settings for the SubPanel
  197. */
  198. SUBPANEL_OPEN: "gui/subpanel-open",
  199.  
  200. /**
  201. * Closes the sub panel
  202. *
  203. * @event gui.SUBPANEL_CLOSE [subscribed]
  204. * @for GUI
  205. * @param origin {String} the name of the module that requested to close the subPanel (e.g. "filterManager")
  206. */
  207. SUBPANEL_CLOSE: "gui/subpanel-close",
  208.  
  209. /**
  210. * Moves the panel up DOM hierarchy next to the sidePanel, or to other target
  211. *
  212. * @event gui.SUBPANEL_DOCK [subscribed]
  213. * @for GUI
  214. * @param origin {String} the name of the module that requested to dock the subPanel (e.g. "filterManager")
  215. * @param target {jNode} where to move the subPanel; if not supplied; sidePanel is used
  216. */
  217. SUBPANEL_DOCK: "gui/subpanel-dock",
  218.  
  219. /**
  220. * Attaches subPanel node to the module that calls it in the DOM hierarchy
  221. *
  222. * @event gui.SUBPANEL_CAPTURE [subscribed]
  223. * @for GUI
  224. * @param consumeOrigin {}
  225. */
  226. SUBPANEL_CAPTURE: "gui/subpanel-capture",
  227.  
  228. /**
  229. * Toggles the fullscreen
  230. *
  231. * @event gui.TOGGLE_FULLSCREEN [subscribed]
  232. * @for GUI
  233. * @param {Object} evt the event Object
  234. * @param {boolean} evt.expand true if we should go into fullscreen mode, false if we wish to
  235. * collapse to normal mode. If undefined, it toggles the fullscreen (i.e. make it fullscreen
  236. * if it was not, make it collapse to regard mode if it was fullscreen).
  237. */
  238. TOGGLE_FULLSCREEN: "gui/toggle-fullscreen",
  239.  
  240. /**
  241. * Published each time the Add Layer panel opens or closes.
  242. *
  243. * @event gui/add-layer-panel-change
  244. * @for GUI
  245. * @param evt {Object} the event Object
  246. * @param evt.visible {boolean} true if the AddLayer panel is opened, false if the AddLayer panel is closed
  247. */
  248. ADD_LAYER_PANEL_CHANGE: "gui/add-layer-panel-change",
  249.  
  250. /**
  251. * Published each time a toolbar section / widget is opened. Used to close other toolbar sections / widgets.
  252. *
  253. * @event gui/toolbar-section-open
  254. * @for GUI
  255. * @param evt {Object} the event Object
  256. * @param evt.id {String} id of the source section / widget
  257. */
  258. TOOLBAR_SECTION_OPEN: "gui/toolbar-section-open",
  259.  
  260. /**
  261. * Published each time a toolbar section / widget is closed.
  262. *
  263. * @event gui/toolbar-section-close
  264. * @for GUI
  265. * @param evt {Object} the event Object
  266. * @param evt.id {String} id of the source section / widget
  267. */
  268. TOOLBAR_SECTION_CLOSE: "gui/toolbar-section-close",
  269.  
  270. /**
  271. * Published when the gui module has completely finished rendering the UI.
  272. * The bootstrapper should wait for this event to fire before initializing map.
  273. */
  274. UPDATE_COMPLETE: "gui/update-complete"
  275. },
  276.  
  277. FeatureHighlighter: {
  278. /**
  279. * Permanently highlights a given feature on the map; display an interactive tooltip for this feature; reduces opacity of the `graphicGroup` layers.
  280. * Even when the user moves the cursor away, the feature stays highlighted; tooltip stays put.
  281. * Only one feature can be highlighted like this at a time.
  282. *
  283. * @event featureHighlighter.HIGHLIGHT_SHOW [subscribed]
  284. * @for FeatureHighlighter
  285. * @param {Object} eventAttr ESRI feature click even attributes
  286. */
  287. HIGHLIGHT_SHOW: "highlighter/highlight-show",
  288.  
  289. /**
  290. * Dehighlights a currently highlighted feature on the map and restores opacity of the rest of the layers;
  291. * hides the interactive tooltip.
  292. *
  293. * @event featureHighlighter.HIGHLIGHT_HIDE [subscribed]
  294. * @for FeatureHighlighter
  295. */
  296. HIGHLIGHT_HIDE: "highlighter/highlight-hide",
  297.  
  298. /**
  299. * Temporarilly highlights (hoverlights) a given feature on the map. Intended to be dehighlighted when the user moves the cursor away; to do that, publish HOVERLIGHT_HIDE event.
  300. * Effect is only visible when another feature is already permanently highlighted.
  301. * Only one feature can be highlighted like this at a time.
  302. *
  303. * @event featureHighlighter.HOVERLIGHT_SHOW [subscribed]
  304. * @for FeatureHighlighter
  305. * @param {Object} eventAttr ESRI feature click even attributes
  306. */
  307. HOVERLIGHT_SHOW: "highlighter/hoverlight-show",
  308.  
  309. /**
  310. * Dehighlights a currently highlighted (hoverlighted) feature on the map without restoring opacity of the rest of the layers;
  311. *
  312. * @event featureHighlighter.HOVERLIGHT_HIDE [subscribed]
  313. * @for FeatureHighlighter
  314. */
  315. HOVERLIGHT_HIDE: "highlighter/hoverlight-hide",
  316.  
  317. /**
  318. * Temporarilly highlights (zoomlightes) a given feature on the map.
  319. * Intended to be dehighlighted when the user makes an action like panning or zooming the map, publish ZOOMLIGHT_HIDE event.
  320. * Displays a temporary tooltip for this feature;
  321. * Only one feature can be highlighted (zoomlighted) like this at a time.
  322. *
  323. * @event featureHighlighter.ZOOMLIGHT_SHOW [subscribed]
  324. * @for FeatureHighlighter
  325. * @param {Object} eventAttr ESRI feature click even attributes
  326. */
  327. ZOOMLIGHT_SHOW: "highlighter/zoomlight-show",
  328.  
  329. /**
  330. * Dehighlights a currently highlighted (zoomlighted) feature on the map;
  331. * Removes the tooltip.
  332. * Restores the opacity of the graphicGroup layers if no feature is highlighted at present.
  333. *
  334. * @event featureHighlighter.ZOOMLIGHT_HIDE [subscribed]
  335. * @for FeatureHighlighter
  336. */
  337. ZOOMLIGHT_HIDE: "highlighter/zoomlight-hide"
  338. },
  339.  
  340. Maptips: {
  341. /**
  342. * Displays a simple, temporary maptip, positioning it over the `target` jObject; the content of the maptip is build from the
  343. * contents of the `graphic` object and the mapTip template specified in the config object.
  344. *
  345. * @event maptips.SHOW [subscribed]
  346. * @for Maptips
  347. * @param {jObject} target a node/svg object the user hovered over
  348. * @param graphic {Object} ESRI graphic object belonging to the target
  349. */
  350. SHOW: "maptips/show",
  351.  
  352. /**
  353. * Displays an permanent, interactive maptip with a close button, positioning it over the `target` jObject; the content of the maptip is build from the
  354. * contents of the `graphic` object and the mapTip template specified in the config object.
  355. * The maptip will not be shown if it's covered by the open {{#crossLink "SubPanel"}}{{/crossLink}}.
  356. *
  357. * @event maptips.SHOW_INTERACTIVE [subscribed]
  358. * @param {jObject} target a node/svg object the user hovered over
  359. * @param graphic {Object} ESRI graphic object belonging to the target
  360. */
  361. SHOW_INTERACTIVE: "maptips/showInteractive",
  362.  
  363. /**
  364. * Is fired when an interactive maptip is shown and {{#crossLink "Maptip"}}{{/crossLink}} detects if the maptip is hidden behind the
  365. * {{#crossLink "SubPanel"}}{{/crossLink}} and extent change is needed. Sets the `scroll` payload attribute to true if the extent change is not needed
  366. * and the {{#crossLink "Datagrid"}}{{/crossLink}} should scroll to the currently highlighted row.
  367. *
  368. * @event maptips.EXTENT_CHANGE [subscribed]
  369. * @param {Boolean} scroll indicates if the {{#crossLink "Datagrid"}}{{/crossLink}} should scroll to the currently highlighted row
  370. */
  371. EXTENT_CHANGE: "maptip/extent-change",
  372.  
  373. /**
  374. * Repositions the interactive tooltip that is already displayed when the user pans or zooms the map, or the map is otherwise
  375. * adjusted. If the tooltip is hidden from the view by the {{#crossLink "SubPanel"}}{{/crossLink}} or the edge of the map container,
  376. * it is hidden from the page.
  377. *
  378. * @event maptips.REPOSITION_INTERACTIVE [subscribed]
  379. * @for Maptips
  380. * @param {Number} offset New tooltip offset relative to the shape it's attached too; when zooming, the shape changes its size and the
  381. * offset needs to be recalculated to keep the tooltip in relative center
  382. */
  383. REPOSITION_INTERACTIVE: "maptips/repositionInteractive"
  384. },
  385.  
  386. Map: {
  387. // NOTE: Map events fall into two categories. There are native RAMP events and others which republish events from the ESRI API.
  388. // Events which are native to RAMP are prefixed with rampMap/ while ESRI republished events should be prefixed with map/
  389.  
  390. /**
  391. * Indicates that all the map layers are loaded.
  392. *
  393. * @event RampMap.ALL_LAYERS_LOADED
  394. * @for RampMap
  395. *
  396. */
  397. ALL_LAYERS_LOADED: "rampMap/all-layers-loaded",
  398.  
  399. /**
  400. * Centers the map at the given point.
  401. *
  402. * @event RampMap.CENTER_AT [subscribed]
  403. * @for RampMap
  404. * @param event {Object}
  405. * @param event.x {number}
  406. * @param event.y {number}
  407. * @param event.spatialReference {Object}
  408. * @param event.spatialReference.wkid {Integer}
  409. */
  410. CENTER_AT: "rampMap/center-at",
  411.  
  412. /**
  413. * Center and zoom the map to the given point.
  414. *
  415. * @type {String}
  416. * @event RampMap.CENTER_AND_ZOOM [subscribed]
  417. * @for RampMap
  418. * @param event {Object}
  419. * @param event.graphic {esri/graphic} the graphic object to center the map on
  420. * @param event.level {Integer} the zoom level
  421. * @param event.callback {function} the function to call after the center and zoom action is complete
  422. */
  423. CENTER_AND_ZOOM: "rampMap/center-and-zoom",
  424.  
  425. /**
  426. * Changes the current extent of the map.
  427. *
  428. * @event RampMap.SET_EXTENT [subscribed]
  429. * @for RampMap
  430. * @param event {Object}
  431. * @param event.extent.xmin {number}
  432. * @param event.extent.ymin {number}
  433. * @param event.extent.xmax {number}
  434. * @param event.extent.ymax {number}
  435. * @param event.callback {function} the function to call after the extent change is complete
  436. */
  437. SET_EXTENT: "rampMap/set-extent",
  438.  
  439. /**
  440. * Republishes a standard ESRI map click event 'click'.
  441. *
  442. * @event RampMap.CLICK
  443. * @for RampMap
  444. */
  445. CLICK: "map/click",
  446.  
  447. /**
  448. * Fires when the reorder of the layers in the layer managers has completed finished.
  449. *
  450. * @event RampMap.REORDER_END
  451. * @for RampMap
  452. */
  453. REORDER_END: "map/reorder-end",
  454.  
  455. /**
  456. * Republishes a standard ESRI map compnent event `update-end`.
  457. *
  458. * @event RampMap.UPDATE_END
  459. * @for RampMap
  460. */
  461. UPDATE_END: "map/update-end",
  462.  
  463. /**
  464. * Republishes a standard ESRI map compnent event `extent-change`.
  465. *
  466. * @event RampMap.EXTENT_CHANGE
  467. * @for RampMap
  468. */
  469. EXTENT_CHANGE: "map/extent-change",
  470.  
  471. /**
  472. * Republishes a standard ESRI map compnent event `zoom-start`.
  473. *
  474. * @event RampMap.ZOOM_START
  475. * @for RampMap
  476. */
  477. ZOOM_START: "map/zoom-start",
  478.  
  479. /**
  480. * Republishes a standard ESRI map compnent event `zoom-end`.
  481. *
  482. * @event RampMap.ZOOM_END
  483. * @for RampMap
  484. */
  485. ZOOM_END: "map/zoom-end",
  486.  
  487. /**
  488. * Republishes a standard ESRI map compnent event `pan-start`.
  489. *
  490. * @event RampMap.PAN_START
  491. * @for RampMap
  492. */
  493. PAN_START: "map/pan-start",
  494.  
  495. /**
  496. * Republishes a standard ESRI map compnent event `pan-end`.
  497. *
  498. * @event RampMap.PAN_END
  499. * @for RampMap
  500. */
  501. PAN_END: "map/pan-end",
  502.  
  503. /**
  504. * Fires when a layer is added by a user
  505. *
  506. * @event RampMap.ADD_LAYER
  507. * @for RampMap
  508. */
  509. ADD_LAYER: "map/add-layer",
  510.  
  511. /**
  512. * Fires when a layer added by a user is ready to view
  513. *
  514. * @event RampMap.ADD_LAYER_READY
  515. * @for RampMap
  516. */
  517. ADD_LAYER_READY: "map/add-layer-ready"
  518. },
  519.  
  520. BasemapSelector: {
  521. /**
  522. * Fires whenever the basemap changes
  523. *
  524. * @event baseMapSelector/basemap-changed
  525. * @for BaseMapSelector
  526. * @param {Object} evt the event object
  527. * @param {String} evt.id the id of the selected basemap
  528. * @param {String} evt.title the title of the selected basemap
  529. * @param {String} evt.cssStyle
  530. */
  531. BASEMAP_CHANGED: "basemapSelector/basemap-changed",
  532.  
  533. /**
  534. * Fires after the basemap selector finished updating its UI (on page load)
  535. *
  536. * @event baseMapSelector/UIComplete
  537. * @for BaseMapSelector
  538. * @param {Object} evt the event object
  539. * @param {String} evt.title the title of the basemap that is selected
  540. */
  541. UI_COMPLETE: "basemapSelector/UIComplete",
  542.  
  543. // SUBSCRIBED EVENTS
  544. /**
  545. * Changes the selected basemap
  546. *
  547. * @event baseMapSelector/toggle [subscribed]
  548. * @for BaseMapSelector
  549. * @param {Object} evt the event object
  550. * @param {String} evt.id the id of the basemap that is to be selected
  551. */
  552. TOGGLE: "basemapSelector/toggle"
  553. },
  554.  
  555. Datagrid: {
  556. /**
  557. * Applies a spatial filter to the datagrid (i.e. only visible points in the current
  558. * extent will be displayed in the datagrid)
  559. *
  560. * @event datagrid.APPLY_EXTENT_FILTER [subscribed]
  561. * @for Datagrid
  562. */
  563. APPLY_EXTENT_FILTER: "datagrid/applyExtentFilter",
  564.  
  565. /**
  566. * Fires when the table has finished drawing
  567. *
  568. * @event datagrid.DRAW_COMPLETE
  569. */
  570. DRAW_COMPLETE: "datagrid/draw-complete",
  571.  
  572. /**
  573. * Fires when the extent-filter has finished updating
  574. *
  575. * @event datagrid.EXTENT_FILTER_END
  576. */
  577. EXTENT_FILTER_END: "datagrid/extent-filter-end",
  578.  
  579. /**
  580. * Highlights the row corresponding to the given `graphic` object of the selected feature.
  581. *
  582. * @event datagrid.HIGHLIGHTROW_SHOW
  583. * @param event {Object}
  584. * @param event.graphic {Object} ESRI graphic object corresponding to the selected feature
  585. */
  586. HIGHLIGHTROW_SHOW: "datagrid/highlightrow-show",
  587.  
  588. /**
  589. * Dehighlights the currently highlighted row.
  590. *
  591. * @event datagrid.HIGHLIGHTROW_HIDE
  592. */
  593. HIGHLIGHTROW_HIDE: "datagrid/highlightrow-hide",
  594. /**
  595. * Zoomlights the row corresponding to the given `graphic` object of the zoomed to feature.
  596. *
  597. * @event datagrid.ZOOMLIGHTROW_SHOW
  598. * @param event {Object}
  599. * @param event.graphic {Object} ESRI graphic object corresponding to the zoomed to feature
  600. */
  601. ZOOMLIGHTROW_SHOW: "datagrid/zoomlightrow-show",
  602.  
  603. /**
  604. * Dehighlights the currently zoomlighted row.
  605. *
  606. * @event datagrid.ZOOMLIGHTROW_HIDE
  607. *
  608. * @for Datagrid
  609. */
  610. ZOOMLIGHTROW_HIDE: "datagrid/zoomlightrow-hide"
  611. },
  612.  
  613. Navigation: {
  614. /**
  615. * Published whenever the user clicks on the pan buttons.
  616. *
  617. * @event Navigation.PAN
  618. */
  619. PAN: "navigation/pan",
  620.  
  621. /**
  622. * Published whenever the user tries to zoom using the arrow buttons.
  623. *
  624. * @event Navigation.ZOOM_STEP
  625. */
  626. ZOOM_STEP: "navigation/zoom-step",
  627.  
  628. /**
  629. * Published whenever the user tries to zoom using the slider.
  630. *
  631. * @event Navigation.ZOOM
  632. */
  633. ZOOM: "navigation/zoom",
  634.  
  635. /**
  636. * Published whenever the user clicks on the full extent button in the
  637. * navigation widget.
  638. *
  639. * @event Navigation.FULL_EXTENT
  640. */
  641. FULL_EXTENT: "navigation/full-extent"
  642. },
  643.  
  644. BookmarkLink: {
  645. /**
  646. * Published whenever the user clicks on the get link button in the
  647. * map toolbar.
  648. *
  649. * @event bookmark.GETLINK_PANEL_CHANGED
  650. */
  651. GETLINK_PANEL_CHANGED: "bookmark/getlinkpanel-changed"
  652. },
  653.  
  654. Advanced: {
  655. /**
  656. * Published whenever the user clicks on the get link button in the
  657. * map toolbar.
  658. *
  659. * @event advanced.ADVANCED_PANEL_CHANGED
  660. */
  661. ADVANCED_PANEL_CHANGED: "advanced/advancedpanel-changed"
  662. }
  663. };
  664. });
  665.