First commit
This commit is contained in:
		
							
								
								
									
										86
									
								
								pom.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										86
									
								
								pom.xml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,86 @@
 | 
				
			|||||||
 | 
					<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 | 
				
			||||||
 | 
					         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 | 
				
			||||||
 | 
					    <modelVersion>4.0.0</modelVersion>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <groupId>com.emkatsom</groupId>
 | 
				
			||||||
 | 
					    <artifactId>EasyHarvestLog</artifactId>
 | 
				
			||||||
 | 
					    <version>1.0-SNAPSHOT</version>
 | 
				
			||||||
 | 
					    <packaging>war</packaging>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <name>EasyHarvestLog</name>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <properties>
 | 
				
			||||||
 | 
					        <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
 | 
				
			||||||
 | 
					        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 | 
				
			||||||
 | 
					    </properties>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <dependencies>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>org.apache.httpcomponents</groupId>
 | 
				
			||||||
 | 
					            <artifactId>httpclient</artifactId>
 | 
				
			||||||
 | 
					            <version>4.2.5</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>com.google.code.gson</groupId>
 | 
				
			||||||
 | 
					            <artifactId>gson</artifactId>
 | 
				
			||||||
 | 
					            <version>2.3.1</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>javax</groupId>
 | 
				
			||||||
 | 
					            <artifactId>javaee-web-api</artifactId>
 | 
				
			||||||
 | 
					            <version>7.0</version>
 | 
				
			||||||
 | 
					            <scope>provided</scope>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					    </dependencies>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <build>
 | 
				
			||||||
 | 
					        <plugins>
 | 
				
			||||||
 | 
					            <plugin>
 | 
				
			||||||
 | 
					                <groupId>org.apache.maven.plugins</groupId>
 | 
				
			||||||
 | 
					                <artifactId>maven-compiler-plugin</artifactId>
 | 
				
			||||||
 | 
					                <version>2.3.2</version>
 | 
				
			||||||
 | 
					                <configuration>
 | 
				
			||||||
 | 
					                    <source>1.6</source>
 | 
				
			||||||
 | 
					                    <target>1.6</target>
 | 
				
			||||||
 | 
					                    <compilerArguments>
 | 
				
			||||||
 | 
					                        <endorseddirs>${endorsed.dir}</endorseddirs>
 | 
				
			||||||
 | 
					                    </compilerArguments>
 | 
				
			||||||
 | 
					                </configuration>
 | 
				
			||||||
 | 
					            </plugin>
 | 
				
			||||||
 | 
					            <plugin>
 | 
				
			||||||
 | 
					                <groupId>org.apache.maven.plugins</groupId>
 | 
				
			||||||
 | 
					                <artifactId>maven-war-plugin</artifactId>
 | 
				
			||||||
 | 
					                <version>2.1.1</version>
 | 
				
			||||||
 | 
					                <configuration>
 | 
				
			||||||
 | 
					                    <failOnMissingWebXml>false</failOnMissingWebXml>
 | 
				
			||||||
 | 
					                </configuration>
 | 
				
			||||||
 | 
					            </plugin>
 | 
				
			||||||
 | 
					            <plugin>
 | 
				
			||||||
 | 
					                <groupId>org.apache.maven.plugins</groupId>
 | 
				
			||||||
 | 
					                <artifactId>maven-dependency-plugin</artifactId>
 | 
				
			||||||
 | 
					                <version>2.1</version>
 | 
				
			||||||
 | 
					                <executions>
 | 
				
			||||||
 | 
					                    <execution>
 | 
				
			||||||
 | 
					                        <phase>validate</phase>
 | 
				
			||||||
 | 
					                        <goals>
 | 
				
			||||||
 | 
					                            <goal>copy</goal>
 | 
				
			||||||
 | 
					                        </goals>
 | 
				
			||||||
 | 
					                        <configuration>
 | 
				
			||||||
 | 
					                            <outputDirectory>${endorsed.dir}</outputDirectory>
 | 
				
			||||||
 | 
					                            <silent>true</silent>
 | 
				
			||||||
 | 
					                            <artifactItems>
 | 
				
			||||||
 | 
					                                <artifactItem>
 | 
				
			||||||
 | 
					                                    <groupId>javax</groupId>
 | 
				
			||||||
 | 
					                                    <artifactId>javaee-endorsed-api</artifactId>
 | 
				
			||||||
 | 
					                                    <version>6.0</version>
 | 
				
			||||||
 | 
					                                    <type>jar</type>
 | 
				
			||||||
 | 
					                                </artifactItem>
 | 
				
			||||||
 | 
					                            </artifactItems>
 | 
				
			||||||
 | 
					                        </configuration>
 | 
				
			||||||
 | 
					                    </execution>
 | 
				
			||||||
 | 
					                </executions>
 | 
				
			||||||
 | 
					            </plugin>
 | 
				
			||||||
 | 
					        </plugins>
 | 
				
			||||||
 | 
					    </build>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</project>
 | 
				
			||||||
							
								
								
									
										24
									
								
								src/main/java/com/emkatsom/logcat/Globals.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								src/main/java/com/emkatsom/logcat/Globals.java
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,24 @@
 | 
				
			|||||||
 | 
					package com.emkatsom.logcat;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class Globals {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public static String raw_data = "raw";
 | 
				
			||||||
 | 
					    public static String orientation_data = "orientation";
 | 
				
			||||||
 | 
					    public static String location_data = "location";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /*
 | 
				
			||||||
 | 
					     * PC
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    /*
 | 
				
			||||||
 | 
					     public static String server_url = "http://localhost:8084/Server/webresources/tasks";
 | 
				
			||||||
 | 
					     public static String db_path = "C:/EasyHarvestLog";
 | 
				
			||||||
 | 
					     /**/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /*
 | 
				
			||||||
 | 
					     * HOST
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    /**/
 | 
				
			||||||
 | 
					     public static String server_url = "http://83.212.109.118:8080/Server/webresources/tasks";
 | 
				
			||||||
 | 
					     public static String db_path = "/var/lib/tomcat6/webapps/db";
 | 
				
			||||||
 | 
					     /**/
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										2
									
								
								src/main/webapp/META-INF/context.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								src/main/webapp/META-INF/context.xml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<Context antiJARLocking="true" path="/LogCat"/>
 | 
				
			||||||
							
								
								
									
										35
									
								
								src/main/webapp/index.jsp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								src/main/webapp/index.jsp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,35 @@
 | 
				
			|||||||
 | 
					<%@page import="com.emkatsom.logcat.*"%>
 | 
				
			||||||
 | 
					<%@page language="java" %>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<%@page contentType="text/html" pageEncoding="UTF-8"%>
 | 
				
			||||||
 | 
					<!DOCTYPE html>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<html>
 | 
				
			||||||
 | 
					    <head>
 | 
				
			||||||
 | 
					        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 | 
				
			||||||
 | 
					        <title>LogCat</title>
 | 
				
			||||||
 | 
					    </head>
 | 
				
			||||||
 | 
					    <body>
 | 
				
			||||||
 | 
					        <h1>LogCat</h1>
 | 
				
			||||||
 | 
					        <h2></h2>
 | 
				
			||||||
 | 
					        <form action="./view.jsp">
 | 
				
			||||||
 | 
					            .../tasks/
 | 
				
			||||||
 | 
					            <input name="id" required="required" type="text" placeholder="id"/>
 | 
				
			||||||
 | 
					            /getdata
 | 
				
			||||||
 | 
					            <select name="type">
 | 
				
			||||||
 | 
					                <option value="<%=Globals.raw_data%>" selected><%=Globals.raw_data%></option>
 | 
				
			||||||
 | 
					                <option value="<%=Globals.orientation_data%>"><%=Globals.orientation_data%></option>
 | 
				
			||||||
 | 
					                <option value="<%=Globals.location_data%>"><%=Globals.location_data%></option>
 | 
				
			||||||
 | 
					            </select>
 | 
				
			||||||
 | 
					            <!--
 | 
				
			||||||
 | 
					            <br>
 | 
				
			||||||
 | 
					            <input name="download" type="checkbox"><label>Download</label>
 | 
				
			||||||
 | 
					            <br>
 | 
				
			||||||
 | 
					            <input name="delete" type="checkbox"><label>Delete</label>
 | 
				
			||||||
 | 
					            <br>
 | 
				
			||||||
 | 
					            <br>
 | 
				
			||||||
 | 
					            -->
 | 
				
			||||||
 | 
					            <input type="submit" value="OK">
 | 
				
			||||||
 | 
					        </form>
 | 
				
			||||||
 | 
					    </body>
 | 
				
			||||||
 | 
					</html>
 | 
				
			||||||
							
								
								
									
										285
									
								
								src/main/webapp/view.jsp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										285
									
								
								src/main/webapp/view.jsp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,285 @@
 | 
				
			|||||||
 | 
					<%@page import="com.emkatsom.logcat.*"%>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<%@page import="java.io.*"%>
 | 
				
			||||||
 | 
					<%@page import="java.util.*"%>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<%@page import="com.google.gson.*"%>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<%@page import="org.apache.http.client.methods.HttpGet"%>
 | 
				
			||||||
 | 
					<%@page import="org.apache.http.client.HttpClient"%>
 | 
				
			||||||
 | 
					<%@page import="org.apache.http.HttpResponse"%>
 | 
				
			||||||
 | 
					<%@page import="org.apache.http.impl.client.DefaultHttpClient"%>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<%@page language="java" %>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<%@page contentType="text/html" pageEncoding="UTF-8"%>
 | 
				
			||||||
 | 
					<!DOCTYPE html>
 | 
				
			||||||
 | 
					<html>
 | 
				
			||||||
 | 
					    <head>
 | 
				
			||||||
 | 
					        <style>
 | 
				
			||||||
 | 
					            *{ padding: 0px; margin: 0px; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }
 | 
				
			||||||
 | 
					            body, html { height: 100%; width: 100%; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            ol {
 | 
				
			||||||
 | 
					                padding: 10px 100px 10px 35px;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            #data {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            #map {
 | 
				
			||||||
 | 
					                width: 100%;
 | 
				
			||||||
 | 
					                height: 100%;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        </style>
 | 
				
			||||||
 | 
					        <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
 | 
				
			||||||
 | 
					        <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
 | 
				
			||||||
 | 
					        <%
 | 
				
			||||||
 | 
					            String TAG = "LogCat: ";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            String id = request.getParameter("id");
 | 
				
			||||||
 | 
					            String download = request.getParameter("download");
 | 
				
			||||||
 | 
					            String delete = request.getParameter("delete");
 | 
				
			||||||
 | 
					            String type = request.getParameter("type");
 | 
				
			||||||
 | 
					        %>
 | 
				
			||||||
 | 
					        <title>View - <%=id%> - LogCat</title>
 | 
				
			||||||
 | 
					        <script type="text/javascript">
 | 
				
			||||||
 | 
					            $(document).ready(function () {
 | 
				
			||||||
 | 
					                refresh();
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					            function refresh() {
 | 
				
			||||||
 | 
					                setTimeout(function () {
 | 
				
			||||||
 | 
					                    var id = getRequestParameter('id');
 | 
				
			||||||
 | 
					                    var type = getRequestParameter('type');
 | 
				
			||||||
 | 
					                    try {
 | 
				
			||||||
 | 
					                        $('#content').load('view.jsp?id=' + id + '&type=' + type + ' #content', update());
 | 
				
			||||||
 | 
					//                        alert(id + " and " + type);
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    catch (err) {
 | 
				
			||||||
 | 
					                        $('#content').load('view.jsp?id=' + id + '&type=' + type + ' #content');
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    refresh();
 | 
				
			||||||
 | 
					                }, 3000);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            function getRequestParameter(sParam) {
 | 
				
			||||||
 | 
					                var sPageURL = window.location.search.substring(1);
 | 
				
			||||||
 | 
					                var sURLVariables = sPageURL.split('&');
 | 
				
			||||||
 | 
					                for (var i = 0; i < sURLVariables.length; i++) {
 | 
				
			||||||
 | 
					                    var sParameterName = sURLVariables[i].split('=');
 | 
				
			||||||
 | 
					                    if (sParameterName[0] == sParam) {
 | 
				
			||||||
 | 
					                        return sParameterName[1];
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        </script>
 | 
				
			||||||
 | 
					    </head>
 | 
				
			||||||
 | 
					    <body>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <!--
 | 
				
			||||||
 | 
					        <form id="form" action="./index.jsp">
 | 
				
			||||||
 | 
					            <input type="submit" value="BACK">
 | 
				
			||||||
 | 
					        </form>
 | 
				
			||||||
 | 
					        -->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <div id="content">
 | 
				
			||||||
 | 
					            <%
 | 
				
			||||||
 | 
					                String html = "";
 | 
				
			||||||
 | 
					                String dataUrl = Globals.server_url + "/" + id + "/getdata";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                HttpClient httpClient = new DefaultHttpClient();
 | 
				
			||||||
 | 
					                HttpResponse httpResponse = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                List<Object> data = new ArrayList<Object>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                InputStream in = null;
 | 
				
			||||||
 | 
					                try {
 | 
				
			||||||
 | 
					                    HttpGet httpGet = new HttpGet(dataUrl);
 | 
				
			||||||
 | 
					                    httpResponse = httpClient.execute(httpGet);
 | 
				
			||||||
 | 
					                    in = httpResponse.getEntity().getContent();
 | 
				
			||||||
 | 
					                } catch (Exception e) {
 | 
				
			||||||
 | 
					                    System.out.println(TAG + e.getMessage());
 | 
				
			||||||
 | 
					                    html = "<ol>" + "Oops!" + "" + "</ol>";
 | 
				
			||||||
 | 
					                    out.println(html);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                /**/
 | 
				
			||||||
 | 
					//		FileOutputStream outputStream = new FileOutputStream(new File(Globals.db_path + "/" + id + ".dat"));
 | 
				
			||||||
 | 
					//		int read = 0;
 | 
				
			||||||
 | 
					//		byte[] bytes = new byte[1024];
 | 
				
			||||||
 | 
					//		while ((read = in.read(bytes)) != -1) {
 | 
				
			||||||
 | 
					//			outputStream.write(bytes, 0, read);
 | 
				
			||||||
 | 
					//		}
 | 
				
			||||||
 | 
					//                outputStream.close();
 | 
				
			||||||
 | 
					                /**/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                ObjectInputStream ois;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                try {
 | 
				
			||||||
 | 
					//                    ois = new ObjectInputStream(new FileInputStream(Globals.db_path + "/" + id + ".dat"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    ois = new ObjectInputStream(in);
 | 
				
			||||||
 | 
					                    data = (List<Object>) ois.readObject();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    ois.close();
 | 
				
			||||||
 | 
					                    in.close();
 | 
				
			||||||
 | 
					                    
 | 
				
			||||||
 | 
					//                    new File(Globals.db_path + "/" + id + ".dat").delete();
 | 
				
			||||||
 | 
					                    
 | 
				
			||||||
 | 
					                } catch (Exception e) {
 | 
				
			||||||
 | 
					                    System.out.println(TAG + e.getMessage());
 | 
				
			||||||
 | 
					//                    html = "<ol>" + "Empty." + "" + "</ol>";
 | 
				
			||||||
 | 
					                    out.println(html);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (Globals.raw_data.equals(type)) {
 | 
				
			||||||
 | 
					                    html = "<ol>";
 | 
				
			||||||
 | 
					                    for (Object o : data) {
 | 
				
			||||||
 | 
					                        Map m = (Map) o;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                        html += "<li>"
 | 
				
			||||||
 | 
					                                + new Date((Long) m.get("timestamp") / 1000000L).toString() + ""
 | 
				
			||||||
 | 
					                                + " task[" + m.get("task") + "]"
 | 
				
			||||||
 | 
					                                + "@" + m.get("device") + ":"
 | 
				
			||||||
 | 
					                                + " " + m.get("sensor") + ""
 | 
				
			||||||
 | 
					                                + "" + Arrays.toString((double[]) m.get("values")) + ""
 | 
				
			||||||
 | 
					                                + "</li>";
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    if (data.isEmpty()) {
 | 
				
			||||||
 | 
					                        html += "Empty.";
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    html += "</ol>";
 | 
				
			||||||
 | 
					                    out.println(html);
 | 
				
			||||||
 | 
					                } else if (Globals.orientation_data.equals(type)) {
 | 
				
			||||||
 | 
					                    html = "<ol>";
 | 
				
			||||||
 | 
					                    for (Object o : data) {
 | 
				
			||||||
 | 
					                        Map m = (Map) o;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                        double[] values = (double[]) m.get("values");
 | 
				
			||||||
 | 
					                        double x = values[0];
 | 
				
			||||||
 | 
					                        double y = values[1];
 | 
				
			||||||
 | 
					                        double z = values[2];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                        html += "<li>"
 | 
				
			||||||
 | 
					                                //+ m.get("timestamp") + ""
 | 
				
			||||||
 | 
					                                + new Date(Long.valueOf(m.get("timestamp").toString()) / 1000000L).toString() + ""
 | 
				
			||||||
 | 
					                                + " task[" + m.get("task") + "]"
 | 
				
			||||||
 | 
					                                + "@" + m.get("device") + ":";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                        if (x > 9 && y > 0 && y < 1 && z > 0 && z < 1) {
 | 
				
			||||||
 | 
					                            html += " LEFT";
 | 
				
			||||||
 | 
					                        } else if (x < -9 && y > 0 && y < 1 && z > 0 && z < 1) {
 | 
				
			||||||
 | 
					                            html += " RIGHT";
 | 
				
			||||||
 | 
					                        } else if (z > 9.5) {
 | 
				
			||||||
 | 
					                            html += " UP";
 | 
				
			||||||
 | 
					                        } else if (z < -9.5) {
 | 
				
			||||||
 | 
					                            html += " DOWN";
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                        html += "</li>";
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    if (data.isEmpty()) {
 | 
				
			||||||
 | 
					                        html += "Empty.";
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    html += "</ol>";
 | 
				
			||||||
 | 
					                    out.println(html);
 | 
				
			||||||
 | 
					                } else if (Globals.location_data.equals(type)) {
 | 
				
			||||||
 | 
					                    List<Object[]> list = new ArrayList<Object[]>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    for (Object o : data) {
 | 
				
			||||||
 | 
					                        Map m = (Map) o;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                        double[] loc = (double[]) m.get("values");
 | 
				
			||||||
 | 
					                        Object[] info = {
 | 
				
			||||||
 | 
					                            "<div style=\"text-align: center;\";>"
 | 
				
			||||||
 | 
					                            + new Date(Long.valueOf(m.get("timestamp").toString()) / 1000000L).toString() + "<br>"
 | 
				
			||||||
 | 
					                            + " task[" + m.get("task") + "]" + "@" + m.get("device") + "<br>"
 | 
				
			||||||
 | 
					                            + "" + Arrays.toString((double[]) m.get("values"))
 | 
				
			||||||
 | 
					                            + "</div>",
 | 
				
			||||||
 | 
					                            loc[0],
 | 
				
			||||||
 | 
					                            loc[1]
 | 
				
			||||||
 | 
					                        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                        list.add(info);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    Gson gson = new Gson();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    out.print("<div id=\"data\" hidden>" + gson.toJson(list) + "</div>");
 | 
				
			||||||
 | 
					            %>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <div id="map"></div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <script type="text/javascript">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            var map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            init();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            var infowindow = new google.maps.InfoWindow();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            var latlngbounds = new google.maps.LatLngBounds();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            var loc_len = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            update();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            function update() {
 | 
				
			||||||
 | 
					                var data = document.getElementById('data').innerHTML;
 | 
				
			||||||
 | 
					                var locations = JSON.parse(data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                var marker, i;
 | 
				
			||||||
 | 
					                for (i = 0; i < locations.length; i++) {
 | 
				
			||||||
 | 
					                    marker = new google.maps.Marker({
 | 
				
			||||||
 | 
					                        position: new google.maps.LatLng(locations[i][1], locations[i][2]),
 | 
				
			||||||
 | 
					                        map: map
 | 
				
			||||||
 | 
					                    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    google.maps.event.addListener(marker, 'click', (function (marker, i) {
 | 
				
			||||||
 | 
					                        return function () {
 | 
				
			||||||
 | 
					                            infowindow.setContent(locations[i][0]);
 | 
				
			||||||
 | 
					                            infowindow.open(map, marker);
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    })(marker, i));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    latlngbounds.extend(marker.position);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (loc_len !== locations.length) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    map.fitBounds(latlngbounds);
 | 
				
			||||||
 | 
					                    loc_len = locations.length;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    if (loc_len === 0) {
 | 
				
			||||||
 | 
					                        init();
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            function init() {
 | 
				
			||||||
 | 
					                map = new google.maps.Map(document.getElementById('map'), {
 | 
				
			||||||
 | 
					                    zoom: 2,
 | 
				
			||||||
 | 
					                    center: {lat: 0, lng: 0}
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        </script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <%
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if ("off".equals(download)
 | 
				
			||||||
 | 
					                    && "off".equals(delete)) {
 | 
				
			||||||
 | 
					            } else if ("on".equals(download)
 | 
				
			||||||
 | 
					                    && "off".equals(delete)) {
 | 
				
			||||||
 | 
					            } else if ("on".equals(download)
 | 
				
			||||||
 | 
					                    && "on".equals(delete)) {
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        %>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    </body>
 | 
				
			||||||
 | 
					</html>
 | 
				
			||||||
		Reference in New Issue
	
	Block a user