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 2009/03/31 22:29:41 UTC
svn commit: r760593 - in /labs/magma/branches/0.0.1:
foundation-maps/src/main/java/org/apache/magma/maps/
maps-google/src/main/java/org/apache/magma/maps/google/
maps-google/src/main/resources/org/apache/magma/website/googlemaps/
website-beansview/src/...
Author: simoneg
Date: Tue Mar 31 20:29:41 2009
New Revision: 760593
URL: http://svn.apache.org/viewvc?rev=760593&view=rev
Log:
LABS-328 : WCAG/Stanca Act fallbacks
Modified:
labs/magma/branches/0.0.1/foundation-maps/src/main/java/org/apache/magma/maps/GeoCoordinates.java
labs/magma/branches/0.0.1/maps-google/src/main/java/org/apache/magma/maps/google/MappedSmartListProducer.java
labs/magma/branches/0.0.1/maps-google/src/main/resources/org/apache/magma/website/googlemaps/magmaGoogleMaps.css
labs/magma/branches/0.0.1/maps-google/src/main/resources/org/apache/magma/website/googlemaps/magmaGoogleMaps.js
labs/magma/branches/0.0.1/website-beansview/src/main/java/org/apache/magma/website/beansview/ShowList.java
Modified: labs/magma/branches/0.0.1/foundation-maps/src/main/java/org/apache/magma/maps/GeoCoordinates.java
URL: http://svn.apache.org/viewvc/labs/magma/branches/0.0.1/foundation-maps/src/main/java/org/apache/magma/maps/GeoCoordinates.java?rev=760593&r1=760592&r2=760593&view=diff
==============================================================================
--- labs/magma/branches/0.0.1/foundation-maps/src/main/java/org/apache/magma/maps/GeoCoordinates.java (original)
+++ labs/magma/branches/0.0.1/foundation-maps/src/main/java/org/apache/magma/maps/GeoCoordinates.java Tue Mar 31 20:29:41 2009
@@ -41,8 +41,15 @@
this.longitude = longitude;
}
+ public String getFormattedLatitude() {
+ return nf.format(latitude);
+ }
+ public String getFormattedLongitude() {
+ return nf.format(longitude);
+ }
+
public String toString() {
- return "[" + nf.format(latitude) + ";" + nf.format(longitude) + "]";
+ return "[" + getFormattedLatitude() + ";" + getFormattedLongitude() + "]";
}
public Accuracy getCoordinatesAccuracy() {
return coordinatesAccuracy;
Modified: labs/magma/branches/0.0.1/maps-google/src/main/java/org/apache/magma/maps/google/MappedSmartListProducer.java
URL: http://svn.apache.org/viewvc/labs/magma/branches/0.0.1/maps-google/src/main/java/org/apache/magma/maps/google/MappedSmartListProducer.java?rev=760593&r1=760592&r2=760593&view=diff
==============================================================================
--- labs/magma/branches/0.0.1/maps-google/src/main/java/org/apache/magma/maps/google/MappedSmartListProducer.java (original)
+++ labs/magma/branches/0.0.1/maps-google/src/main/java/org/apache/magma/maps/google/MappedSmartListProducer.java Tue Mar 31 20:29:41 2009
@@ -3,7 +3,9 @@
import java.io.IOException;
import java.io.OutputStream;
import java.io.Writer;
+import java.util.ArrayList;
import java.util.Collection;
+import java.util.List;
import org.apache.magma.basics.LocalizableString;
import org.apache.magma.beans.MagmaBeanSupport;
@@ -18,9 +20,8 @@
public class MappedSmartListProducer extends SmartListProducer {
private String prototype =
- "<div style=\"display: none\" class=\"MagmaGoogleMapListContainer\">" +
- "<div class=\"MagmaGoogleMapListTab\"><ul>" +
- "</ul></div>" +
+ "<div class=\"MagmaGoogleMapListContainer\">" +
+ "<div class=\"MagmaGoogleMapListTab\"></div>" +
"<div class=\"MagmaGoogleMap\"></div>" +
"<a class=\"MagmaGoogleMapDetailsLink\">" +
new LocalizableString("Details").toString() +
@@ -30,12 +31,38 @@
public <T> MappedSmartListProducer(Class<T> myclass, Collection<? extends T> list) {
super(myclass, list);
}
+
+ private static String[] markerLetters = null;
+
+ static {
+ markerLetters = new String[36];
+ for (int i = 0; i < 9; i++) {
+ markerLetters[i] = Integer.toString(i + 1);
+ }
+ for (int i = 0; i < 26; i++) {
+ markerLetters[i + 9] = Character.toString((char)('a' + i));
+ }
+ }
+
+ private List<String> markers = new ArrayList<String>();
+
+ protected String addMarker(GeoCoordinates coords) {
+ String markerdef = coords.getFormattedLatitude() + "," + coords.getFormattedLongitude();
+ markerdef += ",red";
+ String markchar = "-";
+ if (markers.size() < markerLetters.length) {
+ markchar = markerLetters[markers.size()];
+ markerdef += markchar;
+ }
+ markers.add(markerdef);
+ return markchar;
+ }
@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.addExternalScript("http://maps.google.com/maps?file=api&v=2&sensor=false&key=" + Settings.get("google.maps.key"));
head.addDoOnload("mappize");
super.head(head);
}
@@ -45,13 +72,46 @@
stream.write("<div class=\"MagmaGoogleMapsList\">".getBytes("UTF-8"));
super.produce(stream);
sendPrototype(stream);
+ sendStaticImage(stream);
+ sendCSSDetection(stream);
stream.write("</div>".getBytes("UTF-8"));
}
protected void sendPrototype(OutputStream stream) throws IOException {
stream.write(prototype.getBytes("UTF-8"));
}
+ protected void sendStaticImage(OutputStream stream) throws IOException {
+ String img = "<img src=\"http://maps.google.com/staticmap?";
+ img += "sensor=false";
+ img += "&size=512x512";
+ img += "&key=" + Settings.get("google.maps.key");
+ img += "&markers=";
+ for (String marker : this.markers) {
+ img += marker + "|";
+ }
+ img += "\" alt=\"";
+ img += new LocalizableString("Map").toString();
+ img += "\" class=\"";
+ img += "MagmaGoogleMapsStatic";
+ img += "\" />";
+ stream.write(img.getBytes("UTF-8"));
+ }
+ protected void sendCSSDetection(OutputStream stream) throws IOException {
+ stream.write("<div class=\"MagmaCssDetect\"></div>".getBytes("UTF-8"));
+ }
+
+ @Override
+ protected void closeHeaderRow(Writer tables) throws IOException {
+ tables.write("<th class=\"MagmaList-HeaderCell MagmaGoogleMapsMarker\">");
+ tables.write(new LocalizableString("Marker").toString());
+ tables.write("</th>");
+ tables.write("<th class=\"MagmaList-HeaderCell MagmaGoogleMapsDescription\">");
+ tables.write(new LocalizableString("Description").toString());
+ tables.write("</th>");
+ super.closeHeaderRow(tables);
+ }
+
@Override
protected void closeRow(Object o, Writer tables) throws IOException {
GeoCoordinates coords = null;
@@ -64,13 +124,13 @@
if (o instanceof GeoLocated) {
coords = ((GeoLocated)o).getCoordinates();
}
+ tables.write("<td class=\"MagmaList-Cell MagmaGoogleMapsMarker\">");
if (coords != null && coords.getCoordinatesAccuracy() != GeoCoordinates.Accuracy.UNRESOVED) {
- tables.write("<td class=\"MagmaGoogleMapsCoordsCell\">");
- tables.write(coords.toString());
- tables.write("</td>");
+ tables.write(addMarker(coords));
}
+ tables.write("</td>");
if (o instanceof MagmaBeanSupport) {
- tables.write("<td class=\"MagmaGoogleMapsDescription\">");
+ tables.write("<td class=\"MagmaList-Cell MagmaGoogleMapsDescription\">");
tables.write(((MagmaBeanSupport)o).toUser());
tables.write("</td>");
}
Modified: labs/magma/branches/0.0.1/maps-google/src/main/resources/org/apache/magma/website/googlemaps/magmaGoogleMaps.css
URL: http://svn.apache.org/viewvc/labs/magma/branches/0.0.1/maps-google/src/main/resources/org/apache/magma/website/googlemaps/magmaGoogleMaps.css?rev=760593&r1=760592&r2=760593&view=diff
==============================================================================
--- labs/magma/branches/0.0.1/maps-google/src/main/resources/org/apache/magma/website/googlemaps/magmaGoogleMaps.css (original)
+++ labs/magma/branches/0.0.1/maps-google/src/main/resources/org/apache/magma/website/googlemaps/magmaGoogleMaps.css Tue Mar 31 20:29:41 2009
@@ -46,6 +46,11 @@
font-weight: bold;
}
+.MagmaCssDetect {
+ display: block;
+ width: 120px;
+ height: 0px;
+}
Modified: labs/magma/branches/0.0.1/maps-google/src/main/resources/org/apache/magma/website/googlemaps/magmaGoogleMaps.js
URL: http://svn.apache.org/viewvc/labs/magma/branches/0.0.1/maps-google/src/main/resources/org/apache/magma/website/googlemaps/magmaGoogleMaps.js?rev=760593&r1=760592&r2=760593&view=diff
==============================================================================
--- labs/magma/branches/0.0.1/maps-google/src/main/resources/org/apache/magma/website/googlemaps/magmaGoogleMaps.js (original)
+++ labs/magma/branches/0.0.1/maps-google/src/main/resources/org/apache/magma/website/googlemaps/magmaGoogleMaps.js Tue Mar 31 20:29:41 2009
@@ -1,4 +1,5 @@
function mappize() {
+
$('div.MagmaGoogleMapsList table.MagmaList').each(function() {
goWithMap(this);
});
@@ -18,6 +19,12 @@
}
function goWithMap(mytbl) {
+ var css = $('div.MagmaCssDetect', parent).get(0);
+ if (css.offsetWidth != 120) {
+ return;
+ }
+
+
var width = mytbl.offsetWidth;
var height = (width * 0.50);
@@ -38,6 +45,12 @@
var ndiv = $('div.MagmaGoogleMap', container).get(0);
ndiv.id = mytbl.id + '-map';
+ var stat = $('img.MagmaGoogleMapsStatic', parent).get(0);
+ var statmarkers = stat.src;
+ statmarkers = statmarkers.match(/markers=([^\"\']*)/)[1];
+ statmarkers = statmarkers.split('|');
+ stat.parentNode.removeChild(stat);
+
var a = $('a.MagmaGoogleMapDetailsLink').get(0);
a.style.display="none";
@@ -50,6 +63,7 @@
var headers = [];
var lines = mytbl.getElementsByTagName('tr');
+ var markcount = 0;
for (var j = 0; j < lines.length; j++) {
var line = lines[j];
var data = {text:'', header:''};
@@ -57,11 +71,12 @@
if (cells.length > 0) {
for (var k = 0; k < cells.length; k++) {
var cell = cells[k];
- if (cell.className == 'MagmaGoogleMapsCoordsCell') {
+ if (cell.className.indexOf('MagmaGoogleMapsMarker') != -1) {
var str = cell.childNodes[0].data;
- str = str.replace(';',',');
- data.coords = eval(str);
- } else if (cell.className == 'MagmaGoogleMapsDescription') {
+ if (str && str.length) {
+ data.onmap = true;
+ }
+ } else if (cell.className.indexOf('MagmaGoogleMapsDescription') != -1) {
var str = cell.childNodes[0].data;
data.header = str;
} else {
@@ -70,6 +85,11 @@
data.text += '<b>' + headers[k] + '</b> : ' + stripHtml(cell.innerHTML) + '<br/>';
}
}
+ if (data.onmap) {
+ var coordstr = statmarkers[markcount];
+ markcount++;
+ data.coords = coordstr.split(',');
+ }
a = a.cloneNode(true);
a.style.display="";
a.href = data.link;
@@ -107,7 +127,9 @@
cells = line.getElementsByTagName('th');
for (var k = 0; k < cells.length; k++) {
var cell = cells[k];
- headers[headers.length] = stripHtml(cell.innerHTML);
+ if (cell.className.indexOf('MagmaGoogleMaps') != -1) {
+ headers[headers.length] = stripHtml(cell.innerHTML);
+ }
}
}
}
Modified: labs/magma/branches/0.0.1/website-beansview/src/main/java/org/apache/magma/website/beansview/ShowList.java
URL: http://svn.apache.org/viewvc/labs/magma/branches/0.0.1/website-beansview/src/main/java/org/apache/magma/website/beansview/ShowList.java?rev=760593&r1=760592&r2=760593&view=diff
==============================================================================
--- labs/magma/branches/0.0.1/website-beansview/src/main/java/org/apache/magma/website/beansview/ShowList.java (original)
+++ labs/magma/branches/0.0.1/website-beansview/src/main/java/org/apache/magma/website/beansview/ShowList.java Tue Mar 31 20:29:41 2009
@@ -179,9 +179,18 @@
tables.write("</tr>");
}
- protected void createHeader(Node root, Writer tables) throws IOException {
+ protected void openHeaderRow(Writer tables) throws IOException {
tables.write("<thead>");
tables.write("<tr>");
+ }
+ protected void closeHeaderRow(Writer tables) throws IOException {
+ tables.write("</tr>");
+ tables.write("</thead>");
+ }
+
+
+ protected void createHeader(Node root, Writer tables) throws IOException {
+ openHeaderRow(tables);
List<Node> nodes = root.getUniqueZone().getNodes();
for (Node node : nodes) {
if (node instanceof FieldNode) {
@@ -189,8 +198,7 @@
createFieldNodeHeader(fldn, tables);
}
}
- tables.write("</tr>");
- tables.write("</thead>");
+ closeHeaderRow(tables);
}
protected void createFooter(Node root, Writer tables) throws IOException {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org