private void ListWidgetRuntimeListBox_MouseRightButtonUp(object sender, MouseButtonEventArgs e)
        {
            if (!(sender is ListBox))
            {
                return;
            }
            object o = (sender as ListBox).SelectedItem;

            if (o == null)
            {
                return;
            }
            if (o is IRuntimeDeviceViewModel)
            {
                IDefectAcknowledgingService defectAcknowledgingService = _globalDefectAcknowledgingService.GetDefectAcknowledgingService(
                    (o as IRuntimeDeviceViewModel).Model as IRuntimeDevice);
                if (!defectAcknowledgingService.IsFailNeedsAcknowledge())
                {
                    if (((ListBox)sender).ContextMenu != null)
                    {
                        ((ListBox)sender).ContextMenu = null;
                    }
                    return;
                }
                ((ListBox)sender).ContextMenu = new ContextMenu();
                MenuItem ackMenuItem = new MenuItem {
                    Header = "Квитировать неисправность"
                };
                ackMenuItem.Click += (se, ea) =>
                {
                    defectAcknowledgingService.AcknowledgeFail();
                };
                ((ListBox)sender).ContextMenu.Items.Add(ackMenuItem);
            }
        }
Example #2
0
        private void CheckStateWidget()
        {
            if (_deviceViewModel == null)
            {
                return;
            }
            CheckAckFail();
            if (!_defectAcknowledgingService.IsFailNeedsAcknowledge())
            {
                DispatchService.Invoke((() =>
                {
                    switch (_deviceViewModel.StateWidget)
                    {
                    case WidgetState.Norm:
                        _assotiatedBorder.Visibility = Visibility.Collapsed;
                        break;

                    case WidgetState.NoConnection:
                        _assotiatedBorder.Visibility = Visibility.Visible;
                        _assotiatedBorder.Background = Brushes.Silver;
                        break;

                    case WidgetState.Crash:
                        _assotiatedBorder.Visibility = Visibility.Visible;
                        _assotiatedBorder.Background = Brushes.Red;
                        break;

                    case WidgetState.Repair:
                        _assotiatedBorder.Visibility = Visibility.Visible;
                        _assotiatedBorder.Background = Brushes.Orange;
                        break;
                    }
                }));
            }
            else
            {
                if (_deviceViewModel.StateWidget == WidgetState.NoConnection)
                {
                    DispatchService.Invoke((() =>
                    {
                        _assotiatedBorder.Visibility = Visibility.Visible;
                        _assotiatedBorder.Background = Brushes.Silver;
                    }));
                }
            }
        }