205 lines
11 KiB
VB.net
205 lines
11 KiB
VB.net
Imports DevExpress.Data
|
|
Imports DevExpress.Xpf.Bars
|
|
Imports DevExpress.Xpf.Core.Serialization
|
|
Imports DevExpress.Xpf.Grid
|
|
Imports EgtBEAMWALL.Core
|
|
Imports System.IO
|
|
|
|
Public Class OptimizerStatisticsV
|
|
|
|
Private m_StatisticsVM As StatisticsVM
|
|
Private m_sDataGridLayoutPath As String = ""
|
|
Private m_sDataGridLayoutPath2 As String = ""
|
|
|
|
Sub New()
|
|
|
|
' This call is required by the designer.
|
|
InitializeComponent()
|
|
|
|
' Add any initialization after the InitializeComponent() call.
|
|
m_sDataGridLayoutPath = Path.GetDirectoryName(DataGridColumnsIniFile.m_sDataGridColumnsIniFile) & "\NewDataGridLayoutFile6.json"
|
|
m_sDataGridLayoutPath2 = Path.GetDirectoryName(DataGridColumnsIniFile.m_sDataGridColumnsIniFile) & "\NewDataGridLayoutFile7.json"
|
|
|
|
Map.refStatisticsVM.LoadRawPart()
|
|
|
|
For Each Column In dgOptimizerStatistics_GridControl.Columns
|
|
Column.[AddHandler](DXSerializer.AllowPropertyEvent,
|
|
New AllowPropertyEventHandler(AddressOf OnAllowProperty))
|
|
Next
|
|
DXSerializer.AddAllowPropertyHandler(dgOptimizerStatistics_GridControl, AddressOf OnAddAllowProperty)
|
|
|
|
For Each Column In dgRawPartStatistics_GridControl.Columns
|
|
Column.[AddHandler](DXSerializer.AllowPropertyEvent,
|
|
New AllowPropertyEventHandler(AddressOf OnAllowProperty))
|
|
Next
|
|
DXSerializer.AddAllowPropertyHandler(dgRawPartStatistics_GridControl, AddressOf OnAddAllowProperty)
|
|
|
|
End Sub
|
|
|
|
' imposto parametri da aggiungere o togliere in Json tabella per i parametri di colonna
|
|
Private Sub OnAllowProperty(sender As Object, e As AllowPropertyEventArgs)
|
|
If e.DependencyProperty Is GridColumn.AllowResizingProperty Then
|
|
e.Allow = True
|
|
End If
|
|
End Sub
|
|
|
|
' imposto parametri da aggiungere o togliere in Json tabella per i parametri generali
|
|
Private Sub OnAddAllowProperty(sender As Object, e As AllowPropertyEventArgs)
|
|
If e.Property.Name = "FilterString" Then
|
|
e.Allow = False
|
|
ElseIf e.Property.Name = "MRUFilters" Then
|
|
e.Allow = False
|
|
ElseIf e.Property.Name = "MRUFilterList" Then
|
|
e.Allow = False
|
|
ElseIf e.Property.Name = "GroupSummarySortInfo" Then
|
|
e.Allow = False
|
|
End If
|
|
End Sub
|
|
|
|
' salvataggio del layout colonne
|
|
Public Sub SaveStatisticGridControlLayout()
|
|
dgOptimizerStatistics_GridControl.SaveLayoutToJson(m_sDataGridLayoutPath)
|
|
End Sub
|
|
|
|
Public Sub SaveStatisticGridControlLayout2()
|
|
dgRawPartStatistics_GridControl.SaveLayoutToJson(m_sDataGridLayoutPath2)
|
|
End Sub
|
|
|
|
Public Sub IsVisibleGroupSummary(bValue As Boolean)
|
|
If bValue AndAlso dgOptimizerStatistics_GridControl.GroupSummary.Count = 0 Then
|
|
dgOptimizerStatistics_GridControl.GroupSummary.Clear()
|
|
Dim PDNGroupSummaryItem As New GridSummaryItem() With {.FieldName = "Name",
|
|
.DisplayFormat = "{0}",
|
|
.SummaryType = SummaryItemType.Count,
|
|
.ShowInGroupColumnFooter = "Name"}
|
|
dgOptimizerStatistics_GridControl.GroupSummary.Add(PDNGroupSummaryItem)
|
|
End If
|
|
dgOptimizerStatistics_TableView.ShowGroupFooters = bValue
|
|
End Sub
|
|
|
|
Public Sub Me_Loaded() Handles Me.Loaded
|
|
' imposto DataContext
|
|
m_StatisticsVM = Me.DataContext
|
|
' imposto riferimento ad action per salvataggio layout tabella
|
|
m_StatisticsVM.refSaveStatisticGridControlLayout = AddressOf SaveStatisticGridControlLayout
|
|
m_StatisticsVM.refSaveStatisticGridControlLayout = AddressOf SaveStatisticGridControlLayout2
|
|
' rispristino layout tabella
|
|
If Not IsNothing(m_sDataGridLayoutPath) AndAlso File.Exists(m_sDataGridLayoutPath) Then
|
|
dgOptimizerStatistics_GridControl.RestoreLayoutFromJson(m_sDataGridLayoutPath)
|
|
End If
|
|
If Not IsNothing(m_sDataGridLayoutPath2) AndAlso File.Exists(m_sDataGridLayoutPath2) Then
|
|
dgRawPartStatistics_GridControl.RestoreLayoutFromJson(m_sDataGridLayoutPath2)
|
|
End If
|
|
|
|
' da gestire chiamandolo quando viene aperto un progetto o aggiunto/rimosso un btl, per evitare che ci sia il GroupSummary se c'e' un solo gruppo
|
|
IsVisibleGroupSummary(False)
|
|
End Sub
|
|
|
|
Private Sub PrintBtn_Click(sender As Object, e As RoutedEventArgs) Handles CopyToClipboardBtn.Click
|
|
m_StatisticsVM = Me.DataContext()
|
|
'CopyToClipboard(dgOptimizerStatistics, dgRawPartStatistics, m_StatisticsVM)
|
|
If Map.refStatisticsVM.bRawPart_IsChecked Then
|
|
dgRawPartStatistics_GridControl.CopyToClipboard()
|
|
Else
|
|
dgOptimizerStatistics_GridControl.CopyToClipboard()
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub OnShowGridMenu(sender As Object, e As DevExpress.Xpf.Grid.GridMenuEventArgs)
|
|
If e.MenuType = GridMenuType.Column Then
|
|
' rimozione bottoni
|
|
e.Customizations.Add(New RemoveAction() With {.ElementName = DefaultColumnMenuItemNames.GroupBox})
|
|
e.Customizations.Add(New RemoveAction() With {.ElementName = DefaultColumnMenuItemNames.GroupColumn})
|
|
e.Customizations.Add(New RemoveAction() With {.ElementName = DefaultColumnMenuItemNamesBase.ColumnChooser})
|
|
e.Customizations.Add(New RemoveAction() With {.ElementName = DefaultColumnMenuItemNames.BestFit})
|
|
e.Customizations.Add(New RemoveAction() With {.ElementName = DefaultColumnMenuItemNames.BestFitColumns})
|
|
e.Customizations.Add(New RemoveAction() With {.ElementName = DefaultColumnMenuItemNamesBase.FilterEditor})
|
|
|
|
Dim info As GridColumnMenuInfo = CType(e.MenuInfo, GridColumnMenuInfo)
|
|
Dim item As ColumnBase = CType(info.Column, ColumnBase)
|
|
' aggiunta separatore
|
|
Dim separator As BarItemLinkSeparator = New BarItemLinkSeparator()
|
|
e.Customizations.Add(separator)
|
|
' aggiunta bottone AllowResize e Auto Fit
|
|
Dim AllowResize As BarCheckItem = New BarCheckItem() With {.Content = "Allow Resize", .IsChecked = (dgOptimizerStatistics_TableView.AllowResizing AndAlso (item.AllowResizing = DevExpress.Utils.DefaultBoolean.True OrElse item.AllowResizing = DevExpress.Utils.DefaultBoolean.Default))}
|
|
AddHandler AllowResize.CheckedChanged, AddressOf AllowResize_CheckedChanged
|
|
e.Customizations.Add(AllowResize)
|
|
If item.AllowResizing = DevExpress.Utils.DefaultBoolean.True OrElse item.AllowResizing = DevExpress.Utils.DefaultBoolean.Default Then
|
|
Dim FixAuto As BarButtonItem = New BarCheckItem() With {.Content = "Auto Fit"}
|
|
AddHandler FixAuto.ItemClick, AddressOf FixAuto_ItemClick
|
|
e.Customizations.Add(FixAuto)
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
' gestore evento Allow Resize
|
|
Private Sub AllowResize_CheckedChanged(sender As Object, e As ItemClickEventArgs)
|
|
Dim info As GridColumnMenuInfo = TryCast(dgOptimizerStatistics_TableView.GridMenu.MenuInfo, GridColumnMenuInfo)
|
|
Dim item As ColumnBase = CType(info.Column, ColumnBase)
|
|
If item.AllowResizing = DevExpress.Utils.DefaultBoolean.False Then
|
|
item.AllowResizing = DevExpress.Utils.DefaultBoolean.True
|
|
Else
|
|
item.AllowResizing = DevExpress.Utils.DefaultBoolean.False
|
|
End If
|
|
End Sub
|
|
|
|
' gestore evento Auto Fit
|
|
Private Sub FixAuto_ItemClick(sender As Object, e As ItemClickEventArgs)
|
|
Dim info As GridColumnMenuInfo = TryCast(dgOptimizerStatistics_TableView.GridMenu.MenuInfo, GridColumnMenuInfo)
|
|
Dim item As ColumnBase = CType(info.Column, ColumnBase)
|
|
item.Width = New GridColumnWidth(1, GridColumnUnitType.Auto)
|
|
dgOptimizerStatistics_TableView.UpdateLayout()
|
|
item.Width = item.ActualWidth
|
|
item.AllowResizing = DevExpress.Utils.DefaultBoolean.False
|
|
End Sub
|
|
|
|
Private Sub OnShowGridMenu2(sender As Object, e As DevExpress.Xpf.Grid.GridMenuEventArgs)
|
|
If e.MenuType = GridMenuType.Column Then
|
|
' rimozione bottoni
|
|
e.Customizations.Add(New RemoveAction() With {.ElementName = DefaultColumnMenuItemNames.GroupBox})
|
|
e.Customizations.Add(New RemoveAction() With {.ElementName = DefaultColumnMenuItemNames.GroupColumn})
|
|
e.Customizations.Add(New RemoveAction() With {.ElementName = DefaultColumnMenuItemNamesBase.ColumnChooser})
|
|
e.Customizations.Add(New RemoveAction() With {.ElementName = DefaultColumnMenuItemNames.BestFit})
|
|
e.Customizations.Add(New RemoveAction() With {.ElementName = DefaultColumnMenuItemNames.BestFitColumns})
|
|
e.Customizations.Add(New RemoveAction() With {.ElementName = DefaultColumnMenuItemNamesBase.FilterEditor})
|
|
|
|
Dim info As GridColumnMenuInfo = CType(e.MenuInfo, GridColumnMenuInfo)
|
|
Dim item As ColumnBase = CType(info.Column, ColumnBase)
|
|
' aggiunta separatore
|
|
Dim separator As BarItemLinkSeparator = New BarItemLinkSeparator()
|
|
e.Customizations.Add(separator)
|
|
' aggiunta bottone AllowResize e Auto Fit
|
|
Dim AllowResize As BarCheckItem = New BarCheckItem() With {.Content = "Allow Resize", .IsChecked = (dgRawPartStatistics_TableView.AllowResizing AndAlso (item.AllowResizing = DevExpress.Utils.DefaultBoolean.True OrElse item.AllowResizing = DevExpress.Utils.DefaultBoolean.Default))}
|
|
AddHandler AllowResize.CheckedChanged, AddressOf AllowResize_CheckedChanged2
|
|
e.Customizations.Add(AllowResize)
|
|
If item.AllowResizing = DevExpress.Utils.DefaultBoolean.True OrElse item.AllowResizing = DevExpress.Utils.DefaultBoolean.Default Then
|
|
Dim FixAuto As BarButtonItem = New BarCheckItem() With {.Content = "Auto Fit"}
|
|
AddHandler FixAuto.ItemClick, AddressOf FixAuto_ItemClick2
|
|
e.Customizations.Add(FixAuto)
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
' gestore evento Allow Resize
|
|
Private Sub AllowResize_CheckedChanged2(sender As Object, e As ItemClickEventArgs)
|
|
Dim info As GridColumnMenuInfo = TryCast(dgRawPartStatistics_TableView.GridMenu.MenuInfo, GridColumnMenuInfo)
|
|
Dim item As ColumnBase = CType(info.Column, ColumnBase)
|
|
If item.AllowResizing = DevExpress.Utils.DefaultBoolean.False Then
|
|
item.AllowResizing = DevExpress.Utils.DefaultBoolean.True
|
|
Else
|
|
item.AllowResizing = DevExpress.Utils.DefaultBoolean.False
|
|
End If
|
|
End Sub
|
|
|
|
' gestore evento Auto Fit
|
|
Private Sub FixAuto_ItemClick2(sender As Object, e As ItemClickEventArgs)
|
|
Dim info As GridColumnMenuInfo = TryCast(dgRawPartStatistics_TableView.GridMenu.MenuInfo, GridColumnMenuInfo)
|
|
Dim item As ColumnBase = CType(info.Column, ColumnBase)
|
|
item.Width = New GridColumnWidth(1, GridColumnUnitType.Auto)
|
|
dgRawPartStatistics_TableView.UpdateLayout()
|
|
item.Width = item.ActualWidth
|
|
item.AllowResizing = DevExpress.Utils.DefaultBoolean.False
|
|
End Sub
|
|
|
|
End Class
|