189 lines
7.4 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
Public Class frmMain
Private _Logger As Logger
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.Caption = "Service Online"
LabelServiceOnline.ItemAppearance.Normal.ForeColor = Color.Green
Else
LabelServiceOnline.Caption = "Service Offline"
LabelServiceOnline.ItemAppearance.Normal.ForeColor = Color.Red
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
' Initialize Main Timer
_Timer = New ClassTimer(My.LogConfig, Me, My.SysConfig.HeartbeatInterval)
AddHandler _Timer.OnlineChanged, AddressOf HandleOnlineChanged
SetOnlineLabel()
Try
UserLookAndFeel.Default.SetSkinStyle(My.UIConfig.SkinName)
Catch ex As Exception
End Try
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
Dim oDashboard = New frmDashboard()
oDashboard.MdiParent = DocumentManager.MdiParent
oDashboard.Show()
' --- Process Manager Panel ---
Dim oDataTable = New DataTable("PMDocuments")
Dim oDocNameColumn = New DataColumn("DocName", GetType(String))
oDataTable.Columns.Add(oDocNameColumn)
Dim oRow = oDataTable.NewRow()
oRow.Item("DocName") = "test1.xlsx"
oDataTable.Rows.Add(oRow)
ProcessManagerWidget.DataSource = oDataTable
AddHandler ProcessManagerWidget.RowDoubleClicked, Sub(RowView As DataRowView)
MsgBox($"Clicked on Document {RowView.Row.Item("DocName")}")
End Sub
AddHandler UserLookAndFeel.Default.StyleChanged, AddressOf frmMain_StyleChanged
LoadLayout()
_Loading = False
End Sub
Private Sub FrmMain_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing
SaveLayout()
End Sub
Private Sub LoadLayout()
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
End Sub
Private Sub SaveLayout()
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)
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 BarButtonDashboard_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonDashboard.ItemClick
Dim frm As New frmDashboard()
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
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
' 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
End Class