com.esri.arcgis.display
Class IDynamicMapEventsProxy

java.lang.Object
  extended by com.esri.arcgis.interop.Dispatch
      extended by com.esri.arcgis.display.IDynamicMapEventsProxy
All Implemented Interfaces:
IDynamicMapEvents, Externalizable, Serializable, EventListener

public class IDynamicMapEventsProxy
extends com.esri.arcgis.interop.Dispatch
implements IDynamicMapEvents, Serializable

Provides access to events that occur when the state of the dynamic display changes.

Remarks

The Dynamic Map is an active Display, therefore the dynamic Map will get redrawn in events like - dirty dynamic layer, visible bounds change, refresh method call, new tile loaded, etc. In any of these cases, the BeforeDynamicDraw and AfterDynamicDraw events will get fired after all of the Layers (including Graphic Layers) will get drawn.

The difference between the BeforeDynamicDraw\AfterDynamicDraw and the DynamicMapStarted\DynamicMapFinished events, is that the BeforeDynamicDraw\AfterDynamicDraw Events will get fired only when the Display (Dynamic Map) needs to be redrawn, while the DynamicMapStarted\DynamicMapFinished events will get fired on every Dynamic Map heart beat (while the Dynamic Map is Enabled), even when the display is not redrawn.

The BeforeDynamicDraw\AfterDynamicDraw events are getting fired with two different phases (enum esriDynamicMapDrawPhase). Each phase has a different meaning and usage:

  1. esriDMDPDynamicLayers – This is getting fired on each dynamic cycle that the Dynamic Map re-renders the scene. The event is fired just before the first layer is rendered, and AfterDynamicDraw event is fired just after the last layer (including any Graphic Layer) is rendered.
    In this context, there is an active OpenGL Rendering context (with a preset rendering volume, viewport, etc).
    Use this context to plug-in any custom dynamic drawings with the DynamicDisplay API as well as with the OpenGL API. This context can be useful in order to draw dynamic elements behind or on top of the Layers and Graphics, which do not need to be associated with a layer.
  2. esriDMDPLayers – When the Dynamic Map is sensing that it needs to fetch tiles in order to be able to render the scene, the BeforeDynamicDraw will get fired. When the last missing tile is available and rendered the AfterDynamicDraw event will get fired.
    Note: It is not valid to use the DynamicDisplay API, nor the OpenGL API in this context, since the OpenGL Rendering Context is not fully setup.
    Use this context if you need to monitor when the Dynamic Map is still in a process of fetching tiles for rendering the display.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

See Also:
Serialized Form

Field Summary
 boolean noncastable
           
 
Fields inherited from class com.esri.arcgis.interop.Dispatch
DISPATCH_METHOD, DISPATCH_PROPERTYGET, DISPATCH_PROPERTYPUT, DISPATCH_PROPERTYPUTREF, objRef
 
Constructor Summary
  IDynamicMapEventsProxy()
           
  IDynamicMapEventsProxy(Object obj)
           
protected IDynamicMapEventsProxy(Object obj, String iid)
           
 
Method Summary
 void addListener(String iidStr, Object theListener, Object theSource)
           
 void afterDynamicDraw(IDynamicMapEventsAfterDynamicDrawEvent theEvent)
          Fired after the specified phase is drawn.
 void beforeDynamicDraw(IDynamicMapEventsBeforeDynamicDrawEvent theEvent)
          Fired before the specified phase is drawn.
 void dynamicMapFinished(IDynamicMapEventsDynamicMapFinishedEvent theEvent)
          Fired when the dynamic map finishes.
 void dynamicMapStarted(IDynamicMapEventsDynamicMapStartedEvent theEvent)
          Fired when the dynamic map starts.
 void removeListener(String iidStr, Object theListener)
           
 
Methods inherited from class com.esri.arcgis.interop.Dispatch
bindUsingMoniker, constructVtblPosTable, convertToNative, cookieForListener, createDispatch, createObjrefMonikerDisplayName, equals, getActiveObject, getActiveObject, getDefaultProperty, getDispatchIdOfName, getLastErrorCode, getMtsObjectContext, getObjRef, getPropertyByName, getPropertyByName, getVtblPos, hashCode, initDispatch, invoke, invokeMethodByName, invokeMethodByName, invokeMethodByName, invokePropertyGetByName, invokePropertyPutByName, invokePropertyPutByRefByName, isNativeMode, isObjRef, optimizedVtblInvoke, queryInterface, readExternal, release, setNativeMode, setPropertyByName, toString, vtblInvoke, writeExternal
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

noncastable

public boolean noncastable
Constructor Detail

IDynamicMapEventsProxy

public IDynamicMapEventsProxy()

IDynamicMapEventsProxy

public IDynamicMapEventsProxy(Object obj)
                       throws IOException
Throws:
IOException

IDynamicMapEventsProxy

protected IDynamicMapEventsProxy(Object obj,
                                 String iid)
                          throws IOException
Throws:
IOException
Method Detail

addListener

public void addListener(String iidStr,
                        Object theListener,
                        Object theSource)
                 throws IOException
Overrides:
addListener in class com.esri.arcgis.interop.Dispatch
Throws:
IOException

removeListener

public void removeListener(String iidStr,
                           Object theListener)
                    throws IOException
Overrides:
removeListener in class com.esri.arcgis.interop.Dispatch
Throws:
IOException

dynamicMapStarted

public void dynamicMapStarted(IDynamicMapEventsDynamicMapStartedEvent theEvent)
                       throws IOException,
                              AutomationException
Fired when the dynamic map starts.

Description

Fired each time the dynamic map cycle starts, if the Dynamic Map is enabled.

This event is tied to the internal heart beat of the dynamic map and will get fired on every dynamic map heart beat, even if the dynamic map is not being redrawn.

Remarks

The dynamic map heart beat interval is set by the IDynamicMap.DynamicDrawRate property.

This event is useful when a timer mechanism is needed. This event synchronizes with the dynamic map heart beatt, therefore it can be used to implement a navigation mode, by changing the visible bounds and calling the refresh method.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
dynamicMapStarted in interface IDynamicMapEvents
Parameters:
theEvent - The event
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

dynamicMapFinished

public void dynamicMapFinished(IDynamicMapEventsDynamicMapFinishedEvent theEvent)
                        throws IOException,
                               AutomationException
Fired when the dynamic map finishes.

Description

Fired each time the dynamic map cycle ends, if the Dynamic Map is enabled.

This event is tied to the internal heart beat of the dynamic map and will get fired on every dynamic map heart beat, even if the dynamic map is not being redrawn.

Remarks

The dynamic map heart beat interval is set by the IDynamicMap.DynamicDrawRate property.

This event is useful when a timer mechanism is needed. This event synchronizes with the dynamic map heart beat.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
dynamicMapFinished in interface IDynamicMapEvents
Parameters:
theEvent - The event
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

beforeDynamicDraw

public void beforeDynamicDraw(IDynamicMapEventsBeforeDynamicDrawEvent theEvent)
                       throws IOException,
                              AutomationException
Fired before the specified phase is drawn.

Remarks

The BeforeDynamicDraw event is getting fired with two different phases (enum esriDynamicMapDrawPhase). Each phase has a different meaning and usage:

  1. esriDMDPDynamicLayers – This is getting fired on each dynamic cycle that the Dynamic Map re-renders the scene. The BeforeDynamicDraw event is fired just before the first layer is rendered, and AfterDynamicDraw event is fired just after the last layer (including any Graphic Layer) is rendered.
    In this context, there is an active OpenGL Rendering context (with a preset rendering volume, viewport, etc).
    Use this context to plug-in any custom dynamic drawings with the DynamicDisplay API as well as with the OpenGL API. This context can be useful in order to draw dynamic elements behind or on top of the Layers and Graphics, which do not need to be associated with a layer.
  2. esriDMDPLayers – When the Dynamic Map is sensing that it needs to fetch tiles in order to be able to render the scene, the BeforeDynamicDraw will get fired. When the last missing tile will be available and rendered the AfterDynamicDraw event will get fired.
    Note that it is not valid to use the DynamicDisplay API, nor the OpenGL API in this context, since the OpenGL Rendering Context is not fully setup.
    Use this context if you need to monitor when the Dynamic Map is still in a process of fetching tiles for rendering the display.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
beforeDynamicDraw in interface IDynamicMapEvents
Parameters:
theEvent - The event
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

afterDynamicDraw

public void afterDynamicDraw(IDynamicMapEventsAfterDynamicDrawEvent theEvent)
                      throws IOException,
                             AutomationException
Fired after the specified phase is drawn.

Remarks

The AfterDynamicDraw event is getting fired with two different phases (enum esriDynamicMapDrawPhase). Each phase has a different meaning and usage:

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
afterDynamicDraw in interface IDynamicMapEvents
Parameters:
theEvent - The event
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.