Cluster Analysis
DendroGenUI.cls
'This class creates a Cluster Analysis command for use in the context menu of a feature layer.

Option Explicit

Implements ICommand

Private m_pApp As IApplication
Private m_pMXDoc As IMxDocument
Private m_pFeatLayer As IFeatureLayer
Private m_pForm As frmMakeDendro

Private Property Get ICommand_Bitmap() As esriCore.OLE_HANDLE

End Property

Private Property Get ICommand_Caption() As String
  ICommand_Caption = "Cluster Analysis"
End Property

Private Property Get ICommand_Category() As String
  ICommand_Category = "Analysis Samples"
End Property

Private Property Get ICommand_Checked() As Boolean

End Property

Private Property Get ICommand_Enabled() As Boolean
  Dim pUnKnown As IUnknown
  
  ' enable if command is in a feature layer context menu
  ICommand_Enabled = False
  Set pUnKnown = m_pMXDoc.ContextItem
  If TypeOf pUnKnown Is IFeatureLayer Then
    Set m_pFeatLayer = pUnKnown
    ICommand_Enabled = True
  End If
    
End Property

Private Property Get ICommand_HelpContextID() As Long

End Property

Private Property Get ICommand_HelpFile() As String
    
End Property

Private Property Get ICommand_Message() As String
  ICommand_Message = "Performs cluster analysis and creates a dendrogram"
End Property

Private Property Get ICommand_Name() As String
  ICommand_Name = "Visualization_Dendrogram"
End Property

Private Sub ICommand_OnClick()
  Set m_pForm.SourceLayer = m_pFeatLayer
  Set m_pForm.MxDocument = m_pMXDoc
  m_pForm.Show vbModal
  
End Sub

Private Sub ICommand_OnCreate(ByVal hook As Object)
  Set m_pApp = hook
  Set m_pMXDoc = m_pApp.Document
  Set m_pForm = New frmMakeDendro
End Sub

Private Property Get ICommand_Tooltip() As String
  ICommand_Tooltip = "Performs cluster analysis and creates a dendrogram"
End Property