cbecb11ab7
-> scrittura messaggi nel file dei messaggi.
205 lines
7.9 KiB
VB.net
205 lines
7.9 KiB
VB.net
Imports System.ComponentModel
|
|
Imports System.Collections.ObjectModel
|
|
Imports EgtUILib
|
|
Imports System.IO
|
|
|
|
Public Class CompoPanelVM
|
|
Implements INotifyPropertyChanged
|
|
|
|
Private m_PageName As String = String.Empty
|
|
|
|
Public ReadOnly Property GoToAssembly As String
|
|
Get
|
|
' 50720=GoToAssembly
|
|
Return EgtMsg(50720)
|
|
End Get
|
|
End Property
|
|
|
|
Private m_CompoTypeList As New ObservableCollection(Of CompoType)
|
|
Public ReadOnly Property CompoTypeList As ObservableCollection(Of CompoType)
|
|
Get
|
|
Return m_CompoTypeList
|
|
End Get
|
|
End Property
|
|
|
|
Private m_IsVisible As Visibility
|
|
Public Property IsVisible As Visibility
|
|
Get
|
|
Return m_IsVisible
|
|
End Get
|
|
Set(value As Visibility)
|
|
m_IsVisible = value
|
|
NotifyPropertyChanged("IsVisible")
|
|
End Set
|
|
End Property
|
|
|
|
Private m_GoBackVisibility As Visibility = Visibility.Visible
|
|
Public Property GoBackVisibility As Visibility
|
|
Get
|
|
Return m_GoBackVisibility
|
|
End Get
|
|
Set(value As Visibility)
|
|
m_GoBackVisibility = value
|
|
NotifyPropertyChanged("GoBackVisibility")
|
|
End Set
|
|
End Property
|
|
|
|
' Definizione comando
|
|
Private m_CmdCompoBtn As ICommand
|
|
Private m_CmdGoToAssemblyBtn As ICommand
|
|
' definizione comando
|
|
Private m_EnterRefreshCmd As ICommand
|
|
|
|
Sub New(Page As String)
|
|
m_PageName = Page
|
|
'Map.SetRefCompoPanelVM(Me)
|
|
'Map.SetRefCompoPaneHardwarelVM(Me)
|
|
If m_CompoTypeList.Count > 0 Then Return ' se la lista è già caricata esco (Lista di tipo shared)
|
|
Dim IndexCompoOrder = 0
|
|
' Lettura file ini per generare bottoni
|
|
Dim Index As Integer = 1
|
|
Dim CompoName As String = String.Empty
|
|
Dim CompoNameDDF As String = String.Empty
|
|
Dim Side As String = String.Empty
|
|
Dim FolderName As String = String.Empty
|
|
' Carico un vettore con il nome delle Path delle componenti
|
|
If Not Directory.Exists(IniFile.m_CompoDir) Then
|
|
' CompoDir not found :
|
|
EgtOutLog(EgtMsg(50165) & IniFile.m_CompoDir)
|
|
Return
|
|
End If
|
|
Dim CompoArray() As String = Directory.GetDirectories(IniFile.m_CompoDir)
|
|
' carico i valori dei bottoni con un preciso ordine
|
|
Dim CompoPanelList As List(Of String) = OptionModule.m_CompoPaneOrder
|
|
For IndexCompoOrder = 0 To DdfFile.CompoListOrder.Count - 1
|
|
For Index = 0 To CompoArray.Count - 1
|
|
' apro ogni directory e cerco un file di testo di nome Config.ini
|
|
Dim CurrCompoPath As String = CompoArray(Index) & "\" & ConstCompo.CONFIGINI_FILE_NAME
|
|
If File.Exists(CurrCompoPath) Then
|
|
GetPrivateProfileCompoName(ConstCompo.S_COMPO, ConstCompo.K_NAME, CompoNameDDF, CompoName, CurrCompoPath)
|
|
GetPrivateProfileJambSide(S_POSITIONSIDE, K_SIDE, Side, CurrCompoPath)
|
|
GetPrivateProfileFolderName(S_TEMPLATE, K_FOLDER_NAME, FolderName, CurrCompoPath)
|
|
If CompoPanelList(IndexCompoOrder) = CompoNameDDF Then
|
|
m_CompoTypeList.Add(New CompoType(CompoName, CompoNameDDF, CompoArray(Index), Side, FolderName))
|
|
' aggiungere il caricamento delle liste
|
|
Exit For
|
|
End If
|
|
End If
|
|
Next
|
|
Next
|
|
|
|
|
|
End Sub
|
|
|
|
#Region "COMMANDS"
|
|
|
|
#Region "CompoBtnCommand"
|
|
|
|
Public ReadOnly Property CompoBtnCommand As ICommand
|
|
Get
|
|
If m_CmdCompoBtn Is Nothing Then
|
|
m_CmdCompoBtn = New Command(AddressOf CompoBtn)
|
|
End If
|
|
Return m_CmdCompoBtn
|
|
End Get
|
|
End Property
|
|
|
|
Public Sub CompoBtn(param As Object)
|
|
' distinguo il modo di caricare i valori a secondo della pagina aperta
|
|
If Map.refMainWindowVM.SelectedPage = MainWindowVM.ListPageEnum.nHardwarePage Then
|
|
' devo controllare se devo salvare le modifiche fatte
|
|
If Not IsNothing(Map.refHardwarePageVM) Then ' se la pagina è aperta
|
|
If Not IsNothing(Map.refHardwarePageVM.CurrHardware) Then ' se un hardware esiste
|
|
If Map.refHardwarePageVM.CurrHardware.SaveControl() = Hardware.SaveResult.nCancel Then Return ' controllo se devo salvare le modifiche
|
|
' elimino CurrHardware
|
|
Map.refHardwarePageVM.CurrHardware.DeleteTempFile()
|
|
End If
|
|
' seleziono il nuovo Hardware
|
|
Dim m_CurrCompoType As CompoType = DirectCast(param, CompoType)
|
|
For IndexCompoType As Integer = 0 To Map.refCompoPanelHardwareVM.CompoTypeList.Count - 1
|
|
If m_CurrCompoType.Name <> Map.refCompoPanelHardwareVM.CompoTypeList(IndexCompoType).Name Then
|
|
Map.refCompoPanelHardwareVM.CompoTypeList(IndexCompoType).IsSelectedBtn = False
|
|
End If
|
|
Next
|
|
' ogni volta che clicco il bottone definisco un nuovo Hardware
|
|
Map.refHardwarePageVM.CurrHardware = New Hardware
|
|
Map.refHardwarePageVM.VisibilityGeneral = Visibility.Visible
|
|
Map.refHardwarePageVM.CurrHardware.LoadTemplate(m_CurrCompoType)
|
|
' Apro il progetto di esempio del tipo del bottone selezionato
|
|
Map.refHardwareHelpSceneHostV.LoadHelpProject()
|
|
End If
|
|
'------------------------------------------------------------------------------------------------------------------------------
|
|
Else ' se non sono nella configurazione Hardware
|
|
Dim m_CurrCompoType As CompoType = DirectCast(param, CompoType)
|
|
m_CurrCompoType.LoadListTemplate()
|
|
If Not IsNothing(Map.refPartPageVM.CurrPart) Then
|
|
Dim NewCompo As Compo = Map.refPartPageVM.CurrPart.AddNewCompo(m_CurrCompoType)
|
|
If IsNothing(NewCompo) Then Return
|
|
' aggiorno lista hardware di quotatura
|
|
Map.refDimensioningPanelVM.LoadHardwareDimList()
|
|
' aggiungo le componenti sui Jamb
|
|
Map.refAssemblyPageVM.CurrAssembly.CreateCompoOnJamb(NewCompo, "")
|
|
Map.refSceneManagerVM.RefreshBtn()
|
|
Else
|
|
MessageBox.Show(EgtMsg(50108), EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Exclamation)
|
|
End If
|
|
End If
|
|
|
|
End Sub
|
|
|
|
#End Region ' CompoBtnCommand
|
|
|
|
#Region "GoToAssemblyBtnCommand"
|
|
|
|
Public ReadOnly Property GoToAssemblyBtnCommand As ICommand
|
|
Get
|
|
If m_CmdGoToAssemblyBtn Is Nothing Then
|
|
m_CmdGoToAssemblyBtn = New Command(AddressOf GoToAssemblyBtn)
|
|
End If
|
|
Return m_CmdGoToAssemblyBtn
|
|
End Get
|
|
End Property
|
|
|
|
Public Sub GoToAssemblyBtn(param As Object)
|
|
If OptionModule.m_ConfigurationSoftware = ConfigType.Assembly Then
|
|
Map.refMainWindowVM.SelectedPage = MainWindowVM.ListPageEnum.nAssemblyPage
|
|
' aggiorno lista hardware di quotatura
|
|
Map.refDimensioningPanelVM.LoadHardwareDimList()
|
|
Map.refSceneManagerVM.RefreshBtn()
|
|
Else
|
|
Map.refCompoPanelVM.GoBackVisibility = Visibility.Collapsed
|
|
Map.refMainWindowVM.SelectedPage = MainWindowVM.ListPageEnum.nDDFPage
|
|
Map.refSceneManagerVM.RefreshBtn()
|
|
End If
|
|
Map.refProjectManagerVM.NotifyPropertyChanged("VisibilityCreateAssembly")
|
|
End Sub
|
|
|
|
#End Region ' GoToAssemblyBtnCommand
|
|
|
|
#Region "ENTERREFRESH"
|
|
|
|
Public ReadOnly Property RefreshCmd As ICommand
|
|
Get
|
|
If m_EnterRefreshCmd Is Nothing Then
|
|
m_EnterRefreshCmd = New Command(AddressOf EnterRefresh)
|
|
End If
|
|
Return m_EnterRefreshCmd
|
|
End Get
|
|
End Property
|
|
|
|
Public Sub EnterRefresh()
|
|
Map.refSceneManagerVM.RefreshBtn()
|
|
End Sub
|
|
|
|
#End Region ' EnterRefresh
|
|
|
|
#End Region 'Commands
|
|
|
|
Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
|
|
|
|
Public Sub NotifyPropertyChanged(propName As String)
|
|
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propName))
|
|
End Sub
|
|
|
|
End Class
|