Filter enhancements. Adding support for serializing filters with Filter Encoding 1.1. Adding matchCase attribute to filters with binary operators. Refactoring filter formats to use methods from base XML format. r=ahocevar,adube (closes #1790)

git-svn-id: http://svn.openlayers.org/trunk/openlayers@8812 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
Tim Schaub
2009-02-03 22:28:48 +00:00
parent ebed733327
commit f9939f1cfe
10 changed files with 607 additions and 281 deletions

View File

@@ -8,7 +8,7 @@
height: 250px;
}
#out0, #out1 {
height: 250px;
height: 100px;
width: 90%;
overflow: auto;
}
@@ -17,6 +17,7 @@
<script type="text/javascript">
var filter_1_0 = new OpenLayers.Format.Filter({version: "1.0.0"});
var filter_1_1 = new OpenLayers.Format.Filter({version: "1.1.0"});
var xml = new OpenLayers.Format.XML();
var filter;
@@ -24,11 +25,25 @@
var code = input.value;
try {
eval(code);
} catch(err) {
out0.value = err.message;
out1.value = "";
}
try {
out0.value = xml.write(filter_1_0.write(filter));
} catch(err) {
out0.innerHTML = err.message;
out0.value = err.message;
if(err.lineNumber != undefined) {
out0.innerHTML += " (line " + err.lineNumber + " " +
out0.value += " (line " + err.lineNumber + " " +
err.fileName + ")";
}
}
try {
out1.value = xml.write(filter_1_1.write(filter));
} catch(err) {
out1.value = err.message;
if(err.lineNumber != undefined) {
out1.value += " (line " + err.lineNumber + " " +
err.fileName + ")";
}
}
@@ -38,6 +53,9 @@
window.onload = function() {
input = document.getElementById("in");
out0 = document.getElementById("out0");
out1 = document.getElementById("out1");
out0.value = "";
out1.value = "";
document.getElementById("write").onclick = write;
};
@@ -61,6 +79,11 @@ filter = new OpenLayers.Filter.Logical({
type: OpenLayers.Filter.Comparison.NOT_EQUAL_TO,
property: "mean",
value: "yes"
}),
new OpenLayers.Filter.Spatial({
type: OpenLayers.Filter.Spatial.BBOX,
value: new OpenLayers.Bounds(-180, -90, 180, 90),
projection: "EPSG:4326"
})
]
});
@@ -68,6 +91,8 @@ filter = new OpenLayers.Filter.Logical({
<button id="write">write</button><br />
Filter Encoding 1.0
<textarea id="out0"></textarea><br />
Filter Encoding 1.1
<textarea id="out1"></textarea><br />
<p id="docs">
</p>
</body>