From 67387113513ce9529e08b62ffc430d13e24f0b4b Mon Sep 17 00:00:00 2001 From: SIROUKANE Date: Thu, 26 Apr 2018 13:50:36 +0200 Subject: [PATCH 1/9] Fix IEEE preview does not display month (#3239) On month change from comboBox on OptionalFieldsTab: 1. Month was not appear on IEEE style. 2. Month was not written correctly on SourceTab. both issues get fixed. --- .../org/jabref/logic/bibtex/LatexFieldFormatter.java | 4 ++-- .../java/org/jabref/logic/citationstyle/CSLAdapter.java | 9 +++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/jabref/logic/bibtex/LatexFieldFormatter.java b/src/main/java/org/jabref/logic/bibtex/LatexFieldFormatter.java index 64346eb96cb..822a5454241 100644 --- a/src/main/java/org/jabref/logic/bibtex/LatexFieldFormatter.java +++ b/src/main/java/org/jabref/logic/bibtex/LatexFieldFormatter.java @@ -270,8 +270,8 @@ private void writeText(String text, int startPos, int endPos) { private void writeStringLabel(String text, int startPos, int endPos, boolean first, boolean last) { - putIn((first ? "" : " # ") + text.substring(startPos, endPos) - + (last ? "" : " # ")); + putIn((first ? "{" : " # ") + text.substring(startPos, endPos) + + (last ? "}" : " # ")); } private void putIn(String s) { diff --git a/src/main/java/org/jabref/logic/citationstyle/CSLAdapter.java b/src/main/java/org/jabref/logic/citationstyle/CSLAdapter.java index c844f153fda..fc17b9f0bfe 100644 --- a/src/main/java/org/jabref/logic/citationstyle/CSLAdapter.java +++ b/src/main/java/org/jabref/logic/citationstyle/CSLAdapter.java @@ -15,6 +15,7 @@ import de.undercouch.citeproc.bibtex.BibTeXConverter; import de.undercouch.citeproc.csl.CSLItemData; import de.undercouch.citeproc.output.Bibliography; +import org.jabref.model.entry.FieldName; import org.jbibtex.BibTeXEntry; import org.jbibtex.DigitStringValue; import org.jbibtex.Key; @@ -84,6 +85,14 @@ private static class JabRefItemDataProvider implements ItemDataProvider { * Converts the {@link BibEntry} into {@link CSLItemData}. */ private static CSLItemData bibEntryToCSLItemData(BibEntry bibEntry) { + + // create a copy of bibEntry + bibEntry = (BibEntry) bibEntry.clone(); + // change month field from "#mon#" to "mon" + if((bibEntry.getFieldMap().get(FieldName.MONTH) != null) && !bibEntry.getFieldMap().get(FieldName.MONTH).isEmpty()){ + bibEntry.getFieldMap().put(FieldName.MONTH, bibEntry.getMonth().get().getShortName()); + } + String citeKey = bibEntry.getCiteKeyOptional().orElse(""); BibTeXEntry bibTeXEntry = new BibTeXEntry(new Key(bibEntry.getType()), new Key(citeKey)); From 4d7525ee8841002fcbf885d1694f7400975f0e92 Mon Sep 17 00:00:00 2001 From: Siroukane Date: Thu, 26 Apr 2018 23:18:59 +0200 Subject: [PATCH 2/9] Fix IEEE preview does not display month (#3239) https://github.com/JabRef/jabref/pull/3983#discussion_r184514064 --- .../java/org/jabref/logic/citationstyle/CSLAdapter.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/jabref/logic/citationstyle/CSLAdapter.java b/src/main/java/org/jabref/logic/citationstyle/CSLAdapter.java index fc17b9f0bfe..a4d25a4b993 100644 --- a/src/main/java/org/jabref/logic/citationstyle/CSLAdapter.java +++ b/src/main/java/org/jabref/logic/citationstyle/CSLAdapter.java @@ -88,10 +88,6 @@ private static CSLItemData bibEntryToCSLItemData(BibEntry bibEntry) { // create a copy of bibEntry bibEntry = (BibEntry) bibEntry.clone(); - // change month field from "#mon#" to "mon" - if((bibEntry.getFieldMap().get(FieldName.MONTH) != null) && !bibEntry.getFieldMap().get(FieldName.MONTH).isEmpty()){ - bibEntry.getFieldMap().put(FieldName.MONTH, bibEntry.getMonth().get().getShortName()); - } String citeKey = bibEntry.getCiteKeyOptional().orElse(""); BibTeXEntry bibTeXEntry = new BibTeXEntry(new Key(bibEntry.getType()), new Key(citeKey)); @@ -100,6 +96,11 @@ private static CSLItemData bibEntryToCSLItemData(BibEntry bibEntry) { HTMLChars latexToHtmlConverter = new HTMLChars(); RemoveNewlinesFormatter removeNewlinesFormatter = new RemoveNewlinesFormatter(); for (String key : bibEntry.getFieldMap().keySet()) { + if (FieldName.MONTH.equals(key)) { + // change month field value from "#mon#" to "mon" + bibEntry.getFieldMap().put(FieldName.MONTH, bibEntry.getMonth().get().getShortName()); + } + bibEntry.getField(key) .map(removeNewlinesFormatter::format) .map(latexToHtmlConverter::format) From 99c6dd5364377cadd72a9a458d94e9bf010285e1 Mon Sep 17 00:00:00 2001 From: Siroukane Date: Thu, 26 Apr 2018 23:48:22 +0200 Subject: [PATCH 3/9] Fix IEEE preview does not display month (#3239) https://github.com/JabRef/jabref/pull/3983#discussion_r184538844 --- .../java/org/jabref/logic/bibtex/LatexFieldFormatter.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/jabref/logic/bibtex/LatexFieldFormatter.java b/src/main/java/org/jabref/logic/bibtex/LatexFieldFormatter.java index 822a5454241..64346eb96cb 100644 --- a/src/main/java/org/jabref/logic/bibtex/LatexFieldFormatter.java +++ b/src/main/java/org/jabref/logic/bibtex/LatexFieldFormatter.java @@ -270,8 +270,8 @@ private void writeText(String text, int startPos, int endPos) { private void writeStringLabel(String text, int startPos, int endPos, boolean first, boolean last) { - putIn((first ? "{" : " # ") + text.substring(startPos, endPos) - + (last ? "}" : " # ")); + putIn((first ? "" : " # ") + text.substring(startPos, endPos) + + (last ? "" : " # ")); } private void putIn(String s) { From cb5a8a3fdc7299ad5315a272fbc49984286476c9 Mon Sep 17 00:00:00 2001 From: Siroukane Date: Fri, 27 Apr 2018 00:02:44 +0200 Subject: [PATCH 4/9] Fix IEEE preview does not display month (#3239) Wrong order for 'org.jabref.model.entry.FieldName' import. --- src/main/java/org/jabref/logic/citationstyle/CSLAdapter.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/jabref/logic/citationstyle/CSLAdapter.java b/src/main/java/org/jabref/logic/citationstyle/CSLAdapter.java index a4d25a4b993..fa0bf6c2784 100644 --- a/src/main/java/org/jabref/logic/citationstyle/CSLAdapter.java +++ b/src/main/java/org/jabref/logic/citationstyle/CSLAdapter.java @@ -9,13 +9,14 @@ import org.jabref.logic.formatter.bibtexfields.RemoveNewlinesFormatter; import org.jabref.logic.layout.format.HTMLChars; import org.jabref.model.entry.BibEntry; +import org.jabref.model.entry.FieldName; import de.undercouch.citeproc.CSL; import de.undercouch.citeproc.ItemDataProvider; import de.undercouch.citeproc.bibtex.BibTeXConverter; import de.undercouch.citeproc.csl.CSLItemData; import de.undercouch.citeproc.output.Bibliography; -import org.jabref.model.entry.FieldName; + import org.jbibtex.BibTeXEntry; import org.jbibtex.DigitStringValue; import org.jbibtex.Key; From 0255d0f6c02f281bddc173ce6a13df4ede23fb18 Mon Sep 17 00:00:00 2001 From: Siroukane Date: Sat, 28 Apr 2018 02:14:38 +0200 Subject: [PATCH 5/9] Fix IEEE preview does not display month (#3239) fix missing check style issue --- src/main/java/org/jabref/logic/citationstyle/CSLAdapter.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/org/jabref/logic/citationstyle/CSLAdapter.java b/src/main/java/org/jabref/logic/citationstyle/CSLAdapter.java index fa0bf6c2784..ede73d2a55d 100644 --- a/src/main/java/org/jabref/logic/citationstyle/CSLAdapter.java +++ b/src/main/java/org/jabref/logic/citationstyle/CSLAdapter.java @@ -16,7 +16,6 @@ import de.undercouch.citeproc.bibtex.BibTeXConverter; import de.undercouch.citeproc.csl.CSLItemData; import de.undercouch.citeproc.output.Bibliography; - import org.jbibtex.BibTeXEntry; import org.jbibtex.DigitStringValue; import org.jbibtex.Key; From 2f022b2d9c0d73aee79a6eaf3f332a9640a27b95 Mon Sep 17 00:00:00 2001 From: Siroukane Date: Sat, 28 Apr 2018 13:24:30 +0200 Subject: [PATCH 6/9] Fix IEEE preview does not display month (#3239) Remove Superfluous Comments https://github.com/JabRef/jabref/pull/3983#discussion_r184842438 --- .../java/org/jabref/logic/citationstyle/CSLAdapter.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/jabref/logic/citationstyle/CSLAdapter.java b/src/main/java/org/jabref/logic/citationstyle/CSLAdapter.java index ede73d2a55d..4fba69f2e10 100644 --- a/src/main/java/org/jabref/logic/citationstyle/CSLAdapter.java +++ b/src/main/java/org/jabref/logic/citationstyle/CSLAdapter.java @@ -83,10 +83,13 @@ private static class JabRefItemDataProvider implements ItemDataProvider { /** * Converts the {@link BibEntry} into {@link CSLItemData}. + * + * Clone bibEntry to make a save changes, + * Change month field from JabRefFormat #mon# to ShortName mon + * because CSL does not support JabRefFormat. */ private static CSLItemData bibEntryToCSLItemData(BibEntry bibEntry) { - // create a copy of bibEntry bibEntry = (BibEntry) bibEntry.clone(); String citeKey = bibEntry.getCiteKeyOptional().orElse(""); @@ -97,7 +100,6 @@ private static CSLItemData bibEntryToCSLItemData(BibEntry bibEntry) { RemoveNewlinesFormatter removeNewlinesFormatter = new RemoveNewlinesFormatter(); for (String key : bibEntry.getFieldMap().keySet()) { if (FieldName.MONTH.equals(key)) { - // change month field value from "#mon#" to "mon" bibEntry.getFieldMap().put(FieldName.MONTH, bibEntry.getMonth().get().getShortName()); } From 82b05d1c536c4e6d5eacbb576f6ea04658d881f0 Mon Sep 17 00:00:00 2001 From: Siroukane Date: Sun, 29 Apr 2018 21:21:59 +0200 Subject: [PATCH 7/9] Fix IEEE preview does not display month (#3239) Make change direct on bibTeXEntry instead of creating a copy of bibEntry --- .../jabref/logic/citationstyle/CSLAdapter.java | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/main/java/org/jabref/logic/citationstyle/CSLAdapter.java b/src/main/java/org/jabref/logic/citationstyle/CSLAdapter.java index 4fba69f2e10..d085d548a45 100644 --- a/src/main/java/org/jabref/logic/citationstyle/CSLAdapter.java +++ b/src/main/java/org/jabref/logic/citationstyle/CSLAdapter.java @@ -84,14 +84,10 @@ private static class JabRefItemDataProvider implements ItemDataProvider { /** * Converts the {@link BibEntry} into {@link CSLItemData}. * - * Clone bibEntry to make a save changes, * Change month field from JabRefFormat #mon# to ShortName mon * because CSL does not support JabRefFormat. */ private static CSLItemData bibEntryToCSLItemData(BibEntry bibEntry) { - - bibEntry = (BibEntry) bibEntry.clone(); - String citeKey = bibEntry.getCiteKeyOptional().orElse(""); BibTeXEntry bibTeXEntry = new BibTeXEntry(new Key(bibEntry.getType()), new Key(citeKey)); @@ -99,14 +95,15 @@ private static CSLItemData bibEntryToCSLItemData(BibEntry bibEntry) { HTMLChars latexToHtmlConverter = new HTMLChars(); RemoveNewlinesFormatter removeNewlinesFormatter = new RemoveNewlinesFormatter(); for (String key : bibEntry.getFieldMap().keySet()) { - if (FieldName.MONTH.equals(key)) { - bibEntry.getFieldMap().put(FieldName.MONTH, bibEntry.getMonth().get().getShortName()); - } - bibEntry.getField(key) .map(removeNewlinesFormatter::format) .map(latexToHtmlConverter::format) - .ifPresent(value -> bibTeXEntry.addField(new Key(key), new DigitStringValue(value))); + .ifPresent(value -> { + if((FieldName.MONTH.equals(key))){ + value = bibEntry.getMonth().get().getShortName(); + } + bibTeXEntry.addField(new Key(key), new DigitStringValue(value)); + }); } return BIBTEX_CONVERTER.toItemData(bibTeXEntry); } From f5481631e6deb6d37123e73b7c39d70c41182c92 Mon Sep 17 00:00:00 2001 From: Siroukane Date: Mon, 30 Apr 2018 04:18:05 +0200 Subject: [PATCH 8/9] Fix IEEE preview does not display month (#3239) fix check style issue --- src/main/java/org/jabref/logic/citationstyle/CSLAdapter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/jabref/logic/citationstyle/CSLAdapter.java b/src/main/java/org/jabref/logic/citationstyle/CSLAdapter.java index d085d548a45..0060e3ad7ab 100644 --- a/src/main/java/org/jabref/logic/citationstyle/CSLAdapter.java +++ b/src/main/java/org/jabref/logic/citationstyle/CSLAdapter.java @@ -99,7 +99,7 @@ private static CSLItemData bibEntryToCSLItemData(BibEntry bibEntry) { .map(removeNewlinesFormatter::format) .map(latexToHtmlConverter::format) .ifPresent(value -> { - if((FieldName.MONTH.equals(key))){ + if (FieldName.MONTH.equals(key)) { value = bibEntry.getMonth().get().getShortName(); } bibTeXEntry.addField(new Key(key), new DigitStringValue(value)); From eb2ad39271c8f56660c951cf14bf23fa5f67e97d Mon Sep 17 00:00:00 2001 From: Siroukane Date: Tue, 1 May 2018 19:37:25 +0200 Subject: [PATCH 9/9] Fix IEEE preview does not display month (#3239) https://github.com/JabRef/jabref/pull/3983#discussion_r184892251 --- src/main/java/org/jabref/logic/citationstyle/CSLAdapter.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/jabref/logic/citationstyle/CSLAdapter.java b/src/main/java/org/jabref/logic/citationstyle/CSLAdapter.java index 0060e3ad7ab..0dd93135dc3 100644 --- a/src/main/java/org/jabref/logic/citationstyle/CSLAdapter.java +++ b/src/main/java/org/jabref/logic/citationstyle/CSLAdapter.java @@ -10,6 +10,7 @@ import org.jabref.logic.layout.format.HTMLChars; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.FieldName; +import org.jabref.model.entry.Month; import de.undercouch.citeproc.CSL; import de.undercouch.citeproc.ItemDataProvider; @@ -100,7 +101,7 @@ private static CSLItemData bibEntryToCSLItemData(BibEntry bibEntry) { .map(latexToHtmlConverter::format) .ifPresent(value -> { if (FieldName.MONTH.equals(key)) { - value = bibEntry.getMonth().get().getShortName(); + value = bibEntry.getMonth().map(Month::getShortName).orElse(value); } bibTeXEntry.addField(new Key(key), new DigitStringValue(value)); });