Author: simoneg
Date: Thu Jan 14 01:48:35 2010
New Revision: 899029

URL: http://svn.apache.org/viewvc?rev=899029&view=rev
Log:
LABS-503 : better support of options as html piece style

Modified:
    
labs/magma/trunk/website-maps-google/src/main/java/org/apache/magma/website/htmlpieces/MapBeanHtmlFormPiece.java
    
labs/magma/trunk/website-maps-google/src/main/java/org/apache/magma/website/htmlpieces/MapBeanHtmlOutputPiece.java
    
labs/magma/trunk/website-maps-google/src/main/resources/org/apache/magma/website/maps/mapDisplay.js
    
labs/magma/trunk/website-maps-google/src/main/resources/org/apache/magma/website/maps/mapEditor.js

Modified: 
labs/magma/trunk/website-maps-google/src/main/java/org/apache/magma/website/htmlpieces/MapBeanHtmlFormPiece.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/website-maps-google/src/main/java/org/apache/magma/website/htmlpieces/MapBeanHtmlFormPiece.java?rev=899029&r1=899028&r2=899029&view=diff
==============================================================================
--- 
labs/magma/trunk/website-maps-google/src/main/java/org/apache/magma/website/htmlpieces/MapBeanHtmlFormPiece.java
 (original)
+++ 
labs/magma/trunk/website-maps-google/src/main/java/org/apache/magma/website/htmlpieces/MapBeanHtmlFormPiece.java
 Thu Jan 14 01:48:35 2010
@@ -3,14 +3,23 @@
 import org.apache.commons.lang.StringEscapeUtils;
 import org.apache.magma.beans.MagMapBean;
 import org.apache.magma.beans.PropertyInfo;
+import org.apache.magma.lateconfig.LateConfigurable;
+import org.apache.magma.lateconfig.LateConfigurationTrigger;
 import org.apache.magma.settings.Settings;
 import org.apache.magma.validation.CompoundValidator;
 import org.apache.magma.validation.Validator;
 import org.apache.magma.validation.validators.MapBeanValidator;
 import org.apache.magma.website.Head;
 
+...@lateconfigurable
 public class MapBeanHtmlFormPiece implements HtmlFormPiece<MagMapBean>, 
PropertyAwareHtmlPiece {
 
+       private String style;
+       
+       @LateConfigurationTrigger
+       public MapBeanHtmlFormPiece() {
+       }
+       
        public String createFormInput(MagMapBean value, String id) {
                StringBuilder ret = new StringBuilder();
                String md = "";
@@ -31,7 +40,10 @@
                return new MapBeanHtmlFormPiece();
        }
        
-       public void setInputStyle(String style) {}      
+       @LateConfigurable
+       public void setInputStyle(String style) {
+               this.style = style;
+       }       
 
        public void formHead(MagMapBean value, String id, Head head) {
                head.addJQuery();
@@ -53,12 +65,21 @@
                                options += "markers:" + 
validator.isPermitMarkers() + ",";
                                options += "routes:" + 
validator.isPermitRoutes() + ",";
                                options += "polygons:" + 
validator.isPermitPolygons() + ",";
-                               options += "autocenter: true,";
-                               options += "defaultcontrols: true";
+                               if (this.style != null) {
+                                       options += this.style;
+                               } else {
+                                       options += "autocenter: true,";
+                                       options += "defaultcontrols: true";
+                               }
+                               options += "}";
+                       } else {
+                               if (this.style != null) {
+                                       options = "{" + this.style + "}";
+                               }
                        }
                }
 
-               head.addRawScript("init-edit-" + id, "var mapeditor" + id + " = 
null; function initedit" + id + "() { mapeditor"+ id + "=new MapEditor('" + id 
+ "edit','" + id + "editlist','" + id + "'" + (options == null ? "" : (",'" + 
options+ "'")) + "); }");
+               head.addRawScript("init-edit-" + id, "var mapeditor" + id + " = 
null; function initedit" + id + "() { mapeditor"+ id + "=new MapEditor('" + id 
+ "edit','" + id + "editlist','" + id + "'" + (options == null ? "" : ("," + 
options)) + "); }");
                head.addDoOnload("initedit" + id);              
        }
 

Modified: 
labs/magma/trunk/website-maps-google/src/main/java/org/apache/magma/website/htmlpieces/MapBeanHtmlOutputPiece.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/website-maps-google/src/main/java/org/apache/magma/website/htmlpieces/MapBeanHtmlOutputPiece.java?rev=899029&r1=899028&r2=899029&view=diff
==============================================================================
--- 
labs/magma/trunk/website-maps-google/src/main/java/org/apache/magma/website/htmlpieces/MapBeanHtmlOutputPiece.java
 (original)
+++ 
labs/magma/trunk/website-maps-google/src/main/java/org/apache/magma/website/htmlpieces/MapBeanHtmlOutputPiece.java
 Thu Jan 14 01:48:35 2010
@@ -1,17 +1,31 @@
 package org.apache.magma.website.htmlpieces;
 
 import org.apache.commons.lang.StringEscapeUtils;
+import org.apache.magma.basics.LocalizableString;
 import org.apache.magma.beans.MagMapBean;
+import org.apache.magma.lateconfig.LateConfigurable;
+import org.apache.magma.lateconfig.LateConfigurationTrigger;
 import org.apache.magma.settings.Settings;
 import org.apache.magma.website.Head;
 
+...@lateconfigurable
 public class MapBeanHtmlOutputPiece implements HtmlOutputPiece<MagMapBean> {
 
+       private String style;
+
+       @LateConfigurationTrigger
+       public MapBeanHtmlOutputPiece() {}
+       
        public HtmlOutputPiece<MagMapBean> createFor(Class<? extends 
MagMapBean> clazz) {
-               return this;
+               return new MapBeanHtmlOutputPiece();
        }
 
-       public void setStyle(String style) {}   
+       @LateConfigurable
+       public void setStyle(String style) {
+               if (style != null) style = style.trim();
+               if (style.length() == 0) return;
+               this.style = style;
+       }       
        
        public boolean outputs(Class<?> clazz) {
                return MagMapBean.class.isAssignableFrom(clazz);
@@ -27,7 +41,26 @@
                val = val.replace('-', '_');
                String md = value.getValue();
                if (md == null) md = "";
-               head.addRawScript("init-" + val, "var " + val + "=null; 
function init" + val + "() { var mm = new MagMap();mm.init('" + val + "','" + 
StringEscapeUtils.escapeJavaScript(md) + "');" + val + "=mm; }");
+               String script = "";
+               script += "var " + val + "=null;";
+               script += "function init" + val + "() {";
+               script += "var mm = new MagMap();";
+               script += "mm.init('" + val + "','";
+               script += StringEscapeUtils.escapeJavaScript(md) + "'";
+               if (style != null) {
+                       if (style.indexOf(':') != -1) {
+                               script += ", {" + style + "}";
+                       } else {
+                               String i18nstr = new 
LocalizableString(this.style).toString();
+                               if (i18nstr != null && 
!i18nstr.equals(this.style)) {
+                                       script += ", {" + i18nstr + "}";
+                               }
+                       }
+               }
+               script += ");";
+               script += val + "=mm;";
+               script += "}";
+               head.addRawScript("init-" + val, script);
                head.addDoOnload("init" + val);
        }
 

Modified: 
labs/magma/trunk/website-maps-google/src/main/resources/org/apache/magma/website/maps/mapDisplay.js
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/website-maps-google/src/main/resources/org/apache/magma/website/maps/mapDisplay.js?rev=899029&r1=899028&r2=899029&view=diff
==============================================================================
--- 
labs/magma/trunk/website-maps-google/src/main/resources/org/apache/magma/website/maps/mapDisplay.js
 (original)
+++ 
labs/magma/trunk/website-maps-google/src/main/resources/org/apache/magma/website/maps/mapDisplay.js
 Thu Jan 14 01:48:35 2010
@@ -28,6 +28,10 @@
                  };
          } else {
                  this.options = options;
+                 if (typeof(this.options.defaultcontrols) == 'undefined') 
this.options.defaultcontrols=true;
+                 if (typeof(this.options.autocenter) == 'undefined') 
this.options.autocenter=true;
+                 if (typeof(this.options.center) == 'undefined') 
this.options.center="0,0";
+                 if (typeof(this.options.zoom) == 'undefined') 
this.options.zoom=2;
          }
        this.createMap();
 }
@@ -114,13 +118,17 @@
                  this.map.setCenter(mapbounds.getCenter(), 
this.map.getBoundsZoomLevel(mapbounds)); 
          } else {
                  var mapcenter = null;
+                 var mapzoom = 2;
                  if (this.options.center) {
                          var ll = this.options.center.split(",");
                          mapcenter = new GLatLng(ll[0], ll[1]);
                  } else {
                          mapcenter = new GLatLng(0,0);
                  }
-                 this.map.setCenter(mapcenter);
+                 if (this.options.zoom) {
+                         mapzoom = this.options.zoom;
+                 }
+                 this.map.setCenter(mapcenter, mapzoom);
          }     
 }
 

Modified: 
labs/magma/trunk/website-maps-google/src/main/resources/org/apache/magma/website/maps/mapEditor.js
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/website-maps-google/src/main/resources/org/apache/magma/website/maps/mapEditor.js?rev=899029&r1=899028&r2=899029&view=diff
==============================================================================
--- 
labs/magma/trunk/website-maps-google/src/main/resources/org/apache/magma/website/maps/mapEditor.js
 (original)
+++ 
labs/magma/trunk/website-maps-google/src/main/resources/org/apache/magma/website/maps/mapEditor.js
 Thu Jan 14 01:48:35 2010
@@ -20,6 +20,15 @@
                  };
          } else {
                  this.options = options;
+                 if (typeof(this.options.defaultcontrols) == 'undefined') 
this.options.defaultcontrols=true;
+                 if (typeof(this.options.autocenter) == 'undefined') 
this.options.autocenter=true;
+                 if (typeof(this.options.center) == 'undefined') 
this.options.center="0,0";
+                 if (typeof(this.options.zoom) == 'undefined') 
this.options.zoom=2;
+
+                 if (typeof(this.options.markers) == 'undefined') 
this.options.markers=true;
+                 if (typeof(this.options.polylines) == 'undefined') 
this.options.polylines=true;
+                 if (typeof(this.options.polygons) == 'undefined') 
this.options.polygons=true;
+                 if (typeof(this.options.routes) == 'undefined') 
this.options.routes=true;
          }
          this.geometries = {};
          this.shared_bounds = null;



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to