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