<UserControl x:Class="GSF.TimeSeries.UI.UserControls.HistorianUserControl" 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" mc:Ignorable="d" d:DesignHeight="650" d:DesignWidth="850" xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:uc="clr-namespace:GSF.TimeSeries.UI.UserControls" xmlns:tsfBinding="clr-namespace:GSF.TimeSeries.UI.Binding;assembly=GSF.TimeSeries.UI" Background="Transparent"> <UserControl.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="/GSF.TimeSeries.UI.WPF;Component/Resources/CommonResource.xaml" /> <ResourceDictionary Source="/GSF.TimeSeries.UI.WPF;Component/Resources/StyleResource.xaml" /> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </UserControl.Resources> <StackPanel Orientation="Vertical"> <StackPanel.Resources> <CollectionViewSource Source="{Binding Path=NodeLookupList}" x:Key="NodeLookupList"/> </StackPanel.Resources> <Grid x:Name="GridDetailView" HorizontalAlignment="Center" VerticalAlignment="Top" Margin="5" DataContext="{Binding Path=CurrentItem, Mode=TwoWay}" DataContextChanged="GridDetailView_DataContextChanged"> <Grid.BindingGroup > <BindingGroup Name="input"/> </Grid.BindingGroup> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <StackPanel Orientation="Horizontal" Grid.Row="1" Grid.Column="0" HorizontalAlignment="Right"> <TextBlock Text="Acronym" Style="{StaticResource RequiredLabel}" /> <TextBlock Style="{StaticResource RequiredMarker}" /> </StackPanel> <TextBox Grid.Row="1" Grid.Column="1" Text="{tsfBinding:Column Path=Acronym}" CharacterCasing="Upper" MaxLength="50"/> <TextBlock Text="Name" Grid.Row="1" Grid.Column="2" /> <TextBox Grid.Row="1" Grid.Column="3" Text="{tsfBinding:Column Path=Name}" MaxLength="100" /> <TextBlock Text="Type Name" Grid.Row="2" Grid.Column="0" /> <TextBox Grid.Row="2" Grid.Column="1" Text="{tsfBinding:Column Path=TypeName}" /> <TextBlock Text="Assembly Name" Grid.Row="2" Grid.Column="2" /> <TextBox Grid.Row="2" Grid.Column="3" Text="{tsfBinding:Column Path=AssemblyName}" /> <TextBlock Text="Connection String" Grid.Row="3" Grid.Column="0" VerticalAlignment="Top" /> <TextBox Grid.Row="3" Grid.Column="1" Text="{tsfBinding:Column Path=ConnectionString}" Height="50" TextWrapping="Wrap" VerticalScrollBarVisibility="Auto"/> <TextBlock Text="Description" Grid.Row="3" Grid.Column="2" VerticalAlignment="Top" /> <TextBox Grid.Row="3" Grid.Column="3" Text="{tsfBinding:Column Path=Description}" Height="50" TextWrapping="Wrap" VerticalScrollBarVisibility="Auto"/> <StackPanel Orientation="Horizontal" Grid.Row="4" Grid.Column="0" HorizontalAlignment="Right"> <TextBlock Text="Load Order" Style="{StaticResource RequiredLabel}" /> <TextBlock Style="{StaticResource RequiredMarker}" /> </StackPanel> <TextBox Grid.Row="4" Grid.Column="1" Text="{tsfBinding:Column Path=LoadOrder}" Width="35"/> <StackPanel Orientation="Horizontal" Grid.Row="4" Grid.Column="2" HorizontalAlignment="Right" Height="32" VerticalAlignment="Top"> <TextBlock Text="Reporting Interval" Style="{StaticResource RequiredLabel}" /> <TextBlock Style="{StaticResource RequiredMarker}" /> </StackPanel> <TextBox Grid.Row="4" Grid.Column="3" Text="{tsfBinding:Column Path=MeasurementReportingInterval}" Width="{StaticResource XSmallItemSize}"/> <TextBlock Text="Runtime ID" Grid.Row="5" Grid.Column="0" /> <StackPanel Orientation="Horizontal" Grid.Row="5" Grid.Column="1"> <TextBlock Text="{tsfBinding:Column Path=DataContext.RuntimeID, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl, AncestorLevel=1}}" /> <Button Content="Initialize" Command="{Binding Path=DataContext.InitializeCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl, AncestorLevel=1}}" IsEnabled="{Binding Path=DataContext.IsNewRecord, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl, AncestorLevel=1}, Converter={StaticResource NotConverter}}"/> </StackPanel> <CheckBox Content="Local" Grid.Row="5" Grid.Column="2" IsChecked="{tsfBinding:Column Path=IsLocal}"/> <CheckBox Content="Enabled" Grid.Row="5" Grid.Column="3" IsChecked="{tsfBinding:Column Path=Enabled}"/> </Grid> <uc:DetailViewFooterUserControl x:Name="UserControlDetailViewFooter" DeleteCommand="{Binding DeleteCommand}" ClearCommand="{Binding ClearCommand}" SaveCommand="{Binding SaveCommand}" SaveEnabled="{tsfBinding:DataOperation Path=(Validation.HasError)}" /> <sdk:DataGrid x:Name="DataGridList" ItemsSource="{Binding CurrentPage}" SelectedItem="{Binding Path=CurrentItem, Mode=TwoWay}" Height="Auto" PreviewKeyDown="DataGrid_PreviewKeyDown" Sorting="DataGrid_Sorting" SelectedIndex="{tsfBinding:Column Path=CurrentSelectedIndex}"> <sdk:DataGrid.Columns> <sdk:DataGridTextColumn Header="Acronym" Width="*" Binding="{tsfBinding:Column Path=Acronym}"/> <sdk:DataGridTextColumn Header="Name" Width="*" Binding="{tsfBinding:Column Path=Name}" /> <sdk:DataGridTextColumn Header="Connection String" Width="2*" Binding="{tsfBinding:Column Path=ConnectionString}" /> <sdk:DataGridCheckBoxColumn Header="Enabled" Width="*" Binding="{tsfBinding:Column Path=Enabled}" /> </sdk:DataGrid.Columns> </sdk:DataGrid> <uc:DataPagerUserControl CurrentPageNumber="{Binding CurrentPageNumber}" PageCount="{Binding PageCount}" FirstCommand="{Binding FirstCommand}" PreviousCommand="{Binding PreviousCommand}" NextCommand="{Binding NextCommand}" LastCommand="{Binding LastCommand}"/> </StackPanel></UserControl>
<UserControl x:Class="GSF.TimeSeries.UI.UserControls.HistorianUserControl"
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"
mc:Ignorable="d" d:DesignHeight="650" d:DesignWidth="850"
xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:uc="clr-namespace:GSF.TimeSeries.UI.UserControls"
xmlns:tsfBinding="clr-namespace:GSF.TimeSeries.UI.Binding;assembly=GSF.TimeSeries.UI"
Background="Transparent">
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/GSF.TimeSeries.UI.WPF;Component/Resources/CommonResource.xaml" />
<ResourceDictionary Source="/GSF.TimeSeries.UI.WPF;Component/Resources/StyleResource.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
<StackPanel Orientation="Vertical">
<StackPanel.Resources>
<CollectionViewSource Source="{Binding Path=NodeLookupList}" x:Key="NodeLookupList"/>
</StackPanel.Resources>
<Grid x:Name="GridDetailView" HorizontalAlignment="Center" VerticalAlignment="Top" Margin="5" DataContext="{Binding Path=CurrentItem, Mode=TwoWay}" DataContextChanged="GridDetailView_DataContextChanged">
<Grid.BindingGroup >
<BindingGroup Name="input"/>
</Grid.BindingGroup>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<StackPanel Orientation="Horizontal" Grid.Row="1" Grid.Column="0" HorizontalAlignment="Right">
<TextBlock Text="Acronym" Style="{StaticResource RequiredLabel}" />
<TextBlock Style="{StaticResource RequiredMarker}" />
</StackPanel>
<TextBox Grid.Row="1" Grid.Column="1" Text="{tsfBinding:Column Path=Acronym}" CharacterCasing="Upper" MaxLength="50"/>
<TextBlock Text="Name" Grid.Row="1" Grid.Column="2" />
<TextBox Grid.Row="1" Grid.Column="3" Text="{tsfBinding:Column Path=Name}" MaxLength="100" />
<TextBlock Text="Type Name" Grid.Row="2" Grid.Column="0" />
<TextBox Grid.Row="2" Grid.Column="1" Text="{tsfBinding:Column Path=TypeName}" />
<TextBlock Text="Assembly Name" Grid.Row="2" Grid.Column="2" />
<TextBox Grid.Row="2" Grid.Column="3" Text="{tsfBinding:Column Path=AssemblyName}" />
<TextBlock Text="Connection String" Grid.Row="3" Grid.Column="0" VerticalAlignment="Top" />
<TextBox Grid.Row="3" Grid.Column="1" Text="{tsfBinding:Column Path=ConnectionString}" Height="50" TextWrapping="Wrap" VerticalScrollBarVisibility="Auto"/>
<TextBlock Text="Description" Grid.Row="3" Grid.Column="2" VerticalAlignment="Top" />
<TextBox Grid.Row="3" Grid.Column="3" Text="{tsfBinding:Column Path=Description}" Height="50" TextWrapping="Wrap" VerticalScrollBarVisibility="Auto"/>
<StackPanel Orientation="Horizontal" Grid.Row="4" Grid.Column="0" HorizontalAlignment="Right">
<TextBlock Text="Load Order" Style="{StaticResource RequiredLabel}" />
<TextBlock Style="{StaticResource RequiredMarker}" />
</StackPanel>
<TextBox Grid.Row="4" Grid.Column="1" Text="{tsfBinding:Column Path=LoadOrder}" Width="35"/>
<StackPanel Orientation="Horizontal" Grid.Row="4" Grid.Column="2" HorizontalAlignment="Right" Height="32" VerticalAlignment="Top">
<TextBlock Text="Reporting Interval" Style="{StaticResource RequiredLabel}" />
<TextBlock Style="{StaticResource RequiredMarker}" />
</StackPanel>
<TextBox Grid.Row="4" Grid.Column="3" Text="{tsfBinding:Column Path=MeasurementReportingInterval}" Width="{StaticResource XSmallItemSize}"/>
<TextBlock Text="Runtime ID" Grid.Row="5" Grid.Column="0" />
<StackPanel Orientation="Horizontal" Grid.Row="5" Grid.Column="1">
<TextBlock Text="{tsfBinding:Column Path=DataContext.RuntimeID, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl, AncestorLevel=1}}" />
<Button Content="Initialize" Command="{Binding Path=DataContext.InitializeCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl, AncestorLevel=1}}"
IsEnabled="{Binding Path=DataContext.IsNewRecord, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl, AncestorLevel=1}, Converter={StaticResource NotConverter}}"/>
</StackPanel>
<CheckBox Content="Local" Grid.Row="5" Grid.Column="2" IsChecked="{tsfBinding:Column Path=IsLocal}"/>
<CheckBox Content="Enabled" Grid.Row="5" Grid.Column="3" IsChecked="{tsfBinding:Column Path=Enabled}"/>
</Grid>
<uc:DetailViewFooterUserControl x:Name="UserControlDetailViewFooter" DeleteCommand="{Binding DeleteCommand}" ClearCommand="{Binding ClearCommand}" SaveCommand="{Binding SaveCommand}"
SaveEnabled="{tsfBinding:DataOperation Path=(Validation.HasError)}" />
<sdk:DataGrid x:Name="DataGridList" ItemsSource="{Binding CurrentPage}" SelectedItem="{Binding Path=CurrentItem, Mode=TwoWay}" Height="Auto" PreviewKeyDown="DataGrid_PreviewKeyDown"
Sorting="DataGrid_Sorting" SelectedIndex="{tsfBinding:Column Path=CurrentSelectedIndex}">
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn Header="Acronym" Width="*" Binding="{tsfBinding:Column Path=Acronym}"/>
<sdk:DataGridTextColumn Header="Name" Width="*" Binding="{tsfBinding:Column Path=Name}" />
<sdk:DataGridTextColumn Header="Connection String" Width="2*" Binding="{tsfBinding:Column Path=ConnectionString}" />
<sdk:DataGridCheckBoxColumn Header="Enabled" Width="*" Binding="{tsfBinding:Column Path=Enabled}" />
</sdk:DataGrid.Columns>
</sdk:DataGrid>
<uc:DataPagerUserControl CurrentPageNumber="{Binding CurrentPageNumber}" PageCount="{Binding PageCount}"
FirstCommand="{Binding FirstCommand}" PreviousCommand="{Binding PreviousCommand}"
NextCommand="{Binding NextCommand}" LastCommand="{Binding LastCommand}"/>
</StackPanel>
</UserControl>