예제 #1
0
        private void KernelOutputFilterDataGrid_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            DataGrid dg = (DataGrid)sender;

            if (dg.SelectedItem != null)
            {
                KernelOutputFilterViewModel kernelOutputFilterVm = (KernelOutputFilterViewModel)dg.SelectedItem;
                kernelOutputFilterVm.Edit.Execute(null);
            }
        }
예제 #2
0
            private KernelOutputFilterViewModels()
            {
#if DEBUG
                Write.Stopwatch.Restart();
#endif
                VirtualRoot.BuildEventPath <ServerContextReInitedEvent>("ServerContext刷新后刷新VM内存", LogEnum.DevConsole,
                                                                        action: message => {
                    _dicById.Clear();
                    _dicByKernelOutputId.Clear();
                    Init();
                });
                AppContextEventPath <KernelOutputFilterAddedEvent>("添加了内核输出过滤器后刷新VM内存", LogEnum.DevConsole,
                                                                   action: message => {
                    if (!_dicById.ContainsKey(message.Source.GetId()))
                    {
                        KernelOutputFilterViewModel vm = new KernelOutputFilterViewModel(message.Source);
                        _dicById.Add(vm.Id, vm);
                        if (AppContext.Instance.KernelOutputVms.TryGetKernelOutputVm(vm.KernelOutputId, out KernelOutputViewModel kernelOutputVm))
                        {
                            if (!_dicByKernelOutputId.ContainsKey(vm.KernelOutputId))
                            {
                                _dicByKernelOutputId.Add(vm.KernelOutputId, new List <KernelOutputFilterViewModel>());
                            }
                            _dicByKernelOutputId[vm.KernelOutputId].Add(vm);
                            kernelOutputVm.OnPropertyChanged(nameof(kernelOutputVm.KernelOutputFilters));
                        }
                    }
                });
                AppContextEventPath <KernelOutputFilterUpdatedEvent>("更新了内核输出过滤器后刷新VM内存", LogEnum.DevConsole,
                                                                     action: message => {
                    if (_dicById.TryGetValue(message.Source.GetId(), out KernelOutputFilterViewModel vm))
                    {
                        vm.Update(message.Source);
                    }
                });
                AppContextEventPath <KernelOutputFilterRemovedEvent>("删除了内核输出过滤器后刷新VM内存", LogEnum.DevConsole,
                                                                     action: message => {
                    if (_dicById.TryGetValue(message.Source.GetId(), out KernelOutputFilterViewModel vm))
                    {
                        _dicById.Remove(vm.Id);
                        _dicByKernelOutputId[vm.KernelOutputId].Remove(vm);
                        KernelOutputViewModel kernelOutputVm;
                        if (AppContext.Instance.KernelOutputVms.TryGetKernelOutputVm(vm.KernelOutputId, out kernelOutputVm))
                        {
                            kernelOutputVm.OnPropertyChanged(nameof(kernelOutputVm.KernelOutputFilters));
                        }
                    }
                });
                Init();
#if DEBUG
                Write.DevTimeSpan($"耗时{Write.Stopwatch.ElapsedMilliseconds}毫秒 {this.GetType().Name}.ctor");
#endif
            }
예제 #3
0
 public static void ShowEditWindow(KernelOutputFilterViewModel source)
 {
     ContainerWindow.ShowWindow(new ContainerWindowViewModel {
         IsDialogWindow = true,
         CloseVisible   = System.Windows.Visibility.Visible,
         IconName       = "Icon_Coin"
     }, ucFactory: (window) =>
     {
         KernelOutputFilterViewModel vm = new KernelOutputFilterViewModel(source);
         vm.CloseWindow = () => window.Close();
         return(new KernelOutputFilterEdit(vm));
     }, fixedSize: true);
 }
예제 #4
0
 public static void ShowWindow(FormType formType, KernelOutputFilterViewModel source)
 {
     ContainerWindow.ShowWindow(new ContainerWindowViewModel {
         Title          = "内核输出过滤器",
         FormType       = formType,
         Width          = 520,
         IsDialogWindow = true,
         CloseVisible   = System.Windows.Visibility.Visible,
         IconName       = "Icon_Coin"
     }, ucFactory: (window) =>
     {
         KernelOutputFilterViewModel vm = new KernelOutputFilterViewModel(source)
         {
             CloseWindow = () => window.Close()
         };
         return(new KernelOutputFilterEdit(vm));
     }, fixedSize: true);
 }
예제 #5
0
        public static void ShowEditWindow(KernelOutputFilterViewModel source)
        {
            string title;

            if (!DevMode.IsDevMode)
            {
                title = "过滤器详情";
            }
            else
            {
                if (NTMinerRoot.Current.KernelOutputFilterSet.Contains(source.Id))
                {
                    title = "编辑过滤器";
                }
                else
                {
                    title = "添加过滤器";
                }
            }
            ContainerWindow.ShowWindow(new ContainerWindowViewModel {
                Title          = title,
                IsDialogWindow = true,
                SaveVisible    = System.Windows.Visibility.Visible,
                CloseVisible   = System.Windows.Visibility.Visible,
                IconName       = "Icon_Coin",
                OnOk           = (uc) => {
                    var vm = ((KernelOutputFilterEdit)uc).Vm;
                    if (NTMinerRoot.Current.KernelOutputFilterSet.Contains(source.Id))
                    {
                        Global.Execute(new UpdateKernelOutputFilterCommand(vm));
                    }
                    else
                    {
                        Global.Execute(new AddKernelOutputFilterCommand(vm));
                    }
                    return(true);
                }
            }, ucFactory: (window) =>
            {
                KernelOutputFilterViewModel vm = new KernelOutputFilterViewModel(source.Id).Update(source);
                return(new KernelOutputFilterEdit(vm));
            }, fixedSize: true);
        }
예제 #6
0
 public KernelOutputFilterEdit(KernelOutputFilterViewModel vm)
 {
     this.DataContext = vm;
     InitializeComponent();
     ResourceDictionarySet.Instance.FillResourceDic(this, this.Resources);
 }
예제 #7
0
파일: Messages.cs 프로젝트: vebin/ntminer
 public KernelOutputFilterEditCommand(FormType formType, KernelOutputFilterViewModel source)
 {
     this.FormType = formType;
     this.Source   = source;
 }
예제 #8
0
 public KernelOutputFilterEdit(KernelOutputFilterViewModel vm)
 {
     this.DataContext = vm;
     InitializeComponent();
 }