diff --git a/Application.xaml.vb b/Application.xaml.vb
index ea74b1e..bd3067b 100644
--- a/Application.xaml.vb
+++ b/Application.xaml.vb
@@ -195,10 +195,6 @@ Class Application
' ToolsDbPage messages
Friend Const REMOVETOOL As String = "RemoveTool"
- Friend Const ERRORONTOOL As String = "ErrorOnTool"
-
- ' MachiningsDbPage messages
- Friend Const ERRORONMACHINING As String = "ErrorOnMachining"
' TopCommandBar
Friend Const NEWPROJECT As String = "NewProject"
diff --git a/Constants/ConstMachIni.vb b/Constants/ConstMachIni.vb
index 376716f..d37201c 100644
--- a/Constants/ConstMachIni.vb
+++ b/Constants/ConstMachIni.vb
@@ -49,6 +49,8 @@
Public Const S_FIXTURES As String = "Fixtures"
+ Public Const S_HEADS As String = "Heads"
+
Public Const S_SETUP As String = "SetUp"
Public Const K_DEFAULT As String = "Default"
diff --git a/MachiningsDbWindow/MachiningTreeView.vb b/MachiningsDbWindow/MachiningTreeView.vb
index 9d92c5a..d5efaac 100644
--- a/MachiningsDbWindow/MachiningTreeView.vb
+++ b/MachiningsDbWindow/MachiningTreeView.vb
@@ -1685,6 +1685,10 @@ Public Class MachiningTreeViewItem
EgtMdbGetCurrMachiningParam(MCH_MP.USERNOTES, UserNotes)
End Sub
+ Friend Sub ReadMachiningName()
+ EgtMdbGetCurrMachiningParam(MCH_MP.NAME, NamePar)
+ End Sub
+
Private Sub ReadSelectedTool()
ReadTool = True
Dim sValue As String = String.Empty
@@ -1849,13 +1853,23 @@ Public Class MachiningTreeViewItem
Return bOk
End Function
+ Private Function GetErrorString(propertyName As String) As String
+ Select Case propertyName
+ Case "NamePar"
+ Return m_NameError
+ Case "Speed"
+ Return m_SpeedError
+ End Select
+ Return String.Empty
+ End Function
+
'''
''' Returns true if this object has no validation errors.
'''
Public ReadOnly Property IsValid() As Boolean
Get
For Each [property] As String In ValidatedProperties
- If Not GetValidationError([property]) Then
+ If Not String.IsNullOrEmpty(GetErrorString([property])) Then
Return False
End If
Next [property]
diff --git a/MachiningsDbWindow/MachiningsDbView.xaml b/MachiningsDbWindow/MachiningsDbView.xaml
index 1a5ce09..6efade0 100644
--- a/MachiningsDbWindow/MachiningsDbView.xaml
+++ b/MachiningsDbWindow/MachiningsDbView.xaml
@@ -154,19 +154,6 @@
-
-
diff --git a/MachiningsDbWindow/MachiningsDbViewModel.vb b/MachiningsDbWindow/MachiningsDbViewModel.vb
index 653c3d8..019b64c 100644
--- a/MachiningsDbWindow/MachiningsDbViewModel.vb
+++ b/MachiningsDbWindow/MachiningsDbViewModel.vb
@@ -376,6 +376,8 @@ Namespace EgtCAM5
#End Region ' Constructor
+#Region "METHODS"
+
Private Sub IsEnabledBtns(bIsEnabledNewBtn As Boolean, bIsEnabledSaveBtn As Boolean, bIsEnabledDeleteBtn As Boolean)
m_IsEnabledNewBtn = bIsEnabledNewBtn
m_IsEnabledSaveBtn = bIsEnabledSaveBtn
@@ -392,7 +394,6 @@ Namespace EgtCAM5
Next
End Sub
-
'''
''' Method that search the machines in the correct folder and add to the MachinesList those valid.
'''
@@ -416,6 +417,9 @@ Namespace EgtCAM5
End If
End Sub
+#End Region ' Methods
+
+#Region "COMMANDS"
#Region "NewCommand"
@@ -464,7 +468,7 @@ Namespace EgtCAM5
MachiningFamily.Items.Add(NewMachiningItem)
EgtMdbSaveCurrMachining()
NewMachiningItem.NewMachining = True
- ' Reimposto ll lavorazione vecchia nel Db per deselezionarla e fare le verifiche correttamente
+ ' Reimposto la lavorazione vecchia nel Db per deselezionarla e fare le verifiche correttamente
EgtMdbSetCurrMachining(MachiningCopied.Name)
MachiningCopied.IsSelected = False
MachiningCopied.NotifyPropertyChanged("IsSelected")
@@ -504,8 +508,7 @@ Namespace EgtCAM5
EgtMdbSaveCurrMachining()
CurrMachining.NewMachining = False
CurrMachining.IsModifiedReset()
- m_IsEnabledSaveBtn = False
- OnPropertyChanged("IsEnabledSaveBtn")
+ IsEnabledBtns(CurrMachining.IsValid And Not CurrMachining.IsModified, False, True)
End Sub
#End Region ' SaveCommand
@@ -580,6 +583,7 @@ Namespace EgtCAM5
Dim MachiningToReload As MachiningTreeViewItem = DirectCast(param, MachiningTreeViewItem)
EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
MachiningToReload.ReadMachiningParam()
+ MachiningToReload.ReadMachiningName()
MachiningToReload.IsModifiedReset()
End If
End Sub
@@ -628,6 +632,7 @@ Namespace EgtCAM5
End Select
End If
Else
+ MessageBox.Show("Utensile non valido, correggerlo o cancellarlo prima di uscire.", "ERRORE")
Return
End If
End If
@@ -650,6 +655,8 @@ Namespace EgtCAM5
#End Region ' CloseMachiningDbCommand
+#End Region ' Commands
+
End Class
End Namespace
\ No newline at end of file
diff --git a/My Project/AssemblyInfo.vb b/My Project/AssemblyInfo.vb
index 90ebcb9..4a8eef9 100644
--- a/My Project/AssemblyInfo.vb
+++ b/My Project/AssemblyInfo.vb
@@ -70,5 +70,5 @@ Imports System.Windows
' by using the '*' as shown below:
'
-
-
+
+
diff --git a/ProjectPage/DbPanel/DbPanelViewModel.vb b/ProjectPage/DbPanel/DbPanelViewModel.vb
index 9c0ae01..5e1ae88 100644
--- a/ProjectPage/DbPanel/DbPanelViewModel.vb
+++ b/ProjectPage/DbPanel/DbPanelViewModel.vb
@@ -65,7 +65,7 @@ Namespace EgtCAM5
'''
Public Sub ToolDb(ByVal param As Object)
Dim ToolDbWindow As New ToolsDbView
- ToolDbWindow.Height = 614
+ ToolDbWindow.Height = 640
ToolDbWindow.Width = 1024
ToolDbWindow.DataContext = New ToolsDbViewModel
ToolDbWindow.Owner = Application.Current.MainWindow
diff --git a/ProjectPage/OptionPanel/MachiningOptionPanel/OperationExpander/MachiningParameterExpander/MachiningParameterExpanderViewModel.vb b/ProjectPage/OptionPanel/MachiningOptionPanel/OperationExpander/MachiningParameterExpander/MachiningParameterExpanderViewModel.vb
index 28c1b77..3c0be9e 100644
--- a/ProjectPage/OptionPanel/MachiningOptionPanel/OperationExpander/MachiningParameterExpander/MachiningParameterExpanderViewModel.vb
+++ b/ProjectPage/OptionPanel/MachiningOptionPanel/OperationExpander/MachiningParameterExpander/MachiningParameterExpanderViewModel.vb
@@ -2211,6 +2211,8 @@ Namespace EgtCAM5
#End Region ' Messages
+#Region "METHODS"
+
Private Sub ReadMachiningParam()
Dim nValue As Integer = 0
Dim dValue As Double = 0
@@ -2700,13 +2702,21 @@ Namespace EgtCAM5
End If
End Sub
+#End Region ' Commands
+
' Definizione comando
Private m_cmdUpdateMachining As ICommand
+#Region "CONSTRUCTOR"
+
Sub New(ByRef m_UpdateParamValues As Action)
m_UpdateParamValues = AddressOf ReadMachiningParam
End Sub
+#End Region ' Constructor
+
+#Region "COMMANDS"
+
#Region "UpdateMachiningCommand"
'''
@@ -2751,7 +2761,7 @@ Namespace EgtCAM5
ModifiedGeometry = True
EgtSetMachiningGeometry(SelectedGeometry.ToArray, SubEntityArray)
End If
- ' Gestione standard per curve
+ ' Gestione standard per curve
Else
' Verifico se la geometria è cambiata, confrontando selezione attuale con geometria di lavorazione
Dim CountIndex As Integer = 0
@@ -2786,6 +2796,8 @@ Namespace EgtCAM5
#End Region ' UpdateMachiningCommand
+#End Region ' Commands
+
Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
Public Sub NotifyPropertyChanged(propName As String)
diff --git a/SetUpWindow/SetUpViewModel.vb b/SetUpWindow/SetUpViewModel.vb
index ec33d51..abb8bdd 100644
--- a/SetUpWindow/SetUpViewModel.vb
+++ b/SetUpWindow/SetUpViewModel.vb
@@ -310,7 +310,6 @@ Namespace EgtCAM5
' se ci sono almeno due elementi sono sicuro che ci sia la H
If sItems.Count >= 2 Then
sHead = sItems(1)
- ''m_PositionGroupList(nGroup - 1).PositionList.Add(New Position(sTcPos, sHead, EgtGetHeadExitCount(sHead)))
' se ci sono almeno tre elementi sono sicuro che ci sia almeno un'uscita attrezzata
If sItems.Count >= 3 Then
' separo le uscite divise dalla ,
@@ -663,7 +662,7 @@ Namespace EgtCAM5
OpenFileDialogView.Filter = "*.stu"
OpenFileDialogView.Directory = sDir
OpenFileDialogView.FileName = String.Empty
- If Not OpenFileDialogView.ShowDialog Then
+ If Not OpenFileDialogView.EgtShowDialog Then
Return
End If
sPath = OpenFileDialogView.FileName
diff --git a/ToolsDbWindow/ToolTreeView.vb b/ToolsDbWindow/ToolTreeView.vb
index 9a92705..f8f2f6d 100644
--- a/ToolsDbWindow/ToolTreeView.vb
+++ b/ToolsDbWindow/ToolTreeView.vb
@@ -1,11 +1,15 @@
Imports System.ComponentModel
Imports System.IO
+Imports System.Collections.ObjectModel
Imports System.Text.RegularExpressions
Imports EgtUILib
Public Class FamilyToolTreeViewItem
Inherits InheritableTreeViewItem
+ ' Actions
+ Friend Shared m_delIsEnabledBtns As Action(Of Boolean, Boolean, Boolean)
+
Public Overrides Property IsSelected As Boolean
Get
Return m_IsSelected
@@ -21,6 +25,9 @@ Public Class FamilyToolTreeViewItem
EgtZoom(ZM.ALL)
EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
End If
+ If value Then
+ m_delIsEnabledBtns(True, False, False)
+ End If
End If
NotifyPropertyChanged("IsSelected")
End If
@@ -57,7 +64,11 @@ End Class
Public Class ToolTreeViewItem
Inherits InheritableTreeViewItem
- Implements IDataErrorInfo
+
+ ' Actions
+ Friend Shared m_delRemoveTool As Action(Of ToolTreeViewItem)
+ Friend Shared m_delErrorOnTool As Action(Of Boolean)
+ Friend Shared m_delIsEnabledBtns As Action(Of Boolean, Boolean, Boolean)
#Region "Tool Property"
@@ -65,22 +76,6 @@ Public Class ToolTreeViewItem
' (utile per evitare di rifare il disegno più volte quando vengono caricati i parametri alla selezione di un utensile)
Private m_SuspendToolDrawUpdate As Boolean = False
- Private m_ErrorOnTool As Boolean
- Public Property ErrorOnTool As Boolean
- Get
- Return m_ErrorOnTool
- End Get
- Set(value As Boolean)
- If IsValid Then
- m_ErrorOnTool = False
- Application.Msn.NotifyColleagues(Application.ERRORONTOOL, Nothing)
- Else
- m_ErrorOnTool = True
- Application.Msn.NotifyColleagues(Application.ERRORONTOOL, Me)
- End If
- End Set
- End Property
-
' Variabile che indica se l'utensile è appena stato creato
Dim m_NewTool As Boolean = False
Public Property NewTool As Boolean
@@ -108,6 +103,7 @@ Public Class ToolTreeViewItem
ReadToolParam()
IsModifiedReset()
NotifyPropertyChanged("Type")
+ m_delIsEnabledBtns(IsValid And Not IsModified, IsValid And (IsModified Or NewTool), True)
Else
WriteToolParam()
If EgtTdbIsCurrToolModified() Or m_IsModifiedName Or Me.NewTool Then
@@ -120,10 +116,9 @@ Public Class ToolTreeViewItem
SaveToolDraw()
End If
EgtTdbSaveCurrTool()
- EgtTdbSave()
Case MsgBoxResult.No
If m_NewTool Then
- Application.Msn.NotifyColleagues(Application.REMOVETOOL, Me)
+ m_delRemoveTool(Me)
ElseIf m_IsModifiedName Then
Dim DbName As String = String.Empty
EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
@@ -156,33 +151,48 @@ Public Class ToolTreeViewItem
EgtTdbGetCurrToolParam(MCH_TP.CORR, DbCorr)
Int32.TryParse(value, nValue)
m_IsModifiedCorr = If(nValue <> DbCorr, True, False)
+ m_delIsEnabledBtns(IsValid And Not IsModified, IsValid And (IsModified Or NewTool), True)
NotifyPropertyChanged("Corr")
End If
End Set
End Property
- Private m_IsModifiedExit As Boolean = False
- Private m_Exit As String
+ Friend m_ExitList As New ObservableCollection(Of String)
+ Public ReadOnly Property ExitList As ObservableCollection(Of String)
+ Get
+ Return m_ExitList
+ End Get
+ End Property
+
+ Private m_IsModifiedSelectedExit As Boolean = False
+ Private m_SelectedExit As String
'''
''' Property that read and write to the tool's database the Exit
'''
- Public Property ExitPar As String
+ Public Property SelectedExit As String
Get
- Return m_Exit
+ Return m_SelectedExit
End Get
Set(value As String)
- If value <> m_Exit Then
- m_Exit = value
+ If value <> m_SelectedExit Then
+ m_SelectedExit = value
Dim DbExit As Integer = 0
Dim nValue As Integer = 0
EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
EgtTdbGetCurrToolParam(MCH_TP.EXIT_, DbExit)
Int32.TryParse(value, nValue)
- m_IsModifiedExit = If(nValue <> DbExit, True, False)
- If Not m_SuspendToolDrawUpdate Then
- UpdateSceneToolDraw(DrawUpdateSource.EXIT_)
+ m_IsModifiedSelectedExit = If(nValue <> DbExit, True, False)
+ If Not GetValidationError("SelectedExit") Then
+ m_delErrorOnTool(True)
+ m_delIsEnabledBtns(False, False, True)
+ Else
+ m_delErrorOnTool(Not IsValid)
+ m_delIsEnabledBtns(IsValid And Not IsModified, IsValid And (IsModified Or NewTool), True)
End If
- NotifyPropertyChanged("ExitPar")
+ If Not m_SuspendToolDrawUpdate Then
+ UpdateSceneToolDraw()
+ End If
+ NotifyPropertyChanged("SelectedExit")
End If
End Set
End Property
@@ -220,6 +230,7 @@ Public Class ToolTreeViewItem
EgtTdbGetCurrToolParam(MCH_TP.COOLANT, DbCoolant)
Int32.TryParse(value, nValue)
m_IsModifiedCoolant = If(nValue <> DbCoolant, True, False)
+ m_delIsEnabledBtns(IsValid And Not IsModified, IsValid And (IsModified Or NewTool), True)
NotifyPropertyChanged("Coolant")
End If
End Set
@@ -243,6 +254,7 @@ Public Class ToolTreeViewItem
EgtTdbGetCurrToolParam(MCH_TP.CORNRAD, DbCornRad)
StringToLen(value, dValue)
m_IsModifiedCornRad = Math.Abs(dValue - DbCornRad) > 10 * EPS_ANG_SMALL
+ m_delIsEnabledBtns(IsValid And Not IsModified, IsValid And (IsModified Or NewTool), True)
NotifyPropertyChanged("CornRad")
End If
End Set
@@ -266,8 +278,15 @@ Public Class ToolTreeViewItem
EgtTdbGetCurrToolParam(MCH_TP.DIAM, DbDiam)
StringToLen(value, dValue)
m_IsModifiedDiam = Math.Abs(dValue - DbDiam) > 10 * EPS_ANG_SMALL
+ If Not GetValidationError("Diam") Then
+ m_delErrorOnTool(True)
+ m_delIsEnabledBtns(False, False, True)
+ Else
+ m_delErrorOnTool(Not IsValid)
+ m_delIsEnabledBtns(IsValid And Not IsModified, IsValid And (IsModified Or NewTool), True)
+ End If
If Not m_SuspendToolDrawUpdate Then
- UpdateSceneToolDraw(DrawUpdateSource.DIAM)
+ UpdateSceneToolDraw()
End If
NotifyPropertyChanged("Diam")
End If
@@ -292,6 +311,13 @@ Public Class ToolTreeViewItem
EgtTdbGetCurrToolParam(MCH_TP.TOTDIAM, DbTotDiam)
StringToLen(value, dValue)
m_IsModifiedTotDiam = Math.Abs(dValue - DbTotDiam) > 10 * EPS_SMALL
+ If Not GetValidationError("Diam") Or GetValidationError("TotDiam") Then
+ m_delErrorOnTool(True)
+ m_delIsEnabledBtns(False, False, True)
+ Else
+ m_delErrorOnTool(Not IsValid)
+ m_delIsEnabledBtns(IsValid And Not IsModified, IsValid And (IsModified Or NewTool), True)
+ End If
NotifyPropertyChanged("TotDiam")
End If
End Set
@@ -315,6 +341,7 @@ Public Class ToolTreeViewItem
EgtTdbGetCurrToolParam(MCH_TP.FEED, DbFeed)
StringToLen(value, dValue)
m_IsModifiedFeed = Math.Abs(dValue - DbFeed) > 10 * EPS_SMALL
+ m_delIsEnabledBtns(IsValid And Not IsModified, IsValid And (IsModified Or NewTool), True)
NotifyPropertyChanged("Feed")
End If
End Set
@@ -338,6 +365,7 @@ Public Class ToolTreeViewItem
EgtTdbGetCurrToolParam(MCH_TP.ENDFEED, DbEndFeed)
StringToLen(value, dValue)
m_IsModifiedEndFeed = Math.Abs(dValue - DbEndFeed) > 10 * EPS_SMALL
+ m_delIsEnabledBtns(IsValid And Not IsModified, IsValid And (IsModified Or NewTool), True)
NotifyPropertyChanged("EndFeed")
End If
End Set
@@ -361,6 +389,7 @@ Public Class ToolTreeViewItem
EgtTdbGetCurrToolParam(MCH_TP.STARTFEED, DbStartFeed)
StringToLen(value, dValue)
m_IsModifiedStartFeed = Math.Abs(dValue - DbStartFeed) > 10 * EPS_SMALL
+ m_delIsEnabledBtns(IsValid And Not IsModified, IsValid And (IsModified Or NewTool), True)
NotifyPropertyChanged("StartFeed")
End If
End Set
@@ -384,6 +413,7 @@ Public Class ToolTreeViewItem
EgtTdbGetCurrToolParam(MCH_TP.TIPFEED, DbTipFeed)
StringToLen(value, dValue)
m_IsModifiedTipFeed = Math.Abs(dValue - DbTipFeed) > 10 * EPS_SMALL
+ m_delIsEnabledBtns(IsValid And Not IsModified, IsValid And (IsModified Or NewTool), True)
NotifyPropertyChanged("TipFeed")
' Se fresa e 0 non può lavorare di testa
If (Type And MCH_TF.MILL) <> 0 Then
@@ -416,7 +446,14 @@ Public Class ToolTreeViewItem
StringToLen(value, dValue)
m_IsModifiedLen = Math.Abs(dValue - DbLen) > 10 * EPS_SMALL
If Not m_SuspendToolDrawUpdate Then
- UpdateSceneToolDraw(DrawUpdateSource.LEN)
+ UpdateSceneToolDraw()
+ End If
+ If Not GetValidationError("Len") Or Not GetValidationError("MaxMat") Then
+ m_delErrorOnTool(True)
+ m_delIsEnabledBtns(False, False, True)
+ Else
+ m_delErrorOnTool(Not IsValid)
+ m_delIsEnabledBtns(IsValid And Not IsModified, IsValid And (IsModified Or NewTool), True)
End If
NotifyPropertyChanged("Len")
' Se lama
@@ -455,7 +492,14 @@ Public Class ToolTreeViewItem
StringToLen(value, dValue)
m_IsModifiedTotLen = Math.Abs(dValue - DbTotLen) > 10 * EPS_SMALL
If Not m_SuspendToolDrawUpdate Then
- UpdateSceneToolDraw(DrawUpdateSource.TOTLEN)
+ UpdateSceneToolDraw()
+ End If
+ If Not GetValidationError("TotLen") Or Not GetValidationError("Len") Then
+ m_delErrorOnTool(True)
+ m_delIsEnabledBtns(False, False, True)
+ Else
+ m_delErrorOnTool(Not IsValid)
+ m_delIsEnabledBtns(IsValid And Not IsModified, IsValid And (IsModified Or NewTool), True)
End If
NotifyPropertyChanged("TotLen")
' Se lama e len e totlen coincidono tipo piatto
@@ -493,7 +537,14 @@ Public Class ToolTreeViewItem
StringToLen(value, dValue)
m_IsModifiedMaxMat = Math.Abs(dValue - DbMaxMat) > 10 * EPS_SMALL
If Not m_SuspendToolDrawUpdate Then
- UpdateSceneToolDraw(DrawUpdateSource.MAXMAT)
+ UpdateSceneToolDraw()
+ End If
+ If Not GetValidationError("MaxMat") Then
+ m_delErrorOnTool(True)
+ m_delIsEnabledBtns(False, False, True)
+ Else
+ m_delErrorOnTool(Not IsValid)
+ m_delIsEnabledBtns(IsValid And Not IsModified, IsValid And (IsModified Or NewTool), True)
End If
NotifyPropertyChanged("MaxMat")
End If
@@ -518,6 +569,7 @@ Public Class ToolTreeViewItem
EgtTdbGetCurrToolParam(MCH_TP.LONOFFSET, DbLonOffset)
StringToLen(value, dValue)
m_IsModifiedLonOffset = Math.Abs(dValue - DbLonOffset) > 10 * EPS_SMALL
+ m_delIsEnabledBtns(IsValid And Not IsModified, IsValid And (IsModified Or NewTool), True)
NotifyPropertyChanged("LonOffset")
End If
End Set
@@ -541,6 +593,7 @@ Public Class ToolTreeViewItem
EgtTdbGetCurrToolParam(MCH_TP.RADOFFSET, DbRadOffset)
StringToLen(value, dValue)
m_IsModifiedRadOffset = Math.Abs(dValue - DbRadOffset) > 10 * EPS_SMALL
+ m_delIsEnabledBtns(IsValid And Not IsModified, IsValid And (IsModified Or NewTool), True)
NotifyPropertyChanged("RadOffset")
End If
End Set
@@ -564,8 +617,14 @@ Public Class ToolTreeViewItem
EgtTdbGetCurrToolParam(MCH_TP.SPEED, DbSpeed)
StringToDouble(value, dValue)
m_IsModifiedSpeed = Math.Abs(dValue - DbSpeed) > 10 * EPS_ANG_SMALL
+ If Not GetValidationError("Speed") Then
+ m_delErrorOnTool(True)
+ m_delIsEnabledBtns(False, False, True)
+ Else
+ m_delErrorOnTool(Not IsValid)
+ m_delIsEnabledBtns(IsValid And Not IsModified, IsValid And (IsModified Or NewTool), True)
+ End If
NotifyPropertyChanged("Speed")
- NotifyPropertyChanged("MaxSpeed")
End If
End Set
End Property
@@ -588,6 +647,7 @@ Public Class ToolTreeViewItem
EgtTdbGetCurrToolParam(MCH_TP.SIDEANG, DbSideAng)
StringToLen(value, dValue)
m_IsModifiedSideAng = Math.Abs(dValue - DbSideAng) > 10 * EPS_ANG_SMALL
+ m_delIsEnabledBtns(IsValid And Not IsModified, IsValid And (IsModified Or NewTool), True)
NotifyPropertyChanged("SideAng")
End If
End Set
@@ -611,7 +671,13 @@ Public Class ToolTreeViewItem
EgtTdbGetCurrToolParam(MCH_TP.MAXSPEED, DbMaxSpeed)
StringToLen(value, dValue)
m_IsModifiedMaxSpeed = Math.Abs(dValue - DbMaxSpeed) > 10 * EPS_ANG_SMALL
- NotifyPropertyChanged("Speed")
+ If Not GetValidationError("Speed") Then
+ m_delErrorOnTool(True)
+ m_delIsEnabledBtns(False, False, True)
+ Else
+ m_delErrorOnTool(Not IsValid)
+ m_delIsEnabledBtns(IsValid And Not IsModified, IsValid And (IsModified Or NewTool), True)
+ End If
NotifyPropertyChanged("MaxSpeed")
End If
End Set
@@ -636,7 +702,14 @@ Public Class ToolTreeViewItem
StringToLen(value, dValue)
m_IsModifiedThick = Math.Abs(dValue - DbThick) > 10 * EPS_SMALL
If Not m_SuspendToolDrawUpdate Then
- UpdateSceneToolDraw(DrawUpdateSource.THICK)
+ UpdateSceneToolDraw()
+ End If
+ If Not GetValidationError("Thick") Then
+ m_delErrorOnTool(True)
+ m_delIsEnabledBtns(False, False, True)
+ Else
+ m_delErrorOnTool(Not IsValid)
+ m_delIsEnabledBtns(IsValid And Not IsModified, IsValid And (IsModified Or NewTool), True)
End If
NotifyPropertyChanged("Thick")
End If
@@ -661,6 +734,7 @@ Public Class ToolTreeViewItem
EgtTdbGetCurrToolParam(MCH_TP.MAXABSORPTION, DbMaxAbsorption)
StringToLen(value, dValue)
m_IsModifiedMaxAbsorption = Math.Abs(dValue - DbMaxAbsorption) > 10 * EPS_SMALL
+ m_delIsEnabledBtns(IsValid And Not IsModified, IsValid And (IsModified Or NewTool), True)
NotifyPropertyChanged("MaxAbsorption")
End If
End Set
@@ -684,6 +758,7 @@ Public Class ToolTreeViewItem
EgtTdbGetCurrToolParam(MCH_TP.MINFEED, DbMinFeed)
StringToLen(value, dValue)
m_IsModifiedMinFeed = Math.Abs(dValue - DbMinFeed) > 10 * EPS_SMALL
+ m_delIsEnabledBtns(IsValid And Not IsModified, IsValid And (IsModified Or NewTool), True)
NotifyPropertyChanged("MinFeed")
End If
End Set
@@ -701,51 +776,95 @@ Public Class ToolTreeViewItem
Set(value As String)
If value = String.Empty Or value <> m_Draw Then
EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
- If value = ToolDrawUUIDName Then
- value = m_Draw
- ElseIf value = ToolDrawUUIDName.Substring(0, ToolDrawUUIDName.Length - 1) Then
- value = String.Empty
- End If
m_Draw = value
Dim DbDraw As String = String.Empty
EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
EgtTdbGetCurrToolParam(MCH_TP.DRAW, DbDraw)
m_IsModifiedDraw = If(value <> DbDraw, True, False)
- If Not m_SuspendToolDrawUpdate Then
- UpdateSceneToolDraw(DrawUpdateSource.DRAW)
- End If
NotifyPropertyChanged("Draw")
End If
End Set
End Property
- Friend Shared m_HeadList As New List(Of String)
- Public ReadOnly Property HeadList As List(Of String)
+ Friend Shared m_HeadList As New List(Of HeadItem)
+ Public ReadOnly Property HeadList As List(Of HeadItem)
Get
Return m_HeadList
End Get
End Property
Private m_IsModifiedSelectedHead As Boolean = False
- Private m_SelectedHead As String
+ Private m_SelectedHead As HeadItem
'''
''' Property that read and write to the tool's database the Head
'''
- Public Property SelectedHead As String
+ Public Property SelectedHead As HeadItem
Get
Return m_SelectedHead
End Get
- Set(value As String)
- If value = String.Empty Or value <> m_SelectedHead Then
+ Set(value As HeadItem)
+ If value IsNot m_SelectedHead Then
m_SelectedHead = value
Dim DbHead As String = String.Empty
EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
EgtTdbGetCurrToolParam(MCH_TP.HEAD, DbHead)
- m_IsModifiedSelectedHead = If(value <> DbHead, True, False)
+ m_IsModifiedSelectedHead = If(value.HName <> DbHead, True, False)
If Not m_SuspendToolDrawUpdate Then
- UpdateSceneToolDraw(DrawUpdateSource.HEAD)
+ UpdateSceneToolDraw()
+ End If
+ If Not GetValidationError("SelectedHead") Then
+ m_delErrorOnTool(True)
+ m_delIsEnabledBtns(False, False, True)
+ Else
+ m_delErrorOnTool(Not IsValid)
+ m_delIsEnabledBtns(IsValid And Not IsModified, IsValid And (IsModified Or NewTool), True)
End If
NotifyPropertyChanged("SelectedHead")
+ ' verifico se le uscite sono cambiate
+ EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
+ Dim nExitNum As Integer = EgtGetHeadExitCount(m_SelectedHead.HName)
+ ' ricalcolo la lista uscite
+ If nExitNum > m_ExitList.Count Then
+ For ExitIndex = m_ExitList.Count To nExitNum - 1
+ m_ExitList.Add((ExitIndex + 1).ToString)
+ Next
+ ElseIf nExitNum < m_ExitList.Count Then
+ For Index = m_ExitList.Count - 1 To nExitNum Step -1
+ m_ExitList.RemoveAt(Index)
+ Next
+ End If
+ ' verifico se l'uscita selezionata è nella lista
+ If Not m_ExitList.Contains(m_SelectedExit) AndAlso m_ExitList.Count > 0 Then
+ SelectedExit = m_ExitList(0)
+ End If
+ ' ricalcolo la lista di posizioni valide
+ Dim nErr As Integer = 0
+ Dim bIsValid As Boolean = False
+ Dim TcPosIndex As Integer = 0
+ For OrigTcPosIndex = 0 To m_OrigTcPosList.Count - 1
+ Dim CurrTcPos As String = m_OrigTcPosList(OrigTcPosIndex)
+ bIsValid = False
+ EgtLuaSetGlobStringVar("STU.TCPOS", CurrTcPos)
+ EgtLuaSetGlobStringVar("STU.HEAD", m_SelectedHead.HName)
+ If Not EgtLuaCallFunction("STU.IsValidTcPosFromHead") Then nErr = 999
+ ' Leggo variabili
+ EgtLuaGetGlobBoolVar("STU.ISVALID", bIsValid)
+ If Not EgtLuaGetGlobIntVar("STU.ERR", nErr) Then nErr = 999
+ If nErr = 0 AndAlso bIsValid Then
+ If m_TcPosList.Count - 1 >= TcPosIndex AndAlso m_TcPosList(TcPosIndex) = CurrTcPos Then
+ TcPosIndex += 1
+ Else
+ m_TcPosList.Insert(TcPosIndex, CurrTcPos)
+ TcPosIndex += 1
+ End If
+ Else
+ If m_TcPosList.Count - 1 >= TcPosIndex AndAlso m_TcPosList(TcPosIndex) = CurrTcPos Then
+ m_TcPosList.RemoveAt(TcPosIndex)
+ End If
+ End If
+ Next
+ NotifyPropertyChanged("ExitList")
+ NotifyPropertyChanged("TcPosList")
End If
End Set
End Property
@@ -785,6 +904,13 @@ Public Class ToolTreeViewItem
If m_IsModifiedName And Not value = sTempName Then
nErrorToolName = 1
End If
+ If Not GetValidationError("NamePar") Then
+ m_delErrorOnTool(True)
+ m_delIsEnabledBtns(False, False, True)
+ Else
+ m_delErrorOnTool(Not IsValid)
+ m_delIsEnabledBtns(IsValid And Not IsModified, IsValid And (IsModified Or NewTool), True)
+ End If
NotifyPropertyChanged("NamePar")
End If
End Set
@@ -801,18 +927,26 @@ Public Class ToolTreeViewItem
End Get
Set(value As String)
If value = String.Empty Or value <> m_UserNotes Then
+ m_UserNotes = value
Dim DbUserNotes As String = String.Empty
EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
EgtTdbGetCurrToolParam(MCH_TP.USERNOTES, DbUserNotes)
m_IsModifiedUserNotes = If(value <> DbUserNotes, True, False)
- m_UserNotes = value
+ m_delIsEnabledBtns(IsValid And Not IsModified, IsValid And (IsModified Or NewTool), True)
NotifyPropertyChanged("UserNotes")
End If
End Set
End Property
- Friend Shared m_TcPosList As New List(Of String)
- Public ReadOnly Property TcPosList As List(Of String)
+ Friend Shared m_OrigTcPosList As New List(Of String)
+ Public ReadOnly Property OrigTcPosList As List(Of String)
+ Get
+ Return m_OrigTcPosList
+ End Get
+ End Property
+
+ Friend m_TcPosList As New ObservableCollection(Of String)
+ Public ReadOnly Property TcPosList As ObservableCollection(Of String)
Get
Return m_TcPosList
End Get
@@ -829,11 +963,12 @@ Public Class ToolTreeViewItem
End Get
Set(value As String)
If value = String.Empty Or value <> m_SelectedTcPos Then
+ m_SelectedTcPos = value
Dim DbTcPos As String = String.Empty
EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
EgtTdbGetCurrToolParam(MCH_TP.TCPOS, DbTcPos)
m_IsModifiedSelectedTcPos = If(value <> DbTcPos, True, False)
- m_SelectedTcPos = value
+ m_delIsEnabledBtns(IsValid And Not IsModified, IsValid And (IsModified Or NewTool), True)
NotifyPropertyChanged("SelectedTcPos")
End If
End Set
@@ -853,6 +988,7 @@ Public Class ToolTreeViewItem
' Definizione comandi
Private m_cmdOpenDrawFile As ICommand
+ Private m_cmdAutoDraw As ICommand
#Region "Constructors"
@@ -872,70 +1008,122 @@ Public Class ToolTreeViewItem
Dim dValue As Double = 0
Dim sValue As String = String.Empty
EgtTdbGetCurrToolParam(MCH_TP.CORR, nValue)
- Corr = nValue.ToString()
- EgtTdbGetCurrToolParam(MCH_TP.EXIT_, nValue)
- ExitPar = nValue.ToString()
+ m_Corr = nValue.ToString()
+ NotifyPropertyChanged("Corr")
+ m_IsModifiedCorr = False
EgtTdbGetCurrToolParam(MCH_TP.TYPE, nValue)
- Type = nValue
+ m_Type = nValue
+ NotifyPropertyChanged("Type")
EgtTdbGetCurrToolParam(MCH_TP.COOLANT, nValue)
- Coolant = nValue.ToString()
+ m_Coolant = nValue.ToString()
+ NotifyPropertyChanged("Coolant")
+ m_IsModifiedCoolant = False
EgtTdbGetCurrToolParam(MCH_TP.CORNRAD, dValue)
- CornRad = LenToString(dValue, 4)
+ m_CornRad = LenToString(dValue, 4)
+ NotifyPropertyChanged("CornRad")
+ m_IsModifiedCornRad = False
EgtTdbGetCurrToolParam(MCH_TP.DIAM, dValue)
- Diam = LenToString(dValue, 4)
+ m_Diam = LenToString(dValue, 4)
+ m_IsModifiedDiam = False
EgtTdbGetCurrToolParam(MCH_TP.TOTDIAM, dValue)
- TotDiam = LenToString(dValue, 4)
+ m_TotDiam = LenToString(dValue, 4)
+ m_IsModifiedTotDiam = False
+ ValidateProperty("TotDiam")
+ ValidateProperty("Diam")
EgtTdbGetCurrToolParam(MCH_TP.FEED, dValue)
- Feed = LenToString(dValue, 4)
+ m_Feed = LenToString(dValue, 4)
+ NotifyPropertyChanged("Feed")
+ m_IsModifiedFeed = False
EgtTdbGetCurrToolParam(MCH_TP.ENDFEED, dValue)
- EndFeed = LenToString(dValue, 4)
+ m_EndFeed = LenToString(dValue, 4)
+ NotifyPropertyChanged("EndFeed")
+ m_IsModifiedEndFeed = False
EgtTdbGetCurrToolParam(MCH_TP.STARTFEED, dValue)
- StartFeed = LenToString(dValue, 4)
+ m_StartFeed = LenToString(dValue, 4)
+ NotifyPropertyChanged("StartFeed")
+ m_IsModifiedStartFeed = False
EgtTdbGetCurrToolParam(MCH_TP.TIPFEED, dValue)
- TipFeed = LenToString(dValue, 4)
+ m_TipFeed = LenToString(dValue, 4)
+ NotifyPropertyChanged("TipFeed")
+ m_IsModifiedTipFeed = False
EgtTdbGetCurrToolParam(MCH_TP.LEN, dValue)
- Len = LenToString(dValue, 4)
+ m_Len = LenToString(dValue, 4)
+ m_IsModifiedLen = False
EgtTdbGetCurrToolParam(MCH_TP.TOTLEN, dValue)
- TotLen = LenToString(dValue, 4)
+ m_TotLen = LenToString(dValue, 4)
+ m_IsModifiedTotLen = False
EgtTdbGetCurrToolParam(MCH_TP.MAXMAT, dValue)
- MaxMat = LenToString(dValue, 4)
+ m_MaxMat = LenToString(dValue, 4)
+ m_IsModifiedMaxMat = False
+ ValidateProperty("TotLen")
+ ValidateProperty("Len")
+ ValidateProperty("MaxMat")
EgtTdbGetCurrToolParam(MCH_TP.LONOFFSET, dValue)
- LonOffset = LenToString(dValue, 4)
+ m_LonOffset = LenToString(dValue, 4)
+ NotifyPropertyChanged("LonOffset")
+ m_IsModifiedLonOffset = False
EgtTdbGetCurrToolParam(MCH_TP.RADOFFSET, dValue)
- RadOffset = LenToString(dValue, 4)
+ m_RadOffset = LenToString(dValue, 4)
+ NotifyPropertyChanged("RadOffset")
+ m_IsModifiedRadOffset = False
EgtTdbGetCurrToolParam(MCH_TP.SPEED, dValue)
- Speed = DoubleToString(dValue, 4)
- EgtTdbGetCurrToolParam(MCH_TP.SIDEANG, dValue)
- SideAng = LenToString(dValue, 4)
+ m_Speed = DoubleToString(dValue, 4)
+ m_IsModifiedSpeed = False
EgtTdbGetCurrToolParam(MCH_TP.MAXSPEED, dValue)
- MaxSpeed = DoubleToString(dValue, 4)
+ m_MaxSpeed = DoubleToString(dValue, 4)
+ m_IsModifiedMaxSpeed = False
+ ValidateProperty("Speed")
+ NotifyPropertyChanged("MaxSpeed")
+ EgtTdbGetCurrToolParam(MCH_TP.SIDEANG, dValue)
+ m_SideAng = LenToString(dValue, 4)
+ NotifyPropertyChanged("SideAng")
+ m_IsModifiedSideAng = False
EgtTdbGetCurrToolParam(MCH_TP.THICK, dValue)
- Thick = LenToString(dValue, 4)
+ m_Thick = LenToString(dValue, 4)
+ m_IsModifiedThick = False
+ ValidateProperty("Thick")
EgtTdbGetCurrToolParam(MCH_TP.MAXABSORPTION, dValue)
- MaxAbsorption = DoubleToString(dValue, 4)
+ m_MaxAbsorption = DoubleToString(dValue, 4)
+ NotifyPropertyChanged("MaxAbsorption")
+ m_IsModifiedMaxAbsorption = False
EgtTdbGetCurrToolParam(MCH_TP.MINFEED, dValue)
- MinFeed = LenToString(dValue, 4)
+ m_MinFeed = LenToString(dValue, 4)
+ NotifyPropertyChanged("MinFeed")
+ m_IsModifiedMinFeed = False
EgtTdbGetCurrToolParam(MCH_TP.DRAW, sValue)
- Draw = sValue
+ m_Draw = sValue
+ m_IsModifiedDraw = False
+ ValidateProperty("Draw")
EgtTdbGetCurrToolParam(MCH_TP.HEAD, sValue)
- SelectedHead = sValue
- EgtTdbGetCurrToolParam(MCH_TP.NAME, sValue)
- NamePar = sValue
+ For HeadIndex = 0 To m_HeadList.Count - 1
+ If sValue = m_HeadList(HeadIndex).HName Then
+ SelectedHead = m_HeadList(HeadIndex)
+ Exit For
+ End If
+ Next
+ ValidateProperty("SelectedHead")
+ EgtTdbGetCurrToolParam(MCH_TP.EXIT_, nValue)
+ m_SelectedExit = nValue.ToString()
+ m_IsModifiedSelectedExit = False
+ ValidateProperty("SelectedExit")
EgtTdbGetCurrToolParam(MCH_TP.USERNOTES, sValue)
- UserNotes = sValue
+ m_UserNotes = sValue
+ NotifyPropertyChanged("UserNotes")
+ m_IsModifiedUserNotes = False
EgtTdbGetCurrToolParam(MCH_TP.TCPOS, sValue)
- SelectedTcPos = sValue
+ m_SelectedTcPos = sValue
+ NotifyPropertyChanged("SelectedTcPos")
+ m_IsModifiedSelectedTcPos = False
EgtTdbGetCurrToolParam(MCH_TP.UUID, sValue)
m_Uuid = sValue
' Ora che tutti i parametri sono aggiornati, aggiorno il disegno
m_SuspendToolDrawUpdate = False
- UpdateSceneToolDraw(DrawUpdateSource.LEN)
- NotifyPropertyChanged("Draw")
- NotifyPropertyChanged("MaxMat")
- NotifyPropertyChanged("Thick")
- NotifyPropertyChanged("Diam")
- NotifyPropertyChanged("Len")
- NotifyPropertyChanged("TotLen")
+ UpdateSceneToolDraw()
+ End Sub
+
+ Friend Sub ReadToolName()
+ EgtSetCurrentContext(IniFile.m_ProjectSceneContext)
+ EgtTdbGetCurrToolParam(MCH_TP.NAME, NamePar)
End Sub
Friend Sub WriteToolParam()
@@ -944,7 +1132,7 @@ Public Class ToolTreeViewItem
Dim dValue As Double = 0
Int32.TryParse(Corr, nValue)
EgtTdbSetCurrToolParam(MCH_TP.CORR, nValue)
- Int32.TryParse(ExitPar, nValue)
+ Int32.TryParse(SelectedExit, nValue)
EgtTdbSetCurrToolParam(MCH_TP.EXIT_, nValue)
EgtTdbSetCurrToolParam(MCH_TP.TYPE, Type)
Int32.TryParse(Coolant, nValue)
@@ -986,9 +1174,10 @@ Public Class ToolTreeViewItem
StringToLen(MinFeed, dValue)
EgtTdbSetCurrToolParam(MCH_TP.MINFEED, dValue)
EgtTdbSetCurrToolParam(MCH_TP.DRAW, Draw)
- EgtTdbSetCurrToolParam(MCH_TP.HEAD, SelectedHead)
+ EgtTdbSetCurrToolParam(MCH_TP.HEAD, SelectedHead.HName)
EgtTdbSetCurrToolParam(MCH_TP.USERNOTES, UserNotes)
- EgtTdbSetCurrToolParam(MCH_TP.TCPOS, SelectedTcPos)
+ If String.IsNullOrEmpty(SelectedTcPos) Then m_SelectedTcPos = String.Empty
+ EgtTdbSetCurrToolParam(MCH_TP.TCPOS, m_SelectedTcPos)
End Sub
Public Sub WriteToolName()
@@ -999,25 +1188,13 @@ Public Class ToolTreeViewItem
#Region "ToolSceneUpdate"
- ' Enum che indica le proprietà di disegno dell'utensile
- Friend Enum DrawUpdateSource
- DIAM = 0
- LEN = 1
- MAXMAT = 2
- THICK = 3
- DRAW = 4
- TOTLEN = 5
- HEAD = 6
- EXIT_ = 7
- End Enum
-
' Variabili che segnalano errori nel disegno dell'utensile
Dim m_bToolMakerError As Boolean = False
Dim m_bDrawNameExistError As Boolean = False
Dim m_bDrawNameError As Boolean = False
Dim m_nDrawingError As Integer = 0
- Private Sub UpdateSceneToolDraw(UpdateSource As DrawUpdateSource)
+ Private Sub UpdateSceneToolDraw()
' Azzero errori
m_bToolMakerError = False
m_bDrawNameError = False
@@ -1026,10 +1203,10 @@ Public Class ToolTreeViewItem
' Verifico proprietà draw
If String.IsNullOrEmpty(m_Draw) OrElse IsUUID(Path.GetFileNameWithoutExtension(m_Draw)) Then
- CreateToolDraw(UpdateSource)
+ CreateToolDraw()
Else
EgtSetCurrentContext(IniFile.m_ToolsDbSceneContext)
- If IsNgeFile(m_Draw) Then
+ If Path.GetExtension(m_Draw).ToLower = ".nge" Then
If EgtOpenFile(IniFile.m_sCurrMachToolsDirPath & "\" & m_Draw) Then
EgtSetView(VT.TOP, False)
EgtZoom(ZM.ALL)
@@ -1049,19 +1226,22 @@ Public Class ToolTreeViewItem
End If
End If
NotifyPropertyChanged("Draw")
- If UpdateSource = DrawUpdateSource.TOTLEN Or UpdateSource = DrawUpdateSource.LEN Or UpdateSource = DrawUpdateSource.MAXMAT Then
- NotifyPropertyChanged("TotLen")
- NotifyPropertyChanged("Len")
- NotifyPropertyChanged("MaxMat")
+
+ If Not GetValidationError("Draw") Then
+ m_delErrorOnTool(True)
+ m_delIsEnabledBtns(False, False, True)
+ Else
+ m_delErrorOnTool(Not IsValid)
+ m_delIsEnabledBtns(IsValid And Not IsModified, IsValid And (IsModified Or NewTool), True)
End If
End Sub
- Private Sub CreateToolDraw(UpdateSource As DrawUpdateSource)
+ Private Sub CreateToolDraw()
' Carico il relativo ToolHolder
Dim ToolHolder As String = String.Empty
ToolHolder = LoadToolHolder()
- If Not LoadToolMaker() OrElse Not CreateToolDraw(ToolHolder, UpdateSource) Then
+ If Not LoadToolMaker() OrElse Not CreateToolDraw(ToolHolder) Then
EgtSetCurrentContext(IniFile.m_ToolsDbSceneContext)
EgtNewFile()
End If
@@ -1076,13 +1256,21 @@ Public Class ToolTreeViewItem
'''
Private Function LoadToolHolder() As String
Dim sHolder As String = String.Empty
- If Type = MCH_TY.SAW_STD Then
- EgtUILib.GetPrivateProfileString(S_TOOLHOLDER, SelectedHead & "." & ExitPar.ToString() & ":SAW_STD", "", sHolder, IniFile.m_sCurrMachIniFilePath)
- ElseIf Type = MCH_TY.SAW_FLAT Then
- EgtUILib.GetPrivateProfileString(S_TOOLHOLDER, SelectedHead & "." & ExitPar.ToString() & ":SAW_FLAT", "", sHolder, IniFile.m_sCurrMachIniFilePath)
- End If
- If String.IsNullOrEmpty(sHolder) Then
- EgtUILib.GetPrivateProfileString(S_TOOLHOLDER, SelectedHead & "." & ExitPar.ToString(), "", sHolder, IniFile.m_sCurrMachIniFilePath)
+ If Not IsNothing(m_SelectedHead) Then
+ Dim TempExit As String = String.Empty
+ If CInt(m_SelectedExit) > 0 Then
+ TempExit = m_SelectedExit
+ Else
+ TempExit = "1"
+ End If
+ If Type = MCH_TY.SAW_STD Then
+ EgtUILib.GetPrivateProfileString(S_TOOLHOLDER, SelectedHead.HName & "." & TempExit & ":SAW_STD", "", sHolder, IniFile.m_sCurrMachIniFilePath)
+ ElseIf Type = MCH_TY.SAW_FLAT Then
+ EgtUILib.GetPrivateProfileString(S_TOOLHOLDER, SelectedHead.HName & "." & TempExit & ":SAW_FLAT", "", sHolder, IniFile.m_sCurrMachIniFilePath)
+ End If
+ If String.IsNullOrEmpty(sHolder) Then
+ EgtUILib.GetPrivateProfileString(S_TOOLHOLDER, SelectedHead.HName & "." & TempExit, "", sHolder, IniFile.m_sCurrMachIniFilePath)
+ End If
End If
If String.IsNullOrWhiteSpace(sHolder) Then
Return String.Empty
@@ -1122,7 +1310,7 @@ Public Class ToolTreeViewItem
Return Nothing
End Function
- Private Function CreateToolDraw(ToolHolder As String, UpdateSource As DrawUpdateSource) As Boolean
+ Private Function CreateToolDraw(ToolHolder As String) As Boolean
Dim dTotLen As Double = 0
Dim dLen As Double = 0
Dim dDiam As Double = 0
@@ -1169,7 +1357,7 @@ Public Class ToolTreeViewItem
Dim nErr As Integer = 999
EgtLuaGetGlobIntVar("TOOL.ERR", nErr)
m_nDrawingError = nErr
- If m_nDrawingError <> 0 And UpdateSource <> DrawUpdateSource.DRAW Then Draw = String.Empty
+ If m_nDrawingError <> 0 Then m_Draw = String.Empty
If m_nDrawingError = 0 Then m_Draw = m_Uuid & ".nge"
Return (nErr = 0)
End Function
@@ -1217,43 +1405,171 @@ Public Class ToolTreeViewItem
#End Region ' ToolSceneUpdate
-#Region "IDataErrorInfo Members"
-
- Private ReadOnly Property IDataErrorInfo_Error() As String Implements IDataErrorInfo.Error
- Get
- Return Nothing
- End Get
- End Property
-
- Public ReadOnly Property IDataErrorInfo_Item(ByVal propertyName As String) As String Implements IDataErrorInfo.Item
- Get
- ErrorOnTool = True
- Return Me.GetValidationError(propertyName)
- End Get
- End Property
-
-#End Region ' IDataErrorInfo Members
-
#Region "Validation"
+ Private m_NameError As String
+ Public ReadOnly Property NameErrorMsg As String
+ Get
+ Return m_NameError
+ End Get
+ End Property
+
+ Private m_SpeedError As String
+ Public ReadOnly Property SpeedErrorMsg As String
+ Get
+ Return m_SpeedError
+ End Get
+ End Property
+
+ Private m_TotDiamError As String
+ Public ReadOnly Property TotDiamErrorMsg As String
+ Get
+ Return m_TotDiamError
+ End Get
+ End Property
+
+ Private m_DiamError As String
+ Public ReadOnly Property DiamErrorMsg As String
+ Get
+ Return m_DiamError
+ End Get
+ End Property
+
+ Private m_TotLenError As String
+ Public ReadOnly Property TotLenErrorMsg As String
+ Get
+ Return m_TotLenError
+ End Get
+ End Property
+
+ Private m_LenError As String
+ Public ReadOnly Property LenErrorMsg As String
+ Get
+ Return m_LenError
+ End Get
+ End Property
+
+ Private m_MaxMatError As String
+ Public ReadOnly Property MaxMatErrorMsg As String
+ Get
+ Return m_MaxMatError
+ End Get
+ End Property
+
+ Private m_ThickError As String
+ Public ReadOnly Property ThickErrorMsg As String
+ Get
+ Return m_ThickError
+ End Get
+ End Property
+
+ Private m_DrawError As String
+ Public ReadOnly Property DrawErrorMsg As String
+ Get
+ Return m_DrawError
+ End Get
+ End Property
+
+ Private m_SelectedHeadError As String
+ Public ReadOnly Property SelectedHeadErrorMsg As String
+ Get
+ Return m_SelectedHeadError
+ End Get
+ End Property
+
+ Private m_SelectedExitError As String
+ Public ReadOnly Property SelectedExitErrorMsg As String
+ Get
+ Return m_SelectedExitError
+ End Get
+ End Property
+
+ ' Funzione che verifica se una proprietà è valida e attiva/disattiva di conseguenza lista e bottoni
+ Private Sub ValidateProperty(propertyName As String)
+ If Not GetValidationError(propertyName) Then
+ m_delErrorOnTool(True)
+ m_delIsEnabledBtns(False, False, True)
+ Else
+ m_delErrorOnTool(Not IsValid)
+ m_delIsEnabledBtns(IsValid And Not IsModified, IsValid And (IsModified Or NewTool), True)
+ End If
+ NotifyPropertyChanged(propertyName)
+ End Sub
+
+ Private Function GetValidationError(propertyName As String) As Boolean
+ Dim bOk As Boolean = True
+ Select Case propertyName
+ Case "NamePar"
+ bOk = Me.ValidateName()
+ Case "Speed"
+ bOk = Me.ValidateSpeed()
+ Case "TotDiam"
+ bOk = Me.ValidateTotDiam()
+ Case "Diam"
+ bOk = Me.ValidateDiam()
+ Case "TotLen"
+ bOk = Me.ValidateTotLen()
+ Case "Len"
+ bOk = Me.ValidateLen()
+ Case "MaxMat"
+ bOk = Me.ValidateMaxMat()
+ Case "Thick"
+ bOk = Me.ValidateThick()
+ Case "Draw"
+ bOk = Me.ValidateDraw()
+ Case "SelectedHead"
+ bOk = Me.ValidateSelectedHead()
+ Case "SelectedExit"
+ bOk = Me.ValidateSelectedExit()
+ End Select
+ Return bOk
+ End Function
+
+ Private Function GetErrorString(propertyName As String) As String
+ Select Case propertyName
+ Case "NamePar"
+ Return m_NameError
+ Case "Speed"
+ Return m_SpeedError
+ Case "TotDiam"
+ Return m_TotDiamError
+ Case "Diam"
+ Return m_DiamError
+ Case "TotLen"
+ Return m_TotLenError
+ Case "Len"
+ Return m_LenError
+ Case "MaxMat"
+ Return m_MaxMatError
+ Case "Thick"
+ Return m_ThickError
+ Case "Draw"
+ Return m_DrawError
+ Case "SelectedHead"
+ Return m_SelectedHeadError
+ Case "SelectedExit"
+ Return m_SelectedExitError
+ End Select
+ Return String.Empty
+ End Function
+
'''
''' Returns true if this object has no validation errors.
'''
Public ReadOnly Property IsValid() As Boolean
Get
For Each [property] As String In ValidatedProperties
- If GetValidationError([property]) IsNot Nothing Then
+ If Not String.IsNullOrEmpty(GetErrorString([property])) Then
Return False
End If
Next [property]
-
Return True
End Get
End Property
Public ReadOnly Property IsModified() As Boolean
Get
- Return m_IsModifiedCorr OrElse m_IsModifiedExit OrElse m_IsModifiedCornRad OrElse m_IsModifiedDiam OrElse m_IsModifiedTotDiam OrElse m_IsModifiedFeed OrElse m_IsModifiedEndFeed _
+ Return m_IsModifiedCorr OrElse m_IsModifiedSelectedExit OrElse m_IsModifiedCornRad OrElse m_IsModifiedDiam OrElse m_IsModifiedTotDiam OrElse m_IsModifiedFeed OrElse m_IsModifiedEndFeed _
OrElse m_IsModifiedStartFeed OrElse m_IsModifiedTipFeed OrElse m_IsModifiedLen OrElse m_IsModifiedTotLen OrElse m_IsModifiedMaxMat OrElse m_IsModifiedLonOffset _
OrElse m_IsModifiedRadOffset OrElse m_IsModifiedSpeed OrElse m_IsModifiedSideAng OrElse m_IsModifiedMaxSpeed OrElse m_IsModifiedThick OrElse m_IsModifiedMaxAbsorption _
OrElse m_IsModifiedMinFeed OrElse m_IsModifiedDraw OrElse m_IsModifiedSelectedHead OrElse m_IsModifiedName OrElse m_IsModifiedUserNotes OrElse m_IsModifiedSelectedTcPos
@@ -1262,7 +1578,7 @@ Public Class ToolTreeViewItem
Public Sub IsModifiedReset()
m_IsModifiedCorr = False
- m_IsModifiedExit = False
+ m_IsModifiedSelectedExit = False
m_IsModifiedCornRad = False
m_IsModifiedDiam = False
m_IsModifiedTotDiam = False
@@ -1288,74 +1604,139 @@ Public Class ToolTreeViewItem
m_IsModifiedSelectedTcPos = False
End Sub
- Private Shared ReadOnly ValidatedProperties() As String = {"Draw", "MaxMat", "Thick", "Diam", "Len", "TotLen", "Speed", "NamePar"}
+ Private Shared ReadOnly ValidatedProperties() As String = {"Draw", "TotDiam", "Diam", "TotLen", "Len", "MaxMat", "Thick", "Speed", "NamePar", "SelectedHead", "SelectedExit"}
- Private Function GetValidationError(ByVal propertyName As String) As String
-
- If Not EgtCAM5.ToolsDbViewModel.m_bActive Then
- Return Nothing
- End If
- If Array.IndexOf(ValidatedProperties, propertyName) < 0 Then
- Return Nothing
- End If
-
- Dim [error] As String = Nothing
-
- Select Case propertyName
- Case "Draw"
- [error] = Me.ValidateDraw()
- Case "MaxMat"
- [error] = Me.ValidateMaxMat()
- Case "Diam"
- [error] = Me.ValidateDiam()
- Case "Thick"
- [error] = Me.ValidateThick()
- Case "Len"
- [error] = Me.ValidateLen()
- Case "TotLen"
- [error] = Me.ValidateTotLen()
- Case "Speed"
- [error] = Me.ValidateSpeed()
- Case "NamePar"
- [error] = Me.ValidateName()
-
- Case Else
- 'Debug.Fail("Unexpected property being validated on Tool: " & propertyName)
+ Private Function ValidateName() As Boolean
+ m_NameError = String.Empty
+ Select Case nErrorToolName
+ Case 1
+ m_NameError = EgtMsg(MSG_MACHININGSERRORS + 2)
+ Case 2
+ m_NameError = EgtMsg(MSG_MACHININGSERRORS + 3)
End Select
- Return [error]
+ NotifyPropertyChanged("NameErrorMsg")
+ If String.IsNullOrEmpty(m_NameError) Then
+ Return True
+ Else
+ Return False
+ End If
End Function
- Private Function ValidateDraw() As String
- If m_bDrawNameError Then
- Return EgtMsg(MSG_TOOLSERRORS + 2)
+ Private Function ValidateSpeed() As Boolean
+ m_SpeedError = String.Empty
+ If Not IsNothing(m_Speed) And Not IsNothing(m_MaxSpeed) Then
+ Dim dSpeed As Double = 0
+ StringToDouble(m_Speed, dSpeed)
+ Dim dMaxSpeed As Double = 0
+ StringToDouble(m_MaxSpeed, dMaxSpeed)
+ If Math.Abs(dSpeed) > dMaxSpeed + EPS_ZERO Then
+ m_SpeedError = EgtMsg(MSG_TOOLSERRORS + 11)
+ End If
End If
- If m_bDrawNameExistError Then
- Return EgtMsg(MSG_TOOLSERRORS + 3)
+ NotifyPropertyChanged("SpeedErrorMsg")
+ If String.IsNullOrEmpty(m_SpeedError) Then
+ Return True
+ Else
+ Return False
End If
- If m_bToolMakerError Then
- Return EgtMsg(MSG_TOOLSERRORS + 4)
- End If
- If m_nDrawingError = 12 Then
- Return EgtMsg(MSG_TOOLSERRORS + 21) ' Utensile troppo corto con il portautensile
- ElseIf m_nDrawingError <> 0 Then
- Return EgtMsg(MSG_TOOLSERRORS + 5)
- End If
- Return Nothing
End Function
- Private Function ValidateMaxMat() As String
+ Private Function ValidateTotDiam() As Boolean
+ m_TotDiamError = String.Empty
+ If Not IsNothing(m_TotDiam) Then
+ Dim dTotDiam As Double = 0
+ StringToLen(m_TotDiam, dTotDiam)
+ If dTotDiam < EPS_SMALL Then
+ m_TotDiamError = EgtMsg(MSG_TOOLSERRORS + 20)
+ End If
+ End If
+ NotifyPropertyChanged("TotDiamErrorMsg")
+ If String.IsNullOrEmpty(m_TotDiamError) Then
+ Return True
+ Else
+ Return False
+ End If
+ End Function
+
+ Private Function ValidateDiam() As Boolean
+ m_DiamError = String.Empty
+ If Not IsNothing(m_Diam) Then
+ Dim dDiam As Double = 0
+ StringToLen(m_Diam, dDiam)
+ If dDiam < EPS_SMALL Then
+ m_DiamError = EgtMsg(MSG_TOOLSERRORS + 9)
+ End If
+ If Not IsNothing(m_TotDiam) Then
+ Dim dTotDiam As Double = 0
+ StringToLen(m_TotDiam, dTotDiam)
+ If dDiam > dTotDiam + EPS_SMALL Then
+ m_DiamError = EgtMsg(MSG_TOOLSERRORS + 18)
+ End If
+ End If
+ End If
+ NotifyPropertyChanged("DiamErrorMsg")
+ If String.IsNullOrEmpty(m_DiamError) Then
+ Return True
+ Else
+ Return False
+ End If
+ End Function
+
+ Private Function ValidateTotLen() As Boolean
+ m_TotLenError = String.Empty
+ If Not IsNothing(m_TotLen) Then
+ Dim dTotLen As Double = 0
+ StringToLen(m_TotLen, dTotLen)
+ If dTotLen < EPS_SMALL Then
+ m_TotLenError = EgtMsg(MSG_TOOLSERRORS + 15)
+ End If
+ End If
+ NotifyPropertyChanged("TotLenErrorMsg")
+ If String.IsNullOrEmpty(m_TotLenError) Then
+ Return True
+ Else
+ Return False
+ End If
+ End Function
+
+ Private Function ValidateLen() As Boolean
+ m_LenError = String.Empty
+ If Not IsNothing(m_Len) Then
+ Dim dLen As Double = 0
+ StringToLen(m_Len, dLen)
+ If dLen < EPS_SMALL Then
+ m_LenError = EgtMsg(MSG_TOOLSERRORS + 10)
+ End If
+ If Not IsNothing(m_TotLen) Then
+ Dim dTotLen As Double = 0
+ StringToLen(m_TotLen, dTotLen)
+ If dLen > dTotLen + EPS_SMALL Then
+ m_LenError = EgtMsg(MSG_TOOLSERRORS + 13)
+ End If
+ End If
+ End If
+ NotifyPropertyChanged("LenErrorMsg")
+ If String.IsNullOrEmpty(m_LenError) Then
+ Return True
+ Else
+ Return False
+ End If
+ End Function
+
+ Private Function ValidateMaxMat() As Boolean
+ m_MaxMatError = String.Empty
If Not IsNothing(m_MaxMat) Then
Dim dMaxMat As Double = 0
StringToLen(m_MaxMat, dMaxMat)
If dMaxMat < EPS_SMALL Then
- Return EgtMsg(MSG_TOOLSERRORS + 6)
+ m_MaxMatError = EgtMsg(MSG_TOOLSERRORS + 6)
End If
If (Type And MCH_TF.SAWBLADE) = 0 Then
If Not IsNothing(m_Len) Then
Dim dLen As Double = 0
StringToLen(m_Len, dLen)
If dMaxMat > dLen + EPS_SMALL Then
- Return EgtMsg(MSG_TOOLSERRORS + 7)
+ m_MaxMatError = EgtMsg(MSG_TOOLSERRORS + 7)
End If
End If
Else
@@ -1363,143 +1744,96 @@ Public Class ToolTreeViewItem
Dim dDiam As Double = 0
StringToLen(m_Diam, dDiam)
If dMaxMat > (dDiam / 3) + EPS_SMALL Then
- Return EgtMsg(MSG_TOOLSERRORS + 17)
+ m_MaxMatError = EgtMsg(MSG_TOOLSERRORS + 17)
End If
End If
End If
End If
- Return Nothing
+ NotifyPropertyChanged("MaxMatErrorMsg")
+ If String.IsNullOrEmpty(m_MaxMatError) Then
+ Return True
+ Else
+ Return False
+ End If
End Function
- Private Function ValidateThick() As String
+ Private Function ValidateThick() As Boolean
+ m_ThickError = String.Empty
If Not IsNothing(m_Thick) Then
Dim dThick As Double = 0
StringToLen(m_Thick, dThick)
If (m_Type = MCH_TY.SAW_FLAT Or m_Type = MCH_TY.SAW_STD Or m_Type = MCH_TY.MORTISE_STD) And dThick < EPS_SMALL Then
- Return EgtMsg(MSG_TOOLSERRORS + 8)
+ m_ThickError = EgtMsg(MSG_TOOLSERRORS + 8)
End If
End If
- Return Nothing
- End Function
-
- Private Function ValidateDiam() As String
- If Not IsNothing(m_Diam) Then
- Dim dDiam As Double = 0
- StringToLen(m_Diam, dDiam)
- If dDiam < EPS_SMALL Then
- Return EgtMsg(MSG_TOOLSERRORS + 9)
- End If
- If Not IsNothing(m_TotDiam) Then
- Dim dTotDiam As Double = 0
- StringToLen(m_TotDiam, dTotDiam)
- If dDiam > dTotDiam + EPS_SMALL Then
- Return EgtMsg(MSG_TOOLSERRORS + 18)
- End If
- End If
- If (Type And MCH_TF.SAWBLADE) <> 0 Then
- If Not IsNothing(m_MaxMat) Then
- Dim dMaxMat As Double = 0
- StringToLen(m_MaxMat, dMaxMat)
- If (dDiam / 3) + EPS_SMALL < dMaxMat Then
- Return EgtMsg(MSG_TOOLSERRORS + 19)
- End If
- End If
- End If
- End If
- Return Nothing
- End Function
-
- Private Function ValidateTotDiam() As String
- If Not IsNothing(m_TotDiam) Then
- Dim dTotDiam As Double = 0
- StringToLen(m_TotDiam, dTotDiam)
- If dTotDiam < EPS_SMALL Then
- Return EgtMsg(MSG_TOOLSERRORS + 20)
- End If
- End If
- Return Nothing
- End Function
-
- Private Function ValidateLen() As String
- If Not IsNothing(m_Len) Then
- Dim dLen As Double = 0
- StringToLen(m_Len, dLen)
- If dLen < EPS_SMALL Then
- Return EgtMsg(MSG_TOOLSERRORS + 10)
- End If
- If Not IsNothing(m_TotLen) Then
- Dim dTotLen As Double = 0
- StringToLen(m_TotLen, dTotLen)
- If dLen > dTotLen + EPS_SMALL Then
- Return EgtMsg(MSG_TOOLSERRORS + 13)
- End If
- End If
- If (Type And MCH_TF.SAWBLADE) = 0 Then
- If Not IsNothing(m_MaxMat) Then
- Dim dMaxMat As Double = 0
- StringToLen(m_MaxMat, dMaxMat)
- If dLen < dMaxMat Then
- Return EgtMsg(MSG_TOOLSERRORS + 14)
- End If
- End If
- End If
- End If
- Return Nothing
- End Function
-
- Private Function ValidateTotLen() As String
- If Not IsNothing(m_TotLen) Then
- Dim dTotLen As Double = 0
- StringToLen(m_TotLen, dTotLen)
- If dTotLen < EPS_SMALL Then
- Return EgtMsg(MSG_TOOLSERRORS + 15)
- End If
- If Not IsNothing(m_Len) Then
- Dim dLen As Double = 0
- StringToLen(m_Len, dLen)
- If dTotLen < dLen - EPS_SMALL Then
- Return EgtMsg(MSG_TOOLSERRORS + 16)
- End If
- End If
- End If
- Return Nothing
- End Function
-
- Private Function ValidateSpeed() As String
- If Not IsNothing(m_Speed) And Not IsNothing(m_MaxSpeed) Then
- Dim dSpeed As Double = 0
- StringToDouble(m_Speed, dSpeed)
- Dim dMaxSpeed As Double = 0
- StringToDouble(m_MaxSpeed, dMaxSpeed)
- If Math.Abs(dSpeed) > dMaxSpeed + EPS_ZERO Then
- Return EgtMsg(MSG_TOOLSERRORS + 11)
- End If
- End If
- Return Nothing
- End Function
-
- Private Function ValidateName() As String
- Select Case nErrorToolName
- Case 1
- Return EgtMsg(MSG_TOOLSERRORS + 12)
- Case 2
- Return EgtMsg(MSG_MACHININGSERRORS + 3)
- End Select
- Return Nothing
- End Function
-
- Private Shared Function IsStringMissing(ByVal value As String) As Boolean
- Return String.IsNullOrEmpty(value) OrElse value.Trim() = String.Empty
- End Function
-
- Private Shared Function IsNgeFile(FileName As String) As Boolean
- If IsStringMissing(FileName) Then
+ NotifyPropertyChanged("ThickErrorMsg")
+ If String.IsNullOrEmpty(m_ThickError) Then
+ Return True
+ Else
Return False
End If
+ End Function
- Dim pattern As String = "^.+\.(?:[nN][gG][eE])$"
+ Private Function ValidateDraw() As Boolean
+ m_DrawError = String.Empty
+ If m_bDrawNameError Then
+ m_DrawError = EgtMsg(MSG_TOOLSERRORS + 2)
+ End If
+ If m_bDrawNameExistError Then
+ m_DrawError = EgtMsg(MSG_TOOLSERRORS + 3)
+ End If
+ If m_bToolMakerError Then
+ m_DrawError = EgtMsg(MSG_TOOLSERRORS + 4)
+ End If
+ If m_nDrawingError = 12 Then
+ m_DrawError = EgtMsg(MSG_TOOLSERRORS + 21) ' Utensile troppo corto con il portautensile
+ ElseIf m_nDrawingError <> 0 Then
+ m_DrawError = EgtMsg(MSG_TOOLSERRORS + 5)
+ End If
+ NotifyPropertyChanged("DrawErrorMsg")
+ If String.IsNullOrEmpty(m_DrawError) Then
+ Return True
+ Else
+ Return False
+ End If
+ End Function
- Return Regex.IsMatch(FileName, pattern, RegexOptions.IgnoreCase)
+ Private Function ValidateSelectedHead() As Boolean
+ m_SelectedHeadError = String.Empty
+ If IsNothing(m_SelectedHead) Then
+ m_SelectedHeadError = EgtMsg(MSG_TOOLSERRORS + 27)
+ Else
+ If Not IsNothing(m_HeadList) Then
+ If Not m_HeadList.Contains(m_SelectedHead) Then
+ m_SelectedHeadError = EgtMsg(MSG_TOOLSERRORS + 27)
+ End If
+ End If
+ End If
+ NotifyPropertyChanged("SelectedHeadErrorMsg")
+ If String.IsNullOrEmpty(m_SelectedHeadError) Then
+ Return True
+ Else
+ Return False
+ End If
+ End Function
+
+ Private Function ValidateSelectedExit() As Boolean
+ m_SelectedExitError = String.Empty
+ If IsNothing(m_SelectedExit) Then
+ m_SelectedExitError = EgtMsg(MSG_TOOLSERRORS + 28)
+ Else
+ If Not IsNothing(m_ExitList) Then
+ If Not m_ExitList.Contains(m_SelectedExit) Then
+ m_SelectedExitError = EgtMsg(MSG_TOOLSERRORS + 28)
+ End If
+ End If
+ End If
+ NotifyPropertyChanged("SelectedExitErrorMsg")
+ If String.IsNullOrEmpty(m_SelectedExitError) Then
+ Return True
+ Else
+ Return False
+ End If
End Function
#End Region ' Validation
@@ -1527,20 +1861,77 @@ Public Class ToolTreeViewItem
Dim OpenFileDialog As New EgtWPFLib5.EgtOpenFileDialog
OpenFileDialog.Title = "Open draw file"
OpenFileDialog.Filter = "*.nge"
+ OpenFileDialog.FileNameFilter = AddressOf FilterFileName
OpenFileDialog.Directory = IniFile.m_sCurrMachToolsDirPath
OpenFileDialog.FileName = m_Draw
- If OpenFileDialog.ShowDialog <> True Then
+ If OpenFileDialog.EgtShowDialog <> True Then
Return
End If
- Draw = Path.GetFileName(OpenFileDialog.FileName)
+ m_Draw = Path.GetFileName(OpenFileDialog.FileName)
+ UpdateSceneToolDraw()
End Sub
+ Private Function FilterFileName(sPath As String) As Boolean
+ Dim FileName As String = Path.GetFileNameWithoutExtension(sPath)
+ If Not IsUUID(FileName) Then
+ Return True
+ End If
+ Return False
+ End Function
+
#End Region ' OpenDrawFileCommand
+#Region "AutoDrawCommand"
+
+ '''
+ ''' Returns a command that create a new tool.
+ '''
+ Public ReadOnly Property AutoDrawCommand As ICommand
+ Get
+ If m_cmdAutoDraw Is Nothing Then
+ m_cmdAutoDraw = New Command(AddressOf AutoDraw)
+ End If
+ Return m_cmdAutoDraw
+ End Get
+ End Property
+
+ '''
+ ''' Creata the new tool. This method is invoked by the NewCommand.
+ '''
+ Public Sub AutoDraw(ByVal param As Object)
+ m_Draw = m_Uuid & ".nge"
+ UpdateSceneToolDraw()
+ End Sub
+
+#End Region ' AutoDrawCommand
+
#End Region ' Commands
End Class
+Public Class HeadItem
+
+ Private m_HName As String
+ Public ReadOnly Property HName As String
+ Get
+ Return m_HName
+ End Get
+ End Property
+
+ Private m_HText As String
+ Public ReadOnly Property HText As String
+ Get
+ Return m_HText
+ End Get
+ End Property
+
+ Sub New(sHName As String, sHText As String)
+ m_HName = sHName
+ m_HText = sHText
+ End Sub
+
+End Class
+
'''
''' Class that represent a Converter that use tool type and param type, to set the visibility state of the param type.
'''
diff --git a/ToolsDbWindow/ToolsDbView.xaml b/ToolsDbWindow/ToolsDbView.xaml
index 2dcad95..ea79f10 100644
--- a/ToolsDbWindow/ToolsDbView.xaml
+++ b/ToolsDbWindow/ToolsDbView.xaml
@@ -19,6 +19,7 @@
+ 012
@@ -62,11 +63,14 @@
+ CommandParameter="{Binding Path=SelectedItem, ElementName=ToolsTreeView}"
+ IsEnabled="{Binding IsEnabledNewBtn, Mode=OneWay}"/>
+ CommandParameter="{Binding Path=SelectedItem, ElementName=ToolsTreeView}"
+ IsEnabled="{Binding IsEnabledSaveBtn, Mode=OneWay}"/>
+ CommandParameter="{Binding Path=SelectedItem, ElementName=ToolsTreeView}"
+ IsEnabled="{Binding IsEnabledRemoveBtn, Mode=OneWay}"/>
-
-
-
-
-
-
-
@@ -173,10 +164,10 @@
ElementName=ToolsTreeView,
Converter={StaticResource ToolParamVisibilityConverter},
ConverterParameter={StaticResource NamePar}}"/>
-
+
@@ -201,11 +192,6 @@
ElementName=ToolsTreeView, UpdateSourceTrigger=PropertyChanged,
Converter={StaticResource ToolParamVisibilityConverter},
ConverterParameter={StaticResource MaxSpeed}}"/>
-
-
@@ -286,10 +272,11 @@
ElementName=ToolsTreeView,
Converter={StaticResource ToolParamVisibilityConverter},
ConverterParameter={StaticResource TotLen}}"/>
-
+
+
@@ -314,10 +301,10 @@
ElementName=ToolsTreeView,
Converter={StaticResource ToolParamVisibilityConverter},
ConverterParameter={StaticResource TotDiam}}"/>
-
+
@@ -343,10 +330,10 @@
ElementName=ToolsTreeView,
Converter={StaticResource ToolParamVisibilityConverter},
ConverterParameter={StaticResource Thick}}"/>
-
+
@@ -372,10 +359,11 @@
ElementName=ToolsTreeView,
Converter={StaticResource ToolParamVisibilityConverter},
ConverterParameter={StaticResource MaxMat}}"/>
-
+
+
@@ -426,14 +414,15 @@
UpdateSourceTrigger=PropertyChanged}"
SelectedItem="{Binding Path=SelectedItem.SelectedHead, ElementName=ToolsTreeView,
UpdateSourceTrigger=PropertyChanged}"
+ DisplayMemberPath="HText"
Visibility="{Binding Path=SelectedItem.Type,
ElementName=ToolsTreeView,
Converter={StaticResource ToolParamVisibilityConverter},
ConverterParameter={StaticResource Head}}"/>
-
+
@@ -511,18 +500,31 @@
+
-
-
-