/// <summary> /// Inicializuje komponenty okna v režimu úpravy existujícího záznamu publikace. /// </summary> private void initializeExistingPublicationMode() { // aktivace tlačítek pro změnu záznamu publikace typeComboBox.IsEnabled = false; insertPublicationButton.IsEnabled = false; editPublicationButton.IsEnabled = true; deletePublicationButton.IsEnabled = true; attachmentDataGrid.IsEnabled = true; addAttachmentButton.IsEnabled = true; // výpis uložených bibliografických informací Title = "Publikace č. " + originalPublication.Id; bibtexEntryTextBox.Text = originalPublication.Entry; titleTextBox.Text = originalPublication.Title; yearNumericUpDown.Value = originalPublication.Year; contentTextBox.Text = originalPublication.Text; // výpis uloženého seznamu autorů foreach (Author author in originalPublication.Author) { publicationAuthorListView.Items.Add(author); } // načtení a výpis uloženého seznamu příloh refreshAttachments(); // nastavení typu publikace v nabídce, zobrazení odpovídajícího formuláře a výpis uložených informací typeComboBox.SelectedValue = PublicationType.GetTypeByName(publicationTypes, originalPublication.Type); setBibliographyForm(); currentBibliographyForm.ViewPublication(originalPublication); }
/// <summary> /// Aktualizuje stav aktivace tlačítek a výpis citace podle normy a odpovídajícího BibTeX záznamu /// při změně výběru ve vypsaném seznamu publikací. /// </summary> /// <param name="sender">původce události</param> /// <param name="e">data události</param> private void publicationDataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e) { // vyprázdnění textových polí a deaktivace tlačítek zobrazení a exportu při prázdném výběru if (publicationDataGrid.SelectedItem == null) { publicationCitationTextBox.Text = ""; publicationBibtexTextBox.Text = ""; setButtonsEnabled(false); return; } Publication publication = publicationDataGrid.SelectedItem as Publication; /* * požadavek datové vrstvě na vygenerování citace a BibTeX záznamu, jejich výpis do textových polí * a aktivace tlačítek zobrazení a exportu při výběru publikace v seznamu. */ publicationCitationTextBox.Text = PublicationType.GetTypeByName(publicationTypes, publication.Type) .Model.GeneratePublicationIsoCitation(publication); publicationBibtexTextBox.Text = PublicationType.GetTypeByName(publicationTypes, publication.Type) .Model.GeneratePublicationBibtexEntry(publication); setButtonsEnabled(true); }
/// <summary> /// Exportuje evidovanou publikaci do souboru ve formátu HTML dokumentu na zadané cestě. /// Před samotným exportem zobrazí dialogové okno pro výběr souboru šablony HTML kódu, do kterého /// budou vložena data publikace (výběr není povinný, při zrušení okna se zvolí výchozí šablona) /// a následně dialogové okno pro zadání cílové cesty pro uložení výsledného HTML dokumentu. /// </summary> /// <param name="sender">původce události</param> /// <param name="e">data události</param> private void exportPublicationMenuItem_Click(object sender, RoutedEventArgs e) { if (publicationDataGrid.SelectedItem == null) { return; } // načtení cest k šabloně a k dokumentu (cesta k šabloně je nepovinná) string templatePath = getTemplatePathFromDialog(); string htmlPath = getHtmlPathFromDialog(); // zrušení exportu, pokud nebyla určena cesta k výslednému dokumentu if (htmlPath == null) { return; } Publication publication = publicationDataGrid.SelectedItem as Publication; // požadavek datové vrstvě na vytvoření zadaného dokumentu podle zadané šablony PublicationType.GetTypeByName(publicationTypes, publication.Type).Model .ExportPublicationToHtmlDocument(publication, templatePath, htmlPath); statusLabel.Content = $"Dokončen export publikace s ID {publication.Id} do HTML dokumentu."; }