1 package com.lamatek.servlets.google; 2 3 import java.io.IOException ; 4 5 import javax.servlet.ServletException ; 6 import javax.servlet.ServletRequest ; 7 import javax.servlet.http.HttpServlet ; 8 import javax.servlet.http.HttpServletRequest ; 9 import javax.servlet.http.HttpServletResponse ; 10 11 import com.lamatek.tags.google.GoogleMapEventHandler; 12 import com.lamatek.tags.google.GoogleMapTag; 13 14 39 public class DefaultEventListenerServlet extends HttpServlet implements GoogleMapEventHandler { 40 41 53 public void doGet(HttpServletRequest request, HttpServletResponse response) 54 throws ServletException , IOException { 55 String event = request.getParameter("event"); 56 if (event != null) { 57 String mapName = request.getParameter("map"); 58 if (mapName != null) { 59 Object o = null; 60 o = request.getSession().getAttribute(mapName); 61 if (o != null) { 62 GoogleMapTag map = (GoogleMapTag) o; 63 if (event.equals("click")) { 64 if (request.getParameter("component") == null) { 65 double latitude = -181.0d; 66 double longitude = -181.0d; 67 try { 68 latitude = Double.parseDouble(request.getParameter("latitude")); 69 longitude = Double.parseDouble(request.getParameter("longitude")); 70 } 71 catch(Exception ex) { 72 73 } 74 if ((longitude > -181.0 && latitude > -181)) 75 processClickEvent(map, longitude, latitude); 76 } 77 else { 78 processOverlayClickEvent(map, request.getParameter("component"), request.getParameter("type")); 79 } 80 } 81 else if (event.equals("dblclick")) { 82 if (request.getParameter("component") == null) { 83 double latitude = -181.0d; 84 double longitude = -181.0d; 85 try { 86 latitude = Double.parseDouble(request.getParameter("latitude")); 87 longitude = Double.parseDouble(request.getParameter("longitude")); 88 } 89 catch(Exception ex) { 90 91 } 92 if ((longitude > -181.0 && latitude > -181)) 93 processDoubleClickEvent(map, longitude, latitude); 94 } 95 else { 96 processOverlayDoubleClickEvent(map, request.getParameter("component"), request.getParameter("type")); 97 } 98 } 99 else if (event.equals("zoom")) { 100 int zoom = -1; 101 try { 102 zoom = Integer.parseInt(request.getParameter("zoom")); 103 } 104 catch(Exception ex) { 105 106 } 107 if (zoom >= 0) 108 processZoomEvent(map, zoom); 109 } 110 else if (event.equals("moveend")) { 111 double latitude = -181.0d; 112 double longitude = -181.0d; 113 try { 114 latitude = Double.parseDouble(request.getParameter("latitude")); 115 longitude = Double.parseDouble(request.getParameter("longitude")); 116 } 117 catch(Exception ex) { 118 119 } 120 if ((longitude > -181.0 && latitude > -181)) 121 processMoveEndEvent(map, longitude, latitude); 122 } 123 else if (event.equals("maptypechanged")) { 124 String type = request.getParameter("type"); 125 if (type != null) 126 processMapTypeChangedEvent(map, type); 127 } 128 process(map, request); 129 } 130 else { 131 System.out.println("Unable to load map named " + mapName); 132 } 133 } 134 else { 135 System.out.println("Unable to locate target map name."); 136 } 137 } 138 else { 139 System.out.println("No event found to process."); 140 } 141 } 142 152 public void process(GoogleMapTag map, ServletRequest request) { 153 154 } 155 166 public void processOverlayClickEvent(GoogleMapTag map, String id, String type) { 167 168 } 169 180 public void processClickEvent(GoogleMapTag map, double longitude, double latitude) { 181 182 } 183 194 public void processOverlayDoubleClickEvent(GoogleMapTag map, String id, String type) { 195 196 } 197 208 public void processDoubleClickEvent(GoogleMapTag map, double longitude, double latitude) { 209 210 } 211 221 public void processZoomEvent(GoogleMapTag map, int zoom) { 222 map.setZoom(zoom); 223 } 224 235 public void processMoveEndEvent(GoogleMapTag map, double longitude, double latitude) { 236 map.setCenterLatitude(latitude); 237 map.setCenterLongitude(longitude); 238 } 239 249 public void processMapTypeChangedEvent(GoogleMapTag map, String type) { 250 map.setType(type); 251 } 252 } 253 | Popular Tags |