com.esri.arcgis.geodatabase
Interface IObjectClassEvents

All Superinterfaces:
EventListener, Serializable
All Known Implementing Classes:
AnnotationFeatureClassExtension, FDOGraphicsLayer, IObjectClassEventsAdapter

public interface IObjectClassEvents
extends EventListener, Serializable

Provides access to events that occur with an object class.

Remarks

Listeners of the OnCreate event are not necessarily notified every time an object is created. The event is triggered following a call to IRow.Store, and by default this does not occur when objects or simple features are created using an insert cursor. This can be overridden by setting the IWorkspaceEditControl.SetStoreEventsRequired property to true, or by implementing the optional IObjectClassInfo interface on the class' extension.

If you are using the OnCreate, OnDelete or OnChange methods in a class extension to validate edit operations, you should not call AbortEditOperation on the workspace if your logic indicates that the edit operation is invalid. Instead, raise an error which will be propagated to the application that is performing the edit on the class.

It is the responsibility of the editing application that receives the error to abort the edit operation. This is especially true when editing with ArcMap. If you call AbortEditOperation from within the class extension, the ArcMap undo/redo edit stack will become out of sync.

In the event that a feature should be deleted due to an OnChange event, it is not recommended that the event handler delete the feature itself. Instead, an exception should be thrown to the application, where it can be made responsible for deleting the feature.

The OnCreate, OnDelete or OnChange events are not fired during a Topology Validation. The OnCreate and OnDelete events are not applicable since a Validate does not create or delete features. The OnChange event is not fired for performance as a large number of features may be changed during a Validate. In addition, features may be changed many times.

When To Use

IObjectClassEvents is an optional interface for class extensions, as well as an event interface for object classes. Both techniques allow the capture of events that occur in the object class, such as object creation, modification and deletion.

Implementing IObjectClassEvents allows for the building of ClassExtensions which is an ideal way to extend the default geodatabase behavior. This type of extension can be used when you don't want to rely on catching IEditEvents such as OnCreateFeature, OnChangeFeature or OnDeleteFeature. This is handy when you need to implement a geodatabase-level customization that will not be application specific, i.e. dependent upon ArcMap and the Editor extension.

Any custom object can listen to the IObjectClassEvents event interface.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux


Method Summary
 void onChange(IObjectClassEventsOnChangeEvent theEvent)
          This event is fired when an object's attributes or geometry is updated.
 void onCreate(IObjectClassEventsOnCreateEvent theEvent)
          This event is fired when a new object is created in the object class.
 void onDelete(IObjectClassEventsOnDeleteEvent theEvent)
          This event is fired when an object is deleted from the object class.
 

Method Detail

onCreate

void onCreate(IObjectClassEventsOnCreateEvent theEvent)
              throws IOException,
                     AutomationException
This event is fired when a new object is created in the object class.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Parameters:
theEvent - The event
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

onDelete

void onDelete(IObjectClassEventsOnDeleteEvent theEvent)
              throws IOException,
                     AutomationException
This event is fired when an object is deleted from the object class.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Parameters:
theEvent - The event
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

onChange

void onChange(IObjectClassEventsOnChangeEvent theEvent)
              throws IOException,
                     AutomationException
This event is fired when an object's attributes or geometry is updated.

Remarks

In the event that a feature should be deleted due to an OnChange event, it is not recommended that the event handler delete the feature itself. Instead, an exception should be thrown to the application, where it can be made responsible for deleting the feature.

The OnChange event is not fired during a Topology Validation for performance reasons as a large number of features may be changed during a Validate. In addition, features may be changed many times.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Parameters:
theEvent - The event
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.