2019-03-07 16:45:30 +01:00

237 lines
9.7 KiB
VB.net

Imports DevExpress.XtraBars.Docking2010
Imports System.ComponentModel
Imports DigitalData.GUIs.ClientSuite.ClassLayout
Imports System.IO
Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.License
Imports DevExpress.LookAndFeel
Imports DevExpress.XtraBars.Ribbon
Imports DevExpress.XtraBars.Docking
Imports DevExpress.XtraGrid
Public Class frmMain
Private _Timer As ClassTimer
Private _Loading As Boolean = True
Public Sub New()
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
' Show splashscreen
frmSplash.ShowDialog()
' Initialize Form Related Variables
My.MainForm = Me
End Sub
Private Sub SetOnlineLabel()
If My.Application.Service.Online Then
LabelServiceOnline.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
LabelServiceOffline.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
Else
LabelServiceOnline.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
LabelServiceOffline.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
End If
End Sub
Private Sub HandleOnlineChanged(sender As Object, Online As Boolean)
SetOnlineLabel()
End Sub
Private Sub FrmMain_Load(sender As Object, e As EventArgs) Handles Me.Load
Try
' Initialize Main Timer
_Timer = New ClassTimer(My.LogConfig, Me, My.SysConfig.HeartbeatInterval)
AddHandler _Timer.OnlineChanged, AddressOf HandleOnlineChanged
' Show Service Status Label
SetOnlineLabel()
' Apply Selected Skin Style
UserLookAndFeel.Default.SetSkinStyle(My.UIConfig.SkinName)
' Show User Info
LabelCurrentUser.Caption = My.Application.User.UserName
LabelCurrentMachine.Caption = My.Application.User.MachineName
LabelCurrentVersion.Caption = My.Application.Info.Version.ToString
LabelCurrentLanguage.Caption = My.Application.User.Language
' Load and Save Layout
AddHandler UserLookAndFeel.Default.StyleChanged, AddressOf frmMain_StyleChanged
LoadLayout()
' We're done loading now
_Loading = False
Catch ex As Exception
_ErrorHandler.ShowErrorMessage(ex)
End Try
End Sub
Private Sub FrmMain_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing
SaveLayout()
End Sub
Private Sub frmMain_StyleChanged(sender As Object, e As EventArgs) Handles Me.StyleChanged
If _Loading = False Then
My.UIConfig.SkinName = LookAndFeel.ActiveSkinName
My.UIConfigManager.Save()
End If
End Sub
Private Sub LoadLayout()
Try
Dim oLayoutPathForDockManager As String = GetLayoutPath(GroupName.LayoutMain, LayoutComponent.DockManager)
Dim oLayoutPathForDocumentManager As String = GetLayoutPath(GroupName.LayoutMain, LayoutComponent.DocumentManager)
If File.Exists(oLayoutPathForDockManager) Then
'DockManager.RestoreLayoutFromXml(oLayoutPathForDockManager)
End If
If File.Exists(oLayoutPathForDocumentManager) Then
'DocumentManager.View.RestoreLayoutFromXml(oLayoutPathForDocumentManager)
End If
Catch ex As Exception
_ErrorHandler.ShowErrorMessage(ex)
End Try
End Sub
Private Sub SaveLayout()
Try
Dim oLayoutPathForDockManager As String = GetLayoutPath(GroupName.LayoutMain, LayoutComponent.DockManager)
Dim oLayoutPathForDocumentManager As String = GetLayoutPath(GroupName.LayoutMain, LayoutComponent.DocumentManager)
Dim oDirectory As String = GetLayoutDirectory()
If Not Directory.Exists(oDirectory) Then
Directory.CreateDirectory(oDirectory)
End If
'DockManager.SaveLayoutToXml(oLayoutPathForDockManager)
'DocumentManager.View.SaveLayoutToXml(oLayoutPathForDocumentManager)
Catch ex As Exception
_ErrorHandler.ShowErrorMessage(ex)
End Try
End Sub
Private Sub BarButtonUserSettings_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonUserSettings.ItemClick
Dim frm As New frmConfigUser()
frm.MdiParent = DocumentManager.MdiParent
frm.Show()
End Sub
Private Sub BarButtonItem1_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem1.ItemClick
Dim frm As New frmFileTest()
frm.MdiParent = DocumentManager.MdiParent
frm.Show()
End Sub
Private Sub BarButtonEntityDesigner_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonEntityDesigner.ItemClick
Dim frm As New frmEntityDesigner()
frm.MdiParent = DocumentManager.MdiParent
frm.Show()
End Sub
Private Sub BarButtonConnectionSettings_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonConnectionSettings.ItemClick
Dim frm As New frmConfigService()
frm.MdiParent = DocumentManager.MdiParent
frm.Show()
End Sub
Private Sub BarButtonItem2_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem2.ItemClick
Dim oUser1 = LicenseCreator.NewUser(UserType.PowerUser, 5)
Dim oUser2 = LicenseCreator.NewUser(UserType.WriteOnly, 5, Date.Now)
Dim oUsers As New List(Of LicenseModuleUser)
oUsers.Add(oUser1)
oUsers.Add(oUser2)
Dim oModule = LicenseCreator.NewModule("EDMI", oUsers)
Dim oModules As New List(Of LicenseModule)
oModules.Add(oModule)
Dim oLicense = LicenseCreator.NewLicense(oModules)
Dim oLicenseFile As New LicenseFile(My.LogConfig, "E:\")
oLicenseFile.SaveFile(oLicense)
Dim oSerializer As New Xml.Serialization.XmlSerializer(GetType(LicenseSchema))
Dim oLicense2 As LicenseSchema
oLicense2 = oLicenseFile.LoadFile()
End Sub
Private Sub BarButtonUserManager_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonUserManager.ItemClick
Dim oForm As New frmUserManager()
oForm.MdiParent = DocumentManager.MdiParent
oForm.Show()
End Sub
' Manually merge the status bars of the parent and child MDI forms.
Private Sub RibbonControl1_Merge(ByVal sender As System.Object, ByVal e As RibbonMergeEventArgs) Handles RibbonControl.Merge
Dim oParentRibbon As RibbonControl = TryCast(sender, RibbonControl)
Dim oChildRibbon As RibbonControl = e.MergedChild
oParentRibbon.StatusBar.MergeStatusBar(oChildRibbon.StatusBar)
End Sub
' Manually unmerge the status bars.
Private Sub RibbonControl1_UnMerge(ByVal sender As System.Object, ByVal e As RibbonMergeEventArgs) Handles RibbonControl.UnMerge
Dim oParentRibbon As RibbonControl = TryCast(sender, RibbonControl)
oParentRibbon.StatusBar.UnMergeStatusBar()
End Sub
Private Sub BarButtonItem3_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem3.ItemClick
Dim frm As New frmDocTest With {
.MdiParent = DocumentManager.MdiParent
}
frm.Show()
End Sub
Private Sub BarButtonInbox_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs)
Dim oForm As New frmHome With {
.MdiParent = DocumentManager.MdiParent
}
oForm.Show()
End Sub
Private Sub MainNav_SelectedItemChanging(sender As Object, e As DevExpress.XtraBars.Navigation.SelectedItemChangingEventArgs) Handles MainNav.SelectedItemChanging
Select Case e.Item.Name
Case NavbarItemHome.Name
Dim oForm As New frmHome()
oForm.MdiParent = DocumentManager.MdiParent
oForm.Show()
Case NavbarItemSearch.Name
Dim oForm As New frmSearch()
oForm.MdiParent = DocumentManager.MdiParent
oForm.Show()
Dim oSearchPanel = DockManager.AddPanel(DockingStyle.Bottom)
oSearchPanel.Options.ShowCloseButton = False
oSearchPanel.Options.ShowAutoHideButton = False
oSearchPanel.Text = "Search " & New Random().Next()
oSearchPanel.Controls.Add(New GridControl With {.Dock = DockStyle.Fill})
Dim oSearchPanel2 = DockManager.AddPanel(DockingStyle.Bottom)
oSearchPanel2.Options.ShowCloseButton = False
oSearchPanel2.Options.ShowAutoHideButton = False
oSearchPanel2.Text = "Search " & New Random().Next()
oSearchPanel2.Controls.Add(New GridControl With {.Dock = DockStyle.Fill})
oSearchPanel2.DockTo(oSearchPanel)
AddHandler oForm.FormClosed, Sub()
oSearchPanel.Close()
oSearchPanel2.Close()
End Sub
'AddHandler oForm.Deactivate, Sub()
' oSearchPanel.Visibility = DockVisibility.Hidden
' oSearchPanel2.Visibility = DockVisibility.Hidden
' End Sub
'AddHandler oForm.Activated, Sub()
' oSearchPanel2.Visibility = DockVisibility.Visible
' oSearchPanel.Visibility = DockVisibility.Visible
' End Sub
End Select
e.Cancel = True
End Sub
End Class