217 lines · 16.9 KB · Text
RawDownload
<Window x:Class="HistorianView.MainWindow"        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"        Title="Historian Data Viewer" Width="800" Height="500" Closing="Window_Closing" KeyDown="Window_KeyDown" MinWidth="400" MinHeight="200" Icon="/HistorianView;component/jar_view.ico" Loaded="MainWindow_Loaded">    <Window.Resources>        <ControlTemplate x:Key="DataGridTemplate" TargetType="DataGrid">            <Border Background="{TemplateBinding Control.Background}" BorderBrush="{TemplateBinding Control.BorderBrush}" BorderThickness="{TemplateBinding Control.BorderThickness}" Padding="{TemplateBinding Control.Padding}" SnapsToDevicePixels="True">                <ScrollViewer Focusable="False" Name="DG_ScrollViewer">                    <ScrollViewer.Template>                        <ControlTemplate TargetType="ScrollViewer">                            <Grid>                                <Grid.ColumnDefinitions>                                    <ColumnDefinition Width="Auto" />                                    <ColumnDefinition Width="*" />                                    <ColumnDefinition Width="Auto" />                                </Grid.ColumnDefinitions>                                <Grid.RowDefinitions>                                    <RowDefinition Height="Auto" />                                    <RowDefinition Height="*" />                                    <RowDefinition Height="Auto" />                                </Grid.RowDefinitions>                                <Button Command="ApplicationCommands.SelectAll" Focusable="False" Style="{DynamicResource {ComponentResourceKey ResourceId=DataGridSelectAllButtonStyle, TypeInTargetAssembly=DataGrid}}" Width="{Binding Path=CellsPanelHorizontalOffset, RelativeSource={RelativeSource FindAncestor, AncestorLevel=1, AncestorType=DataGrid}}">                                    <Button.Visibility>                                        <Binding Path="HeadersVisibility" RelativeSource="{RelativeSource FindAncestor, AncestorLevel=1, AncestorType=DataGrid}">                                            <Binding.ConverterParameter>                                                <DataGridHeadersVisibility>All</DataGridHeadersVisibility>                                            </Binding.ConverterParameter>                                        </Binding>                                    </Button.Visibility>                                </Button>                                <DataGridColumnHeadersPresenter Grid.Column="1" Name="PART_ColumnHeadersPresenter">                                    <DataGridColumnHeadersPresenter.ContextMenu>                                        <ContextMenu Initialized="ColumnContextMenu_Initialized" />                                    </DataGridColumnHeadersPresenter.ContextMenu>                                    <DataGridColumnHeadersPresenter.Visibility>                                        <Binding Path="HeadersVisibility" RelativeSource="{RelativeSource FindAncestor, AncestorLevel=1, AncestorType=DataGrid}">                                            <Binding.ConverterParameter>                                                <DataGridHeadersVisibility>Column</DataGridHeadersVisibility>                                            </Binding.ConverterParameter>                                        </Binding>                                    </DataGridColumnHeadersPresenter.Visibility>                                </DataGridColumnHeadersPresenter>                                <ScrollContentPresenter CanContentScroll="{TemplateBinding ScrollViewer.CanContentScroll}" CanHorizontallyScroll="False" CanVerticallyScroll="False" Content="{TemplateBinding ContentControl.Content}" ContentStringFormat="{TemplateBinding ContentControl.ContentStringFormat}" ContentTemplate="{TemplateBinding ContentControl.ContentTemplate}" Grid.ColumnSpan="2" Grid.Row="1" Name="PART_ScrollContentPresenter" />                                <ScrollBar Grid.Column="2" Grid.Row="1" Maximum="{TemplateBinding ScrollViewer.ScrollableHeight}" Name="PART_VerticalScrollBar" Orientation="Vertical" Value="{Binding Path=VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ScrollViewer.ViewportHeight}" Visibility="{TemplateBinding ScrollViewer.ComputedVerticalScrollBarVisibility}" />                                <Grid Grid.Column="1" Grid.Row="2">                                    <Grid.ColumnDefinitions>                                        <ColumnDefinition Width="{Binding Path=NonFrozenColumnsViewportHorizontalOffset, RelativeSource={RelativeSource FindAncestor, AncestorLevel=1, AncestorType=DataGrid}}" />                                        <ColumnDefinition Width="*" />                                    </Grid.ColumnDefinitions>                                    <ScrollBar Grid.Column="1" Maximum="{TemplateBinding ScrollViewer.ScrollableWidth}" Name="PART_HorizontalScrollBar" Orientation="Horizontal" Value="{Binding Path=HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ScrollViewer.ViewportWidth}" Visibility="{TemplateBinding ScrollViewer.ComputedHorizontalScrollBarVisibility}" />                                </Grid>                            </Grid>                        </ControlTemplate>                    </ScrollViewer.Template>                    <ItemsPresenter SnapsToDevicePixels="{TemplateBinding UIElement.SnapsToDevicePixels}" />                </ScrollViewer>            </Border>        </ControlTemplate>    </Window.Resources>    <DockPanel>        <Menu Height="23" DockPanel.Dock="Top">            <Menu.Resources>                <Style TargetType="{x:Type Image}">                    <Style.Triggers>                        <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType={x:Type MenuItem}, AncestorLevel=1}, Path=IsEnabled}" Value="False">                            <Setter Property="Opacity" Value="0.50" />                        </DataTrigger>                    </Style.Triggers>                </Style>            </Menu.Resources>            <MenuItem Header="_File">                <MenuItem Header="Open a_rchives..." InputGestureText="Ctrl+R" Click="OpenArchivesControl_Click">                    <MenuItem.Icon>                        <Image Source="/HistorianView;component/Icons/cabinet_open.png" MaxWidth="20" MaxHeight="20" />                    </MenuItem.Icon>                </MenuItem>                <MenuItem Header="_Open..." Click="OpenControl_Click" InputGestureText="Ctrl+O">                    <MenuItem.Icon>                        <Image Source="/HistorianView;component/Icons/folder.png" MaxWidth="20" MaxHeight="20" />                    </MenuItem.Icon>                </MenuItem>                <MenuItem Header="_Save" InputGestureText="Ctrl+S" IsEnabled="False" Name="m_saveMenuItem" Click="SaveControl_Click">                    <MenuItem.Icon>                        <Image Source="/HistorianView;component/Icons/floppy_disk2.png" MaxWidth="20" MaxHeight="20" />                    </MenuItem.Icon>                </MenuItem>                <MenuItem Header="Save _as..." InputGestureText="Ctrl+Shift+S" IsEnabled="False" Name="m_saveAsMenuItem" Click="SaveAsMenuItem_Click" />                <Separator />                <MenuItem Header="_Close" InputGestureText="Alt+F4" Click="CloseMenuItem_Click" />            </MenuItem>            <MenuItem Header="_Options">                <MenuItem Header="_Trend" Name="m_trendMenuItem" IsEnabled="False" Click="TrendControl_Click">                    <MenuItem.Icon>                        <Image Source="/HistorianView;component/Icons/chart_line.png" MaxWidth="20" MaxHeight="20" />                    </MenuItem.Icon>                </MenuItem>                <MenuItem Header="_Export..." Name="m_exportMenuItem" IsEnabled="False" Click="ExportControl_Click">                    <MenuItem.Icon>                        <Image Source="/HistorianView;component/Icons/table_edit.png" MaxWidth="20" MaxHeight="20" />                    </MenuItem.Icon>                </MenuItem>                <Separator />                <MenuItem Header="Show _Disabled Points" Name="ShowDisabledMenuItem" IsEnabled="False" Click="ShowDisabledControl_Click">                    <MenuItem.Icon>                        <Image Name="ShowDisabledCheckMark" Source="/HistorianView;component/Icons/navigate_check.png" MaxWidth="20" MaxHeight="20" Visibility="Collapsed" />                    </MenuItem.Icon>                </MenuItem>            </MenuItem>        </Menu>        <ToolBarTray DockPanel.Dock="Top">            <ToolBar BorderThickness="1" BorderBrush="DarkGray">                <ToolBar.Resources>                    <Style TargetType="{x:Type Image}">                        <Style.Triggers>                            <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType={x:Type Button}, AncestorLevel=1}, Path=IsEnabled}" Value="False">                                <Setter Property="Opacity" Value="0.50" />                            </DataTrigger>                        </Style.Triggers>                    </Style>                </ToolBar.Resources>                <Button Width="23" Height="23" ToolTip="Open Archive... (Ctrl+R)" Click="OpenArchivesControl_Click">                    <Image Source="/HistorianView;component/Icons/cabinet_open.png" />                </Button>                <Button Width="23" Height="23" Click="OpenControl_Click" ToolTip="Open (Ctrl+O)">                    <Image Source="/HistorianView;component/Icons/folder.png" />                </Button>                <Button Width="23" Height="23" ToolTip="Save (Ctrl+S)" IsEnabled="False" Name="m_saveButton" Click="SaveControl_Click" ToolTipService.ShowOnDisabled="True">                    <Image Source="/HistorianView;component/Icons/floppy_disk2.png" />                </Button>                <Separator />                <Button Width="23" Height="23" Click="TrendControl_Click" ToolTip="Trend" ToolTipService.ShowOnDisabled="True" Name="m_trendButton" IsEnabled="False">                    <Image Source="/HistorianView;component/Icons/chart_line.png" />                </Button>                <Button Width="23" Height="23" ToolTip="Export" ToolTipService.ShowOnDisabled="True" Name="m_exportButton" IsEnabled="False" Click="ExportControl_Click">                    <Image Source="/HistorianView;component/Icons/table_edit.png" />                </Button>                <Separator />                <ToolBarPanel Orientation="Horizontal">                    <Label Content="Search:" />                    <TextBox Width="100" TextChanged="SearchBox_TextChanged" Name="m_searchBox" />                    <Button Content="Select All" Height="23" Width="75" Click="SelectAllButton_Clicked" />                    <Button Content="Deselect All" Height="23" Width="75" Click="DeselectAllButton_Click" />                </ToolBarPanel>                <ToolBar.Background>                    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">                        <GradientStop Color="White" Offset="0" />                        <GradientStop Color="GhostWhite" Offset="0.52" />                    </LinearGradientBrush>                </ToolBar.Background>            </ToolBar>        </ToolBarTray>        <Grid DockPanel.Dock="Bottom">            <Grid.ColumnDefinitions>                <ColumnDefinition Width="350" />                <ColumnDefinition Width="428*" />            </Grid.ColumnDefinitions>            <Grid.RowDefinitions>                <RowDefinition />                <RowDefinition Height="Auto" />            </Grid.RowDefinitions>            <StackPanel HorizontalAlignment="Left" Margin="10,0,10,10" VerticalAlignment="Top" Grid.Row="1">                <StackPanel Name="m_currentTimeStackPanel" Orientation="Horizontal" Visibility="Collapsed">                    <Label Content="Last" Height="23" Margin="5" VerticalAlignment="Top" Padding="0" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" />                    <TextBox Height="23" Width="33" Text="5" HorizontalContentAlignment="Right" Margin="5" VerticalAlignment="Top" Name="m_currentTimeTextBox" PreviewTextInput="NumericTextBox_PreviewTextInput">                        <TextBox.CommandBindings>                            <CommandBinding Command="ApplicationCommands.Paste" CanExecute="NumericTextBox_PasteCommandBinding_CanExecute" Executed="NumericTextBox_PasteCommandBinding_Executed" />                        </TextBox.CommandBindings>                    </TextBox>                    <ComboBox Height="23" Width="120" SelectedIndex="1" Margin="5" VerticalAlignment="Top" Name="m_currentTimeComboBox">                        <ComboBoxItem Content="seconds" />                        <ComboBoxItem Content="minutes" />                        <ComboBoxItem Content="hours" />                        <ComboBoxItem Content="days" />                    </ComboBox>                </StackPanel>                <StackPanel Orientation="Horizontal"></StackPanel>                <StackPanel Orientation="Horizontal"></StackPanel>                <Grid Height="70" Name="m_historicTimeGrid" Width="Auto">                    <Grid.RowDefinitions>                        <RowDefinition />                        <RowDefinition />                    </Grid.RowDefinitions>                    <Grid.ColumnDefinitions>                        <ColumnDefinition Width="100*" />                        <ColumnDefinition Width="135*" />                        <ColumnDefinition Width="125*" />                    </Grid.ColumnDefinitions>                    <Label Content="UTC Start Time:" Height="25" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="5" Padding="0" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" />                    <DatePicker Height="25" Width="115" Grid.Column="1" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="5" Name="m_startTimeDatePicker" SelectedDateChanged="StartTimeDatePicker_SelectedDateChanged" />                    <Label Content="UTC End Time:" Height="25" Grid.Row="1" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="5" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Padding="0" />                    <TextBox Height="25" Width="85" Text="12:00:00.000" Grid.Column="2" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="5" Name="m_startTimeTextBox" TextChanged="StartTimeTextBox_TextChanged" />                    <DatePicker Height="25" HorizontalAlignment="Left" Margin="5" VerticalAlignment="Top" Width="115" Grid.Column="1" Grid.Row="1" Name="m_endTimeDatePicker" SelectedDateChanged="EndTimeDatePicker_SelectedDateChanged" />                    <TextBox Height="25" HorizontalAlignment="Left" Margin="5" VerticalAlignment="Top" Width="85" Grid.Column="2" Grid.Row="1" Text="11:59:59.000" Name="m_endTimeTextBox" TextChanged="EndTimeTextBox_TextChanged" />                </Grid>                <CheckBox Content="Choose an interval relative to current time" Height="16" Margin="5,0" Name="m_currentTimeCheckBox" Checked="CurrentTimeCheckBox_Checked" Unchecked="CurrentTimeCheckBox_Unchecked" />            </StackPanel>            <DataGrid Name="m_dataGrid" AutoGeneratingColumn="DataGrid_AutoGeneratingColumn" Template="{StaticResource DataGridTemplate}" AutoGeneratedColumns="DataGrid_AutoGeneratedColumns" SelectionUnit="Cell" SelectionMode="Single" Grid.ColumnSpan="2">                <DataGrid.Resources>                    <Style TargetType="{x:Type DataGridCell}">                        <EventSetter Event="PreviewMouseLeftButtonDown" Handler="DataGridCell_PreviewMouseLeftButtonDown" />                        <EventSetter Event="CheckBox.Checked" Handler="DataGridCell_CheckBoxChecked" />                        <EventSetter Event="CheckBox.Unchecked" Handler="DataGridCell_CheckBoxUnchecked" />                    </Style>                </DataGrid.Resources>            </DataGrid>            <StackPanel Grid.Column="1" Grid.Row="1" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="0,0,10,10" Orientation="Horizontal">                <Label Content="Chart resolution:" Height="28" />                <TextBox Height="23" Width="50" Text="100" HorizontalContentAlignment="Right" Name="m_chartResolutionTextBox" KeyDown="ChartResolutionTextBox_KeyDown" PreviewTextInput="NumericTextBox_PreviewTextInput">                    <TextBox.CommandBindings>                        <CommandBinding Command="ApplicationCommands.Paste" CanExecute="NumericTextBox_PasteCommandBinding_CanExecute" Executed="NumericTextBox_PasteCommandBinding_Executed" />                    </TextBox.CommandBindings>                </TextBox>                <Label Content="samples" Height="28" />            </StackPanel>        </Grid>    </DockPanel></Window>

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