File: TransformFeature.html

package info (click to toggle)
openlayers 2.11%2Bds1-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd, wheezy
  • size: 60,144 kB
  • ctags: 10,906
  • sloc: xml: 7,435; python: 778; sh: 68; makefile: 30
file content (91 lines) | stat: -rw-r--r-- 3,521 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
<html>
<head>
    <script src="../OLLoader.js"></script>
    <script type="text/javascript">

    function test_initialize(t) {
        t.plan(6);
        var layer = "foo";
        var control = new OpenLayers.Control.TransformFeature(layer);
        
        t.ok(control.layer == layer,
             "constructor sets layer correctly");
        t.ok(control.dragControl instanceof OpenLayers.Control.DragFeature,
             "constructor sets the drag control correctly");
        t.ok(control.box instanceof OpenLayers.Feature.Vector,
             "box feature created");
        t.eq(control.handles.length, 8, "8 handles created");
        t.eq(control.rotationHandles.length, 4, "4 rotation handles created")
        t.eq(typeof control.rotationHandleSymbolizer, "object",
            "rotationHandleSymbolizer initialized");
        control.destroy();
    }

    function test_destroy(t) {
        t.plan(1);
        var map = new OpenLayers.Map("map");
        var layer = new OpenLayers.Layer.Vector();
        map.addLayer(layer);
        var control = new OpenLayers.Control.TransformFeature(layer);
        control.dragControl.destroy = function() {
            t.ok(true,
                 "control.destroy calls destroy on drag control");
        };
        control.destroy();
        map.destroy();
    }
    
    function test_activate(t) {
        t.plan(3);
        var map = new OpenLayers.Map("map");
        var layer = new OpenLayers.Layer.Vector();
        map.addLayer(layer);
        var control = new OpenLayers.Control.TransformFeature(layer);
        map.addControl(control);
        
        t.ok(!control.dragControl.active,
             "drag control is not active prior to activating control");
        control.activate();
        t.ok(control.dragControl.active,
             "drag control is active after activating control");
        t.ok(control.box.layer === layer, "box added to layer");

        map.destroy();
    }
    
    function test_setFeature(t) {
        t.plan(6);
        var map = new OpenLayers.Map("map", {allOverlays: true});
        var layer = new OpenLayers.Layer.Vector();
        var feature = new OpenLayers.Feature.Vector(
            OpenLayers.Geometry.fromWKT("POLYGON((-1 -1, 1 -1, 1 1, -1 1))"));
        layer.addFeatures([feature]);
        map.addLayer(layer);
        map.setCenter(new OpenLayers.LonLat(0, 0), 18);
        var control = new OpenLayers.Control.TransformFeature(layer);
        map.addControl(control);
        var log = [];
        control.events.on({
            "beforesetfeature": function(e) { log.push(e); },
            "setfeature": function(e) { log.push(e); }
        });
        control.setFeature(feature);
        
        t.eq(log[0].type, "beforesetfeature", "beforesetfeature event fired with correct event type");
        t.eq(log[1].type, "setfeature", "setfeature event fired with correct event type");
        
        t.ok(control.active, "control activated on setFeature");
        t.ok(feature.geometry.getBounds().equals(control.box.geometry.getBounds()), "box positioned correctly");
        t.geom_eq(control.handles[0].geometry, control.box.geometry.components[0], "handle positioned with box");
        
        var center = new OpenLayers.LonLat(1, 1);
        control.box.move(center);
        t.geom_eq(control.handles[0].geometry, control.box.geometry.components[0], "handle moved with box");
    }

    </script>
</head>
<body>
    <div id="map" style="width: 400px; height: 250px;"/>
</body>
</html>