2ac342eb89
- modifiche per visualizzare AUXVIEW di lavorazione quando questa è corrente.
142 lines
5.8 KiB
VB.net
142 lines
5.8 KiB
VB.net
Imports System.ComponentModel
|
|
Imports EgtUILib
|
|
|
|
Public Class OperationListBoxItem
|
|
Implements INotifyPropertyChanged
|
|
|
|
Friend m_Type As Integer
|
|
Public ReadOnly Property Type As Integer
|
|
Get
|
|
Return m_Type
|
|
End Get
|
|
End Property
|
|
|
|
Friend m_Id As Integer
|
|
Public ReadOnly Property Id As Integer
|
|
Get
|
|
Return m_Id
|
|
End Get
|
|
End Property
|
|
|
|
Private m_Name As String
|
|
Public Property Name As String
|
|
Get
|
|
Return m_Name
|
|
End Get
|
|
Set(value As String)
|
|
m_Name = value
|
|
End Set
|
|
End Property
|
|
|
|
Private m_IsSelected As Boolean
|
|
Public Property IsSelected As Boolean
|
|
Get
|
|
Return m_IsSelected
|
|
End Get
|
|
Set(value As Boolean)
|
|
If Not IsNothing(value) Then
|
|
|
|
Dim indexes As List(Of OperationListBoxItem) = New List(Of OperationListBoxItem)
|
|
Dim Count As Integer = 0
|
|
For Each OperationListBoxItem In Map.refOperationsListExpanderVM.OperationList
|
|
If OperationListBoxItem.IsSelected And OperationListBoxItem.Id <> m_Id Then
|
|
Count = Count + 1
|
|
indexes.Add(OperationListBoxItem)
|
|
End If
|
|
Next
|
|
|
|
If indexes.Count > 0 Then
|
|
If EgtGetOperationPhase(Id) <> EgtGetOperationPhase(indexes(0).Id) Then
|
|
Return
|
|
End If
|
|
End If
|
|
|
|
m_IsSelected = value
|
|
' Verifico se c'è l'operazione precedente
|
|
If Not value Or
|
|
indexes.Any(Function(i) i.Type = MCH_OY.DISP) Or
|
|
(Not indexes.Any(Function(i) i.Type = MCH_OY.DISP) And Type = MCH_OY.DISP And Count > 0) Then
|
|
|
|
m_IsSelected = False
|
|
|
|
' La de-evidenzio
|
|
Dim bEnabModif As Boolean = EgtGetEnableModified()
|
|
EgtDisableModified()
|
|
EgtResetMark(EgtGetFirstNameInGroup(Id, MCH_MGR_CL))
|
|
EgtSetStatus(EgtGetFirstNameInGroup(Id, MCH_MGR_AUXVIEW), GDB_ST.OFF)
|
|
SelData.ClearIdSub()
|
|
If bEnabModif Then EgtEnableModified()
|
|
' Ne deseleziono la geometria
|
|
EgtDeselectAll()
|
|
|
|
Map.refOperationsListExpanderVM.OnPropertyChanged("MoveUp_IsEnabled")
|
|
Map.refOperationsListExpanderVM.OnPropertyChanged("MoveDown_IsEnabled")
|
|
NotifyPropertyChanged("IsSelected")
|
|
' Aggiorno visualizzazione
|
|
EgtDraw()
|
|
Return
|
|
End If
|
|
' Imposto la fase di lavorazione corrente
|
|
EgtSetCurrPhase(EgtGetOperationPhase(Id))
|
|
' Abilito la selezione dei Percorsi di Lavorazione
|
|
Map.refProjectVM.SceneSelType = SceneSelTypeOpt.MACHPATH
|
|
' Abilito la selezione delle curve
|
|
Map.refProjectVM.SceneSelMode = SceneSelModeOpt.ALL
|
|
' Se l'operazione è una disposizione
|
|
If EgtGetOperationType(Id) = MCH_OY.DISP Then
|
|
'' Abilito la selezione delle Fixture
|
|
'Map.refProjectVM.SceneSelType = SceneSelTypeOpt.FIXTURE
|
|
' Abilito la selezione di tutti i tipi di geometria
|
|
'Map.refProjectVM.SceneSelMode = SceneSelModeOpt.ALL
|
|
' Altrimenti è una lavorazione
|
|
Else
|
|
' Imposto come corrente la lavorazione selezionata
|
|
EgtSetCurrMachining(Id)
|
|
' Evidenzio la lavorazione(operazione) selezionata
|
|
Dim bEnabModif As Boolean = EgtGetEnableModified()
|
|
EgtDisableModified()
|
|
EgtSetMark(EgtGetFirstNameInGroup(Id, MCH_MGR_CL))
|
|
EgtSetStatus(EgtGetFirstNameInGroup(Id, MCH_MGR_AUXVIEW), GDB_ST.ON_)
|
|
If bEnabModif Then EgtEnableModified()
|
|
' Seleziono la geometria della lavorazione
|
|
SelData.ClearIdSub()
|
|
Dim CountIndex As Integer = 0
|
|
Dim EntityIndex As Integer = 0
|
|
Dim SubEntityIndex As Integer = 0
|
|
While EgtGetMachiningGeometry(CountIndex, EntityIndex, SubEntityIndex)
|
|
EgtSelectObj( EntityIndex)
|
|
If EgtGetType( EntityIndex) = GDB_TY.SRF_MESH Or EgtGetType( EntityIndex) = GDB_TY.SRF_FRGN Then
|
|
SelData.AddIdSub(EntityIndex, SubEntityIndex)
|
|
End If
|
|
CountIndex += 1
|
|
End While
|
|
End If
|
|
' Notifico al contentcontrol OperationParameter di aggiornarsi
|
|
If Not IsNothing( Map.refOperationParametersExpanderVM) Then
|
|
Map.refOperationParametersExpanderVM.OnPropertyChanged("OperationParameters")
|
|
End If
|
|
Map.refOperationsListExpanderVM.OnPropertyChanged("MoveUp_IsEnabled")
|
|
Map.refOperationsListExpanderVM.OnPropertyChanged("MoveDown_IsEnabled")
|
|
' Notifico l'operazione selezionata all'expander con l'albero delle lavorazioni aggiungibili
|
|
If Not IsNothing( Map.refMachiningTreeExpanderVM) Then
|
|
Map.refMachiningTreeExpanderVM.nSelectedOperationId = Me.Id
|
|
End If
|
|
' Aggiorno visualizzazione
|
|
EgtDraw()
|
|
End If
|
|
'OnPropertyChanged("ToolExpanderHeader")
|
|
Map.refOperationsListExpanderVM.OnPropertyChanged("DuplicateCmd_IsEnabled")
|
|
Map.refOperationsListExpanderVM.OnPropertyChanged("MachToDb_IsEnabled")
|
|
Map.refOperationsListExpanderVM.OnPropertyChanged("Rename_IsEnabled")
|
|
NotifyPropertyChanged("IsSelected")
|
|
End Set
|
|
End Property
|
|
|
|
Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
|
|
|
|
Public Sub NotifyPropertyChanged(propName As String)
|
|
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propName))
|
|
End Sub
|
|
|
|
End Class
|