ArcObjects Library Reference  

FilterSubsetEvaluatorEditor

About the Subset network evaluators Sample

[C#]

FilterSubsetEvaluatorEditor.cs

using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using ESRI.ArcGIS.esriSystem;
using ESRI.ArcGIS.CatalogUI;
using ESRI.ArcGIS.ADF.CATIDs;

namespace SubsetNetworkEvaluatorsUI
{
	/// <summary>
	/// The FilterSubsetEvaluatorEditor is used to help you to assign the filter subset evaluator manually
	/// using the evaluator dialog launched from the attributes page of the network dataset property sheet.
	/// The registration of the class as a NetworkEvaluatorEditor component allows the evaluator to show up
	/// as a choice of types in the evaluators dialog.
	/// </summary>
	[ClassInterface(ClassInterfaceType.None)]
	[Guid("bce52bcb-f560-4cce-94a5-a7625626de8c")]
	[ProgId("SubsetNetworkEvaluatorsUI.FilterSubsetEvaluatorEditor")]
	public class FilterSubsetEvaluatorEditor : 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 Member Variables

		private IEditEvaluators m_EditEvaluators;
		private static string s_description =
@"Filter Subset Evaluator:

Usage: Restricts a subset of network elements included in a list of EIDs, or optionally restricts
those elements NOT in the list of EIDs if FilterSubset_Restrict is false.  If FilterSubset_Restrict is false
then in the special case that a source has NO EIDs in the list then no elements are restricted
rather than restricting all elements.

Parameters: (name:defaultvalue; type:domain; description)
-FilterSubset_Restrict:true; Boolean; indicated if listed EIDs should be restricted (FilterSubset_Restrict=true),
or those not in the EID list should be restricted (FilterSubset_Restrict=false)
-FilterSubset_EIDs_<Source>:<null>; integer[]; subset of EIDs for a given source name to filter
(replace <source> with a specific network source name such as streets without angle
brackets to filter a specified subset of element ids for that source.  Multiple parameter
EID subset list parameters can be added to filter a subset of multiple network sources.";

		#endregion

		#region IEvaluatorEditor Members

		public bool ContextSupportsEditDescriptors
		{
			// TODO: implement alternative ContextSupportsEditDescriptors logic here
			get { return false; }
		}

		public bool ContextSupportsEditProperties
		{
			// TODO: implement alternative ContextSupportsEditProperties logic here
			get { return true; }
		}

		public void EditDescriptors(string value)
		{
			// TODO: implement EditDescriptors
		}

		public IEditEvaluators EditEvaluators
		{
			// TODO: implement alternative EditEvaluators logic here
			set { m_EditEvaluators = value; }
		}

		public bool EditProperties(int parentWindow)
		{
			SimpleEvaluatorProperties dlg = new SimpleEvaluatorProperties(s_description);
			IWin32Window parentWin32Handle = (IWin32Window)(new WindowWrapper((IntPtr)parentWindow));
			dlg.ShowDialog(parentWin32Handle);

			return false; // edited
		}

		public UID EvaluatorCLSID
		{
			get
			{
				UID uid = new UIDClass();
				uid.Value = "{e2a9fbbf-8950-48cb-b487-0ee3f43dccca}";    // Returns the GUID of FilterEvaluator
				return uid;
			}
		}

		public void SetDefaultProperties(int index)
		{
			// TODO: implement SetDefaultProperties
		}

		public int ValueChoice
		{
			set
			{
				// TODO: implement ValueChoice
			}
		}

		public int ValueChoiceCount
		{
			// TODO: implement alternative ValueChoiceCount logic here
			get { return 0; }
		}

		public string get_Descriptor(int index)
		{
			// TODO: implement alternative get_Descriptor logic here
			return string.Empty;
		}

		public string get_FullDescription(int index)
		{
			// TODO: implement alternative get_FullDescription logic here
			return string.Empty;
		}

		public string get_ValueChoiceDescriptor(int choice)
		{
			// TODO: implement alternative get_ValueChoiceDescriptor logic here
			return string.Empty;
		}

		#endregion
	}
}

[Visual Basic .NET]

FilterSubsetEvaluatorEditor.vb

Imports Microsoft.VisualBasic
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports System.Runtime.InteropServices
Imports System.Windows.Forms
Imports ESRI.ArcGIS.esriSystem
Imports ESRI.ArcGIS.CatalogUI
Imports ESRI.ArcGIS.ADF.CATIDs

Namespace SubsetNetworkEvaluatorsUI
	''' <summary>
	''' The FilterSubsetEvaluatorEditor is used to help you to assign the filter subset evaluator manually
	''' using the evaluator dialog launched from the attributes page of the network dataset property sheet.
	''' The registration of the class as a NetworkEvaluatorEditor component allows the evaluator to show up
	''' as a choice of types in the evaluators dialog.
	''' </summary>
	<ClassInterface(ClassInterfaceType.None), Guid("bce52bcb-f560-4cce-94a5-a7625626de8c"), ProgId("SubsetNetworkEvaluatorsUI.FilterSubsetEvaluatorEditor")> _
	Public Class FilterSubsetEvaluatorEditor : 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 "Member Variables"

		Private m_EditEvaluators As IEditEvaluators
		Private Shared s_description As String = "Filter Subset Evaluator:" & ControlChars.CrLf & ControlChars.CrLf & "Usage: Restricts a subset of network elements included in a list of EIDs, or optionally restricts" & ControlChars.CrLf & "those elements NOT in the list of EIDs if FilterSubset_Restrict is false.  If FilterSubset_Restrict is false" & ControlChars.CrLf & "then in the special case that a source has NO EIDs in the list then no elements are restricted" & ControlChars.CrLf & "rather than restricting all elements." & ControlChars.CrLf & ControlChars.CrLf & "Parameters: (name:defaultvalue; type:domain; description)" & ControlChars.CrLf & "-FilterSubset_Restrict:true; Boolean; indicated if listed EIDs should be restricted (FilterSubset_Restrict=true)," & ControlChars.CrLf & "or those not in the EID list should be restricted (FilterSubset_Restrict=false)" & ControlChars.CrLf & "-FilterSubset_EIDs_<Source>:<null>; integer[]; subset of EIDs for a given source name to filter" & ControlChars.CrLf & "(replace <source> with a specific network source name such as streets without angle" & ControlChars.CrLf & "brackets to filter a specified subset of element ids for that source.  Multiple parameter" & ControlChars.CrLf & "EID subset list parameters can be added to filter a subset of multiple network sources."

#End Region

#Region "IEvaluatorEditor Members"

		Public ReadOnly Property ContextSupportsEditDescriptors() As Boolean Implements IEvaluatorEditor.ContextSupportsEditDescriptors
			' TODO: implement alternative ContextSupportsEditDescriptors logic here
			Get
				Return False
			End Get
		End Property

		Public ReadOnly Property ContextSupportsEditProperties() As Boolean Implements IEvaluatorEditor.ContextSupportsEditProperties
			' TODO: implement alternative ContextSupportsEditProperties logic here
			Get
				Return True
			End Get
		End Property

		Public Sub EditDescriptors(ByVal value As String) Implements IEvaluatorEditor.EditDescriptors
			' TODO: implement EditDescriptors
		End Sub

		Public WriteOnly Property EditEvaluators() As IEditEvaluators Implements IEvaluatorEditor.EditEvaluators
			' TODO: implement alternative EditEvaluators logic here
			Set(ByVal value As IEditEvaluators)
				m_EditEvaluators = Value
			End Set
		End Property

		Public Function EditProperties(ByVal parentWindow As Integer) As Boolean Implements IEvaluatorEditor.EditProperties
			Dim dlg As SimpleEvaluatorProperties = New SimpleEvaluatorProperties(s_description)
			Dim parentWin32Handle As IWin32Window = CType(New WindowWrapper(New IntPtr(parentWindow)), IWin32Window)
			dlg.ShowDialog(parentWin32Handle)

			Return False ' edited
		End Function

		Public ReadOnly Property EvaluatorCLSID() As UID Implements IEvaluatorEditor.EvaluatorCLSID
			Get
				Dim uid As UID = New UIDClass()
				uid.Value = "{e2a9fbbf-8950-48cb-b487-0ee3f43dccca}" ' Returns the GUID of FilterEvaluator
				Return uid
			End Get
		End Property

		Public Sub SetDefaultProperties(ByVal index As Integer) Implements IEvaluatorEditor.SetDefaultProperties
			' TODO: implement SetDefaultProperties
		End Sub

		Public WriteOnly Property ValueChoice() As Integer Implements IEvaluatorEditor.ValueChoice
			Set(ByVal value As Integer)
				' TODO: implement ValueChoice
			End Set
		End Property

		Public ReadOnly Property ValueChoiceCount() As Integer Implements IEvaluatorEditor.ValueChoiceCount
			' TODO: implement alternative ValueChoiceCount logic here
			Get
				Return 0
			End Get
		End Property

		Public ReadOnly Property Descriptor(ByVal index As Integer) As String Implements ESRI.ArcGIS.CatalogUI.IEvaluatorEditor.Descriptor
			' TODO: implement alternative Descriptor logic here
			Get
				Return String.Empty
			End Get
		End Property

		Public ReadOnly Property FullDescription(ByVal index As Integer) As String Implements ESRI.ArcGIS.CatalogUI.IEvaluatorEditor.FullDescription
			' TODO: implement alternative FullDescription logic here
			Get
				Return String.Empty
			End Get
		End Property

		Public ReadOnly Property ValueChoiceDescriptor(ByVal choice As Integer) As String Implements ESRI.ArcGIS.CatalogUI.IEvaluatorEditor.ValueChoiceDescriptor
			' TODO: implement alternative ValueChoiceDescriptor logic here
			Get
				Return String.Empty
			End Get
		End Property

#End Region
	End Class
End Namespace