private void OnBookChanged(object sender, BookEventArgs e)
        {
            Contract.Requires(sender != null);
            Contract.Requires(e != null);

            ListViewItem item;

            BookDescriptor book = e.Book;
            if (_books.TryGetValue(book, out item)) {
                ListViewItem.ListViewSubItem subItem = item.SubItems["Status"];
                UpdateSubItemText(subItem, book.Status.Text);
            }
        }
        private void OnBookAdded(object sender, BookEventArgs e)
        {
            Contract.Requires(sender != null);
            Contract.Requires(e != null);

            BookDescriptor book = e.Book;
            ListViewItem item = new ListViewItem(book.FileInfo.Name);
            item.Tag = book;
            ListViewItem.ListViewSubItem status = new ListViewItem.ListViewSubItem();
            status.Name = "Status";
            status.Text = book.Status.Text;
            item.SubItems.Add(status);

            _books.TryAdd(book, item);

            _listViewInputFiles.Items.Add(item);
        }
 private void OnBookRemoved(object sender, BookEventArgs e)
 {
     BookDescriptor removedBook = e.Book;
     foreach (ListViewItem item in _listViewInputFiles.Items) {
         BookDescriptor book = (BookDescriptor)item.Tag;
         if (book == removedBook) {
             _listViewInputFiles.Items.Remove(item);
             break;
         }
     }
 }
 private void OnBookChanged(object sender, BookEventArgs e)
 {
     if (e.Book.Status == ConversionStatus.Finished) {
         _page.Append(Level.Warn, string.Format("=== BOOK FINISHED ==={0}{0}", Environment.NewLine));
     }
 }