You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by si...@apache.org on 2008/12/08 23:37:56 UTC
svn commit: r724528 - in /labs/magma/trunk/maps-google: ./ src/ src/main/
src/main/java/ src/main/java/org/ src/main/java/org/apache/
src/main/java/org/apache/magma/ src/main/java/org/apache/magma/maps/
src/main/java/org/apache/magma/maps/google/ src/m...
Author: simoneg
Date: Mon Dec 8 14:37:55 2008
New Revision: 724528
URL: http://svn.apache.org/viewvc?rev=724528&view=rev
Log:
Initial import.
Added:
labs/magma/trunk/maps-google/pom.xml
labs/magma/trunk/maps-google/src/
labs/magma/trunk/maps-google/src/main/
labs/magma/trunk/maps-google/src/main/java/
labs/magma/trunk/maps-google/src/main/java/org/
labs/magma/trunk/maps-google/src/main/java/org/apache/
labs/magma/trunk/maps-google/src/main/java/org/apache/magma/
labs/magma/trunk/maps-google/src/main/java/org/apache/magma/maps/
labs/magma/trunk/maps-google/src/main/java/org/apache/magma/maps/google/
labs/magma/trunk/maps-google/src/main/java/org/apache/magma/maps/google/AddMapLink.aj
labs/magma/trunk/maps-google/src/main/java/org/apache/magma/maps/google/GoogleMapsResolver.java
labs/magma/trunk/maps-google/src/main/java/org/apache/magma/maps/google/InstallGoogleMapsResolver.aj
labs/magma/trunk/maps-google/src/main/java/org/apache/magma/maps/google/MakeSmartListMapped.aj
labs/magma/trunk/maps-google/src/main/java/org/apache/magma/maps/google/MappedSmartListProducer.java
labs/magma/trunk/maps-google/src/main/java/org/apache/magma/maps/google/UseMappedProducer.aj
labs/magma/trunk/maps-google/src/main/resources/
labs/magma/trunk/maps-google/src/main/resources/org/
labs/magma/trunk/maps-google/src/main/resources/org/apache/
labs/magma/trunk/maps-google/src/main/resources/org/apache/magma/
labs/magma/trunk/maps-google/src/main/resources/org/apache/magma/website/
labs/magma/trunk/maps-google/src/main/resources/org/apache/magma/website/googlemaps/
labs/magma/trunk/maps-google/src/main/resources/org/apache/magma/website/googlemaps/magmaGoogleMaps.css
labs/magma/trunk/maps-google/src/main/resources/org/apache/magma/website/googlemaps/magmaGoogleMaps.js
labs/magma/trunk/maps-google/src/test/
labs/magma/trunk/maps-google/src/test/java/
labs/magma/trunk/maps-google/src/test/java/org/
labs/magma/trunk/maps-google/src/test/java/org/apache/
labs/magma/trunk/maps-google/src/test/java/org/apache/magma/
labs/magma/trunk/maps-google/src/test/java/org/apache/magma/maps/
labs/magma/trunk/maps-google/src/test/java/org/apache/magma/maps/google/
labs/magma/trunk/maps-google/src/test/java/org/apache/magma/maps/google/Address.java
labs/magma/trunk/maps-google/src/test/java/org/apache/magma/maps/google/GoogleResolverTest.java
labs/magma/trunk/maps-google/src/test/resources/
Added: labs/magma/trunk/maps-google/pom.xml
URL: http://svn.apache.org/viewvc/labs/magma/trunk/maps-google/pom.xml?rev=724528&view=auto
==============================================================================
--- labs/magma/trunk/maps-google/pom.xml (added)
+++ labs/magma/trunk/maps-google/pom.xml Mon Dec 8 14:37:55 2008
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <parent>
+ <artifactId>magma-parent</artifactId>
+ <groupId>org.apache.magma</groupId>
+ <version>1</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.magma</groupId>
+ <artifactId>maps-google</artifactId>
+ <name>Magma Google Maps</name>
+ <version>0.0.1-SNAPSHOT</version>
+ <description/>
+ <packaging>magma</packaging>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.magma</groupId>
+ <artifactId>foundation-maps</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.magma</groupId>
+ <artifactId>website-beansview</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.5</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.magma</groupId>
+ <artifactId>website-jquery</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+</project>
\ No newline at end of file
Added: labs/magma/trunk/maps-google/src/main/java/org/apache/magma/maps/google/AddMapLink.aj
URL: http://svn.apache.org/viewvc/labs/magma/trunk/maps-google/src/main/java/org/apache/magma/maps/google/AddMapLink.aj?rev=724528&view=auto
==============================================================================
--- labs/magma/trunk/maps-google/src/main/java/org/apache/magma/maps/google/AddMapLink.aj (added)
+++ labs/magma/trunk/maps-google/src/main/java/org/apache/magma/maps/google/AddMapLink.aj Mon Dec 8 14:37:55 2008
@@ -0,0 +1,28 @@
+package org.apache.magma.maps.google;
+
+import java.io.IOException;
+import java.io.OutputStream;
+
+import org.apache.magma.basics.LocalizableString;
+import org.apache.magma.website.beansview.SmartListProducer;
+
+public aspect AddMapLink {
+
+ public boolean SmartListProducer.mappable = false;
+
+ before(SmartListProducer prod, OutputStream stream) : execution(* SmartListProducer.produce(..)) &&
+ args(stream) && within(SmartListProducer) && this(prod) {
+ try {
+ if (prod instanceof MappedSmartListProducer) {
+ stream.write("<a href=\"useMap-false\">".getBytes("UTF-8"));
+ stream.write(new LocalizableString("Back to normal list").toString().getBytes("UTF-8"));
+ stream.write("</a>".getBytes("UTF-8"));
+ } else if (prod.mappable) {
+ stream.write("<a href=\"useMap-true\">".getBytes("UTF-8"));
+ stream.write(new LocalizableString("Show on map").toString().getBytes("UTF-8"));
+ stream.write("</a>".getBytes("UTF-8"));
+ }
+ } catch (IOException e) {}
+ }
+
+}
Added: labs/magma/trunk/maps-google/src/main/java/org/apache/magma/maps/google/GoogleMapsResolver.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/maps-google/src/main/java/org/apache/magma/maps/google/GoogleMapsResolver.java?rev=724528&view=auto
==============================================================================
--- labs/magma/trunk/maps-google/src/main/java/org/apache/magma/maps/google/GoogleMapsResolver.java (added)
+++ labs/magma/trunk/maps-google/src/main/java/org/apache/magma/maps/google/GoogleMapsResolver.java Mon Dec 8 14:37:55 2008
@@ -0,0 +1,127 @@
+package org.apache.magma.maps.google;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.UnsupportedEncodingException;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.net.URLEncoder;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.magma.maps.GeoCoordinates;
+import org.apache.magma.maps.GeoResolvable;
+import org.apache.magma.maps.GeoResolver;
+import org.apache.magma.maps.GeoCoordinates.Accuracy;
+import org.apache.magma.settings.Settings;
+
+public class GoogleMapsResolver extends GeoResolver {
+
+ private String url = "http://maps.google.com/maps/geo";
+
+ @Override
+ public ResolveResult resolve(GeoResolvable object) {
+ StringBuilder urlwp = new StringBuilder();
+ urlwp.append(url);
+ if (url.indexOf('?') == -1) {
+ urlwp.append('?');
+ } else {
+ urlwp.append('&');
+ }
+ addParameter("sensor", "false", urlwp);
+ addParameter("key", Settings.get("google.maps.key"), urlwp);
+ addParameter("q", object.toAddress(), urlwp);
+ addParameter("output", "csv", urlwp);
+
+ List<String> lines = new ArrayList<String>();
+ String line = null;
+ try {
+ URL gu = new URL(urlwp.toString());
+ URLConnection conn = gu.openConnection();
+ InputStream in = conn.getInputStream();
+ BufferedReader br = new BufferedReader(new InputStreamReader(in));
+ while ((line = br.readLine()) != null) {
+ line = line.trim();
+ if (line.length() > 0) lines.add(line);
+ }
+ br.close();
+ in.close();
+ } catch (MalformedURLException e) {
+ e.printStackTrace();
+ return ResolveResult.ERROR;
+ } catch (IOException e) {
+ e.printStackTrace();
+ return ResolveResult.ERROR;
+ }
+ if (lines.size() == 0) return ResolveResult.UNRESOLVABLE;
+ int bestaccuracy = 0;
+ line = null;
+ for (String acl : lines) {
+ String[] parts = acl.split(",");
+ if (parts.length < 4) return ResolveResult.ERROR;
+ int acacc = Integer.parseInt(parts[1]);
+ if (acacc > bestaccuracy) {
+ line = acl;
+ bestaccuracy = acacc;
+ }
+ }
+ if (line == null) return ResolveResult.UNRESOLVABLE;
+ if (bestaccuracy == 0) return ResolveResult.UNRESOLVABLE;
+ String[] parts = line.split(",");
+ GeoCoordinates coords = new GeoCoordinates();
+ coords.setLatitude(Double.parseDouble(parts[2]));
+ coords.setLongitude(Double.parseDouble(parts[3]));
+ GeoCoordinates.Accuracy accuracy = null;
+ switch (bestaccuracy) {
+ case 0:
+ accuracy = Accuracy.UNRESOVED;
+ break;
+ case 1:
+ accuracy = Accuracy.COUNTRY;
+ break;
+ case 2:
+ accuracy = Accuracy.REGION;
+ break;
+ case 3:
+ accuracy = Accuracy.SUBREGION;
+ break;
+ case 4:
+ accuracy = Accuracy.TOWN;
+ break;
+ case 5:
+ accuracy = Accuracy.QUARTER;
+ break;
+ case 6:
+ accuracy = Accuracy.STREET;
+ break;
+ case 7:
+ accuracy = Accuracy.INTERSECTION;
+ break;
+ case 8:
+ accuracy = Accuracy.ADDRESS;
+ break;
+ case 9:
+ accuracy = Accuracy.BUILDING;
+ break;
+ }
+ coords.setCoordinatesAccuracy(accuracy);
+ object.setCoordinates(coords);
+ return ResolveResult.DONE;
+ }
+
+ protected void addParameter(String name, String value, StringBuilder url) {
+ url.append(name);
+ url.append('=');
+ try {
+ if (value != null) {
+ url.append(URLEncoder.encode(value, "UTF-8"));
+ }
+ } catch (UnsupportedEncodingException e) {
+ }
+ url.append('&');
+ }
+
+}
Added: labs/magma/trunk/maps-google/src/main/java/org/apache/magma/maps/google/InstallGoogleMapsResolver.aj
URL: http://svn.apache.org/viewvc/labs/magma/trunk/maps-google/src/main/java/org/apache/magma/maps/google/InstallGoogleMapsResolver.aj?rev=724528&view=auto
==============================================================================
--- labs/magma/trunk/maps-google/src/main/java/org/apache/magma/maps/google/InstallGoogleMapsResolver.aj (added)
+++ labs/magma/trunk/maps-google/src/main/java/org/apache/magma/maps/google/InstallGoogleMapsResolver.aj Mon Dec 8 14:37:55 2008
@@ -0,0 +1,11 @@
+package org.apache.magma.maps.google;
+
+import org.apache.magma.maps.GeoResolver;
+
+public aspect InstallGoogleMapsResolver {
+
+ GeoResolver around() : call(GeoResolver.new()) {
+ return new GoogleMapsResolver();
+ }
+
+}
Added: labs/magma/trunk/maps-google/src/main/java/org/apache/magma/maps/google/MakeSmartListMapped.aj
URL: http://svn.apache.org/viewvc/labs/magma/trunk/maps-google/src/main/java/org/apache/magma/maps/google/MakeSmartListMapped.aj?rev=724528&view=auto
==============================================================================
--- labs/magma/trunk/maps-google/src/main/java/org/apache/magma/maps/google/MakeSmartListMapped.aj (added)
+++ labs/magma/trunk/maps-google/src/main/java/org/apache/magma/maps/google/MakeSmartListMapped.aj Mon Dec 8 14:37:55 2008
@@ -0,0 +1,44 @@
+package org.apache.magma.maps.google;
+
+import org.apache.magma.maps.GeoAware;
+import org.apache.magma.maps.GeoLocated;
+import org.apache.magma.website.HtmlProducer;
+import org.apache.magma.website.beansview.SmartList;
+
+public privileged aspect MakeSmartListMapped {
+
+ private boolean SmartList.mapped = false;
+ private boolean SmartList.cookieUseMap = false;
+
+ public SmartList SmartList.setMapped(boolean mapped) {
+ this.mapped = mapped;
+ return this;
+ }
+
+ public boolean SmartList.isMapped() {
+ return this.mapped;
+ }
+
+ public void SmartList.setCookieUseMap(Boolean usemap) {
+ this.cookieUseMap = usemap != null ? usemap : false;
+ }
+
+ public Boolean SmartList.getCookieUseMap() {
+ return this.cookieUseMap;
+ }
+
+ public HtmlProducer SmartList.doUseMap(boolean usemap) {
+ this.setCookieUseMap(usemap && this.mapped);
+ return doShow();
+ }
+
+ public boolean SmartList.isMappable() {
+ return GeoAware.class.isAssignableFrom(this.myclass) || GeoLocated.class.isAssignableFrom(this.myclass);
+ }
+
+ public boolean SmartList.shouldMap() {
+ return this.isMappable() && this.mapped && this.cookieUseMap;
+ }
+
+
+}
Added: labs/magma/trunk/maps-google/src/main/java/org/apache/magma/maps/google/MappedSmartListProducer.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/maps-google/src/main/java/org/apache/magma/maps/google/MappedSmartListProducer.java?rev=724528&view=auto
==============================================================================
--- labs/magma/trunk/maps-google/src/main/java/org/apache/magma/maps/google/MappedSmartListProducer.java (added)
+++ labs/magma/trunk/maps-google/src/main/java/org/apache/magma/maps/google/MappedSmartListProducer.java Mon Dec 8 14:37:55 2008
@@ -0,0 +1,79 @@
+package org.apache.magma.maps.google;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.Writer;
+import java.util.Collection;
+
+import org.apache.magma.basics.LocalizableString;
+import org.apache.magma.beans.MagmaBeanSupport;
+import org.apache.magma.maps.GeoAware;
+import org.apache.magma.maps.GeoCoordinates;
+import org.apache.magma.maps.GeoLocated;
+import org.apache.magma.settings.Settings;
+import org.apache.magma.view.tree.ViewUtils;
+import org.apache.magma.website.Head;
+import org.apache.magma.website.beansview.SmartListProducer;
+
+public class MappedSmartListProducer extends SmartListProducer {
+
+ private String prototype =
+ "<div style=\"display: none\" class=\"MagmaGoogleMapListContainer\">" +
+ "<div class=\"MagmaGoogleMapListTab\"><ul>" +
+ "</ul></div>" +
+ "<div class=\"MagmaGoogleMap\"></div>" +
+ "</div>";
+
+ public <T> MappedSmartListProducer(Class<T> myclass, Collection<? extends T> list) {
+ super(myclass, list);
+ }
+
+ @Override
+ public void head(Head head) {
+ head.addCss("magma:/common/googlemaps/magmaGoogleMaps.css");
+ head.addExternalScript("magma:/common/googlemaps/magmaGoogleMaps.js");
+ head.addExternalScript("http://maps.google.com/maps?file=api&v=2&sensor=false&key=" + Settings.get("google.maps.key"));
+ head.addDoOnload("mappize");
+ super.head(head);
+ }
+
+ @Override
+ public void produce(OutputStream stream) {
+ stream.write("<div class=\"MagmaGoogleMapsList\">".getBytes("UTF-8"));
+ super.produce(stream);
+ sendPrototype(stream);
+ stream.write("</div>".getBytes("UTF-8"));
+ }
+
+ protected void sendPrototype(OutputStream stream) throws IOException {
+ stream.write(prototype.getBytes("UTF-8"));
+ }
+
+ @Override
+ protected void closeRow(Object o, Writer tables) throws IOException {
+ GeoCoordinates coords = null;
+ if (o instanceof GeoAware) {
+ GeoLocated loc = ((GeoAware)o).getGeoLocatedObject();
+ if (loc != null) {
+ coords = loc.getCoordinates();
+ }
+ }
+ if (o instanceof GeoLocated) {
+ coords = ((GeoLocated)o).getCoordinates();
+ }
+ if (coords != null && coords.getCoordinatesAccuracy() != GeoCoordinates.Accuracy.UNRESOVED) {
+ tables.write("<td class=\"MagmaGoogleMapsCoordsCell\">");
+ tables.write(coords.toString());
+ tables.write("</td>");
+ }
+ if (o instanceof MagmaBeanSupport) {
+ tables.write("<td class=\"MagmaGoogleMapsDescription\">");
+ tables.write(((MagmaBeanSupport)o).toUser());
+ tables.write("</td>");
+ }
+ super.closeRow(o, tables);
+ }
+
+
+
+}
Added: labs/magma/trunk/maps-google/src/main/java/org/apache/magma/maps/google/UseMappedProducer.aj
URL: http://svn.apache.org/viewvc/labs/magma/trunk/maps-google/src/main/java/org/apache/magma/maps/google/UseMappedProducer.aj?rev=724528&view=auto
==============================================================================
--- labs/magma/trunk/maps-google/src/main/java/org/apache/magma/maps/google/UseMappedProducer.aj (added)
+++ labs/magma/trunk/maps-google/src/main/java/org/apache/magma/maps/google/UseMappedProducer.aj Mon Dec 8 14:37:55 2008
@@ -0,0 +1,23 @@
+package org.apache.magma.maps.google;
+
+import java.util.Collection;
+
+import org.apache.magma.website.beansview.SmartList;
+import org.apache.magma.website.beansview.SmartListProducer;
+
+public aspect UseMappedProducer {
+
+ SmartListProducer around(SmartList list, Class clzz, Collection coll) :
+ call(SmartListProducer.new(Class, Collection))
+ && this(list)
+ && args(clzz, coll) {
+ if (list.shouldMap()) {
+ return new MappedSmartListProducer(clzz, coll);
+ } else {
+ SmartListProducer prod = proceed(list, clzz, coll);
+ prod.mappable = list.isMappable() && list.isMapped();
+ return prod;
+ }
+ }
+
+}
Added: labs/magma/trunk/maps-google/src/main/resources/org/apache/magma/website/googlemaps/magmaGoogleMaps.css
URL: http://svn.apache.org/viewvc/labs/magma/trunk/maps-google/src/main/resources/org/apache/magma/website/googlemaps/magmaGoogleMaps.css?rev=724528&view=auto
==============================================================================
--- labs/magma/trunk/maps-google/src/main/resources/org/apache/magma/website/googlemaps/magmaGoogleMaps.css (added)
+++ labs/magma/trunk/maps-google/src/main/resources/org/apache/magma/website/googlemaps/magmaGoogleMaps.css Mon Dec 8 14:37:55 2008
@@ -0,0 +1,61 @@
+.MagmaGoogleMapListTab {
+ float: left;
+ border: 1px solid gray;
+ border-right: none;
+ width: 19%;
+ height: 100%;
+}
+
+.MagmaGoogleMap {
+ float: left;
+ border: 1px solid black;
+ width: 80%;
+ height: 100%;
+}
+
+.MagmaGoogleMapListTab ul {
+ padding: 0px;
+ margin: 0px;
+}
+
+.MagmaGoogleMapListTab ul li {
+ list-style: none;
+ padding: 5px;
+ border-bottom: 1px dashed gray;
+ float: left;
+ width: 100%;
+}
+
+.MagmaGoogleMapListTab ul li div {
+ float: left;
+ width: 90%;
+}
+
+.MagmaGoogleMapListTab ul li a {
+ display: block;
+ float: right;
+ font-size: 200%;
+ width: 10%;
+}
+
+
+
+li.MappedElement {
+ background-color: white;
+ color: black;
+ cursor: pointer;
+}
+
+li:hover.MappedElement {
+ background-color: #FFFFBB;
+}
+
+li.NotMappedElement {
+ background-color: #EEEEEE;
+}
+
+.MagmaGoogleMap a {
+ display: block;
+ float: right;
+ font-size: 200%;
+}
Added: labs/magma/trunk/maps-google/src/main/resources/org/apache/magma/website/googlemaps/magmaGoogleMaps.js
URL: http://svn.apache.org/viewvc/labs/magma/trunk/maps-google/src/main/resources/org/apache/magma/website/googlemaps/magmaGoogleMaps.js?rev=724528&view=auto
==============================================================================
--- labs/magma/trunk/maps-google/src/main/resources/org/apache/magma/website/googlemaps/magmaGoogleMaps.js (added)
+++ labs/magma/trunk/maps-google/src/main/resources/org/apache/magma/website/googlemaps/magmaGoogleMaps.js Mon Dec 8 14:37:55 2008
@@ -0,0 +1,117 @@
+function mappize() {
+ $('div.MagmaGoogleMapsList table.MagmaList').each(function() {
+ goWithMap(this);
+ });
+}
+
+function createMarker(point,html) {
+ var marker = new GMarker(point);
+ GEvent.addListener(marker, "click", function() {
+ marker.openInfoWindowHtml(html);
+ });
+ return marker;
+}
+
+function goWithMap(mytbl) {
+ var width = mytbl.offsetWidth;
+ var height = (width * 0.50);
+
+ var parent = mytbl.parentNode;
+ var container = $('div.MagmaGoogleMapListContainer', parent).get(0);
+ parent.insertBefore(container, mytbl);
+
+ mytbl.style.display = 'none';
+ container.style.display = 'block';
+ container.style.width = width + 'px';
+ container.style.height = height + 'px';
+
+ var sublist = $('div.MagmaGoogleMapListTab', container).get(0);
+
+ var sublistul = document.createElement('ul');
+ sublist.appendChild(sublistul);
+
+ var ndiv = $('div.MagmaGoogleMap', container).get(0);
+ ndiv.id = mytbl.id + '-map';
+
+ var map = new GMap2(ndiv);
+ map.setCenter(new GLatLng(37,-122), 13);
+ map.addControl(new GLargeMapControl());
+ map.addControl(new GMapTypeControl());
+
+ var bounds = new GLatLngBounds();
+
+ var headers = [];
+ var lines = mytbl.getElementsByTagName('tr');
+ for (var j = 0; j < lines.length; j++) {
+ var line = lines[j];
+ var data = {text:'', header:''};
+ var cells = line.getElementsByTagName('td');
+ if (cells.length > 0) {
+ for (var k = 0; k < cells.length; k++) {
+ var cell = cells[k];
+ if (cell.className == 'MagmaGoogleMapsCoordsCell') {
+ var str = cell.childNodes[0].data;
+ str = str.replace(';',',');
+ data.coords = eval(str);
+ } else if (cell.className == 'MagmaGoogleMapsDescription') {
+ var str = cell.childNodes[0].data;
+ data.header = str;
+ } else {
+ var link = extractLink(cell);
+ data.link = link != null ? link : data.link;
+ data.text += '<b>' + headers[k] + '</b> : ' + stripHtml(cell.innerHTML) + '<br/>';
+ }
+ }
+ if (data.coords && data.coords[0] != 0) {
+ var point = new GLatLng(data.coords[0], data.coords[1]);
+ var html = '<h1>' + data.header + '</h1><div>' + data.text + '</div>';
+ if (data.link && data.link != null && data.link != '') {
+ html += '<a href="' + data.link + '">></a>';
+ }
+ data.marker = createMarker(point, html);
+ map.addOverlay(data.marker);
+ bounds.extend(point);
+ }
+ var li = document.createElement('li');
+ if (data.marker && data.marker != null) {
+ li.className="MappedElement";
+ li.marker = data.marker;
+ data.marker.li = li;
+ jQuery(li).click(function() { this.marker.openInfoWindowHtml(html); return true; });
+ } else {
+ li.className="NotMappedElement";
+ }
+ var div = document.createElement('div');
+ li.appendChild(div);
+ var txt = document.createTextNode(data.header);
+ div.appendChild(txt);
+ if (data.link && data.link != null && data.link != '') {
+ var link = document.createElement('a');
+ link.href = data.link;
+ var lnktxt = document.createTextNode('>');
+ link.appendChild(lnktxt);
+ li.appendChild(link);
+ }
+ sublistul.appendChild(li);
+ } else {
+ cells = line.getElementsByTagName('th');
+ for (var k = 0; k < cells.length; k++) {
+ var cell = cells[k];
+ headers[headers.length] = stripHtml(cell.innerHTML);
+ }
+ }
+ }
+ map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
+}
+
+
+var HtmlStrippingRegExp = /<\/?[^>]+>/gi;
+function stripHtml(str){
+ str = str.replace(HtmlStrippingRegExp,"");
+ return str;
+}
+
+function extractLink(ele) {
+ var aele = $('a',ele).get(0);
+ return aele != null ? aele.href : null;
+}
Added: labs/magma/trunk/maps-google/src/test/java/org/apache/magma/maps/google/Address.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/maps-google/src/test/java/org/apache/magma/maps/google/Address.java?rev=724528&view=auto
==============================================================================
--- labs/magma/trunk/maps-google/src/test/java/org/apache/magma/maps/google/Address.java (added)
+++ labs/magma/trunk/maps-google/src/test/java/org/apache/magma/maps/google/Address.java Mon Dec 8 14:37:55 2008
@@ -0,0 +1,22 @@
+package org.apache.magma.maps.google;
+
+import org.apache.magma.maps.GeoCoordinates;
+import org.apache.magma.maps.GeoResolvable;
+
+public class Address implements GeoResolvable {
+
+ private String address;
+
+ public String toAddress() {
+ return getAddress();
+ }
+
+
+ public String getAddress() {
+ return address;
+ }
+ public void setAddress(String address) {
+ this.address = address;
+ }
+
+}
Added: labs/magma/trunk/maps-google/src/test/java/org/apache/magma/maps/google/GoogleResolverTest.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/maps-google/src/test/java/org/apache/magma/maps/google/GoogleResolverTest.java?rev=724528&view=auto
==============================================================================
--- labs/magma/trunk/maps-google/src/test/java/org/apache/magma/maps/google/GoogleResolverTest.java (added)
+++ labs/magma/trunk/maps-google/src/test/java/org/apache/magma/maps/google/GoogleResolverTest.java Mon Dec 8 14:37:55 2008
@@ -0,0 +1,31 @@
+package org.apache.magma.maps.google;
+
+import static org.hamcrest.CoreMatchers.*;
+import static org.junit.Assert.*;
+import static org.junit.matchers.JUnitMatchers.*;
+
+import org.apache.magma.maps.GeoCoordinates;
+import org.apache.magma.maps.GeoCoordinates.Accuracy;
+import org.apache.magma.maps.GeoResolver.ResolveResult;
+import org.junit.Test;
+
+
+public class GoogleResolverTest {
+
+ @Test
+ public void simpleResolve() throws Exception {
+ GoogleMapsResolver resolver = new GoogleMapsResolver();
+ Address address = new Address();
+ address.setAddress("Via Tiburtina 1238, 00131, Roma, Italia");
+ ResolveResult result = resolver.resolve(address);
+ assertNotNull(result);
+ assertEquals(ResolveResult.DONE, result);
+ GeoCoordinates coords = address.getCoordinates();
+ assertNotNull(coords);
+ assertThat(coords.getCoordinatesAccuracy(),
+ either(equalTo(Accuracy.ADDRESS))
+ .or(equalTo(Accuracy.INTERSECTION))
+ .or(equalTo(Accuracy.BUILDING)));
+ }
+
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org