diff --git a/Icarus/ImportExportMachiningPanel/ImportExportMachiningPanelV.xaml b/Icarus/ImportExportMachiningPanel/ImportExportMachiningPanelV.xaml
index b1b96f2..5e80b98 100644
--- a/Icarus/ImportExportMachiningPanel/ImportExportMachiningPanelV.xaml
+++ b/Icarus/ImportExportMachiningPanel/ImportExportMachiningPanelV.xaml
@@ -21,6 +21,7 @@
+
+
diff --git a/Icarus/ImportExportMachiningPanel/ImportExportMachiningPanelVM.vb b/Icarus/ImportExportMachiningPanel/ImportExportMachiningPanelVM.vb
index 3a96db1..d75da41 100644
--- a/Icarus/ImportExportMachiningPanel/ImportExportMachiningPanelVM.vb
+++ b/Icarus/ImportExportMachiningPanel/ImportExportMachiningPanelVM.vb
@@ -65,6 +65,9 @@ Public Class ImportExportMachiningPanelVM
Friend Event m_CloseWindow(bDialogResult As Boolean)
+ ' Definizione comandi
+ Private m_cmdOk As ICommand
+
#Region "MESSAGES"
Public ReadOnly Property OkMsg As String
@@ -79,124 +82,6 @@ Public Class ImportExportMachiningPanelVM
#End Region ' Messages
-#Region "COMMANDS"
-
- ' Definizione comandi
- Private m_cmdOk As ICommand
-
-#Region "OkCommand"
-
- '''
- ''' Returns a command that remove the current selected machining.
- '''
- Public ReadOnly Property OkCommand() As ICommand
- Get
- If m_cmdOk Is Nothing Then
- m_cmdOk = New Command(AddressOf ConfirmImpExpMachinings)
- End If
- Return m_cmdOk
- End Get
- End Property
-
- '''
- ''' Manage the MachiningDb closing. This method is invoked by the CloseMachiningDbCommand.
- '''
- Public Sub ConfirmImpExpMachinings(param As Object)
- Select Case WindowMode
- Case WindowModeEnum.IMPORT
- Dim OrigFilePath As String = CurrentMachine.sMachiningFilePath
- CurrentMachine.SetMachiningFilePath(ImportFilePath)
- For Each Machining In m_MachiningList
- Dim nIndex As Integer = Map.refMachiningDbVM.MachiningList.Max(Function(x) x.nIndex) + 1
- If Machining.Active Then
- ' leggo lavorazione da file di import
- Dim NewMachining As Machining = New Machining(Machining.nIndex)
- ' cambio guid, indice e verifico nome
- NewMachining.sGUID = Guid.NewGuid.ToString()
- NewMachining.SetIndex(nIndex)
- If Machining.AlreadyExist Then
- If Machining.ChangeName Then
- NewMachining.sName &= "_imp"
- End If
- End If
- Map.refMachiningDbVM.MachiningList.Add(NewMachining)
-
- End If
- Next
- ' ripristino path corretta del Db
- CurrentMachine.SetMachiningFilePath(OrigFilePath)
-
-
-
-
- 'Dim FinalNameList As New List(Of String)
- 'Dim ImportMachiningNameList As New List(Of String)(ImportFileMachiningNameList)
- 'For Each Machining In MachiningList
- ' If Machining.Active Then
- ' FinalNameList.Add(Machining.sName)
- ' Else
- ' ImportMachiningNameList.Remove(Machining.sName)
- ' End If
- 'Next
- 'Dim vsFinalName = FinalNameList.ToArray()
- 'Dim vsImportMachiningName = ImportMachiningNameList.ToArray()
- '' Eseguo importazione
- 'EgtMdbImport(ImportFilePath, vsImportMachiningName, vsFinalName, m_vsImported)
- '' Report
- 'Dim ImportedMachiningList As New List(Of String)(vsImported)
- 'MessageBox.Show(EgtMsg(31455) & " " & vbCrLf &
- ' String.Join(vbCrLf, ImportedMachiningList.ToArray()), "", MessageBoxButton.OK)
-
- Case WindowModeEnum.EXPORT
- ' recupero le lavorazioni checkate
- Dim FinalNameList As New List(Of String)
- For Each Machining In MachiningList
- If Machining.Active Then
- FinalNameList.Add(Machining.sName)
- End If
- Next
- If FinalNameList.Count() = 0 Then Return
- Dim FinalNameArray = FinalNameList.ToArray()
- ' chiedo il nome con cui salvare il file .data
- Dim SaveFileDlg As New System.Windows.Forms.SaveFileDialog() With {
- .Title = EgtMsg(31451) & " " & EgtMsg(31452),
- .Filter = "File data (*.data)|*.data|Tutti i file (*.*)|*.*",
- .FileName = String.Empty
- }
- If SaveFileDlg.ShowDialog() <> System.Windows.Forms.DialogResult.OK Then Return
- Dim sFilePath As String = String.Empty
- sFilePath = SaveFileDlg.FileName
- ' se esiste già lo elimino
- If File.Exists(sFilePath) Then
- Try
- File.Delete(sFilePath)
- Catch ex As Exception
- End Try
- End If
- ' creo nuovo file
- If Not File.Exists(sFilePath) Then
- Try
- File.WriteAllLines(sFilePath, {"; Commento per evitare BOM con UTF-8"})
- Catch ex As Exception
- End Try
- End If
- Dim ActiveMachiningList As List(Of Machining) = (From Machining In Map.refMachiningDbVM.MachiningList
- Select Machining
- Where m_MachiningList.Any(Function(x) x.sGUID.ToString() = Machining.sGUID AndAlso x.Active)).ToList()
- ' salvo tutte le lavorazioni sul Db
- For Index = 0 To ActiveMachiningList.Count - 1
- ActiveMachiningList(Index).WriteParamsOnDb(Index + 1, sFilePath)
- Next
- End Select
-
- ' Chiusura finestra
- RaiseEvent m_CloseWindow(True)
- End Sub
-
-#End Region ' OkCommand
-
-#End Region ' Commands
-
#Region "CONSTRUCTOR"
' export
@@ -254,11 +139,115 @@ Public Class ImportExportMachiningPanelVM
#End Region ' METHODS
+#Region "COMMANDS"
+
+#Region "OkCommand"
+
+ '''
+ ''' Returns a command that remove the current selected machining.
+ '''
+ Public ReadOnly Property OkCommand() As ICommand
+ Get
+ If m_cmdOk Is Nothing Then
+ m_cmdOk = New Command(AddressOf ConfirmImpExpMachinings)
+ End If
+ Return m_cmdOk
+ End Get
+ End Property
+
+ '''
+ ''' Manage the MachiningDb closing. This method is invoked by the CloseMachiningDbCommand.
+ '''
+ Public Sub ConfirmImpExpMachinings(param As Object)
+ Select Case WindowMode
+ Case WindowModeEnum.IMPORT
+ Dim OrigFilePath As String = CurrentMachine.sMachiningFilePath
+ Dim NewMachining As Machining = Nothing
+ For Each Machining In m_MachiningList
+ Dim nIndex As Integer = Map.refMachiningDbVM.MachiningList.Max(Function(x) x.nIndex) + 1
+ If Machining.Active Then
+ CurrentMachine.SetMachiningFilePath(ImportFilePath)
+ ' leggo lavorazione da file di import
+ NewMachining = New Machining(Machining.nIndex)
+ ' cambio guid, indice e verifico nome
+ NewMachining.sGUID = Guid.NewGuid.ToString()
+ NewMachining.SetIndex(nIndex)
+ If Machining.AlreadyExist Then
+ If Machining.ChangeName Then
+ NewMachining.sName = Machining.sName
+ End If
+ End If
+ Map.refMachiningDbVM.MachiningList.Add(NewMachining)
+ ' ripristino path corretta del Db
+ CurrentMachine.SetMachiningFilePath(OrigFilePath)
+ ' salvo la lavorazione
+ NewMachining.Save()
+ End If
+ Next
+ ' ripristino path corretta del Db
+ CurrentMachine.SetMachiningFilePath(OrigFilePath)
+ ' seleziono ultima importata
+ If Not IsNothing(NewMachining) Then
+ Map.refMachiningDbVM.SelMachining = NewMachining
+ Map.refMachiningDbVM.NotifyPropertyChanged(NameOf(Map.refMachiningDbVM.SelMachining))
+ End If
+ Case WindowModeEnum.EXPORT
+ ' recupero le lavorazioni checkate
+ Dim FinalNameList As New List(Of String)
+ For Each Machining In MachiningList
+ If Machining.Active Then
+ FinalNameList.Add(Machining.sName)
+ End If
+ Next
+ If FinalNameList.Count() = 0 Then Return
+ Dim FinalNameArray = FinalNameList.ToArray()
+ ' chiedo il nome con cui salvare il file .data
+ Dim SaveFileDlg As New System.Windows.Forms.SaveFileDialog() With {
+ .Title = EgtMsg(31451) & " " & EgtMsg(31452),
+ .Filter = "File data (*.data)|*.data|Tutti i file (*.*)|*.*",
+ .FileName = String.Empty
+ }
+ If SaveFileDlg.ShowDialog() <> System.Windows.Forms.DialogResult.OK Then Return
+ Dim sFilePath As String = String.Empty
+ sFilePath = SaveFileDlg.FileName
+ ' se esiste già lo elimino
+ If File.Exists(sFilePath) Then
+ Try
+ File.Delete(sFilePath)
+ Catch ex As Exception
+ End Try
+ End If
+ ' creo nuovo file
+ If Not File.Exists(sFilePath) Then
+ Try
+ File.WriteAllLines(sFilePath, {"; Commento per evitare BOM con UTF-8"})
+ Catch ex As Exception
+ End Try
+ End If
+ Dim ActiveMachiningList As List(Of Machining) = (From Machining In Map.refMachiningDbVM.MachiningList
+ Select Machining
+ Where m_MachiningList.Any(Function(x) x.sGUID.ToString() = Machining.sGUID AndAlso x.Active)).ToList()
+ ' salvo tutte le lavorazioni sul Db
+ For Index = 0 To ActiveMachiningList.Count - 1
+ ActiveMachiningList(Index).WriteParamsOnDb(Index + 1, sFilePath)
+ Next
+ End Select
+
+ ' Chiusura finestra
+ RaiseEvent m_CloseWindow(True)
+ End Sub
+
+#End Region ' OkCommand
+
+#End Region ' Commands
+
End Class
Public Class ImpExpMachiningItem
Inherits VMBase
+ Public Const IMPEXTNAME As String = "_imp"
+
' Actions
Friend Shared m_delEnableOkBtn As Action
@@ -278,6 +267,7 @@ Public Class ImpExpMachiningItem
End Get
End Property
+ Private m_sOrigName As String
Private m_sName As String
Public ReadOnly Property sName As String
Get
@@ -299,20 +289,33 @@ Public Class ImpExpMachiningItem
m_ChangeName = False
m_Active = True
Case MessageBoxResult.No
- System.Windows.MessageBox.Show(EgtMsg(31454), "", MessageBoxButton.OK)
+ Dim bImpNameAlreadyInList = False
+ Dim nImpNameIndex As Integer = 0
+ If Map.refMachiningDbVM.MachiningList.Any(Function(x) x.sName = m_sOrigName & IMPEXTNAME) Then
+ nImpNameIndex += 1
+ While Map.refMachiningDbVM.MachiningList.Any(Function(x) x.sName = m_sOrigName & IMPEXTNAME & "_" & nImpNameIndex)
+ nImpNameIndex += 1
+ End While
+ End If
+ m_sName = m_sOrigName & IMPEXTNAME & If(nImpNameIndex > 0, "_" & nImpNameIndex, "")
+ System.Windows.MessageBox.Show("Machining will be imported with the name: " & m_sName, "", MessageBoxButton.OK)
+ NotifyPropertyChanged(NameOf(sName))
m_ChangeName = True
m_Active = True
Case Else
m_Active = False
End Select
- NotifyPropertyChanged("Active")
+ NotifyPropertyChanged(NameOf(Active))
Else
m_Active = True
End If
Else
m_ChangeName = False
m_Active = False
+ m_sName = m_sOrigName
+ NotifyPropertyChanged(NameOf(sName))
End If
+ NotifyPropertyChanged(NameOf(Overwrite_Visibility))
If Not IsNothing(m_delEnableOkBtn) Then m_delEnableOkBtn()
End Set
End Property
@@ -325,6 +328,13 @@ Public Class ImpExpMachiningItem
End Get
End Property
+ Private m_Overwrite_Visibility As Visibility = Visibility.Collapsed
+ Public ReadOnly Property Overwrite_Visibility As Visibility
+ Get
+ Return If(m_Active AndAlso m_AlreadyExist AndAlso Not m_ChangeName, Visibility.Visible, Visibility.Collapsed)
+ End Get
+ End Property
+
' Parametro che indica se cambiare il nome di un item che esiste gia' o sovrascriverlo
Private m_ChangeName As Boolean
Friend Property ChangeName As Boolean
@@ -333,13 +343,13 @@ Public Class ImpExpMachiningItem
End Get
Set(value As Boolean)
m_ChangeName = value
- NotifyPropertyChanged("Name")
End Set
End Property
Sub New(nIndex As Integer, GUID As Guid, sName As String, AlreadyExist As Boolean)
m_nIndex = nIndex
m_sGUID = GUID
+ m_sOrigName = sName
m_sName = sName
m_AlreadyExist = AlreadyExist
m_Active = False
diff --git a/Icarus/MachiningDb/Machining.vb b/Icarus/MachiningDb/Machining.vb
index 380c255..cf089cf 100644
--- a/Icarus/MachiningDb/Machining.vb
+++ b/Icarus/MachiningDb/Machining.vb
@@ -622,6 +622,7 @@ Public Class NumericMachiningParam
StringToDouble( value, m_dValue)
End If
NotifyPropertyChanged(NameOf(sValue))
+ Map.refMachiningDbVM.NotifyPropertyChanged(NameOf(Map.refMachiningDbVM.ImpExp_IsEnabled))
End Set
End Property
@@ -882,6 +883,7 @@ Public Class StringMachiningParam
Set(value As String)
m_sValue = value
NotifyPropertyChanged(NameOf(sValue))
+ Map.refMachiningDbVM.NotifyPropertyChanged(NameOf(Map.refMachiningDbVM.ImpExp_IsEnabled))
End Set
End Property
@@ -940,6 +942,7 @@ Public Class ComboMachiningParam
Set(value As IdNameStruct)
m_SelValue = value
NotifyPropertyChanged(NameOf(SelValue))
+ Map.refMachiningDbVM.NotifyPropertyChanged(NameOf(Map.refMachiningDbVM.ImpExp_IsEnabled))
End Set
End Property
@@ -1075,6 +1078,7 @@ Public Class CheckMachiningParam
Set(value As Boolean)
m_bValue = value
NotifyPropertyChanged(NameOf(bValue))
+ Map.refMachiningDbVM.NotifyPropertyChanged(NameOf(Map.refMachiningDbVM.ImpExp_IsEnabled))
End Set
End Property
@@ -1167,6 +1171,7 @@ Public Class MaterialMachiningParam
Set(value As Boolean)
m_bValue = value
NotifyPropertyChanged(NameOf(bValue))
+ Map.refMachiningDbVM.NotifyPropertyChanged(NameOf(Map.refMachiningDbVM.ImpExp_IsEnabled))
End Set
End Property
diff --git a/Icarus/MachiningDb/MachiningDbV.xaml b/Icarus/MachiningDb/MachiningDbV.xaml
index d3ac429..03546a3 100644
--- a/Icarus/MachiningDb/MachiningDbV.xaml
+++ b/Icarus/MachiningDb/MachiningDbV.xaml
@@ -39,14 +39,14 @@
diff --git a/Icarus/MachiningDb/MachiningDbVM.vb b/Icarus/MachiningDb/MachiningDbVM.vb
index 9005e98..897dfeb 100644
--- a/Icarus/MachiningDb/MachiningDbVM.vb
+++ b/Icarus/MachiningDb/MachiningDbVM.vb
@@ -26,7 +26,7 @@ Public Class MachiningDbVM
' verifico se modificato
If m_SelMachining.bIsModified Then
' chiedo se salvare
- Select Case MessageBox.Show("Salvare le modifiche apportate alla lavorazione selezionata?", "Info", MessageBoxButton.YesNoCancel, MessageBoxImage.Question)
+ Select Case MessageBox.Show("Do you want to save the modification done on the selected machining?", "Info", MessageBoxButton.YesNoCancel, MessageBoxImage.Question)
Case MessageBoxResult.Yes
m_SelMachining.Save()
Case MessageBoxResult.No
@@ -50,6 +50,7 @@ Public Class MachiningDbVM
End If
Next
End If
+ NotifyPropertyChanged(NameOf(ImpExp_IsEnabled))
End Set
End Property
@@ -105,6 +106,12 @@ Public Class MachiningDbVM
NotifyPropertyChanged(NameOf(UserShouldEditValueNow))
End Sub
+ Public ReadOnly Property ImpExp_IsEnabled As Boolean
+ Get
+ Return m_IsEnabled AndAlso (IsNothing(m_SelMachining) OrElse Not m_SelMachining.bIsModified)
+ End Get
+ End Property
+
' Definizione comandi
Private m_cmdOk As ICommand
Private m_cmdNew As ICommand
@@ -140,6 +147,7 @@ Public Class MachiningDbVM
GetMainPrivateProfileString(S_PRINTING3D, K_CURRMACHINING, "", sCurrMachining)
m_SelMachining = MachiningList.FirstOrDefault(Function(x) x.sGUID = sCurrMachining)
NotifyPropertyChanged(NameOf(SelMachining))
+ NotifyPropertyChanged(NameOf(ImpExp_IsEnabled))
End Sub
Friend Sub SetNameVisibility(bValue As Boolean)
@@ -215,7 +223,7 @@ Public Class MachiningDbVM
' aggiorno combo top
Dim CurrSelTopMachining As MachiningIndex = Map.refTopPanelVM.SelMachining
Map.refTopPanelVM.InitMachiningsList()
- Map.refTopPanelVM.SetSelMachining( CurrSelTopMachining)
+ Map.refTopPanelVM.SetSelMachining(CurrSelTopMachining)
End If
' ripristino modalita' standard
Map.refTopPanelVM.SelPage = Pages.MODIFY
@@ -241,6 +249,7 @@ Public Class MachiningDbVM
m_SelMachining = NewMachining
NotifyPropertyChanged(NameOf(SelMachining))
SetNameVisibility(True)
+ SetIsModified(True)
End Sub
#End Region ' New
@@ -257,8 +266,9 @@ Public Class MachiningDbVM
End Property
Public Sub Save()
- If IsNothing( m_SelMachining) Then Return
+ If IsNothing(m_SelMachining) Then Return
m_SelMachining.Save()
+ NotifyPropertyChanged(NameOf(ImpExp_IsEnabled))
End Sub
#End Region ' Save
@@ -277,7 +287,7 @@ Public Class MachiningDbVM
Public Sub Delete()
If IsNothing(m_SelMachining) Then Return
' chiedo conferma
- Select Case MessageBox.Show("Sei sicuro di voler cancellare la lavorazione selezionata?", "Warning", MessageBoxButton.YesNo, MessageBoxImage.Warning)
+ Select Case MessageBox.Show("Are you sure you want to delete the selected machining?", "Warning", MessageBoxButton.YesNo, MessageBoxImage.Warning)
Case MessageBoxResult.Yes
m_MachiningList.Remove(m_SelMachining)
SetIsModified(True)
diff --git a/Icarus/ModifyPartPanel/ModifyPartUtility.vb b/Icarus/ModifyPartPanel/ModifyPartUtility.vb
index 3d522c6..8b7fbd9 100644
--- a/Icarus/ModifyPartPanel/ModifyPartUtility.vb
+++ b/Icarus/ModifyPartPanel/ModifyPartUtility.vb
@@ -346,7 +346,7 @@ Public Class MenuItemVm
m_Part = Part
End Sub
-#Region "Cancel"
+#Region "Command"
Public ReadOnly Property MenuItem_Command As ICommand
Get
@@ -430,6 +430,6 @@ Public Class MenuItemVm
End If
End Sub
-#End Region ' Cancel
+#End Region ' Command
End Class
\ No newline at end of file