
OpenLayers.GreaseOl.Control.GreaseControlDrawFeature=OpenLayers.Class(OpenLayers.Control.DrawFeature,{defaultGreaseOptions:{'execFn':defaultDraw,'ajaxFunction':'updateCoorddisegno','singleGeom':true,'showLoading':true,'resetImages':false,'showLoadingToc':false,'command':'DRAW','cursorClass':null},greaseOptions:null,initialize:function(layer,handler,options){this.greaseOptions=OpenLayers.Util.extend({},this.defaultGreaseOptions);OpenLayers.Control.DrawFeature.prototype.initialize.apply(this,[layer,handler,options]);},setGreaseOptions:function(greaseOptions){this.greaseOptions=OpenLayers.Util.extend({},this.defaultGreaseOptions);this.greaseOptions=OpenLayers.Util.extend(this.greaseOptions,greaseOptions);return true;},drawFeature:function(geometry){if(this.greaseOptions.singleGeom==true){this.resetFeatures();}
OpenLayers.Control.DrawFeature.prototype.drawFeature.apply(this,[geometry]);var geometryType='';var lonlatArray=[];var geoms=[];if(this.greaseOptions.singleGeom==true){if(geometry.CLASS_NAME=='OpenLayers.Geometry.Point'){geometryType=OpenLayers.GreaseOl.Constants.GEOMETRY_TYPE_POINT;lonlatArray.push({lon:geometry.x,lat:geometry.y});}else if(geometry.CLASS_NAME=='OpenLayers.Geometry.LineString'){geometryType=OpenLayers.GreaseOl.Constants.GEOMETRY_TYPE_LINE;for(var i=0;i<geometry.components.length;i++){lonlatArray.push({lon:geometry.components[i].x,lat:geometry.components[i].y});}}else if(geometry.CLASS_NAME=='OpenLayers.Geometry.Polygon'){geometryType=OpenLayers.GreaseOl.Constants.GEOMETRY_TYPE_POLYGON;for(var i=0;i<geometry.components[0].components.length;i++){lonlatArray.push({lon:geometry.components[0].components[i].x,lat:geometry.components[0].components[i].y});}}
geoms.push(lonlatArray);}else{for(var k=0;k<this.layer.features.length;k++){lonlatArray=[];var curGeom=this.layer.features[k].geometry;if(geometry.CLASS_NAME=='OpenLayers.Geometry.Point'){geometryType=OpenLayers.GreaseOl.Constants.GEOMETRY_TYPE_MULTIPOINT;lonlatArray.push({lon:curGeom.x,lat:curGeom.y});}else if(geometry.CLASS_NAME=='OpenLayers.Geometry.LineString'){geometryType=OpenLayers.GreaseOl.Constants.GEOMETRY_TYPE_MULTILINE;for(var i=0;i<curGeom.components.length;i++){lonlatArray.push({lon:curGeom.components[i].x,lat:curGeom.components[i].y});}}else if(geometry.CLASS_NAME=='OpenLayers.Geometry.Polygon'){geometryType=OpenLayers.GreaseOl.Constants.GEOMETRY_TYPE_MULTIPOLYGON;for(var i=0;i<curGeom.components[0].components.length;i++){lonlatArray.push({lon:curGeom.components[0].components[i].x,lat:curGeom.components[0].components[i].y});}}
geoms.push(lonlatArray);}}
this.greaseOptions.execFn(geoms,this.map,this.greaseOptions.ajaxFunction,this.greaseOptions,geometryType);},activate:function(){this.resetFeatures();OpenLayers.Control.DrawFeature.prototype.activate.apply(this,arguments);},deactivate:function(){OpenLayers.Control.DrawFeature.prototype.deactivate.apply(this,arguments);},resetFeatures:function(){this.layer.removeFeatures();this.layer.destroyFeatures();return true;},CLASS_NAME:"OpenLayers.GreaseOl.Control.GreaseControlDrawFeature"});