Imports System
Imports System.Windows.Forms
Imports Infragistics.Win.UltraWinToolbars
Namespace ToolProvider
#Region "ToolProviderAsManager class (derived from UltraToolbarsManager)"
' This class demonstrates how to write a custom tool provider that derives from UltraToolbarsManager.
' See the notes above for more information on the options available when creating custom tool providers.
'
' The ToolProviderAsManager class performs 2 important functions:
' 1. Registering the custom tool types that it supports (see the private ToolFactory class's constructor)
' When registering a custom tool type, the tool provider:
' a. supplies a reference to an IToolProvider implementation
' b. supplies a Guid to identify the custom tool type. This Guid will be contained in the
' customizer's request to create an instance of the custom tool type.
' c. supplies a descriptive string used in the NewTool dialog to identify the custom tool
' d. supplies a string to be used as the basis for the custom tool instance's key and caption
'
' 2. Contains a private ToolFactory class that implements the IToolProvider interface which allows the
' Customizer to call back when it needs to create an instance of a registered custom tool.
'
' The ToolProviderAsManager also overrides the virtual property ShowBuiltInToolTypesInCustomizer to
' demonstrate how to prevent toolbars manager from displaying the built-in tools in the designtime
' customizer.
Public Class ToolProviderAsManager
Inherits UltraToolbarsManager
#Region "Member Variables"
' A static reference to our private tool provider class. An instance of this class is
' created in our static constructor.
Private Shared m_toolFactory As ToolProviderAsManager.ToolFactory = Nothing
#End Region 'Member Variables
#Region "Constructor"
'/ <summary>
'/ Static constructor used to create a single instance of our private tool provider class.
'/ </summary>
Shared Sub New()
ToolProviderAsManager.m_toolFactory = New ToolProviderAsManager.ToolFactory()
End Sub
'/ <summary>
'/ Standard constructor.
'/ </summary>
Public Sub New()
End Sub
#End Region 'Constructor
#Region "Constants"
Friend Shared ReadOnly CUSTOMBUTTON2_TOOLID As Guid = New Guid("66227453-9991-1019-ABC4-872BCDEF5413")
Friend Shared ReadOnly CUSTOMCOMBOBOX2_TOOLID As Guid = New Guid("66227453-9991-1019-ABC4-872BCDEF5414")
#End Region 'Constants
#Region "Base Class Overrides"
#Region "ShowBuiltInToolTypesInCustomizer"
Protected Overrides ReadOnly Property ShowBuiltInToolTypesInCustomizer() As Boolean
Get
' Comment-out the following line and uncomment the subsequent line to prevent the
' toolbars manager's built-in tooltypes from being displayed in the runtime customizer.
Return True
'return false;
End Get
End Property
#End Region 'ShowBuiltInToolTypesInCustomizer
#End Region 'Base Class Overrides
#Region "Private Class ToolFactory"
'/ <summary>
'/ A private class that implements IToolProvider.
'/ </summary>
Private Class ToolFactory
Implements IToolProvider
#Region "Constructor"
Friend Sub New()
Dim result As Boolean
' Register some custom tool types with UltraToolbarsManager.
Try
' CustomButtonTool class.
result = UltraToolbarsManager.RegisterCustomToolType(Me, ToolProviderAsManager.CUSTOMBUTTON2_TOOLID, "Custom Button", "CustomButtonTool")
If result = False Then
MessageBox.Show("Error registering CustomButtonTool class!")
End If
' CustomComboBoxTool class.
result = UltraToolbarsManager.RegisterCustomToolType(Me, ToolProviderAsManager.CUSTOMCOMBOBOX2_TOOLID, "Custom ComboBox", "CustomComboBoxTool")
If result = False Then
MessageBox.Show("Error registering CustomComboBoxTool class!")
End If
Catch
MessageBox.Show("Error registering custom tool classes!")
End Try
End Sub
#End Region 'Constructor
#Region "CreateToolInstance"
'/ <summary>
'/ Creates and returns an instance of the tool identified by the specified GUID id.
'/ </summary>
'/ <param name="toolID">The Guid identifier specified for the tool when it was registered.</param>
'/ <param name="key">The key assigned to the tool.</param>
'/ <returns>A new instance of the specified tool.</returns>
Function CreateToolInstance(ByVal toolID As Guid, ByVal key As String) As ToolBase Implements IToolProvider.CreateToolInstance
If toolID.Equals(ToolProviderAsManager.CUSTOMBUTTON2_TOOLID) Then
Return New CustomButtonTool(key)
End If
If toolID.Equals(ToolProviderAsManager.CUSTOMCOMBOBOX2_TOOLID) Then
Return New CustomComboBoxTool(key)
End If
' The tool ID is unknown to us so return null.
Return Nothing
End Function
#End Region 'CreateToolInstance
End Class
#End Region 'Private Class ToolFactory
End Class
#End Region 'ToolProviderAsManager class (derived from UltraToolbarsManager)
End Namespace