<UserControl xmlns:Control="clr-namespace:MECF.Framework.UI.Core.Control;assembly=MECF.Framework.UI.Core"  
             xmlns:UserControls="clr-namespace:CyberX8_Themes.UserControls;assembly=CyberX8_Themes"  
             x:Class="CyberX8_MainPages.Views.DepRecipeView"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:local="clr-namespace:CyberX8_MainPages.Views"
             xmlns:prism="http://prismlibrary.com/" 
             xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"             
             xmlns:converters="clr-namespace:CyberX8_MainPages.Converters"
             xmlns:extendedControls="clr-namespace:MECF.Framework.UI.Core.ExtendedControls;assembly=MECF.Framework.UI.Core"
             prism:ViewModelLocator.AutoWireViewModel="True"
             mc:Ignorable="d" 
             d:DesignHeight="800" d:DesignWidth="1800" Loaded="UserControl_Loaded">
    <UserControl.Resources>
        <converters:BoolReverseConverter x:Key="boolReverseConverter"/>
        <converters:BoolVisibilityConverter x:Key="boolVisibilityConverter"/>
    </UserControl.Resources>
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="100"></RowDefinition>
            <RowDefinition Height="145"></RowDefinition>
            <RowDefinition/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="50"></ColumnDefinition>
            <ColumnDefinition Width="400"></ColumnDefinition>
            <ColumnDefinition Width="700"></ColumnDefinition>
            <ColumnDefinition Width="700"></ColumnDefinition>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>
        <UserControls:RecipeFileLoadControl Grid.Row="1" Grid.RowSpan="2" Grid.Column="1" Title="Dep Recipe" RecipeNodes="{Binding RecipeNodes}" OperationCommand="{Binding OperationCommand}"
                                            RecipeLocation="{Binding CurrentNode.RecipeLocation}" EditEnable="{Binding EditEnable}" CreateEnable="{Binding CreateEnable}" RecipeFileName="{Binding CurrentNode.FileName}"
                                            CreateCommand="{Binding CreateCommand}" EditCommand="{Binding EditCommand}"/>
        <Grid Grid.Row="1" Grid.Column="2">
            <Grid.RowDefinitions>
                <RowDefinition Height="70"></RowDefinition>
                <RowDefinition Height="70"></RowDefinition>
                <RowDefinition/>
            </Grid.RowDefinitions>
            <GroupBox Header="PPID" Grid.Row="0">
                <TextBlock Text="{Binding Recipe.Ppid}" FontSize="20" VerticalAlignment="Center" TextAlignment="Center">
                </TextBlock>
            </GroupBox>
            <GroupBox Header="Description" Grid.Row="1">
                <TextBlock Text="{Binding Recipe.Description}" FontSize="18" VerticalAlignment="Center" TextAlignment="Center">
                </TextBlock>
            </GroupBox>
        </Grid>
        <Grid Grid.Row="1" Grid.Column="3">
            <Grid.RowDefinitions>
                <RowDefinition Height="70"></RowDefinition>
                <RowDefinition Height="70"></RowDefinition>
                <RowDefinition/>
                <RowDefinition Height="70"></RowDefinition>
            </Grid.RowDefinitions>
            <Grid Grid.Row="0" IsEnabled="{Binding Enable}">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition/>
                    <ColumnDefinition/>
                    <ColumnDefinition/>
                </Grid.ColumnDefinitions>
                <Button Grid.Column="0" Style="{StaticResource SysBtnStyle}"  Content="Save" Height="35" Width="100" Command="{Binding SaveRecipeCommand}"></Button>
                <Button Grid.Column="1" Style="{StaticResource SysBtnStyle}"  Content="SaveAs" Height="35" Width="100" Command="{Binding SaveAsRecipeCommand}"></Button>
            </Grid>

            <GroupBox Header="Total Time" Grid.Row="1" HorizontalAlignment="Left" Margin="40,0,0,0" Width="200">
                <Grid>
                    <Label Content="{Binding Recipe.TotalTime}" Height="30" Width="120" VerticalAlignment="Center" HorizontalAlignment="Left" Foreground="White" Background="Gray" 
                           HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Grid.Column="1" Margin="17,0,0,0"></Label>
                    <Label Content="sec" Height="30" Width="50" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="142,0,0,0" Grid.Column="1"></Label>
                </Grid>
            </GroupBox>
        </Grid>

        <Grid Grid.Row="2" Grid.Column="2" Grid.ColumnSpan="2">
            <Grid>
                <Grid Grid.Row="0">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="300"></ColumnDefinition>
                        <ColumnDefinition/>
                    </Grid.ColumnDefinitions>
                    <GroupBox Header="Scanning" Grid.Column="0">
                        <Grid>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="60"/>
                                <RowDefinition Height="75"/>
                                <RowDefinition Height="75"/>
                                <RowDefinition Height="75"/>
                                <RowDefinition Height="75"/>
                                <RowDefinition Height="75"/>
                                <RowDefinition Height="75"/>
                                <RowDefinition/>
                            </Grid.RowDefinitions>
                            <GroupBox Header="Chemistry" IsEnabled="{Binding Enable}">
                                <ComboBox Height="30" Margin="0,0,20,0" ItemsSource="{Binding ChemistryLst}" SelectedItem="{Binding Recipe.Chemistry,Mode=TwoWay}">
                                </ComboBox>
                            </GroupBox>
                            <UserControls:GroupTextBoxControl Grid.Row="1" Title="Current Warning %" Unit="%" MinValue="3" MaxValue="100" IntValue="{Binding Recipe.CurrentWarningLevel,Mode=TwoWay}"
                                                                      ValidResult="{Binding PropertyValidResultDic[CurrentWarningLevel],Mode=TwoWay}" Width="290"/>
                            <UserControls:GroupTextBoxControl Grid.Row="2" Title="Current Fault %" Unit="%" MinValue="3" MaxValue="100" IntValue="{Binding Recipe.FaultPercent,Mode=TwoWay}"
                                  ValidResult="{Binding PropertyValidResultDic[FaultPercent],Mode=TwoWay}" Width="290"/>
                            <UserControls:GroupTextBoxControl Grid.Row="3" Title="Min Voltage Fault" Unit="V" MinValue="0" MaxValue="12" IntValue="{Binding Recipe.VolatageLimitMin,Mode=TwoWay}"
                                                                  ValidResult="{Binding PropertyValidResultDic[VolatageLimitMin],Mode=TwoWay}" Width="290"/>
                            <UserControls:GroupTextBoxControl Grid.Row="4" Title="Max Voltage Fault" Unit="V" MinValue="0" MaxValue="12" IntValue="{Binding Recipe.VolatageLimitMax,Mode=TwoWay}"
                                  ValidResult="{Binding PropertyValidResultDic[VolatageLimitMax],Mode=TwoWay}" Width="290"/>
                            <UserControls:GroupTextBoxControl Grid.Row="5" Title="Max Voltage Warning" Unit="V" MinValue="0" MaxValue="12" IntValue="{Binding Recipe.VoltageWarningLevel,Mode=TwoWay}"
                                                                  ValidResult="{Binding PropertyValidResultDic[VoltageWarningLevel],Mode=TwoWay}" Width="290"/>
                            <UserControls:GroupTextBoxControl Grid.Row="6" Title="Plating Delay" Unit="sec" MinValue="5" MaxValue="240" IntValue="{Binding Recipe.PlatingDelaySeconds,Mode=TwoWay}"
                                  ValidResult="{Binding PropertyValidResultDic[PlatingDelaySeconds],Mode=TwoWay}" Width="290"/>
                        </Grid>
                    </GroupBox>
                    <TabControl Grid.Column="1" Background="Transparent">
                        <TabItem Header="RampSteps">
                            <Grid>
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="100"></RowDefinition>
                                    <RowDefinition/>
                                </Grid.RowDefinitions>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="220"></ColumnDefinition>
                                    <ColumnDefinition/>
                                </Grid.ColumnDefinitions>
                                <Grid Grid.Row="0" Grid.Column="0">
                                    <GroupBox Header="Hot Plating" IsEnabled="{Binding Enable}" Margin="0,10,0,0">
                                        <Grid>
                                            <RadioButton Content="False" Height="35" Width="60" VerticalContentAlignment="Center" HorizontalAlignment="Right" 
                                                         IsChecked="{Binding Recipe.HotPlatingCurrentOn,Converter={StaticResource boolReverseConverter}}" Margin="0,15,40,16"></RadioButton>
                                            <RadioButton Content="True" Height="35" Width="60" VerticalContentAlignment="Center" HorizontalAlignment="Left" 
                                                         IsChecked="{Binding Recipe.HotPlatingCurrentOn}" Margin="40,15,0,16" ></RadioButton>
                                        </Grid>
                                    </GroupBox>
                                </Grid>
                                <Grid Grid.Row="0" Grid.Column="1">
                                    <GroupBox Header="Cycle Clamps" IsEnabled="{Binding Enable}" Margin="0,10,0,0">
                                        <Grid>
                                            <RadioButton Content="False" Height="35" Width="60" VerticalContentAlignment="Center" HorizontalAlignment="Left" 
                                                         IsChecked="{Binding Recipe.CycleClampsEnable,Converter={StaticResource boolReverseConverter}}" Margin="100,15,0,16"></RadioButton>
                                            <RadioButton Content="True" Height="35" Width="60" VerticalContentAlignment="Center" HorizontalAlignment="Left" 
                                                         IsChecked="{Binding Recipe.CycleClampsEnable}" Margin="40,15,0,16" ></RadioButton>
                                            <UserControls:GroupTextBoxControl Grid.Row="1" Title="Max Tries" Unit="" MinValue="1" MaxValue="3" 
                                                                              IntValue="{Binding Recipe.CycleClampsMaxTries,Mode=TwoWay}" 
                                                                              ValidResult="{Binding PropertyValidResultDic[CycleClampsMaxTries],Mode=TwoWay}" Width="290"/>

                                        </Grid>
                                    </GroupBox>
                                </Grid>
                                <GroupBox Header="Deposition Step" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2">
                                    <Grid>
                                        <Grid.RowDefinitions>
                                            <RowDefinition Height="75"></RowDefinition>
                                            <RowDefinition/>
                                            <RowDefinition Height="65"></RowDefinition>
                                        </Grid.RowDefinitions>
                                        <Grid Grid.Row="0">
                                            <Grid.ColumnDefinitions>
                                                <ColumnDefinition Width="180"></ColumnDefinition>
                                                <ColumnDefinition Width="180"></ColumnDefinition>
                                                <ColumnDefinition Width="180"></ColumnDefinition>
                                                <ColumnDefinition Width="180"></ColumnDefinition>
                                                <ColumnDefinition/>
                                            </Grid.ColumnDefinitions>
                                            <GroupBox Header="Plating Steps">
                                                <Label Content="{Binding Recipe.DepositionPlatingSteps}" Height="30" Width="151" VerticalAlignment="Center" HorizontalAlignment="Left" Foreground="White" Background="Gray" 
                                                       HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Grid.Column="1" Margin="6,0,0,0"></Label>
                                            </GroupBox>
                                            <GroupBox Header="Total Time" Grid.Column="1">
                                                <Label Content="{Binding Recipe.DepositionTotalTime}" Height="30" Width="151" VerticalAlignment="Center" HorizontalAlignment="Left" Foreground="White" Background="Gray" 
                                                       HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Grid.Column="1" Margin="6,0,0,0"></Label>
                                            </GroupBox>
                                            <GroupBox Header="Total Current" Grid.Column="2">
                                                <Label Height="30" Width="151" VerticalAlignment="Center" HorizontalAlignment="Left" Foreground="White" Background="Gray" 
                                                       HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Grid.Column="1" Margin="6,0,0,0">
                                                    <Label.Content>
                                                        <TextBlock Text="{Binding Recipe.DepositionTotalCurrent,StringFormat=\{0:F3\} Amp Hours}"/>
                                                    </Label.Content>
                                                </Label>
                                            </GroupBox>
                                            <GroupBox Header="Anode Type" IsEnabled="{Binding Enable}" Grid.Column="3">
                                                <ComboBox Height="30" Margin="0,0,20,0" SelectedIndex="{Binding Recipe.AnodeType}" SelectedItem="{Binding SelectedAnodeType}">
                                                    <ComboBoxItem>Multi Zone</ComboBoxItem>
                                                    <ComboBoxItem>Single Zone</ComboBoxItem>
                                                </ComboBox>
                                            </GroupBox>
                                        </Grid>
                                        <DataGrid x:Name="RampDataGrid" MinRowHeight="27" Grid.Row="1" AutoGenerateColumns="False"  CanUserAddRows="False"  FontFamily="Arial" FontSize="14" Margin="0,10,0,0" 
                                                  ItemsSource="{Binding Recipe.CurrentRampProfileSteps}" SelectionMode="Single" IsEnabled="{Binding Enable}" SelectedIndex="{Binding SelectedRampIndex,Mode=TwoWay}"
                                                  >
                                            <DataGrid.Resources>
                                                <extendedControls:BindingProxy x:Key="DataShowProxy"  Data="{Binding}" />
                                            </DataGrid.Resources>
                                            <DataGrid.Columns>
                                                <DataGridTextColumn Header="Time&#x0a;(Sec)" Width="70"  Binding="{Binding CurrentRampDurartionSeconds,Mode=TwoWay}" CanUserSort="false" CanUserReorder="False" CanUserResize="False"/>
                                                <DataGridCheckBoxColumn Header="Pulse" Binding="{Binding PulseEnabled,Mode=TwoWay}" Width="70" CanUserSort="False" CanUserReorder="False" CanUserResize="True" 
                                                                    Visibility="{Binding Data.MultiZoneShow, Converter={StaticResource boolVisibilityConverter},Source={StaticResource DataShowProxy}}" >

                                                </DataGridCheckBoxColumn>
                                                <DataGridTextColumn Header="Forward&#x0a;Current" Width="100"  Binding="{Binding ForwardAmps,StringFormat=\{0:F3\},Mode=TwoWay}" CanUserSort="false" CanUserReorder="False" CanUserResize="False" >
                                                </DataGridTextColumn>
                                                <DataGridTextColumn Header="Forward&#x0a;Current2" Width="100"  Binding="{Binding ForwardAmps2,StringFormat=\{0:F3\},Mode=TwoWay}" CanUserSort="false" CanUserReorder="False" CanUserResize="False" 
                                                                     Visibility="{Binding Data.MultiZoneShow, Converter={StaticResource boolVisibilityConverter},Source={StaticResource DataShowProxy}}"/>
                                                <DataGridTextColumn Header="Forward&#x0a;Current3" Width="100"  Binding="{Binding ForwardAmps3,StringFormat=\{0:F3\},Mode=TwoWay}" CanUserSort="false" CanUserReorder="False" CanUserResize="False" 
                                                                     Visibility="{Binding Data.MultiZoneShow, Converter={StaticResource boolVisibilityConverter},Source={StaticResource DataShowProxy}}"/>
                                                <DataGridTextColumn Header="Forward&#x0a;Current4" Width="100"  Binding="{Binding ForwardAmps4,StringFormat=\{0:F3\},Mode=TwoWay}" CanUserSort="false" CanUserReorder="False" CanUserResize="False" 
                                                                     Visibility="{Binding Data.MultiZoneShow, Converter={StaticResource boolVisibilityConverter},Source={StaticResource DataShowProxy}}"/>
                                                <DataGridTextColumn Header="Forward&#x0a;Current5" Width="100"  Binding="{Binding ForwardAmps5,StringFormat=\{0:F3\},Mode=TwoWay}" CanUserSort="false" CanUserReorder="False" CanUserResize="False" 
                                                                     Visibility="{Binding Data.MultiZoneShow, Converter={StaticResource boolVisibilityConverter},Source={StaticResource DataShowProxy}}"/>
                                                <DataGridTextColumn Header="Forward&#x0a;Current6" Width="100"  Binding="{Binding ForwardAmps6,StringFormat=\{0:F3\},Mode=TwoWay}" CanUserSort="false" CanUserReorder="False" CanUserResize="False" 
                                                                     Visibility="{Binding Data.MultiZoneShow, Converter={StaticResource boolVisibilityConverter},Source={StaticResource DataShowProxy}}"/>
                                                <DataGridTextColumn Header="Reverse&#x0a;Current" Width="100"  Binding="{Binding ReversedAmps,StringFormat=\{0:F3\},Mode=TwoWay}" CanUserSort="false" CanUserReorder="False" CanUserResize="False" 
                                                                     Visibility="{Binding Data.SingleZoneShow, Converter={StaticResource boolVisibilityConverter},Source={StaticResource DataShowProxy}}"/>
                                                <DataGridTextColumn Header="Shear Plate&#x0a;Speed %" Width="100"  Binding="{Binding ShearPlateSpeed,StringFormat=\{0:F3\},Mode=TwoWay}" CanUserSort="false" CanUserReorder="False" CanUserResize="False" />
                                                <DataGridTextColumn Header="Average&#x0a;Current" Width="100"  Binding="{Binding ForwardAmps6,StringFormat=\{0:F3\},Mode=TwoWay}" CanUserSort="false" CanUserReorder="False" CanUserResize="False" 
                                                                    Visibility="{Binding Data.SingleZoneShow, Converter={StaticResource boolVisibilityConverter},Source={StaticResource DataShowProxy}}"/>
                                            </DataGrid.Columns>
                                        </DataGrid>
                                        <Grid Grid.Row="2" IsEnabled="{Binding Enable}">
                                            <Button Style="{StaticResource SysBtnStyle}"  Content="Add Below" Height="35" Width="100" Command="{Binding AddBelowCommand}" HorizontalAlignment="Left" Margin="10,15,0,15"></Button>
                                            <Button Style="{StaticResource SysBtnStyle}"  Content="Add Above" Height="35" Width="100" Command="{Binding AddAboveCommand}" HorizontalAlignment="Left" Margin="140,15,0,15"></Button>
                                            <Button Style="{StaticResource SysBtnStyle}"  Content="Move Up" Height="35" Width="100" Command="{Binding MoveUpCommand}" HorizontalAlignment="Left" Margin="270,15,0,15"></Button>
                                            <Button Style="{StaticResource SysBtnStyle}"  Content="Move Down" Height="35" Width="100" Command="{Binding MoveDownCommand}" HorizontalAlignment="Left" Margin="400,15,0,15"></Button>
                                            <Button Style="{StaticResource SysBtnStyle}"  Content="Delete" Height="35" Width="100" Command="{Binding DeleteCommand}" HorizontalAlignment="Left" Margin="530,15,0,15"></Button>

                                        </Grid>
                                    </Grid>
                                </GroupBox>
                            </Grid>
                        </TabItem>
                        <TabItem Header="PulseSteps">
                            <GroupBox Header="Pulse Setup" Width="400" HorizontalAlignment="Left" Margin="0,10,0,0">
                                <Grid>
                                    <Grid.RowDefinitions>
                                        <RowDefinition Height="150"></RowDefinition>
                                        <RowDefinition Height="120"></RowDefinition>
                                        <RowDefinition Height="200"></RowDefinition>
                                        <RowDefinition/>
                                    </Grid.RowDefinitions>
                                    <DataGrid MinRowHeight="27" AutoGenerateColumns="False"  CanUserAddRows="False"  FontFamily="Arial" FontSize="14" Margin="0,10,0,0" 
                                              ItemsSource="{Binding Recipe.PulsePowerSupplySteps}" SelectionMode="Single" IsEnabled="{Binding Enable}" SelectedIndex="{Binding SelectedPulseIndex,Mode=TwoWay}">
                                        <DataGrid.Resources>
                                            <extendedControls:BindingProxy x:Key="PulseTypeListProxy"  Data="{Binding PulseTypeList}" />
                                        </DataGrid.Resources>
                                        <DataGrid.Columns>
                                            <DataGridComboBoxColumn Header="Type" Width="150" ItemsSource="{Binding Data,Source={StaticResource PulseTypeListProxy}}" SelectedItemBinding="{Binding Type,Mode=TwoWay}" CanUserSort="false" CanUserReorder="False" CanUserResize="False">
                                            </DataGridComboBoxColumn>
                                            <DataGridTextColumn Header="Pulse (mSec)" Width="200"  Binding="{Binding DurationHundredsMicroSeconds,Mode=TwoWay}" CanUserSort="false" CanUserReorder="False" CanUserResize="False"/>
                                        </DataGrid.Columns>
                                    </DataGrid>
                                    <Grid Grid.Row="1" IsEnabled="{Binding Enable}">
                                        <Button Style="{StaticResource SysBtnStyle}"  Content="Add Below" Height="35" Width="100" Command="{Binding AddBelowPulseCommand}" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="10,15,0,0"></Button>
                                        <Button Style="{StaticResource SysBtnStyle}"  Content="Add Above" Height="35" Width="100" Command="{Binding AddAbovePulseCommand}" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="140,15,0,0"></Button>
                                        <Button Style="{StaticResource SysBtnStyle}"  Content="Move Up" Height="35" Width="100" Command="{Binding MoveUpPulseCommand}" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="270,15,0,0"></Button>
                                        <Button Style="{StaticResource SysBtnStyle}"  Content="Move Down" Height="35" Width="100" Command="{Binding MoveDownPulseCommand}" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="10,65,0,0"></Button>
                                        <Button Style="{StaticResource SysBtnStyle}"  Content="Delete" Height="35" Width="100" Command="{Binding DeletePulseCommand}" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="140,65,0,0"></Button>

                                    </Grid>
                                </Grid>
                            </GroupBox>
                        </TabItem>
                    </TabControl>
                </Grid>
            </Grid>
        </Grid>
    </Grid>
</UserControl>