About the Edit event listener Sample
[C#]
EventListener.cs
using System;
using System.Collections.Generic;
using System.Text;
using ESRI.ArcGIS.Editor;
namespace Events
{
public class EventListener
{
#region Enums
//contains all edit events listed on IEditEvents through IEditEvents4
public enum EditorEvent
{
AfterDrawSketch,
OnChangeFeature,
OnConflictsDetected,
OnCreateFeature,
OnCurrentLayerChanged,
OnCurrentTaskChanged,
OnDeleteFeature,
OnRedo,
OnSelectionChanged,
OnSketchFinished,
OnSketchModified,
OnStartEditing,
OnStopEditing,
OnUndo,
BeforeStopEditing,
BeforeStopOperation,
OnVertexAdded,
OnVertexMoved,
OnVertexDeleted,
BeforeDrawSketch,
OnAngularCorrectionOffsetChanged,
OnDistanceCorrectionFactorChanged,
OnUseGroundToGridChanged,
};
#endregion
#region Constructors
public EventListener(IEditor editor)
{
if (editor == null)
{
throw new ArgumentNullException();
}
m_editor = editor;
}
public EventListener(IEditor editor, EditorEvent editEvent)
{
if (editor == null)
{
throw new ArgumentNullException();
}
m_editor = editor;
}
EventListener(IEditor editor, bool bListenAll)
{
if (editor == null)
{
throw new ArgumentNullException();
}
m_editor = editor;
}
#endregion
public void ListenToEvents(EditorEvent editEvent, bool start)
{
switch (editEvent)
{
case EditorEvent.AfterDrawSketch:
if (start)
((IEditEvents_Event)m_editor).AfterDrawSketch += new
IEditEvents_AfterDrawSketchEventHandler(EventListener_AfterDrawSketch);
else
((IEditEvents_Event)m_editor).AfterDrawSketch -= new
IEditEvents_AfterDrawSketchEventHandler(EventListener_AfterDrawSketch);
break;
case EditorEvent.OnChangeFeature:
if (start)
((IEditEvents_Event)m_editor).OnChangeFeature += new
IEditEvents_OnChangeFeatureEventHandler(EventListener_OnChangeFeature);
else
((IEditEvents_Event)m_editor).OnChangeFeature -= new
IEditEvents_OnChangeFeatureEventHandler(EventListener_OnChangeFeature);
break;
case EditorEvent.OnConflictsDetected:
if (start)
((IEditEvents_Event)m_editor).OnConflictsDetected += new
IEditEvents_OnConflictsDetectedEventHandler(EventListener_OnConflictsDetected);
else
((IEditEvents_Event)m_editor).OnConflictsDetected -= new
IEditEvents_OnConflictsDetectedEventHandler(EventListener_OnConflictsDetected);
break;
case EditorEvent.OnCreateFeature:
if (start)
((IEditEvents_Event)m_editor).OnCreateFeature += new
IEditEvents_OnCreateFeatureEventHandler(EventListener_OnCreateFeature);
else
((IEditEvents_Event)m_editor).OnCreateFeature -= new
IEditEvents_OnCreateFeatureEventHandler(EventListener_OnCreateFeature);
break;
case EditorEvent.OnCurrentLayerChanged:
if (start)
((IEditEvents_Event)m_editor).OnCurrentLayerChanged += new
IEditEvents_OnCurrentLayerChangedEventHandler(EventListener_OnCurrentLayerChanged);
else
((IEditEvents_Event)m_editor).OnCurrentLayerChanged -= new
IEditEvents_OnCurrentLayerChangedEventHandler(EventListener_OnCurrentLayerChanged);
break;
case EditorEvent.OnCurrentTaskChanged:
if (start)
((IEditEvents_Event)m_editor).OnCurrentTaskChanged += new
IEditEvents_OnCurrentTaskChangedEventHandler(OnCurrentTaskChanged);
else
((IEditEvents_Event)m_editor).OnCurrentTaskChanged -= new
IEditEvents_OnCurrentTaskChangedEventHandler(OnCurrentTaskChanged);
break;
case EditorEvent.OnDeleteFeature:
if (start)
((IEditEvents_Event)m_editor).OnDeleteFeature += new
IEditEvents_OnDeleteFeatureEventHandler(EventListener_OnDeleteFeature);
else
((IEditEvents_Event)m_editor).OnDeleteFeature -= new
IEditEvents_OnDeleteFeatureEventHandler(EventListener_OnDeleteFeature);
break;
case EditorEvent.OnRedo:
if (start)
((IEditEvents_Event)m_editor).OnRedo += new
IEditEvents_OnRedoEventHandler(EventListener_OnRedo);
else
((IEditEvents_Event)m_editor).OnRedo -= new
IEditEvents_OnRedoEventHandler(EventListener_OnRedo);
break;
case EditorEvent.OnSelectionChanged:
if (start)
((IEditEvents_Event)m_editor).OnSelectionChanged +=new
IEditEvents_OnSelectionChangedEventHandler(EventListener_OnSelectionChanged);
else
((IEditEvents_Event)m_editor).OnSelectionChanged -= new
IEditEvents_OnSelectionChangedEventHandler(EventListener_OnSelectionChanged);
break;
case EditorEvent.OnSketchFinished:
if (start)
((IEditEvents_Event)m_editor).OnSketchFinished += new
IEditEvents_OnSketchFinishedEventHandler(EventListener_OnSketchFinished);
else
((IEditEvents_Event)m_editor).OnSketchFinished -= new
IEditEvents_OnSketchFinishedEventHandler(EventListener_OnSketchFinished);
break;
case EditorEvent.OnSketchModified:
if (start)
((IEditEvents_Event)m_editor).OnSketchModified += new
IEditEvents_OnSketchModifiedEventHandler(EventListener_OnSketchModified);
else
((IEditEvents_Event)m_editor).OnSketchModified -= new
IEditEvents_OnSketchModifiedEventHandler(EventListener_OnSketchModified);
break;
case EditorEvent.OnStartEditing:
if (start)
((IEditEvents_Event)m_editor).OnStartEditing += new
IEditEvents_OnStartEditingEventHandler(OnStartEditing);
else
((IEditEvents_Event)m_editor).OnStartEditing -= new
IEditEvents_OnStartEditingEventHandler(OnStartEditing);
break;
case EditorEvent.OnStopEditing:
if (start)
((IEditEvents_Event)m_editor).OnStopEditing += new
IEditEvents_OnStopEditingEventHandler(OnStopEditing);
else
((IEditEvents_Event)m_editor).OnStopEditing -= new
IEditEvents_OnStopEditingEventHandler(OnStopEditing);
break;
case EditorEvent.OnUndo:
if (start)
((IEditEvents_Event)m_editor).OnUndo += new
IEditEvents_OnUndoEventHandler(EventListener_OnUndo);
else
((IEditEvents_Event)m_editor).OnUndo -= new
IEditEvents_OnUndoEventHandler(EventListener_OnUndo);
break;
case EditorEvent.BeforeStopEditing:
if (start)
((IEditEvents2_Event)m_editor).BeforeStopEditing += new
IEditEvents2_BeforeStopEditingEventHandler(EventListener_BeforeStopEditing);
else
((IEditEvents2_Event)m_editor).BeforeStopEditing -= new
IEditEvents2_BeforeStopEditingEventHandler(EventListener_BeforeStopEditing);
break;
case EditorEvent.BeforeStopOperation:
if (start)
((IEditEvents2_Event)m_editor).BeforeStopOperation += new
IEditEvents2_BeforeStopOperationEventHandler(EventListener_BeforeStopOperation);
else
((IEditEvents2_Event)m_editor).BeforeStopOperation -= new
IEditEvents2_BeforeStopOperationEventHandler(EventListener_BeforeStopOperation);
break;
case EditorEvent.OnVertexAdded:
if (start)
((IEditEvents2_Event)m_editor).OnVertexAdded +=new
IEditEvents2_OnVertexAddedEventHandler(EventListener_OnVertexAdded);
else
((IEditEvents2_Event)m_editor).OnVertexAdded -= new
IEditEvents2_OnVertexAddedEventHandler(EventListener_OnVertexAdded);
break;
case EditorEvent.OnVertexMoved:
if (start)
((IEditEvents2_Event)m_editor).OnVertexMoved += new
IEditEvents2_OnVertexMovedEventHandler(EventListener_OnVertexMoved);
else
((IEditEvents2_Event)m_editor).OnVertexMoved -= new
IEditEvents2_OnVertexMovedEventHandler(EventListener_OnVertexMoved);
break;
case EditorEvent.OnVertexDeleted:
if (start)
((IEditEvents2_Event)m_editor).OnVertexDeleted += new
IEditEvents2_OnVertexDeletedEventHandler(EventListener_OnVertexDeleted);
else
((IEditEvents2_Event)m_editor).OnVertexDeleted -= new
IEditEvents2_OnVertexDeletedEventHandler(EventListener_OnVertexDeleted);
break;
case EditorEvent.BeforeDrawSketch:
if (start)
((IEditEvents3_Event)m_editor).BeforeDrawSketch += new
IEditEvents3_BeforeDrawSketchEventHandler(EventListener_BeforeDrawSketch);
else
((IEditEvents3_Event)m_editor).BeforeDrawSketch -= new
IEditEvents3_BeforeDrawSketchEventHandler(EventListener_BeforeDrawSketch);
break;
case EditorEvent.OnAngularCorrectionOffsetChanged:
if (start)
((IEditEvents4_Event)m_editor).OnAngularCorrectionOffsetChanged += new
IEditEvents4_OnAngularCorrectionOffsetChangedEventHandler(EventListener_OnAngularCorrectionOffsetChanged);
else
((IEditEvents4_Event)m_editor).OnAngularCorrectionOffsetChanged -= new
IEditEvents4_OnAngularCorrectionOffsetChangedEventHandler(EventListener_OnAngularCorrectionOffsetChanged);
break;
case EditorEvent.OnDistanceCorrectionFactorChanged:
if (start)
((IEditEvents4_Event)m_editor).OnDistanceCorrectionFactorChanged += new
IEditEvents4_OnDistanceCorrectionFactorChangedEventHandler(EventListener_OnDistanceCorrectionFactorChanged);
else
((IEditEvents4_Event)m_editor).OnDistanceCorrectionFactorChanged -= new
IEditEvents4_OnDistanceCorrectionFactorChangedEventHandler(EventListener_OnDistanceCorrectionFactorChanged);
break;
case EditorEvent.OnUseGroundToGridChanged:
if (start)
((IEditEvents4_Event)m_editor).OnUseGroundToGridChanged += new
IEditEvents4_OnUseGroundToGridChangedEventHandler(EventListener_OnUseGroundToGridChanged);
else
((IEditEvents4_Event)m_editor).OnUseGroundToGridChanged -= new
IEditEvents4_OnUseGroundToGridChangedEventHandler(EventListener_OnUseGroundToGridChanged);
break;
default:
break;
}
}
// Invoke the Changed event
protected virtual void OnChanged(EditorEventArgs e)
{
if (Changed != null)
Changed(this, e);
}
#region Event Handlers
void EventListener_OnCreateFeature(ESRI.ArcGIS.Geodatabase.IObject obj)
{
EditorEventArgs e = new EditorEventArgs("OnCreateFeature");
OnChanged(e);
}
void EventListener_OnChangeFeature(ESRI.ArcGIS.Geodatabase.IObject obj)
{
EditorEventArgs e = new EditorEventArgs("OnChangeFeature");
OnChanged(e);
}
void EventListener_OnConflictsDetected()
{
EditorEventArgs e = new EditorEventArgs("OnConflictsDetected");
OnChanged(e);
}
void EventListener_OnCurrentLayerChanged()
{
EditorEventArgs e = new EditorEventArgs("OnCurrentLayerChanged");
OnChanged(e);
}
void EventListener_OnDeleteFeature(ESRI.ArcGIS.Geodatabase.IObject obj)
{
EditorEventArgs e = new EditorEventArgs("OnDeleteFeature");
OnChanged(e);
}
void EventListener_OnRedo()
{
EditorEventArgs e = new EditorEventArgs("OnRedo");
OnChanged(e);
}
void EventListener_OnSelectionChanged()
{
EditorEventArgs e = new EditorEventArgs("OnSelectionChanged");
OnChanged(e);
}
void EventListener_OnSketchFinished()
{
EditorEventArgs e = new EditorEventArgs("OnSketchFinished");
OnChanged(e);
}
void EventListener_OnSketchModified()
{
EditorEventArgs e = new EditorEventArgs("OnSketchModified");
OnChanged(e);
}
void EventListener_OnUndo()
{
EditorEventArgs e = new EditorEventArgs("OnUndo");
OnChanged(e);
}
void EventListener_BeforeStopEditing(bool save)
{
EditorEventArgs e = new EditorEventArgs("BeforeStopEditing");
OnChanged(e);
}
void EventListener_BeforeStopOperation()
{
EditorEventArgs e = new EditorEventArgs("BeforeStopOperation");
OnChanged(e);
}
void EventListener_OnVertexAdded(ESRI.ArcGIS.Geometry.IPoint point)
{
EditorEventArgs e = new EditorEventArgs("OnVertexAdded");
OnChanged(e);
}
void EventListener_OnVertexMoved(ESRI.ArcGIS.Geometry.IPoint point)
{
EditorEventArgs e = new EditorEventArgs("OnVertexMoved");
OnChanged(e);
}
void EventListener_OnVertexDeleted(ESRI.ArcGIS.Geometry.IPoint point)
{
EditorEventArgs e = new EditorEventArgs("OnVertexDeleted");
OnChanged(e);
}
void EventListener_OnAngularCorrectionOffsetChanged(double angOffset)
{
EditorEventArgs e = new EditorEventArgs("OnAngularCorrectionOffsetChanged");
OnChanged(e);
}
void EventListener_OnDistanceCorrectionFactorChanged(double distFactor)
{
EditorEventArgs e = new EditorEventArgs("OnDistanceCorrectionFactorChanged");
OnChanged(e);
}
void EventListener_OnUseGroundToGridChanged(bool g2g)
{
EditorEventArgs e = new EditorEventArgs("OnUseGroundToGridChanged");
OnChanged(e);
}
void EventListener_BeforeDrawSketch(ESRI.ArcGIS.Display.IDisplay pDpy)
{
EditorEventArgs e = new EditorEventArgs("BeforeDrawSketch");
OnChanged(e);
}
void EventListener_AfterDrawSketch(ESRI.ArcGIS.Display.IDisplay pDpy)
{
EditorEventArgs e = new EditorEventArgs("AfterDrawSketch");
OnChanged(e);
}
void OnCurrentTaskChanged()
{
EditorEventArgs e = new EditorEventArgs("OnCurrentTaskChanged");
OnChanged(e);
}
void OnStopEditing(bool SaveEdits)
{
EditorEventArgs e = new EditorEventArgs("OnStopEditing");
OnChanged(e);
}
void OnStartEditing()
{
EditorEventArgs e = new EditorEventArgs("OnStartEditing");
OnChanged(e);
}
#endregion
#region Members
public event ChangedEventHandler Changed;
IEditor m_editor;
#endregion
}
public class EditorEventArgs : EventArgs
{
public EditorEventArgs(string eventType)
{
this.eventType = eventType;
}
public string eventType;
}
public delegate void ChangedEventHandler(object sender, EditorEventArgs e);
}
[Visual Basic .NET]
EventListener.vb
Imports System.Collections.Generic
Imports System.Text
Imports System.Runtime.InteropServices
Imports ESRI.ArcGIS.Editor
<ComClass(EventListener.ClassId, EventListener.InterfaceId, EventListener.EventsId), _
ProgId("VBNet.EventListener")> _
Public Class EventListener
#Region "COM GUIDs"
' These GUIDs provide the COM identity for this class
' and its COM interfaces. If you change them, existing
' clients will no longer be able to access the class.
Public Const ClassId As String = "6c41019b-5be8-4c55-9fbe-ddf63fe0c67a"
Public Const InterfaceId As String = "e661f2e8-c840-4d50-a93e-a88e2308c4c6"
Public Const EventsId As String = "39bbcf43-ffce-4504-b9b6-8c35bb6d7eed"
#End Region
' A creatable COM class must have a Public Sub New()
' with no parameters, otherwise, the class will not be
' registered in the COM registry and cannot be created
' via CreateObject.
Public Sub New()
MyBase.New()
End Sub
#Region "Members"
Public Event Changed As ChangedEventHandler
Private m_editor As IEditor
#End Region
#Region "Enums"
'contains all edit events listed on IEditEvents through IEditEvents4
Public Enum EditorEvent
AfterDrawSketch
OnChangeFeature
OnConflictsDetected
OnCreateFeature
OnCurrentLayerChanged
OnCurrentTaskChanged
OnDeleteFeature
OnRedo
OnSelectionChanged
OnSketchFinished
OnSketchModified
OnStartEditing
OnStopEditing
OnUndo
BeforeStopEditing
BeforeStopOperation
OnVertexAdded
OnVertexMoved
OnVertexDeleted
BeforeDrawSketch
OnAngularCorrectionOffsetChanged
OnDistanceCorrectionFactorChanged
OnUseGroundToGridChanged
End Enum
#End Region
' Invoke the Changed event
Protected Overridable Sub OnChanged(ByVal e As EditorEventArgs)
If Not ChangedEvent Is Nothing Then
RaiseEvent Changed(Me, e)
End If
End Sub
''' <summary>
''' Adds or removes the correct event handler based on the event and if it is checked.
''' </summary>
''' <param name="editEvent"></param>
''' <param name="start"></param>
Public Sub ListenToEvents(ByVal editEvent As EditorEvent, ByVal start As Boolean)
Select Case editEvent
Case EditorEvent.AfterDrawSketch
If start Then
AddHandler (CType(m_editor, IEditEvents_Event)).AfterDrawSketch, AddressOf EventListener_AfterDrawSketch
Else
RemoveHandler (CType(m_editor, IEditEvents_Event)).AfterDrawSketch, AddressOf EventListener_AfterDrawSketch
End If
Case EditorEvent.OnChangeFeature
If start Then
AddHandler (CType(m_editor, IEditEvents_Event)).OnChangeFeature, AddressOf EventListener_OnChangeFeature
Else
RemoveHandler (CType(m_editor, IEditEvents_Event)).OnChangeFeature, AddressOf EventListener_OnChangeFeature
End If
Case EditorEvent.OnConflictsDetected
If start Then
AddHandler (CType(m_editor, IEditEvents_Event)).OnConflictsDetected, AddressOf EventListener_OnConflictsDetected
Else
RemoveHandler (CType(m_editor, IEditEvents_Event)).OnConflictsDetected, AddressOf EventListener_OnConflictsDetected
End If
Case EditorEvent.OnCreateFeature
If start Then
AddHandler (CType(m_editor, IEditEvents_Event)).OnCreateFeature, AddressOf EventListener_OnCreateFeature
Else
RemoveHandler (CType(m_editor, IEditEvents_Event)).OnCreateFeature, AddressOf EventListener_OnCreateFeature
End If
Case EditorEvent.OnCurrentLayerChanged
If start Then
AddHandler (CType(m_editor, IEditEvents_Event)).OnCurrentLayerChanged, AddressOf EventListener_OnCurrentLayerChanged
Else
RemoveHandler (CType(m_editor, IEditEvents_Event)).OnCurrentLayerChanged, AddressOf EventListener_OnCurrentLayerChanged
End If
Case EditorEvent.OnCurrentTaskChanged
If start Then
AddHandler (CType(m_editor, IEditEvents_Event)).OnCurrentTaskChanged, AddressOf OnCurrentTaskChanged
Else
RemoveHandler (CType(m_editor, IEditEvents_Event)).OnCurrentTaskChanged, AddressOf OnCurrentTaskChanged
End If
Case EditorEvent.OnDeleteFeature
If start Then
AddHandler (CType(m_editor, IEditEvents_Event)).OnDeleteFeature, AddressOf EventListener_OnDeleteFeature
Else
RemoveHandler (CType(m_editor, IEditEvents_Event)).OnDeleteFeature, AddressOf EventListener_OnDeleteFeature
End If
Case EditorEvent.OnRedo
If start Then
AddHandler (CType(m_editor, IEditEvents_Event)).OnRedo, AddressOf EventListener_OnRedo
Else
RemoveHandler (CType(m_editor, IEditEvents_Event)).OnRedo, AddressOf EventListener_OnRedo
End If
Case EditorEvent.OnSelectionChanged
If start Then
AddHandler (CType(m_editor, IEditEvents_Event)).OnSelectionChanged, AddressOf EventListener_OnSelectionChanged
Else
RemoveHandler (CType(m_editor, IEditEvents_Event)).OnSelectionChanged, AddressOf EventListener_OnSelectionChanged
End If
Case EditorEvent.OnSketchFinished
If start Then
AddHandler (CType(m_editor, IEditEvents_Event)).OnSketchFinished, AddressOf EventListener_OnSketchFinished
Else
RemoveHandler (CType(m_editor, IEditEvents_Event)).OnSketchFinished, AddressOf EventListener_OnSketchFinished
End If
Case EditorEvent.OnSketchModified
If start Then
AddHandler (CType(m_editor, IEditEvents_Event)).OnSketchModified, AddressOf EventListener_OnSketchModified
Else
RemoveHandler (CType(m_editor, IEditEvents_Event)).OnSketchModified, AddressOf EventListener_OnSketchModified
End If
Case EditorEvent.OnStartEditing
If start Then
AddHandler (CType(m_editor, IEditEvents_Event)).OnStartEditing, AddressOf OnStartEditing
Else
RemoveHandler (CType(m_editor, IEditEvents_Event)).OnStartEditing, AddressOf OnStartEditing
End If
Case EditorEvent.OnStopEditing
If start Then
AddHandler (CType(m_editor, IEditEvents_Event)).OnStopEditing, AddressOf OnStopEditing
Else
RemoveHandler (CType(m_editor, IEditEvents_Event)).OnStopEditing, AddressOf OnStopEditing
End If
Case EditorEvent.OnUndo
If start Then
AddHandler (CType(m_editor, IEditEvents_Event)).OnUndo, AddressOf EventListener_OnUndo
Else
RemoveHandler (CType(m_editor, IEditEvents_Event)).OnUndo, AddressOf EventListener_OnUndo
End If
Case EditorEvent.BeforeStopEditing
If start Then
AddHandler (CType(m_editor, IEditEvents2_Event)).BeforeStopEditing, AddressOf EventListener_BeforeStopEditing
Else
RemoveHandler (CType(m_editor, IEditEvents2_Event)).BeforeStopEditing, AddressOf EventListener_BeforeStopEditing
End If
Case EditorEvent.BeforeStopOperation
If start Then
AddHandler (CType(m_editor, IEditEvents2_Event)).BeforeStopOperation, AddressOf EventListener_BeforeStopOperation
Else
RemoveHandler (CType(m_editor, IEditEvents2_Event)).BeforeStopOperation, AddressOf EventListener_BeforeStopOperation
End If
Case EditorEvent.OnVertexAdded
If start Then
AddHandler (CType(m_editor, IEditEvents2_Event)).OnVertexAdded, AddressOf EventListener_OnVertexAdded
Else
RemoveHandler (CType(m_editor, IEditEvents2_Event)).OnVertexAdded, AddressOf EventListener_OnVertexAdded
End If
Case EditorEvent.OnVertexMoved
If start Then
AddHandler (CType(m_editor, IEditEvents2_Event)).OnVertexMoved, AddressOf EventListener_OnVertexMoved
Else
RemoveHandler (CType(m_editor, IEditEvents2_Event)).OnVertexMoved, AddressOf EventListener_OnVertexMoved
End If
Case EditorEvent.OnVertexDeleted
If start Then
AddHandler (CType(m_editor, IEditEvents2_Event)).OnVertexDeleted, AddressOf EventListener_OnVertexDeleted
Else
RemoveHandler (CType(m_editor, IEditEvents2_Event)).OnVertexDeleted, AddressOf EventListener_OnVertexDeleted
End If
Case EditorEvent.BeforeDrawSketch
If start Then
AddHandler (CType(m_editor, IEditEvents3_Event)).BeforeDrawSketch, AddressOf EventListener_BeforeDrawSketch
Else
RemoveHandler (CType(m_editor, IEditEvents3_Event)).BeforeDrawSketch, AddressOf EventListener_BeforeDrawSketch
End If
Case EditorEvent.OnAngularCorrectionOffsetChanged
If start Then
AddHandler (CType(m_editor, IEditEvents4_Event)).OnAngularCorrectionOffsetChanged, AddressOf EventListener_OnAngularCorrectionOffsetChanged
Else
RemoveHandler (CType(m_editor, IEditEvents4_Event)).OnAngularCorrectionOffsetChanged, AddressOf EventListener_OnAngularCorrectionOffsetChanged
End If
Case EditorEvent.OnDistanceCorrectionFactorChanged
If start Then
AddHandler (CType(m_editor, IEditEvents4_Event)).OnDistanceCorrectionFactorChanged, AddressOf EventListener_OnDistanceCorrectionFactorChanged
Else
RemoveHandler (CType(m_editor, IEditEvents4_Event)).OnDistanceCorrectionFactorChanged, AddressOf EventListener_OnDistanceCorrectionFactorChanged
End If
Case EditorEvent.OnUseGroundToGridChanged
If start Then
AddHandler (CType(m_editor, IEditEvents4_Event)).OnUseGroundToGridChanged, AddressOf EventListener_OnUseGroundToGridChanged
Else
RemoveHandler (CType(m_editor, IEditEvents4_Event)).OnUseGroundToGridChanged, AddressOf EventListener_OnUseGroundToGridChanged
End If
Case Else
End Select
End Sub
#Region "Constructors"
Public Sub New(ByVal editor As IEditor)
If editor Is Nothing Then
Throw New ArgumentNullException()
End If
m_editor = editor
End Sub
Public Sub New(ByVal editor As IEditor, ByVal editEvent As EditorEvent)
If editor Is Nothing Then
Throw New ArgumentNullException()
End If
m_editor = editor
End Sub
Private Sub New(ByVal editor As IEditor, ByVal bListenAll As Boolean)
If editor Is Nothing Then
Throw New ArgumentNullException()
End If
m_editor = editor
End Sub
#End Region
#Region "Event Handlers"
Private Sub EventListener_OnCreateFeature(ByVal obj As ESRI.ArcGIS.Geodatabase.IObject)
Dim e As EditorEventArgs = New EditorEventArgs("OnCreateFeature")
OnChanged(e)
End Sub
Private Sub EventListener_OnChangeFeature(ByVal obj As ESRI.ArcGIS.Geodatabase.IObject)
Dim e As EditorEventArgs = New EditorEventArgs("OnChangeFeature")
OnChanged(e)
End Sub
Private Sub EventListener_OnConflictsDetected()
Dim e As EditorEventArgs = New EditorEventArgs("OnConflictsDetected")
OnChanged(e)
End Sub
Private Sub EventListener_OnCurrentLayerChanged()
Dim e As EditorEventArgs = New EditorEventArgs("OnCurrentLayerChanged")
OnChanged(e)
End Sub
Private Sub EventListener_OnDeleteFeature(ByVal obj As ESRI.ArcGIS.Geodatabase.IObject)
Dim e As EditorEventArgs = New EditorEventArgs("OnDeleteFeature")
OnChanged(e)
End Sub
Private Sub EventListener_OnRedo()
Dim e As EditorEventArgs = New EditorEventArgs("OnRedo")
OnChanged(e)
End Sub
Private Sub EventListener_OnSelectionChanged()
Dim e As EditorEventArgs = New EditorEventArgs("OnSelectionChanged")
OnChanged(e)
End Sub
Private Sub EventListener_OnSketchFinished()
Dim e As EditorEventArgs = New EditorEventArgs("OnSketchFinished")
OnChanged(e)
End Sub
Private Sub EventListener_OnSketchModified()
Dim e As EditorEventArgs = New EditorEventArgs("OnSketchModified")
OnChanged(e)
End Sub
Private Sub EventListener_OnUndo()
Dim e As EditorEventArgs = New EditorEventArgs("OnUndo")
OnChanged(e)
End Sub
Private Sub EventListener_BeforeStopEditing(ByVal save As Boolean)
Dim e As EditorEventArgs = New EditorEventArgs("BeforeStopEditing")
OnChanged(e)
End Sub
Private Sub EventListener_BeforeStopOperation()
Dim e As EditorEventArgs = New EditorEventArgs("BeforeStopOperation")
OnChanged(e)
End Sub
Private Sub EventListener_OnVertexAdded(ByVal point As ESRI.ArcGIS.Geometry.IPoint)
Dim e As EditorEventArgs = New EditorEventArgs("OnVertexAdded")
OnChanged(e)
End Sub
Private Sub EventListener_OnVertexMoved(ByVal point As ESRI.ArcGIS.Geometry.IPoint)
Dim e As EditorEventArgs = New EditorEventArgs("OnVertexMoved")
OnChanged(e)
End Sub
Private Sub EventListener_OnVertexDeleted(ByVal point As ESRI.ArcGIS.Geometry.IPoint)
Dim e As EditorEventArgs = New EditorEventArgs("OnVertexDeleted")
OnChanged(e)
End Sub
Private Sub EventListener_OnAngularCorrectionOffsetChanged(ByVal angOffset As Double)
Dim e As EditorEventArgs = New EditorEventArgs("OnAngularCorrectionOffsetChanged")
OnChanged(e)
End Sub
Private Sub EventListener_OnDistanceCorrectionFactorChanged(ByVal distFactor As Double)
Dim e As EditorEventArgs = New EditorEventArgs("OnDistanceCorrectionFactorChanged")
OnChanged(e)
End Sub
Private Sub EventListener_OnUseGroundToGridChanged(ByVal g2g As Boolean)
Dim e As EditorEventArgs = New EditorEventArgs("OnUseGroundToGridChanged")
OnChanged(e)
End Sub
Private Sub EventListener_BeforeDrawSketch(ByVal pDpy As ESRI.ArcGIS.Display.IDisplay)
Dim e As EditorEventArgs = New EditorEventArgs("BeforeDrawSketch")
OnChanged(e)
End Sub
Private Sub EventListener_AfterDrawSketch(ByVal pDpy As ESRI.ArcGIS.Display.IDisplay)
Dim e As EditorEventArgs = New EditorEventArgs("AfterDrawSketch")
OnChanged(e)
End Sub
Private Sub OnCurrentTaskChanged()
Dim e As EditorEventArgs = New EditorEventArgs("OnCurrentTaskChanged")
OnChanged(e)
End Sub
Private Sub OnStopEditing(ByVal SaveEdits As Boolean)
Dim e As EditorEventArgs = New EditorEventArgs("OnStopEditing")
OnChanged(e)
End Sub
Private Sub OnStartEditing()
Dim e As EditorEventArgs = New EditorEventArgs("OnStartEditing")
OnChanged(e)
End Sub
#End Region
End Class
Public Class EditorEventArgs
Inherits EventArgs
Public Sub New(ByVal eventType As String)
Me.eventType = eventType
End Sub
Public eventType As String
End Class
Public Delegate Sub ChangedEventHandler(ByVal sender As Object, ByVal e As EditorEventArgs)