445 lines
17 KiB
VB.net
445 lines
17 KiB
VB.net
Imports EgtUILib
|
|
|
|
Public Class MainComponentPageUC
|
|
|
|
'Riferimento alla MainWindow
|
|
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
|
|
|
|
'Dichiarazione delle Page UserControl
|
|
Friend m_SecondaryComponentPage As SecondaryComponentPageUC
|
|
|
|
' Flag che indica se è attiva la prima o la seconda pagina
|
|
Friend m_bIsFirstPage As Boolean
|
|
|
|
Friend CurrentBtn As Button = Nothing
|
|
|
|
' Variabile che contiene il nome del componente selezionato
|
|
Friend m_sCurrCompoFam As String = String.Empty
|
|
|
|
Private Sub MainComponentPage_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized
|
|
|
|
'Creazione delle Page UserControl
|
|
m_SecondaryComponentPage = New SecondaryComponentPageUC
|
|
'Posizionemento nella griglia delle Page UserControl
|
|
m_SecondaryComponentPage.SetValue(Grid.ColumnSpanProperty, 2)
|
|
m_SecondaryComponentPage.SetValue(Grid.RowSpanProperty, 4)
|
|
|
|
' Leggo messaggi da file ini
|
|
LabelCompo9.Text = EgtMsg(MSG_COMPONENTPAGEUC + 9)
|
|
|
|
End Sub
|
|
|
|
Private Sub MainComponentPage_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
|
|
m_bIsFirstPage = True
|
|
LoadPage()
|
|
CurrentBtn = Nothing
|
|
If m_MainWindow.FrameCutBtn.IsChecked Then
|
|
' se il numero delle componenti è superiore a 8 allora inserisco la seconda pagina
|
|
If GetPrivateProfileInt(S_FRAMECOMPO, K_CMP_COUNT, 0, m_MainWindow.GetIniFile()) > 8 Then
|
|
OthersBackGr.Visibility = Visibility.Visible
|
|
Compo9.SetValue(Grid.ColumnProperty, 0)
|
|
Compo9.SetValue(Grid.ColumnSpanProperty, 2)
|
|
ImageCompo9.Visibility = Windows.Visibility.Hidden
|
|
LabelCompo9.Visibility = Windows.Visibility.Visible
|
|
Else
|
|
OthersBackGr.Visibility = Visibility.Hidden
|
|
End If
|
|
Else
|
|
OthersBackGr.Visibility = Visibility.Visible
|
|
Compo9.SetValue(Grid.ColumnProperty, 0)
|
|
Compo9.SetValue(Grid.ColumnSpanProperty, 2)
|
|
ImageCompo9.Visibility = Windows.Visibility.Hidden
|
|
LabelCompo9.Visibility = Windows.Visibility.Visible
|
|
End If
|
|
|
|
|
|
m_MainWindow.m_DrawPageUC.SideAngleBtn.IsEnabled = False
|
|
m_MainWindow.m_DrawPageUC.FiloTopBtn.IsEnabled = False
|
|
m_MainWindow.m_DrawPageUC.EngraveBtn.IsEnabled = False
|
|
m_MainWindow.m_DrawPageUC.DripCutBtn.IsEnabled = False
|
|
m_MainWindow.m_DrawPageUC.m_bBackFromInternalCompo = False
|
|
End Sub
|
|
|
|
Private Function GetButton(ByVal nInd As Integer) As Button
|
|
Select Case nInd
|
|
Case 1
|
|
Return Compo1
|
|
Case 2
|
|
Return Compo2
|
|
Case 3
|
|
Return Compo3
|
|
Case 4
|
|
Return Compo4
|
|
Case 5
|
|
Return Compo5
|
|
Case 6
|
|
Return Compo6
|
|
Case 7
|
|
Return Compo7
|
|
Case 8
|
|
Return Compo8
|
|
Case Else
|
|
Return Compo9
|
|
End Select
|
|
End Function
|
|
|
|
Private Function GetLabel(ByVal nInd As Integer) As TextBlock
|
|
Select Case nInd
|
|
Case 1
|
|
Return LabelCompo1
|
|
Case 2
|
|
Return LabelCompo2
|
|
Case 3
|
|
Return LabelCompo3
|
|
Case 4
|
|
Return LabelCompo4
|
|
Case 5
|
|
Return LabelCompo5
|
|
Case 6
|
|
Return LabelCompo6
|
|
Case 7
|
|
Return LabelCompo7
|
|
Case 8
|
|
Return LabelCompo8
|
|
Case Else
|
|
Return LabelCompo9
|
|
End Select
|
|
End Function
|
|
|
|
Private Function GetImage(ByVal nInd As Integer) As Image
|
|
Select Case nInd
|
|
Case 1
|
|
Return ImageCompo1
|
|
Case 2
|
|
Return ImageCompo2
|
|
Case 3
|
|
Return ImageCompo3
|
|
Case 4
|
|
Return ImageCompo4
|
|
Case 5
|
|
Return ImageCompo5
|
|
Case 6
|
|
Return ImageCompo6
|
|
Case 7
|
|
Return ImageCompo7
|
|
Case 8
|
|
Return ImageCompo8
|
|
Case Else
|
|
Return ImageCompo9
|
|
End Select
|
|
End Function
|
|
|
|
Friend Function GetIndexFromButton(Button As Button) As Integer
|
|
Select Case Button.Name
|
|
Case "Compo1"
|
|
If m_bIsFirstPage Then
|
|
Return 1
|
|
Else
|
|
Return 9
|
|
End If
|
|
Case "Compo2"
|
|
If m_bIsFirstPage Then
|
|
Return 2
|
|
Else
|
|
Return 10
|
|
End If
|
|
Case "Compo3"
|
|
If m_bIsFirstPage Then
|
|
Return 3
|
|
Else
|
|
Return 11
|
|
End If
|
|
Case "Compo4"
|
|
If m_bIsFirstPage Then
|
|
Return 4
|
|
Else
|
|
Return 12
|
|
End If
|
|
Case "Compo5"
|
|
If m_bIsFirstPage Then
|
|
Return 5
|
|
Else
|
|
Return 13
|
|
End If
|
|
Case "Compo6"
|
|
If m_bIsFirstPage Then
|
|
Return 6
|
|
Else
|
|
Return 14
|
|
End If
|
|
Case "Compo7"
|
|
If m_bIsFirstPage Then
|
|
Return 7
|
|
Else
|
|
Return 15
|
|
End If
|
|
Case Else
|
|
If m_bIsFirstPage Then
|
|
Return 8
|
|
Else
|
|
Return 16
|
|
End If
|
|
End Select
|
|
End Function
|
|
|
|
Private Sub Compo_Click(sender As Object, e As RoutedEventArgs) Handles Compo1.Click, Compo2.Click, Compo3.Click, Compo4.Click, Compo5.Click, Compo6.Click, Compo7.Click, Compo8.Click
|
|
CurrentBtn = DirectCast(e.Source, Button)
|
|
Dim CompoName As String = If(m_MainWindow.FrameCutBtn.IsChecked, S_FRAMECOMPO, S_COMPO) & GetIndexFromButton(CurrentBtn).ToString
|
|
m_sCurrCompoFam = CompoName
|
|
m_SecondaryComponentPage.m_sCurrCompo = String.Empty
|
|
Dim nCount As Integer = GetPrivateProfileInt(CompoName, K_CMP_COUNT, 0, m_MainWindow.GetIniFile())
|
|
If nCount > 1 Then
|
|
m_MainWindow.m_DrawPageUC.LeftButtonGrd.Children.Remove(Me)
|
|
m_MainWindow.m_DrawPageUC.m_ActiveComponentPage = DrawPageUC.Pages.SecondaryComponent
|
|
m_MainWindow.m_DrawPageUC.LeftButtonGrd.Children.Add(m_SecondaryComponentPage)
|
|
Else
|
|
Dim nCompoName As Integer
|
|
Dim sCompo As String = String.Empty
|
|
Dim sCompoImage As String = String.Empty
|
|
GetPrivateProfileCompo(CompoName, "Compo1", nCompoName, sCompo, sCompoImage, m_MainWindow.GetIniFile())
|
|
|
|
' Imposto componente esterno
|
|
m_MainWindow.m_DrawPageUC.m_bInternalCompo = False
|
|
|
|
m_MainWindow.m_DrawPageUC.LeftButtonGrd.Children.Remove(Me)
|
|
m_MainWindow.m_DrawPageUC.VariablesGrd.Children.Add(m_MainWindow.m_DrawPageUC.m_CompoDimension)
|
|
m_MainWindow.m_DrawPageUC.SideAngleBtn.IsChecked = False
|
|
m_MainWindow.m_DrawPageUC.FiloTopBtn.IsChecked = False
|
|
m_MainWindow.m_DrawPageUC.EngraveBtn.IsChecked = False
|
|
m_MainWindow.m_DrawPageUC.DripCutBtn.IsChecked = False
|
|
m_MainWindow.m_DrawPageUC.SideAngleBtn.IsEnabled = m_MainWindow.m_DrawPageUC.bEnableSideAngle
|
|
m_MainWindow.m_DrawPageUC.FiloTopBtn.IsEnabled = m_MainWindow.m_CurrentMachine.bMilling
|
|
m_MainWindow.m_DrawPageUC.EngraveBtn.IsEnabled = True
|
|
m_MainWindow.m_DrawPageUC.DripCutBtn.IsEnabled = m_MainWindow.GetKeyOption(MainWindow.KEY_OPT.UNDER_CUT) And
|
|
Not String.IsNullOrWhiteSpace(m_MainWindow.m_CurrentMachine.sCurrDripSaw)
|
|
m_MainWindow.m_DrawPageUC.MessageGrid.Visibility = Windows.Visibility.Visible
|
|
m_MainWindow.m_DrawPageUC.BackBtn.Visibility = Windows.Visibility.Visible
|
|
m_MainWindow.m_DrawPageUC.TopGrd.Visibility = Windows.Visibility.Visible
|
|
m_MainWindow.m_DrawPageUC.PartNameGrd.Visibility = Windows.Visibility.Visible
|
|
m_MainWindow.m_DrawPageUC.PartNumberGrd.Visibility = Windows.Visibility.Visible
|
|
' Carico componente
|
|
m_MainWindow.m_DrawPageUC.SelectedComponent(sCompo)
|
|
End If
|
|
End Sub
|
|
|
|
Public Function GetPrivateProfileCompo(
|
|
ByVal lpAppName As String,
|
|
ByVal lpKeyName As String,
|
|
ByRef lpCompoName As Integer,
|
|
ByRef lpCompo As String,
|
|
ByRef lpCompoImage As String,
|
|
ByVal lpFileName As String) As Boolean
|
|
|
|
Dim sVal As String = String.Empty
|
|
GetPrivateProfileString(lpAppName, lpKeyName, "", sVal, lpFileName)
|
|
Dim sItems() As String = sVal.Split(",".ToCharArray)
|
|
If sItems.Count() >= 2 Then
|
|
lpCompoName = 0
|
|
StringToInt(sItems(0), lpCompoName)
|
|
lpCompo = sItems(1)
|
|
If sItems.Count() >= 3 Then
|
|
lpCompoImage = sItems(2)
|
|
Else
|
|
lpCompoImage = String.Empty
|
|
End If
|
|
Return True
|
|
End If
|
|
Return False
|
|
|
|
End Function
|
|
|
|
Private Sub ClearButton(nCount As Integer)
|
|
Dim nEndIndex As Integer
|
|
If m_bIsFirstPage Then
|
|
nEndIndex = If(nCount < 8, nCount, 8)
|
|
Else
|
|
nEndIndex = If(nCount < 16, nCount - 8, 8)
|
|
End If
|
|
For index As Integer = 1 To nEndIndex
|
|
GetLabel(index).Text = String.Empty
|
|
GetImage(index).Source = Nothing
|
|
GetButton(index).Visibility = Windows.Visibility.Visible
|
|
Next
|
|
For index As Integer = nEndIndex + 1 To 8
|
|
GetLabel(index).Text = String.Empty
|
|
GetImage(index).Source = Nothing
|
|
GetButton(index).Visibility = Windows.Visibility.Hidden
|
|
Next
|
|
End Sub
|
|
|
|
Private Sub LoadPage()
|
|
If m_MainWindow.FrameCutBtn.IsChecked Then
|
|
LoadFramePage()
|
|
Return
|
|
End If
|
|
|
|
Dim nDeltaSecondPage As Integer = 8
|
|
' Leggo numero di componenti presenti
|
|
Dim nCompoNumber As Integer = GetPrivateProfileInt(S_COMPO, K_CMP_COUNT, 0, m_MainWindow.GetIniFile())
|
|
' Calcolo indici a seconda della pagina in cui sono
|
|
If m_bIsFirstPage Then
|
|
ClearButton(nCompoNumber)
|
|
nDeltaSecondPage = 0
|
|
Else
|
|
ClearButton(nCompoNumber)
|
|
nDeltaSecondPage = 8
|
|
End If
|
|
|
|
' Creazione converter da String a ImageSource
|
|
Dim ImageConverter As New ImageSourceConverter
|
|
Dim ThicknessConverter As New ThicknessConverter
|
|
|
|
'Assegnazione immagine e testo ai Button
|
|
For index As Integer = 1 To 8
|
|
Dim CustomThickness As New Thickness(0)
|
|
Dim nCompoName As Integer = GetPrivateProfileInt("Compo" & index + nDeltaSecondPage, "Name", 0, m_MainWindow.GetIniFile())
|
|
Dim sCompoImage As String = ""
|
|
Dim sCompoImageSource As ImageSource
|
|
|
|
'verifico presenza immagine e la aggiungo
|
|
If GetPrivateProfileString("Compo" & index + nDeltaSecondPage, "Image", "", sCompoImage, m_MainWindow.GetIniFile()) <> 0 Then
|
|
Try
|
|
sCompoImageSource = ImageConverter.ConvertFromString(m_MainWindow.GetResourcesDir() & "\" & sCompoImage)
|
|
GetImage(index).Height = 65
|
|
GetImage(index).Width = 65
|
|
GetImage(index).Source = sCompoImageSource
|
|
Catch ex As Exception
|
|
EgtOutLog("Error loading image " & sCompoImage)
|
|
sCompoImage = String.Empty
|
|
GetImage(index).Height = 0
|
|
GetImage(index).Width = 0
|
|
CustomThickness.Right = 0
|
|
GetImage(index).Margin = CustomThickness
|
|
End Try
|
|
Else
|
|
'Se non c'è l'immagine azzero la distanza tra testo e immagine
|
|
CustomThickness.Right = 0
|
|
GetImage(index).Margin = CustomThickness
|
|
End If
|
|
|
|
'verifico presenza testo
|
|
If nCompoName > 0 Then
|
|
Dim sCompoName As String = EgtMsg(MSG_COMPONENTPAGEUC + nCompoName)
|
|
'verifico presenza immagine
|
|
If sCompoImage.Length > 0 Then
|
|
'se la lunghezza del testo è maggiore di 15 lo taglio
|
|
If sCompoName.Length > 15 Then
|
|
sCompoName = sCompoName.Substring(0, 15)
|
|
End If
|
|
GetLabel(index).Text = sCompoName
|
|
'Se ci sono sia testo che immagine imposto un margine di 10
|
|
CustomThickness.Right = 10
|
|
GetImage(index).Margin = CustomThickness
|
|
Else
|
|
'se l'immagine non c'è e il testo è maggiore di 20 lo taglio
|
|
If sCompoName.Length > 20 Then
|
|
sCompoName = sCompoName.Substring(0, 20)
|
|
End If
|
|
GetLabel(index).Text = sCompoName
|
|
End If
|
|
Else
|
|
'Se non c'è testo azzero la distanza tra testo e immagine
|
|
CustomThickness.Right = 0
|
|
GetImage(index).Margin = CustomThickness
|
|
End If
|
|
|
|
Next
|
|
|
|
End Sub
|
|
|
|
Private Sub LoadFramePage()
|
|
Dim nDeltaSecondPage As Integer = 8
|
|
' Leggo numero di componenti presenti
|
|
Dim nCompoNumber As Integer = GetPrivateProfileInt(S_FRAMECOMPO, K_CMP_COUNT, 0, m_MainWindow.GetIniFile())
|
|
' Calcolo indici a seconda della pagina in cui sono
|
|
If m_bIsFirstPage Then
|
|
ClearButton(nCompoNumber)
|
|
nDeltaSecondPage = 0
|
|
Else
|
|
ClearButton(nCompoNumber)
|
|
nDeltaSecondPage = 8
|
|
End If
|
|
|
|
' Creazione converter da String a ImageSource
|
|
Dim ImageConverter As New ImageSourceConverter
|
|
Dim ThicknessConverter As New ThicknessConverter
|
|
|
|
'Assegnazione immagine e testo ai Button
|
|
For index As Integer = 1 To 8
|
|
Dim CustomThickness As New Thickness(0)
|
|
Dim nCompoName As Integer = GetPrivateProfileInt(S_FRAMECOMPO & index + nDeltaSecondPage, "Name", 0, m_MainWindow.GetIniFile())
|
|
Dim sCompoImage As String = ""
|
|
Dim sCompoImageSource As ImageSource
|
|
|
|
'verifico presenza immagine e la aggiungo
|
|
If GetPrivateProfileString(S_FRAMECOMPO & index + nDeltaSecondPage, "Image", "", sCompoImage, m_MainWindow.GetIniFile()) <> 0 Then
|
|
Try
|
|
sCompoImageSource = ImageConverter.ConvertFromString(m_MainWindow.GetResourcesDir() & "\" & sCompoImage)
|
|
GetImage(index).Height = 65
|
|
GetImage(index).Width = 65
|
|
GetImage(index).Source = sCompoImageSource
|
|
Catch ex As Exception
|
|
EgtOutLog("Error loading image " & sCompoImage)
|
|
sCompoImage = String.Empty
|
|
GetImage(index).Height = 0
|
|
GetImage(index).Width = 0
|
|
CustomThickness.Right = 0
|
|
GetImage(index).Margin = CustomThickness
|
|
End Try
|
|
Else
|
|
'Se non c'è l'immagine azzero la distanza tra testo e immagine
|
|
CustomThickness.Right = 0
|
|
GetImage(index).Margin = CustomThickness
|
|
End If
|
|
|
|
'verifico presenza testo
|
|
If nCompoName > 0 Then
|
|
Dim sCompoName As String = EgtMsg(MSG_COMPONENTPAGEUC + nCompoName)
|
|
'verifico presenza immagine
|
|
If sCompoImage.Length > 0 Then
|
|
'se la lunghezza del testo è maggiore di 15 lo taglio
|
|
If sCompoName.Length > 15 Then
|
|
sCompoName = sCompoName.Substring(0, 15)
|
|
End If
|
|
GetLabel(index).Text = sCompoName
|
|
'Se ci sono sia testo che immagine imposto un margine di 10
|
|
CustomThickness.Right = 10
|
|
GetImage(index).Margin = CustomThickness
|
|
Else
|
|
'se l'immagine non c'è e il testo è maggiore di 20 lo taglio
|
|
If sCompoName.Length > 20 Then
|
|
sCompoName = sCompoName.Substring(0, 20)
|
|
End If
|
|
GetLabel(index).Text = sCompoName
|
|
End If
|
|
Else
|
|
'Se non c'è testo azzero la distanza tra testo e immagine
|
|
CustomThickness.Right = 0
|
|
GetImage(index).Margin = CustomThickness
|
|
End If
|
|
|
|
Next
|
|
|
|
End Sub
|
|
|
|
' Gestione bottone altri componenti
|
|
Private Sub Compo9_Click(sender As Object, e As RoutedEventArgs) Handles Compo9.Click
|
|
If m_bIsFirstPage Then
|
|
m_bIsFirstPage = False
|
|
LoadPage()
|
|
Compo9.SetValue(Grid.ColumnProperty, 0)
|
|
Compo9.SetValue(Grid.ColumnSpanProperty, 2)
|
|
ImageCompo9.Visibility = Windows.Visibility.Hidden
|
|
LabelCompo9.Visibility = Windows.Visibility.Visible
|
|
Else
|
|
m_bIsFirstPage = True
|
|
LoadPage()
|
|
Compo9.SetValue(Grid.ColumnProperty, 0)
|
|
Compo9.SetValue(Grid.ColumnSpanProperty, 2)
|
|
ImageCompo9.Visibility = Windows.Visibility.Hidden
|
|
LabelCompo9.Visibility = Windows.Visibility.Visible
|
|
End If
|
|
End Sub
|
|
|
|
End Class
|