~mortenoh/+junk/dhis2-detailed-import-export

« back to all changes in this revision

Viewing changes to gis/dhis-gis-geostat/mfbase/mapfish/tests/widgets/data/test_GridRowFeatureMediator.html

  • Committer: larshelge at gmail
  • Date: 2009-03-03 16:46:36 UTC
  • Revision ID: larshelge@gmail.com-20090303164636-2sjlrquo7ib1gf7r
Initial check-in

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!DOCTYPE html>
 
2
<html debug="true">
 
3
  <head>
 
4
    <link rel="stylesheet" type="text/css" href="../../../../ext/resources/css/ext-all.css" />
 
5
 
 
6
    <script type="text/javascript" src="../../../../openlayers/lib/Firebug/firebug.js"></script>
 
7
    <script type="text/javascript" src="../../../../openlayers/lib/OpenLayers.js"></script>
 
8
 
 
9
    <script type="text/javascript" src="../../../../ext/adapter/ext/ext-base.js"></script>
 
10
    <script type="text/javascript" src="../../../../ext/ext-all-debug.js"></script>
 
11
 
 
12
    <script type="text/javascript">
 
13
      // Because of a bug in Firefox 2 we need to specify the MapFish base path.
 
14
      // See https://bugzilla.mozilla.org/show_bug.cgi?id=351282
 
15
      var gMfLocation = "../../../../mapfish/";
 
16
    </script>
 
17
    <script type="text/javascript" src="../../../../mapfish/MapFish.js"></script>
 
18
 
 
19
    <link rel="stylesheet" type="text/css" href="style.css" />
 
20
 
 
21
    <script type="text/javascript"><!--
 
22
        function test_constructor(t) {
 
23
            t.plan(1);
 
24
            // setup
 
25
            var grid, layer, select, mediator;
 
26
            grid = new Ext.grid.GridPanel();
 
27
            layer = new OpenLayers.Layer.Vector("vector");
 
28
            select = new OpenLayers.Control.SelectFeature(layer);
 
29
            // 1 test
 
30
            mediator = new mapfish.widgets.data.GridRowFeatureMediator({
 
31
                grid: grid,
 
32
                selectControl: select
 
33
            });
 
34
            t.eq(mediator.active, true,
 
35
                 "ctor auto-activates mediator");
 
36
        }
 
37
        function test_selection(t) {
 
38
            t.plan(6);
 
39
 
 
40
            // setup
 
41
 
 
42
            var store, grid, layer, lsm, select, feature, mediator, record;
 
43
 
 
44
            store = new Ext.data.Store({
 
45
                reader: new mapfish.widgets.data.FeatureReader(
 
46
                    {}, [{name: "name", type: "string"}]
 
47
                )
 
48
            });
 
49
 
 
50
            grid = new Ext.grid.GridPanel({
 
51
                store: store,
 
52
                renderTo: "grid",
 
53
                cm: new Ext.grid.ColumnModel([{header: "name"}])
 
54
            });
 
55
 
 
56
            layer = new OpenLayers.Layer.Vector("vector", {
 
57
                drawFeature: function(f, s) {
 
58
                    // do not actually draw features
 
59
                }
 
60
            });
 
61
 
 
62
            lsm = new mapfish.widgets.data.LayerStoreMediator({
 
63
                store: store,
 
64
                layer: layer
 
65
            });
 
66
 
 
67
            select = new OpenLayers.Control.SelectFeature(layer);
 
68
 
 
69
            feature = new OpenLayers.Feature.Vector(
 
70
                new OpenLayers.Geometry.Point(Math.random(), Math.random())
 
71
            );
 
72
 
 
73
            mediator = new mapfish.widgets.data.GridRowFeatureMediator({
 
74
                grid: grid,
 
75
                selectControl: select
 
76
            });
 
77
 
 
78
            layer.addFeatures([feature]);
 
79
 
 
80
            // 2 tests
 
81
            layer.events.triggerEvent("featureselected",
 
82
                {feature: feature});
 
83
            t.eq(grid.getSelectionModel().getCount(), 1,
 
84
                 "feature selection causes row selection");
 
85
            record = grid.getSelectionModel().getSelected();
 
86
            t.eq(record.id, feature.id,
 
87
                 "feature selection causes selection of expected row");
 
88
 
 
89
            // 1 test
 
90
            layer.events.triggerEvent("featureunselected",
 
91
                {feature: feature});
 
92
            t.eq(grid.getSelectionModel().getCount(), 0,
 
93
                 "feature unselection causes row unselection");
 
94
 
 
95
            // 2 tests
 
96
            grid.getSelectionModel().fireEvent("rowselect", {}, 0, record);
 
97
            t.eq(layer.selectedFeatures.length, 1,
 
98
                 "row selection causes feature selection");
 
99
            t.eq(layer.selectedFeatures[0].id, record.id,
 
100
                 "row selection causes selection of expected feature");
 
101
 
 
102
            // 1 test
 
103
            grid.getSelectionModel().fireEvent("rowdeselect", {}, 0, record);
 
104
            t.eq(layer.selectedFeatures.length, 0,
 
105
                 "row unselection causes feature unselection");
 
106
        }
 
107
    --></script>
 
108
  <body>
 
109
    <div id="map"></div>
 
110
    <div id="grid"></div>
 
111
  </body>
 
112
</html>