| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218 | 
							- using System;
 
- using System.Collections.Generic;
 
- using System.Linq;
 
- using System.Text;
 
- using System.Windows;
 
- using System.Windows.Controls;
 
- using System.Windows.Data;
 
- using System.Windows.Documents;
 
- using System.Windows.Input;
 
- using System.Windows.Media;
 
- using System.Windows.Media.Imaging;
 
- using System.Windows.Navigation;
 
- using System.Windows.Shapes;
 
- using Aitex.Core.RT.Log;
 
- using System.Xml;
 
- using Aitex.Core.RT.ConfigCenter;
 
- using Aitex.Core.UI.View.Frame;
 
- namespace Aitex.Core.UI.View.Common
 
- {
 
-     /// <summary>
 
-     /// Interaction logic for ParameterView.xaml
 
-     /// </summary>
 
-     public partial class ParameterView : UserControl
 
-     {
 
-         bool _isLoaded;
 
-         ParameterViewModel _vm;
 
-         string _gridEditorOldValue;
 
-         bool _isGridModified;
 
-         public ParameterView()
 
-         {
 
-             InitializeComponent();
 
-             this.Loaded += new RoutedEventHandler(ParameterView_Loaded);
 
-         }
 
-         void ParameterView_Loaded(object sender, RoutedEventArgs e)
 
-         {
 
-             //set permission    
 
-             this.IsEnabled = true;
 
-             this.Name = "Parameter";
 
-             Account.ViewPermission viewPermission;    // chaossong@add 20160414 for permission
 
-             if (ViewManager.LoginAccount != null)
 
-                 viewPermission = ViewManager.LoginAccount.Permission[this.Name];
 
-             else
 
-                 viewPermission = Account.ViewPermission.FullyControl;
 
-             switch (viewPermission)
 
-             { 
 
-                 case Account.ViewPermission.FullyControl:
 
-                     btnResetParam.IsEnabled = true;
 
-                     btnSaveParam.IsEnabled = true;
 
-                     dataGrid1.IsEnabled = true;
 
-                     break;
 
-                 default:
 
-                     btnResetParam.IsEnabled = false;
 
-                     btnSaveParam.IsEnabled = false;
 
-                     dataGrid1.IsEnabled = false;
 
-                     break;
 
-             }
 
-             if (_isLoaded)
 
-                 return;
 
-             _vm = DataContext as ParameterViewModel;
 
-             if (_vm == null)
 
-                 throw new ApplicationException("系统配置页面没有设置DataContext,需要在窗口创建之前,设置初始配置数据");
 
-             InitTree();
 
-             _isLoaded = true;
 
-         }
 
-         void InitTree()
 
-         {
 
-             treeView1.Items.Clear();
 
-             List<KeyValuePair<string, string>> lstSections = _vm.GetSectionList();
 
-             foreach (KeyValuePair<string, string> item in lstSections)
 
-             {
 
-                 var fNode = new TreeViewFolderItem(item.Key);
 
-                 fNode.Tag = item;
 
-                 fNode.Selected += new RoutedEventHandler(sectionNode_Selected);
 
-                 treeView1.Items.Add(fNode);
 
-             }
 
-         }
 
-         void sectionNode_Selected(object sender, RoutedEventArgs e)
 
-         {
 
-             var selectedNode = sender as TreeViewFolderItem;
 
-             if (selectedNode == null)
 
-                 return;
 
-             if (_isGridModified)
 
-             {
 
-                 if (MessageBox.Show("是否需要保存未存盘的参数?", "未保存", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
 
-                 {
 
-                     btnSaveParam_Click(null, null);
 
-                 }
 
-                 else
 
-                 {
 
-                     _isGridModified = false;
 
-                 }
 
-             }
 
-             KeyValuePair<string, string> keyPair = (KeyValuePair<string, string>)selectedNode.Tag;
 
-             labelTile.Content = keyPair.Key;
 
-             dataGrid1.Tag = keyPair.Value;
 
-             dataGrid1.ItemsSource = _vm.GetConfigEntries(keyPair.Value);          
 
-         }
 
-         private void GridEditor_LostFocus(object sender, RoutedEventArgs e)
 
-         {
 
-             TextBox tb = (sender as TextBox);
 
-             if (tb != null)
 
-                 _isGridModified = tb.Text != _gridEditorOldValue;
 
-         }
 
-         private void GridEditor_GotFocus(object sender, RoutedEventArgs e)
 
-         {
 
-             TextBox tb = (sender as TextBox);
 
-             if (tb != null)
 
-                 _gridEditorOldValue = tb.Text;
 
-         }
 
-         private void btnSaveParam_Click(object sender, RoutedEventArgs e)
 
-         {
 
-             _isGridModified = false;
 
-             string reason;
 
-             if (!VerifyInputData(out reason))
 
-             {
 
-                 MessageBox.Show(reason, "Aitex", MessageBoxButton.OK, MessageBoxImage.Warning);
 
-                 return;
 
-             }
 
-             string xpath = dataGrid1.Tag as string;
 
-             if (_vm.SaveConfigSection(xpath.Substring(xpath.IndexOf("'") + 1, xpath.LastIndexOf("'") - xpath.IndexOf("'")-1), dataGrid1.ItemsSource as List<ConfigEntry>))
 
-                 MessageBox.Show("设定值保存成功!", "Aitex", MessageBoxButton.OK, MessageBoxImage.Information);
 
-             else
 
-                 MessageBox.Show("设定值保存失败!", "Aitex", MessageBoxButton.OK, MessageBoxImage.Error);
 
-             btnResetParam_Click(null, null);
 
-         }
 
-         private void btnResetParam_Click(object sender, RoutedEventArgs e)
 
-         {
 
-             dataGrid1.ItemsSource = _vm.GetConfigEntries(dataGrid1.Tag as string);
 
-         }
 
-         private bool VerifyInputData(out string reason)
 
-         {
 
-             bool ret = true;
 
-             dataGrid1.CancelEdit();
 
-             var entryList = this.dataGrid1.ItemsSource.Cast<object>();
 
-             reason = string.Empty;
 
-             foreach (ConfigEntry entry in entryList)
 
-             {
 
-                 try
 
-                 {
 
-                     var inputText = entry.Value;
 
-                     var typeText = entry.Type;
 
-                     var minText = entry.RangeLowLimit;
 
-                     var maxText = entry.RangeUpLimit;
 
-                     if (string.IsNullOrEmpty(inputText))
 
-                         continue;
 
-                     if (String.Compare(typeText, "Int32", true) == 0)
 
-                     {
 
-                         int res = 0;
 
-                         if (!int.TryParse(inputText, out res))
 
-                             throw new Exception();
 
-                         int min = Convert.ToInt32(minText);
 
-                         int max = Convert.ToInt32(maxText);
 
-                         if (res < min || res > max)
 
-                         {
 
-                             ret = false;
 
-                             reason += string.Format("{0} 输入值错误!\n", entry.Description);
 
-                             var textBlock = dataGrid1.Columns[7].GetCellContent(entry) as System.Windows.Controls.TextBlock;
 
-                             if (textBlock != null)
 
-                                 textBlock.Background = Brushes.Red;
 
-                         }
 
-                     }
 
-                     else if (String.Compare(typeText, "Double", true) == 0)
 
-                     {
 
-                         double res = 0;
 
-                         if (!double.TryParse(inputText, out res))
 
-                             throw new Exception();
 
-                         double min = Convert.ToDouble(minText);
 
-                         double max = Convert.ToDouble(maxText);
 
-                         if (res < min || res > max)
 
-                         {
 
-                             ret = false;
 
-                             reason += string.Format("{0} 输入值错误!\n", entry.Description);
 
-                             var textBlock = dataGrid1.Columns[7].GetCellContent(entry) as System.Windows.Controls.TextBlock;
 
-                             if (textBlock != null)
 
-                                 textBlock.Background = Brushes.Red;
 
-                         }
 
-                     }
 
-                 }
 
-                 catch (Exception)
 
-                 {
 
-                     reason += string.Format("{0} 输入值错误!\n", entry.Description);
 
-                     ret = false;
 
-                 }
 
-             }
 
-             return ret;
 
-         }
 
-     }
 
- }
 
 
  |