OpenLayers OpenLayers

Changeset 1929

Show
Ignore:
Timestamp:
11/19/06 17:01:51 (2 years ago)
Author:
bertil
Message:

editing Attributes first test

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • sandbox/vector/examples/vector.html

    r1892 r1929  
    1717        function init() { 
    1818            //console.log(OpenLayers.Event); 
    19  
     19            var info = new OpenLayers.Control.EditingAttributes(); 
     20             
    2021            var toolbar = new OpenLayers.Control.EditingToolbar(); 
    2122            var navigation = new OpenLayers.Control.MouseDefaults(); 
    22             var selection = new OpenLayers.Control.EditingTool.Selection(); 
     23             
     24            // the info is an option of the selection. 
     25            var selection = new OpenLayers.Control.EditingTool.Selection({attributesControl: info}); 
     26             
    2327            var drawPoint = new OpenLayers.Control.EditingTool.DrawPoint(); 
    2428            var drawLineString = new OpenLayers.Control.EditingTool.DrawLineString(); 
     
    3034            var map = new OpenLayers.Map('map', {controls: [ 
    3135                toolbar, 
     36                info, 
    3237                new OpenLayers.Control.LayerSwitcher(), 
    3338                new OpenLayers.Control.PanZoom() 
     
    5257       
    5358            var feature = new OpenLayers.Feature(); 
     59            feature.addAttributes([{label: "test1", value: "essais réussi"}, {label: "test2", value: "encore mieux"}]); 
     60             
     61             
    5462            feature.setGeometry(linearRing); 
    5563            vector.addFeatures(feature); 
  • sandbox/vector/lib/OpenLayers.js

    r1895 r1929  
    122122        "OpenLayers/Geometry/Surface.js", 
    123123        "OpenLayers/Geometry/Polygon.js", 
     124        "OpenLayers/Geometry/Rectangle.js", 
    124125        "OpenLayers/Geometry/Aggregate.js", 
    125126        "OpenLayers/Renderer.js", 
  • sandbox/vector/lib/OpenLayers/Control.js

    r1889 r1929  
    3333    initialize: function (options) { 
    3434        OpenLayers.Util.extend(this, options); 
    35          
    3635        this.id = OpenLayers.Util.createUniqueID(this.CLASS_NAME + "_"); 
    3736    }, 
  • sandbox/vector/lib/OpenLayers/Control/EditingTool/Selection.js

    r1916 r1929  
    1818    size: new OpenLayers.Size(22,40), 
    1919 
     20    /** @type OpenLayers.Control.EditingAttributes */ 
     21    attributesControl: null, 
     22 
    2023    /** 
    2124    * @constructor 
     
    2629        OpenLayers.Control.EditingTool.prototype.initialize.apply(this, arguments); 
    2730        this.style = OpenLayers.Style.DefaultRendererSelectionStyle; 
     31         
    2832    }, 
    2933     
     
    8084        OpenLayers.Control.EditingTool.prototype.defaultMouseDown.apply(this, arguments); 
    8185         
     86         
     87        // Display Feature attributes 
     88        if(this.attributesControl && evt.targetGeometry.feature.attributes) { 
     89            this.attributesControl.setContent(evt.targetGeometry.feature.attributes); 
     90        } 
     91         
    8292        this.eraseTmpElements(); 
    8393         
    84         // Point & ControlPoint selection 
    85         if (evt.targetGeometry && evt.targetGeometry.CLASS_NAME == "OpenLayers.Geometry.Point"){ 
    86              
    87             // Add a point to the selection 
    88             if (this.shiftDown) { 
    89                  
    90                 // Verify if the point is selected 
    91                 if (OpenLayers.Util.indexOf(this.points, evt.targetGeometry) < 0){ 
    92                     this.points.push(evt.targetGeometry); 
    93                     this.layer.renderer.drawGeometry(evt.targetGeometry, this.style); 
    94                      
    95                 // UnSelect the point 
    96                 } else { 
    97                     this.points = OpenLayers.Util.removeItem(this.points, evt.targetGeometry); 
    98                     this.layer.renderer.drawGeometry(evt.targetGeometry, this.layer.style); 
    99                 } 
    100              
    101             // Unselect the point 
    102             } else { 
    103                for(var i=0; i<this.points.length; i++) { 
    104                    this.layer.renderer.drawGeometry(this.points[i], this.layer.style); 
    105                } 
    106                 
    107                if(evt.targetGeometry != undefined) 
    108                this.points = [evt.targetGeometry]; 
    109                this.layer.renderer.drawGeometry(evt.targetGeometry, this.style);             
    110             } 
    111              
    112         // Geometry selection 
    113         } else if (evt.targetGeometry && !evt.targetGeometry.isSnappingSegment){ 
     94        // Geometry Selection 
     95        if (evt.targetGeometry && !evt.targetGeometry.isSnappingSegment){ 
    11496             
    11597            this.eraseTmpElements(); 
     
    121103                if (OpenLayers.Util.indexOf(this.layer.selection, evt.targetGeometry.feature) < 0){ 
    122104                    this.layer.selection.push(evt.targetGeometry.feature); 
    123                      
    124105                // UnSelect the geometry 
    125106                } else { 
     
    130111            } else { 
    131112                this.layer.selection = [evt.targetGeometry.feature]; 
    132             } 
    133              
    134             this.drawTmpElements(); 
    135              
    136             // initialize the point selection. useful to translate a geometry or a part of a geometry 
    137             this.points = []; 
    138             for(var iSelection = 0; iSelection < this.layer.selection.length; iSelection++) { 
    139                 if (this.layer.selection.CLASS_NAME == "OpenLayers.Geometry.Point") { 
    140                     this.points = this.points.push(this.layer.selection[iSelection].geometry); 
    141                 } else { 
    142                     this.points = this.points.concat(this.layer.selection[iSelection].geometry.path); 
    143                 } 
    144             } 
    145              
    146         // Unselection 
    147         } else { 
    148             if (!this.shiftDown){ 
    149                 this.layer.selection = []; 
    150                 this.points = []; 
     113                this.layer.renderer.drawRectangle(evt.targetGeometry.getBoundingBox(), this.style); 
    151114            } 
    152115        } 
  • sandbox/vector/lib/OpenLayers/Geometry/Curve.js

    r1918 r1929  
    2929        } 
    3030         
    31         this.getBoundingBox(); 
     31        this.bbox = new OpenLayers.Geometry.Rectangle(); 
     32        this.bbox.geometry = this; 
    3233    }, 
    3334     
     
    3637     * @type OpenLayers.Bounds 
    3738     */ 
     39     
    3840    getBoundingBox: function(){ 
    3941        if (this.path.length > 0) { 
     
    5557            } 
    5658             
    57             this.extent = new OpenLayers.Bounds(xmin, ymin, xmax, ymax); 
    58              
    59             return this.extent; 
    60         }         
     59            this.bbox.x = xmin; 
     60            this.bbox.y = ymin; 
     61            this.bbox.width = xmax - xmin; 
     62            this.bbox.height = ymax - ymin; 
     63            return this.bbox; 
     64        } 
    6165    }, 
    6266 
  • sandbox/vector/lib/OpenLayers/Renderer/Svg.js

    r1899 r1929  
    191191     */ 
    192192    drawPolygon: function(geometry, style) { 
    193         var node = this._nodeFactory("polygon", id); 
     193        var node = this._nodeFactory("polygon", geometry.id); 
    194194        node.geometry = geometry; 
    195195        node.setAttributeNS(null, "points", geometry.path); 
     
    206206     * @param style {Style} a style to use when drawing 
    207207     */ 
    208     drawRectangle: function(geometry, style) {}, 
     208    drawRectangle: function(geometry, style) { 
     209        var node = this._nodeFactory("rect", geometry.id); 
     210        node.geometry = geometry; 
     211        node.setAttributeNS(null, "x", geometry.x); 
     212        node.setAttributeNS(null, "y", geometry.y); 
     213        node.setAttributeNS(null, "width", geometry.width); 
     214        node.setAttributeNS(null, "height", geometry.height); 
     215        this._setStyle(node, style, true, true); 
     216        this.root.appendChild(node); 
     217    }, 
    209218     
    210219    /**  
  • sandbox/vector/lib/OpenLayers/Style.js

    r1922 r1929  
    7272}); 
    7373OpenLayers.Style.DefaultRendererSelectionStyle = new OpenLayers.Style({ 
    74     fillColor: "green", 
    75     fillOpacity: 1, 
    76     strokeColor: "yellow", 
     74    fillOpacity: 0, 
     75    strokeColor: "grey", 
    7776    strokeOpacity: 1, 
    78     strokeWidth: 0.2,    
     77    strokeWidth: 0.1,    
    7978    strokeUnit: "%",                     
    8079    pointRadius: 1,