diff --git a/AssemblyManager/AssemblyManagerV.xaml.vb b/AssemblyManager/AssemblyManagerV.xaml.vb index ed7cf55..358ad22 100644 --- a/AssemblyManager/AssemblyManagerV.xaml.vb +++ b/AssemblyManager/AssemblyManagerV.xaml.vb @@ -2,8 +2,12 @@ Private Sub Door_MouseLeftButtonUp(sender As Object, e As MouseButtonEventArgs) Dim Item As ListBoxItem = DirectCast(sender, ListBoxItem) + If IsNothing(Map.refAssemblyManagerVM.CurrProject.SelAssemblyName) then + e.Handled=True + Return + End If ' Gestisco porta corrente modificata - If Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.IsModified + If Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.IsModified then If Not Map.refAssemblyManagerVM.ManageModified() Then Return End If diff --git a/AssemblyManager/AssemblyManagerVM.vb b/AssemblyManager/AssemblyManagerVM.vb index 074da99..122b906 100644 --- a/AssemblyManager/AssemblyManagerVM.vb +++ b/AssemblyManager/AssemblyManagerVM.vb @@ -14,10 +14,11 @@ Public Class AssemblyManagerVM End Get Set(value As Project) m_CurrProject = value + NotifyPropertyChanged("CurrProject") End Set End Property - Private m_VisibilityDoorList As Visibility = Visibility.Visible + Private m_VisibilityDoorList As Visibility = Visibility.Collapsed Public Property VisibilityDoorList As Visibility Get Return m_VisibilityDoorList @@ -107,7 +108,8 @@ Public Class AssemblyManagerVM If OptionModule.m_ConfigurationSoftware = ConfigType.Door Then ' questa condizione non DOVREBBE mai accadere, perchè viene interrotto prima il caricamento If SavedAssName.SelAssembly.ListPartDoorOfDoor.Count < 1 Then - If MessageBox.Show("The current ddf is a part of a frame, do you want to save?", EgtMsg(50144), MessageBoxButton.YesNo, MessageBoxImage.Warning, MessageBoxResult.No) = MessageBoxResult.Yes Then + ' 50540 = The current ddf is a part of a frame, do you want to save? + If MessageBox.Show(EgtMsg(50540), EgtMsg(50144), MessageBoxButton.YesNo, MessageBoxImage.Warning, MessageBoxResult.No) = MessageBoxResult.Yes Then DdfFile.SaveErrorCompo = True DdfFile.WriteDDFPart(SavedAssName.SelAssembly.ListPartDoor(0).Door, SavedAssName.Name, True, False) DdfFile.SaveErrorCompo = False @@ -193,7 +195,7 @@ Public Class AssemblyManagerVM End If ' creo una copia dell'assemblato Dim CurrAssembly As Assembly = Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.SelAssembly - + ' se sono in modalità porta (e non assemblato) If OptionModule.m_ConfigurationSoftware = ConfigType.Door Then Dim CurrPart As Part = CurrAssembly.ListPartDoor(0).Door Select Case Map.refMainWindowVM.selectedWatcher @@ -297,10 +299,40 @@ Public Class AssemblyManagerVM Next End If ' se sto forzando un ricalcolo completo di tutto faccio passare tutte le componenti senza pietà? - End Select Map.refMainWindowVM.selectedWatcher = MainWindowVM.WatcherCalling.NoEvents +'------------------------------------------------------------------------------------------------------------------------------------------------- + ' devo ricalcolare l'elenco delle porte nel progetto corrente: + If OptionModule.m_SingleDoor then Return True + ' calcolo l'elenco delle porte solo al dopo il salvataggio della porta corrente + If Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.IsModified then Return true + If Not IsNothing( Map.refAssemblyManagerVM.CurrProject) andAlso Not String.IsNullOrEmpty(Map.refAssemblyManagerVM.CurrProject.Name) then + Dim CurrAssemblyName As String = Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.Name + Map.refAssemblyManagerVM.CurrProject.AssemblyList = New ObservableCollection(Of AssemblyName) + Dim DDFArray()as String = Directory.GetFiles(Map.refAssemblyManagerVM.CurrProject.Name) + For IndexFile As Integer = 0 to DDFArray.Count - 1 + If Path.GetExtension(DDFArray(IndexFile)) <> DDF_EXTENSION then + Continue For + End If + Dim NewAssembly As New AssemblyName + NewAssembly.Name = DDFArray(IndexFile) + NewAssembly.IsModified = False + Map.refAssemblyManagerVM.CurrProject.AssemblyList.Add(NewAssembly) + Next + If Not IsNothing(Map.refAssemblyManagerVM.CurrProject.SelAssemblyName) then + Try + 'Map.refAssemblyManagerVM.CurrProject = LocalCurrProject + 'LocalCurrProject.SelAssemblyName = LocalCurrProject.AssemblyList.First(Function(x) x.Name = Local_AssemblyName.Name) + Map.refAssemblyManagerVM.CurrProject = Map.refAssemblyManagerVM.CurrProject + Map.refAssemblyManagerVM.CurrProject.SelAssemblyName = Map.refAssemblyManagerVM.CurrProject.AssemblyList.First(Function(x) x.Name = CurrAssemblyName) + Catch ex As Exception + EgtOutLog("Aggiornamento Progetto Corrente: impossibile caricare utima porta") + End Try + End If + End If +'------------------------------------------------------------------------------------------------------------------------------------------------- + Else If Not IsNothing(ErCompo) Then ' ReCreateCompo(ErCompo, CurrPart) @@ -321,8 +353,8 @@ Public Class AssemblyManagerVM Next Next End If - End If - Return True + End If + Return True End Function ' ricerca il tipo di compoente chiamato @@ -360,7 +392,7 @@ Public Class AssemblyManagerVM ' inizializzazione della componente m_CurrCompo.TemplateDDFName = DDFName m_CurrCompo.TemplateName = Name - If ErrCompo.SelBrandPart.Contains(".frame") Then + If ErrCompo.SelBrandPart.Contains(FRAME_FOLDER) Then CurrPart.LoadBrandFileList(m_CurrCompo, True) Else CurrPart.LoadBrandFileList(m_CurrCompo) @@ -962,22 +994,18 @@ Public Class AssemblyManagerVM ' aggiorno la porta da visualizzare If SelIndex > m_CurrProject.AssemblyList.Count - 1 Then m_CurrProject.SelAssemblyName = m_CurrProject.AssemblyList(m_CurrProject.AssemblyList.Count - 1) - Open(m_CurrProject.SelAssemblyName) + 'Open(m_CurrProject.SelAssemblyName) Utility.OutLog("Apro Progetto: " & m_CurrProject.SelAssemblyName.Name) Utility.LockDir(m_CurrProject.Name, m_CurrProject.SelAssemblyName.GraphicName) Else m_CurrProject.SelAssemblyName = m_CurrProject.AssemblyList(SelIndex) - Open(m_CurrProject.SelAssemblyName) + 'Open(m_CurrProject.SelAssemblyName) Utility.OutLog("Apro Progetto: " & m_CurrProject.SelAssemblyName.Name) Utility.LockDir(m_CurrProject.Name, m_CurrProject.SelAssemblyName.GraphicName) End If ' se non ci sono altre porte nella lista allora Else Dim LastProject As String = m_CurrProject.Name - ' confermo che non devono essere prese inconsiderazione le modifiche - 'm_CurrProject.SelAssemblyName.IsModified = False - ' elimino qualsiasi resto di porta - 'm_CurrProject.SelAssemblyName = Nothing ' pulisco entry page Map.refMainWindowVM.SelectedPage = MainWindowVM.ListPageEnum.nNothingSelected ' aggiorno il titolo della pagina @@ -995,7 +1023,7 @@ Public Class AssemblyManagerVM Public Function ManageModified() As Boolean ' verifico se selezionato esiste e modificato - If Not IsNothing(m_CurrProject.SelAssemblyName) AndAlso m_CurrProject.SelAssemblyName.IsModified Then + If Not IsNothing (m_CurrProject) AndAlso Not IsNothing(m_CurrProject.SelAssemblyName) AndAlso m_CurrProject.SelAssemblyName.IsModified Then Dim sText As String = String.Format(EgtMsg(50109), Path.GetFileNameWithoutExtension(m_CurrProject.SelAssemblyName.Name)) Select Case MessageBox.Show(sText, "", MessageBoxButton.YesNoCancel, MessageBoxImage.Question) Case MessageBoxResult.Yes diff --git a/Constants/ConstCompo.vb b/Constants/ConstCompo.vb index 252ac51..0af971b 100644 --- a/Constants/ConstCompo.vb +++ b/Constants/ConstCompo.vb @@ -48,9 +48,10 @@ Module ConstCompo Public Const K_BOTTOM As String = "bottom" Public Const K_MACHINING As String = "machining" Public Const K_OVERMATERIAL As String = "overmaterial" - Public Const K_IDCODECOMPONENT As String = "IdCodeComponent" - Public Const K_RADIUS As String = "radius" - Public Const K_POSX As String = "posx" + Public Const K_IDCODECOMPONENT As String = "IdCodeComponent" + Public Const K_RADIUS As String = "radius" + Public Const K_ANGLE As String = "angle" + Public Const K_POSX As String = "posx" ' Nome, sezioni e chiavi del file Config.ini Public Const CONFIGINI_FILE_NAME As String = "Config.ini" diff --git a/Constants/ConstIni.vb b/Constants/ConstIni.vb index 603b0d4..fd9c2ae 100644 --- a/Constants/ConstIni.vb +++ b/Constants/ConstIni.vb @@ -34,6 +34,7 @@ Module ConstIni Public Const K_DISABLEADDGEOMETRY As String = "DisableAddGeometry" Public Const K_DISABLEARCH As String = "DisableArch" Public Const K_SINGLEDOOR As String = "SingleDoor" + Public Const K_DELETEPROJECT As String = "DeleteProject" Public Const S_LANGUAGES As String = "Languages" Public Const K_LANGUAGE As String = "Language" diff --git a/DdfFile.vb b/DdfFile.vb index f04c5af..e9c492a 100644 --- a/DdfFile.vb +++ b/DdfFile.vb @@ -305,6 +305,31 @@ Friend Module DdfFile End If End If + If Part.TopAngleIsChecked And (Not IsNothing(Part.Angle) AndAlso Not IsNothing(Part.Posx)) Then + If Not StringToDouble(Part.PosxAngle, dVal) Then + MessageBox.Show(String.Format(EgtMsg(50141), K_POSX), EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error) + Return + Else + If bIsDDF Then + DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_POSX & ": " & DoubleToString(dVal, 5)) + Else + DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_POSX & ": " & Part.PosxAngle) + End If + End If + + If Not StringToDouble(Part.Angle, dVal) Then + MessageBox.Show(String.Format(EgtMsg(50141), K_ANGLE), EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error) + Return + Else + If bIsDDF Then + DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_ANGLE & ": " & DoubleToString(dVal, 5)) + Else + DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_ANGLE & ": " & Part.Angle) + End If + End If + + End If + DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_BOTTOM & ": " & SetBevel(Part.TypePart, Part.BottomType.Name, Part.DispositionItem.Name, Part.SwingAlias.Name)) DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_MACHINING & ": " & ConvertBooleanToOnOff(Part.BottomMachining)) If Not StringToDouble(Part.BottomOverMaterial, dVal) Then diff --git a/DoorParameters/Compo.vb b/DoorParameters/Compo.vb index abfe2fa..f1b2bc6 100644 --- a/DoorParameters/Compo.vb +++ b/DoorParameters/Compo.vb @@ -442,7 +442,7 @@ Public Class Compo m_SelBrandPart = sSelBrand For IndexModelList As Integer = 0 To m_BrandListPart.Count - 1 If m_BrandListPart(IndexModelList) = m_SelBrandPart Then - If sSelBrand.ToLower.Contains(".frame") Then + If sSelBrand.ToLower.Contains(FRAME_FOLDER) Then m_FileList = CompoType.FrameFolderList(IndexModelList).ModelFileList Else m_FileList = CompoType.FolderList(IndexModelList).ModelFileList diff --git a/DoorParameters/Part.vb b/DoorParameters/Part.vb index 527758e..517c930 100644 --- a/DoorParameters/Part.vb +++ b/DoorParameters/Part.vb @@ -870,6 +870,10 @@ Public Class Part End Get Set(value As Boolean) m_TopArcIsChecked = value + If m_TopAngleIsChecked and m_TopArcIsChecked then + m_TopAngleIsChecked = Not Value + NotifyPropertyChanged("TopAngleIsChecked") + End If NotifyPropertyChanged("TopArcIsChecked") Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.IsModified = True Map.refSceneManagerVM.RefreshBtn() @@ -878,6 +882,73 @@ Public Class Part #End Region ' Top Arc +#Region "TOP ANGLE" + + Private m_Angle As String = "0" + Public Property Angle As String + Get + Return m_Angle + End Get + Set(value As String) + m_Angle = value + NotifyPropertyChanged("Angle") + NotifyPropertyChanged("ToolTipEvaluatedAngle") + Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.IsModified = True + End Set + End Property + Public ReadOnly Property ToolTipEvaluatedAngle As String + Get + Dim dVal As Double + If StringToDouble(m_Angle, dVal) Then + Return DoubleToString(dVal, 4) + Else + Return EgtMsg(50143) + End If + End Get + End Property + + Private m_PosxAngle As String = "W/2" + Public Property PosxAngle As String + Get + Return m_PosxAngle + End Get + Set(value As String) + m_PosxAngle = value + NotifyPropertyChanged("PosxAngle") + NotifyPropertyChanged("ToolTipEvaluatedPosxAngle") + Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.IsModified = True + End Set + End Property + Public ReadOnly Property ToolTipEvaluatedPosxAngle As String + Get + Dim dVal As Double + If StringToDouble(m_PosxAngle, dVal) Then + Return DoubleToString(dVal, 4) + Else + Return EgtMsg(50143) + End If + End Get + End Property + + Private m_TopAngleIsChecked As Boolean + Public Property TopAngleIsChecked As Boolean + Get + Return m_TopAngleIsChecked + End Get + Set(value As Boolean) + m_TopAngleIsChecked = value + If m_TopArcIsChecked and m_TopAngleIsChecked then + m_TopArcIsChecked = Not Value + NotifyPropertyChanged("TopArcIsChecked") + End If + NotifyPropertyChanged("TopAngleIsChecked") + Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.IsModified = True + Map.refSceneManagerVM.RefreshBtn() + End Set + End Property + +#End Region ' Top Angle + #End Region ' General ' lista delle componenti @@ -917,12 +988,9 @@ Public Class Part Dim Name As String = String.Empty Dim DDFName As String = String.Empty IniFile.GetPrivateProfileCompoName(S_TEMPLATE, K_NAME, DDFName, Name, HardwareGeneral.Path & "\" & CONFIGINI_FILE_NAME) - 'Dim TemplateList As New ObservableCollection(Of String) - 'GetDirectoryCompoFiles(HardwareGeneral.Path, TemplateList) ' aggiungo il template come parametro NewCompo.TemplateDDFName = DDFName NewCompo.TemplateName = Name - 'NewCompo.TemplateItemList = TemplateList NewCompo.LoadDefaultFromLua = True NewCompo.SetTemplateSelItem(TempHardwFile) ' se non c'è il template @@ -945,12 +1013,6 @@ Public Class Part End If If Not IsNothing(NewCompo) Then CompoList.Add(NewCompo) - 'For Each ItemPar In NewCompo.CompoParamList - ' If TypeOf ItemPar Is TextBoxOnOffParam Then - ' Dim Text = DirectCast(ItemPar, TextBoxOnOffParam) - ' Text.SetIsActive(False) - ' End If - 'Next Return True End If Return False @@ -1109,12 +1171,12 @@ Public Class Part ' ricerca seleziona la prima hinge di tipo Mortise ( solo se l'elenco dei brand non è di tipo Frame) Public Sub AdviceHinge(NewCompo As Compo) ' se l'elenco dei brand è di tipo Frame allora esci - If NewCompo.SelBrandPart.ToLower.Contains(".frame") Then Return + If NewCompo.SelBrandPart.ToLower.Contains(FRAME_FOLDER) Then Return Dim SelBrand As String = String.Empty Dim SelFile As String = String.Empty - DefaultGetPrivateProfileString("AdviceHinge", "Brand", "", SelBrand) - DefaultGetPrivateProfileString("AdviceHinge", "File", "", SelFile) + DefaultGetPrivateProfileString("AdviceHinge", BRAND_INI, "", SelBrand) + DefaultGetPrivateProfileString("AdviceHinge", BRAND_FILE_INI, "", SelFile) If Not String.IsNullOrEmpty(SelBrand) And Not String.IsNullOrEmpty(SelFile) Then For IndexFolder As Integer = 0 To NewCompo.CompoType.FolderList.Count - 1 @@ -1164,8 +1226,8 @@ Public Class Part Else NewCompo.SetSelBrand(NewCompo.CompoType.FolderList(IndexFolder).ModelDirGraphic) NewCompo.SetSelFile(NewCompo.CompoType.FolderList(IndexFolder).ModelFileList(IndexFile)) - DefaultWritePrivateProfileString("AdviceHinge", "Brand", NewCompo.SelBrandPart) - DefaultWritePrivateProfileString("AdviceHinge", "File", NewCompo.SelFile) + DefaultWritePrivateProfileString("AdviceHinge", BRAND_INI, NewCompo.SelBrandPart) + DefaultWritePrivateProfileString("AdviceHinge", BRAND_FILE_INI, NewCompo.SelFile) Return End If ' passo al Direttorio succesivo @@ -1229,7 +1291,7 @@ Public Class Part Private sNameDDFMaterial As String = "" Private sNameDDFProperty As String = "" Private bModifyBevel As Boolean = False - Private bDeleteTopArch As Boolean = False + Private bDeleteTopShape As Boolean = False Private FileContent As String() ' Genero una nuova porta da usare nella lettura di un DDF @@ -1433,7 +1495,7 @@ Public Class Part End If ' Messaggio di errore per il Top Arch - If ReadDoor.bDeleteTopArch Then + If ReadDoor.bDeleteTopShape Then ' 50197: Impossible to create a Top Arch because of configuration! Curr door will be modify. MessageBox.Show(EgtMsg(50197), EgtMsg(50144), MessageBoxButton.OK, MessageBoxImage.Asterisk) FirstReadingEdge = True @@ -1473,7 +1535,8 @@ Public Class Part ' Messaggi di errore generici, se la stringa dei messaggi contiene delle informazioni allora visualizzo If Not String.IsNullOrWhiteSpace(sErrorInfo) Then Dim sTitle As String = EgtMsg(50101) - If Not IsNothing(ReadDoor) Then sTitle &= " in reading " & ReadDoor.TypePart + ' 50541 = {0} in reading {1}. + If Not IsNothing(ReadDoor) Then String.Format(EgtMsg(50541), sTitle, ReadDoor.TypePart) MessageBox.Show(sErrorInfo, sTitle, MessageBoxButton.OK, MessageBoxImage.Error) End If @@ -1890,14 +1953,10 @@ Public Class Part SetDispositionItem(m_DispositionList(1)) ' modifico il bevel da BU a BD Modifybevel(Bevel, ConstGen.BEVEL_UP) - 'OptionModule.m_bBevelDown = Visibility.Visible - 'OptionModule.m_bBevelUp = Visibility.Collapsed Case ConstGen.BEVEL_UP SetDispositionItem(m_DispositionList(0)) + ' modifico il bevel da BU a BD Modifybevel(Bevel, ConstGen.BEVEL_DOWN) - ' la visibilità serve ad aggiornre la lista dei bevel nel caso siamo in presenza della vecchia configurazione - 'OptionModule.m_bBevelUp = Visibility.Visible - 'OptionModule.m_bBevelDown = Visibility.Collapsed Case Else ' BySwing If Not String.IsNullOrEmpty(Bevel) Then Try @@ -1937,7 +1996,6 @@ Public Class Part OptionModule.m_bBevelUp = Visibility.Visible End If End If - 'm_Secure = "DN" End If End Select End If @@ -1985,8 +2043,6 @@ Public Class Part sErrorMsg = String.Format(EgtMsg(50523), SIDE_LOCK) End If Else - ' se valore nella lista - 'If EdgeTypeControl(LockEdgeType) Then Try Dim sMetaData As String = Trim(RegexFunction.Metadata(sLine)) If Not IsNothing(sMetaData) AndAlso sMetaData = "Inverted" Then @@ -2056,8 +2112,6 @@ Public Class Part sErrorMsg = String.Format(EgtMsg(50523), SIDE_HINGE) End If Else - ' se valore nella lista - 'If EdgeTypeControl(HingeEdgeType) Then Try m_HingeEdgeType = HingeEdgeTypeList.First(Function(x) x.Name = HingeEdgeType) ' segno il bevel che è stato letto nel ddf per il calcolo del secure @@ -2079,19 +2133,7 @@ Public Class Part End Try End If End Try - 'Catch ex As Exception ' se il valore cercato non è nella lista - ' If Trim(HingeEdgeType) = ConstGen.BEVEL_UP Or Trim(HingeEdgeType) = ConstGen.BEVEL_DOWN Then - ' Try - ' m_HingeEdgeType = HingeEdgeTypeList.First(Function(x) x.Name = ConstGen.BEVEL_GRAPHIC) - ' ' segno il bevel che è stato letto nel ddf per il calcolo del secure - ' m_HingeEdgeType.BevelDDF = HingeEdgeType - ' Catch ex2 As Exception - ' End Try - ' End If - 'End Try - ' Else - ' bError = True - 'End If + If Not ControlProfileInList(HingeEdgeTypeList, HingeEdgeType) Then ' 50522=The profile {0} is not a member of the {1} list. sErrorMsg = String.Format(EgtMsg(50522), HingeEdgeType, SIDE_HINGE) @@ -2130,8 +2172,6 @@ Public Class Part sErrorMsg = String.Format(EgtMsg(50523), SIDE_TOP) End If Else - ' se valore nella lista - 'If EdgeTypeControl(TopType) Then Try m_TopType = TopEdgeTypeList.First(Function(x) x.Name = TopType) ' segno il bevel che è stato letto nel ddf per il calcolo del secure @@ -2153,19 +2193,6 @@ Public Class Part End Try End If End Try - 'Catch ex As Exception ' se il valore cercato non è nella lista - ' If Trim(TopType) = ConstGen.BEVEL_UP Or Trim(TopType) = ConstGen.BEVEL_DOWN Then - ' Try - ' m_TopType = TopEdgeTypeList.First(Function(x) x.Name = ConstGen.BEVEL_GRAPHIC) - ' ' segno il bevel che è stato letto nel ddf per il calcolo del secure - ' m_TopType.BevelDDF = TopType - ' Catch ex2 As Exception - ' End Try - ' End If - 'End Try - ' Else - ' bError = True - 'End If If Not ControlProfileInList(TopEdgeTypeList, TopType) Then ' 50522=The profile {0} is not a member of the {1} list. sErrorMsg = String.Format(EgtMsg(50522), TopType, SIDE_TOP) @@ -2194,16 +2221,16 @@ Public Class Part If Index > FileContent.Count() - 1 Then Return -1 sLine = RemoveComment(FileContent(Index)) '------------------------------------------------------------------------------- - Dim Radius As String = GetValueWithKey(sLine, "radius") + Dim Radius As String = GetValueWithKey(sLine, ConstCompo.K_RADIUS) If Not String.IsNullOrEmpty(Radius) Then Index = NextIndex(Index) If Index > FileContent.Count() - 1 Then Return -1 sLine = RemoveComment(FileContent(Index)) - Dim Posx As String = GetValueWithKey(sLine, "posx") + Dim Posx As String = GetValueWithKey(sLine, ConstCompo.K_POSX) ' carico i valori If Not String.IsNullOrEmpty(Radius) AndAlso Not String.IsNullOrEmpty(Posx) Then If OptionModule.m_DisableArch <> Visibility.Visible Then - bDeleteTopArch = True + bDeleteTopShape = True Index = NextIndex(Index) Else Index = NextIndex(Index) @@ -2213,6 +2240,28 @@ Public Class Part End If End If End If + + If Not m_TopArcIsChecked then + Dim PosxAngle As String = GetValueWithKey(sLine, ConstCompo.K_POSX) + If Not String.IsNullOrEmpty(PosxAngle) Then + Index = NextIndex(Index) + If Index > FileContent.Count() - 1 Then Return -1 + sLine = RemoveComment(FileContent(Index)) + Dim Angle As String = GetValueWithKey(sLine, ConstCompo.K_ANGLE) + ' carico i valori + If Not String.IsNullOrEmpty(PosxAngle) AndAlso Not String.IsNullOrEmpty(Angle) Then + If OptionModule.m_DisableArch <> Visibility.Visible Then + bDeleteTopShape = True + Index = NextIndex(Index) + Else + Index = NextIndex(Index) + m_Angle = Angle + m_PosxAngle = PosxAngle + TopAngleIsChecked = True + End If + End If + End If + End If '------------------------------------------------------------------------------- ' Bottom If Index > FileContent.Count() - 1 Then Return -1 @@ -2227,8 +2276,6 @@ Public Class Part sErrorMsg = String.Format(EgtMsg(50523), SIDE_BOTTOM) End If Else - ' se valore nella lista - 'If EdgeTypeControl(BottomType) Then Try m_BottomType = BottomEdgeTypeList.First(Function(x) x.Name = BottomType) ' segno il bevel che è stato letto nel ddf per il calcolo del secure @@ -2250,19 +2297,6 @@ Public Class Part End Try End If End Try - 'Catch ex As Exception ' se il valore cercato non è nella lista - ' If Trim(BottomType) = ConstGen.BEVEL_UP Or Trim(BottomType) = ConstGen.BEVEL_DOWN Then - ' Try - ' m_BottomType = BottomEdgeTypeList.First(Function(x) x.Name = ConstGen.BEVEL_GRAPHIC) - ' ' segno il bevel che è stato letto nel ddf per il calcolo del secure - ' m_BottomType.BevelDDF = BottomType - ' Catch ex2 As Exception - ' End Try - ' End If - 'End Try - ' Else - ' bError = True - 'End If If Not ControlProfileInList(BottomEdgeTypeList, BottomType) Then ' 50522=The profile {0} is not a member of the {1} list. sErrorMsg = String.Format(EgtMsg(50522), BottomType, SIDE_BOTTOM) @@ -2348,7 +2382,7 @@ Public Class Part ' inizializzazione della componente m_CurrCompo.TemplateDDFName = DDFName m_CurrCompo.TemplateName = Name - If sLine.ToLower.Contains(".frame") Then + If sLine.ToLower.Contains(FRAME_FOLDER) Then LoadBrandFileList(m_CurrCompo, True) Else LoadBrandFileList(m_CurrCompo) @@ -2579,8 +2613,6 @@ Public Class Part Continue While End If End If - ' Exit While - ' Continue While End If ' Se è di tipo obbligatorio (non è OnOff) If Not (TypeOf CurrCompoParam Is TextBoxOnOffParam OrElse TypeOf CurrCompoParam Is ComboBoxOnOffParam) Then @@ -2606,10 +2638,9 @@ Public Class Part ' restituisco il valore DDF della lista associato all'indice passato SelItem = List(IndexName) Else - ' il nome DDF non è corretto - ' Error in reading {0}: line {1}. It is not a member of the list. + ' 50137 = Error in reading {0}: line {1}. It is not a member of the list. sErrorInfo &= String.Format(EgtMsg(50137), sVal, IndexLine) - ' This param will be initialized by default. + ' 50138 = This param will be initialized by default. sErrorInfo &= String.Format(Environment.NewLine & EgtMsg(50138)) & vbCrLf List.Add(sVal) SelItem = List(List.Count - 1) diff --git a/DoorParameters/PartPageV.xaml b/DoorParameters/PartPageV.xaml index 1a1355e..99098ce 100644 --- a/DoorParameters/PartPageV.xaml +++ b/DoorParameters/PartPageV.xaml @@ -270,96 +270,104 @@ ItemsSource="{Binding CurrPart.PropertiesList}" SelectedItem="{Binding CurrPart.SelectedProperty}" DisplayMemberPath="GraphicName"> - - - - + - - - - - - - - + + + + + + + + + + + + + + - - - - - - - + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DoorParameters/PartPageVM.vb b/DoorParameters/PartPageVM.vb index e3ecf9e..7d643f7 100644 --- a/DoorParameters/PartPageVM.vb +++ b/DoorParameters/PartPageVM.vb @@ -37,7 +37,7 @@ Public Class PartPageVM End If End Sub - Public ReadOnly Property VisibilityArch As Visibility + Public ReadOnly Property VisibilityTopShape As Visibility Get Return OptionModule.m_DisableArch End Get @@ -68,7 +68,8 @@ Public Class PartPageVM 'General' Public ReadOnly Property MachMsg As String Get - Return "Mach." + ' 50711 = Mach. + Return EgtMsg(50711) End Get End Property Public ReadOnly Property EdgeMsg As String @@ -158,27 +159,44 @@ Public Class PartPageVM End Property Public ReadOnly Property RadiusMsg As String Get - Return "Radius" + ' 50704 = Radius + Return EgtMsg(50704) + End Get + End Property + Public ReadOnly Property AngleMsg As String + Get + ' 50705 = Angle + Return EgtMsg(50705) End Get End Property Public ReadOnly Property PosxMsg As String Get - Return "Pos_x" + ' 50706 = Pos_x + Return EgtMsg(50706) End Get End Property Public ReadOnly Property TopArcMsg As String Get - Return "Top Arc" + ' 50707 = Top Arc + Return EgtMsg(50707) + End Get + End Property + Public ReadOnly Property TopAngleMsg As String + Get + ' 50708 = Top Angle + Return EgtMsg(50708) End Get End Property Public ReadOnly Property PropertyMsg As String Get - Return "Properties" + ' 50709 = Properties + Return EgtMsg(50709) End Get End Property Public ReadOnly Property MaterialMsg As String Get - Return "Material" + ' 50710 = Material + Return EgtMsg(50710) End Get End Property diff --git a/HardwareManager/Hardware.vb b/HardwareManager/Hardware.vb index ec6f9d3..4c96e01 100644 --- a/HardwareManager/Hardware.vb +++ b/HardwareManager/Hardware.vb @@ -30,17 +30,6 @@ Public Class Hardware End Get End Property - '' tutti i capitoli nascono di default visibili - 'Private m_VisibilityChapert As Visibility = Visibility.Visible - 'Public Property VisibilityChapter As Visibility - ' Get - ' Return m_VisibilityChapert - ' End Get - ' Set(value As Visibility) - ' m_VisibilityChapert = value - ' End Set - 'End Property - ' i parametetri sono suddivisi in sottocapitolli (gruppi di parametri) Private m_GroupChapters As New ObservableCollection(Of Compo) Public Property GroupChapters As ObservableCollection(Of Compo) @@ -92,7 +81,8 @@ Public Class Hardware If Not IsNothing(value) Then m_SelBrand = value ElseIf Not IsNothing(value) AndAlso Not Directory.Exists(value.ModelDir) Then - ErrorReading = value.ModelDir & ": " & "Directory does not exist!" + ' 50542 = {0}: Directory does not exist! + ErrorReading = String.Format(EgtMsg(50542),value.ModelDir) RefreshTemplateListEgtDOORCreator() Else Return @@ -285,7 +275,7 @@ Public Class Hardware #Region "MATCHING" 'creo il capitolo "Match File" Private Function CreateChapterMatching() As Compo - If Me.SelBrand.ModelDir.ToLower.Contains(".frame") Then Return Nothing + If Me.SelBrand.ModelDir.ToLower.Contains(FRAME_FOLDER) Then Return Nothing ' creo la classe che ospiterà gli oggetti di tipo ComboBox Dim CompoMatch As New Compo(m_HardwareGeneral, True) @@ -420,21 +410,6 @@ Public Class Hardware ' elimina il file temporaneo CurrHardware.lua Public Function DeleteTempFile() As Boolean - 'Dim CurrHardwareFile As String = String.Empty - 'Dim ModelDir As String = String.Empty - 'If Not IsNothing(m_SelBrand) Then - ' If m_SelBrand.ModelDir <> RegexFunction.ModelTemplate(m_HardwareGeneral.Path) Then ModelDir = m_SelBrand.ModelDirGraphic & "\" - ' CurrHardwareFile = m_HardwareGeneral.Path & "\" & ModelDir & ConstGen.TEMP_FILE_HARDWARE - 'End If - 'If Not IsNothing(m_LastDirectory) Then - ' If m_LastDirectory.ModelDir <> RegexFunction.ModelTemplate(m_HardwareGeneral.Path) Then ModelDir = m_LastDirectory.ModelDirGraphic & "\" - ' CurrHardwareFile = m_HardwareGeneral.Path & "\" & ModelDir & ConstGen.TEMP_FILE_HARDWARE - 'End If - 'If String.IsNullOrWhiteSpace(CurrHardwareFile) Then Return False - 'Try - ' File.Delete(CurrHardwareFile) - 'Catch ex As Exception - 'End Try If String.IsNullOrWhiteSpace(CurrHardwareFilePath) Then Return False Try File.Delete(CurrHardwareFilePath) diff --git a/MainWindow/MainWindowVM.vb b/MainWindow/MainWindowVM.vb index 0c83ceb..6c51602 100644 --- a/MainWindow/MainWindowVM.vb +++ b/MainWindow/MainWindowVM.vb @@ -82,12 +82,20 @@ Public Class MainWindowVM Public ReadOnly Property PageControl As ContentControl Get If m_SelectedPage = ListPageEnum.nDDFPage Then - VisibilityAssemblyManager = Visibility.Visible + If OptionModule.m_SingleDoor then + VisibilityAssemblyManager = Visibility.Hidden + Else + VisibilityAssemblyManager = Visibility.Visible + End If NotifyPropertyChanged("AssemblyManagerControl") NotifyPropertyChanged("ProjectManagerControl") Return m_PartPage ElseIf m_SelectedPage = ListPageEnum.nAssemblyPage Then - VisibilityAssemblyManager = Visibility.Visible + If OptionModule.m_SingleDoor then + VisibilityAssemblyManager = Visibility.Hidden + Else + VisibilityAssemblyManager = Visibility.Visible + End If NotifyPropertyChanged("AssemblyManagerControl") NotifyPropertyChanged("ProjectManagerControl") Return m_AssemblyPage @@ -97,7 +105,11 @@ Public Class MainWindowVM NotifyPropertyChanged("ProjectManagerControl") Return m_HardwarePage Else - VisibilityAssemblyManager = Visibility.Visible + If OptionModule.m_SingleDoor then + VisibilityAssemblyManager = Visibility.Hidden + Else + VisibilityAssemblyManager = Visibility.Visible + End If NotifyPropertyChanged("AssemblyManagerControl") NotifyPropertyChanged("ProjectManagerControl") Return Nothing @@ -117,12 +129,18 @@ Public Class MainWindowVM Public ReadOnly Property ProjectManagerControl As ContentControl Get - If VisibilityAssemblyManager = Visibility.Visible Then + If m_SelectedPage <> ListPageEnum.nHardwarePage then Return m_ProjectManager Else ProjectNameMsg = "HardwareManager" Return m_ProjectManagerHardware End If + 'If VisibilityAssemblyManager = Visibility.Visible Then + ' Return m_ProjectManager + 'Else + ' ProjectNameMsg = "HardwareManager" + ' Return m_ProjectManagerHardware + 'End If End Get End Property @@ -199,7 +217,7 @@ Public Class MainWindowVM Watcher.EnableRaisingEvents = Not StopWatcher End Sub - ' cominico una modifica (forzo l'utilizzo del Thread principale richiamando un evento Er) + ' comunico una modifica (forzo l'utilizzo del Thread principale richiamando un evento Er) Private Sub OnChanged(source As Object, e As FileSystemEventArgs) If m_SelectedPage = ListPageEnum.nHardwarePage Then Return If StartReload Then Return @@ -215,7 +233,8 @@ Public Class MainWindowVM Private Sub OnDeleted(source As Object, e As FileSystemEventArgs) If m_SelectedPage = ListPageEnum.nHardwarePage Then Return If StartReload Then Return - Dim Message As String = "It has been deleted file: " & e.FullPath & " " & e.ChangeType + ' 50545 = It has been deleted file: {0}, {1}. + Dim Message As String = String.Format(EgtMsg(50545), e.FullPath, e.ChangeType) selectedWatcher = WatcherCalling.OnDeleted Application.Current.Dispatcher.BeginInvoke(New Action(Sub() RaiseEvent Er(Message, e.FullPath) @@ -227,7 +246,8 @@ Public Class MainWindowVM Private Sub OnRenamed(source As Object, e As FileSystemEventArgs) If m_SelectedPage = ListPageEnum.nHardwarePage Then Return If StartReload Then Return - Dim Message As String = "It has been renamed file: " & e.FullPath & " " & e.ChangeType + ' 50543 = It has been renamed file: {0}, {1}. + Dim Message As String = String.Format(EgtMsg(50543), e.FullPath, e.ChangeType) selectedWatcher = WatcherCalling.OnRenamed Application.Current.Dispatcher.BeginInvoke(New Action(Sub() RaiseEvent Er(Message, e.FullPath) @@ -239,7 +259,8 @@ Public Class MainWindowVM Private Sub OnCreated(source As Object, e As FileSystemEventArgs) If m_SelectedPage = ListPageEnum.nHardwarePage Then Return If StartReload Then Return - Dim Message As String = "It has been created new file: " & e.FullPath & " " & e.ChangeType + ' 50544 = It has been created new file: {0}, {1}. + Dim Message As String =String.Format(EgtMsg(50544), e.FullPath, e.ChangeType) selectedWatcher = WatcherCalling.OnCreated Application.Current.Dispatcher.BeginInvoke(New Action(Sub() RaiseEvent Er(Message, e.FullPath) @@ -322,7 +343,7 @@ Public Class MainWindowVM End If Utility.UnLockDir() Case Else - If Not IsNothing(Map.refAssemblyManagerVM.CurrProject.SelAssemblyName) AndAlso Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.IsModified Then + If Not IsNothing(Map.refAssemblyManagerVM.CurrProject) AndAlso Not IsNothing(Map.refAssemblyManagerVM.CurrProject.SelAssemblyName) AndAlso Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.IsModified Then Dim sText As String = String.Format(EgtMsg(50109), Path.GetFileNameWithoutExtension(Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.Name)) Select Case MessageBox.Show(sText, "", MessageBoxButton.YesNoCancel, MessageBoxImage.Question) Case MessageBoxResult.Yes @@ -335,11 +356,6 @@ Public Class MainWindowVM End Select End If End Select - '' scrivo il nome dell'ultimo file aperto - 'If Not IsNothing(Map.refAssemblyManagerVM.CurrProject) AndAlso - ' Not String.IsNullOrWhiteSpace(Map.refAssemblyManagerVM.CurrProject.Name) Then - ' WriteMainPrivateProfileString(S_LAUNCHERWINDOW, K_LASTPROJECT, Map.refAssemblyManagerVM.CurrProject.Name) - 'End If If Not IsNothing(Map.refAssemblyManagerVM.CurrProject) AndAlso Not IsNothing(Map.refAssemblyManagerVM.CurrProject.SelAssemblyName) AndAlso Not String.IsNullOrWhiteSpace(Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.Name) Then @@ -355,7 +371,7 @@ Public Class MainWindowVM EgtExit() Application.Current.MainWindow.Close() Utility.UnLockDir() - 'End If + End Sub #End Region ' CloseApplicationCommand diff --git a/My Project/AssemblyInfo.vb b/My Project/AssemblyInfo.vb index 028dbcb..486d20f 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/OptionsWindow/OptionModule.vb b/OptionsWindow/OptionModule.vb index f81cacb..3c5aea3 100644 --- a/OptionsWindow/OptionModule.vb +++ b/OptionsWindow/OptionModule.vb @@ -26,6 +26,8 @@ Friend Module OptionModule Friend m_DisableAddGeometry As Visibility = Visibility.Collapsed Friend m_DisableArch As Visibility = Visibility.Collapsed + Friend m_DeleteProject As Boolean = False + Friend m_DisableProperties As Visibility Friend m_MaterialIsVisible As Visibility = Visibility.Visible Friend m_PropertList As New ObservableCollection(Of PropertyItem) @@ -257,6 +259,8 @@ Friend Module OptionModule m_SingleDoor = If(GetMainPrivateProfileInt(S_GENERAL, K_SINGLEDOOR, 0) = 1, True, False) + m_DeleteProject = If(GetMainPrivateProfileInt(S_GENERAL, K_DELETEPROJECT, 0) = 1, True, False) + ' leggo il tipo di Bevel selezionato DefaultGetPrivateProfilesBevel(S_EDGE, K_BEVELU_INI, m_bBevelUp) DefaultGetPrivateProfilesBevel(S_EDGE, K_BEVELD_INI, m_bBevelDown) @@ -308,15 +312,6 @@ Friend Module OptionModule If PropertyList.Count > 0 Then LoadPropertiesList(PropertyList, m_PropertListJamb) End If Part.m_MaterilaList = m_MaterialList - '------------------------------------------------------------------------------------------------------------------------------- - ' carico la lista delle proprietà - 'Dim PropertyList As New ObservableCollection(Of String) - 'DefaultGetPrivateProfileObservableCollection(ConstIni.S_PROPERTIES_INI, ConstIni.K_PROPRTIESLIST_INI, PropertyList) - 'LoadPropertiesList(PropertyList, m_PropertList) - 'PropertyList.Clear() - 'DefaultGetPrivateProfileObservableCollection(ConstIni.S_PROPERTIES_INI, ConstIni.K_PROPRTIESLISTJAMB_INI, PropertyList) - 'If PropertyList.Count > 0 Then LoadPropertiesList(PropertyList, m_PropertListJamb) - '------------------------------------------------------------------------------------------------------------------------------- ' Leggo le dimensioni della porta dal file Default.ini Dim IsMM As Boolean = False diff --git a/OptionsWindow/OptionsV.xaml b/OptionsWindow/OptionsV.xaml index 829207e..d2609d9 100644 --- a/OptionsWindow/OptionsV.xaml +++ b/OptionsWindow/OptionsV.xaml @@ -24,8 +24,8 @@ - - + + @@ -44,30 +44,29 @@ - + + TextAlignment="Center" Margin="5,0,5,0"/> - + - + VerticalAlignment="Center" + Style="{StaticResource DoorParamsCmBx}" + Margin="5,0,5,0"/> + TextAlignment="Center" Margin="5,0,5,0"/> - + @@ -128,7 +127,7 @@ - + @@ -148,6 +147,27 @@ + + + + + + + + + + + + + + + + + diff --git a/OptionsWindow/OptionsViewModel.vb b/OptionsWindow/OptionsViewModel.vb index 67323c3..27c42c5 100644 --- a/OptionsWindow/OptionsViewModel.vb +++ b/OptionsWindow/OptionsViewModel.vb @@ -997,7 +997,7 @@ Public Class OptionsVM Public ReadOnly Property HardwarePartMsg As String Get 'HardwarePart - Return "HardwarePart" + Return EgtMsg(50712) End Get End Property @@ -1107,7 +1107,8 @@ Public Class OptionsVM Public ReadOnly Property MachMsg As String Get - Return "Mach." + ' Mach. + Return EgtMsg(50711) End Get End Property @@ -1186,6 +1187,20 @@ Public Class OptionsVM End Get End Property + Public ReadOnly Property ProjectMsg As String + Get + ' Prject + Return EgtMsg(50547) + End Get + End Property + + Public ReadOnly Property EnableSingleDoorMsg As String + Get + ' Enable single door. + Return EgtMsg(50546) + End Get + End Property + Private m_BevelConfiguration As Visibility Public ReadOnly Property BevelConfiguration As Visibility Get @@ -1227,6 +1242,22 @@ Public Class OptionsVM End Set End Property + Private m_EnableSingleDoor As Boolean = OptionModule.m_SingleDoor + Public Property EnableSingleDoor As Boolean + Get + Return m_EnableSingleDoor + End Get + Set(value As Boolean) + m_EnableSingleDoor = value + If Not value Then + WriteMainPrivateProfileString(S_GENERAL, K_SINGLEDOOR, "0") + Else + WriteMainPrivateProfileString(S_GENERAL, K_SINGLEDOOR, "1") + End If + NotifyPropertyChanged("EnableSingleDoor") + End Set + End Property + Public ReadOnly Property ImpTempMsg As String Get ' Open template door @@ -1241,6 +1272,13 @@ Public Class OptionsVM End Get End Property + Public ReadOnly Property SingleDoorMsg As String + Get + ' The new configuration will take effect after restart. + Return EgtMsg(50548) + End Get + End Property + Private m_BySwingConfiguration As Visibility Public ReadOnly Property BySwingConfiguration As Visibility Get @@ -1251,97 +1289,99 @@ Public Class OptionsVM 'tab2 Public ReadOnly Property AssemblyMsg As String Get - Return "Assembly" + Return EgtMsg(50713) End Get End Property Public ReadOnly Property LightUpMsg As String Get - Return "Light Up" + ' Light Up + Return EgtMsg(50056) End Get End Property Public ReadOnly Property LightLockMsg As String Get - Return "Light Lock" + ' Light Lock + Return EgtMsg(50057) End Get End Property Public ReadOnly Property LightBottomMsg As String Get - Return "Light Bottom" + Return EgtMsg(50058) End Get End Property Public ReadOnly Property LightHingeMsg As String Get - Return "Light Hinge" + Return EgtMsg(50059) End Get End Property Public ReadOnly Property ThicknessHeadMsg As String Get - Return "Thickness Head" + Return EgtMsg(50060) End Get End Property Public ReadOnly Property OverlapHingeMsg As String Get - Return "Overlap Hinge" + Return EgtMsg(50061) End Get End Property Public ReadOnly Property OverlapLockMsg As String Get - Return "Overlap Lock" + Return EgtMsg(50062) End Get End Property Public ReadOnly Property OverlapTopMsg As String Get - Return "Overlap Top" + Return EgtMsg(50063) End Get End Property Public ReadOnly Property DeltaTMsg As String Get - Return "Delta T" + Return EgtMsg(50064) End Get End Property Public ReadOnly Property ExteriorMsg As String Get - Return "Exterior" + Return EgtMsg(50065) End Get End Property Public ReadOnly Property DoorNumberMsg As String Get - Return "Number Doors" + Return EgtMsg(50066) End Get End Property Public ReadOnly Property JambsAndDoorsMsg As String Get - Return "Jambs and Doors" + Return EgtMsg(50067) End Get End Property Public ReadOnly Property TotalDimesionMsg As String Get - Return "Total Dimension" + Return EgtMsg(50714) End Get End Property Public ReadOnly Property TotalHeightMsg As String Get - Return "Height" + Return EgtMsg(50002) End Get End Property Public ReadOnly Property TotalWidthMsg As String Get - Return "Width" + Return EgtMsg(50001) End Get End Property diff --git a/ProjectManager/MySaveFileDialogVM.vb b/ProjectManager/MySaveFileDialogVM.vb index 4d93663..0e47f50 100644 --- a/ProjectManager/MySaveFileDialogVM.vb +++ b/ProjectManager/MySaveFileDialogVM.vb @@ -24,7 +24,7 @@ Public Class MySaveFileDialogVM Friend Function MySave() As Boolean If IsFolder And IsFrame Then - WriteFileName &= ".Frame" + WriteFileName &= FRAME_FOLDER End If Dim sCompleteFileName As String = Directory & "\" & WriteFileName & If(IsFolder, "", Extension) If String.IsNullOrWhiteSpace(WriteFileName) Then diff --git a/ProjectManager/Project.vb b/ProjectManager/Project.vb index 920e34c..c517f00 100644 --- a/ProjectManager/Project.vb +++ b/ProjectManager/Project.vb @@ -46,6 +46,10 @@ Public Class Project Friend Function IsBlockedSelAssemblyName(value As AssemblyName) As Boolean If IsNothing(value) then Return false + If Not File.Exists(value.Name) AndAlso Not IsNothing(Map.refAssemblyManagerVM) AndAlso Not IsNothing(Map.refAssemblyManagerVM.CurrProject) then + Map.refAssemblyManagerVM.RefreshAssembly() + Return False + End If If value.Name = m_SelAssemblyName.Name then Map.refAssemblyManagerVM.Open(m_SelAssemblyName) Return false diff --git a/ProjectManager/ProjectManagerV.xaml b/ProjectManager/ProjectManagerV.xaml index b64eec7..d256494 100644 --- a/ProjectManager/ProjectManagerV.xaml +++ b/ProjectManager/ProjectManagerV.xaml @@ -8,8 +8,9 @@ +