Repository: incubator-unomi Updated Branches: refs/heads/master a0c5a556f -> 1f350d08c
UNOMI-135 Add a vertical rendering of CSVs Signed-off-by: Serge Huber <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/incubator-unomi/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-unomi/commit/1f350d08 Tree: http://git-wip-us.apache.org/repos/asf/incubator-unomi/tree/1f350d08 Diff: http://git-wip-us.apache.org/repos/asf/incubator-unomi/diff/1f350d08 Branch: refs/heads/master Commit: 1f350d08c8821aaadb6ca6731784739360e10e01 Parents: a0c5a55 Author: Serge Huber <[email protected]> Authored: Fri Nov 3 20:51:18 2017 +0100 Committer: Serge Huber <[email protected]> Committed: Fri Nov 3 20:51:18 2017 +0100 ---------------------------------------------------------------------- .../org/apache/unomi/web/ClientServlet.java | 27 ++++++++++++-------- 1 file changed, 17 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/1f350d08/wab/src/main/java/org/apache/unomi/web/ClientServlet.java ---------------------------------------------------------------------- diff --git a/wab/src/main/java/org/apache/unomi/web/ClientServlet.java b/wab/src/main/java/org/apache/unomi/web/ClientServlet.java index 2fd3851..d5dc90b 100644 --- a/wab/src/main/java/org/apache/unomi/web/ClientServlet.java +++ b/wab/src/main/java/org/apache/unomi/web/ClientServlet.java @@ -35,8 +35,8 @@ import java.io.IOException; import java.io.OutputStream; import java.io.StringWriter; import java.util.ArrayList; -import java.util.Collections; import java.util.List; +import java.util.Map; import java.util.Set; /** @@ -110,7 +110,7 @@ public class ClientServlet extends HttpServlet { prepareJsonFileToDownload(response, currentProfile); break; case "csv": - prepareCsvFileToDownload(response, currentProfile); + prepareCsvFileToDownload(response, currentProfile, request.getParameter("vertical") != null); break; default: return; @@ -121,7 +121,7 @@ public class ClientServlet extends HttpServlet { } } - private void prepareCsvFileToDownload(HttpServletResponse response, Profile currentProfile) { + private void prepareCsvFileToDownload(HttpServletResponse response, Profile currentProfile, boolean vertical) { response.setContentType("text/csv"); response.setHeader("Content-Disposition", "attachment; filename=\"" + currentProfile.getItemId() + ".csv\""); try { @@ -129,14 +129,21 @@ public class ClientServlet extends HttpServlet { //using custom delimiter and quote character CSVWriter csvWriter = new CSVWriter(writer); - Set<String> keySet = currentProfile.getProperties().keySet(); - List<String> values = new ArrayList(); - for (Object value : currentProfile.getProperties().values()) { - values.add(value.toString().trim().replace("\n", "")); - } - csvWriter.writeNext(keySet.toArray(new String[keySet.size()])); - csvWriter.writeNext(values.toArray(new String[values.size()])); OutputStream outputStream = response.getOutputStream(); + if (vertical) { + csvWriter.writeNext(new String[] {"name", "value"}); + for (Map.Entry<String,Object> entry : currentProfile.getProperties().entrySet()) { + csvWriter.writeNext(new String[] { entry.getKey(), entry.getValue().toString().trim().replace("\n", "")}); + } + } else { + Set<String> keySet = currentProfile.getProperties().keySet(); + List<String> values = new ArrayList(); + for (Object value : currentProfile.getProperties().values()) { + values.add(value.toString().trim().replace("\n", "")); + } + csvWriter.writeNext(keySet.toArray(new String[keySet.size()])); + csvWriter.writeNext(values.toArray(new String[values.size()])); + } outputStream.write(writer.toString().getBytes()); outputStream.flush(); outputStream.close();
