diff --git a/Command/Command.vb b/Command/Command.vb
index 9fe3775..139c1ba 100644
--- a/Command/Command.vb
+++ b/Command/Command.vb
@@ -1,11 +1,5 @@
-'''
-''' A command whose sole purpose is to
-''' relay its functionality to other
-''' objects by invoking delegates. The
-''' default return value for the CanExecute
-''' method is 'true'.
-'''
+
Public Class Command
Implements ICommand
@@ -18,19 +12,10 @@ Public Class Command
#Region "Constructors"
- '''
- ''' Creates a new command that can always execute.
- '''
- ''' The execution logic.
Public Sub New(ByVal execute As Action(Of Object))
Me.New(execute, Nothing)
End Sub
- '''
- ''' Creates a new command.
- '''
- ''' The execution logic.
- ''' The execution status logic.
Public Sub New(ByVal execute As Action(Of Object), ByVal canExecute As Predicate(Of Object))
If execute Is Nothing Then
Throw New ArgumentNullException("execute")
diff --git a/DoorParameters/Part.vb b/DoorParameters/Part.vb
index 3112cf4..9df6f08 100644
--- a/DoorParameters/Part.vb
+++ b/DoorParameters/Part.vb
@@ -227,7 +227,12 @@ Public Class Part
End Property
Public Sub SetHeight(sHeight As String)
m_Height = sHeight
+ Dim dHeight As Double
+ If StringToDouble(sHeight, dHeight) Then
+ EgtLuaSetGlobNumVar("H", dHeight)
+ End If
NotifyPropertyChanged("Height")
+ NotifyPropertyChanged("ToolTipEvaluatedHeight")
If Not Map.refMainWindowVM.SelectedPage = MainWindowVM.ListPageEnum.nHardwarePage Then
Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.IsModified = True
End If
@@ -265,7 +270,12 @@ Public Class Part
End Property
Public Sub SetWidth(sWidth As String)
m_Width = sWidth
+ Dim dWidth As Double
+ If StringToDouble(sWidth, dWidth) Then
+ EgtLuaSetGlobNumVar("W", dWidth)
+ End If
NotifyPropertyChanged("Width")
+ NotifyPropertyChanged("ToolTipEvaluatedWidth")
If Not Map.refMainWindowVM.SelectedPage = MainWindowVM.ListPageEnum.nHardwarePage Then
Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.IsModified = True
End If
@@ -303,7 +313,15 @@ Public Class Part
End Property
Public Sub SetThickness(sThickness As String)
m_Thickness = sThickness
+ Dim dThickness As Double
+ If StringToDouble(sThickness, dThickness) Then
+ EgtLuaSetGlobNumVar("T", dThickness)
+ End If
NotifyPropertyChanged("Thickness")
+ NotifyPropertyChanged("ToolTipEvaluatedThickness")
+ If Not Map.refMainWindowVM.SelectedPage = MainWindowVM.ListPageEnum.nHardwarePage Then
+ Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.IsModified = True
+ End If
End Sub
Public ReadOnly Property ToolTipEvaluatedThickness As String
Get
@@ -986,206 +1004,6 @@ Public Class Part
End Sub
-#Region "Questa sezione dovrà essere eliminta!"
-
- ''Gestione ComboBox e TextBox di ogni compo della pulsantiera letta da Compo.ini (Assembly)
- 'Public Function AddRefCompo(CurrCompoType As CompoType, FrameCompoFile As String) As Compo
- ' ' creo la stringa che contiene la lista degli errori
- ' Dim ErrorList As String = String.Empty
- ' ' creo il nuovo compo
- ' Dim NewCompo As New Compo(CurrCompoType)
- ' ' Leggo il file ini del componente per vedere se c'è il template: se c'è
- ' If EgtUILib.GetPrivateProfileInt(S_TEMPLATE, K_ISACTIVE, 1, CurrCompoType.Path & "\" & CONFIGINI_FILE_NAME) <> 0 Then
- ' ' leggo nomi
- ' Dim Name As String = String.Empty
- ' Dim DDFName As String = String.Empty
- ' IniFile.GetPrivateProfileCompoName(S_TEMPLATE, K_NAME, DDFName, Name, CurrCompoType.Path & "\" & CONFIGINI_FILE_NAME)
-
- ' '-----------------------------------------------------------------------------------------------------------------------------------
- ' NewCompo.TemplateDDFName = DDFName
- ' NewCompo.TemplateName = Name
- ' LoadBrandFileList(NewCompo, True)
- ' '-----------------------------------------------------------------------------------------------------------------------------------
-
- ' Else
- ' ' nascondo il template
- ' NewCompo.TemplateVisibility = Visibility.Collapsed
- ' ' leggo il nome del compo dal file config.ini
- ' Dim sTemplateName As String = String.Empty
- ' EgtUILib.GetPrivateProfileString(S_TEMPLATE, K_COMPO, "", sTemplateName, CurrCompoType.Path & "\" & CONFIGINI_FILE_NAME)
- ' If String.IsNullOrWhiteSpace(sTemplateName) Then
- ' ErrorList &= String.Format(EgtMsg(50122), K_COMPO, NewCompo.TemplateName)
- ' NewCompo = Nothing
- ' ElseIf Not File.Exists(CurrCompoType.Path & "\" & sTemplateName & ".lua") Then
- ' ErrorList &= String.Format(EgtMsg(50122), K_COMPO, NewCompo.TemplateName)
- ' NewCompo = Nothing
- ' Else
- ' NewCompo.TemplateSelItem = sTemplateName
- ' End If
- ' End If
- ' ' raggruppo tutte le componenti che hanno lo stesso nome vicine
- ' If Not IsNothing(NewCompo) Then
- ' ' se trova già una componente allora l'inserimento avvien nel ciclo for
- ' Dim bInsert = False
- ' Dim CompoIndex = 0
- ' For CompoIndex = 0 To m_CompoList.Count - 1
- ' ' inserisco la nuova componente
- ' If NewCompo.CompoType.DDFName = m_CompoList(CompoIndex).CompoType.DDFName Then
- ' ' cerco l'ultima componente con lo stesso nome
- ' Dim Lastindex As Integer = 0
- ' While CompoIndex + Lastindex < m_CompoList.Count AndAlso NewCompo.CompoType.DDFName = m_CompoList(CompoIndex + Lastindex).CompoType.DDFName
- ' Lastindex += 1
- ' End While
- ' CompoList.Insert(CompoIndex + Lastindex, NewCompo)
- ' bInsert = True
- ' Exit For
- ' End If
- ' Next
- ' If Not bInsert Then
- ' CompoList.Add(NewCompo)
- ' End If
- ' End If
- ' Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.IsModified = True
- ' Return NewCompo
- 'End Function
-
- '' ha lo scopo di generare una componente sul jamb
- 'Private Sub BuiltReferenceCompo(NewCompo As Compo)
- ' ' questa parte viene ignorata se l'oggetto chiamante è un Frame
- ' If Not IsNothing(Me.m_TypePart) AndAlso Not Me.m_TypePart.Contains(ConstGen.PART_FRAME) Then
- ' If Not IsNothing(Map.refAssemblyPageVM.CurrAssembly.LeftJamb) Then
- ' ' costruisco un riferimnto in locale dell'assemblato
- ' Dim CurrAssembly As Assembly = Map.refAssemblyPageVM.CurrAssembly
- ' ' il nome del file associato alla componente
- ' Dim FrameCompoFile As String = String.Empty
- ' Dim FrameCompoFileConfig As String = String.Empty
- ' Dim nDoorNbr As Integer = 1
- ' Int32.TryParse(Map.refAssemblyPageVM.CurrAssembly.DoorNumber, nDoorNbr)
- ' ' se il file Matching.lua manca nel direttorio allora esco
- ' If CalcCompoMatching(NewCompo.CompoType.Path, nDoorNbr, NewCompo.TemplateSelItem, FrameCompoFile) AndAlso
- ' Not String.IsNullOrEmpty(FrameCompoFile) Then
- ' '------------------------------------------------------------------------------------------------------------------------------------------
- ' If Not SearchFileConfig(FrameCompoFile, FrameCompoFileConfig) Then
- ' ' 50144 =Warning
- ' ' 50166 =Jamb compo does not exist
- ' MessageBox.Show(EgtMsg(50166), EgtMsg(50144), MessageBoxButton.OK, MessageBoxImage.Warning)
- ' Else
- ' CreateRefCompo(NewCompo.CompoType, NewCompo, CurrAssembly, FrameCompoFileConfig, FrameCompoFile, Me)
- ' End If
- ' End If
- ' End If
- ' End If
- 'End Sub
-
- '' crea la componente di riferimento
- 'Friend Shared Sub CreateRefCompo(ByRef CurrCompoType As CompoType, ByRef NewCompo As Compo, ByRef CurrAssembly As Assembly, FrameCompoFileConfig As String, FrameCompoFile As String, CurrDoor As Part)
- ' ' disabilito la costruzione del riferimento
- ' Assembly.BuiltReffCompo = False
-
- ' ' definisco un riferimento ad una variabile che sarà usata nel jamb
- ' Dim CompoTypeJamb As CompoType
- ' ' dato il direttorio dove si trova la componente devo ora cercare il file Config.ini per la lettura dei parametri della componente
- ' Dim FrameCompoNameDDF As String = String.Empty
- ' Dim FrameCompoName As String = String.Empty
- ' Dim FrameFolderName As String = FOLDERDIR
- ' Dim Side As String = String.Empty
- ' Dim CurrCompoPath As String = FrameCompoFileConfig
-
- ' If File.Exists(CurrCompoPath) Then
- ' ' Name=hinges/50074
- ' GetPrivateProfileCompoName(ConstCompo.S_COMPO, ConstCompo.K_NAME, FrameCompoNameDDF, FrameCompoName, CurrCompoPath)
- ' ' FolderName = 50052
- ' GetPrivateProfileFolderName(S_TEMPLATE, K_FOLDER_NAME, FrameFolderName, CurrCompoPath)
- ' ' Side = Hinge
- ' GetPrivateProfileJambSide(S_POSITIONSIDE, K_SIDE, Side, CurrCompoType.Path & "\" & CONFIGINI_FILE_NAME)
- ' ' se non è stata trovata nessuna voce nel file di configurazione ( riferita alla posizione side)
- ' If String.IsNullOrEmpty(Side) Then
- ' ' controllo nell'elenco dei parametri se esiste un parametro di tipo Side
- ' For IndexParam As Integer = 0 To NewCompo.CompoParamList.Count - 1
- ' If NewCompo.CompoParamList(IndexParam).DDFName.ToLower = K_SIDE.ToLower Then
- ' Side = DirectCast(NewCompo.CompoParamList(IndexParam), ComboBoxParam).SelItem
- ' Exit For
- ' End If
- ' Next
- ' End If
- ' ' ricontrollo che la stringa non sia vuota
- ' If Not String.IsNullOrEmpty(Side) Then
- ' Dim FrameCompoDirectory As String
- ' FrameCompoDirectory = FrameCompoFileConfig.Remove(FrameCompoFileConfig.LastIndexOf("\"))
- ' CompoTypeJamb = New CompoType(FrameCompoName, FrameCompoNameDDF, FrameCompoDirectory, Side, FrameFolderName)
- ' ' assegno alla componente sull'anta la sua posizione
- ' NewCompo.CompoType.SetJambSide(Side)
- ' Else
- ' ' se non trovo nessun riferimento per la posizione allora esco
- ' Return
- ' End If
- ' Else
- ' ' se non trovo nulla nel direttorio indicato
- ' Return
- ' End If
-
- ' '------------------------------------------------------------------------------------------------------------------------------------------
- ' Select Case CurrAssembly.DoorNumber
- ' Case "1"
- ' ' questo select case serve per gestire la posizione degli hardware sui Jamb
- ' Select Case CurrCompoType.JambSide.ToLower
- ' Case SIDE_HINGE
- ' If CurrAssembly.LeftJamb.Swing.Contains(ConstGen.LOCK) Then
- ' NewCompo.refJambCompo = CurrAssembly.LeftJamb.AddRefCompo(CompoTypeJamb, FrameCompoFile)
- ' NewCompo.refJambCompo.IsReadOnly = True
- ' Else
- ' NewCompo.refJambCompo = CurrAssembly.RightJamb.AddRefCompo(CompoTypeJamb, FrameCompoFile)
- ' NewCompo.refJambCompo.IsReadOnly = True
- ' End If
- ' Case SIDE_LOCK
- ' If CurrAssembly.LeftJamb.Swing.Contains(ConstGen.LOCK) Then
- ' NewCompo.refJambCompo = CurrAssembly.RightJamb.AddRefCompo(CompoTypeJamb, FrameCompoFile)
- ' NewCompo.refJambCompo.IsReadOnly = True
- ' Else
- ' NewCompo.refJambCompo = CurrAssembly.LeftJamb.AddRefCompo(CompoTypeJamb, FrameCompoFile)
- ' NewCompo.refJambCompo.IsReadOnly = True
- ' End If
- ' Case SIDE_TOP
- ' NewCompo.refJambCompo = CurrAssembly.TopJamb.AddRefCompo(CompoTypeJamb, FrameCompoFile)
- ' NewCompo.refJambCompo.IsReadOnly = True
- ' Case SIDE_BOTTOM
- ' NewCompo.refJambCompo = CurrAssembly.BottomJamb.AddRefCompo(CompoTypeJamb, FrameCompoFile)
- ' NewCompo.refJambCompo.IsReadOnly = True
- ' End Select
- ' Case "2"
- ' Select Case CurrCompoType.JambSide.ToLower
- ' Case SIDE_HINGE
- ' If CurrDoor.TypePart = ConstGen.PART_DO_ & "1" Then
- ' NewCompo.refJambCompo = CurrAssembly.LeftJamb.AddRefCompo(CompoTypeJamb, FrameCompoFile)
- ' NewCompo.refJambCompo.IsReadOnly = True
- ' Else
- ' NewCompo.refJambCompo = CurrAssembly.RightJamb.AddRefCompo(CompoTypeJamb, FrameCompoFile)
- ' NewCompo.refJambCompo.IsReadOnly = True
- ' End If
- ' Case SIDE_LOCK
- ' ' significa che le componenrti stanno solo sulle porte
- ' If CurrDoor.TypePart = ConstGen.PART_DO_ & "1" And Not CurrDoor.Swing.Contains(ConstGen.INACTIVE) Then
- ' NewCompo.refJambCompo = CurrAssembly.GetArrayPartDoor(1).Door.AddRefCompo(CompoTypeJamb, FrameCompoFile)
- ' NewCompo.refJambCompo.IsReadOnly = True
- ' ElseIf CurrDoor.TypePart = ConstGen.PART_DO_ & "2" And Not CurrDoor.Swing.Contains(ConstGen.INACTIVE) Then
- ' NewCompo.refJambCompo = CurrAssembly.GetArrayPartDoor(0).Door.AddRefCompo(CompoTypeJamb, FrameCompoFile)
- ' NewCompo.refJambCompo.IsReadOnly = True
- ' End If
- ' Case SIDE_TOP
- ' NewCompo.refJambCompo = CurrAssembly.TopJamb.AddRefCompo(CompoTypeJamb, FrameCompoFile)
- ' NewCompo.refJambCompo.IsReadOnly = True
- ' Case SIDE_BOTTOM
- ' NewCompo.refJambCompo = CurrAssembly.BottomJamb.AddRefCompo(CompoTypeJamb, FrameCompoFile)
- ' NewCompo.refJambCompo.IsReadOnly = True
- ' End Select
- ' End Select
-
- ' ' riabilito la costruzion del riferimnto
- ' Assembly.BuiltReffCompo = True
- 'End Sub
-
-#End Region
-
#End Region 'AddCompo
#Region "RemoveCompo"
@@ -1568,13 +1386,13 @@ Public Class Part
If String.IsNullOrWhiteSpace(Height) Then
If Not SearchKey(sLine, K_HEIGHT) Then Return -1
' altrimenti
- m_Height = OptionModule.m_Height
+ SetHeight(OptionModule.m_Height)
Part.FirstReadingEdge = True
' 50141 =Invalid expression in {0}.
' 50159 = Missing parameter in ddf!
MessageBox.Show(String.Format(EgtMsg(50141), ConstIni.K_HEIGHT_INI) & EgtMsg(50159), EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
Else
- m_Height = Height
+ SetHeight(Height)
End If
Index = NextIndex(Index)
' Thickness
diff --git a/HardwareManager/Hardware.vb b/HardwareManager/Hardware.vb
index 51a5f23..b386e31 100644
--- a/HardwareManager/Hardware.vb
+++ b/HardwareManager/Hardware.vb
@@ -7,7 +7,8 @@ Imports EgtWPFLib5
Public Class Hardware
Implements INotifyPropertyChanged
- Friend Shared FirstSelect As Boolean = True
+ Friend Shared DoRefresh As Boolean = True
+ Friend Shared FirstSelection As Boolean = True
Dim bTypeListExist As Boolean = False
Dim m_GroupChapterName As New ObservableCollection(Of String)
Dim ErrorReading As String = String.Empty
@@ -53,6 +54,7 @@ Public Class Hardware
End Get
Set(value As CompoBrandDir)
If SaveControl() = SaveResult.nCancel Then Return
+ DeleteTempFile()
If Not IsNothing(value) AndAlso Directory.Exists(value.ModelDir) Then
m_SelBrand = value
ElseIf Not IsNothing(value) AndAlso Not Directory.Exists(value.ModelDir) Then
@@ -83,9 +85,8 @@ Public Class Hardware
SelTemplate = String.Empty
End If
Else
- SelTemplate = String.Empty
+ SelTemplate = String.Empty
End If
- FirstSelect = True
NotifyPropertyChanged("SelBrand")
End Set
End Property
@@ -135,10 +136,11 @@ Public Class Hardware
End If
NotifyPropertyChanged("VisibilityType")
End If
+ FirstSelection = True
ReadChapterTemplate() ' Rileggo i parametri del SetTemplate
ReadTemplate(m_SelTemplate) ' Carico i dati del template
+ Map.refSceneManagerVM.RefreshBtn()
End If
- Map.refSceneManagerVM.RefreshBtn() ' Creo un file temporaneo per gestire la grafica
NotifyPropertyChanged("SelTemplate")
NotifyPropertyChanged("TemplateList")
ShowErrorMsg()
@@ -1026,6 +1028,7 @@ Public Class Hardware
#Region "Salvataggio, Duplica, Nuovo, Aggiorna"
Public Function Duplicate(sSelBrand As String, sTemplate As String) As Boolean
+ DoRefresh = False
If IsNothing(sTemplate) Then
' Missing name of the new template!
MessageBox.Show(EgtMsg(50174), EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Exclamation)
@@ -1081,13 +1084,14 @@ Public Class Hardware
End If
Next
' carico le variabili temporanee e aggiorno la grafica (lista dei file e Brand selezionato)
- SelBrand = m_HardwareGeneral.HardwareFolderList(IndexModel)
+ m_SelBrand = m_HardwareGeneral.HardwareFolderList(IndexModel)
TemplateList = Temp_TemplateList
NotifyPropertyChanged("TemplateList")
NotifyPropertyChanged("SelBrand")
' copio il file
Try
File.Copy(OldDirPath, CurrDirPath, True)
+ m_SelTemplate = sTemplate
Catch ex As System.IO.IOException
MessageBox.Show("Error in copying: " & ex.Message)
' interrompo la copia e la creazione
@@ -1101,10 +1105,12 @@ Public Class Hardware
If m_TemplateList(IndexTempList) = sTemplate Then SelTemplate = m_TemplateList(IndexTempList)
Next
SetLayerName(sTemplate)
+ DoRefresh = True
Return True
End Function
Public Function NewHardware(sSelBrand As String, sTemplate As String, sType As TypeHardware) As Boolean
+ DoRefresh = False
' ricostruico il percorso del file nuovo
Dim ModelDir As String = String.Empty
ModelDir = String.Empty
@@ -1189,13 +1195,12 @@ Public Class Hardware
Map.refProjectManagerHardwareVM.IsModified = False
RefreshTemplateListEgtDOORCreator()
-
- TemplateList.Add(sTemplate)
+ 'TemplateList.Add(sTemplate)
For IndexTempList As Integer = 0 To m_TemplateList.Count - 1
' aggiorno la grafica con il valore selzionato tra i template
If m_TemplateList(IndexTempList) = sTemplate Then SelTemplate = m_TemplateList(IndexTempList)
Next
-
+ DoRefresh = True
Return True
End Function
@@ -1573,6 +1578,7 @@ Public Class Hardware
End Function
Public Function DeleteHardware() As Boolean
+ DoRefresh = False
DeleteGeometry()
Dim CurrDirPath As String = CurrPath()
BackupDeletingFile(CurrDirPath)
@@ -1596,6 +1602,7 @@ Public Class Hardware
Catch ex As Exception
End Try
End If
+ DoRefresh = True
RefreshTemplateListEgtDOORCreator()
NotifyPropertyChanged("TemplateList")
Return True
@@ -1607,8 +1614,8 @@ Public Class Hardware
For Each Param In Compo.CompoParamList
If Param.DDFName.Contains(".CGF") And TypeOf Param Is TextBoxNgeParam Then
Dim Text As TextBoxNgeParam = DirectCast(Param, TextBoxNgeParam)
- If Not IsNothing(Text.Value) Then
- sGeometryName = Path.GetDirectoryName(Me.CurrPath) & "/" & Text.Value
+ If Not String.IsNullOrWhiteSpace(Text.Value) Then
+ sGeometryName = Path.GetDirectoryName(Me.CurrPath) & "\" & Text.Value
BackupDeletingFile(sGeometryName)
If File.Exists(sGeometryName) Then
Try
diff --git a/My Project/AssemblyInfo.vb b/My Project/AssemblyInfo.vb
index 1f54a99..6a03745 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/SceneManager/SceneManagerVM.vb b/SceneManager/SceneManagerVM.vb
index 76d2150..b7d6fde 100644
--- a/SceneManager/SceneManagerVM.vb
+++ b/SceneManager/SceneManagerVM.vb
@@ -268,10 +268,6 @@ Public Class SceneManagerVM
End Get
End Property
- '''
- ''' Execute the refresh. This method is invoked by the RefreshBtnCommand.
- '''
- '''
Friend Shared nComposeAssembly As Integer = 1
Public Sub RefreshBtn()
' definisco e rimuovo file temporaneo di assemblato
@@ -304,6 +300,7 @@ Public Class SceneManagerVM
EgtDraw()
ShowGraphicError()
ElseIf Map.refMainWindowVM.SelectedPage = MainWindowVM.ListPageEnum.nHardwarePage Then
+ If Not Hardware.DoRefresh Then Return
If Not IsNothing(Map.refHardwarePageVM.CurrHardware) Then
Map.refHardwarePageVM.CurrHardware.RefreshTempHardware()
End If
@@ -330,20 +327,20 @@ Public Class SceneManagerVM
End If
Next
End If
- If Hardware.FirstSelect Then
+ If Hardware.FirstSelection Then
Select Case sSide.ToLower
Case SIDE_HINGE
- EgtSetView(VT.ISO_SE)
+ EgtSetView(VT.ISO_SE, False)
Case SIDE_LOCK
- EgtSetView(VT.ISO_SW)
+ EgtSetView(VT.ISO_SW, False)
Case SIDE_TOP
- EgtSetView(VT.ISO_NW)
+ EgtSetView(VT.ISO_NW, False)
Case SIDE_BOTTOM
- EgtSetView(VT.ISO_SW)
+ EgtSetView(VT.ISO_SW, False)
End Select
- Hardware.FirstSelect = False
+ Hardware.FirstSelection = False
End If
- EgtZoomObject(nCurrObject)
+ EgtZoomObject(nCurrObject, True)
ShowGraphicError()
Return
End If
@@ -351,7 +348,7 @@ Public Class SceneManagerVM
Next
Next
End If
- ExecDoors(m_ProjectScene, sTempFile)
+ ExecDoors(m_ProjectScene, sTempFile, False)
ShowGraphicError()
End If
End Sub