diff --git a/Constants/ConstCompo.vb b/Constants/ConstCompo.vb
index 1021a2c..a7531fb 100644
--- a/Constants/ConstCompo.vb
+++ b/Constants/ConstCompo.vb
@@ -44,6 +44,7 @@ Module ConstCompo
Public Const K_HEIGHT As String = "height"
Public Const K_THICKNESS As String = "thickness"
Public Const K_SWING As String = "swing"
+ Public Const K_WEIGHT As String = "weight"
Public Const K_SECURE As String = "secure"
Public Const K_PROFILES As String = "profiles"
Public Const K_LOCKEDGE As String = "lockedge"
diff --git a/Constants/ConstIni.vb b/Constants/ConstIni.vb
index 629cf5d..25ab341 100644
--- a/Constants/ConstIni.vb
+++ b/Constants/ConstIni.vb
@@ -41,6 +41,8 @@ Module ConstIni
Public Const K_WIDTH_INI As String = "Width"
Public Const K_HEIGHT_INI As String = "Height"
Public Const K_THICKNESS_INI As String = "Thickness"
+ Public Const K_WEIGHT_INI As String = "Weight"
+ Public Const K_WEIGHTISCHECKED_INI As String = "WeightIsChecked"
Public Const K_SWING_LIST_INI As String = "SwingList"
Public Const K_SWING_INI As String = "Swing"
diff --git a/DdfFile.vb b/DdfFile.vb
index 0f59ad6..c86e648 100644
--- a/DdfFile.vb
+++ b/DdfFile.vb
@@ -14,7 +14,8 @@ Friend Module DdfFile
#Region "SCRITTURA DDF"
'genero le stringhe che dovranno essere scritte nel DDF
- Friend Sub WriteDDF(Door As Door, sPath As String)
+ ' !!! attenzione !!! tutte le volte che stampo sul file di CurrDoor.ddf la variabile booelana DEVE essere settata su True
+ Friend Sub WriteDDF(Door As Door, sPath As String, bIsDDf As Boolean)
' Door = DirectCast(m_rfMainWindowViewModel.DoorParameters.DataContext, DoorParametersViewModel).CurrDoor
' pulisco lista prima di iniziare a scrivere
Dim DdfFileContent As New List(Of String)
@@ -64,11 +65,20 @@ Friend Module DdfFile
Return
End If
DdfFileContent.Add(ConstCompo.K_SPACE3 & ConstCompo.K_THICKNESS & ": " & DoubleToString(dVal, 5))
+ ' aggiungo il peso della porta
+ If Door.IsCheckedWeight = Visibility.Visible Then
+ If Not StringToDouble(Door.Weight, dVal) Then
+ MessageBox.Show(EgtMsg(50106) & K_WEIGHT, EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
+ Return
+ End If
+ DdfFileContent.Add(ConstCompo.K_SPACE3 & ConstCompo.K_WEIGHT & ": " & Door.Weight)
+ End If
' aggiungo una riga vuota per separare la lista successiva
DdfFileContent.Add("")
DdfFileContent.Add("" & ConstCompo.K_SWING & ": " & Door.Swing)
' aggiungo una riga vuota per separare la lista successiva
DdfFileContent.Add("")
+
' aggiungo il secure nullo al DDF
DdfFileContent.Add("" & ConstCompo.K_SECURE & ": " & "0")
' aggiungo una riga vuota per separare la lista successiva
@@ -104,7 +114,7 @@ Friend Module DdfFile
DdfFileContent.Add(ConstCompo.K_SPACE5 & ConstCompo.K_OVERMATERAL & ": " & DoubleToString(dVal, 5))
' Riordino e stampo le compo
- SearchCompo(DdfFileContent, Door)
+ SearchCompo(DdfFileContent, Door, bIsDDf)
If Not Directory.Exists(Path.GetDirectoryName(sPath)) Then
Directory.CreateDirectory(Path.GetDirectoryName(sPath))
End If
@@ -112,7 +122,7 @@ Friend Module DdfFile
End Sub
' stampa le compo seguedo l'ordine della lista delle componenti del ddf
- Public Sub SearchCompo(DdfFileContent As List(Of String), ByRef Door As Door)
+ Public Sub SearchCompo(DdfFileContent As List(Of String), ByRef Door As Door, bIsDDf As Boolean)
Dim NewCompoNameDDF = False
Dim WritingError As String = String.Empty
' cerco la prima componente da aggiungere alla lista delle componenti
@@ -128,7 +138,7 @@ Friend Module DdfFile
DdfFileContent.Add("")
End If
' Carico nella lista dei componenti la lista di stringhe da stampare
- DdfFileContent.AddRange(GenerateCompolistDDF(Door.CompoList(Index2), WritingError, NewCompoNameDDF))
+ DdfFileContent.AddRange(GenerateCompolistDDF(Door.CompoList(Index2), WritingError, NewCompoNameDDF, bIsDDF))
End If
NewCompoNameDDF = False
Next
@@ -140,7 +150,7 @@ Friend Module DdfFile
End Sub
'Genero la lista di parametri di ogni compo che vedo a video
- Public Function GenerateCompolistDDF(Compo As Compo, ByRef sErrorList As String, bNewCompoNameDDF As Boolean) As List(Of String)
+ Public Function GenerateCompolistDDF(Compo As Compo, ByRef sErrorList As String, bNewCompoNameDDF As Boolean, bIsDDF As Boolean) As List(Of String)
Dim CompoListDDF As New List(Of String)
' se il nome non esiste ancora nella lista lo aggiungo
If Not bNewCompoNameDDF Then
@@ -182,8 +192,13 @@ Friend Module DdfFile
If DirectCast(CurrCompoParam, TextBoxOnOffParam).ToolTipValue = EgtMsg(50143) Then
If Not String.IsNullOrEmpty(sErrorList) Then sErrorList &= Environment.NewLine
sErrorList &= String.Format(EgtMsg(50141), DirectCast(CurrCompoParam, TextBoxOnOffParam).Name, CurrCompoParam.DDFName)
+ CompoListDDF.Add(K_SPACE5 & DirectCast(CurrCompoParam, TextBoxOnOffParam).DDFName & ": ")
Else
- CompoListDDF.Add(K_SPACE5 & DirectCast(CurrCompoParam, TextBoxOnOffParam).DDFName & ": " & DirectCast(CurrCompoParam, TextBoxOnOffParam).ToolTipValue)
+ If bIsDDF Then
+ CompoListDDF.Add(K_SPACE5 & DirectCast(CurrCompoParam, TextBoxOnOffParam).DDFName & ": " & DirectCast(CurrCompoParam, TextBoxOnOffParam).ToolTipValue)
+ Else
+ CompoListDDF.Add(K_SPACE5 & DirectCast(CurrCompoParam, TextBoxOnOffParam).DDFName & ": " & DirectCast(CurrCompoParam, TextBoxOnOffParam).Value)
+ End If
End If
ElseIf Not String.IsNullOrWhiteSpace(DirectCast(CurrCompoParam, TextBoxOnOffParam).ToolTipValue) AndAlso Not DirectCast(CurrCompoParam, TextBoxOnOffParam).IsActive Then
' non restituire nessun tipo di errore
@@ -195,8 +210,13 @@ Friend Module DdfFile
If DirectCast(CurrCompoParam, TextBoxParam).ToolTipValue = EgtMsg(50143) Then
If Not String.IsNullOrEmpty(sErrorList) Then sErrorList &= Environment.NewLine
sErrorList &= String.Format(EgtMsg(50141), DirectCast(CurrCompoParam, TextBoxParam).Name, CurrCompoParam.DDFName)
+ CompoListDDF.Add(K_SPACE5 & DirectCast(CurrCompoParam, TextBoxParam).DDFName & ": ")
Else
- CompoListDDF.Add(K_SPACE5 & DirectCast(CurrCompoParam, TextBoxParam).DDFName & ": " & DirectCast(CurrCompoParam, TextBoxParam).ToolTipValue)
+ If bIsDDF Then
+ CompoListDDF.Add(K_SPACE5 & DirectCast(CurrCompoParam, TextBoxParam).DDFName & ": " & DirectCast(CurrCompoParam, TextBoxParam).ToolTipValue)
+ Else
+ CompoListDDF.Add(K_SPACE5 & DirectCast(CurrCompoParam, TextBoxParam).DDFName & ": " & DirectCast(CurrCompoParam, TextBoxParam).Value)
+ End If
End If
Else
If Not String.IsNullOrEmpty(sErrorList) Then sErrorList &= Environment.NewLine
diff --git a/DoorManager/DoorManagerViewModel.vb b/DoorManager/DoorManagerViewModel.vb
index 785e429..9743772 100644
--- a/DoorManager/DoorManagerViewModel.vb
+++ b/DoorManager/DoorManagerViewModel.vb
@@ -38,7 +38,8 @@ Public Class DoorManagerViewModel
' 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
- DdfFile.WriteDDF(DoorParametersViewModel.CurrDoor, IniFile.m_sTempDir & "\CurrDoor.ddf")
+ ' è 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
@@ -55,7 +56,7 @@ Public Class DoorManagerViewModel
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)
+ DdfFile.WriteDDF(DoorParametersViewModel.CurrDoor, m_SelectedDoor, True)
DirectCast(m_rfMainWindowViewModel.DoorParameters.DataContext, DoorParametersViewModel).bSetChange = False
End If
End If
@@ -76,6 +77,7 @@ Public Class DoorManagerViewModel
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
@@ -94,9 +96,9 @@ Public Class DoorManagerViewModel
' 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")
+ 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)
+ 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
@@ -111,7 +113,7 @@ Public Class DoorManagerViewModel
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")
+ 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
@@ -302,7 +304,7 @@ Public Class DoorManagerViewModel
MessageBox.Show(String.Format(EgtMsg(50117), RemoveDoorName), EgtMsg(50118), MessageBoxButton.OK, MessageBoxImage.Information)
Else
' altrimenti salvo il file
- DdfFile.WriteDDF(DirectCast(m_rfMainWindowViewModel.DoorParameters.DataContext, DoorParametersViewModel).CurrDoor, m_SelectedDoor)
+ DdfFile.WriteDDF(DirectCast(m_rfMainWindowViewModel.DoorParameters.DataContext, DoorParametersViewModel).CurrDoor, m_SelectedDoor, True)
End If
End If
End Sub
diff --git a/DoorParameters/Compo.vb b/DoorParameters/Compo.vb
index 9929d73..e711cf3 100644
--- a/DoorParameters/Compo.vb
+++ b/DoorParameters/Compo.vb
@@ -1076,7 +1076,7 @@ Public Class TextBoxParam
If StringToDouble(Value, dValue) Then
Return DoubleToString(dValue, 4)
Else
- Return "Invalid Expression"
+ Return EgtMsg(50143)
End If
End Get
diff --git a/DoorParameters/Door.vb b/DoorParameters/Door.vb
index f686231..bcc39da 100644
--- a/DoorParameters/Door.vb
+++ b/DoorParameters/Door.vb
@@ -124,7 +124,7 @@ Public Class Door
#Region "Size"
- Public m_Height As String
+ Private m_Height As String
Public Property Height As String
Get
Return m_Height
@@ -182,6 +182,49 @@ Public Class Door
End Set
End Property
+ Private m_Weight As String
+ Public Property Weight As String
+ Get
+ If String.IsNullOrEmpty(m_Weight) Then
+ m_Weight = OptionModule.m_Weight
+ m_IsModifyDoor = True
+ End If
+ Return m_Weight
+ End Get
+ Set(value As String)
+ Dim dVal As Double
+ If StringToDouble(value, dVal) Then
+ m_Weight = value
+ Else
+ MessageBox.Show("Invalid Value", "Error", MessageBoxButton.OK, MessageBoxImage.Asterisk)
+ End If
+ m_IsModifyDoor = True
+ SetTitle()
+ End Set
+ End Property
+
+ Private Shared m_IsCheckedWeight As Visibility
+ Public Shared Property IsCheckedWeight As Visibility
+ Get
+ Return m_IsCheckedWeight
+ End Get
+ Set(value As Visibility)
+ m_IsCheckedWeight = value
+ End Set
+ End Property
+
+ Public Property VisibilityWeight As Visibility
+ Get
+ Return m_IsCheckedWeight
+ End Get
+ Set(value As Visibility)
+ m_IsCheckedWeight = value
+ m_IsModifyDoor = True
+ SetTitle()
+ NotifyPropertyChanged("VisibilityWeight")
+ End Set
+ End Property
+
Private m_Swing As String = Nothing
Public Property Swing As String
Get
@@ -296,9 +339,6 @@ Public Class Door
End Get
Set(value As Boolean)
m_TopMachining = value
- 'If SetChange <> 0 Then
- ' SetChange += 1
- 'End If
m_IsModifyDoor = True
End Set
End Property
@@ -401,9 +441,6 @@ Public Class Door
Else
MessageBox.Show("Invalid Value", "Error", MessageBoxButton.OK, MessageBoxImage.Asterisk)
End If
- 'If SetChange <> 0 Then
- ' SetChange += 1
- 'End If
m_IsModifyDoor = True
SetTitle()
End Set
@@ -679,6 +716,22 @@ Public Class Door
Else
Exit For
End If
+
+ ' leggo il peso della porta
+ If LineIndex < ReadDoor.FileContent.Count - 1 Then
+ If ReadDoor.SearchKey(ReadDoor.FileContent(LineIndex), K_WEIGHT) Then
+ LineIndex = ReadDoor.GetWeight(LineIndex)
+ If LineIndex = -1 Then
+ InvalidValue += String.Format(EgtMsg(50102), K_WEIGHT + vbCrLf)
+ ' assegno una porta vuota ed esco dal ciclo
+ ReadDoor = Nothing
+ Exit For
+ End If
+ End If
+ Else
+ Exit For
+ End If
+
' swing
If LineIndex < ReadDoor.FileContent.Count - 1 Then
If ReadDoor.SearchKey(ReadDoor.FileContent(LineIndex), K_SWING) Then
@@ -739,9 +792,23 @@ Public Class Door
MessageBox.Show(InvalidValue, EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
Else
If Not bSecure Then
- DdfFile.WriteDDF(ReadDoor, sPathDDF)
+ DdfFile.WriteDDF(ReadDoor, sPathDDF, True)
End If
+ If String.IsNullOrEmpty(ReadDoor.m_Weight) Then
+ If m_IsCheckedWeight = Visibility.Visible Then
+ ' se il valore è acceso ma non è presente nel ddf chiedo se spegnere
+ If MessageBox.Show("Caution: Weight is setted in OptionPage. Do you want to remove?", "Question", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.Yes) = MessageBoxResult.Yes Then
+ ' decido di spegnere
+ OptionsViewModel.IsCheckedWeight = False
+ Else
+ ' decido di accendere
+ OptionsViewModel.IsCheckedWeight = True
+ ReadDoor.m_Weight = OptionModule.m_Weight
+ ReadDoor.VisibilityWeight = Visibility.Visible
+ End If
+ End If
End If
+ End If
End Sub
' restituice la riga scommentata
@@ -797,6 +864,7 @@ Public Class Door
End Function
#Region "Carica il General della porta"
+
' Leggo l'unità di misura
Public Function GetMeasure(Index As Integer) As Integer
Dim Measure As String = SearchKeyValue(FileContent(Index), K_MEASURES)
@@ -956,6 +1024,70 @@ Public Class Door
Return Index
End Function
+ ' carico il valore del peso
+ Public Function GetWeight(Index As Integer) As Integer
+ ' se sono arrivato fino a qui significa che è stato scritto nel ddf
+ Dim Weight As String = SearchKeyValue(FileContent(Index), K_WEIGHT)
+ ' se il valore restituito è nullo o vuoto
+ If String.IsNullOrWhiteSpace(Weight) Then
+ ' se non c'è la parola chiave significa che il valore è spento
+ If Not SearchKey(FileContent(Index), K_WEIGHT) Then
+ ' confronto con il dato che è stato salvato nell'option page, se il valore è acceso
+ If m_IsCheckedWeight = Visibility.Visible Then
+ ' se il valore è acceso ma non è presente nel ddf chiedo se spegnere
+ If MessageBox.Show("Caution: Weight is setted in OptionPage. Do you want to remove?", "Question", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.Yes) = MessageBoxResult.Yes Then
+ ' decido di spegnere
+ OptionsViewModel.IsCheckedWeight = False
+ Else
+ ' decido di accendere
+ OptionsViewModel.IsCheckedWeight = True
+ m_Weight = OptionModule.m_Weight
+ ' questo richiamo serve per avvisare che il ddf sta cambiando forma
+ VisibilityWeight = Visibility.Visible
+ End If
+ End If
+
+ ' se la parola chiave esiste ma non è associato nessun valore
+ Else
+ If m_IsCheckedWeight = Visibility.Collapsed Then
+ If MessageBox.Show("Caution: Weight is setted in DDF. Do you want to add?", "Question", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.Yes) = MessageBoxResult.Yes Then
+ ' decido di accendere
+ OptionsViewModel.IsCheckedWeight = True
+ m_Weight = OptionModule.m_Weight
+ Else
+ ' decido di spegnere
+ OptionsViewModel.IsCheckedWeight = False
+ ' questo richiamo serve ad avvisare che sta avvenendo un cambiamento nel ddf
+ VisibilityWeight = Visibility.Collapsed
+ End If
+ Else
+ ' valore è acceso quindi posso salvarlo direttamente
+ m_Weight = OptionModule.m_Weight
+ End If
+ End If
+
+ ' se il valore esiste Weight
+ Else
+ If m_IsCheckedWeight = Visibility.Collapsed Then
+ If MessageBox.Show("Caution: Weight is setted in DDF. Do you want to add?", "Question", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.Yes) = MessageBoxResult.Yes Then
+ ' decido di accendere
+ m_IsCheckedWeight = Visibility.Visible
+ OptionsViewModel.IsCheckedWeight = True
+ m_Weight = Weight
+ Else
+ ' decido di spegnere
+ m_IsCheckedWeight = Visibility.Collapsed
+ End If
+ Else
+ ' valore è acceso quindi posso salvarlo direttamente
+ m_Weight = Weight
+ End If
+ End If
+ Index += 1
+ ' restituisco la riga successiva all'ultimo valore letto
+ Return Index
+ End Function
+
' carico valori swing
Public Function GetSwing(Index As Integer) As Integer
Dim Swing As String = SearchKeyValue(FileContent(Index), K_SWING)
@@ -1197,7 +1329,6 @@ Public Class Door
If SearchScore(FileContent(Index)) Then
' leggo il valore del template e lo assegno alla componente che sto generando
' attenzione: devo passare anche il nome del parametro da cercare; per ora posso avere "template" o "shape" come parola chiave
- 'm_CurrCompo.TemplateSelItem = SearchKeyValue(FileContent(Index), SearchTemplate(FileContent(Index)))
m_CurrCompo.SetTemplateSelItem(SearchKeyValue(FileContent(Index), SearchTemplate(FileContent(Index))))
' se il template non ha nessun nome
If String.IsNullOrWhiteSpace(m_CurrCompo.TemplateSelItem) Then
diff --git a/DoorParameters/DoorParametersView.xaml b/DoorParameters/DoorParametersView.xaml
index a211540..e1a743d 100644
--- a/DoorParameters/DoorParametersView.xaml
+++ b/DoorParameters/DoorParametersView.xaml
@@ -60,22 +60,35 @@
Margin="2,0,0,2"/>
+ Margin="0.4,2,39.6,3.2" VerticalAlignment="Stretch" Height="Auto"/>
+ Margin="0.4,2,39.6,3.2" VerticalAlignment="Stretch" Height="Auto"/>
-
+
+
+
+
+
+
+
-
-
+
+
diff --git a/OptionsWindow/OptionModule.vb b/OptionsWindow/OptionModule.vb
index 1fd0e44..cd61c9b 100644
--- a/OptionsWindow/OptionModule.vb
+++ b/OptionsWindow/OptionModule.vb
@@ -29,6 +29,7 @@ Friend Module OptionModule
Friend m_Width As String
Friend m_Height As String
Friend m_Thickness As String
+ Friend m_Weight As String
Friend m_SwingTypeList As New List(Of String)
Friend m_Swing As String
Friend m_StaticEdgeTypeList As New ObservableCollection(Of String)
@@ -122,6 +123,12 @@ Friend Module OptionModule
Dim Swing As String = String.Empty
DefaultGetPrivateProfileString(S_SIZE, K_SWING_INI, "", Swing)
m_Swing = Swing
+ Dim Weight As String = String.Empty
+ DefaultGetPrivateProfileString(S_SIZE, K_WEIGHT_INI, "", Weight)
+ m_Weight = Weight
+ Dim WeightVisibility As Visibility = Visibility.Collapsed
+ DefaultGetPrivateProfilesVisibility(S_SIZE, K_WEIGHTISCHECKED_INI, WeightVisibility)
+ Door.IsCheckedWeight = WeightVisibility
' carico il valori associati al tipo di spigolo
Dim EdgeTypeList As New ObservableCollection(Of String)
@@ -132,6 +139,7 @@ Friend Module OptionModule
m_StaticEdgeTypeList = EdgeTypeList
OptionsViewModel.CreateEdgeTypeList()
+ ' carico i valori associati agli spigoli
Dim LockEdgeType As String = String.Empty
DefaultGetPrivateProfileString(S_EDGE, K_LOCKEDGE, "", LockEdgeType)
For Index = 0 To OptionsViewModel.EdgeTypeList.Count - 1
diff --git a/OptionsWindow/OptionsView.xaml b/OptionsWindow/OptionsView.xaml
index 86fff97..046b075 100644
--- a/OptionsWindow/OptionsView.xaml
+++ b/OptionsWindow/OptionsView.xaml
@@ -85,6 +85,29 @@
Style="{StaticResource DoorParamsCmBx}"
Margin="5,0,30,5"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+