Author: ivaynberg Date: Thu Aug 30 20:19:55 2007 New Revision: 571360 URL: http://svn.apache.org/viewvc?rev=571360&view=rev Log: applied WICKET-853
Modified: wicket/trunk/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/filter/FilterForm.java wicket/trunk/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/filter/FilterToolbar.html wicket/trunk/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/filter/FilterToolbar.java Modified: wicket/trunk/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/filter/FilterForm.java URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/filter/FilterForm.java?rev=571360&r1=571359&r2=571360&view=diff ============================================================================== --- wicket/trunk/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/filter/FilterForm.java (original) +++ wicket/trunk/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/filter/FilterForm.java Thu Aug 30 20:19:55 2007 @@ -19,10 +19,13 @@ import org.apache.wicket.Component; import org.apache.wicket.behavior.AbstractBehavior; import org.apache.wicket.markup.ComponentTag; +import org.apache.wicket.markup.MarkupStream; +import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.form.FormComponent; import org.apache.wicket.markup.html.form.HiddenField; import org.apache.wicket.model.Model; +import org.apache.wicket.util.string.AppendingStringBuffer; /** * A form with filter-related special functionality for its form components. @@ -49,8 +52,9 @@ this.locator = locator; + // add hidden field used for managing current focus hidden = new HiddenField("focus-tracker", new Model()); - + hidden.add(new AbstractBehavior() { private static final long serialVersionUID = 1L; @@ -61,8 +65,20 @@ super.onComponentTag(component, tag); } }); - add(hidden); + + // add javascript to restore focus to a filter component + add(new WebMarkupContainer("focus-restore") + { + private static final long serialVersionUID = 1L; + + protected void onComponentTagBody(MarkupStream markupStream, ComponentTag openTag) + { + AppendingStringBuffer script = new AppendingStringBuffer("<script>_filter_focus_restore('").append( + getFocusTrackerFieldCssId()).append("');</script>"); + replaceComponentTagBody(markupStream, openTag, script); + } + }); } /** @@ -74,6 +90,7 @@ return hidden.getPageRelativePath(); } + /** * @return IFilterStateLocator passed to this form */ @@ -123,7 +140,6 @@ { return ("_filter_focus(this, '" + getFocusTrackerFieldCssId() + "');"); } - /** * Model that uses filter state locator as a passthrough for model objects Modified: wicket/trunk/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/filter/FilterToolbar.html URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/filter/FilterToolbar.html?rev=571360&r1=571359&r2=571360&view=diff ============================================================================== --- wicket/trunk/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/filter/FilterToolbar.html (original) +++ wicket/trunk/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/filter/FilterToolbar.html Thu Aug 30 20:19:55 2007 @@ -36,13 +36,9 @@ </wicket:head> <wicket:panel> -<tr class="filters-tr"> - <form wicket:id="filter-form"> - <input type="hidden" name="tracker" wicket:id="focus-tracker"/> + <tr class="filters-tr"> <span wicket:id="filters"> <td wicket:id="filter" class="filter-td">[filter]</td> </span> - </form> - <span wicket:id="focus-restore">[call to focus restore script]</span> -</tr> + </tr> </wicket:panel> Modified: wicket/trunk/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/filter/FilterToolbar.java URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/filter/FilterToolbar.java?rev=571360&r1=571359&r2=571360&view=diff ============================================================================== --- wicket/trunk/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/filter/FilterToolbar.java (original) +++ wicket/trunk/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/filter/FilterToolbar.java Thu Aug 30 20:19:55 2007 @@ -20,11 +20,8 @@ import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractToolbar; import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable; import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn; -import org.apache.wicket.markup.ComponentTag; -import org.apache.wicket.markup.MarkupStream; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.repeater.RepeatingView; -import org.apache.wicket.util.string.AppendingStringBuffer; /** @@ -49,7 +46,7 @@ * locator responsible for finding object used to store filter's * state */ - public FilterToolbar(final DataTable table, final IFilterStateLocator stateLocator) + public FilterToolbar(final DataTable table, final FilterForm form, final IFilterStateLocator stateLocator) { super(table); @@ -62,37 +59,11 @@ throw new IllegalArgumentException("argument [stateLocator] cannot be null"); } - // create the form used to contain all filter components - - final FilterForm form = new FilterForm("filter-form", stateLocator) - { - private static final long serialVersionUID = 1L; - - protected void onSubmit() - { - table.setCurrentPage(0); - } - }; - add(form); - - // add javascript to restore focus to a filter component - - add(new WebMarkupContainer("focus-restore") - { - private static final long serialVersionUID = 1L; - - protected void onComponentTagBody(MarkupStream markupStream, ComponentTag openTag) - { - AppendingStringBuffer script = new AppendingStringBuffer("<script>_filter_focus_restore('").append( - form.getFocusTrackerFieldCssId()).append("');</script>"); - replaceComponentTagBody(markupStream, openTag, script); - } - }); - // populate the toolbar with components provided by filtered columns RepeatingView filters = new RepeatingView("filters"); - form.add(filters); + filters.setRenderBodyOnly(true); + add(filters); IColumn[] cols = table.getColumns(); for (int i = 0; i < cols.length; i++) @@ -102,13 +73,13 @@ IColumn col = cols[i]; Component filter = null; - + if (col instanceof IFilteredColumn) { IFilteredColumn filteredCol = (IFilteredColumn)col; filter = filteredCol.getFilter(FILTER_COMPONENT_ID, form); } - + if (filter == null) { filter = new NoFilter(FILTER_COMPONENT_ID); @@ -126,10 +97,19 @@ } item.add(filter); - + filters.add(item); } } + protected void onBeforeRender() + { + if (findParent(FilterForm.class)==null) + { + throw new IllegalStateException("FilterToolbar must be contained within a Form"); + } + super.onBeforeRender(); + } + }