Skip to content

Commit

Permalink
Add Dataverse Theme to Json Parser/Printer
Browse files Browse the repository at this point in the history
  • Loading branch information
sekmiller committed Jul 21, 2016
1 parent 8cb9a7e commit 92e89d0
Show file tree
Hide file tree
Showing 4 changed files with 378 additions and 264 deletions.
57 changes: 57 additions & 0 deletions src/main/java/edu/harvard/iq/dataverse/util/json/JsonParser.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import edu.harvard.iq.dataverse.DatasetVersion;
import edu.harvard.iq.dataverse.Dataverse;
import edu.harvard.iq.dataverse.DataverseContact;
import edu.harvard.iq.dataverse.DataverseTheme;
import edu.harvard.iq.dataverse.MetadataBlockServiceBean;
import edu.harvard.iq.dataverse.TermsOfUseAndAccess;
import edu.harvard.iq.dataverse.TermsOfUseAndAccess.License;
Expand Down Expand Up @@ -86,6 +87,12 @@ public Dataverse parseDataverse(JsonObject jobj) throws JsonParseException {
dv.setDataverseContacts(dvContactList);
}

if (jobj.containsKey("theme")) {
DataverseTheme theme = parseDataverseTheme(jobj.getJsonObject("theme"));
dv.setDataverseTheme(theme);
theme.setDataverse(dv);
}

/* We decided that subject is not user set, but gotten from the subject of the dataverse's
datasets - leavig this code in for now, in case we need to go back to it at some point
Expand Down Expand Up @@ -114,6 +121,56 @@ public Dataverse parseDataverse(JsonObject jobj) throws JsonParseException {

return dv;
}

public DataverseTheme parseDataverseTheme(JsonObject obj) {

DataverseTheme theme = new DataverseTheme();

if (obj.containsKey("backgroundColor")) {
theme.setBackgroundColor(obj.getString("backgroundColor", null));
}
if (obj.containsKey("linkColor")) {
theme.setLinkColor(obj.getString("linkColor", null));
}
if (obj.containsKey("linkUrl")) {
theme.setLinkUrl(obj.getString("linkUrl", null));
}
if (obj.containsKey("logo")) {
theme.setLogo(obj.getString("logo", null));
}
if (obj.containsKey("logoAlignment")) {
String align = obj.getString("logoAlignment");
if (align.equalsIgnoreCase("left")) {
theme.setLogoAlignment(DataverseTheme.Alignment.LEFT);
}
if (align.equalsIgnoreCase("right")) {
theme.setLogoAlignment(DataverseTheme.Alignment.RIGHT);
}
if (align.equalsIgnoreCase("center")) {
theme.setLogoAlignment(DataverseTheme.Alignment.CENTER);
}
}
if (obj.containsKey("logoBackgroundColor")) {
theme.setLogoBackgroundColor(obj.getString("logoBackgroundColor", null));
}
if (obj.containsKey("logoFormat")) {
String format = obj.getString("logoFormat");
if (format.equalsIgnoreCase("square")) {
theme.setLogoFormat(DataverseTheme.ImageFormat.SQUARE);
}
if (format.equalsIgnoreCase("rectangle")) {
theme.setLogoFormat(DataverseTheme.ImageFormat.RECTANGLE);
}
}
if (obj.containsKey("tagline")) {
theme.setTagline(obj.getString("tagline", null));
}
if (obj.containsKey("textColor")) {
theme.setTextColor(obj.getString("textColor", null));
}

return theme;
}

private static String getMandatoryString(JsonObject jobj, String name) throws JsonParseException {
if (jobj.containsKey(name)) {
Expand Down
Loading

0 comments on commit 92e89d0

Please sign in to comment.