[Commits] r836 - in core/trunk/geoext: lib lib/GeoExt/widgets lib/GeoExt/widgets/form tests tests/lib/GeoExt/widgets tests/lib/GeoExt/widgets/form
commits at geoext.org
commits at geoext.org
Thu May 21 10:35:52 CEST 2009
Author: elemoine
Date: 2009-05-21 10:35:52 +0200 (Thu, 21 May 2009)
New Revision: 836
Added:
core/trunk/geoext/lib/GeoExt/widgets/form.js
core/trunk/geoext/tests/lib/GeoExt/widgets/form.html
Modified:
core/trunk/geoext/lib/GeoExt.js
core/trunk/geoext/lib/GeoExt/widgets/form/SearchAction.js
core/trunk/geoext/tests/lib/GeoExt/widgets/form/SearchAction.html
core/trunk/geoext/tests/list-tests.html
Log:
reorganize the GeoExt.form module, no functional change (closes #71)
Modified: core/trunk/geoext/lib/GeoExt/widgets/form/SearchAction.js
===================================================================
--- core/trunk/geoext/lib/GeoExt/widgets/form/SearchAction.js 2009-05-20 21:57:32 UTC (rev 835)
+++ core/trunk/geoext/lib/GeoExt/widgets/form/SearchAction.js 2009-05-21 08:35:52 UTC (rev 836)
@@ -11,6 +11,10 @@
* base_link = `Ext.form.Action <http://extjs.com/deploy/dev/docs/?class=Ext.form.Action>`_
*/
+/**
+ * @include GeoExt/widgets/form.js
+ */
+
Ext.namespace("GeoExt.form");
/** api: example
@@ -47,68 +51,6 @@
* });
*/
-/**
- * Function: GeoExt.form.filterFromForm
- * Create an {OpenLayers.Filter} object from a {Ext.form.BasicForm}
- * instance or a {Ext.form.FormPanel}.
- *
- * Parameters:
- * form - {Ext.form.BasicForm|Ext.form.FormPanel}
- * logicalOp - {String} Either {OpenLayers.Filter.Logical.AND}
- * or {OpenLayers.Filter.Logical.OR}, set to
- * {OpenLayers.Filter.Logical.AND} if null or
- * undefined.
- *
- * Returns:
- * {OpenLayers.Filter}
- */
-GeoExt.form.filterFromForm = function(form, logicalOp) {
- if(form instanceof Ext.form.FormPanel) {
- form = form.getForm();
- }
- var filters = [], values = form.getValues(false);
- for(var prop in values) {
- var s = prop.split("__");
-
- var value = values[prop], type;
-
- if(s.length > 1 &&
- (type = GeoExt.form.filterFromForm.FILTER_MAP[s[1]]) !== undefined) {
- prop = s[0];
- } else {
- type = OpenLayers.Filter.Comparison.EQUAL_TO;
- }
-
- filters.push(
- new OpenLayers.Filter.Comparison({
- type: type,
- value: value,
- property: prop
- })
- );
- }
-
- return new OpenLayers.Filter.Logical({
- type: logicalOp || OpenLayers.Filter.Logical.AND,
- filters: filters
- });
-};
-
-/**
- * Constant: GeoExt.form.filterFromForm.FILTER_MAP
- * An object mapping operator strings as found in field names to
- * {OpenLayers.Filter.Comparison} types.
- */
-GeoExt.form.filterFromForm.FILTER_MAP = {
- "eq": OpenLayers.Filter.Comparison.EQUAL_TO,
- "ne": OpenLayers.Filter.Comparison.NOT_EQUAL_TO,
- "lt": OpenLayers.Filter.Comparison.LESS_THAN,
- "le": OpenLayers.Filter.Comparison.LESS_THAN_OR_EQUAL_TO,
- "gt": OpenLayers.Filter.Comparison.GREATER_THAN,
- "ge": OpenLayers.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO,
- "like": OpenLayers.Filter.Comparison.LIKE
-};
-
/** api: constructor
* .. class:: SearchAction(form, options)
*
@@ -165,7 +107,7 @@
*/
run: function() {
var o = this.options;
- var f = GeoExt.form.filterFromForm(this.form);
+ var f = GeoExt.form.toFilter(this.form);
if(o.clientValidation === false || this.form.isValid()){
this.response = o.protocol.read(
Ext.applyIf({
Added: core/trunk/geoext/lib/GeoExt/widgets/form.js
===================================================================
--- core/trunk/geoext/lib/GeoExt/widgets/form.js (rev 0)
+++ core/trunk/geoext/lib/GeoExt/widgets/form.js 2009-05-21 08:35:52 UTC (rev 836)
@@ -0,0 +1,70 @@
+/* Copyright (C) 2008-2009 The Open Source Geospatial Foundation
+ * Published under the BSD license.
+ * See http://geoext.org/svn/geoext/core/trunk/license.txt for the full text
+ * of the license.
+ *
+ * pending approval */
+
+Ext.namespace("GeoExt.form");
+
+/**
+ * Function: GeoExt.form.toFilter
+ * Create an {OpenLayers.Filter} object from a {Ext.form.BasicForm}
+ * or a {Ext.form.FormPanel} instance.
+ *
+ * Parameters:
+ * form - {Ext.form.BasicForm|Ext.form.FormPanel}
+ * logicalOp - {String} Either {OpenLayers.Filter.Logical.AND}
+ * or {OpenLayers.Filter.Logical.OR}, set to
+ * {OpenLayers.Filter.Logical.AND} if null or
+ * undefined.
+ *
+ * Returns:
+ * {OpenLayers.Filter}
+ */
+GeoExt.form.toFilter = function(form, logicalOp) {
+ if(form instanceof Ext.form.FormPanel) {
+ form = form.getForm();
+ }
+ var filters = [], values = form.getValues(false);
+ for(var prop in values) {
+ var s = prop.split("__");
+
+ var value = values[prop], type;
+
+ if(s.length > 1 &&
+ (type = GeoExt.form.toFilter.FILTER_MAP[s[1]]) !== undefined) {
+ prop = s[0];
+ } else {
+ type = OpenLayers.Filter.Comparison.EQUAL_TO;
+ }
+
+ filters.push(
+ new OpenLayers.Filter.Comparison({
+ type: type,
+ value: value,
+ property: prop
+ })
+ );
+ }
+
+ return new OpenLayers.Filter.Logical({
+ type: logicalOp || OpenLayers.Filter.Logical.AND,
+ filters: filters
+ });
+};
+
+/**
+ * Constant: GeoExt.form.omForm.FILTER_MAP
+ * An object mapping operator strings as found in field names to
+ * {OpenLayers.Filter.Comparison} types.
+ */
+GeoExt.form.toFilter.FILTER_MAP = {
+ "eq": OpenLayers.Filter.Comparison.EQUAL_TO,
+ "ne": OpenLayers.Filter.Comparison.NOT_EQUAL_TO,
+ "lt": OpenLayers.Filter.Comparison.LESS_THAN,
+ "le": OpenLayers.Filter.Comparison.LESS_THAN_OR_EQUAL_TO,
+ "gt": OpenLayers.Filter.Comparison.GREATER_THAN,
+ "ge": OpenLayers.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO,
+ "like": OpenLayers.Filter.Comparison.LIKE
+};
Modified: core/trunk/geoext/lib/GeoExt.js
===================================================================
--- core/trunk/geoext/lib/GeoExt.js 2009-05-20 21:57:32 UTC (rev 835)
+++ core/trunk/geoext/lib/GeoExt.js 2009-05-21 08:35:52 UTC (rev 836)
@@ -70,6 +70,7 @@
"GeoExt/data/ProtocolProxy.js",
"GeoExt/widgets/MapPanel.js",
"GeoExt/widgets/Popup.js",
+ "GeoExt/widgets/form.js",
"GeoExt/widgets/form/SearchAction.js",
"GeoExt/widgets/form/BasicForm.js",
"GeoExt/widgets/form/FormPanel.js",
Modified: core/trunk/geoext/tests/lib/GeoExt/widgets/form/SearchAction.html
===================================================================
--- core/trunk/geoext/tests/lib/GeoExt/widgets/form/SearchAction.html 2009-05-20 21:57:32 UTC (rev 835)
+++ core/trunk/geoext/tests/lib/GeoExt/widgets/form/SearchAction.html 2009-05-21 08:35:52 UTC (rev 836)
@@ -8,139 +8,6 @@
<script type="text/javascript">
- function test_filterFromForm(t) {
- t.plan(27);
-
- /*
- * Set up
- */
-
- var form, filter, fields = [];
-
- fields.push(new Ext.form.TextField({
- name: "foo0",
- value: "bar0"
- }));
-
- fields.push(new Ext.form.TextField({
- name: "foo1__eq",
- value: "bar1"
- }));
-
- fields.push(new Ext.form.TextField({
- name: "foo2__ne",
- value: "bar2"
- }));
-
- fields.push(new Ext.form.TextField({
- name: "foo3__lt",
- value: "bar3"
- }));
-
- fields.push(new Ext.form.TextField({
- name: "foo4__le",
- value: "bar4"
- }));
-
- fields.push(new Ext.form.TextField({
- name: "foo5__gt",
- value: "bar5"
- }));
-
- fields.push(new Ext.form.TextField({
- name: "foo6__ge",
- value: "bar6"
- }));
-
- fields.push(new Ext.form.TextField({
- name: "foo7__like",
- value: "bar7"
- }));
-
- form = new Ext.form.FormPanel({
- renderTo: "form",
- items: fields
- });
-
- /*
- * Test
- */
-
- // 26 tests
- filter = GeoExt.form.filterFromForm(form);
-
- t.ok(filter instanceof OpenLayers.Filter.Logical,
- "GeoExt.form.filterFormForm returns a logical filter");
-
- t.eq(filter.type, OpenLayers.Filter.Logical.AND,
- ["GeoExt.form.filterFormForm returns a logical AND filter if",
- "logicalOp is undefined"].join(" "));
-
- t.eq(filter.filters[0].type, OpenLayers.Filter.Comparison.EQUAL_TO,
- "GeoExt.form.filterFormForm creates correct filter type");
- t.eq(filter.filters[0].property, "foo0",
- "GeoExt.form.filterFormForm creates correct filter prop");
- t.eq(filter.filters[0].value, "bar0",
- "GeoExt.form.filterFormForm creates correct filter value");
-
- t.eq(filter.filters[1].type, OpenLayers.Filter.Comparison.EQUAL_TO,
- "GeoExt.form.filterFormForm creates correct filter type (__eq)");
- t.eq(filter.filters[1].property, "foo1",
- "GeoExt.form.filterFormForm creates correct filter prop (__eq)");
- t.eq(filter.filters[1].value, "bar1",
- "GeoExt.form.filterFormForm creates correct filter value (__eq)");
-
- t.eq(filter.filters[2].type, OpenLayers.Filter.Comparison.NOT_EQUAL_TO,
- "GeoExt.form.filterFormForm creates correct filter type (__ne)");
- t.eq(filter.filters[2].property, "foo2",
- "GeoExt.form.filterFormForm creates correct filter prop (__ne)");
- t.eq(filter.filters[2].value, "bar2",
- "GeoExt.form.filterFormForm creates correct filter value (__ne)");
-
- t.eq(filter.filters[3].type, OpenLayers.Filter.Comparison.LESS_THAN,
- "GeoExt.form.filterFormForm creates correct filter type (__lt)");
- t.eq(filter.filters[3].property, "foo3",
- "GeoExt.form.filterFormForm creates correct filter prop (__lt)");
- t.eq(filter.filters[3].value, "bar3",
- "GeoExt.form.filterFormForm creates correct filter value (__lt)");
-
- t.eq(filter.filters[4].type, OpenLayers.Filter.Comparison.LESS_THAN_OR_EQUAL_TO,
- "GeoExt.form.filterFormForm creates correct filter type (__le)");
- t.eq(filter.filters[4].property, "foo4",
- "GeoExt.form.filterFormForm creates correct filter prop (__le)");
- t.eq(filter.filters[4].value, "bar4",
- "GeoExt.form.filterFormForm creates correct filter value (__le)");
-
- t.eq(filter.filters[5].type, OpenLayers.Filter.Comparison.GREATER_THAN,
- "GeoExt.form.filterFormForm creates correct filter type (__gt)");
- t.eq(filter.filters[5].property, "foo5",
- "GeoExt.form.filterFormForm creates correct filter prop (__gt)");
- t.eq(filter.filters[5].value, "bar5",
- "GeoExt.form.filterFormForm creates correct filter value (__gt)");
-
- t.eq(filter.filters[6].type, OpenLayers.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO,
- "GeoExt.form.filterFormForm creates correct filter type (__ge)");
- t.eq(filter.filters[6].property, "foo6",
- "GeoExt.form.filterFormForm creates correct filter prop (__ge)");
- t.eq(filter.filters[6].value, "bar6",
- "GeoExt.form.filterFormForm creates correct filter value (__ge)");
-
- t.eq(filter.filters[7].type, OpenLayers.Filter.Comparison.LIKE,
- "GeoExt.form.filterFormForm creates correct filter type (__like)");
- t.eq(filter.filters[7].property, "foo7",
- "GeoExt.form.filterFormForm creates correct filter prop (__like)");
- t.eq(filter.filters[7].value, "bar7",
- "GeoExt.form.filterFormForm creates correct filter value (__like)");
-
- // 1 test
- filter = GeoExt.form.filterFromForm(form,
- OpenLayers.Filter.Logical.OR);
-
- t.eq(filter.type, OpenLayers.Filter.Logical.OR,
- ["GeoExt.form.filterFormForm returns a logical OR filter if",
- "logicalOp is OpenLayers.Filter.Logical.OR"].join(" "));
- }
-
function test_constructor(t) {
t.plan(1);
Added: core/trunk/geoext/tests/lib/GeoExt/widgets/form.html
===================================================================
--- core/trunk/geoext/tests/lib/GeoExt/widgets/form.html (rev 0)
+++ core/trunk/geoext/tests/lib/GeoExt/widgets/form.html 2009-05-21 08:35:52 UTC (rev 836)
@@ -0,0 +1,147 @@
+<!DOCTYPE html>
+<html debug="true">
+ <head>
+ <script type="text/javascript" src="../../../../../openlayers/lib/OpenLayers.js"></script>
+ <script type="text/javascript" src="../../../../../ext/adapter/ext/ext-base.js"></script>
+ <script type="text/javascript" src="../../../../../ext/ext-all-debug.js"></script>
+ <script type="text/javascript" src="../../../../lib/GeoExt.js"></script>
+
+ <script type="text/javascript">
+
+ function test_toFilter(t) {
+ t.plan(27);
+
+ /*
+ * Set up
+ */
+
+ var form, filter, fields = [];
+
+ fields.push(new Ext.form.TextField({
+ name: "foo0",
+ value: "bar0"
+ }));
+
+ fields.push(new Ext.form.TextField({
+ name: "foo1__eq",
+ value: "bar1"
+ }));
+
+ fields.push(new Ext.form.TextField({
+ name: "foo2__ne",
+ value: "bar2"
+ }));
+
+ fields.push(new Ext.form.TextField({
+ name: "foo3__lt",
+ value: "bar3"
+ }));
+
+ fields.push(new Ext.form.TextField({
+ name: "foo4__le",
+ value: "bar4"
+ }));
+
+ fields.push(new Ext.form.TextField({
+ name: "foo5__gt",
+ value: "bar5"
+ }));
+
+ fields.push(new Ext.form.TextField({
+ name: "foo6__ge",
+ value: "bar6"
+ }));
+
+ fields.push(new Ext.form.TextField({
+ name: "foo7__like",
+ value: "bar7"
+ }));
+
+ form = new Ext.form.FormPanel({
+ renderTo: "form",
+ items: fields
+ });
+
+ /*
+ * Test
+ */
+
+ // 26 tests
+ filter = GeoExt.form.toFilter(form);
+
+ t.ok(filter instanceof OpenLayers.Filter.Logical,
+ "GeoExt.form.filterFormForm returns a logical filter");
+
+ t.eq(filter.type, OpenLayers.Filter.Logical.AND,
+ ["GeoExt.form.filterFormForm returns a logical AND filter if",
+ "logicalOp is undefined"].join(" "));
+
+ t.eq(filter.filters[0].type, OpenLayers.Filter.Comparison.EQUAL_TO,
+ "GeoExt.form.filterFormForm creates correct filter type");
+ t.eq(filter.filters[0].property, "foo0",
+ "GeoExt.form.filterFormForm creates correct filter prop");
+ t.eq(filter.filters[0].value, "bar0",
+ "GeoExt.form.filterFormForm creates correct filter value");
+
+ t.eq(filter.filters[1].type, OpenLayers.Filter.Comparison.EQUAL_TO,
+ "GeoExt.form.filterFormForm creates correct filter type (__eq)");
+ t.eq(filter.filters[1].property, "foo1",
+ "GeoExt.form.filterFormForm creates correct filter prop (__eq)");
+ t.eq(filter.filters[1].value, "bar1",
+ "GeoExt.form.filterFormForm creates correct filter value (__eq)");
+
+ t.eq(filter.filters[2].type, OpenLayers.Filter.Comparison.NOT_EQUAL_TO,
+ "GeoExt.form.filterFormForm creates correct filter type (__ne)");
+ t.eq(filter.filters[2].property, "foo2",
+ "GeoExt.form.filterFormForm creates correct filter prop (__ne)");
+ t.eq(filter.filters[2].value, "bar2",
+ "GeoExt.form.filterFormForm creates correct filter value (__ne)");
+
+ t.eq(filter.filters[3].type, OpenLayers.Filter.Comparison.LESS_THAN,
+ "GeoExt.form.filterFormForm creates correct filter type (__lt)");
+ t.eq(filter.filters[3].property, "foo3",
+ "GeoExt.form.filterFormForm creates correct filter prop (__lt)");
+ t.eq(filter.filters[3].value, "bar3",
+ "GeoExt.form.filterFormForm creates correct filter value (__lt)");
+
+ t.eq(filter.filters[4].type, OpenLayers.Filter.Comparison.LESS_THAN_OR_EQUAL_TO,
+ "GeoExt.form.filterFormForm creates correct filter type (__le)");
+ t.eq(filter.filters[4].property, "foo4",
+ "GeoExt.form.filterFormForm creates correct filter prop (__le)");
+ t.eq(filter.filters[4].value, "bar4",
+ "GeoExt.form.filterFormForm creates correct filter value (__le)");
+
+ t.eq(filter.filters[5].type, OpenLayers.Filter.Comparison.GREATER_THAN,
+ "GeoExt.form.filterFormForm creates correct filter type (__gt)");
+ t.eq(filter.filters[5].property, "foo5",
+ "GeoExt.form.filterFormForm creates correct filter prop (__gt)");
+ t.eq(filter.filters[5].value, "bar5",
+ "GeoExt.form.filterFormForm creates correct filter value (__gt)");
+
+ t.eq(filter.filters[6].type, OpenLayers.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO,
+ "GeoExt.form.filterFormForm creates correct filter type (__ge)");
+ t.eq(filter.filters[6].property, "foo6",
+ "GeoExt.form.filterFormForm creates correct filter prop (__ge)");
+ t.eq(filter.filters[6].value, "bar6",
+ "GeoExt.form.filterFormForm creates correct filter value (__ge)");
+
+ t.eq(filter.filters[7].type, OpenLayers.Filter.Comparison.LIKE,
+ "GeoExt.form.filterFormForm creates correct filter type (__like)");
+ t.eq(filter.filters[7].property, "foo7",
+ "GeoExt.form.filterFormForm creates correct filter prop (__like)");
+ t.eq(filter.filters[7].value, "bar7",
+ "GeoExt.form.filterFormForm creates correct filter value (__like)");
+
+ // 1 test
+ filter = GeoExt.form.toFilter(form,
+ OpenLayers.Filter.Logical.OR);
+
+ t.eq(filter.type, OpenLayers.Filter.Logical.OR,
+ ["GeoExt.form.filterFormForm returns a logical OR filter if",
+ "logicalOp is OpenLayers.Filter.Logical.OR"].join(" "));
+ }
+ </script>
+ <body>
+ <div id="form"></div>
+ </body>
+</html>
Modified: core/trunk/geoext/tests/list-tests.html
===================================================================
--- core/trunk/geoext/tests/list-tests.html 2009-05-20 21:57:32 UTC (rev 835)
+++ core/trunk/geoext/tests/list-tests.html 2009-05-21 08:35:52 UTC (rev 836)
@@ -10,6 +10,7 @@
<li>lib/GeoExt/data/WMSCapabilitiesReader.html</li>
<li>lib/GeoExt/widgets/MapPanel.html</li>
<li>lib/GeoExt/widgets/Popup.html</li>
+ <li>lib/GeoExt/widgets/form.html</li>
<li>lib/GeoExt/widgets/form/SearchAction.html</li>
<li>lib/GeoExt/widgets/form/BasicForm.html</li>
<li>lib/GeoExt/widgets/form/FormPanel.html</li>
More information about the Commits
mailing list