First create solution
This commit is contained in:
@@ -0,0 +1,180 @@
|
||||
Imports DevExpress.ExpressApp
|
||||
|
||||
Public Class UserViewVariantsController
|
||||
Inherits ViewController
|
||||
'Private Const STR_HasViewVariants_EnabledKey As String = "HasViewVariants"
|
||||
'Private Const STR_IsRootViewVariant_EnabledKey As String = "IsRootViewVariant"
|
||||
'Private Const STR_NewViewVariant_Id As String = "NewViewVariant"
|
||||
'Private Const STR_DeleteViewVariant_Id As String = "DeleteViewVariant"
|
||||
'Private Const STR_EditViewVariant_Id As String = "EditViewVariant"
|
||||
'Private Const STR_UserViewVariants_Image As String = "Action_Copy"
|
||||
'Private Const STR_NewViewVariant_Image As String = "Action_New"
|
||||
'Private Const STR_DeleteViewVariant_Image As String = "Action_Delete"
|
||||
'Private Const STR_EditViewVariant_Image As String = "Action_Edit"
|
||||
'Private Const STR_UserViewVariants_Id As String = "UserViewVariants"
|
||||
|
||||
'Private ReadOnly userViewVariantsCore As SingleChoiceAction
|
||||
''Protected changeVariantMainWindowController As ChangeVariantMainWindowController
|
||||
'Protected changeVariantController As ChangeVariantController
|
||||
'Protected rootModelViewVariants As IModelList(Of IModelVariant)
|
||||
'Private modelViews As IModelList(Of IModelView)
|
||||
|
||||
Public Sub New()
|
||||
'userViewVariantsCore = New SingleChoiceAction(Me, STR_UserViewVariants_Id, PredefinedCategory.View) With {.ImageName = STR_UserViewVariants_Image, .PaintStyle = ActionItemPaintStyle.CaptionAndImage, .Caption = CaptionHelper.ConvertCompoundName(STR_UserViewVariants_Id), .ItemType = SingleChoiceActionItemType.ItemIsOperation, .ShowItemsOnClick = True}
|
||||
'Dim addViewVariantItem As New ChoiceActionItem(STR_NewViewVariant_Id, CaptionHelper.ConvertCompoundName(STR_NewViewVariant_Id), STR_NewViewVariant_Id) With {.ImageName = STR_NewViewVariant_Image}
|
||||
'Dim removeViewVariantItem As New ChoiceActionItem(STR_DeleteViewVariant_Id, CaptionHelper.ConvertCompoundName(STR_DeleteViewVariant_Id), STR_DeleteViewVariant_Id) With {.ImageName = STR_DeleteViewVariant_Image}
|
||||
'Dim editViewVariantItem As New ChoiceActionItem(STR_EditViewVariant_Id, CaptionHelper.ConvertCompoundName(STR_EditViewVariant_Id), STR_EditViewVariant_Id) With {.ImageName = STR_EditViewVariant_Image}
|
||||
'userViewVariantsCore.Items.Add(addViewVariantItem)
|
||||
'userViewVariantsCore.Items.Add(editViewVariantItem)
|
||||
'userViewVariantsCore.Items.Add(removeViewVariantItem)
|
||||
'AddHandler userViewVariantsCore.Execute, AddressOf UserViewVariants_Execute
|
||||
End Sub
|
||||
' Private Sub UserViewVariants_Execute(ByVal sender As Object, ByVal e As SingleChoiceActionExecuteEventArgs)
|
||||
' UserViewVariants(e)
|
||||
' End Sub
|
||||
' Protected Overridable Sub UserViewVariants(ByVal e As SingleChoiceActionExecuteEventArgs)
|
||||
' Dim data As String = Convert.ToString(e.SelectedChoiceActionItem.Data)
|
||||
' If data = STR_NewViewVariant_Id OrElse data = STR_EditViewVariant_Id Then
|
||||
' ShowViewVariantParameterDialog(e, data)
|
||||
' ElseIf data = STR_DeleteViewVariant_Id Then
|
||||
' DeleteViewVariant()
|
||||
' End If
|
||||
' End Sub
|
||||
' Protected Overloads Overrides Sub OnActivated()
|
||||
' MyBase.OnActivated()
|
||||
' 'Initialize()
|
||||
' 'UpdateUserViewVariantsAction()
|
||||
' End Sub
|
||||
' Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||
' 'If disposing Then
|
||||
' ' UnsubscribeFromEvents()
|
||||
' 'End If
|
||||
' MyBase.Dispose(disposing)
|
||||
' End Sub
|
||||
' Private Sub UnsubscribeFromEvents()
|
||||
' RemoveHandler userViewVariantsCore.Execute, AddressOf UserViewVariants_Execute
|
||||
' If changeVariantController IsNot Nothing AndAlso changeVariantController.ChangeVariantAction IsNot Nothing Then
|
||||
' RemoveHandler changeVariantController.ChangeVariantAction.Execute, AddressOf ChangeVariantAction_Executed
|
||||
' End If
|
||||
' End Sub
|
||||
' Private Sub Initialize()
|
||||
' changeVariantMainWindowController = Frame.GetController(Of ChangeVariantMainWindowController)()
|
||||
' changeVariantController = Frame.GetController(Of ChangeVariantController)()
|
||||
' AddHandler changeVariantController.ChangeVariantAction.Executed, AddressOf ChangeVariantAction_Executed
|
||||
' modelViews = CType(View.Model.Application.Views, IModelList(Of IModelView))
|
||||
' rootModelViewVariants = CType((CType(modelViews(GetRootViewId()), IModelViewVariants)).Variants, IModelList(Of IModelVariant))
|
||||
' End Sub
|
||||
' Private Sub ChangeVariantAction_Executed(ByVal sender As Object, ByVal e As ActionBaseEventArgs)
|
||||
' UpdateUserViewVariantsAction()
|
||||
' End Sub
|
||||
' Private Function GetRootViewId() As String
|
||||
' Dim variantsInfo As VariantsInfo = changeVariantMainWindowController.GetVariants(View)
|
||||
' Return If(variantsInfo IsNot Nothing, variantsInfo.RootViewId, View.Id)
|
||||
' End Function
|
||||
' Protected Overridable Sub ShowViewVariantParameterDialog(ByVal e As SingleChoiceActionExecuteEventArgs, ByVal mode As String)
|
||||
' Dim viewCaption As String = String.Empty
|
||||
' Dim parameter As New ViewVariantParameterObject(rootModelViewVariants)
|
||||
' If mode = STR_NewViewVariant_Id Then
|
||||
' parameter.Caption = String.Format("{0}_{1:g}", View.Caption, DateTime.Now)
|
||||
' viewCaption = CaptionHelper.GetLocalizedText("Texts", "NewViewVariantParameterCaption")
|
||||
' End If
|
||||
' If mode = STR_EditViewVariant_Id AndAlso changeVariantController.ChangeVariantAction.SelectedItem IsNot Nothing Then
|
||||
' parameter.Caption = changeVariantController.ChangeVariantAction.SelectedItem.Caption
|
||||
' viewCaption = CaptionHelper.GetLocalizedText("Texts", "EditViewVariantParameterCaption")
|
||||
' End If
|
||||
' Dim dialogController As DialogController = Application.CreateController(Of DialogController)()
|
||||
' AddHandler dialogController.Accepting, AddressOf dialogController_Accepting
|
||||
' dialogController.Tag = mode
|
||||
' Dim dv As DetailView = Application.CreateDetailView(ObjectSpaceInMemory.CreateNew(), parameter, False)
|
||||
' dv.ViewEditMode = ViewEditMode.Edit
|
||||
' dv.Caption = viewCaption
|
||||
' e.ShowViewParameters.CreatedView = dv
|
||||
' e.ShowViewParameters.Controllers.Add(dialogController)
|
||||
' e.ShowViewParameters.TargetWindow = TargetWindow.NewModalWindow
|
||||
' End Sub
|
||||
' Protected Sub dialogController_Accepting(ByVal sender As Object, ByVal e As DialogControllerAcceptingEventArgs)
|
||||
' Dim dialogController As DialogController = CType(sender, DialogController)
|
||||
' RemoveHandler dialogController.Accepting, AddressOf dialogController_Accepting
|
||||
' Dim data As String = Convert.ToString(dialogController.Tag)
|
||||
' Dim parameter As ViewVariantParameterObject = TryCast(dialogController.Window.View.CurrentObject, ViewVariantParameterObject)
|
||||
' If data = STR_NewViewVariant_Id Then
|
||||
' NewViewVariant(parameter)
|
||||
' ElseIf data = STR_EditViewVariant_Id Then
|
||||
' EditViewVariant(parameter)
|
||||
' End If
|
||||
' End Sub
|
||||
' Protected Overridable Sub NewViewVariant(ByVal parameter As ViewVariantParameterObject)
|
||||
' 'It is necessary to save the current View settings into the application model before copying them.
|
||||
' View.SynchronizeInfo()
|
||||
' 'Identifier of a new view variant will be based on the identifier of the root view variant.
|
||||
' Dim newViewVariantId As String = String.Format("{0}_{1}", GetRootViewId(), Guid.NewGuid())
|
||||
' ' Adds a new child node of the IModelVariant type with a specific identifier to the parent IModelViewVariants node.
|
||||
' Dim newModelViewVariant As IModelVariant = (CType(rootModelViewVariants, ModelNode)).AddNode(Of IModelVariant)(newViewVariantId)
|
||||
' ' Creates a new node of the IModelView type by cloning the settings of the current View and then sets the clone to the View property of the view variant created above.
|
||||
' newModelViewVariant.View = TryCast((CType(modelViews, ModelNode)).AddClonedNode(CType(View.Model, ModelNode), newViewVariantId), IModelView)
|
||||
' 'Sets the Caption property of the view variant created above to the caption specified by an end-user in the dialog.
|
||||
' newModelViewVariant.Caption = parameter.Caption
|
||||
' 'It is necessary to add a default view variant node for the current View for correct operation of the Change Variant Action.
|
||||
' If rootModelViewVariants.Count = 1 Then
|
||||
' Dim currentModelViewVariant As IModelVariant = (CType(rootModelViewVariants, ModelNode)).AddNode(Of IModelVariant)(View.Id)
|
||||
' currentModelViewVariant.Caption = CaptionHelper.GetLocalizedText("Texts", "DefaultViewVariantCaption")
|
||||
' currentModelViewVariant.View = View.Model
|
||||
' End If
|
||||
' 'Updates the Change Variant Action structure based on the model customizations above.
|
||||
' changeVariantController.RefreshVariantsAction()
|
||||
' 'Sets the current view variant to the newly created one.
|
||||
' UpdateCurrentViewVariant(True)
|
||||
' 'Updates the items of our User View Variant Action based on the current the Change Variant Action structure.
|
||||
' UpdateUserViewVariantsAction()
|
||||
' End Sub
|
||||
' 'This method does almost the same work as NewViewVariant, but in reverse order.
|
||||
' Protected Overridable Sub DeleteViewVariant()
|
||||
' Dim variantsInfo As VariantsInfo = GetVariantsInfo()
|
||||
' 'You should not be able to remove the root view variant.
|
||||
' If variantsInfo IsNot Nothing AndAlso variantsInfo.CurrentVariantId <> GetRootViewId() Then
|
||||
' UpdateCurrentViewVariant(False)
|
||||
' rootModelViewVariants.Remove(rootModelViewVariants(variantsInfo.CurrentVariantId))
|
||||
' modelViews.Remove(modelViews(variantsInfo.CurrentVariantId))
|
||||
' changeVariantController.RefreshVariantsAction()
|
||||
' UpdateUserViewVariantsAction()
|
||||
' End If
|
||||
' If rootModelViewVariants.Count = 1 Then
|
||||
' CType(rootModelViewVariants, ModelNode).Undo()
|
||||
' End If
|
||||
' End Sub
|
||||
' Protected Overridable Sub EditViewVariant(ByVal parameter As ViewVariantParameterObject)
|
||||
' Dim variantsInfo As VariantsInfo = GetVariantsInfo()
|
||||
' If variantsInfo IsNot Nothing Then
|
||||
' rootModelViewVariants(variantsInfo.CurrentVariantId).Caption = parameter.Caption
|
||||
' End If
|
||||
' changeVariantController.RefreshVariantsAction()
|
||||
' End Sub
|
||||
' Private Sub UpdateCurrentViewVariant(ByVal isNew As Boolean)
|
||||
' Dim action As SingleChoiceAction = changeVariantController.ChangeVariantAction
|
||||
' If (Not isNew) AndAlso action.Items.Count > 1 Then
|
||||
' action.DoExecute(action.Items(action.Items.Count - 2))
|
||||
' End If
|
||||
' If isNew AndAlso action.Items.Count > 0 Then
|
||||
' action.DoExecute(action.Items(action.Items.Count - 1))
|
||||
' End If
|
||||
' End Sub
|
||||
' Private Sub UpdateUserViewVariantsAction()
|
||||
' Dim hasViewVariants As Boolean = changeVariantController.ChangeVariantAction.Items.Count > 0
|
||||
' UserViewVarintsAction.Items.FindItemByID(STR_EditViewVariant_Id).Enabled(STR_HasViewVariants_EnabledKey) = hasViewVariants
|
||||
' UserViewVarintsAction.Items.FindItemByID(STR_DeleteViewVariant_Id).Enabled(STR_HasViewVariants_EnabledKey) =
|
||||
'UserViewVarintsAction.Items.FindItemByID(STR_EditViewVariant_Id).Enabled(STR_HasViewVariants_EnabledKey)
|
||||
|
||||
' If changeVariantController.ChangeVariantAction.SelectedItem IsNot Nothing Then
|
||||
' Dim variantInfo As VariantInfo = CType(changeVariantController.ChangeVariantAction.SelectedItem.Data, VariantInfo)
|
||||
' UserViewVarintsAction.Items.FindItemByID(STR_DeleteViewVariant_Id).Enabled(STR_IsRootViewVariant_EnabledKey) = variantInfo.ViewID <> GetRootViewId()
|
||||
' End If
|
||||
' End Sub
|
||||
' Private Function GetVariantsInfo() As VariantsInfo
|
||||
' Return changeVariantMainWindowController.GetVariants(GetRootViewId())
|
||||
' End Function
|
||||
' Public ReadOnly Property UserViewVarintsAction() As SingleChoiceAction
|
||||
' Get
|
||||
' Return userViewVariantsCore
|
||||
' End Get
|
||||
' End Property
|
||||
End Class
|
||||
Reference in New Issue
Block a user