You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xap-commits@incubator.apache.org by mt...@apache.org on 2007/05/01 18:01:26 UTC

svn commit: r534174 - in /incubator/xap/trunk/codebase/src/xap/bridges/google: GoogleLineBridge.js GoogleLinesBridge.js

Author: mturyn
Date: Tue May  1 11:01:25 2007
New Revision: 534174

URL: http://svn.apache.org/viewvc?view=rev&rev=534174
Log:
Implementations for Google lines.

Added:
    incubator/xap/trunk/codebase/src/xap/bridges/google/GoogleLineBridge.js
    incubator/xap/trunk/codebase/src/xap/bridges/google/GoogleLinesBridge.js

Added: incubator/xap/trunk/codebase/src/xap/bridges/google/GoogleLineBridge.js
URL: http://svn.apache.org/viewvc/incubator/xap/trunk/codebase/src/xap/bridges/google/GoogleLineBridge.js?view=auto&rev=534174
==============================================================================
--- incubator/xap/trunk/codebase/src/xap/bridges/google/GoogleLineBridge.js (added)
+++ incubator/xap/trunk/codebase/src/xap/bridges/google/GoogleLineBridge.js Tue May  1 11:01:25 2007
@@ -0,0 +1,142 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+Xap.provide("xap.bridges.google.GoogleLineBridge"); 
+// Auto-added---o.k.?
+Xap.require("xap.session.ClientEvent");
+
+// Auto-added---o.k.?
+// TO_DO--make sure this is superfluous: Xap.require("xap.bridges.google.GoogleInfoWindowBridge");
+
+Xap.require("xap.bridges.google.GoogleBridge"); 
+
+ /**
+ * @fileoverview
+ * 
+ * A bridge class that controls a GMarker peer.
+ */
+
+/**
+ * Creates a xap.bridges.google.GoogleInfoWindowBridge.
+ * 
+ * 
+ * @class xap.bridges.google.GoogleInfoWindowBridge is the bridge between an XML element
+ * representing a google maps marker.
+ * 
+ * @constructor
+ * 
+ * @author bbuffone
+ */
+xap.bridges.google.GoogleLineBridge = function() {
+	xap.bridges.google.GoogleBridge.call( this );
+}
+
+xap.bridges.google.GoogleLineBridge.prototype = new xap.bridges.google.GoogleBridge;
+
+xap.bridges.google.GoogleLineBridge.s_log = xap.log.Logger.getLogger( "xap.bridges.google.GoogleLineBridge" );
+
+xap.bridges.google.GoogleLineBridge.prototype.toString = function() {
+	return "xap.bridges.google.GoogleLineBridge";
+}
+
+/**
+ * Creates the peer component that this bridge controls.
+ */
+xap.bridges.google.GoogleLineBridge.prototype.createPeer = function() {
+	var parent = this.getElement().getParent();
+	var handler = this.getUiContentHandler().getHandlerForElement( parent );
+	var parentPeer = handler.getPeer();
+	
+	if ( parentPeer instanceof GMap2 ) {
+    	try {
+    	    //Parse the value into the lat and long that will be used to 
+    	    //set the center position.   
+    	    var pointsString = this.getElement().getAttribute("points");
+    	    var weight = this.getElement().getAttribute("weight") * 1.0;
+    	    var color = this.getElement().getAttribute("color");
+    	    var opacity = this.getElement().getAttribute("opacity");
+    	    if (opacity == null || opacity == ""){
+    	    	opacity = 1.0;
+    	    }
+    	    var thisPeer = this;   	    
+    	    var points = new Array();
+    	        	      	    
+    	    //lat, lng, lat, lng, lat, lng
+    	    var indexPos = pointsString.indexOf(",");
+    	    while (indexPos != -1){
+    	    	var lat = pointsString.substring(0, indexPos) * 1.0;
+    	    	pointsString = pointsString.substring(indexPos + 1);
+    	    	
+    	    	indexPos = pointsString.indexOf(",");
+    	    	var lng = "";
+    	    	if (indexPos != -1){
+    	    		lng = pointsString.substring(0, indexPos) * 1.0;
+    	    		pointsString = pointsString.substring(indexPos + 1);
+				}else{
+					lng = pointsString * 1.0;
+				}
+				var point = new GLatLng(lat, lng); 
+				points.push(point);
+				
+    	    	indexPos = pointsString.indexOf(",");
+    	    }
+
+    	    var polyLine = new GPolyline(points, color, weight, opacity); 
+     	    
+     	     	    
+    		parentPeer.addOverlay(polyLine);                       
+    		this.setPeer(polyLine);
+        } catch ( e ) {
+        	alert(e);
+    	}
+	} else {
+		xap.bridges.google.GoogleLineBridge.s_log.error("Bogus parent peer:" + parentPeer );
+	}
+}
+
+/**
+ * This method is called whenever an attribut
+ * on the XML element that maps to this bridge class
+ * is changed. DwtControlBridge handles the following attributes:
+ * Attributes not handled here are are passed to the 
+ * superclass attributeSet method.
+ */
+xap.bridges.google.GoogleLineBridge.prototype.attributeSet = function( event ) {
+	var name = event.getName();
+	var value = event.getNewValue();
+    
+	if (name=="latitude"){	 
+	}else if (name=="longitude"){
+	}else if (name=="weight"){
+	}else if (name=="color"){
+	}else if (name=="opacity"){
+	}else{
+		xap.bridges.google.GoogleBridge.prototype.attributeSet.call( this, event );
+	}
+	
+}
+
+/**
+ * Called by the parent to handle the removal of the Xml Element from the parent.
+ * In the case of the marker bridge we will need to remove the maker.
+ */
+xap.bridges.google.GoogleLineBridge.prototype.handleRemoval = function(parent, parentPeer) {
+    //remove the marker.
+    parentPeer.removeOverlay(this.getPeer());
+}

Added: incubator/xap/trunk/codebase/src/xap/bridges/google/GoogleLinesBridge.js
URL: http://svn.apache.org/viewvc/incubator/xap/trunk/codebase/src/xap/bridges/google/GoogleLinesBridge.js?view=auto&rev=534174
==============================================================================
--- incubator/xap/trunk/codebase/src/xap/bridges/google/GoogleLinesBridge.js (added)
+++ incubator/xap/trunk/codebase/src/xap/bridges/google/GoogleLinesBridge.js Tue May  1 11:01:25 2007
@@ -0,0 +1,86 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+ 
+Xap.provide("xap.bridges.google.GoogleLinesBridge"); 
+// Auto-added---o.k.?
+Xap.require("xap.xml.dom.events.StructureChangeEvent");
+
+// Auto-added---o.k.?
+Xap.require("xap.taghandling.AbstractTagImpl");
+
+Xap.require("xap.bridges.google.GoogleBridge"); 
+
+ /**
+ * @fileoverview
+ * 
+ * A bridge class that controls a Google object peer.
+ */
+
+/**
+ * Creates a xap.bridges.google.GoogleLinesBridge.
+ * 
+ * 
+ * @class xap.bridges.google.GoogleLinesBridge is the bridge between an XML element
+ * representing a google object.
+ * 
+ * @constructor
+ * 
+ * @author bbuffone
+ */
+xap.bridges.google.GoogleLinesBridge = function() {
+	xap.taghandling.AbstractTagImpl.call( this );
+}
+
+xap.bridges.google.GoogleLinesBridge.prototype = new xap.bridges.google.GoogleBridge;
+
+xap.bridges.google.GoogleLinesBridge.s_log = xap.log.Logger.getLogger( "xap.bridges.google.GoogleLinesBridge" );
+
+xap.bridges.google.GoogleLinesBridge.prototype.toString = function() {
+	return "xap.bridges.google.GoogleLinesBridge";
+}
+
+xap.bridges.google.GoogleLinesBridge.prototype.createPeer = function() {
+	var parent = this.getElement().getParent();
+	var handler = this.getUiContentHandler().getHandlerForElement( parent );
+	var parentPeer = handler.getPeer();
+	
+	//just set the peer to be the google map.
+	if ( parentPeer instanceof GMap2 ) {         
+    	this.setPeer(parentPeer);
+ 	} else {
+		xap.bridges.google.GoogleLinesBridge.s_log.error("Bogus parent peer:" + parentPeer );
+	}
+}
+
+/**
+ * Subclasses should override this method to handle dynamic removal of children.
+ * Subclasses must either call super.onChildRemoved() or invoke
+ * afterChildRemoved() directly.
+ * @param e The xap.xml.dom.events.StructureChangeEvent
+ */
+xap.bridges.google.GoogleLinesBridge.prototype.onChildRemoved = function( event ) {
+	
+	if ( event.getType() == xap.xml.dom.events.StructureChangeEvent.ELEMENT_NODE ) {    
+	    //get the peer for the client and ask it to handle this.
+        var handler = this.getUiContentHandler().getHandlerForElement(event.getChange());
+        handler.handleRemoval(this.getElement().getParent(), this.getPeer());
+	}
+	
+	xap.bridges.google.GoogleBridge.prototype.onChildRemoved.call( this, event );
+}