/// <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>
        /// Zobrazí formulář pro zadávání typově specifických údajů podle aktuálně zvoleného
        /// prvku z nabídky podporovaných typů publikací.
        /// </summary>
        private void setBibliographyForm()
        {
            PublicationType publicationType = typeComboBox.SelectedValue as PublicationType;

            // odstranění předchozího zobrazeného formuláře z okna
            if (currentBibliographyForm != null)
            {
                typeSpecificBibliographyGrid.Children.Remove(currentBibliographyForm as UserControl);
            }

            // vytvoření nového formuláře podle zvoleného typu
            currentBibliographyForm = publicationType.CreateForm(publicationType.Model);

            UserControl currentBibliographyUserControl = currentBibliographyForm as UserControl;

            // zobrazení formuláře v okně
            currentBibliographyUserControl.Margin = new Thickness(0, 0, 0, 0);
            Grid.SetRow(currentBibliographyUserControl, 0);
            Grid.SetColumn(currentBibliographyUserControl, 0);
            typeSpecificBibliographyGrid.Children.Add(currentBibliographyUserControl);
        }
Example #3
0
        /// <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);
        }
Example #4
0
        /// <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.";
        }