ArcObjects Library Reference  

EngineApplication

About the Tabbed feature inspector Sample

[C#]

EngineApplication.cs

using System.Drawing;
using System.Windows.Forms;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.Controls;
using TabbedFeatureInspector;

namespace TabbedInspectorEngineApplication
{
  public partial class EngineApplication : Form, IApplicationServices
  {
    public EngineApplication()
    {
      InitializeComponent();

      // Store the application services interface instance in the toolbar's custom property, so
      // commands can get to it to access the TOC and update the status message.
      toolbar.CustomProperty = this;
    }

    #region IApplicationServices implementation

    public void SetStatusMessage(string message, bool error)
    {
      MethodInvoker updateStatus = delegate
                                     {
                                       status.Text = message;
                                       status.BackColor = error ? Color.Red : SystemColors.ButtonFace;
                                       status.ForeColor = error ? Color.White : SystemColors.ControlText;
                                     };

      if (status.InvokeRequired)
        status.Invoke(updateStatus);
      else
        updateStatus();
    }

    public IFeatureLayer GetLayerSelectedInTOC()
    {
      esriTOCControlItem itemType = esriTOCControlItem.esriTOCControlItemNone;
      object unkIgnore = null;
      ILayer selectedLayer = null;
      object dataIgnore = null;
      IBasicMap mapIgnore = null;

      tableOfContents.GetSelectedItem(ref itemType, ref mapIgnore, ref selectedLayer, ref unkIgnore, ref dataIgnore);

      return selectedLayer as IFeatureLayer;
    }

    #endregion

  }
}
[Visual Basic .NET]

EngineApplication.vb

Imports System.Drawing
Imports System.Windows.Forms
Imports ESRI.ArcGIS.Carto
Imports ESRI.ArcGIS.Controls
Imports TabbedInspectorVB2005.TabbedFeatureInspector

Namespace TabbedInspectorEngineApplication
  Partial Public Class EngineApplication
    Inherits Form
    Implements IApplicationServices

    Private message As String
        Private err As Boolean
        <STAThread()> _
        Shared Sub Main()
            ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Engine)
            Application.Run(New EngineApplication())
        End Sub
    Public Sub New()
      InitializeComponent()

      ' Store the application services interface instance in the toolbar's custom property, so
      ' commands can get to it to access the TOC and update the status message.
      AxToolbarControl1.CustomProperty = Me
    End Sub

    Public Sub work()
      status.Text = message
      status.BackColor = IIf(err, Color.Red, SystemColors.ButtonFace)
      status.ForeColor = IIf(err, Color.White, SystemColors.ControlText)
    End Sub

#Region "IApplicationServices implementation"

    Public Sub SetStatusMessage(ByVal msg As String, ByVal fail As Boolean) Implements IApplicationServices.SetStatusMessage
      message = msg
      err = fail
      Dim UpdateStatus As MethodInvoker = AddressOf work
      If (status.InvokeRequired) Then
        status.Invoke(UpdateStatus)
      Else
        UpdateStatus()
      End If
    End Sub

    Public Function GetLayerSelectedInTOC() As IFeatureLayer Implements IApplicationServices.GetLayerSelectedInTOC
      Dim itemType As esriTOCControlItem = esriTOCControlItem.esriTOCControlItemNone
      Dim unkIgnore As Object = Nothing
      Dim selectedLayer As ILayer = Nothing
      Dim dataIgnore As Object = Nothing
      Dim mapIgnore As IBasicMap = Nothing

      AxTOCControl1.GetSelectedItem(itemType, mapIgnore, selectedLayer, unkIgnore, dataIgnore)

      GetLayerSelectedInTOC = selectedLayer
    End Function
    Friend WithEvents AxToolbarControl1 As ESRI.ArcGIS.Controls.AxToolbarControl
    Friend WithEvents AxTOCControl1 As ESRI.ArcGIS.Controls.AxTOCControl
    Friend WithEvents AxMapControl1 As ESRI.ArcGIS.Controls.AxMapControl
    Friend WithEvents AxLicenseControl1 As ESRI.ArcGIS.Controls.AxLicenseControl
    Friend WithEvents status As System.Windows.Forms.TextBox

#End Region

    Private Sub InitializeComponent()
            Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(EngineApplication))
            Me.AxToolbarControl1 = New ESRI.ArcGIS.Controls.AxToolbarControl
            Me.AxTOCControl1 = New ESRI.ArcGIS.Controls.AxTOCControl
            Me.AxMapControl1 = New ESRI.ArcGIS.Controls.AxMapControl
            Me.AxLicenseControl1 = New ESRI.ArcGIS.Controls.AxLicenseControl
            Me.status = New System.Windows.Forms.TextBox
            CType(Me.AxToolbarControl1, System.ComponentModel.ISupportInitialize).BeginInit()
            CType(Me.AxTOCControl1, System.ComponentModel.ISupportInitialize).BeginInit()
            CType(Me.AxMapControl1, System.ComponentModel.ISupportInitialize).BeginInit()
            CType(Me.AxLicenseControl1, System.ComponentModel.ISupportInitialize).BeginInit()
            Me.SuspendLayout()
            '
            'AxToolbarControl1
            '
            Me.AxToolbarControl1.Location = New System.Drawing.Point(-1, -1)
            Me.AxToolbarControl1.MaximumSize = New System.Drawing.Size(1000, 1000)
            Me.AxToolbarControl1.Name = "AxToolbarControl1"
            Me.AxToolbarControl1.OcxState = CType(resources.GetObject("AxToolbarControl1.OcxState"), System.Windows.Forms.AxHost.State)
            Me.AxToolbarControl1.Size = New System.Drawing.Size(700, 28)
            Me.AxToolbarControl1.TabIndex = 0
            '
            'AxTOCControl1
            '
            Me.AxTOCControl1.Location = New System.Drawing.Point(-1, 33)
            Me.AxTOCControl1.Name = "AxTOCControl1"
            Me.AxTOCControl1.OcxState = CType(resources.GetObject("AxTOCControl1.OcxState"), System.Windows.Forms.AxHost.State)
            Me.AxTOCControl1.Size = New System.Drawing.Size(265, 394)
            Me.AxTOCControl1.TabIndex = 1
            '
            'AxMapControl1
            '
            Me.AxMapControl1.Location = New System.Drawing.Point(270, 33)
            Me.AxMapControl1.MaximumSize = New System.Drawing.Size(1000, 1000)
            Me.AxMapControl1.Name = "AxMapControl1"
            Me.AxMapControl1.OcxState = CType(resources.GetObject("AxMapControl1.OcxState"), System.Windows.Forms.AxHost.State)
            Me.AxMapControl1.Size = New System.Drawing.Size(429, 394)
            Me.AxMapControl1.TabIndex = 2
            '
            'AxLicenseControl1
            '
            Me.AxLicenseControl1.Enabled = True
            Me.AxLicenseControl1.Location = New System.Drawing.Point(105, 303)
            Me.AxLicenseControl1.Name = "AxLicenseControl1"
            Me.AxLicenseControl1.OcxState = CType(resources.GetObject("AxLicenseControl1.OcxState"), System.Windows.Forms.AxHost.State)
            Me.AxLicenseControl1.Size = New System.Drawing.Size(32, 32)
            Me.AxLicenseControl1.TabIndex = 3
            '
            'status
            '
            Me.status.Location = New System.Drawing.Point(-1, 433)
            Me.status.MaximumSize = New System.Drawing.Size(1000, 1000)
            Me.status.Name = "status"
            Me.status.Size = New System.Drawing.Size(700, 20)
            Me.status.TabIndex = 4
            '
            'EngineApplication
            '
            Me.ClientSize = New System.Drawing.Size(702, 455)
            Me.Controls.Add(Me.status)
            Me.Controls.Add(Me.AxLicenseControl1)
            Me.Controls.Add(Me.AxMapControl1)
            Me.Controls.Add(Me.AxTOCControl1)
            Me.Controls.Add(Me.AxToolbarControl1)
            Me.Name = "EngineApplication"
            Me.Text = "Engine Application"
            CType(Me.AxToolbarControl1, System.ComponentModel.ISupportInitialize).EndInit()
            CType(Me.AxTOCControl1, System.ComponentModel.ISupportInitialize).EndInit()
            CType(Me.AxMapControl1, System.ComponentModel.ISupportInitialize).EndInit()
            CType(Me.AxLicenseControl1, System.ComponentModel.ISupportInitialize).EndInit()
            Me.ResumeLayout(False)
            Me.PerformLayout()

        End Sub
  End Class
End Namespace