About the Selection restriction evaluator Sample
[C#]
SelectionRestrictionEvaluatorEditor.cs
using System; using System.Runtime.InteropServices; using System.Windows.Forms; using ESRI.ArcGIS.esriSystem; using ESRI.ArcGIS.CatalogUI; using ESRI.ArcGIS.ADF.CATIDs; namespace SelectionRestriction { [ClassInterface(ClassInterfaceType.None)] [Guid("2200611c-4602-459b-abea-0ba8fb149a39")] public class SelectionRestrictionEvaluatorEditor : IEvaluatorEditor { #region Component Category Registration [ComRegisterFunction()] [ComVisible(false)] static void RegisterFunction(Type registerType) { string regKey = string.Format("HKEY_CLASSES_ROOT\\CLSID\\{{{0}}}", registerType.GUID); NetworkEvaluatorEditor.Register(regKey); } [ComUnregisterFunction()] [ComVisible(false)] static void UnregisterFunction(Type registerType) { string regKey = string.Format("HKEY_CLASSES_ROOT\\CLSID\\{{{0}}}", registerType.GUID); NetworkEvaluatorEditor.Unregister(regKey); } #endregion #region IEvaluatorEditor Members public bool ContextSupportsEditDescriptors { // The descriptor text is the single line of text in the Evaluators dialog that appears under the Value column // This property indicates whether the descriptor text can be directly edited in the dialog by the user // Since this evaluator editor does not make use of descriptors, it returns false get { return false; } } public bool ContextSupportsEditProperties { // This property indicates whether the ArcCatalog user is able to bring up a dialog by clicking the Properties button (or pressing F12) in order to specify settings for the evaluator // This evaluator editor does not support editing of the evaluator properties get { return false; } } public void EditDescriptors(string value) { // This evaluator editor does not make use of descriptors } public IEditEvaluators EditEvaluators { // This property is used by ArcCatalog to set a reference to its EditEvaluators object on each registered EvaluatorEditor // This allows each EvaluatorEditor to access the current state of ArcCatalog's Evaluators dialog, such as how many evaluators are listed and which evaluators are currently selected // This evaluator editor does not make use of EditEvaluators set { } } public bool EditProperties(int parentWindow) { // This evaluator editor does not support editing of the evaluator properties return false; } public UID EvaluatorCLSID { get { // This property returns the GUID of this EvaluatorEditor's associated INetworkEvaluator (e.g., SelectionRestrictionEvaluator) UID uid = new UIDClass(); uid.Value = "{1f75097c-7224-4d1f-ae38-1242e26efcef}"; return uid; } } public void SetDefaultProperties(int index) { // This method is called when the ArcCatalog user selects this evaluator under the Type column of the Evaluators dialog. // This method can be used to initialize any dialogs that the evaluator editor uses // Since this evaluator editor has no dialogs, it does not need to initialize anything } public int ValueChoice { // This evaluator editor does not support value choices set { } } public int ValueChoiceCount { // This evaluator editor has no value choices get { return 0; } } public string get_Descriptor(int index) { // This evaluator editor does not make use of descriptors return string.Empty; } public string get_FullDescription(int index) { // This property is the text representation of all of the settings made on this evaluator // This evaluator editor does not make any settings changes, so it returns an empty string return string.Empty; } public string get_ValueChoiceDescriptor(int choice) { // This evaluator editor does not make use of value choices return string.Empty; } #endregion } }
[Visual Basic .NET]
SelectionRestrictionEvaluatorEditor.vb
Imports Microsoft.VisualBasic Imports System Imports System.Runtime.InteropServices Imports System.Windows.Forms Imports ESRI.ArcGIS.esriSystem Imports ESRI.ArcGIS.CatalogUI Imports ESRI.ArcGIS.ADF.CATIDs Namespace SelectionRestriction <ClassInterface(ClassInterfaceType.None), Guid("C6724DF5-42A5-4795-A21C-93A29450D686")> _ Public Class SelectionRestrictionEvaluatorEditor : Implements IEvaluatorEditor #Region "Component Category Registration" <ComRegisterFunction(), ComVisible(False)> _ Private Shared Sub RegisterFunction(ByVal registerType As Type) Dim regKey As String = String.Format("HKEY_CLASSES_ROOT\CLSID\{{{0}}}", registerType.GUID) NetworkEvaluatorEditor.Register(regKey) End Sub <ComUnregisterFunction(), ComVisible(False)> _ Private Shared Sub UnregisterFunction(ByVal registerType As Type) Dim regKey As String = String.Format("HKEY_CLASSES_ROOT\CLSID\{{{0}}}", registerType.GUID) NetworkEvaluatorEditor.Unregister(regKey) End Sub #End Region #Region "IEvaluatorEditor Members" Public ReadOnly Property ContextSupportsEditDescriptors() As Boolean Implements IEvaluatorEditor.ContextSupportsEditDescriptors ' The descriptor text is the single line of text in the Evaluators dialog that appears under the Value column ' This property indicates whether the descriptor text can be directly edited in the dialog by the user ' Since this evaluator editor does not make use of descriptors, it returns false Get Return False End Get End Property Public ReadOnly Property ContextSupportsEditProperties() As Boolean Implements IEvaluatorEditor.ContextSupportsEditProperties ' This property indicates whether the ArcCatalog user is able to bring up a dialog by clicking the Properties button (or pressing F12) in order to specify settings for the evaluator ' This evaluator editor does not support editing of the evaluator properties Get Return False End Get End Property Public Sub EditDescriptors(ByVal value As String) Implements IEvaluatorEditor.EditDescriptors ' This evaluator editor does not make use of descriptors End Sub Public WriteOnly Property EditEvaluators() As IEditEvaluators Implements IEvaluatorEditor.EditEvaluators ' This property is used by ArcCatalog to set a reference to its EditEvaluators object on each registered EvaluatorEditor ' This allows each EvaluatorEditor to access the current state of ArcCatalog's Evaluators dialog, such as how many evaluators are listed and which evaluators are currently selected ' This evaluator editor does not make use of EditEvaluators Set(ByVal value As IEditEvaluators) End Set End Property Public Function EditProperties(ByVal parentWindow As Integer) As Boolean Implements IEvaluatorEditor.EditProperties ' This evaluator editor does not support editing of the evaluator properties Return False End Function Public ReadOnly Property EvaluatorCLSID() As UID Implements IEvaluatorEditor.EvaluatorCLSID Get ' This property returns the GUID of this EvaluatorEditor's associated INetworkEvaluator (e.g., SelectionRestrictionEvaluator) Dim uid As UID = New UIDClass() uid.Value = "{32C6254F-7E03-4b57-9EA2-35EA8DAFA306}" Return uid End Get End Property Public Sub SetDefaultProperties(ByVal index As Integer) Implements IEvaluatorEditor.SetDefaultProperties ' This method is called when the ArcCatalog user selects this evaluator under the Type column of the Evaluators dialog. ' This method can be used to initialize any dialogs that the evaluator editor uses ' Since this evaluator editor has no dialogs, it does not need to initialize anything End Sub Public WriteOnly Property ValueChoice() As Integer Implements IEvaluatorEditor.ValueChoice ' This evaluator editor does not support value choices Set(ByVal value As Integer) End Set End Property Public ReadOnly Property ValueChoiceCount() As Integer Implements IEvaluatorEditor.ValueChoiceCount ' This evaluator editor has no value choices Get Return 0 End Get End Property Public ReadOnly Property Descriptor(ByVal index As Integer) As String Implements IEvaluatorEditor.Descriptor ' This evaluator editor does not make use of descriptors Get Return String.Empty End Get End Property Public ReadOnly Property FullDescription(ByVal index As Integer) As String Implements IEvaluatorEditor.FullDescription ' This property is the text representation of all of the settings made on this evaluator ' This evaluator editor does not make any settings changes, so it returns an empty string Get Return String.Empty End Get End Property Public ReadOnly Property ValueChoiceDescriptor(ByVal choice As Integer) As String Implements IEvaluatorEditor.ValueChoiceDescriptor ' This evaluator editor does not make use of value choices Get Return String.Empty End Get End Property #End Region End Class End Namespace