Files
OmagCUT/Machine/PolishingsPageUC.xaml.vb
T
Dario Sassi 59cea77860 OmagCUT :
- correzioni per riferimenti a immagini
- aggiunta pagina Lucidatura a Tagli diretti
- logo Om con versione 2.2.
2020-02-22 11:11:25 +00:00

1081 lines
40 KiB
VB.net

Imports System.Collections.ObjectModel
Imports System.ComponentModel
Imports EgtUILib
Imports EgtWPFLib
Public Class PolishingsPageUC
' Riferimento alla MainWindow
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
' Variabile che conserva la lucidatura precedentemente selezionata, usata nel caso si selezioni annulla quando si cambia lucidatura selezionata
Private m_OldItem As Object
' File kits di lucidatura
Private m_sKitFile As String = String.Empty
Private m_KitList As New ObservableCollection(Of Kit)
Private m_KitMachList As New ObservableCollection(Of KitMach)
' Lista che contiene gli utensili disponibili (per Combobox in ciascun KitMachItem)
Private m_ToolList As New ObservableCollection(Of String)
' Lista che contiene gli UUID degli utensili disponibili nello stesso ordine della lista dei nomi (ComboBox) per la scrittura degli stessi sull'INI
Private m_ToolUuidList As New ObservableCollection(Of String)
Private m_PreviousSelectedKitIndex As Integer = 0
Private m_PreviousSelectedKitMachIndex As Integer = 0
Public ReadOnly Property ToolList As ObservableCollection(Of String)
Get
Return m_ToolList
End Get
End Property
Public ReadOnly Property ToolUuidList As ObservableCollection(Of String)
Get
Return m_ToolUuidList
End Get
End Property
Private Sub PolishingsPage_Initialized(sender As Object, e As EventArgs)
' Impostazione Path KitIni file
m_sKitFile = m_MainWindow.GetKitsFile()
' Imposto i messaggi letti dal file dei messaggi
NewKitBtn.Content = EgtMsg(MSG_MACHINEPAGEUC + 16)
SaveKitBtn.Content = EgtMsg(MSG_MACHINEPAGEUC + 17)
RemoveKitBtn.Content = EgtMsg(MSG_MACHINEPAGEUC + 18)
NewKitMachBtn.Content = EgtMsg(MSG_MACHINEPAGEUC + 16)
RemoveKitMachBtn.Content = EgtMsg(MSG_MACHINEPAGEUC + 18)
MoveUpKitMachBtn.Content = EgtMsg(91098)
MoveDownKitMachBtn.Content = EgtMsg(91099)
KitsGpBx.Header = EgtMsg(91091) ' Lucidature
KitMachsGpBx.Header = EgtMsg(91096) ' Lista utensili
MotionTxBl.Text = EgtMsg(91092) ' Movimento
RepeatTxBl.Text = EgtMsg(91093) ' Ripetizioni
StepTxBl.Text = EgtMsg(90787) ' Passo
LiLoGpBx.Header = EgtMsg(91094) ' Attacco/Uscita
LiLenTxBl.Text = EgtMsg(91097) ' Lunghezza
LiHeightTxBl.Text = EgtMsg(91095) ' Altezza
LiLoadTxBl.Text = EgtMsg(91100) ' Precarico
End Sub
Private Sub PolishingsPage_Loaded(sender As Object, e As RoutedEventArgs)
EgtSetCurrentContext(m_MainWindow.m_CurrentProjectPageUC.CurrentProjectScene.GetCtx())
LoadPage()
End Sub
Private Sub LoadPage()
' Leggo utensili dal Db
m_ToolList.Clear()
Dim sToolName As String = String.Empty
Dim nType As Integer = MCH_TY.NONE
Dim bOk As Boolean = EgtTdbGetFirstTool( MCH_TF.MILL, sToolName, nType)
While bOk
If nType = MCH_TY.MILL_POLISHING Then
m_ToolList.Add( sToolName)
' Recupero l'UUID dell' utensile
EgtTdbSetCurrTool( sToolName)
Dim sToolUuid As String = String.Empty
EgtTdbGetCurrToolParam( MCH_TP.UUID, sToolUuid)
ToolUuidList.Add( sToolUuid)
End If
' Passo al successivo
bOk = EgtTdbGetNextTool( MCH_TF.MILL, sToolName, nType)
End While
' Leggo la lista dei kit
m_KitList.Clear()
m_KitMachList.Clear()
Dim Kit As Kit = Nothing
Dim nKitIndex As Integer = 1
While ReadKit( nKitIndex, False, Kit)
m_KitList.Add( Kit)
nKitIndex += 1
End While
KitsLstBx.ItemsSource = m_KitList
KitMachsLstBx.ItemsSource = m_KitMachList
KitMach.m_ToolList = ToolList.ToList()
' Recupero nome utensile tramite UUID
Dim ToolString As String = String.Empty
For Each KitItem In m_KitList
For Each KitMachItem In KitItem.KitMachList
Dim selToolIndex As Integer = 0
EgtTdbGetToolFromUUID(KitMachItem.sToolUUID, ToolString)
Dim bToolExist As Boolean = False
For Each CurrTool In ToolList
If CurrTool.ToString() = ToolString Then
bToolExist = True
Exit For
End If
selToolIndex += 1
Next
If bToolExist Then
KitMachItem.SelTool = selToolIndex
Else
KitMachItem.SelTool = -1
End If
Next
Next
If KitsLstBx.Items.Count > 0 Then
' seleziono il primo elemento della lista dei Kit
KitsLstBx.SelectedItem = m_KitList( m_PreviousSelectedKitIndex)
m_OldItem = KitsLstBx.SelectedItem
' carico la lista dei KitMach relativi al Kit selezionato
For Each kmItem As KitMach In KitsLstBx.SelectedItem.KitMachList
Dim KitMachItem = New KitMach( kmItem)
m_KitMachList.Add(KitMachItem)
Next
' Verifico che l'indice del KitMach da selezionare rientri nell'intervallo degli indici esistenti altrimenti lo setto a 0
Dim kitMachIndex As Integer = m_PreviousSelectedKitMachIndex
If kitMachIndex > KitMachsLstBx.Items.Count Then
kitMachIndex = 0
End If
KitMachsLstBx.SelectedItem = m_KitMachList(kitMachIndex)
' visualizzo i parametri relativi al KitMach selezionato
ShowKitMach( m_KitMachList( kitMachIndex))
End If
If KitMachsLstBx.Items.Count = 0 Then RemoveKitMachBtn.IsEnabled = False
If KitsLstBx.Items.Count = 0 Then RemoveKitBtn.IsEnabled = False
IsModifiedReset()
End Sub
Private Sub NewKitBtn_Click(sender As Object, e As RoutedEventArgs) Handles NewKitBtn.Click
' Se ci sono state modifiche chiedo se si desidera salvarle
If Not SaveKit() Then
KitsLstBx.SelectedItem = m_OldItem
Exit Sub
End If
' Mostro textbox per il nome
KitNameTxBx.Text = String.Empty
KitNameTxBx.Visibility = Windows.Visibility.Visible
KitsLstBx.SetValue( Grid.RowSpanProperty, 1)
End Sub
Private Sub KitNameTxBx_EgtClosed(sender As Object, e As EventArgs) Handles KitNameTxBx.EgtClosed
' Verifico che il nome non sia vuoto
If Not String.IsNullOrWhiteSpace( KitNameTxBx.Text) Then
' Verifico che il nome non sia già utilizzato
Dim bNameExist As Boolean = False
For Each Kit In m_KitList
If Kit.sName = KitNameTxBx.Text Then
bNameExist = True
Exit For
End If
Next
If Not bNameExist Then
' Aggiungo un Kit con Id uguale al numero di Kit già presenti + 1 e nome appena immesso
AddKit( KitNameTxBx.Text, m_PreviousSelectedKitIndex)
End If
End If
RemoveKitBtn.IsEnabled = True
RemoveKitMachBtn.IsEnabled = True
m_PreviousSelectedKitIndex = m_KitList.Count - 1
LoadPage()
' Nascondo textbox per il nome
KitsLstBx.SetValue( Grid.RowSpanProperty, 2)
KitNameTxBx.Visibility = Windows.Visibility.Hidden
End Sub
Private Sub SaveBtn_Click(sender As Object, e As RoutedEventArgs) Handles SaveKitBtn.Click
If IsNothing( KitsLstBx.SelectedItem) Then Return
' Salvo il Kit correntemente selezionato
Save( KitsLstBx.SelectedItem.nId)
End Sub
Private Sub Save( nKitIndex As Integer)
Dim kitCurr = m_KitList( nKitIndex - 1)
' Salvo e scrivo tutti i KitMach del Kit che ha Id uguale all'argomento passato alla funzione Save
Dim nKitMachIndex As Integer = 1
For Each kmlbCurr As Object In KitMachsLstBx.Items
' Recupero i dati
Dim kmCurr As KitMach = kitCurr.KitMachList( nKitMachIndex - 1)
kmCurr.SelTool = kmlbCurr.SelTool
If kmCurr.SelTool >= 0 Then
kmCurr.sToolName = ToolList( kmCurr.SelTool)
kmCurr.sToolUUID = ToolUuidList( kmCurr.SelTool)
Else
kmCurr.sToolName = "---"
kmCurr.sToolUUID = "---"
End If
kmCurr.bActive = kmlbCurr.bActive
kmCurr.nContour = kmlbCurr.nContour
kmCurr.nZigZagX = kmlbCurr.nZigZagX
kmCurr.dStepX = kmlbCurr.dStepX
kmCurr.nZigZagY = kmlbCurr.nZigZagY
kmCurr.dStepY = kmlbCurr.dStepY
kmCurr.dLiLen = kmlbCurr.dLiLen
kmCurr.dLiHeight = kmlbCurr.dLiHeight
' Salvo i dati
WriteKitMach( kitCurr.nId, nKitMachIndex, kmCurr)
nKitMachIndex += 1
Next
IsModifiedReset()
End Sub
Private Sub RemoveKitBtn_Click(sender As Object, e As RoutedEventArgs) Handles RemoveKitBtn.Click
If IsNothing( KitsLstBx.SelectedItem) Then Return
' Rimuovo il Kit correntemente selezionato
RemoveKit( KitsLstBx.SelectedItem.nId)
End Sub
Private Sub RemoveKitMachBtn_Click(sender As Object, e As RoutedEventArgs) Handles RemoveKitMachBtn.Click
Dim SelectedKit As Kit = DirectCast(KitsLstBx.SelectedItem, Kit)
Dim SelectedKitMach As KitMach = DirectCast(KitMachsLstBx.SelectedItem, KitMach)
' Se sono presenti più di 1 KitMach elimina quello selezionato altrimenti elimina l'intero Kit
If KitMachsLstBx.Items.Count > 1 Then
If Not IsNothing( SelectedKitMach) Then
RemoveKitMach( SelectedKit, SelectedKitMach.nId)
End If
Else
RemoveKit( SelectedKit.nId)
End If
End Sub
Private Sub MoveUpKitMachBtn_Click( sender As Object, e As RoutedEventArgs) Handles MoveUpKitMachBtn.Click
' Kit corrente
Dim kitCurr As Kit = DirectCast( KitsLstBx.SelectedItem, Kit)
If IsNothing( kitCurr) Then Return
' Lavorazione corrente del kit corrente
Dim kmCurr As KitMach = DirectCast( KitMachsLstBx.SelectedItem, KitMach)
If IsNothing( kmCurr) Then Return
Dim nkmCurrIdx As Integer = kmCurr.nId
' Se lavorazione è prima della lista, non devo fare alcunchè
If nkmCurrIdx = 0 Then Return
' Riscrivo i parametri del KitMach precedente con gli indici del KitMach selezionato
Dim kmPrev As KitMach = KitMachsLstBx.Items( kmCurr.nId - 2)
WriteKitMach( kitCurr.nId, nkmCurrIdx, kmPrev)
' Riscrivo i parametri del KitMach selezionato con gli indici del KitMach precedente
Dim nkmPrevIdx As Integer = kmCurr.nId - 1
WriteKitMach( kitCurr.nId, nkmPrevIdx, kmCurr)
' Aggiorno selezioni
m_PreviousSelectedKitIndex = KitsLstBx.SelectedItem.nId - 1
m_PreviousSelectedKitMachIndex = KitMachsLstBx.SelectedItem.nId - 2
' Ricarico tutto
LoadPage()
End Sub
Private Sub MoveDownKitMachBtn_Click(sender As Object, e As RoutedEventArgs) Handles MoveDownKitMachBtn.Click
' Kit corrente
Dim kitCurr As Kit = DirectCast( KitsLstBx.SelectedItem, Kit)
If IsNothing( kitCurr) Then Return
' Lavorazione corrente del kit corrente
Dim kmCurr As KitMach = DirectCast( KitMachsLstBx.SelectedItem, KitMach)
If IsNothing( kmCurr) Then Return
Dim nkmCurrIdx As Integer = kmCurr.nId
' Se lavorazione è ultima della lista, non devo fare alcunchè
If nkmCurrIdx = KitMachsLstBx.Items.Count Then Return
' Riscrivo i parametri del KitMach seguente con gli indici del KitMach selezionato
Dim kmNext As KitMach = KitMachsLstBx.Items( kmCurr.nId)
WriteKitMach( kitCurr.nId, nkmCurrIdx, kmNext)
' Riscrivo i parametri del KitMach selezionato con gli indici del KitMach seguente
Dim nkmNextIdx As Integer = kmCurr.nId + 1
WriteKitMach( kitCurr.nId, nkmNextIdx, kmCurr)
' Aggiorno selezioni
m_PreviousSelectedKitIndex = KitsLstBx.SelectedItem.nId - 1
m_PreviousSelectedKitMachIndex = KitMachsLstBx.SelectedItem.nId
' Ricarico tutto
LoadPage()
End Sub
Private Sub NewKitMachBtn_Click(sender As Object, e As RoutedEventArgs) Handles NewKitMachBtn.Click
' Se ci sono state modifiche chiedo se si desidera salvarle
If Not SaveKit() Then
KitsLstBx.SelectedItem = m_OldItem
Exit Sub
End If
If Not IsNothing( KitsLstBx.SelectedItem) Then
' Scrivo nuova lavorazione
Dim nKitIdx As Integer = m_KitList(KitsLstBx.SelectedIndex).nId
Dim nMachKitIdx As Integer = m_KitMachList.Count + 1
WriteKitMach( nKitIdx, nMachKitIdx, New KitMach( nMachKitIdx))
' Ricarico
m_PreviousSelectedKitIndex = KitsLstBx.SelectedItem.nId - 1
LoadPage()
End If
End Sub
Private Sub AddKit( sNewKitName As String, nCurrKitIndex As Integer)
Dim kitNew As Kit = Nothing
If nCurrKitIndex >= 0 And nCurrKitIndex < m_KitList.Count() Then
' Creo il Kit come copia di quello corrente
kitNew = New Kit( m_KitList.Count + 1, sNewKitName, m_KitList( nCurrKitIndex))
Else
' Creo il Kit e aggiungo un KitMach vuoto
kitNew = New Kit( m_KitList.Count + 1, sNewKitName)
kitNew.KitMachList.Add( New KitMach( 1))
End If
' Inserisco in lista
m_KitList.Add( kitNew)
' Eseguo il salvataggio
WriteKitName( kitNew.nId, kitNew.sName)
For Each kmCurr As KitMach In kitNew.KitMachList
WriteKitMach( kitNew.nId, kmCurr.nId, kmCurr)
Next
End Sub
Private Sub RemoveKit( nKitIndex As Integer)
' Rimuovo il Kit dall'elenco
For Index As Integer = 0 To m_KitList.Count - 1
If m_KitList( Index).nId = nKitIndex Then
m_KitList.RemoveAt( Index)
Exit For
End If
Next
' Tolgo il kit dal file
EraseKit( nKitIndex)
' Ricarico tutto
m_PreviousSelectedKitIndex = 0
LoadPage()
End Sub
Friend Sub RemoveKitMach( KitValue As Kit, nKitMachIndex As Integer)
' Rimuovo il Kit dall'elenco
Dim Index As Integer
For Index = 0 To m_KitMachList.Count - 1
If m_KitMachList( Index).nId = nKitMachIndex Then
m_KitMachList.RemoveAt( Index)
Exit For
End If
Next
KitValue.KitMachList.RemoveAt( Index)
' Tolgo la lavorazione dal file
EraseKitMach( KitValue.nId, nKitMachIndex)
' Ricarico tutto
m_PreviousSelectedKitIndex = KitsLstBx.SelectedItem.nId - 1
m_PreviousSelectedKitMachIndex = 0
LoadPage()
End Sub
Private Sub KitsLstBx_PreviewMouseUp(sender As Object, e As MouseButtonEventArgs) Handles KitsLstBx.PreviewMouseUp
If Not SaveKit() Then
KitsLstBx.SelectedItem = m_OldItem
Exit Sub
End If
Dim SelectedKit As Kit = KitsLstBx.SelectedItem
If Not IsNothing(SelectedKit) Then
' resetto la lista
m_KitMachList.Clear()
' carico la lista dei KitMach relativi al Kit selezionato
For Each kmItem As KitMach In KitsLstBx.SelectedItem.KitMachList
Dim KitMachItem = New KitMach( kmItem)
m_KitMachList.Add( KitMachItem)
Next
' seleziono il primo elemento della lista dei Kit
KitMachsLstBx.SelectedItem = m_KitMachList( 0)
' visualizzo i parametri relativi al KitMach selezionato
ShowKitMach( m_KitMachList( 0))
m_OldItem = KitsLstBx.SelectedItem
IsModifiedReset()
End If
End Sub
Friend Function SaveKit() As Boolean
' Se non modificato non va fatto alcunché
If Not IsModified() Then Return True
' Chiedo cosa fare ed eseguo
Dim SaveCurrKitWnd As New EgtMsgBox( m_MainWindow, "", EgtMsg(91124), EgtMsgBox.Buttons.YES_NO_CANCEL, EgtMsgBox.Icons.NULL)
Select Case SaveCurrKitWnd.m_nPressedBtn
Case 1 ' Si
Save( m_OldItem.nId)
Return True
Case 2 ' No
m_PreviousSelectedKitIndex = KitsLstBx.SelectedItem.nId - 1
LoadPage()
Return True
Case Else ' Annulla
Return False
End Select
End Function
Private ReadOnly Property IsModified() As Boolean
Get
If Not IsNothing(m_OldItem) Then
Dim nKitIndex As Integer = m_OldItem.nId
If nKitIndex <= m_KitList.Count Then
For Each KitMachItem In m_KitList(nKitIndex - 1).KitMachList
If KitMachItem.m_IsModifiedId OrElse KitMachItem.m_IsModifiedToolUUID OrElse KitMachItem.m_IsModifiedToolName OrElse KitMachItem.m_IsModifiedSelTool OrElse
KitMachItem.m_IsModifiedActive OrElse KitMachItem.m_IsModifiedContour OrElse KitMachItem.m_IsModifiedZigZagX OrElse
KitMachItem.m_IsModifiedZigZagY OrElse KitMachItem.m_IsModifiedStepX OrElse KitMachItem.m_IsModifiedStepY OrElse
KitMachItem.m_IsModifiedLiLen OrElse KitMachItem.m_IsModifiedLiHeight OrElse KitMachItem.m_IsModifiedLiLoad Then
Return True
End If
Next
End If
End If
Return False
End Get
End Property
Private Sub IsModifiedReset()
If IsNothing( m_OldItem) Then Return
Dim nKitIndex As Integer = m_OldItem.nId
If nKitIndex <= m_KitList.Count Then
For Each KitMachItem In m_KitList(nKitIndex - 1).KitMachList
KitMachItem.m_IsModifiedId = False
KitMachItem.m_IsModifiedToolUUID = False
KitMachItem.m_IsModifiedToolName = False
KitMachItem.m_IsModifiedSelTool = False
KitMachItem.m_IsModifiedActive = False
KitMachItem.m_IsModifiedContour = False
KitMachItem.m_IsModifiedZigZagX = False
KitMachItem.m_IsModifiedZigZagY = False
KitMachItem.m_IsModifiedStepX = False
KitMachItem.m_IsModifiedStepY = False
KitMachItem.m_IsModifiedLiLen = False
KitMachItem.m_IsModifiedLiHeight = False
KitMachItem.m_IsModifiedLiLoad = False
Next
End If
End Sub
Private Sub ShowKitMach( kmShow As KitMach)
' visualizzo i parametri del KitMach
ContourTxBx.Text = kmShow.nContour.ToString()
ZigZagXTxBx.Text = kmShow.nZigZagX.ToString()
StepXTxBx.Text = LenToString( kmShow.dStepX, 3)
ZigZagYTxBx.Text = kmShow.nZigZagY.ToString()
StepYTxBx.Text = LenToString( kmShow.dStepY, 3)
LiLenTxBx.Text = LenToString( kmShow.dLiLen, 3)
LiHeightTxBx.Text = LenToString( kmShow.dLiHeight, 3)
LiLoadTxBx.Text = LenToString( kmShow.dLiLoad, 3)
End Sub
Private Sub KitMachsLstBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles KitMachsLstBx.SelectionChanged
Dim SelectedKitMach As KitMach = KitMachsLstBx.SelectedItem
If Not IsNothing(SelectedKitMach) Then
' visualizzo i parametri relativi al KitMach selezionato
ShowKitMach( SelectedKitMach)
End If
End Sub
Private Sub ContourTxBx_EgtClosed(sender As Object, e As EventArgs) Handles ContourTxBx.EgtClosed
Dim nTemp As Integer = 0
If Not IsNothing(KitMachsLstBx.SelectedItem) Then
nTemp = ContourTxBx.Text
KitMachsLstBx.SelectedItem.nContour = nTemp
m_OldItem.KitMachList(KitMachsLstBx.SelectedItem.nId - 1).nContour = nTemp
End If
End Sub
Private Sub ZigZagXTxBx_EgtClosed(sender As Object, e As EventArgs) Handles ZigZagXTxBx.EgtClosed
Dim nTemp As Integer = 0
If Not IsNothing(KitMachsLstBx.SelectedItem) Then
nTemp = ZigZagXTxBx.Text
KitMachsLstBx.SelectedItem.nZigZagX = nTemp
m_OldItem.KitMachList(KitMachsLstBx.SelectedItem.nId - 1).nZigZagX = nTemp
End If
End Sub
Private Sub StepXTxBx_EgtClosed(sender As Object, e As EventArgs) Handles StepXTxBx.EgtClosed
Dim dTemp As Double = 0
If Not IsNothing(KitMachsLstBx.SelectedItem) Then
StringToLen(StepXTxBx.Text, dTemp)
KitMachsLstBx.SelectedItem.dStepX = dTemp
m_OldItem.KitMachList(KitMachsLstBx.SelectedItem.nId - 1).dStepX = dTemp
End If
End Sub
Private Sub ZigZagYTxBx_EgtClosed(sender As Object, e As EventArgs) Handles ZigZagYTxBx.EgtClosed
Dim nTemp As Integer = 0
If Not IsNothing(KitMachsLstBx.SelectedItem) Then
nTemp = ZigZagYTxBx.Text
KitMachsLstBx.SelectedItem.nZigZagY = nTemp
m_OldItem.KitMachList(KitMachsLstBx.SelectedItem.nId - 1).nZigZagY = nTemp
End If
End Sub
Private Sub StepYTxBx_EgtClosed(sender As Object, e As EventArgs) Handles StepYTxBx.EgtClosed
Dim dTemp As Double = 0
If Not IsNothing(KitMachsLstBx.SelectedItem) Then
StringToLen(StepYTxBx.Text, dTemp)
KitMachsLstBx.SelectedItem.dStepY = dTemp
m_OldItem.KitMachList(KitMachsLstBx.SelectedItem.nId - 1).dStepY = dTemp
End If
End Sub
Private Sub LiLenTxBx_EgtClosed(sender As Object, e As EventArgs) Handles LiLenTxBx.EgtClosed
Dim dTemp As Double = 0
If Not IsNothing(KitMachsLstBx.SelectedItem) Then
StringToLen(LiLenTxBx.Text, dTemp)
KitMachsLstBx.SelectedItem.dLiLen = dTemp
m_OldItem.KitMachList(KitMachsLstBx.SelectedItem.nId - 1).dLiLen = dTemp
End If
End Sub
Private Sub LiHeightTxBx_EgtClosed(sender As Object, e As EventArgs) Handles LiHeightTxBx.EgtClosed
Dim dTemp As Double = 0
If Not IsNothing(KitMachsLstBx.SelectedItem) Then
StringToLen(LiHeightTxBx.Text, dTemp)
KitMachsLstBx.SelectedItem.dLiHeight = dTemp
m_OldItem.KitMachList(KitMachsLstBx.SelectedItem.nId - 1).dLiHeight = dTemp
End If
End Sub
Private Sub LiLoadTxBx_EgtClosed(sender As Object, e As EventArgs) Handles LiLoadTxBx.EgtClosed
Dim dTemp As Double = 0
If Not IsNothing(KitMachsLstBx.SelectedItem) Then
StringToLen(LiLoadTxBx.Text, dTemp)
KitMachsLstBx.SelectedItem.dLiLoad = dTemp
m_OldItem.KitMachList(KitMachsLstBx.SelectedItem.nId - 1).dLiLoad = dTemp
End If
End Sub
Private Sub CheckBox_Click(sender As Object, e As RoutedEventArgs)
If Not IsNothing(KitMachsLstBx.SelectedItem) Then
m_OldItem.KitMachList(KitMachsLstBx.SelectedItem.nId - 1).bActive = KitMachsLstBx.SelectedItem.bActive
End If
End Sub
Private Sub ToolCmBx_SelectionChanged(sender As Object, e As SelectionChangedEventArgs)
If Not IsNothing( KitMachsLstBx.SelectedItem) Then
m_OldItem.KitMachList(KitMachsLstBx.SelectedItem.nId - 1).SelTool = KitMachsLstBx.SelectedItem.SelTool
If KitMachsLstBx.SelectedItem.SelTool >= 0 then
KitMachsLstBx.SelectedItem.sToolName = m_ToolList( KitMachsLstBx.SelectedItem.SelTool)
KitMachsLstBx.SelectedItem.sToolUUID = m_ToolUuidList( KitMachsLstBx.SelectedItem.SelTool)
Else
KitMachsLstBx.SelectedItem.sToolName = "---"
KitMachsLstBx.SelectedItem.sToolUUID = "---"
End If
m_OldItem.KitMachList(KitMachsLstBx.SelectedItem.nId - 1).sToolName = KitMachsLstBx.SelectedItem.sToolName
m_OldItem.KitMachList(KitMachsLstBx.SelectedItem.nId - 1).sToolUUID = KitMachsLstBx.SelectedItem.sToolUUID
End If
End Sub
Private Function ReadKitName( nKitIndex As Integer) As String
' Leggo il nome del kit
Dim sKey As String = K_KIT & nKitIndex.ToString("D2")
Dim sName As String = ""
GetPrivateProfileString( S_HEADER, sKey, "", sName, m_sKitFile)
Return sName
End Function
Private Function ReadKit( nKitIndex As Integer, removeFlag As Boolean, ByRef Kit As Kit) As Boolean
' Leggo il nome del kit
Dim sName As String = ReadKitName( nKitIndex)
If String.IsNullOrWhiteSpace( sName) Then Return False
' Creo il kit
Kit = New Kit( If( removeFlag, nKitIndex - 1, nKitIndex), sName)
' Leggo le sue lavorazioni
For nkitMachIndex As Integer = 1 To 100
Dim kmItem As KitMach = Nothing
if ReadKitMach( sName, nkitMachIndex, kmItem) Then
Kit.AddKitMach( kmItem)
Else
Exit For
End If
Next
' Se non sono state trovate lavorazioni, ne aggiungo una standard
If Kit.KitMachList.Count() = 0 Then
Kit.AddKitMach( New KitMach( 1))
End If
Return True
End Function
Private Function ReadKitMach( sKitName As String, nKitMachIndex As Integer, ByRef kmItem As KitMach) As Boolean
' Verifico esistenza lavorazione del kit
Dim sSect As String = S_KIT & "." & sKitName
Dim sKeyInd As String = nkitMachIndex.ToString("D2") & "."
Dim sName As String = ""
If GetPrivateProfileString( sSect, sKeyInd & K_TOOLNAME, "", sName, m_sKitFile) = 0 Then Return False
' Lettura completa
kmItem = New KitMach
kmItem.sToolName = sName
kmItem.nId = nkitMachIndex
GetPrivateProfileString( sSect, sKeyInd & K_TOOL, "", kmItem.sToolUUID, m_sKitFile)
kmItem.bActive = ( GetPrivateProfileInt( sSect, sKeyInd & K_ACTIVE, 0, m_sKitFile) = 1)
kmItem.nContour = GetPrivateProfileInt( sSect, sKeyInd & K_CONTOUR, 0, m_sKitFile)
kmItem.nZigZagX = GetPrivateProfileInt( sSect, sKeyInd & K_ZIGZAGX, 0, m_sKitFile)
kmItem.dStepX = GetPrivateProfileDouble( sSect, sKeyInd & K_STEPX, 0, m_sKitFile)
kmItem.nZigZagY = GetPrivateProfileInt( sSect, sKeyInd & K_ZIGZAGY, 0, m_sKitFile)
kmItem.dStepY = GetPrivateProfileDouble( sSect, sKeyInd & K_STEPY, 0, m_sKitFile)
kmItem.dLiLen = GetPrivateProfileDouble( sSect, sKeyInd & K_LILEN, 0, m_sKitFile)
kmItem.dLiHeight = GetPrivateProfileDouble( sSect, sKeyInd & K_LIHEIGHT, 0, m_sKitFile)
kmItem.dLiLoad = GetPrivateProfileDouble( sSect, sKeyInd & K_LILOAD, 0, m_sKitFile)
Return True
End Function
Friend Function WriteKitName( nKitIndex As Integer, sKitName As String) As Boolean
Dim sKey As String = K_KIT & nKitIndex.ToString("D2")
Return WritePrivateProfileString( S_HEADER, sKey, sKitName, m_sKitFile)
End Function
Private Function WriteKitMach( nKitIndex As Integer, nKitMachIndex As Integer, kmItem As KitMach) As Boolean
' Leggo il nome del kit
Dim sKitName As String = ReadKitName( nKitIndex)
If String.IsNullOrWhiteSpace( sKitName) Then Return False
' Sezione
Dim sSect As String = S_KIT & "." & sKitName
' Indice
Dim sKeyInd As String = nKitMachIndex.ToString("D2") & "."
' Scrivo i dati della lavorazione
If Not IsNothing( kmItem) Then
WritePrivateProfileString( sSect, sKeyInd & K_TOOL, kmItem.sToolUUID, m_sKitFile)
WritePrivateProfileString( sSect, sKeyInd & K_TOOLNAME, kmItem.sToolName, m_sKitFile)
WritePrivateProfileString( sSect, sKeyInd & K_ACTIVE, If( kmItem.bActive, "1", "0"), m_sKitFile)
WritePrivateProfileString( sSect, sKeyInd & K_CONTOUR, kmItem.nContour.ToString(), m_sKitFile)
WritePrivateProfileString( sSect, sKeyInd & K_ZIGZAGX, kmItem.nZigZagX.ToString(), m_sKitFile)
WritePrivateProfileString( sSect, sKeyInd & K_STEPX, DoubleToString( kmItem.dStepX, 3), m_sKitFile)
WritePrivateProfileString( sSect, sKeyInd & K_ZIGZAGY, kmItem.nZigZagY.ToString(), m_sKitFile)
WritePrivateProfileString( sSect, sKeyInd & K_STEPY, DoubleToString( kmItem.dStepY, 3), m_sKitFile)
WritePrivateProfileString( sSect, sKeyInd & K_LILEN, DoubleToString( kmItem.dLiLen, 3), m_sKitFile)
WritePrivateProfileString( sSect, sKeyInd & K_LIHEIGHT, DoubleToString( kmItem.dLiHeight, 3), m_sKitFile)
WritePrivateProfileString( sSect, sKeyInd & K_LILOAD, DoubleToString( kmItem.dLiLoad, 3), m_sKitFile)
Else
WritePrivateProfileString( sSect, sKeyInd & K_TOOL, Nothing, m_sKitFile)
WritePrivateProfileString( sSect, sKeyInd & K_TOOLNAME, Nothing, m_sKitFile)
WritePrivateProfileString( sSect, sKeyInd & K_ACTIVE, Nothing, m_sKitFile)
WritePrivateProfileString( sSect, sKeyInd & K_CONTOUR, Nothing, m_sKitFile)
WritePrivateProfileString( sSect, sKeyInd & K_ZIGZAGX, Nothing, m_sKitFile)
WritePrivateProfileString( sSect, sKeyInd & K_STEPX, Nothing, m_sKitFile)
WritePrivateProfileString( sSect, sKeyInd & K_ZIGZAGY, Nothing, m_sKitFile)
WritePrivateProfileString( sSect, sKeyInd & K_STEPY, Nothing, m_sKitFile)
WritePrivateProfileString( sSect, sKeyInd & K_LILEN, Nothing, m_sKitFile)
WritePrivateProfileString( sSect, sKeyInd & K_LIHEIGHT, Nothing, m_sKitFile)
WritePrivateProfileString( sSect, sKeyInd & K_LILOAD, Nothing, m_sKitFile)
End If
Return True
End Function
Private Function EraseKit( nKitIndex As Integer) As Boolean
' Leggo il nome del kit
Dim sKitName As String = ReadKitName( nKitIndex)
If String.IsNullOrWhiteSpace( sKitName) Then Return False
' Lo elimino dalla lista dei kit scalando tutti di una posizione e eliminando l'ultimo
Dim nNextKitIndex As Integer = nKitIndex + 1
Dim sNextKitName As String = ReadKitName( nNextKitIndex)
while Not String.IsNullOrWhiteSpace( sNextKitName)
WriteKitName( nNextKitIndex - 1, sNextKitName)
nNextKitIndex += 1
sNextKitName = ReadKitName( nNextKitIndex)
End While
WriteKitName( nNextKitIndex - 1, Nothing)
' Sezione
Dim sSect As String = S_KIT & "." & sKitName
' Cancello tutte le lavorazioni del kit
WritePrivateProfileString( sSect, Nothing, Nothing, m_sKitFile)
Return True
End Function
Private Function EraseKitMach( nKitIndex As Integer, nKitMachIndex As Integer) As Boolean
' Leggo il nome del kit
Dim sKitName As String = ReadKitName( nKitIndex)
If String.IsNullOrWhiteSpace( sKitName) Then Return False
' Lo elimino dali KitMach scalando tutti di una posizione e eliminando l'ultimo
Dim kmCurr As KitMach = Nothing
Dim nNextKitMachIndex As Integer = nKitMachIndex + 1
While ReadKitMach( sKitName, nNextKitMachIndex, kmCurr)
kmCurr.nId = nNextKitMachIndex - 1
WriteKitMach( nKitIndex, nNextKitMachIndex - 1, kmCurr)
nNextKitMachIndex += 1
End While
WriteKitMach( nKitIndex, nNextKitMachIndex - 1, Nothing)
Return True
End Function
Private Sub ActiveChBx_GotFocus(sender As Object, e As RoutedEventArgs)
Dim myCheckBox As CheckBox = sender
Dim Parent As DependencyObject = VisualTreeHelper.GetParent(myCheckBox)
While (Not (TypeOf (Parent) Is ListBoxItem))
Parent = VisualTreeHelper.GetParent(Parent)
End While
Dim myListBoxItem As ListBoxItem = Parent
myListBoxItem.IsSelected = True
End Sub
Private Sub ToolCmBx_GotFocus(sender As Object, e As RoutedEventArgs)
Dim myComboBox As ComboBox = sender
Dim Parent As DependencyObject = VisualTreeHelper.GetParent(myComboBox)
While (Not (TypeOf (Parent) Is ListBoxItem))
Parent = VisualTreeHelper.GetParent(Parent)
End While
Dim myListBoxItem As ListBoxItem = Parent
myListBoxItem.IsSelected = True
End Sub
End Class
Class Kit
' Riferimento alla MainWindow
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
Private m_nId As Integer
Private m_sName As String
Private m_KitMachList As List(Of KitMach)
Public Property nId As Integer
Get
Return m_nId
End Get
Set( value As Integer)
m_nId = value
End Set
End Property
Public ReadOnly Property sName As String
Get
Return m_sName
End Get
End Property
Public Property KitMachList As List(Of KitMach)
Get
Return m_KitMachList
End Get
Set(value As List(Of KitMach))
m_KitMachList = value
End Set
End Property
Sub New( nId As Integer, sName As String)
m_nId = nId
m_sName = sName
m_KitMachList = New List(Of KitMach)
End Sub
Sub New( nId As Integer, sName As String, kitSou As Kit)
m_nId = nId
m_sName = sName
m_KitMachList = New List(Of KitMach)
If IsNothing( kitSou) Then Return
For Each kmItem As KitMach In kitSou.m_KitMachList
AddKitMach( kmItem)
Next
End Sub
Sub AddKitMach( kitMachItem As KitMach)
m_KitMachList.Add(kitMachItem)
End Sub
End Class
Class KitMach
' Riferimento alla MainWindow
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
Private m_nId As Integer
Private m_sToolUUID As String
Private m_sToolName As String
Private m_SelTool As Integer
Friend Shared m_ToolList As List(Of String)
Private m_bActive As Boolean
Private m_nContour As Integer
Private m_nZigZagX As Integer
Private m_dStepX As Double
Private m_nZigZagY As Integer
Private m_dStepY As Double
Private m_dLiLen As Double
Private m_dLiHeight As Double
Private m_dLiLoad As Double
Public m_IsModifiedId As Boolean = False
Public Property nId As Integer
Get
Return m_nId
End Get
Set(value As Integer)
If value <> m_nId Then
m_nId = value
m_IsModifiedId = True
End If
End Set
End Property
Public m_IsModifiedToolUUID As Boolean = False
Public Property sToolUUID As String
Get
Return m_sToolUUID
End Get
Set(value As String)
If value <> m_sToolUUID Then
m_sToolUUID = value
m_IsModifiedToolUUID = True
' In base al ToolUUID appena modificato recupero il nome dell'utensile e aggiorno ToolName
Dim sToolNameDummy As String = m_sToolName
If (Not EgtTdbGetToolFromUUID(m_sToolUUID, m_sToolName)) Or
(Not m_MainWindow.m_MachinePageUC.m_PolishingsPageUC.ToolList.Contains(sToolNameDummy)) Or
(Not m_sToolName.Equals(sToolNameDummy)) Then
' Se non riesco a recuperare il nome o il nome recuperato non è presente nella lista dei Tool caricati
' cerco tra i ToolUuid caricati quello che restituisca un nome uguale al nome dell'utensile corrente.
' Se lo trovo assegno il ToolUuid che corrisponde al nome dell'utensile corrente all'utensile corrente.
If m_MainWindow.m_MachinePageUC.m_PolishingsPageUC.ToolList.Contains(sToolNameDummy) And
(Not m_sToolName.Equals(sToolNameDummy)) Then
m_sToolName = sToolNameDummy
End If
For Each sToolUuidItem In m_MainWindow.m_MachinePageUC.m_PolishingsPageUC.ToolUuidList
EgtTdbGetToolFromUUID(sToolUuidItem, sToolNameDummy)
If sToolNameDummy.Equals(m_sToolName) Then
m_sToolUUID = sToolUuidItem
Exit For
End If
Next
End If
End If
End Set
End Property
Public m_IsModifiedToolName As Boolean = False
Public Property sToolName As String
Get
Return m_sToolName
End Get
Set(value As String)
If value <> m_sToolName Then
m_sToolName = value
m_IsModifiedToolName = True
End If
End Set
End Property
Public m_IsModifiedSelTool As Boolean = False
Public Property SelTool As Integer
Get
Return m_SelTool
End Get
Set(value As Integer)
If value <> m_SelTool Then
m_SelTool = value
m_IsModifiedSelTool = True
End If
End Set
End Property
Public Property ToolList As List(Of String)
Get
Return m_ToolList
End Get
Set(value As List(Of String))
m_ToolList = value
End Set
End Property
Public m_IsModifiedActive As Boolean = False
Public Property bActive As Boolean
Get
Return m_bActive
End Get
Set(value As Boolean)
If value <> m_bActive Then
m_bActive = value
m_IsModifiedActive = True
End If
End Set
End Property
Public m_IsModifiedContour As Boolean = False
Public Property nContour As Integer
Get
Return m_nContour
End Get
Set(value As Integer)
If value <> m_nContour Then
m_nContour = value
m_IsModifiedContour = True
End If
End Set
End Property
Public m_IsModifiedZigZagX As Boolean = False
Public Property nZigZagX As Integer
Get
Return m_nZigZagX
End Get
Set(value As Integer)
If value <> m_nZigZagX Then
m_nZigZagX = value
m_IsModifiedZigZagX = True
End If
End Set
End Property
Public m_IsModifiedStepX As Boolean = False
Public Property dStepX As Double
Get
Return m_dStepX
End Get
Set(value As Double)
If value <> m_dStepX Then
m_dStepX = value
m_IsModifiedStepX = True
End If
End Set
End Property
Public m_IsModifiedZigZagY As Boolean = False
Public Property nZigZagY As Integer
Get
Return m_nZigZagY
End Get
Set(value As Integer)
If value <> m_nZigZagY Then
m_nZigZagY = value
m_IsModifiedZigZagY = True
End If
End Set
End Property
Public m_IsModifiedStepY As Boolean = False
Public Property dStepY As Double
Get
Return m_dStepY
End Get
Set(value As Double)
If value <> m_dStepY Then
m_dStepY = value
m_IsModifiedStepY = True
End If
End Set
End Property
Public m_IsModifiedLiLen As Boolean = False
Public Property dLiLen As Double
Get
Return m_dLiLen
End Get
Set(value As Double)
If value <> m_dLiLen Then
m_dLiLen = value
m_IsModifiedLiLen = True
End If
End Set
End Property
Public m_IsModifiedLiHeight As Boolean = False
Public Property dLiHeight As Double
Get
Return m_dLiHeight
End Get
Set(value As Double)
If value <> m_dLiHeight Then
m_dLiHeight = value
m_IsModifiedLiHeight = True
End If
End Set
End Property
Public m_IsModifiedLiLoad As Boolean = False
Public Property dLiLoad As Double
Get
Return m_dLiLoad
End Get
Set(value As Double)
If value <> m_dLiLoad Then
m_dLiLoad = value
m_IsModifiedLiLoad = True
End If
End Set
End Property
Sub New()
m_nId = 0
m_SelTool = 0
m_sToolUUID = "---"
m_sToolName = "---"
m_bActive = False
m_nContour = 0
m_nZigZagX = 0
m_dStepX = 0
m_nZigZagY = 0
m_dStepY = 0
m_dLiLen = 0
m_dLiHeight = 0
m_dLiLoad = 0
End Sub
Sub New( nId As Integer)
m_nId = nId
m_SelTool = 0
m_sToolUUID = "---"
m_sToolName = "---"
m_bActive = False
m_nContour = 0
m_nZigZagX = 0
m_dStepX = 0
m_nZigZagY = 0
m_dStepY = 0
m_dLiLen = 0
m_dLiHeight = 0
m_dLiLoad = 0
End Sub
Sub New( kmSou As KitMach)
m_nId = kmSou.nId
m_SelTool = kmSou.selTool
m_sToolUUID = kmSou.sToolUUID
m_sToolName = kmSou.sToolName
m_bActive = kmSou.bActive
m_nContour = kmSou.nContour
m_nZigZagX = kmSou.nZigZagX
m_dStepX = kmSou.dStepX
m_nZigZagY = kmSou.nZigZagY
m_dStepY = kmSou.dStepY
m_dLiLen = kmSou.dLiLen
m_dLiHeight = kmSou.dLiHeight
m_dLiLoad = kmSou.m_dLiLoad
End Sub
End Class