Ticket #628: partial.patch
| File partial.patch, 8.5 kB (added by tschaub, 1 year ago) |
|---|
-
examples/wfs-scribble.html
old new 35 35 df.featureAdded = function(feature) { 36 36 feature.state = OpenLayers.State.INSERT; 37 37 feature.style['strokeColor'] = "#ff0000"; 38 feature.layer. renderer.drawGeometry(feature.geometry, feature.style);38 feature.layer.drawFeature(feature); 39 39 } 40 40 p.addControls([ new OpenLayers.Control.Navigation(), df ]); 41 41 … … 47 47 for(var i = 0; i < map.layers[1].features.length; i++) { 48 48 var f = map.layers[1].features[i]; 49 49 f.style['strokeColor'] = '#ee9900'; 50 map.layers[1]. renderer.drawGeometry(f.geometry, f.style);50 map.layers[1].drawFeature(f); 51 51 } 52 52 map.layers[1].commit(); 53 53 return false; -
examples/wfs-t.html
old new 27 27 featureNS: 'http://www.openplans.org/topp', 28 28 extractAttributes: false 29 29 } ); 30 rlayer.onFeatureInsert=function(feature) { feature.style.strokeColor = "#ff0000"; feature.layer. renderer.drawGeometry(feature.geometry, feature.style); }30 rlayer.onFeatureInsert=function(feature) { feature.style.strokeColor = "#ff0000"; feature.layer.drawFeature(feature); } 31 31 map.addLayer(rlayer); 32 32 layer = new OpenLayers.Layer.WFS( "Cities", 33 33 "http://dev.openlayers.org/geoserver/wfs", {typename: 'topp:tasmania_cities'}, … … 44 44 df.featureAdded = function(feature) { 45 45 feature.state = OpenLayers.State.INSERT; 46 46 feature.style['strokeColor'] = "#0000ff"; 47 feature.layer. renderer.drawGeometry(feature.geometry, feature.style);47 feature.layer.drawFeature(feature); 48 48 } 49 49 dp = new OpenLayers.Control.DrawFeature(layer, OpenLayers.Handler.Point, {handlerOptions: {'freehand': false}, 'displayClass': 'olControlDrawFeaturePoint'}); 50 50 dp.featureAdded = function(feature) { … … 53 53 feature.geometry = new OpenLayers.Geometry.MultiPoint(oldgeom); 54 54 feature.state = OpenLayers.State.INSERT; 55 55 feature.style['strokeColor'] = "#0000ff"; 56 feature.layer. renderer.drawGeometry(feature.geometry, feature.style);56 feature.layer.drawFeature(feature); 57 57 } 58 58 p.addControls([ new OpenLayers.Control.Navigation(), df, dp ]); 59 59 -
lib/OpenLayers/Control/SelectFeature.js
old new 143 143 * @param {OpenLayers.Geometry} geometry 144 144 */ 145 145 select: function(geometry) { 146 var feature = geometry.feature; 146 147 // Store feature style for restoration later 147 if( geometry.feature.originalStyle == null) {148 geometry.feature.originalStyle = geometry.feature.style;148 if(feature.originalStyle == null) { 149 feature.originalStyle = feature.style; 149 150 } 150 this.layer.selectedFeatures.push( geometry.feature);151 this.layer. renderer.drawGeometry(geometry, this.selectStyle);151 this.layer.selectedFeatures.push(feature); 152 this.layer.drawFeature(feature, this.selectStyle); 152 153 this.onSelect(geometry); 153 154 }, 154 155 … … 158 159 * @param {OpenLayers.Geometry} geometry 159 160 */ 160 161 unselect: function(geometry) { 162 var feature = geometry.feature; 161 163 // Store feature style for restoration later 162 if( geometry.feature.originalStyle == null) {163 geometry.feature.originalStyle = geometry.feature.style;164 if(feature.originalStyle == null) { 165 feature.originalStyle = feature.style; 164 166 } 165 this.layer. renderer.drawGeometry(geometry, geometry.feature.originalStyle);166 OpenLayers.Util.removeItem(this.layer.selectedFeatures, geometry.feature);167 this.layer.drawFeature(feature, feature.originalStyle); 168 OpenLayers.Util.removeItem(this.layer.selectedFeatures, feature); 167 169 this.onUnselect(geometry); 168 170 }, 169 171 -
lib/OpenLayers/Layer/Vector.js
old new 28 28 selectedFeatures: [], 29 29 30 30 /** @type {Boolean} */ 31 editing: false,32 33 /** @type {Boolean} */34 editable: false,35 36 /** @type {Boolean} */37 31 reportError: true, 38 32 39 33 /** @type {Object} */ … … 75 69 * Options renderer {Object}: Typically SVGRenderer or VMLRenderer. 76 70 */ 77 71 initialize: function(name, options) { 72 this.style = OpenLayers.Util.extend({}, OpenLayers.Feature.Vector.style['default']); 78 73 OpenLayers.Layer.prototype.initialize.apply(this, arguments); 79 74 80 75 // allow user-set renderer, otherwise assign one … … 102 97 // calling feature[i].destroy() here. 103 98 this.features = null; 104 99 this.selectedFeatures = null; 105 this.editing = null;106 this.editable = null;107 100 if (this.renderer) { 108 101 this.renderer.destroy(); 109 102 } … … 199 192 this.drawn = true; 200 193 for(var i = 0; i < this.features.length; i++) { 201 194 var feature = this.features[i]; 202 this. renderer.drawGeometry(feature.geometry, feature.style);195 this.drawFeature(feature); 203 196 } 204 197 } 205 198 }, … … 228 221 feature.layer = this; 229 222 230 223 if (!feature.style) { 231 if (this.style) { 232 feature.style = OpenLayers.Util.extend({}, this.style); 233 } else { 234 feature.style = OpenLayers.Util.extend({}, OpenLayers.Feature.Vector.style['default']); 235 } 224 feature.style = OpenLayers.Util.extend({}, this.style); 236 225 } 237 226 238 227 this.preFeatureInsert(feature); 239 228 240 229 if (this.drawn) { 241 this. renderer.drawGeometry(feature.geometry, feature.style);230 this.drawFeature(feature); 242 231 } 243 232 244 233 this.onFeatureInsert(feature); … … 271 260 }, 272 261 273 262 /** 274 * @param {String} fid 263 * Draw (or redraw) a feature on the layer. If the optional style argument 264 * is included, this style will be used. If no style is included, the 265 * feature's style will be used. If the feature doesn't have a style, 266 * the layer's style will be used. 267 * 268 * @param {OpenLayers.Feature.Vector} feature 275 269 * @param {Object} style 276 270 */ 277 redrawFeature: function(fid, style) { 278 for (var i = 0; i < this.features.length; i++) { 279 var feature = this.features[i]; 280 if (feature.fid == fid) { 281 this.renderer.drawGeometry(feature.geometry, style); 271 drawFeature: function(feature, style) { 272 if(style == null) { 273 if(feature.style) { 274 style = feature.style; 275 } else { 276 style = this.style; 282 277 } 283 278 } 279 this.renderer.drawGeometry(feature.geometry, style); 284 280 }, 285 281 286 282 /** … … 297 293 }, 298 294 299 295 /** 300 * Stop editing the layer301 *302 * @return Whether or not the layer *was* editing303 * HACK HACK This return value seems wierd to me.304 * @type Boolean305 */306 lock: function() {307 if(this.editing) {308 this.editing = false;309 }310 return this.editing;311 },312 313 /**314 296 * Unselect the selected features 315 297 * i.e. clears the featureSelection array 316 298 * change the style back … … 319 301 var vectorLayer = this.map.vectorLayer; 320 302 for (var i = 0; i < this.map.featureSelection.length; i++) { 321 303 var featureSelection = this.map.featureSelection[i]; 322 vectorLayer.renderer.drawGeometry(featureSelection.geometry, 323 vectorLayer.style); 304 vectorLayer.drawFeature(featureSelection, vectorLayer.style); 324 305 } 325 306 this.map.featureSelection = []; 326 307 },
