diff --git a/DoorManager/DoorManagerView.xaml b/DoorManager/DoorManagerView.xaml
index 98fa013..5cf39bc 100644
--- a/DoorManager/DoorManagerView.xaml
+++ b/DoorManager/DoorManagerView.xaml
@@ -32,15 +32,16 @@
+
+ RelativeSource AncestorType={x:Type ListBoxItem}}}">
diff --git a/DoorManager/DoorManagerView.xaml.vb b/DoorManager/DoorManagerView.xaml.vb
index a7e3b57..8523750 100644
--- a/DoorManager/DoorManagerView.xaml.vb
+++ b/DoorManager/DoorManagerView.xaml.vb
@@ -1,3 +1,18 @@
Public Class DoorManagerView
+ Private m_rfDoorManagerViewModel As DoorManagerViewModel
+
+ Sub New(rfDoorManagerViewModel As DoorManagerViewModel)
+ ' This call is required by the designer.
+ InitializeComponent()
+ ' Add any initialization after the InitializeComponent() call.
+ Me.DataContext = rfDoorManagerViewModel
+ m_rfDoorManagerViewModel = rfDoorManagerViewModel
+ End Sub
+
+ Private Sub Door_MouseLeftButtonDown(sender As Object, e As MouseButtonEventArgs)
+ Dim Item As ListBoxItem = DirectCast(sender, ListBoxItem)
+ e.Handled = Not m_rfDoorManagerViewModel.ChooseSelectedDoor(CStr(Item.DataContext))
+ End Sub
+
End Class
diff --git a/DoorManager/DoorManagerViewModel.vb b/DoorManager/DoorManagerViewModel.vb
index fb9c9b3..bafff11 100644
--- a/DoorManager/DoorManagerViewModel.vb
+++ b/DoorManager/DoorManagerViewModel.vb
@@ -11,7 +11,7 @@ Public Class DoorManagerViewModel
Private NewDoor As Boolean = False
Friend DeleteNewDoor As Integer = 1
Private SelDoor As New Door
-
+ Friend MsgResult As MessageBoxResult
' creiamo un nuovo progetto: un nome e una lista di porte
Private m_CurrProject As New Project
@@ -30,101 +30,113 @@ Public Class DoorManagerViewModel
Return m_SelectedDoor
End Get
Set(value As String)
- If IsNothing(value) Then Return
- ' riferimento alla porta (per stampare il DDF)
- Dim DoorParametersViewModel As DoorParametersViewModel = DirectCast(m_rfMainWindowViewModel.DoorParameters.DataContext, DoorParametersViewModel)
- ' se eiste il file selezionato
- If File.Exists(m_SelectedDoor) Then
- ' prima di cambiare porta selezionata chiedo il salvataggio il quella precedente
- ' se esiste una porta corrente associata al nome allora scrivo il file ddf per il disegno
- If Not IsNothing(DoorParametersViewModel.CurrDoor) Then
- ' è necessario che il file passato alla grafica non presenti espressioni numeriche
- DdfFile.WriteDDF(DoorParametersViewModel.CurrDoor, IniFile.m_sTempDir & "\CurrDoor.ddf", True)
-
- Select Case DeleteNewDoor
- ' se è una porta appena creata
- Case 0
- ' chiedo se deve essere eliminata la porta che era stata creata
- RemoveDoor()
- DeleteNewDoor = 1
- ' se è una porta "vecchia"
- Case 1
- ' confronto il file della porta originale e quello aggiornato: se i due file sono uguali eccetto la data
- ' non faccio nulla
- If DdfFile.SetModify(m_rfMainWindowViewModel) Then
-
- Else
- ' altrimenti chiedo di salvare il file di disegno
- If MessageBox.Show(String.Format(EgtMsg(50109), Path.GetFileNameWithoutExtension(m_SelectedDoor)), EgtMsg(50110), MessageBoxButton.YesNo, MessageBoxImage.Warning) = MessageBoxResult.Yes Then
- DdfFile.WriteDDF(DoorParametersViewModel.CurrDoor, m_SelectedDoor, True)
- DirectCast(m_rfMainWindowViewModel.DoorParameters.DataContext, DoorParametersViewModel).bSetChange = False
- End If
- End If
- End Select
- End If
- End If
- ' tolgo l'* dal titolo a prescindere che il file sia stato o no salvato
- Dim SetTitle = DirectCast(m_rfMainWindowViewModel.DoorParameters.DataContext, DoorParametersViewModel).CurrProject.Name
- m_rfMainWindowViewModel.ProjectNameMsg = SetTitle
- ' se non esisteva nessuna porta allora posso procedere
m_SelectedDoor = value
NotifyPropertyChanged("SelectedDoor")
- SelDoor = Nothing
- SelDoor = New Door
- SelDoor.NewDoor = NewDoor
- If SelDoor.NewDoor Then
- 'OptionModule.GeneralDoor.CompoList.Clear()
- SelDoor.Width = OptionModule.m_Width
- SelDoor.Height = OptionModule.m_Height
- SelDoor.Thickness = OptionModule.m_Thickness
- SelDoor.Weight = OptionModule.m_Weight
- SelDoor.Swing = OptionModule.m_Swing
+ 'Dim Index As Integer = -1
- SelDoor.LockEdgeType = OptionModule.m_LockEdgeType
- SelDoor.HingeEdgeType = OptionModule.m_HingeEdgeType
- SelDoor.TopType = OptionModule.m_TopType
- SelDoor.BottomType = OptionModule.m_BottomType
+ 'If IsNothing(value) Then Return
+ '' riferimento alla porta (per stampare il DDF)
+ 'Dim DoorParametersViewModel As DoorParametersViewModel = DirectCast(m_rfMainWindowViewModel.DoorParameters.DataContext, DoorParametersViewModel)
+ '' se eiste il file selezionato
+ 'If File.Exists(m_SelectedDoor) Then
+ ' ' prima di cambiare porta selezionata chiedo il salvataggio il quella precedente
+ ' ' se esiste una porta corrente associata al nome allora scrivo il file ddf per il disegno
+ ' If Not IsNothing(DoorParametersViewModel.CurrDoor) Then
+ ' ' è necessario che il file passato alla grafica non presenti espressioni numeriche
+ ' DdfFile.WriteDDF(DoorParametersViewModel.CurrDoor, IniFile.m_sTempDir & "\CurrDoor.ddf", True)
- SelDoor.LockEdgeMachining = OptionModule.m_LockEdgeMachining
- SelDoor.HingeEdgeMachining = OptionModule.m_HingeEdgeMachining
- SelDoor.TopMachining = OptionModule.m_TopMachining
- SelDoor.BottomMachining = OptionModule.m_BottomMachining
- SelDoor.LockEdgeOverMaterial = OptionModule.m_LockEdgeOverMaterial
- SelDoor.HingeEdgeOverMaterial = OptionModule.m_HingeEdgeOverMaterial
- SelDoor.TopOverMaterial = OptionModule.m_TopOverMaterial
- SelDoor.BottomOverMaterial = OptionModule.m_BottomOverMaterial
- ' assegno la porta creata alla Programma come porta corrente
- DoorParametersViewModel.CurrDoor = SelDoor
- ' scrivo il ddf della nuova porta come file temp
- If Not IsNothing(DoorParametersViewModel.CurrDoor) Then DdfFile.WriteDDF(DoorParametersViewModel.CurrDoor, IniFile.m_sTempDir & "\CurrDoor.ddf", True)
- ' e stampo il nuovo ddf
- DdfFile.WriteDDF(DoorParametersViewModel.CurrDoor, m_SelectedDoor, True)
- ' quindi da ora la nuova porta ha un suo DDF che possiamo trattare come tutti gli altri
- ' assegno il valore falso cosi da non ripetere questa operazione nel caso in cui si arrivi dalla funzione AddDoor
- SelDoor.NewDoor = False
- NewDoor = False
- End If
- ' per aggiornare la parte grafica
- ' se il nome della porta è uno spazio vuoto allora non genero la porta ( per esempio sto aprendo una cartella vuota)
- If Not String.IsNullOrWhiteSpace(m_SelectedDoor) Then
- ' leggo il file ddf
- Door.ReadDDF(m_SelectedDoor, SelDoor)
- ' assegno come porta del programma quella aperta
- DoorParametersViewModel.CurrDoor = SelDoor
- ' copio il file DDF come file DDF temporaneo
- If Not IsNothing(DoorParametersViewModel.CurrDoor) Then
- DdfFile.WriteDDF(SelDoor, IniFile.m_sTempDir & "\CurrDoor.ddf", True)
- ExecDoors(DirectCast(m_rfMainWindowViewModel.SceneManager.DataContext, SceneManagerViewModel).ProjectScene, IniFile.m_sTempDir & "\CurrDoor.ddf")
- ' dal MainWindowViewModel accediamo alla ScenaManagerViewModel (primo DirectCast)
- ' dalla StatusBar accediamo alla proprietà pubblica UnitMeasure
- DirectCast(DirectCast(m_rfMainWindowViewModel.SceneManager.DataContext, SceneManagerViewModel).StatusBar.DataContext, StatusBarViewModel).UnitMeasure = SelDoor.Measure
- End If
- End If
- If IsNothing(SelDoor) Then
- MessageBox.Show(EgtMsg(50145), EgtMsg(50118), MessageBoxButton.OK, MessageBoxImage.Exclamation)
- DoorParametersViewModel.CurrDoor = Nothing
- DeleteDoorFromList()
- End If
+ ' Select Case DeleteNewDoor
+ ' ' se è una porta appena creata
+ ' Case 0
+ ' ' chiedo se deve essere eliminata la porta che era stata creata
+ ' RemoveDoor()
+ ' DeleteNewDoor = 1
+ ' ' se è una porta "vecchia"
+ ' Case 1
+ ' ' confronto il file della porta originale e quello aggiornato: se i due file sono uguali eccetto la data
+ ' ' non faccio nulla
+ ' If DdfFile.SetModify(m_rfMainWindowViewModel) Then
+
+ ' Else
+ ' ' altrimenti chiedo di salvare il file di disegno
+ ' MsgResult = MessageBox.Show(String.Format(EgtMsg(50109), Path.GetFileNameWithoutExtension(m_SelectedDoor)), EgtMsg(50110), MessageBoxButton.YesNoCancel, MessageBoxImage.Warning)
+ ' If MsgResult = MessageBoxResult.Yes Then
+ ' DdfFile.WriteDDF(DoorParametersViewModel.CurrDoor, m_SelectedDoor, True)
+ ' DirectCast(m_rfMainWindowViewModel.DoorParameters.DataContext, DoorParametersViewModel).bSetChange = False
+ ' ElseIf MsgResult = MessageBoxResult.Cancel Then
+
+ ' NotifyPropertyChanged("SelectedDoor")
+ ' Exit Property
+ ' ElseIf MsgResult = MessageBoxResult.No Then
+ ' RemoveDoor()
+ ' End If
+ ' End If
+
+ ' End Select
+ ' End If
+ 'End If
+ '' tolgo l'* dal titolo a prescindere che il file sia stato o no salvato
+ 'Dim SetTitle = DirectCast(m_rfMainWindowViewModel.DoorParameters.DataContext, DoorParametersViewModel).CurrProject.Name
+ 'm_rfMainWindowViewModel.ProjectNameMsg = SetTitle
+ '' se non esisteva nessuna porta allora posso procedere
+ 'm_SelectedDoor = value
+ 'NotifyPropertyChanged("SelectedDoor")
+ 'SelDoor = Nothing
+ 'SelDoor = New Door
+ 'SelDoor.NewDoor = NewDoor
+ 'If SelDoor.NewDoor Then
+ ' 'OptionModule.GeneralDoor.CompoList.Clear()
+ ' SelDoor.Width = OptionModule.m_Width
+ ' SelDoor.Height = OptionModule.m_Height
+ ' SelDoor.Thickness = OptionModule.m_Thickness
+ ' SelDoor.Weight = OptionModule.m_Weight
+ ' SelDoor.Swing = OptionModule.m_Swing
+
+ ' SelDoor.LockEdgeType = OptionModule.m_LockEdgeType
+ ' SelDoor.HingeEdgeType = OptionModule.m_HingeEdgeType
+ ' SelDoor.TopType = OptionModule.m_TopType
+ ' SelDoor.BottomType = OptionModule.m_BottomType
+
+ ' SelDoor.LockEdgeMachining = OptionModule.m_LockEdgeMachining
+ ' SelDoor.HingeEdgeMachining = OptionModule.m_HingeEdgeMachining
+ ' SelDoor.TopMachining = OptionModule.m_TopMachining
+ ' SelDoor.BottomMachining = OptionModule.m_BottomMachining
+ ' SelDoor.LockEdgeOverMaterial = OptionModule.m_LockEdgeOverMaterial
+ ' SelDoor.HingeEdgeOverMaterial = OptionModule.m_HingeEdgeOverMaterial
+ ' SelDoor.TopOverMaterial = OptionModule.m_TopOverMaterial
+ ' SelDoor.BottomOverMaterial = OptionModule.m_BottomOverMaterial
+ ' ' assegno la porta creata alla Programma come porta corrente
+ ' DoorParametersViewModel.CurrDoor = SelDoor
+ ' ' scrivo il ddf della nuova porta come file temp
+ ' If Not IsNothing(DoorParametersViewModel.CurrDoor) Then DdfFile.WriteDDF(DoorParametersViewModel.CurrDoor, IniFile.m_sTempDir & "\CurrDoor.ddf", True)
+ ' ' e stampo il nuovo ddf
+ ' DdfFile.WriteDDF(DoorParametersViewModel.CurrDoor, m_SelectedDoor, True)
+ ' ' quindi da ora la nuova porta ha un suo DDF che possiamo trattare come tutti gli altri
+ ' ' assegno il valore falso cosi da non ripetere questa operazione nel caso in cui si arrivi dalla funzione AddDoor
+ ' SelDoor.NewDoor = True
+ ' NewDoor = False
+ 'End If
+ '' per aggiornare la parte grafica
+ '' se il nome della porta è uno spazio vuoto allora non genero la porta ( per esempio sto aprendo una cartella vuota)
+ 'If Not String.IsNullOrWhiteSpace(m_SelectedDoor) Then
+ ' ' leggo il file ddf
+ ' Door.ReadDDF(m_SelectedDoor, SelDoor)
+ ' ' assegno come porta del programma quella aperta
+ ' DoorParametersViewModel.CurrDoor = SelDoor
+ ' ' copio il file DDF come file DDF temporaneo
+ ' If Not IsNothing(DoorParametersViewModel.CurrDoor) Then
+ ' DdfFile.WriteDDF(SelDoor, IniFile.m_sTempDir & "\CurrDoor.ddf", True)
+ ' ExecDoors(DirectCast(m_rfMainWindowViewModel.SceneManager.DataContext, SceneManagerViewModel).ProjectScene, IniFile.m_sTempDir & "\CurrDoor.ddf")
+ ' ' dal MainWindowViewModel accediamo alla ScenaManagerViewModel (primo DirectCast)
+ ' ' dalla StatusBar accediamo alla proprietà pubblica UnitMeasure
+ ' DirectCast(DirectCast(m_rfMainWindowViewModel.SceneManager.DataContext, SceneManagerViewModel).StatusBar.DataContext, StatusBarViewModel).UnitMeasure = SelDoor.Measure
+ ' End If
+ 'End If
+ 'If IsNothing(SelDoor) Then
+ ' MessageBox.Show(EgtMsg(50145), EgtMsg(50118), MessageBoxButton.OK, MessageBoxImage.Exclamation)
+ ' DoorParametersViewModel.CurrDoor = Nothing
+ ' DeleteDoorFromList()
+ 'End If
End Set
End Property
@@ -177,6 +189,118 @@ Public Class DoorManagerViewModel
m_rfMainWindowViewModel = MainWindowViewModel
End Sub
+#Region "METHODS"
+
+ Friend Function ChooseSelectedDoor(value As String) As Boolean
+ Dim Index As Integer = -1
+
+ If IsNothing(value) Then Return False
+ ' riferimento alla porta (per stampare il DDF)
+ Dim DoorParametersViewModel As DoorParametersViewModel = DirectCast(m_rfMainWindowViewModel.DoorParameters.DataContext, DoorParametersViewModel)
+ ' se eiste il file selezionato
+ If File.Exists(m_SelectedDoor) Then
+ ' prima di cambiare porta selezionata chiedo il salvataggio il quella precedente
+ ' se esiste una porta corrente associata al nome allora scrivo il file ddf per il disegno
+ If Not IsNothing(DoorParametersViewModel.CurrDoor) Then
+ ' è necessario che il file passato alla grafica non presenti espressioni numeriche
+ DdfFile.WriteDDF(DoorParametersViewModel.CurrDoor, IniFile.m_sTempDir & "\CurrDoor.ddf", True)
+
+ Select Case DeleteNewDoor
+ ' se è una porta appena creata
+ Case 0
+ ' chiedo se deve essere eliminata la porta che era stata creata
+ RemoveDoor()
+ DeleteNewDoor = 1
+ ' se è una porta "vecchia"
+ Case 1
+ ' confronto il file della porta originale e quello aggiornato: se i due file sono uguali eccetto la data
+ ' non faccio nulla
+ If DdfFile.SetModify(m_rfMainWindowViewModel) Then
+
+ Else
+ ' altrimenti chiedo di salvare il file di disegno
+ MsgResult = MessageBox.Show(String.Format(EgtMsg(50109), Path.GetFileNameWithoutExtension(m_SelectedDoor)), EgtMsg(50110), MessageBoxButton.YesNoCancel, MessageBoxImage.Warning)
+ If MsgResult = MessageBoxResult.Yes Then
+ DdfFile.WriteDDF(DoorParametersViewModel.CurrDoor, m_SelectedDoor, True)
+ DirectCast(m_rfMainWindowViewModel.DoorParameters.DataContext, DoorParametersViewModel).bSetChange = False
+ ElseIf MsgResult = MessageBoxResult.Cancel Then
+
+ 'NotifyPropertyChanged("SelectedDoor")
+ Return False
+ ElseIf MsgResult = MessageBoxResult.No Then
+ RemoveDoor()
+ End If
+ End If
+
+ End Select
+ End If
+ End If
+ ' tolgo l'* dal titolo a prescindere che il file sia stato o no salvato
+ Dim SetTitle = DirectCast(m_rfMainWindowViewModel.DoorParameters.DataContext, DoorParametersViewModel).CurrProject.Name
+ m_rfMainWindowViewModel.ProjectNameMsg = SetTitle
+ ' se non esisteva nessuna porta allora posso procedere
+ m_SelectedDoor = value
+ NotifyPropertyChanged("SelectedDoor")
+ SelDoor = Nothing
+ SelDoor = New Door
+ SelDoor.NewDoor = NewDoor
+ If SelDoor.NewDoor Then
+ 'OptionModule.GeneralDoor.CompoList.Clear()
+ SelDoor.Width = OptionModule.m_Width
+ SelDoor.Height = OptionModule.m_Height
+ SelDoor.Thickness = OptionModule.m_Thickness
+ SelDoor.Weight = OptionModule.m_Weight
+ SelDoor.Swing = OptionModule.m_Swing
+
+ SelDoor.LockEdgeType = OptionModule.m_LockEdgeType
+ SelDoor.HingeEdgeType = OptionModule.m_HingeEdgeType
+ SelDoor.TopType = OptionModule.m_TopType
+ SelDoor.BottomType = OptionModule.m_BottomType
+
+ SelDoor.LockEdgeMachining = OptionModule.m_LockEdgeMachining
+ SelDoor.HingeEdgeMachining = OptionModule.m_HingeEdgeMachining
+ SelDoor.TopMachining = OptionModule.m_TopMachining
+ SelDoor.BottomMachining = OptionModule.m_BottomMachining
+ SelDoor.LockEdgeOverMaterial = OptionModule.m_LockEdgeOverMaterial
+ SelDoor.HingeEdgeOverMaterial = OptionModule.m_HingeEdgeOverMaterial
+ SelDoor.TopOverMaterial = OptionModule.m_TopOverMaterial
+ SelDoor.BottomOverMaterial = OptionModule.m_BottomOverMaterial
+ ' assegno la porta creata alla Programma come porta corrente
+ DoorParametersViewModel.CurrDoor = SelDoor
+ ' scrivo il ddf della nuova porta come file temp
+ If Not IsNothing(DoorParametersViewModel.CurrDoor) Then DdfFile.WriteDDF(DoorParametersViewModel.CurrDoor, IniFile.m_sTempDir & "\CurrDoor.ddf", True)
+ ' e stampo il nuovo ddf
+ DdfFile.WriteDDF(DoorParametersViewModel.CurrDoor, m_SelectedDoor, True)
+ ' quindi da ora la nuova porta ha un suo DDF che possiamo trattare come tutti gli altri
+ ' assegno il valore falso cosi da non ripetere questa operazione nel caso in cui si arrivi dalla funzione AddDoor
+ SelDoor.NewDoor = True
+ NewDoor = False
+ End If
+ ' per aggiornare la parte grafica
+ ' se il nome della porta è uno spazio vuoto allora non genero la porta ( per esempio sto aprendo una cartella vuota)
+ If Not String.IsNullOrWhiteSpace(m_SelectedDoor) Then
+ ' leggo il file ddf
+ Door.ReadDDF(m_SelectedDoor, SelDoor)
+ ' assegno come porta del programma quella aperta
+ DoorParametersViewModel.CurrDoor = SelDoor
+ ' copio il file DDF come file DDF temporaneo
+ If Not IsNothing(DoorParametersViewModel.CurrDoor) Then
+ DdfFile.WriteDDF(SelDoor, IniFile.m_sTempDir & "\CurrDoor.ddf", True)
+ ExecDoors(DirectCast(m_rfMainWindowViewModel.SceneManager.DataContext, SceneManagerViewModel).ProjectScene, IniFile.m_sTempDir & "\CurrDoor.ddf")
+ ' dal MainWindowViewModel accediamo alla ScenaManagerViewModel (primo DirectCast)
+ ' dalla StatusBar accediamo alla proprietà pubblica UnitMeasure
+ DirectCast(DirectCast(m_rfMainWindowViewModel.SceneManager.DataContext, SceneManagerViewModel).StatusBar.DataContext, StatusBarViewModel).UnitMeasure = SelDoor.Measure
+ End If
+ End If
+ If IsNothing(SelDoor) Then
+ MessageBox.Show(EgtMsg(50145), EgtMsg(50118), MessageBoxButton.OK, MessageBoxImage.Exclamation)
+ DoorParametersViewModel.CurrDoor = Nothing
+ DeleteDoorFromList()
+ End If
+ Return True
+ End Function
+#End Region ' METHODS
+
#Region "COMMANDS"
#Region "AddDoorCommand"
@@ -231,6 +355,27 @@ Public Class DoorManagerViewModel
Else
SaveFileDialog.FileName &= K_DDFEXTENSION
End If
+ ' controllo che il nome non sia presente nella lista
+ Dim bNameExist As Boolean = False
+ Dim IndexDoorList As Integer
+ For IndexDoorList = 0 To CurrProject.DoorList.Count - 1
+ If CurrProject.DoorList(IndexDoorList) = SaveFileDialog.FileName Then
+ ' se il nome è nella lista allora esco dal ciclo e rendo falsa la variabile bNameExist
+ bNameExist = True
+ Exit For
+ End If
+ bNameExist = False
+ Next
+
+ ' se il nome è nella lista allora sovrascirvo sulla porta esistente
+ If bNameExist Then
+ ' elimino la porta esistente
+ File.Delete(SaveFileDialog.FileName)
+ ' elimino dalla lista
+ m_CurrProject.DoorList.Remove(SaveFileDialog.FileName)
+ CurrProject.NotifyPropertyChanged("DoorList")
+ End If
+
' aggiungo il nome del file alla lista delle porte
CurrProject.DoorList.Add(SaveFileDialog.FileName)
' aggiorno la lista
@@ -246,32 +391,10 @@ Public Class DoorManagerViewModel
Door.ReadDDF(ImportTemplate, TemplateDoor)
WriteDDF(TemplateDoor, SaveFileDialog.FileName, False)
End If
+ ChooseSelectedDoor(SaveFileDialog.FileName)
SelectedDoor = SaveFileDialog.FileName
- DeleteNewDoor = 0
-
- '' '' controllo che il nome del file già non esiste nella lista!
- ' ''If CurrProject.DoorList.Count > 0 Then
- ' '' For IndexDoorList = 0 To CurrProject.DoorList.Count - 1
- ' '' ' se il nome esiste già nella lista
- ' '' If CurrProject.DoorList(IndexDoorList) = SaveFileDialog.FileName Then
- ' '' MessageBox.Show(String.Format(EgtMsg(50114), CurrProject.Name), EgtMsg(50115), MessageBoxButton.OK, MessageBoxImage.Exclamation)
- ' '' 'esco dalla lista e chiedo nuovamente il nome da inserire
- ' '' NameExist = True
- ' '' Exit For
- ' '' Else
- ' '' NameExist = False
- ' '' End If
- ' '' Next
- ' ''Else
- ' '' ' sicuramente non esiste alcuna porta
- ' '' NameExist = False
- ' ''End If
- '' '' se il nome esiste allora esco dalla sub
- ' ''If NameExist Then Exit Sub
- ' altrimenti se non esco
-
-
- 'm_rfMainWindowViewModel.ProjectNameMsg = "*"
+ ' con la dichiarazione seguente salto non considero più di chiedere se eliminare la porta già esistente
+ DeleteNewDoor = 1
End Sub
#End Region ' AddDoorCommand
@@ -294,13 +417,25 @@ Public Class DoorManagerViewModel
''' Execute the New. This method is invoked by the NewCommand.
'''
Public Sub RemoveDoor()
+ Dim DeletingQuestion As Integer = 0
+ Dim DeletingResult As MessageBoxResult = MessageBoxResult.No
If Not IsNothing(m_SelectedDoor) Then
DeleteNewDoor = -1
' salvo il nome del file che sta per essere eliminato
Dim RemoveDoorName As String = Path.GetFileNameWithoutExtension(m_SelectedDoor)
+
+ If DirectCast(m_rfMainWindowViewModel.DoorParameters.DataContext, DoorParametersViewModel).CurrDoor.NewDoor Then
+ ' se sono arrivato qui signifoca che sto chiudendo il programma con una porta nuova aperta ma non salvata
+ ' se ho dichiarato che non voglio salvare significa che devo eliminare
+ DeletingResult = MessageBoxResult.Yes
+ Else
+ ' stamp a video il messaggio per chiedere se eliminare
+ DeletingResult = MessageBox.Show(String.Format(EgtMsg(50116), Path.GetFileNameWithoutExtension(m_SelectedDoor)), EgtMsg(50110), MessageBoxButton.YesNo, MessageBoxImage.Warning, MessageBoxResult.No)
+ End If
+
' chiedo se devo eliminere il file: se si
- If MessageBox.Show(String.Format(EgtMsg(50116), Path.GetFileNameWithoutExtension(m_SelectedDoor)), EgtMsg(50110), MessageBoxButton.YesNo, MessageBoxImage.Warning, MessageBoxResult.No) = MessageBoxResult.Yes Then
+ If DeletingResult = MessageBoxResult.Yes Then
' ricerco l'indice del file all'interno della lista delle porte
Dim SelIndex As Integer = m_CurrProject.DoorList.IndexOf(m_SelectedDoor)
' elimino dall'elenco dei file
diff --git a/Guide/GuideView.xaml.vb b/Guide/GuideView.xaml.vb
index 70a08f2..736718c 100644
--- a/Guide/GuideView.xaml.vb
+++ b/Guide/GuideView.xaml.vb
@@ -1,7 +1,8 @@
Public Class GuideView
- Private m_GuideViewModel As New GuideViewModel
+ Private m_GuideViewModel As GuideViewModel
Public Shared m_Language As String
+
Sub New(Owner As Window, GuideViewModel As GuideViewModel)
MyBase.New(Owner)
' This call is required by the designer.
diff --git a/Guide/GuideViewModel.vb b/Guide/GuideViewModel.vb
index f3a4a56..0b6f603 100644
--- a/Guide/GuideViewModel.vb
+++ b/Guide/GuideViewModel.vb
@@ -9,7 +9,7 @@ Public Class GuideViewModel
Public ReadOnly Property Title As String
Get
- Return "Guide"
+ Return "Help"
End Get
End Property
diff --git a/MainWindow/MainWindowViewModel.vb b/MainWindow/MainWindowViewModel.vb
index 05805fc..b67efae 100644
--- a/MainWindow/MainWindowViewModel.vb
+++ b/MainWindow/MainWindowViewModel.vb
@@ -56,8 +56,7 @@ Public Class MainWindowViewModel
Public ReadOnly Property DoorManager As DoorManagerView
Get
If IsNothing(m_DoorManager) Then
- m_DoorManager = New DoorManagerView
- m_DoorManager.DataContext = New DoorManagerViewModel(Me)
+ m_DoorManager = New DoorManagerView(New DoorManagerViewModel(Me))
End If
Return m_DoorManager
End Get
@@ -223,6 +222,8 @@ Public Class MainWindowViewModel
ElseIf (Result = MessageBoxResult.Yes) Then
' altrimenti sovrascrivo il DDF
DdfFile.WriteDDF(DirectCast(Me.DoorParameters.DataContext, DoorParametersViewModel).CurrDoor, SelDoor, True)
+ Else
+ DirectCast(Me.DoorManager.DataContext, DoorManagerViewModel).RemoveDoor()
End If
End If
' scrivo il nome dell'ultimo file aperto
diff --git a/My Project/AssemblyInfo.vb b/My Project/AssemblyInfo.vb
index b942774..c79eaed 100644
--- a/My Project/AssemblyInfo.vb
+++ b/My Project/AssemblyInfo.vb
@@ -72,5 +72,5 @@ Imports System.Windows
' by using the '*' as shown below:
'
-
-
+
+
diff --git a/ProjectManager/ProjectManagerViewModel.vb b/ProjectManager/ProjectManagerViewModel.vb
index ee6cac9..6a4a462 100644
--- a/ProjectManager/ProjectManagerViewModel.vb
+++ b/ProjectManager/ProjectManagerViewModel.vb
@@ -233,7 +233,8 @@ Public Class ProjectManagerViewModel
CurrProject.NotifyPropertyChanged("DoorList")
' Se c'è almeno una porta la visualizzo
If CurrProject.DoorList.Count > 0 Then
- DoorManagerViewModel.SelectedDoor = CurrProject.DoorList(0)
+ DoorManagerViewModel.ChooseSelectedDoor(CurrProject.DoorList(0))
+ 'DoorManagerViewModel.SelectedDoor = CurrProject.DoorList(0)
Else
DirectCast(m_rfMainWindowViewModel.DoorParameters.DataContext, DoorParametersViewModel).CurrDoor = Nothing
EgtNewFile()
@@ -352,7 +353,6 @@ Public Class ProjectManagerViewModel
Dim OptionsWindow As New OptionsView
OptionsWindow.Height = 550
OptionsWindow.Width = 550
-
OptionsWindow.DataContext = New OptionsViewModel(m_rfMainWindowViewModel)
OptionsWindow.Owner = Application.Current.MainWindow
OptionsWindow.ShowDialog()
@@ -395,7 +395,7 @@ Public Class ProjectManagerViewModel
CurrProject.NotifyPropertyChanged("DoorList")
' Se c'è almeno una porta la visualizzo
If CurrProject.DoorList.Count > 0 Then
- DoorManagerViewModel.SelectedDoor = CurrProject.DoorList(0)
+ DoorManagerViewModel.ChooseSelectedDoor(CurrProject.DoorList(0))
End If
m_rfMainWindowViewModel.ProjectNameMsg = CurrProject.Name
End If