Esempio n. 1
0
 public string this[string index]
 {
     get
     {
         return(Entry.getAllFields().ContainsKey(index) ? Entry.getField(index) : "");
     }
 }
Esempio n. 2
0
        private void AddBibTeXEntry(BibtexEntry entry)
        {
            string title    = entry.getField("title");
            string subtitle = "";
            string author   = entry.getField("author");
            string editor   = entry.getField("editor");

            title  = TrimEntry(title);
            author = TrimEntry(author);
            editor = TrimEntry(editor);

            if (author == null)
            {
                Console.WriteLine("Warning: empty author field in entry {0}", entry.getId());
                author = "";
            }

            if (editor == null)
            {
                Console.WriteLine("Warning: empty editor field in entry {0}", entry.getId());
                editor = "";
            }

            string[] authors    = author.Split(new string[] { " and ", "," }, StringSplitOptions.RemoveEmptyEntries);
            string   new_author = "";

            foreach (string a in authors)
            {
                if (a.Length > 0 && new_author != "")
                {
                    new_author = new_author + ";" + TrimEntry(a);
                }
                else if (a.Length > 0)
                {
                    new_author = TrimEntry(a);
                }
            }

            if (editor == "")
            {
                editor = new_author;
            }
            if (new_author == "")
            {
                new_author = editor;
            }

            string booktitle            = entry.getField("booktitle");
            string edition              = entry.getField("edition");
            string isbn                 = entry.getField("isbn");
            string journalorseriestitle = entry.getType() == BibtexEntryType.getType("ARTICLE") ? entry.getField("journal") : entry.getField("series");
            string volume               = entry.getField("volume");
            string issue                = entry.getField("issue");
            string pages                = entry.getField("pages");
            string startpage            = "";
            string endpage              = "";

            if (pages != null)
            {
                string[] splittedPages = pages.Split(new string[] { "-", "--" }, StringSplitOptions.RemoveEmptyEntries);
                if (splittedPages.Length > 0)
                {
                    startpage = splittedPages[0].Trim();
                }
                if (splittedPages.Length > 1)
                {
                    endpage = splittedPages[1].Trim();
                }
            }


            string issn            = entry.getField("issn");
            string publisher       = entry.getField("publisher");
            string publicationdate = entry.getField("year");
            string abstract_txt    = entry.getField("abstract");
            string doi             = entry.getField("doi");
            string fulltexturl     = entry.getField("url");
            string notes           = entry.getField("notes");
            string publicationtype = "";
            string orgcode         = BibTex2eCitation.Properties.Settings.Default.DefaultOrgCode.ToString();

            if (entry.getType() == BibtexEntryType.getType("ARTICLE"))
            {
                publicationtype = "Journal Items";
            }
            else if (entry.getType() == BibtexEntryType.getType("BOOK"))
            {
                publicationtype = "Monographs/ Monograph Items";
            }
            else if (entry.getType() == BibtexEntryType.getType("PHDTHESIS"))
            {
                publicationtype = "Doctoral Thesis and Habilitation";
            }
            else if (entry.getType() == BibtexEntryType.getType("MASTERSTHESIS"))
            {
                publicationtype = "Master Thesis and Bachelor Thesis";
            }
            else if (entry.getType() == BibtexEntryType.getType("INPROCEEDINGS"))
            {
                publicationtype = "Conference Contributions";
            }
            string language = "English";

            dataGridView1.Rows.Add(new string[] { title, new_author, publicationdate, editor, publicationtype, "", orgcode, subtitle, booktitle, edition, "", "", isbn, journalorseriestitle, volume, issue, startpage, endpage, issn, publisher, "", "", abstract_txt, doi, fulltexturl, "", "", "", notes, "", language });
        }
Esempio n. 3
0
 private void ParseField(BibtexEntry entry)
 {
     string key = ParseTextToken().ToLower();
     // Util.pr("Field: _"+key+"_");
     SkipWhitespace();
     Consume('=');
     string content = ParseFieldContent(key);
     if (content.Length > 0) {
     if (entry.getField(key) == null)
         entry.setField(key, content);
     else {
         // The following hack enables the parser to deal with multiple
         // author or
         // editor lines, stringing them together instead of getting just
         // one of them.
         // Multiple author or editor lines are not allowed by the bibtex
         // format, but
         // at least one online database exports bibtex like that, making
         // it inconvenient
         // for users if JabRef didn't accept it.
         if (key.Equals("author") || key.Equals("editor"))
             entry.setField(key, entry.getField(key) + " and " + content);
     }
     }
 }