コード例 #1
0
 public DocumentWindow(DocumentWindowModel model)
 {
     InitializeComponent();
     DataContext = model;
 }
コード例 #2
0
        private void listView_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            int index = listView.SelectedIndex;

            if (index < 0 || index >= listView.Items.Count)
            {
                return;
            }

            if (listView.Items[index] is DocumentItem selectedItem)
            {
                Document document = documentManager.DocumentsStorage.GetDocument(selectedItem.Identifier);

                DocumentWindowModel dwModel = new DocumentWindowModel
                {
                    WindowHandler = document.Identifier,
                    LogMessages   = documentManager.loggerManager.GetDocumentMessages(document)
                                    .Where(msg => msg is LogMessage || msg is ErrorMessage).Select(msg =>
                    {
                        LogMessageItem.LogStatus ls = LogMessageItem.LogStatus.Normal;
                        if (msg.Type == MessageBase.MessageType.warning)
                        {
                            ls = LogMessageItem.LogStatus.Warning;
                        }
                        else if (msg.Type == MessageBase.MessageType.error)
                        {
                            ls = LogMessageItem.LogStatus.Error;
                        }
                        return(new LogMessageItem(msg.Message, msg.Time.ToShortTimeString(), ls));
                    }),
                    TextMessages = documentManager.loggerManager.GetDocumentMessages(document).Where(msg =>
                    {
                        if (msg is WarningMessage)
                        {
                            return((msg as WarningMessage).Place == WarningMessage.PlaceType.TextFile);
                        }
                        return(false);
                    })
                                   .Select(msg =>
                    {
                        LogMessageItem.LogStatus ls = LogMessageItem.LogStatus.Normal;
                        if (msg.Type == MessageBase.MessageType.warning)
                        {
                            ls = LogMessageItem.LogStatus.Warning;
                        }
                        else if (msg.Type == MessageBase.MessageType.error)
                        {
                            ls = LogMessageItem.LogStatus.Error;
                        }
                        return(new LogMessageItem(msg.Message, msg.Time.ToShortTimeString(), ls));
                    }),
                    ScanMessages = documentManager.loggerManager.GetDocumentMessages(document).Where(msg =>
                    {
                        if (msg is WarningMessage)
                        {
                            return((msg as WarningMessage).Place == WarningMessage.PlaceType.Scan);
                        }
                        return(false);
                    })
                                   .Select(msg =>
                    {
                        LogMessageItem.LogStatus ls = LogMessageItem.LogStatus.Normal;
                        if (msg.Type == MessageBase.MessageType.warning)
                        {
                            ls = LogMessageItem.LogStatus.Warning;
                        }
                        else if (msg.Type == MessageBase.MessageType.error)
                        {
                            ls = LogMessageItem.LogStatus.Error;
                        }
                        return(new LogMessageItem(msg.Message, msg.Time.ToShortTimeString(), ls));
                    }),
                    TextPdfMessages = documentManager.loggerManager.GetDocumentMessages(document).Where(msg =>
                    {
                        if (msg is WarningMessage)
                        {
                            return((msg as WarningMessage).Place == WarningMessage.PlaceType.TextPdf);
                        }
                        return(false);
                    })
                                      .Select(msg =>
                    {
                        LogMessageItem.LogStatus ls = LogMessageItem.LogStatus.Normal;
                        if (msg.Type == MessageBase.MessageType.warning)
                        {
                            ls = LogMessageItem.LogStatus.Warning;
                        }
                        else if (msg.Type == MessageBase.MessageType.error)
                        {
                            ls = LogMessageItem.LogStatus.Error;
                        }
                        return(new LogMessageItem(msg.Message, msg.Time.ToShortTimeString(), ls));
                    }),
                    AttachMessages = documentManager.loggerManager.GetDocumentMessages(document).Where(msg =>
                    {
                        if (msg is WarningMessage)
                        {
                            return((msg as WarningMessage).Place == WarningMessage.PlaceType.Attachments);
                        }
                        return(false);
                    })
                                     .Select(msg =>
                    {
                        LogMessageItem.LogStatus ls = LogMessageItem.LogStatus.Normal;
                        if (msg.Type == MessageBase.MessageType.warning)
                        {
                            ls = LogMessageItem.LogStatus.Warning;
                        }
                        else if (msg.Type == MessageBase.MessageType.error)
                        {
                            ls = LogMessageItem.LogStatus.Error;
                        }
                        return(new LogMessageItem(msg.Message, msg.Time.ToShortTimeString(), ls));
                    })
                };
                DocumentWindow documentWindow = new DocumentWindow(dwModel);

                documentWindow.Left = this.Left + this.Width / 2 - documentWindow.Width / 2;
                documentWindow.Top  = this.Top + this.Height / 2 - documentWindow.Height / 2;
                documentWindow.ShowDialog();
            }
        }