259 lines · 19.4 KB · Text
RawDownload
<UserControl x:Class="GSF.TimeSeries.UI.UserControls.AdapterUserControl"             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:p="clr-namespace:GSF.TimeSeries.UI.Properties"             xmlns:uc="clr-namespace:GSF.TimeSeries.UI.UserControls"             xmlns:tsfBinding="clr-namespace:GSF.TimeSeries.UI.Binding;assembly=GSF.TimeSeries.UI"             xmlns:tsf="clr-namespace: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" IsEnabled="{Binding ElementName=CustomConfigurationPopup, Path=IsOpen, Converter={StaticResource NotConverter}}">         <StackPanel.Resources>            <CollectionViewSource Source="{Binding Path=AdapterTypeList}" x:Key="AdapterTypeList" />            <CollectionViewSource Source="{Binding Path=ParameterList}" x:Key="ParameterList" />        </StackPanel.Resources>         <tsf:TsfPopup x:Name="CustomConfigurationPopup" Placement="Center" Topmost="False" Visibility="Collapsed" Button.Click="CustomConfigurationPopup_ButtonClick">            <Border CornerRadius="5" BorderThickness="2" Background="White" BorderBrush="Blue">                <StackPanel Name="CustomConfigurationPanel" Margin="5" />            </Border>        </tsf:TsfPopup>         <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="0" Grid.Column="0" HorizontalAlignment="Right">                <TextBlock Text="{x:Static p:Resources.AdapterUserControl_NameLabel}" Style="{StaticResource RequiredLabel}" />                <TextBlock Style="{StaticResource RequiredMarker}" />            </StackPanel>            <TextBox Grid.Row="0" Grid.Column="1" CharacterCasing="Upper" Text="{tsfBinding:Column Path=AdapterName}" MaxLength="50"/>             <StackPanel Orientation="Horizontal" Grid.Row="0" Grid.Column="2" HorizontalAlignment="Right">                <TextBlock Text="{x:Static p:Resources.AdapterUserControl_LoadOrderLabel}" Style="{StaticResource RequiredLabel}" />                <TextBlock Style="{StaticResource RequiredMarker}" />            </StackPanel>            <TextBox Grid.Row="0" Grid.Column="3" Text="{tsfBinding:Column Path=LoadOrder}" Width="35" />            <GroupBox Grid.Row="2" Grid.ColumnSpan="4" Header="{Binding TypeInfo}" DataContext="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl, AncestorLevel=1}, Path=DataContext}">                <Grid>                    <Grid.ColumnDefinitions>                        <ColumnDefinition Width="Auto" />                        <ColumnDefinition Width="*" />                    </Grid.ColumnDefinitions>                     <Grid.RowDefinitions>                        <RowDefinition Height="Auto" />                        <RowDefinition Height="Auto" />                    </Grid.RowDefinitions>                     <TextBlock Grid.Row="0" Grid.Column="0" Text="{x:Static p:Resources.AdapterUserControl_SearchDirectoryLabel}" />                    <StackPanel Grid.Row="0" Grid.Column="1" HorizontalAlignment="Stretch" Orientation="Horizontal">                        <TextBox Name="SearchDirectoryTextBox" Text="{tsfBinding:Column Path=SearchDirectory}" Width="525" />                        <Button Click="Browse_Click" Width="Auto" ToolTip="{x:Static p:Resources.AdapterUserControl_BrowseButtonTooltip}">                            <Button.Template>                                <ControlTemplate>                                    <Image Source="/GSF.TimeSeries.UI;component/images/Folder.png" Height="24" Width="24" />                                </ControlTemplate>                            </Button.Template>                        </Button>                    </StackPanel>                                        <TextBlock Grid.Row="1" Grid.Column="0" Text="{x:Static p:Resources.AdapterUserControl_TypeLabel}" />                    <ComboBox Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="2" ItemsSource="{Binding Source={StaticResource AdapterTypeList}}"                              HorizontalContentAlignment="Left" Width="560" SelectedIndex="{Binding Mode=TwoWay, Path=AdapterTypeSelectedIndex}">                        <ComboBox.ItemTemplate>                            <DataTemplate>                                <Border Padding="5">                                    <StackPanel Orientation="Horizontal">                                        <TextBlock FontWeight="Bold" Text="{Binding Path=Item2.Header}" Visibility="{Binding Path=Item2.HeaderVisibility}" Margin="0" />                                        <TextBlock Text=": " Visibility="{Binding Path=Item2.HeaderVisibility}" Margin="0" />                                        <TextBlock Text="{Binding Path=Item2.Description}" Margin="0" />                                    </StackPanel>                                </Border>                            </DataTemplate>                        </ComboBox.ItemTemplate>                    </ComboBox>                </Grid>            </GroupBox>            <GroupBox Grid.Row="3" Grid.ColumnSpan="4" Header="{x:Static p:Resources.AdapterUserControl_ConnectionStringGroupBox}">                <Grid>                    <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" />                    </Grid.RowDefinitions>                                        <Button Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="4" Width="Auto" FontSize="16" FontWeight="Bold" Foreground="Blue"                            DataContext="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl, AncestorLevel=1}, Path=DataContext}"                            Visibility="{Binding CustomConfigurationButtonVisibility}" Content="{x:Static p:Resources.AdapterUserControl_CustomConfigurationWizardButton}" Click="ButtonOpenCustomConfiguration_Click">                        <Button.Template>                            <ControlTemplate TargetType="Button">                                <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">                                    <Image Source="/GSF.TimeSeries.UI;component/Images/Wand.png" />                                    <TextBlock Text="{TemplateBinding Content}" TextDecorations="Underline" Cursor="Hand"                                               VerticalAlignment="Center" Width="Auto" Height="Auto" Foreground="{TemplateBinding Foreground}"/>                                </StackPanel>                            </ControlTemplate>                        </Button.Template>                    </Button>                     <TextBlock Text="{x:Static p:Resources.AdapterUserControl_ParametersLabel}" VerticalAlignment="Top" Grid.Row="1" Grid.Column="0" />                     <ListBox Grid.Row="1" Grid.Column="1" Width="{StaticResource XLargeItemSize}" Height="{StaticResource XSmallItemSize}" HorizontalContentAlignment="Stretch"                             Name="ParameterListBox" ItemsSource="{Binding Source={StaticResource ParameterList}}" SelectedItem="{Binding Path=SelectedParameter}"                             DataContext="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}, Path=DataContext}" ScrollViewer.VerticalScrollBarVisibility="Auto"                             ScrollViewer.HorizontalScrollBarVisibility="Auto">                        <ListBox.ItemTemplate>                            <DataTemplate>                                <TextBlock Margin="0" Padding="0" FontWeight="{Binding Path=Boldness}" Foreground="{Binding Path=Color}" Text="{Binding Path=Name}" ToolTipService.InitialShowDelay="0" Width="Auto" TextAlignment="Left" HorizontalAlignment="Left">                                    <TextBlock.ToolTip>                                        <ToolTip>                                            <TextBlock Text="{Binding Path=Description}" />                                        </ToolTip>                                    </TextBlock.ToolTip>                                </TextBlock>                            </DataTemplate>                        </ListBox.ItemTemplate>                    </ListBox>                     <StackPanel Grid.Row="1" Grid.Column="2" Margin="10,5,0,0">                        <TextBlock Name="ParameterValueTextBlock" Margin="0" Text="{x:Static p:Resources.AdapterUserControl_ValueLabel}" HorizontalAlignment="Center" VerticalAlignment="Top" />                        <Button Content="{x:Static p:Resources.AdapterUserControl_DefaultButton}" Margin="0" Padding="2" Width="Auto" HorizontalAlignment="Center" ToolTip="Click to restore the default value." Click="Default_Click" />                    </StackPanel>                    <StackPanel Grid.Row="1" Grid.Column="3" DataContext="{Binding ElementName=ParameterListBox, Path=SelectedItem}">                        <TextBox Name="ParameterValueTextBox" Width="{StaticResource XLargeItemSize}" Height="{StaticResource XSmallItemSize}" Text="{tsfBinding:Column Path=Value}" TextWrapping="Wrap"                                 Visibility="{Binding Path=IsOther, Converter={StaticResource ObjectToVisibilityConverter}}" VerticalScrollBarVisibility="Auto"/>                         <StackPanel>                            <StackPanel.Style>                                <Style TargetType="{x:Type StackPanel}">                                    <Style.Triggers>                                        <DataTrigger Binding="{Binding ElementName=ParameterListBox, Path=SelectedItem}" Value="{x:Null}">                                            <Setter Property="Visibility" Value="Collapsed" />                                        </DataTrigger>                                    </Style.Triggers>                                </Style>                            </StackPanel.Style>                             <StackPanel Margin="5" Width="{Binding ElementName=ParameterValueTextBox, Path=Width}" Height="{Binding ElementName=ParameterValueTextBox, Path=Height}"                                        Visibility="{Binding Path=IsBoolean, Converter={StaticResource ObjectToVisibilityConverter}}">                                <RadioButton Content="True" GroupName="BooleanParameter" IsChecked="{Binding Path=Value}" />                                <RadioButton Content="False" GroupName="BooleanParameter" IsChecked="{Binding Mode=OneWay, Path=IsFalseChecked}" />                            </StackPanel>                             <StackPanel Margin="5" Width="{Binding ElementName=ParameterValueTextBox, Path=Width}"                                        Visibility="{Binding Path=IsEnum, Converter={StaticResource ObjectToVisibilityConverter}}">                                <Grid Height="{Binding ElementName=ParameterListBox, Path=Height}">                                    <Grid.RowDefinitions>                                        <RowDefinition Height="Auto"/>                                        <RowDefinition Height="*" />                                    </Grid.RowDefinitions>                                     <ComboBox Grid.Row="0" IsSynchronizedWithCurrentItem="True" HorizontalAlignment="Stretch" Width="Auto" ItemsSource="{Binding Path=EnumValues}"                                              SelectedItem="{Binding Path=Value, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Margin="0 0 0 2" />                                     <TextBox Grid.Row="1" Name="EnumDescriptionTextBox" VerticalAlignment="Stretch" Height="Auto" Width="Auto" HorizontalAlignment="Stretch"                                             Text="{tsfBinding:Column Path=EnumDescription}" TextWrapping="Wrap" VerticalScrollBarVisibility="Auto" IsReadOnly="True" Margin="0"                                             BorderThickness="0" Padding="0" Background="Transparent" />                                </Grid>                            </StackPanel>                             <StackPanel Margin="5" Width="{Binding ElementName=ParameterValueTextBox, Path=Width}" Height="{Binding ElementName=ParameterValueTextBox, Path=Height}"                                        Visibility="{Binding Path=IsCustom, Converter={StaticResource ObjectToVisibilityConverter}}">                                <Button Width="Auto" Height="Auto" HorizontalAlignment="Center"                                        FontSize="14" Foreground="Blue" Click="ButtonOpenParameterConfiguration_Click">                                    <Button.Template>                                        <ControlTemplate TargetType="Button">                                            <StackPanel Orientation="Horizontal">                                                <Image Source="/GSF.TimeSeries.UI;component/Images/Configure.png" />                                                <TextBlock Text="{TemplateBinding Content}" TextDecorations="Underline" Cursor="Hand"                                                           Width="Auto" Height="Auto" Foreground="{TemplateBinding Foreground}"                                                           VerticalAlignment="Center" TextAlignment="Center" TextWrapping="Wrap">                                                    Click here to edit<LineBreak/>                                                    parameter value.                                                </TextBlock>                                            </StackPanel>                                        </ControlTemplate>                                    </Button.Template>                                </Button>                            </StackPanel>                        </StackPanel>                    </StackPanel>                                        <TextBlock Grid.Row="2" Grid.Column="0" Text="{x:Static p:Resources.AdapterUserControl_ConnectionStringLabel}" VerticalAlignment="Top" />                    <TextBox Grid.Row="2" Grid.Column="1"  Grid.ColumnSpan="3" Width="560" Height="{StaticResource XSmallItemSize}" HorizontalAlignment="Stretch"                             Text="{tsfBinding:Column Path=ConnectionString}" TextWrapping="Wrap" AcceptsReturn="True" ScrollViewer.VerticalScrollBarVisibility="Visible" />                </Grid>            </GroupBox>            <TextBlock Text="{x:Static p:Resources.AdapterUserControl_RuntimeIDLabel}" Grid.Row="4" Grid.Column="0" />            <StackPanel Orientation="Horizontal" Grid.Row="4" Grid.Column="1">                <TextBlock Text="{tsfBinding:Column Path=DataContext.RuntimeID, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl, AncestorLevel=1}}" />                <Button Content="{x:Static p:Resources.AdapterUserControl_InitializeButton}" 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="{x:Static p:Resources.AdapterUserControl_EnabledCheckBox}" Grid.Row="4" 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="{x:Static p:Resources.AdapterUserControl_NameDataGridColumn}" Width="*" Binding="{tsfBinding:Column Path=AdapterName}"/>                <sdk:DataGridTextColumn Header="{x:Static p:Resources.AdapterUserControl_AssemblyNameDataGridColumn}" Width="*" Binding="{tsfBinding:Column Path=AssemblyName}" />                <sdk:DataGridTextColumn Header="{x:Static p:Resources.AdapterUserControl_TypeNameDataGridColumn}" Width="2*" Binding="{tsfBinding:Column Path=TypeName}" />                <sdk:DataGridTemplateColumn Header="{x:Static p:Resources.AdapterUserControl_EnabledDataGridColumn}" Width="*" SortMemberPath="Enabled" >                    <sdk:DataGridTemplateColumn.CellTemplate>                        <DataTemplate>                            <CheckBox IsChecked="{tsfBinding:Column Path=Enabled}" Margin="0" HorizontalAlignment="Center" Click="DataGridEnabledCheckBox_Click" />                        </DataTemplate>                    </sdk:DataGridTemplateColumn.CellTemplate>                </sdk:DataGridTemplateColumn>            </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>

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t