ArcObjects Library Reference  

Autorefresh

About the Schematic diagram auto refresh Sample

[C#]

Autorefresh.cs

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

using ESRI.ArcGIS.esriSystem;
using ESRI.ArcGIS.Framework;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.ArcMapUI;
using ESRI.ArcGIS.Schematic;
using ESRI.ArcGIS.SchematicControls;
using ESRI.ArcGIS.SchematicUI;

namespace Autorefresh
{
	public class Autorefresh : ESRI.ArcGIS.Desktop.AddIns.Button
	{
		IApplication m_application;                        // Valid upon create
		ISchematicInMemoryDiagram m_schematicInMemoryDiagram;
		ISchematicTarget m_schematicTarget = null;
		protected FormAutoRefresh m_formAuto;

		public Autorefresh()
		{
			m_application = ArcMap.Application;
		}

		protected override void OnClick()
		{
			if (m_schematicTarget != null && m_schematicTarget.SchematicTarget != null && m_schematicTarget.SchematicTarget.IsEditingSchematicDiagram())
			{
				if (m_schematicInMemoryDiagram == null)
					m_schematicInMemoryDiagram = m_schematicTarget.SchematicTarget.SchematicInMemoryDiagram;

				if (m_schematicInMemoryDiagram != null)
				{
					if (m_formAuto == null)
					{
						m_formAuto = new FormAutoRefresh();
						try
						{
							m_formAuto.InitializeSecond();
							m_formAuto.InitializeMinute();
						}
						catch (Exception e)
						{
							System.Windows.Forms.MessageBox.Show(e.Message);
						}
					}
					m_formAuto.SetSchematicInmemoryDiagram(m_schematicInMemoryDiagram);
					m_formAuto.Appli = m_application;

					m_formAuto.Show();
				}
			}
		}

		protected override void OnUpdate()
		{
			if (m_schematicTarget == null)
			{
				IExtension extention = null;
				IExtensionManager extensionManager;

				extensionManager = (IExtensionManager)m_application;
				for (int i = 0; i < extensionManager.ExtensionCount; i++)
				{
					extention = extensionManager.get_Extension(i);
					if (extention.Name == "ESRI Schematic Extension")
						break;
				}

				if (extention != null)
				{
					SchematicExtension schematicExtension = extention as SchematicExtension;
					m_schematicTarget = schematicExtension as ISchematicTarget;
				}
			}

			if (m_schematicTarget != null)
			{
				ISchematicLayer schematicLayer;
				schematicLayer = m_schematicTarget.SchematicTarget;

				if (schematicLayer == null)
				{
					Enabled = false;
					if (m_formAuto != null) m_formAuto.SetAutoOff(true);
				}
				else if (schematicLayer.IsEditingSchematicDiagram())
					Enabled = true;
				else
				{
					Enabled = false;
					if (m_formAuto != null) m_formAuto.SetAutoOff(true);
				}
			}
			else
			{
				Enabled = false;
				if (m_formAuto != null) m_formAuto.SetAutoOff(true);
			}
		}
	}
}


[Visual Basic .NET]

Autorefresh.vb

Imports ESRI.ArcGIS.esriSystem
Imports ESRI.ArcGIS.Schematic
Imports ESRI.ArcGIS.Framework
Imports ESRI.ArcGIS.SchematicControls
Imports ESRI.ArcGIS.SchematicUI

Public Class Autorefresh
	Inherits ESRI.ArcGIS.Desktop.AddIns.Button

  Private m_application As ESRI.ArcGIS.Framework.IApplication
	Private m_schematicTarget As ISchematicTarget
	Private m_schematicInMemoryDiagram As ISchematicInMemoryDiagram
	Protected m_formAutorefresh As FormAutorefresh

	Public Sub New()
		m_application = My.ArcMap.Application
	End Sub

	Protected Overrides Sub OnClick()
		If m_schematicTarget IsNot Nothing AndAlso m_schematicTarget.SchematicTarget IsNot Nothing AndAlso m_schematicTarget.SchematicTarget.IsEditingSchematicDiagram() Then
			If m_schematicInMemoryDiagram Is Nothing Then
				m_schematicInMemoryDiagram = m_schematicTarget.SchematicTarget.SchematicInMemoryDiagram
			End If

			If m_schematicInMemoryDiagram IsNot Nothing Then
				If (m_formAutorefresh Is Nothing) Then
					m_formAutorefresh = New FormAutorefresh()
					Try
						m_formAutorefresh.InitializeSecond()
						m_formAutorefresh.InitializeMinute()
					Catch e As Exception
						System.Windows.Forms.MessageBox.Show(e.Message)
					End Try
				End If
			End If

			m_formAutorefresh.SetSchematicInmemoryDiagram(m_schematicInMemoryDiagram)
			m_formAutorefresh.Appli(m_application)
			m_formAutorefresh.Show()

		End If
	End Sub

	Protected Overrides Sub OnUpdate()

		If m_schematicTarget Is Nothing Then
			Dim extention As ESRI.ArcGIS.esriSystem.IExtension
			Dim extensionManager As ESRI.ArcGIS.esriSystem.IExtensionManager

			extention = Nothing
			extensionManager = m_application
			For i As Integer = 0 To extensionManager.ExtensionCount - 1
				extention = extensionManager.Extension(i)
				If extention.Name = "ESRI Schematic Extension" Then
					Exit For
				End If
			Next

			If extention IsNot Nothing Then
				Dim schematicExtension As SchematicExtension
				schematicExtension = TryCast(extention, SchematicExtension)
				m_schematicTarget = TryCast(schematicExtension, ISchematicTarget)
			End If
		End If

		If m_schematicTarget IsNot Nothing Then
			Dim schematicLayer As ISchematicLayer
			schematicLayer = m_schematicTarget.SchematicTarget

			If schematicLayer Is Nothing Then
				Enabled = False
				If (m_formAutorefresh IsNot Nothing) Then m_formAutorefresh.SetAutoOff(True)
			ElseIf schematicLayer.IsEditingSchematicDiagram() Then
				Enabled = True
			Else
				Enabled = False
				If (m_formAutorefresh IsNot Nothing) Then m_formAutorefresh.SetAutoOff(True)
			End If
		Else
			Enabled = False
			If (m_formAutorefresh IsNot Nothing) Then m_formAutorefresh.SetAutoOff(True)
		End If

	End Sub
End Class