82 lines
3.6 KiB
VB.net
82 lines
3.6 KiB
VB.net
Imports System
|
|
Imports System.ComponentModel
|
|
Imports System.Collections.Generic
|
|
Imports System.Diagnostics
|
|
Imports System.Text
|
|
|
|
Imports DevExpress.ExpressApp
|
|
Imports DevExpress.ExpressApp.Actions
|
|
Imports DevExpress.Persistent.Base
|
|
Imports DevExpress.ExpressApp.Win.SystemModule
|
|
Imports DevExpress.ExpressApp.SystemModule
|
|
|
|
Public Class WinNewObjectViewVC
|
|
|
|
Inherits WinNewObjectViewController
|
|
|
|
Public Sub New()
|
|
MyBase.New()
|
|
|
|
'This call is required by the Component Designer.
|
|
InitializeComponent()
|
|
RegisterActions(components)
|
|
|
|
End Sub
|
|
Protected Overrides Sub OnActivated()
|
|
MyBase.OnActivated()
|
|
'Get the ShowNavigationItemController,
|
|
'then get its ShowNavigationItemAction and subscribe the SelectedItemChanged event
|
|
AddHandler Frame.GetController(Of ShowNavigationItemController)().ShowNavigationItemAction.SelectedItemChanged, AddressOf ShowNavigationItemAction_SelectedItemChanged
|
|
AddHandler CollectCreatableItemTypes, AddressOf MyController_CollectCreatableItemTypes
|
|
AddHandler CollectDescendantTypes, AddressOf MyController_CollectDescendantTypes
|
|
End Sub
|
|
Private Sub MyController_CollectDescendantTypes(ByVal sender As Object, _
|
|
ByVal e As DevExpress.ExpressApp.SystemModule.CollectTypesEventArgs)
|
|
CustomizeList(e.Types)
|
|
End Sub
|
|
Private Sub MyController_CollectCreatableItemTypes(ByVal sender As Object, _
|
|
ByVal e As DevExpress.ExpressApp.SystemModule.CollectTypesEventArgs)
|
|
CustomizeList(e.Types)
|
|
End Sub
|
|
Private Sub ShowNavigationItemAction_SelectedItemChanged(ByVal sender As Object, ByVal e As EventArgs)
|
|
Me.UpdateActionState()
|
|
End Sub
|
|
Public Sub CustomizeList(ByVal types As ICollection(Of Type))
|
|
'Get the ShowNavigationItemController, then get its ShowNavigationItemAction
|
|
Dim showNavigationItemAction As SingleChoiceAction = _
|
|
Frame.GetController(Of ShowNavigationItemController)().ShowNavigationItemAction
|
|
'Get the item selected in the navigation control
|
|
Dim selectedItem As ChoiceActionItem = showNavigationItemAction.SelectedItem
|
|
Dim currentGroup As ChoiceActionItem = Nothing
|
|
If Not selectedItem Is Nothing Then
|
|
'Get the selected item's parent group
|
|
currentGroup = selectedItem.ParentItem
|
|
Dim unusableTypes As List(Of Type) = New List(Of Type)()
|
|
'Collect the types that must be deleted
|
|
For Each type As Type In types
|
|
Dim deletionRequired As Boolean = True
|
|
For Each item As ChoiceActionItem In currentGroup.Items
|
|
Dim shortcut As ViewShortcut = TryCast(item.Data, ViewShortcut)
|
|
If shortcut.ViewId = Application.FindListViewId(type) Then
|
|
deletionRequired = False
|
|
End If
|
|
Next item
|
|
If deletionRequired = True Then
|
|
unusableTypes.Add(type)
|
|
End If
|
|
Next type
|
|
'Remove the collected types
|
|
For Each type As Type In unusableTypes
|
|
types.Remove(type)
|
|
Next type
|
|
End If
|
|
End Sub
|
|
Protected Overrides Sub OnDeactivated()
|
|
MyBase.OnDeactivated()
|
|
RemoveHandler Frame.GetController(Of ShowNavigationItemController)().ShowNavigationItemAction.SelectedItemChanged, _
|
|
AddressOf ShowNavigationItemAction_SelectedItemChanged
|
|
RemoveHandler CollectCreatableItemTypes, AddressOf MyController_CollectCreatableItemTypes
|
|
RemoveHandler CollectDescendantTypes, AddressOf MyController_CollectDescendantTypes
|
|
End Sub
|
|
End Class
|