Ok.
Here is the code:
package com.eurekify.web.components.table;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
import org.apache.wicket.behavior.HeaderContributor;
import org.apache.wicket.behavior.SimpleAttributeModifier;
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.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.model.AbstractReadOnlyModel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.PropertyModel;
import com.eurekify.i18n.LocalizationHelper;
import com.eurekify.web.components.dropdown.DropDownChoiceWithAjaxIndicator;
class NumRecordsToolbar extends AbstractToolbar {
private static final long serialVersionUID = -7038331743460229883L;
NumRecordsToolbar(DataTable table, int initialRecordsPerPage) {
super(table);
add(HeaderContributor.forCss("/eurekify/style/EurekifyDataTable.css"));
WebMarkupContainer span = new WebMarkupContainer("span");
add(span);
span.add(new SimpleAttributeModifier("colspan", String
.valueOf(getTable().getColumns().length)));
span.add(getUsersPerPageSelect(initialRecordsPerPage));
Label numOfRecordLabel = new Label("pagingLabel", new
Model(LocalizationHelper
.getMessage("table.recordsPerPage")));
span.add(numOfRecordLabel);
getTable().setRowsPerPage(initialRecordsPerPage);
}
private List<Integer> getValuesForSelect(int initial) {
Set<Integer> set = new HashSet<Integer>();
set.add(10);
set.add(20);
set.add(50);
set.add(500);
set.add(initial);
List<Integer> values = new ArrayList<Integer>(set);
Collections.sort(values);
return values;
}
private DropDownChoiceWithAjaxIndicator getUsersPerPageSelect(final int
initial) {
final IModel pagingvalues = new AbstractReadOnlyModel() {
private static final long serialVersionUID = 1L;
@Override
public Object getObject() {
List<Integer> values = getValuesForSelect(initial);
return values;
}
};
final DropDownChoiceWithAjaxIndicator result = new
DropDownChoiceWithAjaxIndicator(
"pagingSelect", new PropertyModel(getTable(),
"rowsPerPage"), pagingvalues,
this);
result.add(new AjaxFormComponentUpdatingBehavior("onchange") {
private static final long serialVersionUID = 1L;
@Override
protected void onUpdate(AjaxRequestTarget target) {
target.addComponent(getTable());
}
});
return result;
}
@Override
public boolean isVisible() {
return (getTable().getRowCount() > 10);
}
}
And the HTML:
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:wicket="http://wicket.sourceforge.net/" xml:lang="en" lang="en">
<wicket:panel>
<tr>
<td wicket:id="span" class="select-number-records"><label
wicket:id="pagingLabel"> </label> <select
wicket:id="pagingSelect">
</select></td>
</tr>
</wicket:panel>
</html>
On Thu, Apr 17, 2008 at 1:57 PM, Maurice Marrink <[EMAIL PROTECTED]> wrote:
> Ehm, Attachments are filtered from the list :)
>
> Maurice
>
> On Thu, Apr 17, 2008 at 12:23 PM, Eyal Golan <[EMAIL PROTECTED]> wrote:
> > Hi,
> > I have made a toolbar for a DataTable that let's the user select how
> many
> > records will be in a page.
> >
> > Usage:
> > addBottomToolbar(new NumRecordsToolbar(this, rowsPerPage));
> >
> >
> > Enjoy :)
> > --
> > Eyal Golan
> > [EMAIL PROTECTED]
> >
> > Visit: http://jvdrums.sourceforge.net/
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
--
Eyal Golan
[EMAIL PROTECTED]
Visit: http://jvdrums.sourceforge.net/