diff --git a/src/main/java/org/commcare/suite/model/DetailField.java b/src/main/java/org/commcare/suite/model/DetailField.java index ea812612d..807059971 100644 --- a/src/main/java/org/commcare/suite/model/DetailField.java +++ b/src/main/java/org/commcare/suite/model/DetailField.java @@ -49,6 +49,8 @@ public class DetailField implements Externalizable { @Nullable private EndpointAction endpointAction; + private boolean showBorder; + /** * Optional hint which provides a hint for whether rich media should be * displayed based on returning a URI. May be either 'image' or @@ -207,6 +209,7 @@ public void readExternal(DataInputStream in, PrototypeFactory pf) throws IOExcep verticalAlign = ExtUtil.nullIfEmpty(ExtUtil.readString(in)); cssID = ExtUtil.nullIfEmpty(ExtUtil.readString(in)); endpointAction = (EndpointAction)ExtUtil.read(in, new ExtWrapNullable(EndpointAction.class), pf); + showBorder = ExtUtil.readBool(in); } @Override @@ -237,6 +240,7 @@ public void writeExternal(DataOutputStream out) throws IOException { ExtUtil.writeString(out, ExtUtil.emptyIfNull(verticalAlign)); ExtUtil.writeString(out, ExtUtil.emptyIfNull(cssID)); ExtUtil.write(out, new ExtWrapNullable(endpointAction)); + ExtUtil.writeBool(out, showBorder); } public int getGridX() { @@ -276,6 +280,10 @@ public String getCssId() { return cssID; } + public boolean getShowBorder() { + return showBorder; + } + public static class Builder { final DetailField field; @@ -398,5 +406,9 @@ public void setCssID(String id) { public void setEndpointAction(EndpointAction endpointAction) { field.endpointAction = endpointAction; } + + public void setShowBorder(boolean showBorder) { + field.showBorder = showBorder; + } } } diff --git a/src/main/java/org/commcare/suite/model/Style.java b/src/main/java/org/commcare/suite/model/Style.java index a53eb67c4..529558c58 100644 --- a/src/main/java/org/commcare/suite/model/Style.java +++ b/src/main/java/org/commcare/suite/model/Style.java @@ -11,6 +11,8 @@ public class Style { private String horizontalAlign; private String verticalAlign; + private boolean showBorder; + public Style(){} public Style(DetailField detail){ @@ -35,6 +37,7 @@ public Style(DetailField detail){ verticalAlign = detail.getVerticalAlign(); horizontalAlign = detail.getHorizontalAlign(); + showBorder = detail.getShowBorder(); } enum DisplayFormat { @@ -118,4 +121,8 @@ public String getHorizontalAlign() { public String getVerticalAlign() { return verticalAlign; } + + public boolean getShowBorder() { + return showBorder; + } } diff --git a/src/main/java/org/commcare/xml/StyleParser.java b/src/main/java/org/commcare/xml/StyleParser.java index b04c4fbcc..c915e5ed6 100644 --- a/src/main/java/org/commcare/xml/StyleParser.java +++ b/src/main/java/org/commcare/xml/StyleParser.java @@ -40,6 +40,9 @@ public Integer parse() throws InvalidStructureException, IOException, XmlPullPar String cssID = parser.getAttributeValue(null, "css-id"); builder.setCssID(cssID); + String showBorder = parser.getAttributeValue(null, "show-border"); + builder.setShowBorder(Boolean.parseBoolean(showBorder)); + parser.nextTag(); return Integer.valueOf(1); diff --git a/src/test/java/org/commcare/backend/suite/model/test/AppStructureTests.java b/src/test/java/org/commcare/backend/suite/model/test/AppStructureTests.java index f228147bc..46ab8193d 100644 --- a/src/test/java/org/commcare/backend/suite/model/test/AppStructureTests.java +++ b/src/test/java/org/commcare/backend/suite/model/test/AppStructureTests.java @@ -227,6 +227,13 @@ public void testDetailWithFieldAction() { assertFalse(endpoint.isRespectRelevancy()); } + @Test + public void testDetailWithBorder() { + Detail detail = mApp.getSession().getPlatform().getDetail("m0_case_short"); + DetailField field1 = detail.getFields()[0]; + assertTrue(field1.getShowBorder()); + } + @Test public void testDefaultEndpointRelevancy_shouldBeTrue() { Endpoint endpoint = mApp.getSession().getPlatform().getEndpoint("endpoint_with_no_relevancy"); diff --git a/src/test/resources/app_structure/suite.xml b/src/test/resources/app_structure/suite.xml index eadc29fd9..8134c36e3 100644 --- a/src/test/resources/app_structure/suite.xml +++ b/src/test/resources/app_structure/suite.xml @@ -62,6 +62,9 @@ +
Name