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();

Reply via email to