About the Simple point plug-in data source Sample
[C#]
SimplePointWksp.cs
using System;
using System.Runtime.InteropServices;
using ESRI.ArcGIS.esriSystem;
using ESRI.ArcGIS.Geodatabase;
namespace ESRI.ArcGIS.Samples.SimplePointPlugin
{
/// <summary>
/// Summary description for SimplePointWksp.
/// </summary>
[ComVisible(false)]
internal class SimplePointWksp: IPlugInWorkspaceHelper, IPlugInMetadataPath
{
private string m_sWkspPath;
public SimplePointWksp(string wkspPath)
{
//HIGHLIGHT: set up workspace path
if (System.IO.Directory.Exists(wkspPath))
m_sWkspPath = wkspPath;
else
m_sWkspPath = null;
}
#region IPlugInWorkspaceHelper Members
public bool OIDIsRecordNumber
{
get
{
return true; //OID's are continuous
}
}
public IArray get_DatasetNames(esriDatasetType DatasetType)
{
if (m_sWkspPath == null)
return null;
//HIGHLIGHT: get_DatasetNames - Go through wksString to look for csp files
if (DatasetType != esriDatasetType.esriDTAny &&
DatasetType != esriDatasetType.esriDTTable)
return null;
string[] sFiles = System.IO.Directory.GetFiles(m_sWkspPath, "*.csp");
if (sFiles == null || sFiles.Length == 0)
return null;
IArray datasets = new ArrayClass();
foreach (string sFileName in sFiles)
{
SimplePointDataset ds = new SimplePointDataset(m_sWkspPath, System.IO.Path.GetFileNameWithoutExtension(sFileName));
datasets.Add(ds);
}
return datasets;
}
public IPlugInDatasetHelper OpenDataset(string localName)
{
//HIGHLIGHT: OpenDataset - give workspace path and local file name
if (m_sWkspPath == null)
return null;
SimplePointDataset ds = new SimplePointDataset(m_sWkspPath, localName);
return (IPlugInDatasetHelper)ds;
}
public INativeType get_NativeType(esriDatasetType DatasetType, string localName)
{
return null;
}
public bool RowCountIsCalculated
{
get
{
return true;
}
}
#endregion
#region IPlugInMetadataPath Members
//HIGHLIGHT: implement metadata so export data in arcmap works correctly
public string get_MetadataPath(string localName)
{
return System.IO.Path.Combine(m_sWkspPath, localName + ".csp.xml");
}
#endregion
}
}
[Visual Basic .NET]
SimplePointWksp.vb
Imports Microsoft.VisualBasic
Imports System
Imports System.Runtime.InteropServices
Imports ESRI.ArcGIS.esriSystem
Imports ESRI.ArcGIS.Geodatabase
''' <summary>
''' Summary description for SimplePointWksp.
''' </summary>
<ComVisible(False)> _
Friend Class SimplePointWksp
Implements IPlugInWorkspaceHelper, IPlugInMetadataPath
Private m_sWkspPath As String
#Region "class constructor"
Public Sub New(ByVal wkspPath As String)
'HIGHLIGHT: set up workspace path
If System.IO.Directory.Exists(wkspPath) Then
m_sWkspPath = wkspPath
Else
m_sWkspPath = Nothing
End If
End Sub
#End Region
#Region "IPlugInWorkspaceHelper Members"
Public ReadOnly Property OIDIsRecordNumber() As Boolean Implements IPlugInWorkspaceHelper.OIDIsRecordNumber
Get
Return True 'OID's are continuous
End Get
End Property
Public Function OpenDataset(ByVal localName As String) As IPlugInDatasetHelper Implements IPlugInWorkspaceHelper.OpenDataset
'HIGHLIGHT: OpenDataset - give workspace path and local file name
If m_sWkspPath Is Nothing Then
Return Nothing
End If
Dim ds As SimplePointDataset = New SimplePointDataset(m_sWkspPath, localName)
Return CType(ds, IPlugInDatasetHelper)
End Function
Public ReadOnly Property RowCountIsCalculated() As Boolean Implements IPlugInWorkspaceHelper.RowCountIsCalculated
Get
Return True
End Get
End Property
Public ReadOnly Property DatasetNames(ByVal DatasetType As ESRI.ArcGIS.Geodatabase.esriDatasetType) As ESRI.ArcGIS.esriSystem.IArray Implements ESRI.ArcGIS.Geodatabase.IPlugInWorkspaceHelper.DatasetNames
Get
If m_sWkspPath Is Nothing Then
Return Nothing
End If
'HIGHLIGHT: DatasetNames - Go through wksString to look for csp files
If DatasetType <> esriDatasetType.esriDTAny AndAlso DatasetType <> esriDatasetType.esriDTTable Then
Return Nothing
End If
Dim sFiles As String() = System.IO.Directory.GetFiles(m_sWkspPath, "*.csp")
If sFiles Is Nothing OrElse sFiles.Length = 0 Then
Return Nothing
End If
Dim datasets As IArray = New ArrayClass()
For Each sFileName As String In sFiles
Dim ds As SimplePointDataset = New SimplePointDataset(m_sWkspPath, System.IO.Path.GetFileNameWithoutExtension(sFileName))
datasets.Add(ds)
Next sFileName
Return datasets
End Get
End Property
Public ReadOnly Property NativeType(ByVal DatasetType As ESRI.ArcGIS.Geodatabase.esriDatasetType, ByVal localName As String) As ESRI.ArcGIS.Geodatabase.INativeType Implements ESRI.ArcGIS.Geodatabase.IPlugInWorkspaceHelper.NativeType
Get
Return Nothing
End Get
End Property
#End Region
#Region "IPlugInMetadataPath Members"
'HIGHLIGHT: implement metadata so export data in arcmap works correctly
Public ReadOnly Property MetadataPath(ByVal localName As String) As String Implements ESRI.ArcGIS.Geodatabase.IPlugInMetadataPath.MetadataPath
Get
Return System.IO.Path.Combine(m_sWkspPath, localName & ".csp.xml")
End Get
End Property
#End Region
End Class