/Synchrophasor/Current Version/Source/Libraries/openPDC.UI.WPF/UserControls/OutputStreamDeviceDigitalUserControl.xaml.cs
C# | 123 lines | 78 code | 15 blank | 30 comment | 15 complexity | d08540969e1486e2f2b2954807a0edbb MD5 | raw file
Possible License(s): MPL-2.0-no-copyleft-exception, EPL-1.0
- using System.Windows;
- //******************************************************************************************************
- // OutputStreamDeviceDigitalUserControl.cs - Gbtc
- //
- // Copyright © 2010, Grid Protection Alliance. All Rights Reserved.
- //
- // Licensed to the Grid Protection Alliance (GPA) under one or more contributor license agreements. See
- // the NOTICE file distributed with this work for additional information regarding copyright ownership.
- // The GPA licenses this file to you under the Eclipse Public License -v 1.0 (the "License"); you may
- // not use this file except in compliance with the License. You may obtain a copy of the License at:
- //
- // http://www.opensource.org/licenses/eclipse-1.0.php
- //
- // Unless agreed to in writing, the subject software distributed under the License is distributed on an
- // "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. Refer to the
- // License for the specific language governing permissions and limitations.
- //
- // Code Modification History:
- // ----------------------------------------------------------------------------------------------------
- // 09/14/2011 - Aniket Salver
- // Generated original version of source code.
- // 09/15/2012 - Aniket Salver
- // Added paging and sorting technique.
- //
- //******************************************************************************************************
- using System.Windows.Controls;
- using System.Windows.Input;
- using openPDC.UI.ViewModels;
- using System.ComponentModel;
- using System;
-
- namespace openPDC.UI.UserControls
- {
- /// <summary>
- /// Interaction logic for OutputStreamDeviceDigitalUserControl.xaml
- /// </summary>
- public partial class OutputStreamDeviceDigitalUserControl : UserControl
- {
- #region [ Members ]
-
- private OutputStreamDeviceDigitals m_dataContext;
- private DataGridColumn m_sortColumn;
- private string m_sortMemberPath;
- private ListSortDirection m_sortDirection;
-
- #endregion
-
- #region [ Constructor ]
-
- /// <summary>
- /// Creates an instance of <see cref="OutputStreamDeviceDigitalUserControl"/>
- /// </summary>
- public OutputStreamDeviceDigitalUserControl(int outputStreamDeviceID)
- {
- InitializeComponent();
- m_dataContext = new OutputStreamDeviceDigitals(outputStreamDeviceID, 5, true);
- this.DataContext = m_dataContext;
- m_dataContext.PropertyChanged += new PropertyChangedEventHandler(ViewModel_PropertyChanged);
- DataGridList.SelectionChanged += new SelectionChangedEventHandler(DataGridList_SelectionChanged);
- }
-
- #endregion
-
- #region [ Methods ]
-
- private void DataGridList_SelectionChanged(object sender, SelectionChangedEventArgs e)
- {
- TextBoxLabel.ScrollToHome();
- }
-
- private void DataGrid_PreviewKeyDown(object sender, KeyEventArgs e)
- {
- if (e.Key == Key.Delete)
- {
- DataGrid dataGrid = sender as DataGrid;
- if (dataGrid.SelectedItems.Count > 0)
- {
- if (MessageBox.Show("Are you sure you want to delete " + dataGrid.SelectedItems.Count + " selected item(s)?", "Delete Selected Items", MessageBoxButton.YesNo) == MessageBoxResult.No)
- e.Handled = true;
- }
- }
- }
-
- private void DataGrid_Sorting(object sender, DataGridSortingEventArgs e)
- {
- if (e.Column.SortMemberPath != m_sortMemberPath)
- m_sortDirection = ListSortDirection.Ascending;
- else if (m_sortDirection == ListSortDirection.Ascending)
- m_sortDirection = ListSortDirection.Descending;
- else
- m_sortDirection = ListSortDirection.Ascending;
-
- m_sortColumn = e.Column;
- m_sortMemberPath = e.Column.SortMemberPath;
- m_dataContext.SortData(m_sortMemberPath, m_sortDirection);
- }
-
- private void ViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e)
- {
- if (e.PropertyName == "ItemsSource")
- Dispatcher.BeginInvoke(new Action(SortDataGrid));
- }
-
- private void SortDataGrid()
- {
- if ((object)m_sortColumn != null)
- {
- m_sortColumn.SortDirection = m_sortDirection;
- DataGridList.Items.SortDescriptions.Clear();
- DataGridList.Items.SortDescriptions.Add(new SortDescription(m_sortMemberPath, m_sortDirection));
- DataGridList.Items.Refresh();
- }
- }
-
- private void GridDetailView_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
- {
- if (m_dataContext.IsNewRecord)
- DataGridList.SelectedIndex = -1;
- }
-
- #endregion
- }
- }