4
<link rel="stylesheet" type="text/css" href="../../../../ext/resources/css/ext-all.css" />
6
<script type="text/javascript" src="../../../../openlayers/lib/Firebug/firebug.js"></script>
7
<script type="text/javascript" src="../../../../openlayers/lib/OpenLayers.js"></script>
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>
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/";
17
<script type="text/javascript" src="../../../../mapfish/MapFish.js"></script>
19
<link rel="stylesheet" type="text/css" href="style.css" />
21
<script type="text/javascript"><!--
22
function test_constructor(t) {
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);
30
mediator = new mapfish.widgets.data.GridRowFeatureMediator({
34
t.eq(mediator.active, true,
35
"ctor auto-activates mediator");
37
function test_selection(t) {
42
var store, grid, layer, lsm, select, feature, mediator, record;
44
store = new Ext.data.Store({
45
reader: new mapfish.widgets.data.FeatureReader(
46
{}, [{name: "name", type: "string"}]
50
grid = new Ext.grid.GridPanel({
53
cm: new Ext.grid.ColumnModel([{header: "name"}])
56
layer = new OpenLayers.Layer.Vector("vector", {
57
drawFeature: function(f, s) {
58
// do not actually draw features
62
lsm = new mapfish.widgets.data.LayerStoreMediator({
67
select = new OpenLayers.Control.SelectFeature(layer);
69
feature = new OpenLayers.Feature.Vector(
70
new OpenLayers.Geometry.Point(Math.random(), Math.random())
73
mediator = new mapfish.widgets.data.GridRowFeatureMediator({
78
layer.addFeatures([feature]);
81
layer.events.triggerEvent("featureselected",
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");
90
layer.events.triggerEvent("featureunselected",
92
t.eq(grid.getSelectionModel().getCount(), 0,
93
"feature unselection causes row unselection");
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");
103
grid.getSelectionModel().fireEvent("rowdeselect", {}, 0, record);
104
t.eq(layer.selectedFeatures.length, 0,
105
"row unselection causes feature unselection");
110
<div id="grid"></div>