Messages

The Dekho client will accept the following messages. The messages are delivered to inform the client that its session state has been changed on the server, possibly by an external process.

A new map service has been selected:

map?sessionid=sessionid

The session state has changed (extent, layers, selection, etc); the map should be redrawn:

refresh?sessionid=sessionid

Allow Dekho to continue initialization after being started with a /pause:

continue?sessionid=sessionid

Zoom the map:

would drive the map to (xcoordinate, ycoordinate), with dist specifying the visible amount to the edge of the map, ie, the space around the point that will be visible.

zoomxy?x=xcoordinate&y=ycoordinate&distance=dist&sessionid=sessionid

Get selection using an integration query:

would pass the Dekho selection through the integration query defined for appname and layername (direction Dekho to External System). The resulting ids are reported back via a call to the dekhoResponse external interface function (same as dekhoBroadcast, but different function).

getselectionforexternal?externalapplication=appname&externallayer=layername&sessionid=sessionid

Set selection using an integration query and some external id values:

would pass the ids in idlist  through the integration query defined for appname and layername (direction External System to Dekho). The resulting features are selected and zoomed to.

setselectionfromexternal?externalapplication=appname&externallayer=layername&externalids=idlist&sessionid=sessionid

A tool should be made active:

tool?name=toolname&sessionid=sessionid

Alert the user with a popup:

where type is info or error which defines the icon used on the popup, and text is displayed on the popup.

alert?type=type&text=text

Delete the current session from the server. This method should be called every time a client has finished working with a session. Dekho does this by default* but any custom wrappers (ie deployments that do not use the dekho.jsp page) should pass this message to Dekho so the server can be cleaned up. It is not required but can lead to unexpected results with integration when the server thinks a session is still valid:

*The default wrapper page (dekho.jsp) has a JavaScript event listener for onbeforeunload. However this is a non-standard event and therefore not all browsers support it. Dekho only supports IE, FF and Chrome which do support this browser event.

deletesession?sessionid=sessionid

The messages may be delivered via the ExternalInterface connector, or via the server using web method SessionService.sendCommandToClient(). To deliver via the ExternalInterface connector, call the dekhoRequest function on the Flex client.

  var dekhoClient;

  if ( navigator.appName.indexOf( "Microsoft" ) != -1 ) {

    dekhoClient = window["dekho"];

  } else {

    dekhoClient = window.document.dekho;

  }

  dekhoClient.dekhoRequest("map?sessionid=123456");

 


Communication with Peer Applications