You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by sm...@apache.org on 2006/10/31 07:28:51 UTC
svn commit: r469389 - in /portals/jetspeed-2/trunk/applications:
demo/src/webapp/WEB-INF/ demo/src/webapp/WEB-INF/other/googlemaps/
gems/src/java/org/apache/portals/gems/googlemaps/
Author: smilek
Date: Mon Oct 30 22:28:50 2006
New Revision: 469389
URL: http://svn.apache.org/viewvc?view=rev&rev=469389
Log:
google maps portlet updated with edit mode for setting Google Maps API key, Location and Map Height; also revised to express dojo dependencies using newly improved management of html <head> content via HeaderResource and HeaderAggregatorImpl
Modified:
portals/jetspeed-2/trunk/applications/demo/src/webapp/WEB-INF/other/googlemaps/EditGoogleMaps.vm
portals/jetspeed-2/trunk/applications/demo/src/webapp/WEB-INF/other/googlemaps/GoogleMaps.vm
portals/jetspeed-2/trunk/applications/demo/src/webapp/WEB-INF/portlet.xml
portals/jetspeed-2/trunk/applications/gems/src/java/org/apache/portals/gems/googlemaps/GoogleMapsPortlet.java
Modified: portals/jetspeed-2/trunk/applications/demo/src/webapp/WEB-INF/other/googlemaps/EditGoogleMaps.vm
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/applications/demo/src/webapp/WEB-INF/other/googlemaps/EditGoogleMaps.vm?view=diff&rev=469389&r1=469388&r2=469389
==============================================================================
--- portals/jetspeed-2/trunk/applications/demo/src/webapp/WEB-INF/other/googlemaps/EditGoogleMaps.vm (original)
+++ portals/jetspeed-2/trunk/applications/demo/src/webapp/WEB-INF/other/googlemaps/EditGoogleMaps.vm Mon Oct 30 22:28:50 2006
@@ -1,8 +1,18 @@
<div id="EditGoogleMaps" class="portlet-section-text">
<form name="googlemapsform" action="$renderResponse.createActionURL()" method="post" >
-
- Enter Location:<input type="text" name="location" value="$renderRequest.getPreferences().getValue('Location','')" />
- <input type="submit" value="submit" name="LocationSubmit" />
+ <table border="0" cellspacing="3" cellpadding="3">
+ <tr>
+ <td>Location</td><td><input type="text" name="location" value="$renderRequest.getPreferences().getValue('Location','')" /></td>
+ </tr>
+ <tr>
+ <td>Map Height</td><td><input type="text" name="mapheight" value="$renderRequest.getPreferences().getValue('MapHeight','')" /></td>
+ </tr>
+ <tr>
+ <td>Google Maps API Key</td><td><input type="text" name="apikey" size="40" value="$renderRequest.getPreferences().getValue('APIKey','')" /><div style="padding-top: 6px; font-size: x-small;"><a target="_new" href="http://www.google.com/apis/maps/">Sign up for a Google Maps API key</a></div></td>
+ </tr>
+ <tr><td></td><td><div style="padding-top: 10px"><button dojoType="Button" onClick="document.forms['googlemapsform'].submit()" >Submit Changes</button></div></td>
+ </tr>
+ </table>
</form>
</div>
Modified: portals/jetspeed-2/trunk/applications/demo/src/webapp/WEB-INF/other/googlemaps/GoogleMaps.vm
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/applications/demo/src/webapp/WEB-INF/other/googlemaps/GoogleMaps.vm?view=diff&rev=469389&r1=469388&r2=469389
==============================================================================
--- portals/jetspeed-2/trunk/applications/demo/src/webapp/WEB-INF/other/googlemaps/GoogleMaps.vm (original)
+++ portals/jetspeed-2/trunk/applications/demo/src/webapp/WEB-INF/other/googlemaps/GoogleMaps.vm Mon Oct 30 22:28:50 2006
@@ -1,18 +1,43 @@
+
<script language="JavaScript" type="text/javascript">
- loc = escape("$renderRequest.getPreferences().getValue('Location','')");
- dojo.io.bind({
- url: "$renderRequest.getScheme():\/\/$renderRequest.getServerName():$renderRequest.getServerPort()$renderRequest.getContextPath()\/yahoogeocode?location=" + loc,
- mimetype: "text/xml",
- error: function(type, error){
- top.alert("error");
- },
- load: function(type, data, event) {
- lat = data.getElementsByTagName("Latitude").item(0).firstChild.nodeValue;
- lng = data.getElementsByTagName("Longitude").item(0).firstChild.nodeValue;
- //alert ("ll: " + lat + "," + lng);
- mapit(lat,lng);
- }
- });
+ function portletGoogleMapsLoadMap()
+ {
+ var loc = escape("$renderRequest.getPreferences().getValue('Location','')");
+ var getLatitudeLongitudeUrl = "$renderRequest.getScheme():\/\/$renderRequest.getServerName():$renderRequest.getServerPort()$renderRequest.getContextPath()\/yahoogeocode?location=" + loc ;
+ dojo.io.bind({
+ url: getLatitudeLongitudeUrl,
+ mimetype: "text/xml",
+ error: function(type, error){
+ dojo.raise( "request failed for yahoo latitude-longitude type=" + type + " error=" + error );
+ },
+ load: function( type, data, evt )
+ {
+ lat = data.getElementsByTagName("Latitude").item(0).firstChild.nodeValue;
+ lng = data.getElementsByTagName("Longitude").item(0).firstChild.nodeValue;
+ //alert ("ll: " + lat + "," + lng);
+ mapit(lat,lng);
+ }
+ });
+ }
+ function portletGoogleMapsLoadApi()
+ {
+ var googleMapsApiJSUrl = "http://maps.google.com/maps?file=api&v=2&key=$renderRequest.getPreferences().getValue('APIKey','')" ;
+ dojo.io.bind({
+ url: googleMapsApiJSUrl,
+ mimetype: "text/javascript",
+ transport: "ScriptSrcTransport",
+ error: function(type, error){
+ alert( "here-error" );
+ dojo.raise( "request failed for google maps api type=" + type + " error=" + error );
+ },
+ load: function( type, data, evt )
+ {
+ alert( "here-success" );
+ portletGoogleMapsLoadMap();
+ }
+ });
+ }
+ dojo.addOnLoad( portletGoogleMapsLoadMap ) ;
</script>
<script language="JavaScript" type="text/javascript">
function mapit(la, ln) {
@@ -22,6 +47,5 @@
map.setCenter(new GLatLng(la, ln), 13);
}
</script>
-<div id="map" style="width: 100%; height: 100%"></div>
-
+<div id="map" style="width: 100%; height: $renderRequest.getPreferences().getValue('MapHeight','400px')"></div>
Modified: portals/jetspeed-2/trunk/applications/demo/src/webapp/WEB-INF/portlet.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/applications/demo/src/webapp/WEB-INF/portlet.xml?view=diff&rev=469389&r1=469388&r2=469389
==============================================================================
--- portals/jetspeed-2/trunk/applications/demo/src/webapp/WEB-INF/portlet.xml (original)
+++ portals/jetspeed-2/trunk/applications/demo/src/webapp/WEB-INF/portlet.xml Mon Oct 30 22:28:50 2006
@@ -796,33 +796,45 @@
</portlet>
<portlet id="GoogleMapsPortlet">
- <init-param>
- <name>ViewPage</name>
- <value>/WEB-INF/other/googlemaps/GoogleMaps.vm</value>
- </init-param>
- <init-param>
- <name>EditPage</name>
- <value>/WEB-INF/other/googlemaps/EditGoogleMaps.vm</value>
- </init-param>
- <portlet-name>GoogleMapsPortlet</portlet-name>
- <display-name>Google Maps Portlet</display-name>
- <portlet-class>org.apache.portals.gems.googlemaps.GoogleMapsPortlet</portlet-class>
- <expiration-cache>-1</expiration-cache>
- <supports>
- <mime-type>text/html</mime-type>
- <portlet-mode>VIEW</portlet-mode>
- <portlet-mode>EDIT</portlet-mode>
- </supports>
- <supported-locale>en</supported-locale>
- <portlet-info>
- <title>Google Map</title>
- </portlet-info>
- <portlet-preferences>
- <preference>
- <name>Location</name>
- <value>denver, co</value>
- </preference>
- </portlet-preferences>
+ <init-param>
+ <name>ViewPage</name>
+ <value>/WEB-INF/other/googlemaps/GoogleMaps.vm</value>
+ </init-param>
+ <init-param>
+ <name>EditPage</name>
+ <value>/WEB-INF/other/googlemaps/EditGoogleMaps.vm</value>
+ </init-param>
+ <portlet-name>GoogleMapsPortlet</portlet-name>
+ <display-name>Google Maps Portlet</display-name>
+ <portlet-class>org.apache.portals.gems.googlemaps.GoogleMapsPortlet</portlet-class>
+ <expiration-cache>-1</expiration-cache>
+ <supports>
+ <mime-type>text/html</mime-type>
+ <portlet-mode>VIEW</portlet-mode>
+ <portlet-mode>EDIT</portlet-mode>
+ </supports>
+ <supported-locale>en</supported-locale>
+ <portlet-info>
+ <title>Google Map</title>
+ </portlet-info>
+ <portlet-preferences>
+ <preference>
+ <name>Location</name>
+ <value>San Francisco, CA</value>
+ </preference>
+ </portlet-preferences>
+ <portlet-preferences>
+ <preference>
+ <name>MapHeight</name>
+ <value>400px</value>
+ </preference>
+ </portlet-preferences>
+ <portlet-preferences>
+ <preference>
+ <name>APIKey</name>
+ <value>ABQIAAAAisHr-hr7f_yfo_m3teTC5RQXGaCFRGWXJQavRKQcb1Ew_fwkKRQ26QnpXVIkxSMwwTECWDV23ZDaLQ</value>
+ </preference>
+ </portlet-preferences>
</portlet>
<portlet id="weather">
Modified: portals/jetspeed-2/trunk/applications/gems/src/java/org/apache/portals/gems/googlemaps/GoogleMapsPortlet.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/applications/gems/src/java/org/apache/portals/gems/googlemaps/GoogleMapsPortlet.java?view=diff&rev=469389&r1=469388&r2=469389
==============================================================================
--- portals/jetspeed-2/trunk/applications/gems/src/java/org/apache/portals/gems/googlemaps/GoogleMapsPortlet.java (original)
+++ portals/jetspeed-2/trunk/applications/gems/src/java/org/apache/portals/gems/googlemaps/GoogleMapsPortlet.java Mon Oct 30 22:28:50 2006
@@ -25,6 +25,7 @@
import javax.portlet.PortletException;
import javax.portlet.PortletPreferences;
+import org.apache.jetspeed.headerresource.HeaderResource;
import org.apache.jetspeed.portlet.PortletHeaderRequest;
import org.apache.jetspeed.portlet.PortletHeaderResponse;
import org.apache.portals.gems.dojo.AbstractDojoVelocityPortlet;
@@ -54,10 +55,17 @@
public void processAction(ActionRequest request, ActionResponse actionResponse)
throws PortletException, IOException
{
- String location = request.getParameter("location");
- PortletPreferences preferences = request.getPreferences();
- preferences.setValue("Location",location);
- preferences.store();
+ String location = request.getParameter( "location" );
+ String mapHeight = request.getParameter( "mapheight" );
+ String apiKey = request.getParameter( "apikey" );
+ PortletPreferences preferences = request.getPreferences();
+ if ( location != null )
+ preferences.setValue( "Location", location );
+ if ( mapHeight != null )
+ preferences.setValue( "MapHeight", mapHeight );
+ if ( apiKey != null )
+ preferences.setValue( "APIKey", apiKey );
+ preferences.store();
}
public void doHeader(PortletHeaderRequest request, PortletHeaderResponse response)
@@ -66,27 +74,25 @@
StringBuffer headerInfoText = new StringBuffer();
Map headerInfoMap = null;
- // close DOJO if not already in use as desktop
- if (!request.isDesktopEncoder())
- {
- // complete DoJo includes
- headerInfoText.setLength(0);
- headerInfoMap = new HashMap(8);
- headerInfoMap.put("language", "JavaScript");
- headerInfoMap.put("src", "http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAisHr-hr7f_yfo_m3teTC5RQXGaCFRGWXJQavRKQcb1Ew_fwkKRQ26QnpXVIkxSMwwTECWDV23ZDaLQ");
- headerInfoMap.put("type", "text/javascript");
- response.getHeaderResource().addHeaderInfo("script", headerInfoMap, headerInfoText.toString());
- }
+ // add google maps api script tag
+ headerInfoText.setLength(0);
+ headerInfoMap = new HashMap(8);
+ headerInfoMap.put("language", "JavaScript");
+ headerInfoMap.put("src", "http://maps.google.com/maps?file=api&v=2&key=" + request.getPreferences().getValue("APIKey","") );
+ headerInfoMap.put("type", "text/javascript");
+ response.getHeaderResource().addHeaderInfo("script", headerInfoMap, headerInfoText.toString());
+
super.doHeader(request, response);
}
- protected void includeDojoRequires(StringBuffer headerInfoText)
+ protected void includeHeaderContent( HeaderResource headerResource )
{
- appendHeaderText(headerInfoText, "dojo.lang.*");
- appendHeaderText(headerInfoText, "dojo.event.*");
- appendHeaderText(headerInfoText, "dojo.io.*");
- }
-
+ headerResource.dojoAddCoreLibraryRequire( "dojo.lang.*" );
+ headerResource.dojoAddCoreLibraryRequire( "dojo.event.*" );
+ headerResource.dojoAddCoreLibraryRequire( "dojo.io.*" );
+ headerResource.dojoAddCoreLibraryRequire( "dojo.widget.*" );
+ headerResource.dojoAddCoreLibraryRequire( "dojo.widget.Button" );
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org