Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| eec592c782 | |||
| dc6c075508 | |||
| 2735c66b11 | |||
| bc22e32821 | |||
| 5624f05ad6 | |||
| 0c68d8c142 | |||
| e2480dcf1d | |||
| cc63f278c6 | |||
| 54360bbccf | |||
| c71d7c84f7 | |||
| a2a1b83888 | |||
| 2e863c0ce2 | |||
| 34fa0909ab |
@@ -1,5 +1,7 @@
|
||||
Imports System.Collections.ObjectModel
|
||||
Imports System.ComponentModel
|
||||
Imports EgtUILib
|
||||
Imports EgtUILib.EgtInterface
|
||||
|
||||
' Classe che definisce un elemento di base del TreeView
|
||||
Public Class TreeViewItemBase
|
||||
@@ -31,7 +33,7 @@ Public Class TreeViewItemBase
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_isExpanded As Boolean
|
||||
Friend m_isExpanded As Boolean
|
||||
Public Property IsExpanded As Boolean
|
||||
Get
|
||||
Return m_isExpanded
|
||||
@@ -92,6 +94,7 @@ Public Class InheritableTreeViewItem
|
||||
Implements INotifyPropertyChanged
|
||||
|
||||
Friend m_Name As String
|
||||
|
||||
Public Property Name As String
|
||||
Get
|
||||
Return m_Name
|
||||
@@ -195,7 +198,6 @@ Public Class ParentItem
|
||||
Inherits TreeViewItemBase
|
||||
|
||||
Private m_sPictureString As String
|
||||
Private m_Items As ObservableCollection(Of ChildItem)
|
||||
|
||||
Public Property PictureString As String
|
||||
Get
|
||||
@@ -209,6 +211,7 @@ Public Class ParentItem
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_Items As ObservableCollection(Of ChildItem)
|
||||
Public Property Items As ObservableCollection(Of ChildItem)
|
||||
Get
|
||||
Return m_Items
|
||||
@@ -255,4 +258,4 @@ Public Class ChildItem
|
||||
MyBase.New(Name, IsSelected, IsExpanded, IsActive)
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
End Class
|
||||
@@ -1038,6 +1038,9 @@
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\DrawPanel\StmMoveVertex.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\TreeView\LampSel.png" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>IF "$(PlatformName)"=="x86" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\EgtCAM5\EgtCAM5R32.exe
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
Imports System.IO
|
||||
Imports EgtCAM5.MyMachinePanelVM
|
||||
Imports System.Security.Cryptography
|
||||
Imports System.Windows.Forms.AxHost
|
||||
Imports EgtUILib
|
||||
Imports EgtWPFLib5
|
||||
|
||||
@@ -98,11 +97,11 @@ Public Class MyMachGroupPanelVM
|
||||
' Vuoi creare un nuovo Gruppo di Lavoro con i pezzi selezionati ? - LAVORA
|
||||
If MessageBox.Show(EgtMsg(5552), EgtMsg(5002), MessageBoxButton.YesNo, MessageBoxImage.Question) = MessageBoxResult.Yes Then
|
||||
Return If(AddNewMachGroup(nGroupId, vPart), 0, 1)
|
||||
Else
|
||||
Else
|
||||
Return -2
|
||||
End If
|
||||
End If
|
||||
' Se non ci sono pezzi selezionati
|
||||
' Se non ci sono pezzi selezionati
|
||||
Else
|
||||
' se ci sono gruppi di lavorazione
|
||||
If bMachGroup Then
|
||||
@@ -111,10 +110,10 @@ Public Class MyMachGroupPanelVM
|
||||
nGroupId = EgtGetFirstMachGroup()
|
||||
End If
|
||||
Return If(EgtSetCurrMachGroup(nGroupId), 0, 1)
|
||||
' se altrimenti ammessi gruppi di lavoro vuoti
|
||||
' se altrimenti ammessi gruppi di lavoro vuoti
|
||||
ElseIf bAllowEmpty Then
|
||||
Return If(AddNewMachGroup(nGroupId, vPart), 0, 1)
|
||||
' altrimenti esco
|
||||
' altrimenti esco
|
||||
Else
|
||||
Return -1
|
||||
End If
|
||||
|
||||
@@ -70,6 +70,6 @@ Imports System.Windows
|
||||
' by using the '*' as shown below:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("2.7.3.1")>
|
||||
<Assembly: AssemblyFileVersion("2.7.3.1")>
|
||||
<Assembly: AssemblyVersion("2.7.3.2")>
|
||||
<Assembly: AssemblyFileVersion("2.7.3.2")>
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||
|
||||
<Expander IsExpanded="{Binding IsEnabled}" IsEnabled="{Binding IsEnabled}"
|
||||
Style="{StaticResource ExpanderStyle}">
|
||||
Style="{StaticResource ExpanderStyle}">
|
||||
<Expander.Header>
|
||||
<TextBlock Text="{Binding PropertiesMsg}"/>
|
||||
</Expander.Header>
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
<UserControl x:Class="InputExpanderV"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:EgtCAM5="clr-namespace:EgtCAM5"
|
||||
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
|
||||
|
||||
<Expander Header="{Binding Title}" IsExpanded="{Binding IsExpanded}" IsEnabled="{Binding IsEnabled}"
|
||||
Style="{StaticResource ExpanderStyle}">
|
||||
Style="{StaticResource ExpanderStyle}">
|
||||
<StackPanel>
|
||||
<StackPanel.Style>
|
||||
<Style TargetType="{x:Type StackPanel}">
|
||||
@@ -16,27 +18,80 @@
|
||||
</StackPanel.Style>
|
||||
<TextBlock Text="{Binding TextBlock}"
|
||||
Visibility="{Binding TextVisibility}" Margin="5,5,0,5"/>
|
||||
<TextBox x:Name="Txt" Text="{Binding TextBox,UpdateSourceTrigger=PropertyChanged}"
|
||||
PreviewKeyDown="TextBox_PreviewKeyDown" Height="Auto"
|
||||
Visibility="{Binding TextVisibility}" Margin="5,0,5,5" >
|
||||
<TextBox.InputBindings>
|
||||
<KeyBinding Key="Enter" Command="{Binding DoneCommand}"/>
|
||||
<KeyBinding Key="S" Modifiers="Control" Command="{Binding ShowCommand}"/>
|
||||
</TextBox.InputBindings>
|
||||
</TextBox>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBox x:Name="Txt" Text="{Binding TextBox,UpdateSourceTrigger=PropertyChanged}"
|
||||
PreviewKeyDown="TextBox_PreviewKeyDown" Height="Auto"
|
||||
Visibility="{Binding TextVisibility}" Margin="5,0,5,5">
|
||||
<TextBox.InputBindings>
|
||||
<KeyBinding Key="Enter" Command="{Binding DoneCommand}"/>
|
||||
<KeyBinding Key="S" Modifiers="Control" Command="{Binding ShowCommand}"/>
|
||||
</TextBox.InputBindings>
|
||||
</TextBox>
|
||||
<Button Grid.Column="1"
|
||||
Content="+"
|
||||
Command="{Binding ShowInfoItemCommand}"
|
||||
Visibility="{Binding ShowInfoItemVisibility}"
|
||||
Width="20"
|
||||
Height="20"
|
||||
Margin="5,-1,5,0"
|
||||
VerticalAlignment="Top"/>
|
||||
</Grid>
|
||||
<CheckBox Content="{Binding CheckBoxText}" IsChecked="{Binding IsChecked}"
|
||||
Visibility="{Binding CheckVisibility}" Margin="5,0,5,5"/>
|
||||
<ComboBox ItemsSource="{Binding ComboItemsList}" SelectedIndex="{Binding ComboSelectedIndex}"
|
||||
Visibility="{Binding ComboVisibility}" Margin="5,0,5,5"/>
|
||||
Visibility="{Binding ComboVisibility}" Margin="5,5,5,5"/>
|
||||
|
||||
<ScrollViewer HorizontalScrollBarVisibility="Auto"
|
||||
VerticalScrollBarVisibility="Auto"
|
||||
MaxHeight="190"
|
||||
Margin="2,5,0,10">
|
||||
<ItemsControl ItemsSource="{Binding InfoList}"
|
||||
Visibility="{Binding InfoVisibility}">
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="{Binding Key}"
|
||||
ToolTip="{Binding Key}"
|
||||
Width="70"
|
||||
HorizontalAlignment="Left"
|
||||
Margin="0,6,0,0"/>
|
||||
<TextBox Grid.Column="1"
|
||||
Text="{Binding Valour, UpdateSourceTrigger=PropertyChanged}"
|
||||
Margin="8,5,2,10">
|
||||
<TextBox.InputBindings>
|
||||
<KeyBinding Key="Enter" Command="{Binding DoneInfoCommand}"/>
|
||||
</TextBox.InputBindings>
|
||||
</TextBox>
|
||||
<Button Grid.Column="2"
|
||||
Content="-"
|
||||
Command="{Binding RemoveInfoItemCommand}"
|
||||
Width="20"
|
||||
Height="20"
|
||||
Margin="2,-2,4,5"/>
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
</ScrollViewer>
|
||||
|
||||
<Grid Margin="5,0,5,5">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Button Command="{Binding ShowCommand}" Visibility="{Binding ShowBtnVisibility}"
|
||||
Content="{Binding ShowMsg}" Style="{StaticResource EgtCAM5_InputButton}"/>
|
||||
Content="{Binding ShowMsg}" Style="{StaticResource EgtCAM5_InputButton}"/>
|
||||
<Button Command="{Binding DoneCommand}" Grid.Column="1"
|
||||
Content="{Binding OkMsg}" Style="{StaticResource EgtCAM5_InputButton}"/>
|
||||
Content="{Binding OkMsg}" Style="{StaticResource EgtCAM5_InputButton}"/>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
Public Class InputExpanderV
|
||||
|
||||
Private Sub TextBox_PreviewKeyDown(sender As Object, e As KeyEventArgs)
|
||||
If e.Key = Key.Enter And Keyboard.Modifiers = ModifierKeys.Shift Then
|
||||
If (e.Key = Key.Enter And (Keyboard.Modifiers And ModifierKeys.Shift)= ModifierKeys.Shift) Or
|
||||
(e.Key = Key.V And (Keyboard.Modifiers And ModifierKeys.Control) = ModifierKeys.Control) Then
|
||||
Txt.AcceptsReturn = True
|
||||
Txt.TextWrapping = TextWrapping.Wrap
|
||||
Txt.AppendText(Environment.NewLine)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
@@ -6,6 +6,23 @@ Public Class InputExpanderVM
|
||||
|
||||
#Region "FIELDS & PROPERTIES"
|
||||
|
||||
' Variabile temporanea per salvare bShow
|
||||
Private m_tmpbShow As Boolean
|
||||
|
||||
Private m_tmpInfoList As New ObservableCollection(Of InfoItem)
|
||||
''' <summary>
|
||||
''' Lista temporanea delle info
|
||||
''' </summary>
|
||||
Private Property tmpInfoList As ObservableCollection(Of InfoItem)
|
||||
Get
|
||||
Return m_tmpInfoList
|
||||
End Get
|
||||
Set(value As ObservableCollection(Of InfoItem))
|
||||
m_tmpInfoList = value
|
||||
OnPropertyChanged(NameOf(tmpInfoList))
|
||||
End Set
|
||||
End Property
|
||||
|
||||
' Expander fields
|
||||
Private m_IsExpanded As Boolean
|
||||
Public Property IsExpanded As Boolean
|
||||
@@ -14,7 +31,7 @@ Public Class InputExpanderVM
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
m_IsExpanded = value
|
||||
OnPropertyChanged("IsExpanded")
|
||||
OnPropertyChanged(NameOf(IsExpanded))
|
||||
End Set
|
||||
End Property
|
||||
|
||||
@@ -25,7 +42,7 @@ Public Class InputExpanderVM
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
m_IsEnabled = value
|
||||
OnPropertyChanged("IsEnabled")
|
||||
OnPropertyChanged(NameOf(IsEnabled))
|
||||
End Set
|
||||
End Property
|
||||
|
||||
@@ -36,7 +53,7 @@ Public Class InputExpanderVM
|
||||
End Get
|
||||
Set(value As String)
|
||||
m_Title = value
|
||||
OnPropertyChanged("Title")
|
||||
OnPropertyChanged(NameOf(Title))
|
||||
End Set
|
||||
End Property
|
||||
|
||||
@@ -48,7 +65,7 @@ Public Class InputExpanderVM
|
||||
End Get
|
||||
Set(value As String)
|
||||
m_TextBlock = value
|
||||
OnPropertyChanged("TextBlock")
|
||||
OnPropertyChanged(NameOf(TextBlock))
|
||||
End Set
|
||||
End Property
|
||||
|
||||
@@ -61,7 +78,7 @@ Public Class InputExpanderVM
|
||||
Set(value As String)
|
||||
m_TextBox = value
|
||||
Map.refProjectVM.NotifyInputText(value)
|
||||
OnPropertyChanged("TextBox")
|
||||
OnPropertyChanged(NameOf(TextBox))
|
||||
End Set
|
||||
End Property
|
||||
|
||||
@@ -73,7 +90,7 @@ Public Class InputExpanderVM
|
||||
Set(value As Visibility)
|
||||
If value <> m_TextVisibility Then
|
||||
m_TextVisibility = value
|
||||
OnPropertyChanged("TextVisibility")
|
||||
OnPropertyChanged(NameOf(TextVisibility))
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
@@ -85,7 +102,7 @@ Public Class InputExpanderVM
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
m_FocusTextBox = value
|
||||
OnPropertyChanged("FocusTextBox")
|
||||
OnPropertyChanged(NameOf(FocusTextBox))
|
||||
End Set
|
||||
End Property
|
||||
|
||||
@@ -97,7 +114,7 @@ Public Class InputExpanderVM
|
||||
End Get
|
||||
Set(value As String)
|
||||
m_CheckBoxText = value
|
||||
OnPropertyChanged("CheckBoxText")
|
||||
OnPropertyChanged(NameOf(CheckBoxText))
|
||||
End Set
|
||||
End Property
|
||||
|
||||
@@ -110,7 +127,7 @@ Public Class InputExpanderVM
|
||||
If value <> m_IsChecked Then
|
||||
Map.refProjectVM.SetLastBoolean(value)
|
||||
m_IsChecked = value
|
||||
OnPropertyChanged("IsChecked")
|
||||
OnPropertyChanged(NameOf(IsChecked))
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
@@ -123,7 +140,7 @@ Public Class InputExpanderVM
|
||||
Set(value As Visibility)
|
||||
If value <> m_CheckVisibility Then
|
||||
m_CheckVisibility = value
|
||||
OnPropertyChanged("CheckVisibility")
|
||||
OnPropertyChanged(NameOf(CheckVisibility))
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
@@ -136,19 +153,54 @@ Public Class InputExpanderVM
|
||||
End Get
|
||||
Set(value As ObservableCollection(Of String))
|
||||
m_ComboItemsList = value
|
||||
OnPropertyChanged("ComboItemsList")
|
||||
OnPropertyChanged(NameOf(ComboItemsList))
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_ComboSelectedIndex As Integer
|
||||
Private m_InfoList As New ObservableCollection(Of InfoItem)
|
||||
''' <summary>
|
||||
''' Lista delle info modificate
|
||||
''' </summary>
|
||||
Public Property InfoList As ObservableCollection(Of InfoItem)
|
||||
Get
|
||||
Return m_InfoList
|
||||
End Get
|
||||
Set(value As ObservableCollection(Of InfoItem))
|
||||
m_InfoList = value
|
||||
OnPropertyChanged(NameOf(InfoList))
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_ComboSelectedIndex As Integer = GDB_ID.NULL
|
||||
Public Property ComboSelectedIndex As Integer
|
||||
Get
|
||||
Return m_ComboSelectedIndex
|
||||
End Get
|
||||
Set(value As Integer)
|
||||
Map.refProjectVM.SetLastInteger(value)
|
||||
If m_tmpbShow Then Map.refProjectVM.SetLastInteger(value)
|
||||
m_ComboSelectedIndex = value
|
||||
OnPropertyChanged("ComboSelectedIndex")
|
||||
' Assegno l'indice selezionato ad una variabile temporanea per utilizzarlo quando rimuovo l'info dalla lista
|
||||
Dim tmpComboSelectedIndex As Integer = ComboSelectedIndex
|
||||
' Controllo se l'indice è maggiore o uguale a zero e la lista tmp contiene valori
|
||||
If m_ComboSelectedIndex >= 0 AndAlso tmpInfoList.Count > 0 Then
|
||||
' Controllo se la info è contenuta nella lista ComboItemsList
|
||||
If ComboItemsList.Contains(tmpInfoList(m_ComboSelectedIndex).sKey) Then
|
||||
' Aggiungo la info alla lista per visualizzarla
|
||||
InfoList.Add(New InfoItem(tmpInfoList(m_ComboSelectedIndex).nId, tmpInfoList(m_ComboSelectedIndex).sKey, tmpInfoList(m_ComboSelectedIndex).sValour))
|
||||
' Nascondo la combobox
|
||||
ComboVisibility = Visibility.Collapsed
|
||||
' Rimuovo la info dalla ComboItemsList
|
||||
ComboItemsList.Remove(tmpInfoList(m_ComboSelectedIndex).sKey)
|
||||
End If
|
||||
' Rimuovo la info dalla tmpInfoList
|
||||
tmpInfoList.Remove(tmpInfoList(tmpComboSelectedIndex))
|
||||
End If
|
||||
' Rendo invisibile il pulsante per attivare la combo
|
||||
If ComboItemsList.Count <= 0 Then ShowInfoItemVisibility = Visibility.Collapsed
|
||||
m_ComboSelectedIndex = GDB_ID.NULL
|
||||
OnPropertyChanged(NameOf(ComboSelectedIndex))
|
||||
OnPropertyChanged(NameOf(ComboItemsList))
|
||||
OnPropertyChanged(NameOf(InfoList))
|
||||
End Set
|
||||
End Property
|
||||
|
||||
@@ -160,7 +212,7 @@ Public Class InputExpanderVM
|
||||
Set(value As Visibility)
|
||||
If value <> m_ComboVisibility Then
|
||||
m_ComboVisibility = value
|
||||
OnPropertyChanged("ComboVisibility")
|
||||
OnPropertyChanged(NameOf(ComboVisibility))
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
@@ -173,13 +225,47 @@ Public Class InputExpanderVM
|
||||
End Get
|
||||
Set(value As Visibility)
|
||||
m_ShowBtnVisibility = value
|
||||
OnPropertyChanged("ShowBtnVisibility")
|
||||
OnPropertyChanged(NameOf(ShowBtnVisibility))
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_ShowInfoItemVisibility As Visibility
|
||||
''' <summary>
|
||||
''' Propietà visibilità bottone +
|
||||
''' </summary>
|
||||
Public Property ShowInfoItemVisibility As Visibility
|
||||
Get
|
||||
Return m_ShowInfoItemVisibility
|
||||
End Get
|
||||
Set(value As Visibility)
|
||||
If value <> m_ShowInfoItemVisibility Then
|
||||
m_ShowInfoItemVisibility = value
|
||||
OnPropertyChanged(NameOf(ShowInfoItemVisibility))
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_InfoVisibility As Visibility
|
||||
''' <summary>
|
||||
''' Propietà visibilità lista info modificate
|
||||
''' </summary>
|
||||
Public Property InfoVisibility As Visibility
|
||||
Get
|
||||
Return m_InfoVisibility
|
||||
End Get
|
||||
Set(value As Visibility)
|
||||
If value <> m_InfoVisibility Then
|
||||
m_InfoVisibility = value
|
||||
OnPropertyChanged(NameOf(InfoVisibility))
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
' Commands definition
|
||||
Private m_cmdShow As ICommand
|
||||
Private m_cmdDone As ICommand
|
||||
Private m_cmdShowInfoItem As ICommand
|
||||
Private m_cmdRemoveInfoItem As ICommand
|
||||
|
||||
#Region "Messages"
|
||||
|
||||
@@ -257,7 +343,18 @@ Public Class InputExpanderVM
|
||||
''' Execute the Point. This method is invoked by the PointCommand.
|
||||
''' </summary>
|
||||
Public Sub Done(ByVal param As Object)
|
||||
Map.refProjectVM.Done(m_TextBox)
|
||||
' Controllo se la lista contenente la info modificata sia presente
|
||||
If InfoList.Count > 0 Then
|
||||
' Ciclo sulla lista
|
||||
For Each Item As InfoItem In InfoList
|
||||
Map.refProjectVM.NotifyInputText((Item.Key & "=" & Item.Valour).Trim())
|
||||
' Assegno a m_TextBox la info modificata
|
||||
m_TextBox &= vbCrLf & (Item.Key & "=" & Item.Valour).Trim() & vbCrLf
|
||||
Next
|
||||
End If
|
||||
' Rimuovo eventuali spazi
|
||||
Dim tmpTextBox As String = m_TextBox.Replace(" ", "")
|
||||
Map.refProjectVM.Done(tmpTextBox)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
@@ -269,6 +366,30 @@ Public Class InputExpanderVM
|
||||
|
||||
#End Region ' DoneCommand
|
||||
|
||||
#Region "ShowInfoItemCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Comando per la visualizzazione della combobox
|
||||
''' </summary>
|
||||
Public ReadOnly Property ShowInfoItemCommand As ICommand
|
||||
Get
|
||||
If m_cmdShowInfoItem Is Nothing Then
|
||||
m_cmdShowInfoItem = New Command(AddressOf ShowInfoItem)
|
||||
End If
|
||||
Return m_cmdShowInfoItem
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Funzione per la visualizzazione della combobox
|
||||
''' </summary>
|
||||
''' <param name="param"></param>
|
||||
Public Sub ShowInfoItem(ByVal param As Object)
|
||||
ComboVisibility = Visibility.Visible
|
||||
End Sub
|
||||
|
||||
#End Region ' ShowInfoItemCommand
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "METHODS"
|
||||
@@ -279,13 +400,37 @@ Public Class InputExpanderVM
|
||||
TextBlock = PrepareInputBoxParam.sLabel
|
||||
TextBox = ""
|
||||
TextVisibility = Visibility.Visible
|
||||
' Controllo se il titolo è uguale a INFO se si
|
||||
If Title = EgtMsg(5359).ToUpper() Then
|
||||
' Metto tmpbShow a false
|
||||
m_tmpbShow = False
|
||||
' Rendo visibile la lista delle info selezionate
|
||||
InfoVisibility = Visibility.Visible
|
||||
' Pulisco la lista tmpInfoList
|
||||
tmpInfoList.Clear()
|
||||
' Pulisco la lista InfoList
|
||||
InfoList.Clear()
|
||||
' Pulisco la lista ComboItemsList
|
||||
ComboItemsList.Clear()
|
||||
' Popolo la lista InfoList
|
||||
GetInfoList()
|
||||
' Rendo visibile il pulsante che mostra la lista delle info
|
||||
ShowInfoItemVisibility = If(m_ComboItemsList.Count > 0, Visibility.Visible, Visibility.Collapsed)
|
||||
End If
|
||||
End If
|
||||
If PrepareInputBoxParam.sCheckLabel <> "" Then
|
||||
CheckBoxText = PrepareInputBoxParam.sCheckLabel
|
||||
CheckVisibility = Visibility.Visible
|
||||
End If
|
||||
If PrepareInputBoxParam.bShowCombo Then
|
||||
' Assegno a tmpbShow PrepareInputBoxParam.bShowCombo
|
||||
m_tmpbShow = PrepareInputBoxParam.bShowCombo
|
||||
' Pulisco la lista ComboItemsList
|
||||
ComboItemsList.Clear()
|
||||
' Pulisco la lista tmpInfoList
|
||||
tmpInfoList.Clear()
|
||||
' Pulisco la lista InfoList
|
||||
InfoList.Clear()
|
||||
ComboVisibility = Visibility.Visible
|
||||
End If
|
||||
If PrepareInputBoxParam.bShowBtn Then
|
||||
@@ -302,6 +447,8 @@ Public Class InputExpanderVM
|
||||
CheckVisibility = Visibility.Collapsed
|
||||
ComboVisibility = Visibility.Collapsed
|
||||
ShowBtnVisibility = Visibility.Collapsed
|
||||
ShowInfoItemVisibility = Visibility.Collapsed
|
||||
InfoVisibility = Visibility.Collapsed
|
||||
IsExpanded = False
|
||||
IsEnabled = False
|
||||
End Sub
|
||||
@@ -329,12 +476,42 @@ Public Class InputExpanderVM
|
||||
|
||||
Private Function AddInputBoxCombo(ByVal sText As String, ByVal bSelected As Boolean) As Boolean
|
||||
ComboItemsList.Add(sText)
|
||||
|
||||
If bSelected Then
|
||||
ComboSelectedIndex = ComboItemsList.Count - 1
|
||||
End If
|
||||
Return True
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' Rimovi nota da info lista
|
||||
''' </summary>
|
||||
''' <param name="InfoItem">Informazione da eliminare</param>
|
||||
Friend Sub RemoveItemInfo(InfoItem As InfoItem)
|
||||
' Rimuovo info da lista modifica
|
||||
InfoList.Remove(InfoItem)
|
||||
' Riaggiungo la info eliminata
|
||||
ComboItemsList.Add(InfoItem.sKey)
|
||||
' Riaggiungo la info eliminata
|
||||
tmpInfoList.Add(InfoItem)
|
||||
' Rendo visibile il pulsante per attivare la combo
|
||||
ShowInfoItemVisibility = Visibility.Visible
|
||||
End Sub
|
||||
|
||||
Private Sub GetInfoList()
|
||||
Dim tmpInfoList As String() = Nothing
|
||||
Dim sKeyVal() As String = Nothing
|
||||
Dim Index As Integer = 0
|
||||
EgtGetAllInfo(Map.refManageLayerExpanderVM.m_nObjTreeOldId, tmpInfoList)
|
||||
If Not IsNothing(tmpInfoList) Then
|
||||
For Each ItemInfo As String In tmpInfoList
|
||||
sKeyVal = ItemInfo.Trim().Split(New Char() {"="c})
|
||||
InfoList.Add(New InfoItem(Index, sKeyVal(0), sKeyVal(1)))
|
||||
Index += 1
|
||||
Next
|
||||
End If
|
||||
End Sub
|
||||
|
||||
#End Region ' Methods
|
||||
|
||||
End Class
|
||||
|
||||
@@ -74,12 +74,12 @@ Public Class LayerTreeViewItem
|
||||
m_bOnOff = value
|
||||
' se abilitato, eseguo operazione
|
||||
If m_SendCmd Then
|
||||
Map.refProjectVM.SetLastInteger(Id)
|
||||
If value Then
|
||||
Map.refProjectVM.ExecuteCommand(Controller.CMD.SHOW)
|
||||
EgtSetStatus(Id, GDB_ST.ON_)
|
||||
Else
|
||||
Map.refProjectVM.ExecuteCommand(Controller.CMD.HIDE)
|
||||
EgtSetStatus(Id, GDB_ST.OFF)
|
||||
End If
|
||||
EgtDraw()
|
||||
End If
|
||||
Dim bOnOffGroup As Boolean = ((Keyboard.Modifiers And ModifierKeys.Shift) = ModifierKeys.Shift) AndAlso Items.Count > 0
|
||||
If bOnOffGroup Then
|
||||
@@ -103,6 +103,7 @@ Public Class LayerTreeViewItem
|
||||
EgtDraw()
|
||||
End If
|
||||
End If
|
||||
Map.refProjectVM.EmitTitle()
|
||||
End Set
|
||||
End Property
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<UserControl x:Class="ManageLayerExpanderV"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
|
||||
xmlns:expression="clr-namespace:Microsoft.Expression.Interactivity.Core;assembly=Microsoft.Expression.Interactions"
|
||||
xmlns:local="clr-namespace:EgtCAM5">
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
|
||||
xmlns:expression="clr-namespace:Microsoft.Expression.Interactivity.Core;assembly=Microsoft.Expression.Interactions"
|
||||
xmlns:local="clr-namespace:EgtCAM5">
|
||||
|
||||
<Expander IsExpanded="True" Style="{StaticResource ExpanderStyle}">
|
||||
<Expander.Header>
|
||||
@@ -20,11 +20,11 @@
|
||||
<Button Content="{Binding NewLayerMsg}" Command="{Binding NewLayerCommand}" Height="30"/>
|
||||
<Button Content="{Binding ColorMsg}" Command="{Binding LayerColorCommand}" Height="30"/>
|
||||
</UniformGrid>
|
||||
|
||||
<TreeView Name="LayerTreeView" MinHeight="150" MaxHeight="250"
|
||||
ItemsSource="{Binding Path=LayerList}"
|
||||
VirtualizingStackPanel.IsVirtualizing = "True"
|
||||
VirtualizingStackPanel.VirtualizationMode = "Recycling">
|
||||
|
||||
<TreeView x:Name="LayerTreeView" MinHeight="300" MaxHeight="400"
|
||||
ItemsSource="{Binding Path=LayerList}"
|
||||
VirtualizingStackPanel.IsVirtualizing = "True"
|
||||
VirtualizingStackPanel.VirtualizationMode = "Recycling">
|
||||
<interactivity:Interaction.Triggers>
|
||||
<interactivity:EventTrigger EventName="MouseDoubleClick">
|
||||
<interactivity:InvokeCommandAction Command="{Binding TreeViewDoubleClickCommand}"/>
|
||||
@@ -50,8 +50,8 @@
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<ToggleButton Style="{StaticResource EgtCAM5_LampToggleButton}" Grid.Column="0"
|
||||
IsChecked="{Binding OnOff}" Visibility="{Binding IsHidden}" Focusable="False" Height="15" Width="15" Margin="0,0,5,0"/>
|
||||
<ToggleButton Style="{StaticResource EgtCAM5_LampToggleButton}" Grid.Column="0"
|
||||
IsChecked="{Binding OnOff}" Visibility="{Binding IsHidden}" Focusable="True" Height="15" Width="15" Margin="0,0,5,0"/>
|
||||
<Image Grid.Column="1" Source="{Binding PictureString}" Height="15" Margin="0,0,5,0"/>
|
||||
<TextBlock Grid.Column="2" Text="{Binding Name}" Margin="0,0,5,0"/>
|
||||
<Ellipse Grid.Column="3" Height="10" Width="10" Fill="{Binding LayerColor}" />
|
||||
@@ -61,7 +61,7 @@
|
||||
</TreeView.Resources>
|
||||
|
||||
<!--Style dei nodi CathegoryItem che li riquadra di azzurro quando clicckati ed elimina l'ombra grigia
|
||||
che si presenta quando la categoria rimane vuota (ombra causata dal multibinding).-->
|
||||
che si presenta quando la categoria rimane vuota (ombra causata dal multibinding).-->
|
||||
<TreeView.ItemContainerStyle>
|
||||
<Style TargetType="{x:Type TreeViewItem}">
|
||||
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
|
||||
|
||||
@@ -166,7 +166,7 @@ Public Class ManageLayerExpanderVM
|
||||
Public Sub NewPart(ByVal param As Object)
|
||||
Map.refProjectVM.ExecuteCommand(Controller.CMD.NEWPART)
|
||||
' Seleziono nell'albero il layer del pezzo appena creato
|
||||
SelectIdInObjTree(EgtGetCurrLayer(), False)
|
||||
SelectIdInObjTreeNoMark(EgtGetCurrLayer())
|
||||
End Sub
|
||||
|
||||
#End Region ' NewPartCommand
|
||||
@@ -191,7 +191,7 @@ Public Class ManageLayerExpanderVM
|
||||
Public Sub NewLayer(ByVal param As Object)
|
||||
Map.refProjectVM.ExecuteCommand(Controller.CMD.NEWLAYER)
|
||||
' Seleziono nell'albero il layer appena creato
|
||||
SelectIdInObjTree(EgtGetCurrLayer(), False)
|
||||
SelectIdInObjTreeNoMark(EgtGetCurrLayer())
|
||||
End Sub
|
||||
|
||||
#End Region ' NewLayerCommand
|
||||
@@ -492,7 +492,7 @@ Public Class ManageLayerExpanderVM
|
||||
Map.refProjectVM.SetLastInteger(RightClickedTreeItemId)
|
||||
Map.refProjectVM.ExecuteCommand(Controller.CMD.DELETE)
|
||||
' Seleziono prossimo
|
||||
SelectIdInObjTree(nNewId, False)
|
||||
SelectIdInObjTreeNoMark(nNewId)
|
||||
End Sub
|
||||
|
||||
#End Region ' DeleteCommand
|
||||
@@ -528,16 +528,18 @@ Public Class ManageLayerExpanderVM
|
||||
#Region "METHODS"
|
||||
|
||||
Private WithEvents ObjTreeTimer As New System.Windows.Threading.DispatcherTimer
|
||||
Private m_nObjTreeOldId As Integer = GDB_ID.NULL
|
||||
Friend m_nObjTreeOldId As Integer = GDB_ID.NULL
|
||||
Private m_nObjTreeMenuId As Integer = GDB_ID.NULL
|
||||
Private m_bEnableUpdateObjInObjTree As Boolean = True
|
||||
|
||||
Friend Sub SelectIdInObjTreeNoMark(nId As Integer)
|
||||
SelectIdInObjTree(nId, False)
|
||||
LayerTreeViewItem.m_MarkOnSel = False
|
||||
MySelectIdInObjTree(nId)
|
||||
LayerTreeViewItem.m_MarkOnSel = True
|
||||
End Sub
|
||||
|
||||
Friend Sub SelectIdInObjTree(nId As Integer)
|
||||
SelectIdInObjTree(nId, True)
|
||||
MySelectIdInObjTree(nId)
|
||||
End Sub
|
||||
|
||||
Friend Sub UpdateObjTreeOldId(ObjTreeOldId As Integer)
|
||||
@@ -581,7 +583,7 @@ Public Class ManageLayerExpanderVM
|
||||
AddGroupInObjTree(GDB_ID.ROOT, GDB_LV.USER, GDB_MD.STD, 0, LayerList)
|
||||
If nOldId <> GDB_ID.NULL Then
|
||||
m_bEnableUpdateObjInObjTree = False
|
||||
If Not SelectIdInObjTree(nOldId, True) Then
|
||||
If Not MySelectIdInObjTree(nOldId) Then
|
||||
Map.refInfoExpanderVM.SetInfoBox(String.Empty)
|
||||
End If
|
||||
m_bEnableUpdateObjInObjTree = True
|
||||
@@ -803,14 +805,11 @@ Public Class ManageLayerExpanderVM
|
||||
Return nOldId
|
||||
End Function
|
||||
|
||||
Private Function SelectIdInObjTree(nId As Integer, bMark As Boolean) As Boolean
|
||||
Private Function MySelectIdInObjTree(nId As Integer) As Boolean
|
||||
Dim tNode As LayerTreeViewItem = SearchIdInLayerList(LayerList, nId, True)
|
||||
If Not IsNothing(tNode) Then
|
||||
If Not bMark Then LayerTreeViewItem.m_MarkOnSel = False
|
||||
tNode.IsSelected = True
|
||||
tNode.NotifyPropertyChanged("IsSelected")
|
||||
If Not bMark Then LayerTreeViewItem.m_MarkOnSel = True
|
||||
tNode.IsExpanded = True
|
||||
m_nObjTreeOldId = nId
|
||||
Return True
|
||||
Else
|
||||
|
||||
+1
-2
@@ -1,5 +1,4 @@
|
||||
Imports System.Windows.Forms.AxHost
|
||||
Imports EgtUILib
|
||||
Imports EgtUILib
|
||||
Imports Microsoft.VisualBasic.ApplicationServices
|
||||
|
||||
Public NotInheritable Class DispositionUtility
|
||||
|
||||
+42
-18
@@ -5,26 +5,25 @@ Public Class DispositionOpListBoxItem
|
||||
|
||||
Public Property StatusAll As Boolean?
|
||||
Get
|
||||
' Recupero gli indici delle operazioni della Disposizione corrente
|
||||
Dim OpIndexes As List(Of Integer) = GetOpIndexes()
|
||||
' Ritorno il valore specificato in base agli stati delle operazioni di cui abbiamo raccolto gli indici
|
||||
If OpIndexes.Count = 0 Then Return False
|
||||
Dim bTemp As Boolean = DirectCast(Map.refOperationsListExpanderVM.OperationList.Item(OpIndexes(0)), MachiningOpListBoxItem).Status
|
||||
For OpInDispIndex = 1 To OpIndexes.Count - 1
|
||||
If DirectCast(Map.refOperationsListExpanderVM.OperationList.Item(OpIndexes(OpInDispIndex)), MachiningOpListBoxItem).Status <> bTemp Then Return Nothing
|
||||
Next
|
||||
Return bTemp
|
||||
' Ottieni gli indici delle operazioni e calcola il valore aggregato
|
||||
Return GetUnifiedStatus(Function(item) item.Status)
|
||||
End Get
|
||||
Set(value As Boolean?)
|
||||
' Recupero gli indici delle operazioni della Disposizione corrente
|
||||
Dim OpIndexes As List(Of Integer) = GetOpIndexes()
|
||||
If OpIndexes.Count = 0 Then
|
||||
NotifyPropertyChanged(NameOf(StatusAll))
|
||||
Return
|
||||
End If
|
||||
For Each OpInDispIndex In OpIndexes
|
||||
DirectCast(Map.refOperationsListExpanderVM.OperationList.Item(OpInDispIndex), MachiningOpListBoxItem).Status = If(IsNothing(value), False, CBool(value))
|
||||
Next
|
||||
' Aggiorna lo stato delle operazioni
|
||||
UpdateAllStatus(value, Sub(item, val) item.Status = CBool(val))
|
||||
NotifyPropertyChanged(NameOf(StatusAll))
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Property OnOffAll As Boolean?
|
||||
Get
|
||||
' Ottieni gli indici delle operazioni e calcola il valore aggregato
|
||||
Return GetUnifiedStatus(Function(item) item.OnOff)
|
||||
End Get
|
||||
Set(value As Boolean?)
|
||||
' Aggiorna lo stato delle operazioni
|
||||
UpdateAllStatus(value, Sub(item, val) item.OnOff = val)
|
||||
NotifyPropertyChanged(NameOf(OnOffAll))
|
||||
End Set
|
||||
End Property
|
||||
|
||||
@@ -53,6 +52,7 @@ Public Class DispositionOpListBoxItem
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
|
||||
' Inserisco in una lista gli indici delle operazioni della Disposizione (a partire dunque dall'indice trovato)
|
||||
Dim OpIndexes As New List(Of Integer)()
|
||||
Dim OpIndex As Integer = DispIndex + 1
|
||||
@@ -64,4 +64,28 @@ Public Class DispositionOpListBoxItem
|
||||
Return OpIndexes
|
||||
End Function
|
||||
|
||||
' Metodo per calcolare il valore aggregato (Checked/Unchecked/Indeterminate)
|
||||
Private Function GetUnifiedStatus(getStatus As Func(Of MachiningOpListBoxItem, Boolean?)) As Boolean?
|
||||
Dim OpIndexes As List(Of Integer) = GetOpIndexes()
|
||||
If OpIndexes.Count = 0 Then Return False
|
||||
|
||||
Dim firstStatus = getStatus(DirectCast(Map.refOperationsListExpanderVM.OperationList.Item(OpIndexes(0)), MachiningOpListBoxItem))
|
||||
For Each index In OpIndexes.Skip(1)
|
||||
Dim currentStatus = getStatus(DirectCast(Map.refOperationsListExpanderVM.OperationList.Item(index), MachiningOpListBoxItem))
|
||||
If currentStatus <> firstStatus Then Return Nothing
|
||||
Next
|
||||
Return firstStatus
|
||||
End Function
|
||||
|
||||
' Metodo per aggiornare lo stato di tutte le operazioni
|
||||
Private Sub UpdateAllStatus(value As Boolean?, updateStatus As Action(Of MachiningOpListBoxItem, Boolean?))
|
||||
Dim OpIndexes As List(Of Integer) = GetOpIndexes()
|
||||
If OpIndexes.Count = 0 Then Return
|
||||
|
||||
For Each index In OpIndexes
|
||||
Dim item = DirectCast(Map.refOperationsListExpanderVM.OperationList.Item(index), MachiningOpListBoxItem)
|
||||
updateStatus(item, If(IsNothing(value), False, CBool(value)))
|
||||
Next
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
+68
-8
@@ -1,6 +1,4 @@
|
||||
Imports System.ComponentModel
|
||||
Imports System.Collections.ObjectModel
|
||||
Imports EgtUILib
|
||||
Imports EgtUILib
|
||||
|
||||
Public Class MachiningOpListBoxItem
|
||||
Inherits OperationListBoxItem
|
||||
@@ -28,11 +26,29 @@ Public Class MachiningOpListBoxItem
|
||||
End If
|
||||
OpIndex += 1
|
||||
Next
|
||||
|
||||
' Se Operazione selezionata metto la lampadina in stato false
|
||||
For Each tmpItem As MachiningOpListBoxItem In Map.refOperationsListExpanderVM.tmpOperationList
|
||||
If tmpItem.Id = Id Then
|
||||
If tmpItem.OnOff Then
|
||||
EgtSetStatus(tmpItem.Id, GDB_ST.OFF)
|
||||
tmpItem.m_bThreeState = False
|
||||
tmpItem.OnOff = False
|
||||
Exit For
|
||||
Else
|
||||
EgtSetStatus(tmpItem.Id, GDB_ST.ON_)
|
||||
tmpItem.OnOff = True
|
||||
Exit For
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
|
||||
' Notifico StatusAll per calcolare lo stato della CheckBox della Disposizione
|
||||
Map.refOperationsListExpanderVM.OperationList(DispIndex).NotifyPropertyChanged(NameOf(DispositionOpListBoxItem.StatusAll))
|
||||
EgtSetOperationMode(Id, m_Status)
|
||||
EgtDraw()
|
||||
End If
|
||||
Map.refProjectVM.EmitTitle()
|
||||
NotifyPropertyChanged(NameOf(Status))
|
||||
End If
|
||||
End Set
|
||||
@@ -101,10 +117,10 @@ Public Class MachiningOpListBoxItem
|
||||
RaiseEvent m_ModifyNameGetFocus()
|
||||
' se esco da modifica
|
||||
End If
|
||||
NotifyPropertyChanged("ModifiedName")
|
||||
NotifyPropertyChanged("Name")
|
||||
NotifyPropertyChanged("Name_Visibility")
|
||||
NotifyPropertyChanged("ModifyName_Visibility")
|
||||
NotifyPropertyChanged(NameOf(ModifiedName))
|
||||
NotifyPropertyChanged(NameOf(Name))
|
||||
NotifyPropertyChanged(NameOf(Name_Visibility))
|
||||
NotifyPropertyChanged(NameOf(ModifyName_Visibility))
|
||||
End Set
|
||||
End Property
|
||||
|
||||
@@ -126,6 +142,35 @@ Public Class MachiningOpListBoxItem
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public m_bThreeState As Boolean = False
|
||||
Private m_bOnOff As Boolean? = True
|
||||
Public Property OnOff As Boolean?
|
||||
Get
|
||||
Return m_bOnOff
|
||||
End Get
|
||||
Set(value As Boolean?)
|
||||
' Controllo se la lampadina è messa in stato Nothing e value e false
|
||||
m_bOnOff = If(m_bThreeState AndAlso Not value, True, value)
|
||||
Dim bOldEnMod As Boolean = EgtGetEnableModified()
|
||||
EgtDisableModified()
|
||||
' se abilitato, eseguo operazione
|
||||
Dim status As Integer = GDB_ST.OFF
|
||||
' Controllo se lo stato della lampadina è true o nullo
|
||||
If m_bOnOff OrElse IsNothing(m_bOnOff) Then
|
||||
status = GDB_ST.ON_
|
||||
End If
|
||||
' Modifica lo stato della checkbox all delle lampadine
|
||||
ModifyStatusLamp()
|
||||
' Setto lo stato della lampadina
|
||||
EgtSetStatus(Id, status)
|
||||
If bOldEnMod Then EgtEnableModified()
|
||||
If Map.refOperationsListExpanderVM.ForceDrawInIsSelected Then EgtDraw()
|
||||
m_bThreeState = False
|
||||
Map.refProjectVM.EmitTitle()
|
||||
NotifyPropertyChanged(NameOf(OnOff))
|
||||
End Set
|
||||
End Property
|
||||
|
||||
' Definizione comandi
|
||||
Private m_cmdModifyNameEnter As ICommand
|
||||
Private m_cmdModifyNameEsc As ICommand
|
||||
@@ -177,6 +222,21 @@ Public Class MachiningOpListBoxItem
|
||||
End Select
|
||||
End Function
|
||||
|
||||
Private Sub ModifyStatusLamp()
|
||||
' Recupero l'indice dell'operazione a cui abbiamo appena modificato lo Status e l'indice della Disposizione che la contiene
|
||||
Dim DispIndex As Integer = 0
|
||||
Dim OpIndex As Integer = 0
|
||||
For Each OpItem In Map.refOperationsListExpanderVM.OperationList
|
||||
If EgtGetOperationType(OpItem.Id) = MCH_OY.DISP Then DispIndex = OpIndex
|
||||
If OpItem.Id = Id Then
|
||||
Exit For
|
||||
End If
|
||||
OpIndex += 1
|
||||
Next
|
||||
' Notifico StatusAll per calcolare lo stato della CheckBox della Disposizione
|
||||
Map.refOperationsListExpanderVM.OperationList(DispIndex).NotifyPropertyChanged(NameOf(DispositionOpListBoxItem.OnOffAll))
|
||||
End Sub
|
||||
|
||||
#Region "COMMANDS"
|
||||
|
||||
#Region "ModifyNameEnterCommand"
|
||||
@@ -211,7 +271,7 @@ Public Class MachiningOpListBoxItem
|
||||
m_CloseModifyLostFocus = False
|
||||
MessageBox.Show(EgtMsg(MSG_OPERATION + 22), EgtMsg(10001), MessageBoxButton.OK, MessageBoxImage.Warning)
|
||||
m_IsActive_ModifyName = True
|
||||
NotifyPropertyChanged("ModifyName_Visibility")
|
||||
NotifyPropertyChanged(NameOf(ModifyName_Visibility))
|
||||
m_Spy = True
|
||||
Return
|
||||
End If
|
||||
|
||||
+22
-5
@@ -36,7 +36,7 @@ Public Class OperationListBoxItem
|
||||
Set(value As Boolean)
|
||||
If Not IsNothing(value) Then
|
||||
|
||||
Dim indexes As List(Of OperationListBoxItem) = New List(Of OperationListBoxItem)
|
||||
Dim indexes As 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
|
||||
@@ -45,6 +45,23 @@ Public Class OperationListBoxItem
|
||||
End If
|
||||
Next
|
||||
|
||||
' Se Operazione selezionata metto la lampadina in stato Nothing
|
||||
For Each tmpItem As MachiningOpListBoxItem In Map.refOperationsListExpanderVM.tmpOperationList
|
||||
If tmpItem.Id = Id Then
|
||||
If IsNothing(tmpItem.OnOff) Then
|
||||
EgtSetStatus(tmpItem.Id, GDB_ST.OFF)
|
||||
tmpItem.m_bThreeState = False
|
||||
tmpItem.OnOff = False
|
||||
Exit For
|
||||
ElseIf Not tmpitem.OnOff AndAlso Not m_IsSelected Then
|
||||
EgtSetStatus(tmpItem.Id, GDB_ST.SEL)
|
||||
tmpItem.OnOff = Nothing
|
||||
tmpItem.m_bThreeState = True
|
||||
Exit For
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
|
||||
If indexes.Count > 0 Then
|
||||
If EgtGetOperationPhase(Id) <> EgtGetOperationPhase(indexes(0).Id) Then
|
||||
Return
|
||||
@@ -72,9 +89,9 @@ Public Class OperationListBoxItem
|
||||
|
||||
Map.refOperationsListExpanderVM.OnPropertyChanged("MoveUp_IsEnabled")
|
||||
Map.refOperationsListExpanderVM.OnPropertyChanged("MoveDown_IsEnabled")
|
||||
NotifyPropertyChanged("IsSelected")
|
||||
NotifyPropertyChanged(NameOf(IsSelected))
|
||||
' Aggiorno visualizzazione
|
||||
EgtDraw()
|
||||
If Map.refOperationsListExpanderVM.ForceDrawInIsSelected Then EgtDraw()
|
||||
Return
|
||||
End If
|
||||
' Imposto la fase di lavorazione corrente
|
||||
@@ -124,7 +141,7 @@ Public Class OperationListBoxItem
|
||||
Map.refMachiningTreeExpanderVM.nSelectedOperationId = Me.Id
|
||||
End If
|
||||
' Aggiorno visualizzazione
|
||||
EgtDraw()
|
||||
If Map.refOperationsListExpanderVM.ForceDrawInIsSelected Then EgtDraw()
|
||||
End If
|
||||
' Resetto valori slider
|
||||
If Not IsNothing(Map.refMachiningParameterExpanderVM) Then
|
||||
@@ -136,7 +153,7 @@ Public Class OperationListBoxItem
|
||||
Map.refOperationsListExpanderVM.OnPropertyChanged("DuplicateCmd_IsEnabled")
|
||||
Map.refOperationsListExpanderVM.OnPropertyChanged("MachToDb_IsEnabled")
|
||||
Map.refOperationsListExpanderVM.OnPropertyChanged("Rename_IsEnabled")
|
||||
NotifyPropertyChanged("IsSelected")
|
||||
NotifyPropertyChanged(NameOf(IsSelected))
|
||||
End Set
|
||||
End Property
|
||||
|
||||
|
||||
+25
-17
@@ -1,10 +1,10 @@
|
||||
<UserControl x:Class="OperationsListExpanderV"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:sys="clr-namespace:System;assembly=mscorlib"
|
||||
xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
|
||||
xmlns:EgtCAM5="clr-namespace:EgtCAM5"
|
||||
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:sys="clr-namespace:System;assembly=mscorlib"
|
||||
xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
|
||||
xmlns:EgtCAM5="clr-namespace:EgtCAM5"
|
||||
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
|
||||
|
||||
<StackPanel Name="OperationsListExpanderViewStackPanel" IsEnabled="{Binding OpersListViewIsEnabled}">
|
||||
|
||||
@@ -27,9 +27,9 @@
|
||||
<DataTemplate DataType="{x:Type EgtCAM5:MachiningOpListBoxItem}">
|
||||
<DataTemplate.Resources>
|
||||
<Style x:Key="LayoutRoot" TargetType="Grid">
|
||||
<!--<Style.Triggers>
|
||||
--><!--these are the triggers that make the code cursor jump from box 1 to box 2 to box 3.--><!--
|
||||
<DataTrigger Binding="{Binding ElementName=Box, Path=Visibility}" Value="Visible">
|
||||
<!--<Style.Triggers>-->
|
||||
<!--these are the triggers that make the code cursor jump from box 1 to box 2 to box 3.-->
|
||||
<!--<DataTrigger Binding="{Binding ElementName=Box, Path=Visibility}" Value="Visible">
|
||||
<Setter Property="FocusManager.FocusedElement" Value="{Binding ElementName=Box}"/>
|
||||
</DataTrigger>
|
||||
</Style.Triggers>-->
|
||||
@@ -38,11 +38,12 @@
|
||||
<Border Background="Transparent">
|
||||
<Border.InputBindings>
|
||||
<MouseBinding MouseAction="LeftDoubleClick"
|
||||
Command="{Binding DataContext.OperationListDoubleClickCommand, RelativeSource={RelativeSource AncestorType={x:Type EgtCAM5:OperationsListExpanderV}}}"
|
||||
CommandParameter="{Binding Id}"/>
|
||||
Command="{Binding DataContext.OperationListDoubleClickCommand, RelativeSource={RelativeSource AncestorType={x:Type EgtCAM5:OperationsListExpanderV}}}"
|
||||
CommandParameter="{Binding Id}"/>
|
||||
</Border.InputBindings>
|
||||
<Grid Style="{StaticResource LayoutRoot}">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
@@ -50,9 +51,13 @@
|
||||
</Grid.ColumnDefinitions>
|
||||
<CheckBox IsChecked="{Binding Status}" Margin="0,0,5,0"/>
|
||||
<Image Source="{Binding Image}" Height="15" Margin="0,0,5,0"/>
|
||||
<TextBlock Grid.Column="1" Text="{Binding Name}"
|
||||
<!--<ToggleButton Style="{StaticResource EgtCAM5_LampToggleButton}" Grid.Column="1"
|
||||
IsChecked="{Binding OnOff}" Visibility="{Binding IsHidden}" Focusable="True" Height="15" Width="15" Margin="0,0,5,0"/>-->
|
||||
<CheckBox Style="{StaticResource EgtCAM5_LampToggleButton}" Grid.Column="1"
|
||||
IsChecked="{Binding OnOff}" Height="15" Width="15" Margin="0,0,5,0"/>
|
||||
<TextBlock Grid.Column="2" Text="{Binding Name}"
|
||||
Visibility="{Binding Name_Visibility}" Margin="0,0,5,0"/>
|
||||
<TextBox Grid.Column="1" Text="{Binding ModifiedName, UpdateSourceTrigger=PropertyChanged}"
|
||||
<TextBox Grid.Column="2" Text="{Binding ModifiedName, UpdateSourceTrigger=PropertyChanged}"
|
||||
Width="150"
|
||||
x:Name="Box"
|
||||
Visibility="{Binding ModifyName_Visibility}" Margin="0,0,5,0">
|
||||
@@ -63,7 +68,7 @@
|
||||
<KeyBinding Key="Escape" Command="{Binding ModifyNameEscCommand}"/>
|
||||
</TextBox.InputBindings>
|
||||
</TextBox>
|
||||
<TextBlock Grid.Column="2" Text="{Binding Info}"/>
|
||||
<TextBlock Grid.Column="3" Text="{Binding Info}"/>
|
||||
</Grid>
|
||||
</Border>
|
||||
</DataTemplate>
|
||||
@@ -71,14 +76,17 @@
|
||||
<Border CornerRadius="1" Background="{StaticResource EgaltechBlue3}">
|
||||
<Border.InputBindings>
|
||||
<MouseBinding MouseAction="LeftDoubleClick"
|
||||
Command="{Binding DataContext.OperationListDoubleClickCommand, RelativeSource={RelativeSource AncestorType={x:Type EgtCAM5:OperationsListExpanderV}}}"
|
||||
CommandParameter="{Binding Id}"/>
|
||||
Command="{Binding DataContext.OperationListDoubleClickCommand, RelativeSource={RelativeSource AncestorType={x:Type EgtCAM5:OperationsListExpanderV}}}"
|
||||
CommandParameter="{Binding Id}"/>
|
||||
</Border.InputBindings>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<CheckBox IsChecked="{Binding StatusAll}" VerticalAlignment="Center" Margin="0,0,5,0"/>
|
||||
<CheckBox IsChecked="{Binding OnOffAll}" Style="{StaticResource EgtCAM5_LampToggleButton}" Height="15" Width="15" VerticalAlignment="Center" Margin="0,0,5,0"/>
|
||||
<!--<ToggleButton Style="{StaticResource EgtCAM5_LampToggleButton}"
|
||||
IsChecked="{Binding OnOffAll}" Visibility="{Binding IsHidden}" Focusable="True" Height="15" Width="15" Margin="0,0,5,0"/>-->
|
||||
<Image Source="{Binding Image}" Height="15" Margin="0,0,5,0"/>
|
||||
<TextBlock Text="{Binding Name}" Foreground="White"
|
||||
FontSize="15" FontWeight="SemiBold"/>
|
||||
FontSize="15" FontWeight="SemiBold"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</DataTemplate>
|
||||
|
||||
+190
-54
@@ -84,6 +84,7 @@ Public Class OperationsListExpanderVM
|
||||
Set(value As Boolean)
|
||||
If value <> m_ListIsExpanded Then
|
||||
Map.refMachiningOptionPanelVM.Set_IsExpanded(MachiningOptionPanelVM.MachiningOptionPanelExpander.OPERATIONLIST, value)
|
||||
SetStatusOnLamp()
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
@@ -111,6 +112,37 @@ Public Class OperationsListExpanderVM
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_tmpOperationList As New ObservableCollection(Of MachiningOpListBoxItem)
|
||||
Public Property tmpOperationList As ObservableCollection(Of MachiningOpListBoxItem)
|
||||
Get
|
||||
Return m_tmpOperationList
|
||||
End Get
|
||||
Set(value As ObservableCollection(Of MachiningOpListBoxItem))
|
||||
m_tmpOperationList = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_StatusLampList As New ObservableCollection(Of StatusLamp)
|
||||
Public Property StatusLampList As ObservableCollection(Of StatusLamp)
|
||||
Get
|
||||
Return m_StatusLampList
|
||||
End Get
|
||||
Set(value As ObservableCollection(Of StatusLamp))
|
||||
m_StatusLampList = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
' Forza il disegno quando seleziono la lampadina
|
||||
Private m_ForceDrawInIsSelected As Boolean = True
|
||||
Public Property ForceDrawInIsSelected As Boolean
|
||||
Get
|
||||
Return m_ForceDrawInIsSelected
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
m_ForceDrawInIsSelected = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property DuplicateCmd_IsEnabled As Boolean
|
||||
Get
|
||||
Dim SelType As Integer = MCH_OY.NONE
|
||||
@@ -258,7 +290,7 @@ Public Class OperationsListExpanderVM
|
||||
#Region "CONSTRUCTOR"
|
||||
|
||||
Sub New()
|
||||
m_bMoveThroughDisps = ( GetPrivateProfileInt( S_MACH, K_MOVETHROUGHDISPS, 0) <> 0)
|
||||
m_bMoveThroughDisps = (GetPrivateProfileInt(S_MACH, K_MOVETHROUGHDISPS, 0) <> 0)
|
||||
' Creo riferimento a questa classe in Map
|
||||
Map.SetRefOperationsListExpanderVM(Me)
|
||||
Me.ListIsExpanded = True
|
||||
@@ -333,7 +365,7 @@ Public Class OperationsListExpanderVM
|
||||
For Each nId As Integer In vRawId
|
||||
EgtKeepRawPart(nId, nLastPhase)
|
||||
Next
|
||||
EgtKeepAllDispAxes( nLastPhase)
|
||||
EgtKeepAllDispAxes(nLastPhase)
|
||||
For Each nId As Integer In vFxtId
|
||||
EgtKeepFixture(nId, nLastPhase)
|
||||
Next
|
||||
@@ -435,7 +467,7 @@ Public Class OperationsListExpanderVM
|
||||
If EgtGetOperationMode(selOperation.Id) Then
|
||||
Map.refOperationParametersExpanderVM.ParametersIsExpanded = True
|
||||
If EgtGetOperationType(selOperation.Id) <> MCH_OY.DISP Then
|
||||
Map.refMachiningParameterExpanderVM.SetSliderScale( EgtGetPreviewMachiningToolStepCount())
|
||||
Map.refMachiningParameterExpanderVM.SetSliderScale(EgtGetPreviewMachiningToolStepCount())
|
||||
Map.refMachiningParameterExpanderVM.ResetSliderValue()
|
||||
End If
|
||||
End If
|
||||
@@ -462,55 +494,55 @@ Public Class OperationsListExpanderVM
|
||||
''' </summary>
|
||||
Public Sub MoveUp()
|
||||
' Verifico il numero di elementi selezionati
|
||||
Dim indexes As New List( Of Integer)()
|
||||
Dim indexes As New List(Of Integer)()
|
||||
For index As Integer = 0 To OperationList.Count - 1
|
||||
' Verifico gli elementi selezionati
|
||||
If OperationList.Item( index).IsSelected Then
|
||||
If OperationList.Item(index).IsSelected Then
|
||||
' Se presente una disposizione esco
|
||||
If EgtGetOperationType( OperationList.Item( index).Id) = MCH_OY.DISP Then Return
|
||||
If EgtGetOperationType(OperationList.Item(index).Id) = MCH_OY.DISP Then Return
|
||||
' Aggiungo l'operazione
|
||||
indexes.Add( index)
|
||||
indexes.Add(index)
|
||||
End If
|
||||
Next
|
||||
Dim lenIndexes As Integer = indexes.Count
|
||||
' Recupero Id ultima entità selezionata e precedente a quelle selezionate
|
||||
Dim LastSelectedId As Integer = OperationList( indexes( lenIndexes - 1)).Id
|
||||
Dim PreviousId As Integer = OperationList( indexes( 0) - 1).Id
|
||||
Dim LastSelectedId As Integer = OperationList(indexes(lenIndexes - 1)).Id
|
||||
Dim PreviousId As Integer = OperationList(indexes(0) - 1).Id
|
||||
' Sposto l'operazione precedente a quelle selezionate nell'ambiente Egt
|
||||
If EgtRelocate( PreviousId, LastSelectedId, GDB_POS.AFTER) Then
|
||||
If EgtRelocate(PreviousId, LastSelectedId, GDB_POS.AFTER) Then
|
||||
' Sposto l'operazione precedente a quelle selezionate nella grafica
|
||||
OperationList.Move( indexes(0) - 1, indexes( lenIndexes - 1)) ' + 1)
|
||||
OperationList.Move(indexes(0) - 1, indexes(lenIndexes - 1)) ' + 1)
|
||||
' Ricalcolo le lavorazioni selezionate e quella che era precedente (e ora è seguente)
|
||||
If Not m_bMoveThroughDisps Then
|
||||
For index As Integer = 0 To indexes.Count - 1
|
||||
EgtSetCurrMachining( OperationList( indexes( index)).Id)
|
||||
EgtApplyMachining( False)
|
||||
EgtSetCurrMachining(OperationList(indexes(index)).Id)
|
||||
EgtApplyMachining(False)
|
||||
Next
|
||||
EgtSetCurrMachining( PreviousId)
|
||||
EgtApplyMachining( False)
|
||||
EgtSetCurrMachining(PreviousId)
|
||||
EgtApplyMachining(False)
|
||||
EgtDraw()
|
||||
OnPropertyChanged( "MoveUp_IsEnabled")
|
||||
OnPropertyChanged( "MoveDown_IsEnabled")
|
||||
OnPropertyChanged("MoveUp_IsEnabled")
|
||||
OnPropertyChanged("MoveDown_IsEnabled")
|
||||
Map.refProjectVM.EmitTitle()
|
||||
Else
|
||||
Dim nCurrPhase As Integer = EgtGetOperationPhase(LastSelectedId)
|
||||
For index As Integer = 0 To indexes.Count - 1
|
||||
Dim nOpeId As Integer = OperationList( indexes( index) - 1).Id
|
||||
If EgtGetOperationType( nOpeId) <> MCH_OY.DISP Then
|
||||
EgtAdjustOperationPhase( nOpeId)
|
||||
EgtSetCurrMachining( nOpeId)
|
||||
EgtApplyMachining( False)
|
||||
Dim nOpeId As Integer = OperationList(indexes(index) - 1).Id
|
||||
If EgtGetOperationType(nOpeId) <> MCH_OY.DISP Then
|
||||
EgtAdjustOperationPhase(nOpeId)
|
||||
EgtSetCurrMachining(nOpeId)
|
||||
EgtApplyMachining(False)
|
||||
End If
|
||||
Next
|
||||
If EgtGetOperationType( PreviousId) <> MCH_OY.DISP Then
|
||||
EgtSetCurrMachining( PreviousId)
|
||||
EgtApplyMachining( False)
|
||||
If EgtGetOperationType(PreviousId) <> MCH_OY.DISP Then
|
||||
EgtSetCurrMachining(PreviousId)
|
||||
EgtApplyMachining(False)
|
||||
End If
|
||||
Dim nNewPhase As Integer = EgtGetOperationPhase(LastSelectedId)
|
||||
If nNewPhase <> nCurrPhase Then EgtSetCurrPhase( nNewPhase)
|
||||
If nNewPhase <> nCurrPhase Then EgtSetCurrPhase(nNewPhase)
|
||||
EgtDraw()
|
||||
OnPropertyChanged( NameOf(MoveUp_IsEnabled))
|
||||
OnPropertyChanged( NameOf(MoveDown_IsEnabled))
|
||||
OnPropertyChanged(NameOf(MoveUp_IsEnabled))
|
||||
OnPropertyChanged(NameOf(MoveDown_IsEnabled))
|
||||
Map.refProjectVM.EmitTitle()
|
||||
End If
|
||||
End If
|
||||
@@ -537,52 +569,52 @@ Public Class OperationsListExpanderVM
|
||||
''' </summary>
|
||||
Public Sub MoveDown()
|
||||
' Verifico il numero di elementi selezionati
|
||||
Dim indexes As New List( Of Integer)()
|
||||
Dim indexes As New List(Of Integer)()
|
||||
For index As Integer = 0 To OperationList.Count - 1
|
||||
' Verifico gli elementi selezionati
|
||||
If OperationList.Item( index).IsSelected Then
|
||||
If OperationList.Item(index).IsSelected Then
|
||||
' Se presente una disposizione esco
|
||||
If EgtGetOperationType( OperationList.Item( index).Id) = MCH_OY.DISP Then Return
|
||||
If EgtGetOperationType(OperationList.Item(index).Id) = MCH_OY.DISP Then Return
|
||||
' Aggiungo l'operazione
|
||||
indexes.Add( index)
|
||||
indexes.Add(index)
|
||||
End If
|
||||
Next
|
||||
Dim lenIndexes As Integer = indexes.Count
|
||||
' Recupero Id prima entità selezionata e successiva a quelle selezionate
|
||||
Dim FirstSelectedId As Integer = OperationList( indexes( 0)).Id
|
||||
Dim NextId As Integer = OperationList( indexes( lenIndexes - 1) + 1).Id
|
||||
Dim FirstSelectedId As Integer = OperationList(indexes(0)).Id
|
||||
Dim NextId As Integer = OperationList(indexes(lenIndexes - 1) + 1).Id
|
||||
' Sposto l'operazione successiva a quelle selezionate nell'ambiente Egt
|
||||
If EgtRelocate( NextId, FirstSelectedId, GDB_POS.BEFORE) Then
|
||||
If EgtRelocate(NextId, FirstSelectedId, GDB_POS.BEFORE) Then
|
||||
' Sposto l'operazione successiva a quelle selezionate nella grafica
|
||||
OperationList.Move( indexes( lenIndexes - 1) + 1, indexes( 0))
|
||||
OperationList.Move(indexes(lenIndexes - 1) + 1, indexes(0))
|
||||
' Ricalcolo la lavorazioni selezionate e quella che era seguente (e ora è precedente)
|
||||
If Not m_bMoveThroughDisps Then
|
||||
EgtSetCurrMachining( NextId)
|
||||
EgtApplyMachining( False)
|
||||
EgtSetCurrMachining(NextId)
|
||||
EgtApplyMachining(False)
|
||||
For index As Integer = 0 To indexes.Count - 1
|
||||
EgtSetCurrMachining( OperationList( indexes( index)).Id)
|
||||
EgtApplyMachining( False)
|
||||
EgtSetCurrMachining(OperationList(indexes(index)).Id)
|
||||
EgtApplyMachining(False)
|
||||
Next
|
||||
EgtDraw()
|
||||
OnPropertyChanged( "MoveUp_IsEnabled")
|
||||
OnPropertyChanged( "MoveDown_IsEnabled")
|
||||
OnPropertyChanged("MoveUp_IsEnabled")
|
||||
OnPropertyChanged("MoveDown_IsEnabled")
|
||||
Map.refProjectVM.EmitTitle()
|
||||
Else
|
||||
If EgtGetOperationType( NextId) <> MCH_OY.DISP Then
|
||||
EgtSetCurrMachining( NextId)
|
||||
EgtApplyMachining( False)
|
||||
If EgtGetOperationType(NextId) <> MCH_OY.DISP Then
|
||||
EgtSetCurrMachining(NextId)
|
||||
EgtApplyMachining(False)
|
||||
End If
|
||||
For index As Integer = 0 To indexes.Count - 1
|
||||
Dim nOpeId As Integer = OperationList( indexes( index) + 1).Id
|
||||
If EgtGetOperationType( nOpeId) <> MCH_OY.DISP Then
|
||||
EgtAdjustOperationPhase( nOpeId)
|
||||
EgtSetCurrMachining( nOpeId)
|
||||
EgtApplyMachining( False)
|
||||
Dim nOpeId As Integer = OperationList(indexes(index) + 1).Id
|
||||
If EgtGetOperationType(nOpeId) <> MCH_OY.DISP Then
|
||||
EgtAdjustOperationPhase(nOpeId)
|
||||
EgtSetCurrMachining(nOpeId)
|
||||
EgtApplyMachining(False)
|
||||
End If
|
||||
Next
|
||||
EgtDraw()
|
||||
OnPropertyChanged( NameOf( MoveUp_IsEnabled))
|
||||
OnPropertyChanged( NameOf( MoveDown_IsEnabled))
|
||||
OnPropertyChanged(NameOf(MoveUp_IsEnabled))
|
||||
OnPropertyChanged(NameOf(MoveDown_IsEnabled))
|
||||
Map.refProjectVM.EmitTitle()
|
||||
End If
|
||||
End If
|
||||
@@ -608,6 +640,8 @@ Public Class OperationsListExpanderVM
|
||||
''' Execute the Point. This method is invoked by the PointCommand.
|
||||
''' </summary>
|
||||
Public Sub Update()
|
||||
Dim tmpStatusLamp As New StatusLamp()
|
||||
Map.refOperationsListExpanderVM.StatusLampList = tmpStatusLamp.LoadStatusLamp()
|
||||
' Cursore di attesa
|
||||
Application.Current.MainWindow.ForceCursor = True
|
||||
Application.Current.MainWindow.Cursor = Cursors.Wait
|
||||
@@ -617,6 +651,7 @@ Public Class OperationsListExpanderVM
|
||||
Dim bOk As Boolean = EgtApplyAllMachinings(bRecalc, False, sErr)
|
||||
EgtSetModified()
|
||||
' Deseleziono l'Operazione selezionata e la de-evidenzio nel Disegno
|
||||
m_ForceDrawInIsSelected = False
|
||||
For Each Operation In OperationList
|
||||
If Operation.IsSelected Then
|
||||
Operation.IsSelected = False
|
||||
@@ -624,6 +659,9 @@ Public Class OperationsListExpanderVM
|
||||
Next
|
||||
' Ricarico la lista delle Operazioni
|
||||
LoadOperationList(GDB_ID.NULL)
|
||||
' Rimetto le lampadine in modo corretto
|
||||
tmpStatusLamp.UpdateStatusLamp()
|
||||
m_ForceDrawInIsSelected = True
|
||||
' Aggiorno visualizzazione e ritorno a cursore standard
|
||||
EgtDraw()
|
||||
Application.Current.MainWindow.ForceCursor = False
|
||||
@@ -999,7 +1037,9 @@ Public Class OperationsListExpanderVM
|
||||
|
||||
Private Sub LoadOperationList()
|
||||
OperationList.Clear()
|
||||
tmpOperationList.Clear()
|
||||
Dim Id As Integer
|
||||
Dim OpStatusOnOff As Integer
|
||||
Dim OpStatus As Boolean = True
|
||||
Dim OpName As String = String.Empty
|
||||
Dim OpType As Integer = 0
|
||||
@@ -1012,9 +1052,14 @@ Public Class OperationsListExpanderVM
|
||||
If IsValidMachiningType(OpType) Then
|
||||
EgtSetCurrMachining(Id)
|
||||
OpStatus = EgtGetOperationMode(Id)
|
||||
EgtGetStatus(Id, OpStatusOnOff)
|
||||
EgtGetMachiningParam(MCH_MP.TOOL, OpTool)
|
||||
EgtGetMachiningParam(MCH_MP.NAME, OpMach)
|
||||
OperationList.Add(New MachiningOpListBoxItem(Id, OpStatus, OpName, OpType, OpTool, OpMach))
|
||||
' Dichiarato per far si che le due liste operino in contemporaneo
|
||||
Dim local_MachiningOpListBoxItem As New MachiningOpListBoxItem(Id, OpStatus, OpName, OpType, OpTool, OpMach)
|
||||
OperationList.Add(local_MachiningOpListBoxItem)
|
||||
' Lista creata per lavorare solo su le operazioni di macchina, utilizzata per la gestione dello spegnimento e accensione delle lamp
|
||||
tmpOperationList.Add(local_MachiningOpListBoxItem)
|
||||
ElseIf IsValidDispositionType(OpType) Then
|
||||
OpStatus = True
|
||||
OpTool = String.Empty
|
||||
@@ -1256,7 +1301,7 @@ Public Class OperationsListExpanderVM
|
||||
If m_NewMachining Then EndNewMachining(GDB_ID.NULL)
|
||||
' Disabilito visualizzazione utensile
|
||||
If Not IsNothing(m_MachiningParameterExpander) Then
|
||||
Map.refMachiningParameterExpanderVM.SetViewTool( False)
|
||||
Map.refMachiningParameterExpanderVM.SetViewTool(False)
|
||||
End If
|
||||
' Deseleziono le operazioni correnti per eliminare il mark
|
||||
For Each Operation In OperationList
|
||||
@@ -1266,6 +1311,97 @@ Public Class OperationsListExpanderVM
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Private Sub SetStatusOnLamp()
|
||||
If Not IsNothing(m_tmpOperationList) Then
|
||||
For Each ItemOp As MachiningOpListBoxItem In m_tmpOperationList
|
||||
If Not ItemOp.OnOff Then
|
||||
EgtSetStatus(ItemOp.Id, GDB_ST.OFF)
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
EgtDraw()
|
||||
End Sub
|
||||
|
||||
#End Region ' Methods
|
||||
|
||||
End Class
|
||||
|
||||
Public Class StatusLamp
|
||||
|
||||
#Region "FIELDS & PROPERTIES"
|
||||
|
||||
' Id dell'operazione
|
||||
Private m_nId As Integer
|
||||
Public Property nId As Integer
|
||||
Get
|
||||
Return m_nId
|
||||
End Get
|
||||
Set(value As Integer)
|
||||
m_nId = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
' Stato della lampadina: vero, falso e nullo
|
||||
Private m_bStatusLamp As Boolean?
|
||||
Public Property bStatusLamp As Boolean?
|
||||
Get
|
||||
Return m_bStatusLamp
|
||||
End Get
|
||||
Set(value? As Boolean)
|
||||
m_bStatusLamp = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
#End Region ' Fields & Properties
|
||||
|
||||
#Region "CONSTRUCTOR"
|
||||
|
||||
Sub New(nId As Integer, bStatusLamp As Boolean?)
|
||||
m_nId = nId
|
||||
m_bStatusLamp = bStatusLamp
|
||||
End Sub
|
||||
|
||||
Sub New()
|
||||
End Sub
|
||||
|
||||
#End Region ' Constructor
|
||||
|
||||
#Region "METHODS"
|
||||
|
||||
''' <summary>
|
||||
''' Funzione che salva gli stati di tutte le lampadine delle operazioni
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Public Function LoadStatusLamp() As ObservableCollection(Of StatusLamp)
|
||||
' Utilizzo di LINQ per creare la lista in modo più conciso, carico gli stati delle lampadine per tenerli salvati
|
||||
Return New ObservableCollection(Of StatusLamp)(Map.refOperationsListExpanderVM.tmpOperationList.Select(Function(ItemOp) New StatusLamp(ItemOp.Id, ItemOp.OnOff)))
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' Funzione che aggiorna lo stato delle lampadine delle operazioni
|
||||
''' </summary>
|
||||
Public Sub UpdateStatusLamp()
|
||||
' Verifica che tmpOperationList non sia nulla
|
||||
If IsNothing(Map.refOperationsListExpanderVM.tmpOperationList) Then Return
|
||||
|
||||
Dim tmpStatusLamp As StatusLamp
|
||||
For Each ItemOp As MachiningOpListBoxItem In Map.refOperationsListExpanderVM.tmpOperationList
|
||||
' Recuero lo stato della lampadina
|
||||
tmpStatusLamp = Map.refOperationsListExpanderVM.StatusLampList.FirstOrDefault(Function(x) x.nId = ItemOp.Id)
|
||||
' Controllo se lo stato della lampadina è falso nella lista StatusLampList
|
||||
If Not tmpStatusLamp.bStatusLamp Then
|
||||
' Rimetto lo stato della lampadina a falso nella OperationList
|
||||
EgtSetStatus(ItemOp.Id, GDB_ST.OFF)
|
||||
ItemOp.OnOff = False
|
||||
' Controllo se lo stato della lampadina è nullo nella lista StatusLampList
|
||||
ElseIf IsNothing(tmpStatusLamp.bStatusLamp) Then
|
||||
' Rimetto lo stato della lampadina a nullo nella OperationList
|
||||
EgtSetStatus(ItemOp.Id, GDB_ST.SEL)
|
||||
ItemOp.OnOff = Nothing
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
#End Region ' Methods
|
||||
|
||||
End Class
|
||||
@@ -1,5 +1,4 @@
|
||||
Imports System.Collections.ObjectModel
|
||||
Imports System.IO
|
||||
Imports System.IO
|
||||
Imports EgtUILib
|
||||
Imports EgtWPFLib5
|
||||
|
||||
@@ -18,6 +17,9 @@ Public Class SimulationExpanderVM
|
||||
Set(value As Boolean)
|
||||
If value <> m_Simulation_IsExpanded Then
|
||||
Map.refMachiningOptionPanelVM.Set_IsExpanded(MachiningOptionPanelVM.MachiningOptionPanelExpander.SIMULATION, value)
|
||||
Map.refOperationsListExpanderVM.StatusLampList.Clear()
|
||||
Dim tmpStatusLamp As New StatusLamp()
|
||||
Map.refOperationsListExpanderVM.StatusLampList = tmpStatusLamp.LoadStatusLamp()
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
+21
-12
@@ -4,7 +4,6 @@ Imports System.IO
|
||||
Imports System.Globalization
|
||||
Imports EgtUILib
|
||||
Imports EgtWPFLib5
|
||||
Imports EgtWPFLib5.EgtFloating
|
||||
|
||||
Public Class ProjectVM
|
||||
Inherits TabViewModel
|
||||
@@ -58,11 +57,12 @@ Public Class ProjectVM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
#End Region
|
||||
|
||||
|
||||
#End Region
|
||||
#Region "EGTUILIB FIELDS"
|
||||
|
||||
Private m_bCPlaneTypePos As Boolean
|
||||
Private m_bCPlaneTypePos As Boolean
|
||||
|
||||
' Variabile per implementazione eventi
|
||||
Private m_InputText As String
|
||||
@@ -244,14 +244,14 @@ Public Class ProjectVM
|
||||
Dim sTitle As String = EgtMsg(10101)
|
||||
MessageBox.Show(sText, sTitle, MessageBoxButton.OK, MessageBoxImage.Error)
|
||||
End If
|
||||
' Se altrimenti manca il collegamento con la chiave di rete
|
||||
' Se altrimenti manca il collegamento con la chiave di rete
|
||||
ElseIf IniFile.m_nKeyLevel = -9 Then
|
||||
EgtOutLog("Missing Link with Net Dongle")
|
||||
' Box di avviso chiave mancante : "Collegamento con la Chiave di rete non riuscito. \n Verificare la connessione." "Errore"
|
||||
Dim sText As String = EgtMsg(10108) & vbCrLf & EgtMsg(10109)
|
||||
Dim sTitle As String = EgtMsg(10101)
|
||||
MessageBox.Show(sText, sTitle, MessageBoxButton.OK, MessageBoxImage.Error)
|
||||
' Altrimenti manca la licenza
|
||||
' Altrimenti manca la licenza
|
||||
Else
|
||||
EgtOutLog("Problems with Licence")
|
||||
' Box di avviso licenza con problemi : sKeyInfo \n "Programma senza licenza. \n Caricala e riavvia il programma." "Errore"
|
||||
@@ -489,7 +489,7 @@ Public Class ProjectVM
|
||||
End If
|
||||
' Esecuzione
|
||||
bOk = ExecBeam(sFile, sMachine, nFlag, True)
|
||||
' altrimenti pareti
|
||||
' altrimenti pareti
|
||||
Else
|
||||
' Verifica abilitazione elaborazione pareti
|
||||
If Not VerifyWall(sFile, sMachine, nFlag) Then
|
||||
@@ -503,12 +503,12 @@ Public Class ProjectVM
|
||||
If nFlag = 0 Or nFlag = 3 Or nFlag = 4 Then
|
||||
Map.refMachinePanelVM.SaveCurrentMachine()
|
||||
Map.refMainWindowVM.CloseApplicationCmd()
|
||||
' Altrimenti se richiesta visualizzazione DB utensili
|
||||
' Altrimenti se richiesta visualizzazione DB utensili
|
||||
ElseIf nFlag = 11 And bOk Then
|
||||
MyMachinePanelVM.ToolDb()
|
||||
Map.refMachinePanelVM.SaveCurrentMachine()
|
||||
Map.refMainWindowVM.CloseApplicationCmd()
|
||||
' Altrimenti se richiesta visualizzazione DB lavorazioni
|
||||
' Altrimenti se richiesta visualizzazione DB lavorazioni
|
||||
ElseIf nFlag = 12 And bOk Then
|
||||
MyMachinePanelVM.MachDb()
|
||||
If bBeam Then
|
||||
@@ -518,7 +518,7 @@ Public Class ProjectVM
|
||||
End If
|
||||
Map.refMachinePanelVM.SaveCurrentMachine()
|
||||
Map.refMainWindowVM.CloseApplicationCmd()
|
||||
' Altrimenti se errore
|
||||
' Altrimenti se errore
|
||||
ElseIf Not bOk Then
|
||||
EgtZoom(ZM.ALL)
|
||||
End If
|
||||
@@ -1326,6 +1326,15 @@ Public Class ProjectVM
|
||||
ElseIf IniFile.m_ProjectMode = ProjectModeOpt.MACHINING And m_SceneSelType = SceneSelTypeOpt.MACHINING And
|
||||
(EgtGetType(nId) = GDB_TY.SRF_MESH Or EgtGetType(nId) = GDB_TY.SRF_FRGN) Then
|
||||
If Not EgtIsSelectedObj(nId) Then m_Controller.MouseSelectedObj(nId, bLast)
|
||||
ElseIf Not Keyboard.IsKeyDown(Key.LeftShift) Then
|
||||
m_Controller.MouseSelectedObj(nId, False)
|
||||
If EgtIsSelectedObj(nId) Then
|
||||
' Selezione layer in albero
|
||||
Map.refManageLayerExpanderVM.UpdateObjInObjTreeNoMark(nId)
|
||||
Map.refManageLayerExpanderVM.SelectIdInObjTreeNoMark(nId)
|
||||
Map.refManageLayerExpanderVM.UpdateObjTree()
|
||||
End If
|
||||
EgtDraw()
|
||||
Else
|
||||
m_Controller.MouseSelectedObj(nId, bLast)
|
||||
End If
|
||||
@@ -1392,7 +1401,7 @@ Public Class ProjectVM
|
||||
' Visualizzo numerazione
|
||||
Analyze.CreateAnalyzeGroup()
|
||||
Analyze.CreateCurveCompoPntNbrs(nId)
|
||||
' Se superficie trimesh, visualizzo dati faccetta toccata
|
||||
' Se superficie trimesh, visualizzo dati faccetta toccata
|
||||
ElseIf EgtGetType(nId) = GDB_TY.SRF_MESH Then
|
||||
Dim nFac As Integer = EgtSurfTmFacetFromTria(nId, nSub)
|
||||
If nFac <> -1 Then
|
||||
@@ -1413,10 +1422,10 @@ Public Class ProjectVM
|
||||
" / φ=" + DoubleToString(dPhi, 2) + " θ=" + DoubleToString(dTheta, 2)
|
||||
Map.refStatusBarVM.NotifyStatusOutput(sOut)
|
||||
End If
|
||||
' Se Regione, visualizzo dati parte toccata
|
||||
' Se Regione, visualizzo dati parte toccata
|
||||
ElseIf EgtGetType(nId) = GDB_TY.SRF_FRGN Then
|
||||
Dim nChk As Integer = nSub
|
||||
If nChk >= 0 AndAlso nChk < EgtSurfFrChunkCount( nId) Then
|
||||
If nChk >= 0 AndAlso nChk < EgtSurfFrChunkCount(nId) Then
|
||||
' Visualizzo la normale e il contorno della parte
|
||||
Analyze.CreateAnalyzeGroup()
|
||||
Analyze.CreateChunkNormal(nId, nChk)
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 757 B |
@@ -1,4 +1,6 @@
|
||||
Imports EgtUILib
|
||||
Imports EgtWPFLib5
|
||||
Imports EgtWPFLib5.MachiningTreeViewItem
|
||||
|
||||
Public Class PrepareInputBoxParam
|
||||
Friend sTitle As String
|
||||
@@ -62,4 +64,112 @@ Public Class NewMachOpParam
|
||||
Me.SelMachOpId = SelMachOpId
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
Public Class InfoItem
|
||||
Inherits VMBase
|
||||
|
||||
#Region "FIELDS & PROPERTIES"
|
||||
|
||||
Friend nId As Integer
|
||||
''' <summary>
|
||||
''' Indice lista info note
|
||||
''' </summary>
|
||||
Public ReadOnly Property Id As Integer
|
||||
Get
|
||||
Return Id
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Friend sKey As String
|
||||
''' <summary>
|
||||
''' Chiave lista info note
|
||||
''' </summary>
|
||||
Public ReadOnly Property Key As String
|
||||
Get
|
||||
Return sKey
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Friend sValour As String
|
||||
''' <summary>
|
||||
''' Valore lista info note
|
||||
''' </summary>
|
||||
Public Property Valour As String
|
||||
Get
|
||||
Return sValour
|
||||
End Get
|
||||
Set(value As String)
|
||||
sValour = value
|
||||
NotifyPropertyChanged(NameOf(Valour))
|
||||
End Set
|
||||
End Property
|
||||
|
||||
#End Region ' Fields & Properties
|
||||
|
||||
' Comandi
|
||||
Private m_cmdRemoveInfoItem As ICommand
|
||||
Private m_cmdDoneInfo As ICommand
|
||||
|
||||
#Region "CONSTRUCTORS"
|
||||
|
||||
Sub New(nId As Integer, sKey As String, sValue As String)
|
||||
Me.nId = nId
|
||||
Me.sKey = sKey
|
||||
Me.sValour = sValue
|
||||
End Sub
|
||||
|
||||
#End Region ' Constructors
|
||||
|
||||
#Region "COMMANDS"
|
||||
|
||||
#Region "RemoveItemNoteCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Comando per rimuovere l'informazione selezionata dalla combobox
|
||||
''' </summary>
|
||||
Public ReadOnly Property RemoveInfoItemCommand As ICommand
|
||||
Get
|
||||
If m_cmdRemoveInfoItem Is Nothing Then
|
||||
m_cmdRemoveInfoItem = New Command(AddressOf RemoveInfoItem)
|
||||
End If
|
||||
Return m_cmdRemoveInfoItem
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Rimuove l'informazione selezionata dalla combobox
|
||||
''' </summary>
|
||||
''' <param name="param"></param>
|
||||
Public Sub RemoveInfoItem(ByVal param As Object)
|
||||
Map.refInputExpanderVM.RemoveItemInfo(Me)
|
||||
End Sub
|
||||
|
||||
#End Region ' RemoveItemNoteCommand
|
||||
|
||||
#Region "DoneInfoCommand"
|
||||
|
||||
''' <summary>
|
||||
''' Comando per la conferma modifica o aggiunta nuova informazione
|
||||
''' </summary>
|
||||
Public ReadOnly Property DoneInfoCommand As ICommand
|
||||
Get
|
||||
If m_cmdDoneInfo Is Nothing Then
|
||||
m_cmdDoneInfo = New Command(AddressOf DoneInfo)
|
||||
End If
|
||||
Return m_cmdDoneInfo
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Conferma modifica o aggiunta nuova informazione
|
||||
''' </summary>
|
||||
Public Sub DoneInfo(ByVal param As Object)
|
||||
Map.refInputExpanderVM.Done(Me)
|
||||
End Sub
|
||||
|
||||
#End Region ' DoneInfoCommand
|
||||
|
||||
#End Region ' Commands
|
||||
|
||||
End Class
|
||||
@@ -224,7 +224,7 @@ Public Class TopCommandBarVM
|
||||
nMchGrpId = EgtGetFirstMachGroup()
|
||||
End If
|
||||
Dim sMachineName As String = ""
|
||||
if EgtGetMachGroupMachineName( nMchGrpId, sMachineName) Then
|
||||
If EgtGetMachGroupMachineName(nMchGrpId, sMachineName) Then
|
||||
Map.refMachinePanelVM.SelectedMachine = Map.refMachinePanelVM.MachinesList.FirstOrDefault(Function(x) x.Name = sMachineName)
|
||||
End If
|
||||
End If
|
||||
@@ -236,7 +236,7 @@ Public Class TopCommandBarVM
|
||||
If EgtGetCurrMachGroup() = GDB_ID.NULL Then
|
||||
ExecExitMachScript()
|
||||
EgtDraw()
|
||||
' altrimenti, aggiusto...
|
||||
' altrimenti, aggiusto...
|
||||
Else
|
||||
' se parametri di una lavorazione aperti, disattivo database utensili, lavorazioni e setup
|
||||
Dim bIsEnabled As Boolean = Not IsNothing(Map.refOperationParametersExpanderVM) AndAlso Not Map.refOperationParametersExpanderVM.ParametersIsExpanded
|
||||
|
||||
@@ -667,13 +667,17 @@
|
||||
<Image.Style>
|
||||
<Style>
|
||||
<Setter Property="Image.Source"
|
||||
Value="/Resources/TreeView/LampOff.png" />
|
||||
Value="/Resources/TreeView/LampOff.png" />
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding IsChecked,
|
||||
RelativeSource={RelativeSource AncestorType=
|
||||
{x:Type ToggleButton}}}" Value="True">
|
||||
RelativeSource={RelativeSource AncestorType={x:Type ToggleButton}}}" Value="True">
|
||||
<Setter Property="Image.Source"
|
||||
Value="/Resources/TreeView/LampOn.png" />
|
||||
Value="/Resources/TreeView/LampOn.png" />
|
||||
</DataTrigger>
|
||||
<DataTrigger Binding="{Binding IsChecked,
|
||||
RelativeSource={RelativeSource AncestorType={x:Type ToggleButton}}}" Value="{x:Null}">
|
||||
<Setter Property="Image.Source"
|
||||
Value="/Resources/TreeView/LampSel.png" />
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
Reference in New Issue
Block a user