|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectcom.esri.arcgis.trackinganalyst.TADynamicDisplayRefreshController
public class TADynamicDisplayRefreshController
Manages all dynamic updates to all of ArcMap's maps, both in the map view and the page layout view.
This Object is responsible for managing all dynamic updates to all of ArcMaps Maps, both in the MapView and the Page Layout View. This object will allow the configuration of the maintenance update interval, the dynamic update maximum rate, and will ensure that multiple dynamic updates are syncronized with general arcmap screen updates.
The following text describes the general approach that we are going to use, as a first stab, for dynamic updates.
1) Maintain a list of all Temporal layers and map them to Identifiers that uniquely identify a dynamic feature source (Feature class)
2) Provide a interface method that Informs the Object that a substantial change has occured within a feature class
3) Upon reciept of a call to method described above, ensure that the last update completion time is greater than the minimum update rate. If not then issue a ShortUpdate Draw Request.
| Constructor Summary | |
|---|---|
TADynamicDisplayRefreshController(Object obj)
Construct a TADynamicDisplayRefreshController using a reference to such an object returned from ArcGIS Engine or Server. |
|
| Method Summary | |
|---|---|
void |
addLayer(ILayer piLayer)
Obsolete Method that is unsupported. |
void |
afterDraw(IActiveViewEventsAfterDrawEvent theEvent)
Fired after the specified phase is drawn. |
void |
afterItemDraw(IActiveViewEventsAfterItemDrawEvent theEvent)
Fired after an individual view item is drawn. |
void |
contentsChanged(IActiveViewEventsContentsChangedEvent theEvent)
Fired when the contents of the view changes. |
void |
contentsCleared(IActiveViewEventsContentsClearedEvent theEvent)
Fired when the contents of the view is cleared. |
boolean |
equals(Object o)
Compare this object with another |
void |
focusMapChanged(IActiveViewEventsFocusMapChangedEvent theEvent)
Fired when a new map is made active. |
double |
getMaxUpdateRate()
Indicates the minimum duration between which the map display updates, as defined in the dynamic update controller. |
double |
getRefreshRate()
Indicates the maximum duration between map display refreshes, as defined in the dynamic update controller. |
String |
getStatistics()
Various statistics about dynamic display processing. |
int |
getUpdateMethod()
Defines how the display refresh is determined: by number of points or CPU usage. |
int |
getUpdateValue()
Indicates the number of points or percentage of CPU usage used as the threshold for a map display refresh. |
int |
hashCode()
the hashcode for this object |
boolean |
isAutoRefresh()
Indicates whether or not the map display will refresh automatically when no new data has been received. |
boolean |
isManualUpdate()
Indicates whether or not map display must be updated manually when new data is received. |
void |
itemAdded(IActiveViewEventsItemAddedEvent theEvent)
Fired when an item is added to the view. |
void |
itemDeleted(IActiveViewEventsItemDeletedEvent theEvent)
Fired when an item is deleted from the view. |
void |
itemReordered(IActiveViewEventsItemReorderedEvent theEvent)
Fired when a view item is reordered. |
void |
refreshDisplay(int enumUpdateType)
Refreshes the map display in ArcMap. |
void |
removeLayer(ILayer piLayer)
Obsolete Method that is unsupported. |
void |
selectionChanged(IActiveViewEventsSelectionChangedEvent theEvent)
Call this function to fire the selection changed event. |
void |
setAutoRefresh(boolean pVal)
Indicates whether or not the map display will refresh automatically when no new data has been received. |
void |
setManualUpdate(boolean pVal)
Indicates whether or not map display must be updated manually when new data is received. |
void |
setMaxUpdateRate(double pVal)
Indicates the minimum duration between which the map display updates, as defined in the dynamic update controller. |
void |
setRefreshRate(double pVal)
Indicates the maximum duration between map display refreshes, as defined in the dynamic update controller. |
void |
setUpdateMethod(int pVal)
Defines how the display refresh is determined: by number of points or CPU usage. |
void |
setUpdateValue(int pVal)
Indicates the number of points or percentage of CPU usage used as the threshold for a map display refresh. |
void |
spatialReferenceChanged(IActiveViewEventsSpatialReferenceChangedEvent theEvent)
Fired when the spatial reference is changed. |
void |
viewRefreshed(IActiveViewEventsViewRefreshedEvent theEvent)
Fired when view is refreshed before draw happens. |
| Methods inherited from class java.lang.Object |
|---|
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface com.esri.arcgis.interop.RemoteObjRef |
|---|
getJintegraDispatch, release |
| Constructor Detail |
|---|
public TADynamicDisplayRefreshController(Object obj)
throws IOException
obj to TADynamicDisplayRefreshController. *
TADynamicDisplayRefreshController o = (TADynamicDisplayRefreshController)obj; // will not work
TADynamicDisplayRefreshController o = new TADynamicDisplayRefreshController(obj); // Use this constructor instead
* @param obj an object returned from ArcGIS Engine or Server
IOException - if there are interop problems
TADynamicDisplayRefreshController theTADynamicDisplayRefreshController = (TADynamicDisplayRefreshController) obj;| Method Detail |
|---|
public boolean equals(Object o)
equals in class Objectpublic int hashCode()
hashCode in class Object
public void addLayer(ILayer piLayer)
throws IOException,
AutomationException
This method adds a layer to the Display update controller. Only temporal layers are permitted. If a non-temporal layer is added it is rejected and S_False is returned.
addLayer in interface ITAUpdateControlpiLayer - A reference to a com.esri.arcgis.carto.ILayer (in)
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public void removeLayer(ILayer piLayer)
throws IOException,
AutomationException
This method removes a layer from the Controller's management.
removeLayer in interface ITAUpdateControlpiLayer - A reference to a com.esri.arcgis.carto.ILayer (in)
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public double getRefreshRate()
throws IOException,
AutomationException
Gets and sets the maximum number of seconds between map refreshes if no new data has been received when AutoRefresh is enabled on the dynamic update controller. If no new data has been received to trigger an update refresh this timer will cause the map to refresh. This is important for maintaining time windows and aging. The RefreshRate must be greater than or equal to the MaxUpdateRate and less than or equal to 500 seconds.
getRefreshRate in interface ITAUpdateControlIOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public void setRefreshRate(double pVal)
throws IOException,
AutomationException
setRefreshRate in interface ITAUpdateControlpVal - The pVal (in)
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public double getMaxUpdateRate()
throws IOException,
AutomationException
Gets and sets the minimum number of seconds between map refreshes when real-time data is being received and AutoRefresh is enabled. The MaxUpdateRate must be between 0.5 and 60 seconds. This timer is triggered only if new data has been received since the last refresh. If data stops being received for an extended period the timer specified by the RefreshRate property will execute to maintain temporal windows and aging.
getMaxUpdateRate in interface ITAUpdateControlIOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public void setMaxUpdateRate(double pVal)
throws IOException,
AutomationException
setMaxUpdateRate in interface ITAUpdateControlpVal - The pVal (in)
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public void refreshDisplay(int enumUpdateType)
throws IOException,
AutomationException
There are five types of screen updates available:
refreshDisplay in interface ITAUpdateControlenumUpdateType - A com.esri.arcgis.trackinganalyst.enumScreenUpdateType constant (in)
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public int getUpdateMethod()
throws IOException,
AutomationException
getUpdateMethod in interface ITAUpdateControlIOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public void setUpdateMethod(int pVal)
throws IOException,
AutomationException
setUpdateMethod in interface ITAUpdateControlpVal - A com.esri.arcgis.trackinganalyst.enumScreenUpdateThresholdType constant (in)
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public int getUpdateValue()
throws IOException,
AutomationException
getUpdateValue in interface ITAUpdateControlIOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public void setUpdateValue(int pVal)
throws IOException,
AutomationException
setUpdateValue in interface ITAUpdateControlpVal - The pVal (in)
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public String getStatistics()
throws IOException,
AutomationException
This method returns a XML string containing named variables of various statistics about display processing for temporal data.
getStatistics in interface ITAUpdateControlIOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public boolean isManualUpdate()
throws IOException,
AutomationException
If ManualUpdate is set to true then you are responsible for causing map refreshes to animate the display of tracking data. The primary mechanism to cause a screen refresh is using RefreshDisplay. you can also using IActiveView::Refresh and IActiveView::PartialRefresh, but they are not as optimized for updating tracking data.
isManualUpdate in interface ITAUpdateControlIOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public void setManualUpdate(boolean pVal)
throws IOException,
AutomationException
setManualUpdate in interface ITAUpdateControlpVal - The pVal (in)
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public boolean isAutoRefresh()
throws IOException,
AutomationException
isAutoRefresh in interface ITAUpdateControlIOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public void setAutoRefresh(boolean pVal)
throws IOException,
AutomationException
setAutoRefresh in interface ITAUpdateControlpVal - The pVal (in)
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public void contentsChanged(IActiveViewEventsContentsChangedEvent theEvent)
throws IOException,
AutomationException
The Map object fires this event when a new document is loaded. Adding a new layer to a Map does not trigger this event.
The PageLayout object fires the event when IGraphicsContainer::DeleteAllElements in called and when a new document is loaded.
contentsChanged in interface IActiveViewEventstheEvent - The event
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.IActiveView.contentsChanged()
public void contentsCleared(IActiveViewEventsContentsClearedEvent theEvent)
throws IOException,
AutomationException
contentsCleared in interface IActiveViewEventstheEvent - The event
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public void itemAdded(IActiveViewEventsItemAddedEvent theEvent)
throws IOException,
AutomationException
The Map fires the event every time a new layer is added.
The PageLayout fires this event whenever a new element is added to the layout. Elements include not only graphics but data frames as well.
itemAdded in interface IActiveViewEventstheEvent - The event
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public void itemDeleted(IActiveViewEventsItemDeletedEvent theEvent)
throws IOException,
AutomationException
The PageLayout object fires this event whenever elements are deleted from the layout.
The Map object fires this event when a layer is removed.
itemDeleted in interface IActiveViewEventstheEvent - The event
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public void itemReordered(IActiveViewEventsItemReorderedEvent theEvent)
throws IOException,
AutomationException
The Map objects only fire this event whenever IMap::MoveLayer is called. In the ArcMap application, this occurs when you reorder layers in the table of contents. The Map will also fire this event when new layers are added.
The PageLayout object fires this event when changing the order of graphics. For example, IGraphicsContainer::BringToFront, PutElementOrder, SendToBack, SendBackward, and BringForward all fire this event. These functions are on ArcMap's Drawing menu under the Order pull right menu. Although the Map object is also a graphics container, it does not fire this event when its graphics are reordered.
itemReordered in interface IActiveViewEventstheEvent - The event
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public void selectionChanged(IActiveViewEventsSelectionChangedEvent theEvent)
throws IOException,
AutomationException
selectionChanged in interface IActiveViewEventstheEvent - The event
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public void viewRefreshed(IActiveViewEventsViewRefreshedEvent theEvent)
throws IOException,
AutomationException
Method that gets fired in response to IActiveView::Refresh and IActiveView::PartialRefresh.
This event is useful in the case where you're watching for something to change in the view and there aren't any specific events for that change (e.g. ContentsChanged, ItemAdded). You can always listen for this method as a last resort. Care must be taken however to be very efficient in your implementation of this event because it will be called quite often.
The event parameters directly coincide with the arguments to IActiveView::PartialRefresh. For additional information about the arguments, see the help for that method.
If the event object connects to both the layout and a map, then the view parameter tells you which object initiated the event.
In an implementation of this method you typically want to check the phase and respond to only one. Otherwise, your code will execute multiple times per drawing sequence.
viewRefreshed in interface IActiveViewEventstheEvent - The event
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public void afterDraw(IActiveViewEventsAfterDrawEvent theEvent)
throws IOException,
AutomationException
afterDraw in interface IActiveViewEventstheEvent - The event
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public void afterItemDraw(IActiveViewEventsAfterItemDrawEvent theEvent)
throws IOException,
AutomationException
AfterItemDraw can be used to execute after each individual item has drawn. Event firing can be an expensive operation (time consuming) when there are many layers in a map, however. As a result, the AfterItemDraw event is only fired when the IViewManger::VerboseEvents property is set to True. By default this property is False.
afterItemDraw in interface IActiveViewEventstheEvent - The event
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public void focusMapChanged(IActiveViewEventsFocusMapChangedEvent theEvent)
throws IOException,
AutomationException
focusMapChanged in interface IActiveViewEventstheEvent - The event
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public void spatialReferenceChanged(IActiveViewEventsSpatialReferenceChangedEvent theEvent)
throws IOException,
AutomationException
spatialReferenceChanged in interface IActiveViewEventstheEvent - The event
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||