Sic04/SicUI/Models/RecipeEditors/RecipeEditorView.xaml

1703 lines
94 KiB
XML

<UserControl
x:Class="SicUI.Models.RecipeEditors.RecipeEditorView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:OpenSEMI.Ctrlib.Controls;assembly=MECF.Framework.UI.Client"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:editors="clr-namespace:MECF.Framework.UI.Client.CenterViews.Editors;assembly=MECF.Framework.UI.Client"
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:egc="clr-namespace:ExtendedGrid.Microsoft.Windows.Controls;assembly=MECF.Framework.UI.Client"
xmlns:micro="clr-namespace:Caliburn.Micro;assembly=MECF.Framework.UI.Client"
xmlns:recipeEditors="clr-namespace:SicUI.Models.RecipeEditors"
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
xmlns:dgExtension="clr-namespace:MECF.Framework.UI.Client.RecipeEditorLib.DGExtension;assembly=MECF.Framework.UI.Client"
d:DesignHeight="900"
d:DesignWidth="1500"
mc:Ignorable="d">
<UserControl.Resources>
<Geometry x:Key="IconShow">
M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7
,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39
7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z
</Geometry>
<Geometry x:Key="IconHide">
M320 400c-75.85 0-137.25-58.71-142.9-133.11L72.2 185.82c-13.79 17.3-26.48 35.59-36.72 55.59a32.35
32.35 0 0 0 0 29.19C89.71 376.41 197.07 448 320 448c26.91 0 52.87-4 77.89-10.46L346 397.39a144.13
144.13 0 0 1-26 2.61zm313.82 58.1l-110.55-85.44a331.25 331.25 0 0 0 81.25-102.07 32.35 32.35 0 0 0
0-29.19C550.29 135.59 442.93 64 320 64a308.15 308.15 0 0 0-147.32 37.7L45.46 3.37A16 16 0 0 0 23
6.18L3.37 31.45A16 16 0 0 0 6.18 53.9l588.36 454.73a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0
0-2.82-22.45zm-183.72-142l-39.3-30.38A94.75 94.75 0 0 0 416 256a94.76 94.76 0 0 0-121.31-92.21A47.65
47.65 0 0 1 304 192a46.64 46.64 0 0 1-1.54 10l-73.61-56.89A142.31 142.31 0 0 1 320 112a143.92 143.92
0 0 1 144 144c0 21.63-5.29 41.79-13.9 60.11z
</Geometry>
<recipeEditors:ParamToCellTooltipConverter x:Key="CellTooltipConverter"/>
<recipeEditors:IsSavedToNameMarkVisibilityConverter x:Key="IsSavedToNameMarkVisibilityConverter"/>
<recipeEditors:IsHighlightedToBorderThickness x:Key="IsHighlightedToBorderThickness"/>
<recipeEditors:IsHighlightedToBorderBrush x:Key="IsHighlightedToBorderBrush"/>
<recipeEditors:RecipeErrorsCountToBadgeConverter x:Key="RecipeErrorsCountToBadge"/>
<recipeEditors:SelectedRecipeStepsToListConverter x:Key="SelectedRecipeStepsToList"/>
<recipeEditors:ParamValueDisplayConverter x:Key="ParamValueDisplayConverter"/>
<SolidColorBrush x:Key="ValueChangedCellBackground" Color="#c0f18d"/>
<Style x:Key="DoubleUpDownStyle1" TargetType="{x:Type xctk:DoubleUpDown}">
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="TextAlignment" Value="Center"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type xctk:DoubleUpDown}">
<xctk:WatermarkTextBox
x:Name="PART_TextBox"
Style="{StaticResource GenericTextBoxStyle}"
AcceptsReturn="false"
Background="{TemplateBinding Background}"
BorderThickness="0"
ContextMenu="{TemplateBinding ContextMenu}"
FontStretch="{TemplateBinding FontStretch}"
Foreground="{TemplateBinding Foreground}"
FontStyle="{TemplateBinding FontStyle}"
FontFamily="{TemplateBinding FontFamily}"
FontWeight="{TemplateBinding FontWeight}"
FontSize="{TemplateBinding FontSize}"
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
IsReadOnly="{Binding IsReadOnly, RelativeSource={RelativeSource TemplatedParent}}"
MinWidth="20"
Padding="{TemplateBinding Padding}"
SelectAllOnGotFocus="{Binding SelectAllOnGotFocus, RelativeSource={RelativeSource TemplatedParent}}"
TextAlignment="{Binding TextAlignment, RelativeSource={RelativeSource TemplatedParent}}"
TabIndex="{TemplateBinding TabIndex}"
TextWrapping="NoWrap"
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
Watermark="{Binding Watermark, RelativeSource={RelativeSource TemplatedParent}}"
WatermarkTemplate="{Binding WatermarkTemplate, RelativeSource={RelativeSource TemplatedParent}}"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!--#region Cell Templates -->
<DataTemplate x:Key="TemplateCellDisplay">
<Border
BorderThickness="{Binding IsHighlighted, Mode=OneWay, Converter={StaticResource IsHighlightedToBorderThickness}}"
BorderBrush="{Binding IsHighlighted, Mode=OneWay, Converter={StaticResource IsHighlightedToBorderBrush}}"
ToolTip="{Binding Converter={StaticResource CellTooltipConverter}}">
<Border.LayoutTransform>
<TransformGroup>
<RotateTransform Angle="-90" />
<ScaleTransform ScaleX="1" ScaleY="-1" />
</TransformGroup>
</Border.LayoutTransform>
<Border.Style>
<Style TargetType="Border">
<Style.Triggers>
<DataTrigger Binding="{Binding IsSaved}" Value="False">
<Setter Property="Background" Value="{StaticResource ValueChangedCellBackground}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
<TextBlock
Padding="5,3"
HorizontalAlignment="Center"
VerticalAlignment="Center"
TextTrimming="CharacterEllipsis">
<TextBlock.Text>
<MultiBinding Converter="{StaticResource ParamValueDisplayConverter}">
<Binding Path="Value"/>
<Binding Path="IsHideValue"/>
</MultiBinding>
</TextBlock.Text>
<TextBlock.Style>
<Style TargetType="TextBlock">
<Style.Triggers>
<MultiDataTrigger >
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsEqualsToPrevious}" Value="False"/>
<Condition Binding="{Binding IsValidated}" Value="False"/>
</MultiDataTrigger.Conditions>
<Setter Property="Foreground" Value="Red" />
</MultiDataTrigger>
<MultiDataTrigger >
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsEqualsToPrevious}" Value="True"/>
<Condition Binding="{Binding IsValidated}" Value="False"/>
</MultiDataTrigger.Conditions>
<Setter Property="Foreground" Value="Red" />
</MultiDataTrigger>
<MultiDataTrigger >
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsEqualsToPrevious}" Value="False"/>
<Condition Binding="{Binding IsValidated}" Value="True"/>
</MultiDataTrigger.Conditions>
<Setter Property="Foreground" Value="Green" />
</MultiDataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</Border>
</DataTemplate>
<DataTemplate x:Key="TemplateStep">
<Grid>
<Grid.LayoutTransform>
<TransformGroup>
<RotateTransform Angle="-90" />
<ScaleTransform ScaleX="1" ScaleY="-1" />
</TransformGroup>
</Grid.LayoutTransform>
<Border
Padding="5,1"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0">
<StackPanel
HorizontalAlignment="Center"
VerticalAlignment="Center"
Orientation="Horizontal">
<CheckBox
Margin="4"
IsHitTestVisible="False"
IsChecked="{Binding IsChecked}"
Visibility="{Binding StepCheckVisibility}" />
<TextBlock
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="14"
Foreground="Black"
Text="{Binding Value, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Visibility="{Binding Visible}" />
</StackPanel>
<Border.Style>
<Style TargetType="Border">
<Style.Triggers>
<DataTrigger Binding="{Binding IsVisible}" Value="false">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
<DataTrigger Binding="{Binding IsSaved}" Value="False">
<Setter Property="Background" Value="{StaticResource ValueChangedCellBackground}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
</Border>
</Grid>
</DataTemplate>
<!-- Column Header Template -->
<DataTemplate x:Key="ParamTemplate">
<Grid Width="320" Margin="0,5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="280" />
<ColumnDefinition Width="40" />
</Grid.ColumnDefinitions>
<Grid.LayoutTransform>
<TransformGroup>
<RotateTransform Angle="-90" />
<ScaleTransform ScaleX="1" ScaleY="-1" />
</TransformGroup>
</Grid.LayoutTransform>
<TextBlock
Grid.Column="0"
HorizontalAlignment="Left"
VerticalAlignment="Center"
FontFamily="Arial"
FontSize="16"
Text="{Binding DisplayName}" />
<TextBlock
Grid.Column="1"
Margin="0,0,0,0"
HorizontalAlignment="Right"
VerticalAlignment="Center"
FontFamily="Arial"
FontSize="16"
Text="{Binding UnitName}" />
</Grid>
</DataTemplate>
<DataTemplate x:Key="TemplateText">
<Grid>
<Grid.LayoutTransform>
<TransformGroup>
<RotateTransform Angle="-90" />
<ScaleTransform ScaleX="1" ScaleY="-1" />
</TransformGroup>
</Grid.LayoutTransform>
<Border
Padding="1,1"
Background="{DynamicResource Table_BG_Content}"
BorderThickness="0,0,1,1">
<controls:TextBoxEx
Padding="5,3"
AllowBackgroundChange="True"
IsEnabled="{Binding IsEnabled}"
Text="{Binding Value, Mode=TwoWay}"
TextSaved="{Binding IsSaved, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
<Border.Style>
<Style TargetType="Border">
<Style.Triggers>
<DataTrigger Binding="{Binding IsColumnSelected}" Value="True">
<Setter Property="BorderBrush" Value="DarkBlue" />
</DataTrigger>
<DataTrigger Binding="{Binding IsColumnSelected}" Value="False">
<Setter Property="BorderBrush" Value="Transparent" />
</DataTrigger>
<DataTrigger Binding="{Binding IsVisible}" Value="false">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
</Border>
</Grid>
</DataTemplate>
<DataTemplate x:Key="TemplateSets3Ratio">
<Border>
<Border.LayoutTransform>
<TransformGroup>
<RotateTransform Angle="-90" />
<ScaleTransform ScaleX="1" ScaleY="-1" />
</TransformGroup>
</Border.LayoutTransform>
<TextBox
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
IsEnabled="{Binding IsEnabled}"
Text="{Binding Value, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
<TextBox.Style>
<Style TargetType="TextBox" BasedOn="{StaticResource GenericTextBoxStyle}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsValidated}" Value="False">
<Setter Property="Foreground" Value="#9c0006"/>
<Setter Property="Background" Value="#ffc7ce"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
</Border>
</DataTemplate>
<DataTemplate x:Key="TemplateNumber">
<Border>
<Border.LayoutTransform>
<TransformGroup>
<RotateTransform Angle="-90" />
<ScaleTransform ScaleX="1" ScaleY="-1" />
</TransformGroup>
</Border.LayoutTransform>
<xctk:DoubleUpDown
Value="{Binding Value,
Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, FallbackValue=0}"
SelectAllOnGotFocus="True"
ShowButtonSpinner="False">
<xctk:DoubleUpDown.Style>
<Style TargetType="xctk:DoubleUpDown" BasedOn="{StaticResource DoubleUpDownStyle1}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsValidated}" Value="False">
<Setter Property="Foreground" Value="#9c0006"/>
<Setter Property="Background" Value="#ffc7ce"/>
</DataTrigger>
</Style.Triggers>
</Style>
</xctk:DoubleUpDown.Style>
</xctk:DoubleUpDown>
</Border>
</DataTemplate>
<DataTemplate x:Key="TemplateNumberText">
<Grid>
<Grid.LayoutTransform>
<TransformGroup>
<RotateTransform Angle="-90" />
<ScaleTransform ScaleX="1" ScaleY="-1" />
</TransformGroup>
</Grid.LayoutTransform>
<Border
Padding="1,1"
Background="{DynamicResource Table_BG_Content}"
BorderThickness="0,0,1,1">
<controls:TextBoxEx
Padding="5,3"
AllowBackgroundChange="True"
IsEnabled="{Binding IsEnabled}"
MaxValue="{Binding Maximun}"
MinValue="{Binding Minimun}"
Text="{Binding Value, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
<Border.Style>
<Style TargetType="Border">
<Style.Triggers>
<DataTrigger Binding="{Binding IsColumnSelected}" Value="True">
<Setter Property="BorderBrush" Value="DarkBlue" />
</DataTrigger>
<DataTrigger Binding="{Binding IsColumnSelected}" Value="False">
<Setter Property="BorderBrush" Value="Transparent" />
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
</Border>
</Grid>
</DataTemplate>
<DataTemplate x:Key="TemplateCombox">
<Grid>
<Grid.LayoutTransform>
<TransformGroup>
<RotateTransform Angle="-90" />
<ScaleTransform ScaleX="1" ScaleY="-1" />
</TransformGroup>
</Grid.LayoutTransform>
<Border
Padding="1,1"
Background="{DynamicResource Table_BG_Content}"
BorderThickness="0,0,1,1">
<controls:ComboTextBlock
Padding="5,3"
AllowBackgroundChange="True"
IsEditable="{Binding IsEditable}"
IsEnabled="{Binding IsEnabled}"
IsLoopItem="{Binding IsLoopItem}"
ItemsSource="{Binding Options}"
Text="{Binding Value, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
<Border.Style>
<Style TargetType="Border">
<Style.Triggers>
<DataTrigger Binding="{Binding IsColumnSelected}" Value="True">
<Setter Property="BorderBrush" Value="DarkBlue" />
</DataTrigger>
<DataTrigger Binding="{Binding IsColumnSelected}" Value="False">
<Setter Property="BorderBrush" Value="Transparent" />
</DataTrigger>
<DataTrigger Binding="{Binding IsVisible}" Value="false">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
</Border>
</Grid>
</DataTemplate>
<DataTemplate x:Key="TemplateComboxEx">
<Border>
<Border.LayoutTransform>
<TransformGroup>
<RotateTransform Angle="-90" />
<ScaleTransform ScaleX="1" ScaleY="-1" />
</TransformGroup>
</Border.LayoutTransform>
<ComboBox
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
DisplayMemberPath="DisplayName"
IsEditable="{Binding IsEditable}"
ItemsSource="{Binding Options}"
Text="{Binding Value, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, Delay=10}"/>
</Border>
</DataTemplate>
<DataTemplate x:Key="TemplatePopSetting">
<Grid>
<Grid.LayoutTransform>
<TransformGroup>
<RotateTransform Angle="-90" />
<ScaleTransform ScaleX="1" ScaleY="-1" />
</TransformGroup>
</Grid.LayoutTransform>
<Border
Padding="15,1"
Background="{DynamicResource Table_BG_Content}"
BorderThickness="0,0,1,1">
<Button
Content="{Binding DisplayName}"
Foreground="Black"
IsEnabled="{Binding IsEnabled}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<micro:ActionMessage MethodName="PopSetting">
<micro:Parameter Value="{Binding Name}" />
<micro:Parameter Value="{Binding}" />
</micro:ActionMessage>
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
<Border.Style>
<Style TargetType="Border">
<Style.Triggers>
<DataTrigger Binding="{Binding IsColumnSelected}" Value="True">
<Setter Property="BorderBrush" Value="DarkBlue" />
</DataTrigger>
<DataTrigger Binding="{Binding IsColumnSelected}" Value="False">
<Setter Property="BorderBrush" Value="Transparent" />
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
</Border>
</Grid>
</DataTemplate>
<DataTemplate x:Key="ParamExpander">
<Border
Width="340"
Margin="-5,-8,-6,-8"
Background="LightGray">
<Expander
Margin="5"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
HorizontalContentAlignment="Left"
VerticalContentAlignment="Stretch"
FontSize="14"
Header="{Binding DisplayName}"
IsExpanded="{Binding IsExpanded}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Expanded">
<micro:ActionMessage MethodName="ExpandColumnsGroup">
<micro:Parameter Value="{Binding}" />
</micro:ActionMessage>
</i:EventTrigger>
<i:EventTrigger EventName="Collapsed">
<micro:ActionMessage MethodName="CollapseColumnsGroup">
<micro:Parameter Value="{Binding}" />
</micro:ActionMessage>
</i:EventTrigger>
</i:Interaction.Triggers>
</Expander>
<Border.LayoutTransform>
<TransformGroup>
<RotateTransform Angle="-90" />
<ScaleTransform ScaleX="1" ScaleY="-1" />
</TransformGroup>
</Border.LayoutTransform>
</Border>
</DataTemplate>
<DataTemplate x:Key="TemplateExpander">
<Border
Width="Auto"
MinWidth="90"
Margin="0,-5"
Background="LightGray">
<Border.LayoutTransform>
<TransformGroup>
<RotateTransform Angle="-90" />
<ScaleTransform ScaleX="1" ScaleY="-1" />
</TransformGroup>
</Border.LayoutTransform>
<TextBlock HorizontalAlignment="Left" VerticalAlignment="Center" />
<Border.Style>
<Style TargetType="Border">
<Style.Triggers>
<DataTrigger Binding="{Binding IsVisible}" Value="false">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
</Border>
</DataTemplate>
<!--#endregion -->
<HierarchicalDataTemplate x:Key="FolderTemplate" ItemsSource="{Binding Files}">
<StackPanel Orientation="Horizontal" Tag="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}, Path=DataContext}">
<Image
x:Name="ExpandImage"
Width="14"
Height="12"
Margin="2,0,0,0"
VerticalAlignment="Center"
Source="/MECF.Framework.UI.Client;component/Resources/Images/Folder_Close.png" />
<TextBlock
Margin="5,0,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Text="{Binding Name}" />
<StackPanel.ContextMenu>
<ContextMenu DataContext="{Binding Path=PlacementTarget.Tag, RelativeSource={RelativeSource Self}}">
<Label
Margin="0"
Content="{Binding CurrentFileNode.FullPath}"
FontWeight="Black" />
<Separator />
<MenuItem
Command="{Binding NewRecipeCommand}"
Header="New Recipe"
IsEnabled="{Binding IsPermission}" />
<MenuItem
Command="{Binding DeleteRecipeCommand}"
Header="Delete Recipe"
IsEnabled="False" />
<MenuItem
Command="{Binding RenameRecipeCommand}"
Header="Rename Recipe"
IsEnabled="False" />
<MenuItem
Command="{Binding SaveAsRecipeCommand}"
Header="Save As Recipe"
IsEnabled="False" />
<Separator />
<MenuItem Command="{Binding NewFolderCommand}" Header="New Folder" />
<MenuItem Command="{Binding DeleteFolderCommand}" Header="Delete Folder" />
<MenuItem Command="{Binding RenameFolderCommand}" Header="Rename Folder" />
</ContextMenu>
</StackPanel.ContextMenu>
</StackPanel>
<HierarchicalDataTemplate.Triggers>
<Trigger Property="IsEnabled" Value="false">
<Setter TargetName="ExpandImage" Property="Image.Source" Value="/MECF.Framework.UI.Client;component/Resources/Images/Folder_Unable.png" />
</Trigger>
</HierarchicalDataTemplate.Triggers>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate x:Key="FileTemplate" ItemsSource="{Binding Files}">
<StackPanel Orientation="Horizontal" Tag="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}, Path=DataContext}">
<Path
Width="13"
Height="16"
HorizontalAlignment="Left"
Data="M0.5,5.125 L5.125,5.125 5.125,0.5 M5.1,0.5 L15.5,0.5 15.5,19.5 0.5,19.5 C0.5,14.7 0.5,10 0.5,5.1 2,3.6 3.6,2 5.1,0.5 z M8.1,8.5 L8.2,8.5 z M8.1,11.5 L8.2,11.5 z M8.1,14.5 L8.2,14.5 z"
Fill="#FFF3F3F3"
Stretch="Fill"
Stroke="#FF454545" />
<TextBlock
Margin="5,0,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Text="{Binding Name}" />
<StackPanel.ContextMenu>
<ContextMenu DataContext="{Binding Path=PlacementTarget.Tag, RelativeSource={RelativeSource Self}}">
<Label
Margin="0"
Content="{Binding CurrentFileNode.FullPath}"
FontWeight="Black" />
<Separator />
<MenuItem
Command="{Binding NewRecipeCommand}"
Header="New Recipe"
IsEnabled="{Binding IsPermission}" />
<MenuItem
Command="{Binding DeleteRecipeCommand}"
Header="Delete Recipe"
IsEnabled="{Binding IsPermission}" />
<MenuItem
Command="{Binding RenameRecipeCommand}"
Header="Rename Recipe"
IsEnabled="{Binding IsPermission}" />
<MenuItem
Command="{Binding SaveAsRecipeCommand}"
Header="Save As Recipe"
IsEnabled="{Binding IsPermission}" />
<Separator />
<MenuItem Command="{Binding NewFolderCommand}" Header="New Folder" />
<MenuItem
Command="{Binding DeleteFolderCommand}"
Header="Delete Folder"
IsEnabled="False" />
<MenuItem
Command="{Binding RenameFolderCommand}"
Header="Rename Folder"
IsEnabled="False" />
</ContextMenu>
</StackPanel.ContextMenu>
</StackPanel>
</HierarchicalDataTemplate>
<editors:FolderOrFileTemplateSelector
x:Key="FolderFileTemplateSelector"
FileTemplate="{StaticResource FileTemplate}"
FolderTemplate="{StaticResource FolderTemplate}" />
</UserControl.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="270" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="40" />
<RowDefinition Height="40" />
<RowDefinition />
</Grid.RowDefinitions>
<StackPanel
IsEnabled ="{Binding IsLoading, Converter={StaticResource reversBoolValueConverter}}"
Margin="0,5,5,0">
<StackPanel IsEnabled="{Binding IsPermission}" Orientation="Horizontal">
<Button
Width="62"
Height="25"
Margin="0,0,0,0"
Content="New"
FontSize="10"
IsEnabled="True">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<micro:ActionMessage MethodName="NewRecipe" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
<Button
Width="62"
Height="25"
Margin="4,0,0,0"
Content="Rename"
FontSize="10"
IsEnabled="{Binding EnableReName}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<micro:ActionMessage MethodName="RenameRecipe" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
<Button
Width="62"
Height="25"
Margin="4,0,0,0"
Content="Delete"
FontSize="10"
IsEnabled="{Binding EnableDelete}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<micro:ActionMessage MethodName="DeleteRecipe" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
<Button
Width="62"
Height="25"
Margin="4,0,0,0"
Content="Refresh"
FontSize="10">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<micro:ActionMessage MethodName="RefreshRecipe" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
</StackPanel>
</StackPanel>
<StackPanel
IsEnabled ="{Binding IsLoading, Converter={StaticResource reversBoolValueConverter}}"
Grid.Row="1" Orientation="Horizontal">
<Label
Margin="5,0,0,0"
VerticalAlignment="Center"
Content="Filter"
FontSize="16" />
<TextBox
Width="156"
Height="26"
Margin="0,0,5,0"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
Text="{Binding Path=CurrentCriteria, UpdateSourceTrigger=PropertyChanged}" />
<Button
Width="30"
Height="30"
Margin="0,0,5,0"
Padding="0"
HorizontalAlignment="Right"
VerticalAlignment="Center">
<Button.Content>
<Path
Width="15"
Height="15"
Margin="0,3"
Data="M5.5,0 L8.5,0 8.5,5.5 14,5.5 14,8.5 8.5,8.5 8.5,14 5.5,14 5.5,8.5 0,8.5 0,5.5 5.5,5.5 z"
Fill="Black"
RenderTransformOrigin="0.5,0.5"
Stretch="Fill"
StrokeThickness="3">
<Path.RenderTransform>
<TransformGroup>
<ScaleTransform />
<SkewTransform />
<RotateTransform Angle="45" />
<TranslateTransform />
</TransformGroup>
</Path.RenderTransform>
</Path>
</Button.Content>
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<micro:ActionMessage MethodName="ClearFilter" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
</StackPanel>
<Border
Grid.Row="2"
IsEnabled ="{Binding IsLoading, Converter={StaticResource reversBoolValueConverter}}"
Margin="0,0,13,0"
Background="Transparent"
BorderBrush="{DynamicResource Tab_BD}"
BorderThickness="0">
<TabControl
Padding="0"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
HorizontalContentAlignment="Stretch"
VerticalContentAlignment="Stretch"
ItemsSource="{Binding ProcessTypeFileList, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
SelectedIndex="{Binding ProcessTypeIndexSelection, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding ProcessType}" />
</DataTemplate>
</TabControl.ItemTemplate>
<TabControl.ContentTemplate>
<DataTemplate>
<TreeView
x:Name="RecipeTree1"
Margin="0"
Height="{Binding Path=ActualHeight, ElementName=PART_BORDER, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"
ItemTemplateSelector="{StaticResource FolderFileTemplateSelector}"
ItemsSource="{Binding FilterFileListByProcessType, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Tag="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}, Path=DataContext}"
VirtualizingPanel.IsVirtualizing="True"
VirtualizingPanel.VirtualizationMode="Recycling">
<TreeView.ItemContainerStyle>
<Style BasedOn="{StaticResource TreeViewItemExtend}" TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
</Style>
</TreeView.ItemContainerStyle>
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectedItemChanged">
<micro:ActionMessage MethodName="TreeSelectChanged">
<micro:Parameter Value="{Binding SelectedItem, ElementName=RecipeTree1}" />
</micro:ActionMessage>
</i:EventTrigger>
<i:EventTrigger EventName="MouseRightButtonDown">
<micro:ActionMessage MethodName="TreeRightMouseDown">
<micro:Parameter Value="$eventargs" />
</micro:ActionMessage>
</i:EventTrigger>
</i:Interaction.Triggers>
<TreeView.ContextMenu>
<ContextMenu DataContext="{Binding Path=PlacementTarget.Tag, RelativeSource={RelativeSource Self}}">
<!--<Label Content=".\" FontWeight="Black" Margin="0"/>-->
<Separator />
<MenuItem
Command="{Binding NewRecipeRootCommand}"
Header="New Recipe"
IsEnabled="{Binding IsPermission}" />
<MenuItem
Command="{Binding DeleteRecipeCommand}"
Header="Delete Recipe"
IsEnabled="False" />
<MenuItem
Command="{Binding RenameRecipeCommand}"
Header="Rename Recipe"
IsEnabled="False" />
<MenuItem
Command="{Binding SaveAsRecipeCommand}"
Header="Save As Recipe"
IsEnabled="False" />
<Separator />
<MenuItem
Command="{Binding NewFolderRootCommand}"
Header="New Folder"
IsEnabled="{Binding IsPermission}" />
<MenuItem
Command="{Binding DeleteFolderCommand}"
Header="Delete Folder"
IsEnabled="False" />
<MenuItem
Command="{Binding RenameFolderCommand}"
Header="Rename Folder"
IsEnabled="False" />
</ContextMenu>
</TreeView.ContextMenu>
</TreeView>
</DataTemplate>
</TabControl.ContentTemplate>
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<micro:ActionMessage MethodName="TabSelectionChanged" />
</i:EventTrigger>
</i:Interaction.Triggers>
</TabControl>
</Border>
</Grid>
<GridSplitter
Grid.Column="0"
Width="10"
Margin="0,55,0,0"
HorizontalAlignment="Right"
VerticalAlignment="Stretch"
Background="Transparent"
Style="{DynamicResource VerticalGridSplitterStyle}" />
<Grid
Grid.Column="1"
Margin="0,0,0,0"
HorizontalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition />
</Grid.RowDefinitions>
<Border
IsEnabled ="{Binding IsLoading, Converter={StaticResource reversBoolValueConverter}}">
<Grid IsEnabled="{Binding IsPermission}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="60" />
<ColumnDefinition Width="220" />
<ColumnDefinition Width="220" />
<ColumnDefinition Width="430" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="200" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="40" />
</Grid.RowDefinitions>
<Border
Padding="5,1"
Background="{DynamicResource Table_BG_Title}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="1">
<TextBlock
VerticalAlignment="Center"
FontFamily="Arial"
FontSize="16"
Foreground="{DynamicResource FG_Black}"
Text="Name"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Column="1"
Padding="1,1"
Background="{DynamicResource Table_BG_Title}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,1,1,1">
<Border
Padding="5,0"
Background="{DynamicResource Table_BG_Content}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="1,1,1,1">
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
<TextBlock
Text="*" Margin="0,0,5,0"
Visibility="{Binding CurrentRecipe.IsChanged,
Converter={StaticResource IsSavedToNameMarkVisibilityConverter}}" />
<TextBlock
Width="Auto"
MinWidth="200"
HorizontalAlignment="Left"
FontFamily="Arial"
FontSize="18"
Text="{Binding CurrentRecipe.Name}"
TextWrapping="NoWrap"
TextTrimming="CharacterEllipsis"/>
</StackPanel>
</Border>
</Border>
<Border
Grid.Column="2"
Padding="5,1"
Background="{DynamicResource Table_BG_Title}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,1,1,1">
<StackPanel HorizontalAlignment="Right" Orientation="Horizontal">
<Button
Width="90"
Height="30"
Margin="10,0,0,0"
HorizontalAlignment="Right"
Content="Reload">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<micro:ActionMessage MethodName="ReloadRecipe" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
<Button
Width="90"
Height="30"
Margin="10,0,10,0"
Content="Save"
IsEnabled="{Binding EnableSave}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<micro:ActionMessage MethodName="SaveRecipe" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
</StackPanel>
</Border>
<Border
Grid.Column="3"
Padding="5,1"
Background="{DynamicResource Table_BG_Title}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,1,1,1">
<StackPanel Orientation="Horizontal" Visibility="{Binding MultiChamberVisibility}">
<TextBlock
VerticalAlignment="Center"
FontFamily="Arial"
FontSize="16"
Foreground="{DynamicResource FG_Black}"
Text="Chamber" />
<ComboBox
Width="80"
Height="30"
Margin="10,0,0,0"
ItemsSource="{Binding Chambers}"
SelectedItem="{Binding SelectedChamber, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<micro:ActionMessage MethodName="ChamberSelectionChanged" />
</i:EventTrigger>
</i:Interaction.Triggers>
</ComboBox>
<Button
Width="120"
Height="30"
Margin="10,0,0,0"
HorizontalAlignment="Right"
Content="Save To All"
IsEnabled="{Binding EnableSaveToAll}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<micro:ActionMessage MethodName="SaveToAll" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
<Button
Width="120"
Height="30"
Margin="10,0,0,0"
Content="Save To..."
IsEnabled="{Binding EnableSaveTo}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<micro:ActionMessage MethodName="SaveTo" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
</StackPanel>
</Border>
<Border
Grid.Column="5"
Padding="1,1"
Background="{DynamicResource Table_BG_Title}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,1,1,1">
<StackPanel HorizontalAlignment="Right" Orientation="Horizontal">
<Button
Width="90"
Height="30"
Margin="5,0,0,0"
HorizontalAlignment="Right"
Content="Chg Pass">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<micro:ActionMessage MethodName="ChangePassword" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
<Button
Name="btnLogin"
Width="90"
Height="30"
Margin="5,0,5,0"
Content="{Binding LoginText}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<micro:ActionMessage MethodName="EditLogin" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
</StackPanel>
</Border>
</Grid>
</Border>
<TabControl
Grid.Row="1"
Margin="0,5,0,0"
IsEnabled="{Binding EditorEnable}"
Visibility="{Binding EditorEnableV}">
<TabItem Header="Header">
<Grid HorizontalAlignment="Left" IsEnabled="{Binding IsPermission}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="150" />
<ColumnDefinition Width="280" />
<ColumnDefinition Width="200" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="40" />
<RowDefinition Height="40" />
<RowDefinition Height="40" />
<RowDefinition Height="40" />
<RowDefinition Height="40" />
<RowDefinition Height="40" />
<RowDefinition Height="40" />
</Grid.RowDefinitions>
<Border
Padding="5,1"
Background="{DynamicResource Table_BG_Title}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="1">
<TextBlock
VerticalAlignment="Center"
FontFamily="Arial"
FontSize="16"
Foreground="{DynamicResource FG_Black}"
Text="Name"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Column="1"
Padding="5,1"
Background="{DynamicResource Table_BG_Content}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,1,1,1">
<controls:TextBoxEx
Width="Auto"
MinWidth="100"
VerticalAlignment="Stretch"
AllowBackgroundChange="False"
IsEnabled="False"
Text="{Binding CurrentRecipe.Name}"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Row="0"
Grid.Column="2"
Padding="5,1"
Background="{DynamicResource Table_BG_Content}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,1,1,1" />
<Border
Grid.Row="1"
Padding="5,1"
Background="{DynamicResource Table_BG_Title}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="1,0,1,1">
<TextBlock
VerticalAlignment="Center"
FontFamily="Arial"
FontSize="16"
Foreground="{DynamicResource FG_Black}"
Text="Description"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Row="1"
Grid.Column="1"
Padding="5,1"
Background="{DynamicResource Table_BG_Content}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,0,1,1">
<controls:TextBoxEx
Width="Auto"
MinWidth="100"
VerticalAlignment="Stretch"
Text="{Binding CurrentRecipe.Description, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
TextSaved="{Binding CurrentRecipe.IsSavedDesc, Mode=TwoWay}"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Row="1"
Grid.Column="2"
Padding="5,1"
Background="{DynamicResource Table_BG_Content}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,0,1,1" />
<Border
Grid.Row="2"
Padding="5,1"
Background="{DynamicResource Table_BG_Title}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="1,0,1,1">
<TextBlock
VerticalAlignment="Center"
FontFamily="Arial"
FontSize="16"
Foreground="{DynamicResource FG_Black}"
Text="Chamber Type"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Row="2"
Grid.Column="1"
Padding="5,1"
Background="{DynamicResource Table_BG_Content}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,0,1,1">
<TextBlock
Width="Auto"
MinWidth="100"
VerticalAlignment="Stretch"
IsEnabled="False"
Text="{Binding CurrentRecipe.RecipeChamberType}"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Row="2"
Grid.Column="2"
Padding="5,1"
Background="{DynamicResource Table_BG_Content}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,0,1,1" />
<Border
Grid.Row="3"
Padding="5,1"
Background="{DynamicResource Table_BG_Title}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="1,0,1,1">
<TextBlock
VerticalAlignment="Center"
FontFamily="Arial"
FontSize="16"
Foreground="{DynamicResource FG_Black}"
Text="Format Version"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Row="3"
Grid.Column="1"
Padding="5,1"
Background="{DynamicResource Table_BG_Content}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,0,1,1">
<TextBlock
Width="Auto"
MinWidth="100"
VerticalAlignment="Stretch"
Text="{Binding CurrentRecipe.RecipeVersion}"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Row="3"
Grid.Column="2"
Padding="5,1"
Background="{DynamicResource Table_BG_Content}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,0,1,1" />
<Border
Grid.Row="4"
Grid.Column="0"
Padding="5,1"
Background="{DynamicResource Table_BG_Title}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="1,0,1,1">
<TextBlock
VerticalAlignment="Center"
FontFamily="Arial"
FontSize="16"
Foreground="{DynamicResource FG_Black}"
Text="Create"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Row="4"
Grid.Column="1"
Padding="5,1"
Background="{DynamicResource Table_BG_Content}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,0,1,1">
<TextBlock
Width="Auto"
MinWidth="100"
VerticalAlignment="Stretch"
FontFamily="Arial"
FontSize="14"
Foreground="{DynamicResource FG_Black}"
Text="{Binding CurrentRecipe.Creator}"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Row="4"
Grid.Column="2"
Padding="5,1"
Background="{DynamicResource Table_BG_Content}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,0,1,1">
<TextBlock
Width="Auto"
MinWidth="100"
HorizontalAlignment="Left"
VerticalAlignment="Center"
FontFamily="Arial"
FontSize="14"
Foreground="{DynamicResource FG_Black}"
Text="{Binding CurrentRecipe.CreateTime}"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Row="5"
Grid.Column="0"
Padding="5,1"
Background="{DynamicResource Table_BG_Title}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="1,0,1,1">
<TextBlock
VerticalAlignment="Center"
FontFamily="Arial"
FontSize="16"
Foreground="{DynamicResource FG_Black}"
Text="Revise"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Row="5"
Grid.Column="1"
Padding="5,1"
Background="{DynamicResource Table_BG_Content}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,0,1,1">
<TextBlock
Width="120"
HorizontalAlignment="Left"
VerticalAlignment="Center"
FontFamily="Arial"
FontSize="14"
Foreground="{DynamicResource FG_Black}"
Text="{Binding CurrentRecipe.Revisor}"
TextWrapping="Wrap" />
</Border>
<Border
Grid.Row="5"
Grid.Column="2"
Padding="5,1"
Background="{DynamicResource Table_BG_Content}"
BorderBrush="{DynamicResource Table_BD}"
BorderThickness="0,0,1,1">
<TextBlock
MinWidth="140"
HorizontalAlignment="Left"
VerticalAlignment="Center"
FontFamily="Arial"
FontSize="14"
Foreground="{DynamicResource FG_Black}"
Text="{Binding CurrentRecipe.ReviseTime}"
TextWrapping="Wrap" />
</Border>
</Grid>
</TabItem>
<TabItem Header="Steps" IsSelected="True">
<Grid
Grid.Row="1"
Margin="0,0,0,0"
IsEnabled="{Binding IsPermission}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="97*" />
<ColumnDefinition Width="1041*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="40" />
<RowDefinition />
</Grid.RowDefinitions>
<StackPanel
IsEnabled ="{Binding IsLoading, Converter={StaticResource reversBoolValueConverter}}"
Grid.ColumnSpan="2" Orientation="Horizontal">
<Label
Margin="250,0,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Content="TotalTime:"
FontFamily="Arial"
FontSize="16"
Foreground="{DynamicResource FG_Black}" />
<Label
Width="50"
Margin="0,0,0,0"
HorizontalAlignment="Center"
VerticalAlignment="Center"
HorizontalContentAlignment="Right"
Content="{Binding CurrentRecipe.RecipeTotalTime, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"
FontFamily="Arial"
FontSize="16"
Foreground="{DynamicResource FG_Black}" />
<Label
Width="20"
Margin="-10,0,10,0"
HorizontalAlignment="Center"
VerticalAlignment="Center"
HorizontalContentAlignment="Left"
Content="s"
FontFamily="Arial"
FontSize="16"
Foreground="{DynamicResource FG_Black}" />
<Button
Width="90"
Height="30"
Margin="0,0,0,0"
Content="Add"
IsEnabled="{Binding EnableStep}"
micro:Message.Attach="AddStep()"/>
<Button
Width="90"
Height="30"
Margin="10,0,0,0"
Content="Insert"
IsEnabled="{Binding EnableStep}"
micro:Message.Attach="InsertStepToLeft()"/>
<Button
Width="90"
Height="30"
Margin="10,0,0,0"
Content="Copy"
IsEnabled="{Binding EnableStep}"
micro:Message.Attach="CopyStep()"/>
<Button
Width="100"
Height="30"
Margin="10,0,0,0"
Content="Paste Front"
IsEnabled="{Binding EnableStep}"
micro:Message.Attach="PasteStepToLeft()"/>
<Button
Width="100"
Height="30"
Margin="10,0,0,0"
Content=" Paste Back"
IsEnabled="{Binding EnableStep}"
micro:Message.Attach="PasteStepToRight()"/>
<Button
Width="90"
Height="30"
Margin="10,0,0,0"
Content="Delete"
IsEnabled="{Binding EnableStep}"
micro:Message.Attach="DeleteStep()"/>
<!--<Button
Width="90"
Height="30"
Content="Validate"
IsEnabled="{Binding EnableStep}"
micro:Message.Attach="ShowValidationDetailWindow()"
materialDesign:BadgedAssist.BadgePlacementMode="TopLeft"
materialDesign:BadgedAssist.BadgeBackground="Red"
materialDesign:BadgedAssist.Badge="123"
materialDesign:BadgedAssist.IsMiniBadge="True"/>-->
<materialDesign:Badged
x:Name="txtErrorCount"
BadgeColorZoneMode="Standard"
BadgeBackground="Red"
BadgeForeground="White"
Margin="40,5,0,0"
BadgePlacementMode="TopLeft"
CornerRadius="5,5,5,5"
materialDesign:BadgedAssist.IsMiniBadge="True">
<Button
Width="90"
Height="30"
Content="Validate"
IsEnabled="{Binding EnableStep}"
micro:Message.Attach="ShowValidationDetailWindow()"/>
</materialDesign:Badged>
<Button
x:Name="btnShowHideParamValue"
Width="50"
Height="30"
Margin="5,0,0,0"
IsEnabled="{Binding EnableStep}"
ToolTip="Show/Hide Param Values"
micro:Message.Attach="ShowHideParamValues()">
<Grid>
<Path
Stretch="Uniform"
Height="16"
Fill="{Binding ElementName=btnShowHideParamValue, Path=Foreground}"
Data="{StaticResource IconShow}"
Visibility="{Binding CurrentRecipe.Steps.IsHideValue,
Converter={StaticResource BoolVisibilityConverter},
ConverterParameter='True'}"/>
<Path
Stretch="Uniform"
Height="16"
Fill="{Binding ElementName=btnShowHideParamValue, Path=Foreground}"
Data="{StaticResource IconHide}"
Visibility="{Binding CurrentRecipe.Steps.IsHideValue,
Converter={StaticResource BoolVisibilityConverter},
ConverterParameter='False'}"/>
</Grid>
</Button>
<!--
Content="{Binding CurrentRecipe.Steps.IsHideValue,
Converter={StaticResource ShowHideValueButtonContentConverter}}"
Content="{Binding CurrentRecipe.Steps.IsHideValue,
Mode=OneWay,
Converter={StaticResource ShowHideValueButtonContentConverter}}"
-->
</StackPanel>
<Border
x:Name="dgContainer"
Grid.Row="1"
Grid.ColumnSpan="2" Grid.Column="0"
Background="Transparent"
IsHitTestVisible="{Binding IsLoading, Converter={StaticResource reversBoolValueConverter}}">
<dgExtension:XDataGrid
x:Name="dgCustom"
AlternationCount="1"
AutoGenerateColumns="False"
Background="Transparent"
CanUserAddRows="False"
CanUserDeleteRows="False"
CanUserReorderColumns="False"
CanUserResizeColumns="False"
CanUserResizeRows="False"
FrozenColumnCount="4"
GridLinesVisibility="None"
HeadersVisibility="Column"
IsEnabled="{Binding IsPermission}"
SelectionUnit="FullRow"
SelectionMode="Extended"
UseHorizontalScrolling="True"
Validation.ErrorTemplate="{x:Null}"
VerticalScrollBarVisibility="Auto"
VirtualizingPanel.IsVirtualizing="True"
VirtualizingPanel.VirtualizationMode="Recycling"
Style="{x:Null}"
Width="{Binding ElementName=dgContainer, Path=Height}"
Height="{Binding ElementName=dgContainer, Path=Width}"
SelectedItemsList="{Binding SelectedRecipeSteps, Mode=OneWayToSource, Converter={StaticResource SelectedRecipeStepsToList}}"
LoadingRow="DgCustom_OnLoadingRow"
UnloadingRow="DgCustom_OnUnloadingRow">
<dgExtension:XDataGrid.Resources>
<recipeEditors:IsDgSelectionCountEqualsOneConverter x:Key="DgSelectionCountEqualsOneConverter"/>
<recipeEditors:StepNoToCxtMenuTitleConverter x:Key="StepNoToCxtMenuTitleConverter"/>
</dgExtension:XDataGrid.Resources>
<dgExtension:XDataGrid.LayoutTransform>
<TransformGroup>
<RotateTransform Angle="-90" />
<ScaleTransform ScaleX="1" ScaleY="-1" />
</TransformGroup>
</dgExtension:XDataGrid.LayoutTransform>
<dgExtension:XDataGrid.RowStyle>
<Style TargetType="{x:Type egc:DataGridRow}">
<Setter Property="Tag" Value="{Binding DataContext, RelativeSource={RelativeSource FindAncestor, AncestorType=UserControl}}"/>
<Setter Property="ContextMenu">
<Setter.Value>
<ContextMenu
Style="{StaticResource MaterialDesignMenu}"
Background="White"
IsEnabled="{Binding EnableStep, RelativeSource={RelativeSource AncestorType=UserControl, Mode=FindAncestor}}"
micro:Action.TargetWithoutContext="{Binding Path=PlacementTarget.Tag, RelativeSource={RelativeSource Self}}">
<ContextMenu.Resources>
<Style x:Key="OneStepSelectedStyle" TargetType="MenuItem" BasedOn="{StaticResource MaterialDesignMenuItem}">
<Setter Property="IsEnabled" Value="{Binding RelativeSource={RelativeSource self},
Path=Parent.PlacementTarget.Tag.SelectedRecipeSteps,
Converter={StaticResource DgSelectionCountEqualsOneConverter}}"/>
</Style>
<SolidColorBrush x:Key="MenuItemIconColor" Color="Black"/>
</ContextMenu.Resources>
<!-- Selected Row hint -->
<MenuItem
Header="{Binding Path=StepNoParam, Mode=OneWay, Converter={StaticResource StepNoToCxtMenuTitleConverter}}"
IsEnabled="False">
<MenuItem.HeaderTemplate>
<DataTemplate>
<TextBlock Text="{Binding }"
FontWeight="Black"/>
</DataTemplate>
</MenuItem.HeaderTemplate>
</MenuItem>
<Separator/>
<MenuItem
Header="Append New Step"
micro:Message.Attach="AddStep()"
Style="{StaticResource OneStepSelectedStyle}">
<MenuItem.Icon>
<Image Width="16" Height="16">
<Image.Source>
<DrawingImage>
<DrawingImage.Drawing>
<GeometryDrawing Brush="{StaticResource MenuItemIconColor}" >
<GeometryDrawing.Geometry>
<Geometry>
M597.333 768v-345.643c-24.495 24.998-53.35 45.709-85.333 60.902v284.74c0 47.128 38.204 85.333 85.333 85.333h170.667c47.13 0 85.333-38.205 85.333-85.333v-682.667c0-47.13-38.204-85.333-85.333-85.333h-170.667c-1.412 0-2.812 0.034-4.207 0.102 24.951 24.474 45.628 53.291 60.8 85.231h114.074v682.667h-170.667zM597.333 213.334c0-117.82-95.514-213.333-213.333-213.333s-213.333 95.514-213.333 213.333c0 117.82 95.513 213.333 213.333 213.333s213.333-95.514 213.333-213.333zM426.667 85.334v85.333h85.333v85.333h-85.333v85.333h-85.333v-85.333h-85.333v-85.333h85.333v-85.333h85.333z
</Geometry>
</GeometryDrawing.Geometry>
</GeometryDrawing>
</DrawingImage.Drawing>
</DrawingImage>
</Image.Source>
</Image>
</MenuItem.Icon>
</MenuItem>
<MenuItem
Header="New to Left"
micro:Message.Attach="InsertStepToLeft()"
Style="{StaticResource OneStepSelectedStyle}">
<MenuItem.Icon>
<Image Width="16" Height="16">
<Image.Source>
<DrawingImage>
<DrawingImage.Drawing>
<GeometryDrawing Brush="{StaticResource MenuItemIconColor}">
<GeometryDrawing.Geometry>
<Geometry>
M1000 1050C1027.6 1050 1050 1027.6 1050 1000V200C1050 172.4000000000001 1027.6 150 1000 150H700C672.4 150 650 172.4000000000001 650 200V1000C650 1027.6 672.4 1050 700 1050H1000zM950 950H750V250H950V950zM300 850C438.05 850 550 738.05 550 600S438.05 350 300 350S50 461.95 50 600S161.95 850 300 850zM350 750H250V650.05L150 650V550L250 550.05V450H350V550.05L450 550V650L350 650.05V750z
</Geometry>
</GeometryDrawing.Geometry>
</GeometryDrawing>
</DrawingImage.Drawing>
</DrawingImage>
</Image.Source>
</Image>
</MenuItem.Icon>
</MenuItem>
<MenuItem
Header="New to Right"
micro:Message.Attach="InsertStepToRight()"
Style="{StaticResource OneStepSelectedStyle}">
<MenuItem.Icon>
<Image Width="16" Height="16">
<Image.Source>
<DrawingImage>
<DrawingImage.Drawing>
<GeometryDrawing Brush="{StaticResource MenuItemIconColor}">
<GeometryDrawing.Geometry>
<Geometry>
M500 1050C527.6 1050 550 1027.6 550 1000V200C550 172.4000000000001 527.6 150 500 150H200C172.4 150 150 172.4000000000001 150 200V1000C150 1027.6 172.4 1050 200 1050H500zM450 950H250V250H450V950zM900 850C1038.05 850 1150 738.05 1150 600S1038.05 350 900 350S650 461.95 650 600S761.95 850 900 850zM950 750H850V650.05L750 650V550L850 550.05V450H950V550.05L1050 550V650L950 650.05V750z
</Geometry>
</GeometryDrawing.Geometry>
</GeometryDrawing>
</DrawingImage.Drawing>
</DrawingImage>
</Image.Source>
</Image>
</MenuItem.Icon>
</MenuItem>
<Separator/>
<MenuItem
Header="Copy"
micro:Message.Attach="CopyStep()" >
<MenuItem.Icon>
<Image Width="16" Height="16">
<Image.Source>
<DrawingImage>
<DrawingImage.Drawing>
<GeometryDrawing Brush="{StaticResource MenuItemIconColor}">
<GeometryDrawing.Geometry>
<Geometry>
M6 6V2c0-1.1.9-2 2-2h10a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-4v4a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V8c0-1.1.9-2 2-2h4zm2 0h4a2 2 0 0 1 2 2v4h4V2H8v4zM2 8v10h10V8H2z
</Geometry>
</GeometryDrawing.Geometry>
</GeometryDrawing>
</DrawingImage.Drawing>
</DrawingImage>
</Image.Source>
</Image>
</MenuItem.Icon>
<!--<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<micro:ActionMessage MethodName="CopyStep">
<micro:Parameter Value="{Binding Parent.PlacementTarget.Tag.SelectedRecipeSteps, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=MenuItem}}" />
</micro:ActionMessage>
</i:EventTrigger>
</i:Interaction.Triggers>-->
</MenuItem>
<MenuItem
Header="Paste to Left"
micro:Message.Attach="PasteStepToLeft()"
Style="{StaticResource OneStepSelectedStyle}"/>
<MenuItem
Header="Paste to Right"
micro:Message.Attach="PasteStepToRight()"
Style="{StaticResource OneStepSelectedStyle}"/>
<Separator/>
<MenuItem
Header="Duplicate to Left"
micro:Message.Attach="DuplicateStepToLeft()"
Style="{StaticResource OneStepSelectedStyle}"/>
<MenuItem
Header="Duplicate to Right"
micro:Message.Attach="DuplicateStepToRight()"
Style="{StaticResource OneStepSelectedStyle}"/>
<Separator/>
<MenuItem
Header="Delete"
micro:Message.Attach="DeleteStep()">
<MenuItem.Icon>
<Image Width="16" Height="16">
<Image.Source>
<DrawingImage>
<DrawingImage.Drawing>
<GeometryDrawing Brush="Red">
<GeometryDrawing.Geometry>
<Geometry>
M108 284c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h232c6.6 0 12 5.4 12 12v32c0 6.6-5.4 12-12 12H108zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z
</Geometry>
</GeometryDrawing.Geometry>
</GeometryDrawing>
</DrawingImage.Drawing>
</DrawingImage>
</Image.Source>
</Image>
</MenuItem.Icon>
</MenuItem>
</ContextMenu>
</Setter.Value>
</Setter>
</Style>
</dgExtension:XDataGrid.RowStyle>
</dgExtension:XDataGrid>
</Border>
</Grid>
</TabItem>
</TabControl>
</Grid>
</Grid>
</UserControl>