Pullup r2999:3087 for RC2.

svn merge trunk/openlayers/@2999 trunk/openlayers/@HEAD branches/openlayers/2.4/



git-svn-id: http://svn.openlayers.org/branches/openlayers/2.4@3088 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
crschmidt
2007-04-20 01:10:43 +00:00
parent b6fb16153c
commit b5103eb8ce
58 changed files with 1399 additions and 503 deletions

View File

@@ -27,13 +27,13 @@ OpenLayers.Control.SelectFeature.prototype =
/**
* @type {Function} Optional function to be called when a feature is selected.
* The function should expect to be called with a geometry.
* The function should expect to be called with a feature.
*/
onSelect: function() {},
/**
* @type {Function} Optional function to be called when a feature is unselected.
* The function should expect to be called with a geometry.
* The function should expect to be called with a feature.
*/
onUnselect: function() {},
@@ -45,7 +45,7 @@ OpenLayers.Control.SelectFeature.prototype =
/**
* @type {Object} The functions that are sent to the handler for callback
*/
callbacks: {},
callbacks: null,
/**
* @type {Object} Hash of styles
@@ -76,31 +76,28 @@ OpenLayers.Control.SelectFeature.prototype =
/**
* Called when the feature handler detects a mouse-down on a feature
* @param {OpenLayers.Geometry}
* @param {OpenLayers.Vector.Feature}
*/
downFeature: function(geometry) {
downFeature: function(feature) {
if(this.hover) {
return;
}
if(geometry.parent) {
geometry = geometry.parent;
}
if (this.multiple) {
if(OpenLayers.Util.indexOf(this.layer.selectedFeatures, geometry.feature) > -1) {
this.unselect(geometry);
if(OpenLayers.Util.indexOf(this.layer.selectedFeatures, feature) > -1) {
this.unselect(feature);
} else {
this.select(geometry);
this.select(feature);
}
} else {
if(OpenLayers.Util.indexOf(this.layer.selectedFeatures, geometry.feature) > -1) {
this.unselect(geometry);
if(OpenLayers.Util.indexOf(this.layer.selectedFeatures, feature) > -1) {
this.unselect(feature);
} else {
if (this.layer.selectedFeatures) {
for (var i = 0; i < this.layer.selectedFeatures.length; i++) {
this.unselect(this.layer.selectedFeatures[i].geometry);
this.unselect(this.layer.selectedFeatures[i]);
}
}
this.select(geometry);
this.select(feature);
}
}
},
@@ -108,63 +105,57 @@ OpenLayers.Control.SelectFeature.prototype =
/**
* Called when the feature handler detects a mouse-over on a feature.
* Only responds if this.hover is true.
* @param {OpenLayers.Geometry}
* @param {OpenLayers.Feature.Vector}
*/
overFeature: function(geometry) {
overFeature: function(feature) {
if(!this.hover) {
return;
}
if(geometry.parent) {
geometry = geometry.parent;
}
if(!(OpenLayers.Util.indexOf(this.layer.selectedFeatures, geometry.feature) > -1)) {
this.select(geometry);
if(!(OpenLayers.Util.indexOf(this.layer.selectedFeatures, feature) > -1)) {
this.select(feature);
}
},
/**
* Called when the feature handler detects a mouse-out on a feature.
* Only responds if this.hover is true.
* @param {OpenLayers.Geometry}
* @param {OpenLayers.Feature.Vector}
*/
outFeature: function(geometry) {
outFeature: function(feature) {
if(!this.hover) {
return;
}
if(geometry.parent) {
geometry = geometry.parent;
}
this.unselect(geometry);
this.unselect(feature);
},
/**
* Add feature to the layer's selectedFeature array, render the feature as
* selected, and call the onSelect function.
* @param {OpenLayers.Geometry} geometry
* @param {OpenLayers.Feature.Vector} feature
*/
select: function(geometry) {
select: function(feature) {
// Store feature style for restoration later
if(geometry.feature.originalStyle == null) {
geometry.feature.originalStyle = geometry.feature.style;
if(feature.originalStyle == null) {
feature.originalStyle = feature.style;
}
this.layer.selectedFeatures.push(geometry.feature);
this.layer.renderer.drawGeometry(geometry, this.selectStyle);
this.onSelect(geometry);
this.layer.selectedFeatures.push(feature);
this.layer.drawFeature(feature, this.selectStyle);
this.onSelect(feature);
},
/**
* Remove feature from the layer's selectedFeature array, render the feature as
* normal, and call the onUnselect function.
* @param {OpenLayers.Geometry} geometry
* @param {OpenLayers.Feature.Vector} feature
*/
unselect: function(geometry) {
unselect: function(feature) {
// Store feature style for restoration later
if(geometry.feature.originalStyle == null) {
geometry.feature.originalStyle = geometry.feature.style;
if(feature.originalStyle == null) {
feature.originalStyle = feature.style;
}
this.layer.renderer.drawGeometry(geometry, geometry.feature.originalStyle);
OpenLayers.Util.removeItem(this.layer.selectedFeatures, geometry.feature);
this.onUnselect(geometry);
this.layer.drawFeature(feature, feature.originalStyle);
OpenLayers.Util.removeItem(this.layer.selectedFeatures, feature);
this.onUnselect(feature);
},
/** Set the map property for the control.