Author: ekoneil
Date: Thu Feb 17 12:46:44 2005
New Revision: 154189

URL: http://svn.apache.org/viewcvs?view=rev&rev=154189
Log:
Slight filter tweaks.

- add utility methods for building a filter URL from an arbitrary form
- switch the quote character used to surround a WHERE clause in SQLSupport.  In 
the long run, this needs to be user-alterable and based on 
DatabaseMetaData.getIdentifierQuoteString()

BB: self
DRT: NetUI pass


Modified:
    incubator/beehive/trunk/netui/src/javascript/tags-datagrid/netui-datagrid.js
    
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/sql/SQLSupport.java
    
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Footer.java

Modified: 
incubator/beehive/trunk/netui/src/javascript/tags-datagrid/netui-datagrid.js
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/javascript/tags-datagrid/netui-datagrid.js?view=diff&r1=154188&r2=154189
==============================================================================
--- 
incubator/beehive/trunk/netui/src/javascript/tags-datagrid/netui-datagrid.js 
(original)
+++ 
incubator/beehive/trunk/netui/src/javascript/tags-datagrid/netui-datagrid.js 
Thu Feb 17 12:46:44 2005
@@ -292,4 +292,88 @@
   }
 
   return qs;
+}
+
+/* ==========================================================
+ *
+ * Utility method that will load a list of HTML form <inputs>
+ * with filter information out of the URL.  The HTML ids of
+ * the <input> elements must match filter expressions in the
+ * URL's filter parameters.
+ *
+ * ==========================================================
+ */
+function doLoadNetUIFilters(formTagId, gridName) {
+  var form = document.getElementById(formTagId);
+  if(form == null)
+    alert('could not find form with id: ' + formTagId);
+
+  var netuiUrl = new NetUIFilterURL();
+  netuiUrl.init(window.location.search);
+  var gridFilters = netuiUrl.lookupFiltersForDataGrid(gridName);
+  if(gridFilters == null)
+    return;
+
+  var elems = form.elements.length;
+  for(var i = 0; i < elems; i++) {
+    var widget = form.elements[i];
+
+    if(widget.type == "submit" || widget.type == "hidden")
+      continue;
+
+    var id = widget.id;
+    var savedFilters = gridFilters.lookupFiltersForFilterExpression(id);
+    if(savedFilters != null)
+      widget.value = savedFilters[0].getFilterValue();
+  }
+  return;
+}
+
+/* ==========================================================
+ *
+ * Utility method that will create a filter URL from given
+ * an HTML form.  This method walks the <input> elements
+ * in the form and builds a filter operation from the
+ * values therein.  The default filter operation used here
+ * is 'contains'.
+ *
+ * Once the filters have been constructed, the filter URL
+ * is used to directly replace the URL in browser's current
+ * window.
+ *
+ * ==========================================================
+ */
+function doNetUIFilters(formTagId, gridName) {
+  var form = document.getElementById(formTagId);
+  if(form == null)
+    alert('could not find form with id: ' + formTagId);
+
+  var netuiUrl = new NetUIFilterURL();
+  netuiUrl.init(window.location.search);
+  var gridFilters = netuiUrl.lookupFiltersForDataGrid(gridName);
+  if(gridFilters == null) {
+    gridFilters = new NetUIFilterList(gridName);
+    netuiUrl.addFilterList(gridFilters);
+  }
+
+  var filters = new Array();
+  var elems = form.elements.length;
+  for(var i = 0; i < elems; i++) {
+    var widget = form.elements[i];
+
+    if(widget.type == "submit" || widget.type == "hidden")
+      continue;
+
+    var filter = new NetUIFilter(widget.id, 'contains', widget.value);
+    filters[filters.length] = filter;
+  }
+
+  gridFilters.replaceFilters(filters);
+  var search = netuiUrl.toQueryString();
+  /* set the window's location */
+  if(search != null && search.indexOf('?') < 0)
+    search += '?' + search;
+  window.location = window.location.protocol + "//" + location.host + 
window.location.pathname + (search != null ? search : '');
+
+  return false;
 }

Modified: 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/sql/SQLSupport.java
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/sql/SQLSupport.java?view=diff&r1=154188&r2=154189
==============================================================================
--- 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/sql/SQLSupport.java
 (original)
+++ 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/sql/SQLSupport.java
 Thu Feb 17 12:46:44 2005
@@ -167,9 +167,9 @@
             sb.append(" ");
 
             if(filter.getTypeHint() == FilterTypeHint.STRING) {
-                sb.append("\"");
+                sb.append("'");
                 sb.append(filter.getValue());
-                sb.append("\"");
+                sb.append("'");
             }
             else {
                 sb.append(filter.getValue());

Modified: 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Footer.java
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Footer.java?view=diff&r1=154188&r2=154189
==============================================================================
--- 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Footer.java
 (original)
+++ 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Footer.java
 Thu Feb 17 12:46:44 2005
@@ -24,7 +24,6 @@
 
 import org.apache.beehive.netui.tags.AbstractSimpleTag;
 import org.apache.beehive.netui.tags.html.HtmlConstants;
-import org.apache.beehive.netui.tags.rendering.CaptionTag;
 import org.apache.beehive.netui.tags.rendering.AbstractHtmlState;
 import org.apache.beehive.netui.tags.rendering.AbstractRenderAppender;
 import org.apache.beehive.netui.tags.rendering.WriteRenderAppender;


Reply via email to